From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CABD027B4FB for ; Wed, 24 Dec 2025 14:24:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766586270; cv=none; b=agRD+a8s7fxOHR28v6XhnhHpQDyltDSgck0A5EWxd+xlNheU8qX1D73rQmTO1iXzJoyN5Qo10vCj5UTuBjn4NKvWV5ZVQ+Qoycx2n8GxiM/Zxv3H/oREOQJyoNWvZiHelpyQ9OoA2uo32cSk0z9fysuHVeKtzuc07A+yZSvvGAw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766586270; c=relaxed/simple; bh=i+qFzc+frCs261rZV2/oV2Z5l2+LHQwpDCqA3TqF60o=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=b1/sCaccmfL8zQfzqGp4yAg2xpMGKT8J4nQT71IxrKxMFUR+xeDywSz17B7COavxcDeJTUqkMoZ6fM8n4DjxYhJtrEvd6MGrdScKwJG49ubmeLLzSx7sHxsNaheZEGmIirtkArjaGIKqJpUbKIrFjWcmNIFBm8e2GO4/xfgSCXw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ndufresne.ca; spf=pass smtp.mailfrom=ndufresne.ca; dkim=pass (2048-bit key) header.d=ndufresne-ca.20230601.gappssmtp.com header.i=@ndufresne-ca.20230601.gappssmtp.com header.b=0K7GIyoM; arc=none smtp.client-ip=209.85.219.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ndufresne.ca Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ndufresne.ca Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ndufresne-ca.20230601.gappssmtp.com header.i=@ndufresne-ca.20230601.gappssmtp.com header.b="0K7GIyoM" Received: by mail-qv1-f44.google.com with SMTP id 6a1803df08f44-88a34450f19so67070536d6.1 for ; Wed, 24 Dec 2025 06:24:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20230601.gappssmtp.com; s=20230601; t=1766586263; x=1767191063; darn=vger.kernel.org; h=mime-version:user-agent:autocrypt:references:in-reply-to:date:cc:to :from:subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=sbtXpYWxITg7AJr/Jwg+F1OWRFSMP1K1yS5iR5eqeGE=; b=0K7GIyoMnd00TcFsfP2pPEwsBVFDkQYKodfaKx8KzeRQXkQR0beY6Jnw62z43adM2c UcTOOwONdjAbR4UxiqgTVnE4C6O4NBoAhGEJtb3QYiLXjfDjMyvVJzTNjyrRzdt6Yl1F WUc09psfEhmg2U2xDKQYbfEiv3ffZrHhtDor8sitdpZAFOo3oB2KE1zq7lLX3b+vPEr4 CVbjF8LYD9W6/uCgKiZLWTii0Bsemjv78RHgTAJ139labLfZcumNH6eNZjXzjcR1kG18 NZSPE2fU94+ZfNbbPsOSXOH5B+/McNowLYuJp9UUuIB57oZgMQgYtGzE74ybgrckIwOn cuug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766586263; x=1767191063; h=mime-version:user-agent:autocrypt:references:in-reply-to:date:cc:to :from:subject:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sbtXpYWxITg7AJr/Jwg+F1OWRFSMP1K1yS5iR5eqeGE=; b=k/C1G2RwcqK3vHKN5AwiBLXUh77vCnhkwSJpqxYUnJHbFGTGpEbsArn7e/63y3qdCA xmlo4FWid6sn2kuRcBS18jWYTa4s9sSo22uxakCWk2nb/X6nAG4mrV34VqQ1qp63waeD SN0KAnGn2boG5x8mOZxBI1Mo3/mHqdNudeSyVqfaGala5BG464SoTTjbnwPN5BNDFJpP tmiOrfJ7zDdHn6A8sPfd2wve7kfIppxoNMeLQDixZltsOW88u7bWLaIcO5VFBltu3M3U WRezuBwQaay0SXcaP/ppAsiIOGixTLFJdqI1i1ZhEntF1cduADo28iFnTbbYV+w4P8Mc UY5w== X-Forwarded-Encrypted: i=1; AJvYcCXomhFzxwoc7fr7mI7J5H1JgxAuqGUfxg5g4Y/0hrS9d3+JT16u8ywOIIbdvf6FK08iaKOhp4mZ6YoH/U4=@vger.kernel.org X-Gm-Message-State: AOJu0Yy8iD0RfxesmsenKLNIM5PBJiu/pknYGVZ5IKxYgLgxIs6e+pfE sE7pMtpccR/8UMgi0jcEeKtZGXY3MhIh70qDryrYDwi77KbAQKLNo23tWhTf7WxvytE= X-Gm-Gg: AY/fxX573x0G4sItS2T7zTMTr8ckTsbpS8koG2lecxhS2yg2rEHUyzeRFt80actCCd9 xuKfVsKX5WtC9KrqcthV9vAFicbtN/wTj2wPqZcW36wBkgIKjhygm8CR2OPBjAt820p2sxGejaP n4U8Qqtn94d9OB2wMpJkCO4EwMcCiyGEy05IXv4HrAyBigjZEvnXu3SAeiFL58BJ2RtVPlaRSCj dakYprLUG93y+e4QMcb6BWkZIDMNV8wmb0cK9kRgZCvkSQslKjWpeiQtUXow1dP6chnRTqrfeUO Itg7TaSOpfni4dflCdsH/UHHcUTJFbgEA0pgm36jQwfqOsV7Pk+otS2co5LButGbDaQdpQWYtRE dTKp6kPL+2AfWQZcq9FpRGFnWzpX6zEt5iCcZbE6ubIXf7JrXMs12wrXGSiQyzAyKg1wfiYPYP1 nwW1ZlN24c5j7ek9ia X-Google-Smtp-Source: AGHT+IFBXBD3jYFaArbbRnknDps/xO8oWwhKezx3DwQgqGe5GqPW6vUGgcAoj4hZpaaBRbI7eNh78Q== X-Received: by 2002:a05:6214:d04:b0:88f:a4ff:454e with SMTP id 6a1803df08f44-88fa4ff4642mr190361976d6.10.1766586262889; Wed, 24 Dec 2025 06:24:22 -0800 (PST) Received: from ?IPv6:2606:6d00:17:7b4b::c41? ([2606:6d00:17:7b4b::c41]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-88d9680dc3bsm128036936d6.14.2025.12.24.06.24.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Dec 2025 06:24:22 -0800 (PST) Message-ID: Subject: Re: [PATCH v2 02/22] media: v4l2-common: add has_alpha to v4l2_format_info From: Nicolas Dufresne To: Sven =?ISO-8859-1?Q?P=FCschel?= , Jacob Chen , Ezequiel Garcia , Mauro Carvalho Chehab , Heiko Stuebner , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, kernel@pengutronix.de Date: Wed, 24 Dec 2025 09:24:20 -0500 In-Reply-To: <20251203-spu-rga3-v2-2-989a67947f71@pengutronix.de> References: <20251203-spu-rga3-v2-0-989a67947f71@pengutronix.de> <20251203-spu-rga3-v2-2-989a67947f71@pengutronix.de> Autocrypt: addr=nicolas@ndufresne.ca; prefer-encrypt=mutual; keydata=mDMEaCN2ixYJKwYBBAHaRw8BAQdAM0EHepTful3JOIzcPv6ekHOenE1u0vDG1gdHFrChD /e0J05pY29sYXMgRHVmcmVzbmUgPG5pY29sYXNAbmR1ZnJlc25lLmNhPoicBBMWCgBEAhsDBQsJCA cCAiICBhUKCQgLAgQWAgMBAh4HAheABQkJZfd1FiEE7w1SgRXEw8IaBG8S2UGUUSlgcvQFAmibrjo CGQEACgkQ2UGUUSlgcvQlQwD/RjpU1SZYcKG6pnfnQ8ivgtTkGDRUJ8gP3fK7+XUjRNIA/iXfhXMN abIWxO2oCXKf3TdD7aQ4070KO6zSxIcxgNQFtDFOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1Z nJlc25lQGNvbGxhYm9yYS5jb20+iJkEExYKAEECGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4 AWIQTvDVKBFcTDwhoEbxLZQZRRKWBy9AUCaCyyxgUJCWX3dQAKCRDZQZRRKWBy9ARJAP96pFmLffZ smBUpkyVBfFAf+zq6BJt769R0al3kHvUKdgD9G7KAHuioxD2v6SX7idpIazjzx8b8rfzwTWyOQWHC AAS0LU5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAZ21haWwuY29tPoiZBBMWCgBBF iEE7w1SgRXEw8IaBG8S2UGUUSlgcvQFAmibrGYCGwMFCQll93UFCwkIBwICIgIGFQoJCAsCBBYCAw ECHgcCF4AACgkQ2UGUUSlgcvRObgD/YnQjfi4+L8f4fI7p1pPMTwRTcaRdy6aqkKEmKsCArzQBAK8 bRLv9QjuqsE6oQZra/RB4widZPvphs78H0P6NmpIJ Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-fmKYZ+5/CD21oWsxEXAZ" User-Agent: Evolution 3.58.2 (3.58.2-1.fc43) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 --=-fmKYZ+5/CD21oWsxEXAZ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Le mercredi 03 d=C3=A9cembre 2025 =C3=A0 16:52 +0100, Sven P=C3=BCschel a = =C3=A9crit=C2=A0: > Add a has_alpha value to the v4l2_format_info struct to indicate if the > format contains an alpha component. The implementation is based on the > drm_format_info implementation. >=20 > Signed-off-by: Sven P=C3=BCschel Reviewed-by: Nicolas Dufresne > --- > =C2=A0drivers/media/v4l2-core/v4l2-common.c | 14 +++++++------- > =C2=A0include/media/v4l2-common.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 |=C2=A0 2 ++ > =C2=A02 files changed, 9 insertions(+), 7 deletions(-) >=20 > diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-c= ore/v4l2-common.c > index 554c591e11133..2c7ac70c0f486 100644 > --- a/drivers/media/v4l2-core/v4l2-common.c > +++ b/drivers/media/v4l2-core/v4l2-common.c > @@ -256,10 +256,10 @@ const struct v4l2_format_info *v4l2_format_info(u32= format) > =C2=A0 { .format =3D V4L2_PIX_FMT_XRGB32,=C2=A0 .pixel_enc =3D V4L2_PIXE= L_ENC_RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, = .bpp_div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > =C2=A0 { .format =3D V4L2_PIX_FMT_RGBX32,=C2=A0 .pixel_enc =3D V4L2_PIXE= L_ENC_RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, = .bpp_div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > =C2=A0 { .format =3D V4L2_PIX_FMT_HSV32,=C2=A0=C2=A0 .pixel_enc =3D V4L2= _PIXEL_ENC_RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, = 0 }, .bpp_div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > - { .format =3D V4L2_PIX_FMT_ARGB32,=C2=A0 .pixel_enc =3D V4L2_PIXEL_ENC= _RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .bpp_= div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > - { .format =3D V4L2_PIX_FMT_RGBA32,=C2=A0 .pixel_enc =3D V4L2_PIXEL_ENC= _RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .bpp_= div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > - { .format =3D V4L2_PIX_FMT_ABGR32,=C2=A0 .pixel_enc =3D V4L2_PIXEL_ENC= _RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .bpp_= div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > - { .format =3D V4L2_PIX_FMT_BGRA32,=C2=A0 .pixel_enc =3D V4L2_PIXEL_ENC= _RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .bpp_= div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > + { .format =3D V4L2_PIX_FMT_ARGB32,=C2=A0 .pixel_enc =3D V4L2_PIXEL_ENC= _RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .bpp_= div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1, .has_alpha =3D true }, > + { .format =3D V4L2_PIX_FMT_RGBA32,=C2=A0 .pixel_enc =3D V4L2_PIXEL_ENC= _RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .bpp_= div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1, .has_alpha =3D true }, > + { .format =3D V4L2_PIX_FMT_ABGR32,=C2=A0 .pixel_enc =3D V4L2_PIXEL_ENC= _RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .bpp_= div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1, .has_alpha =3D true }, > + { .format =3D V4L2_PIX_FMT_BGRA32,=C2=A0 .pixel_enc =3D V4L2_PIXEL_ENC= _RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .bpp_= div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1, .has_alpha =3D true }, > =C2=A0 { .format =3D V4L2_PIX_FMT_RGB565,=C2=A0 .pixel_enc =3D V4L2_PIXE= L_ENC_RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 2, 0, 0, 0 }, = .bpp_div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > =C2=A0 { .format =3D V4L2_PIX_FMT_RGB565X, .pixel_enc =3D V4L2_PIXEL_ENC= _RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 2, 0, 0, 0 }, .bpp_= div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > =C2=A0 { .format =3D V4L2_PIX_FMT_RGB555,=C2=A0 .pixel_enc =3D V4L2_PIXE= L_ENC_RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 2, 0, 0, 0 }, = .bpp_div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > @@ -267,10 +267,10 @@ const struct v4l2_format_info *v4l2_format_info(u32= format) > =C2=A0 { .format =3D V4L2_PIX_FMT_BGR48_12, .pixel_enc =3D V4L2_PIXEL_EN= C_RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 6, 0, 0, 0 }, .bpp= _div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > =C2=A0 { .format =3D V4L2_PIX_FMT_BGR48, .pixel_enc =3D V4L2_PIXEL_ENC_R= GB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 6, 0, 0, 0 }, .bpp_di= v =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > =C2=A0 { .format =3D V4L2_PIX_FMT_RGB48, .pixel_enc =3D V4L2_PIXEL_ENC_R= GB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 6, 0, 0, 0 }, .bpp_di= v =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > - { .format =3D V4L2_PIX_FMT_ABGR64_12, .pixel_enc =3D V4L2_PIXEL_ENC_RG= B, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 8, 0, 0, 0 }, .bpp_div= =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > - { .format =3D V4L2_PIX_FMT_RGBA1010102, .pixel_enc =3D V4L2_PIXEL_ENC_= RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .bpp_d= iv =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > + { .format =3D V4L2_PIX_FMT_ABGR64_12, .pixel_enc =3D V4L2_PIXEL_ENC_RG= B, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 8, 0, 0, 0 }, .bpp_div= =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1, .has_alpha =3D true }, > + { .format =3D V4L2_PIX_FMT_RGBA1010102, .pixel_enc =3D V4L2_PIXEL_ENC_= RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .bpp_d= iv =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1, .has_alpha =3D true }, > =C2=A0 { .format =3D V4L2_PIX_FMT_RGBX1010102, .pixel_enc =3D V4L2_PIXEL= _ENC_RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .= bpp_div =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > - { .format =3D V4L2_PIX_FMT_ARGB2101010, .pixel_enc =3D V4L2_PIXEL_ENC_= RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .bpp_d= iv =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1 }, > + { .format =3D V4L2_PIX_FMT_ARGB2101010, .pixel_enc =3D V4L2_PIXEL_ENC_= RGB, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 4, 0, 0, 0 }, .bpp_d= iv =3D { 1, 1, 1, 1 }, .hdiv =3D 1, .vdiv =3D 1, .has_alpha =3D true }, > =C2=A0 > =C2=A0 /* YUV packed formats */ > =C2=A0 { .format =3D V4L2_PIX_FMT_YUYV,=C2=A0=C2=A0=C2=A0 .pixel_enc =3D= V4L2_PIXEL_ENC_YUV, .mem_planes =3D 1, .comp_planes =3D 1, .bpp =3D { 2, 0= , 0, 0 }, .bpp_div =3D { 1, 1, 1, 1 }, .hdiv =3D 2, .vdiv =3D 1 }, > diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h > index f8b1faced79c8..401d8506c24b5 100644 > --- a/include/media/v4l2-common.h > +++ b/include/media/v4l2-common.h > @@ -520,6 +520,7 @@ enum v4l2_pixel_encoding { > =C2=A0 * @vdiv: Vertical chroma subsampling factor > =C2=A0 * @block_w: Per-plane macroblock pixel width (optional) > =C2=A0 * @block_h: Per-plane macroblock pixel height (optional) > + * @has_alpha: Does the format embeds an alpha component? > =C2=A0 */ > =C2=A0struct v4l2_format_info { > =C2=A0 u32 format; > @@ -532,6 +533,7 @@ struct v4l2_format_info { > =C2=A0 u8 vdiv; > =C2=A0 u8 block_w[4]; > =C2=A0 u8 block_h[4]; > + bool has_alpha; > =C2=A0}; > =C2=A0 > =C2=A0static inline bool v4l2_is_format_rgb(const struct v4l2_format_info= *f) --=-fmKYZ+5/CD21oWsxEXAZ Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQTvDVKBFcTDwhoEbxLZQZRRKWBy9AUCaUv3lAAKCRDZQZRRKWBy 9ITFAP0SuxSrmoVrRQQArsjL7nVuYkwcZ8G4yi0itFrxxipp4gEAmtXbIy/6hv8m dQE9yLNIZrBWsXb+HsoBsrQZxSooGwc= =w5st -----END PGP SIGNATURE----- --=-fmKYZ+5/CD21oWsxEXAZ--