From nobody Fri Sep 25 16:04:05 2026 Received: from fhigh-a7-smtp.messagingengine.com (fhigh-a7-smtp.messagingengine.com [103.168.172.158]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2A80F481AB5; Thu, 10 Sep 2026 17:23:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.158 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789061003; cv=none; b=Q3GQkiK7boHPWZHbhbCSCuVSDX4rciffz1GGdeCVwk9kQGGCzegm0d7N4KRxWY6NorYlrkjwRlLlcndSeDUNoJJ49ogAQVT1VVsqLecGh1nC5FotNhBnkwjkoK8ADNmQUBgOYzHUXsZ3kP9jhufqAhoY7q+BBBFokbXJ/4oI8oY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789061003; c=relaxed/simple; bh=scWCWA88o4VX0VPoZMQAskbn76QyI8hdpUUJeVKaoaI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YCpLwppj0cez0EpU5wJMBLLbMTLZTiFiq0BiEqS0g40LLkPi/JlIy7PfciB3alwEU0/QO32j9UXPgmUtl/tfJYzN58wVRzrBKiLwcS2QQ2wBKI+8AIiJqSNyhik9dEyPnkSSxZsVll1kWmiom6FAEjqXgLqqWUTTFTvqJGeDLzo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=tDaFPe/r; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=QcN+sF75; arc=none smtp.client-ip=103.168.172.158 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="tDaFPe/r"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="QcN+sF75" Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfhigh.phl.internal (Postfix) with ESMTP id 78A3D1400167; Thu, 10 Sep 2026 13:23:07 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-04.internal (MEProxy); Thu, 10 Sep 2026 13:23:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1789060987; x=1789147387; bh=3/zSufBdyTduYuvt0Hxt1E3AhkNI1loNGCTR3q+m4sk=; b= tDaFPe/rQ2/FVaAJc5XiJIXIi+FJcKv0H8FuGJKo6C2/fFJryOUi2F8NZCqPpCDd hTltLOkBMj510iz7aoGuxR/6JEDm0lHPOdSS9MmnY+/sgCux0+HvDwOa28/jMOdU qiQEN8YbI/9r7mYwnKphe4T7cG0o7+XlpQBh5AOCqGGKkHKLwwlXFOitCnKTkGrg fnVnCK7CEKPe/bnzzOBnMGVMTElbwFaLZ/5+8/Exof7jX4Eqqp9rBKTQg7eIMQ6q S194gOTWD83hH3PxMYNcaGHE1by5kkhMiPoWzI8xUR44XCSXdwYSkhYn4gOq012W RrDFcAiyw6vrcWNv1psD7w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1789060987; x= 1789147387; bh=3/zSufBdyTduYuvt0Hxt1E3AhkNI1loNGCTR3q+m4sk=; b=Q cN+sF75NbCqc5qVIdVNIayNU2qQrl170svHpWbQ9DeSljz2YOsHGzfMXenQ2LEsT fhjwSu3leZ5rh3shjqY/BgxesLHnBipTBYrnK3jWq8HjIWP1qLZ5QfxX3nZtMFvq w6YABbqMl+KfegUkcz56BQ6G4q35F4d6KCjCs7uZD5YCLnrW/UbTWQoDdUtepYYI QR72Wz6u7/UZoRgrYAkvLZC7C367WftM/f4vdbjCibnyUStouyCFMnf2odyfi7rk LZEV4bKzO49A1yRn5N1JR7w6Tk3zvb1gm42MWu4Kl264EzW8Aa+xZS//Q3pAhQax fZ0clD+jwjnm4MZV21aGA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTG2QFDA+iNuUNX1o895p6n98o1glLl3I4m4xmfaPDS///3K7Hfx7PIQfjbm4wu4FD +59nbbGCGt2km6RO2OM7c3d0dxWIOqJKI7GExpk5XKY3zJZp8LeXn2FaJKTPBEHPCiydKf vMUUULPeFjj1RaMxfLz2tKH/FP1YmY/gIBfGI4Lz/2VpcYNOkVkpZlFbjy5/qShnUDdP9l MUTITZ1ix9fu02vXiK4U4vR2/8ELa6BJUL/pnyYkXdjq7ISRf6xI1Gzfi62UDI2o9OXS3a 5SrBw5Wa66GG6zbHTnFqe3GwfXct/TASh4sDMmcr8kQWAykEd75qN4t/RkMkN8CgZDABJx zMeVcP0ScM2Ha9uuZgTNquoe9m/rJx8Qg3A31Z860Y+ry75IZTrSXdKQF/2XxJrkN68fsY Csaoc848daIgudhQmfCsyWHgGI4DhUDV3GYNCGG8f/zrd5OzvxFpPKdyNNYo6mQfIASqAj Bo/y+g6Ha8IFyUUtwCso5+vmDsWF7Rwf75YdHSEB2dCLR5apqO/+U4l+UGfNgnCUmeoNLw gdQHY20tDvI2yhhy3pISg7tSdAW2n5oNRrlszIJqHSd+zGfez5NS1NAmvxbFmaGKva4jxt 8rEIKecHAwTwjlItB5b/1K96SFujXFl4AHBMuT/FmvcEpR87Jz9RiV+wUong X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 10 Sep 2026 13:23:06 -0400 (EDT) From: =?utf-8?q?Niklas_S=C3=B6derlund?= Date: Thu, 10 Sep 2026 19:22:31 +0200 Subject: [PATCH 1/3] media: uapi: videodev2: Add 20-bit Bayer formats Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260910-v4l2-add-raw-pix-v1-1-80a8e855b41b@ragnatech.se> References: <20260910-v4l2-add-raw-pix-v1-0-80a8e855b41b@ragnatech.se> In-Reply-To: <20260910-v4l2-add-raw-pix-v1-0-80a8e855b41b@ragnatech.se> To: Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, =?utf-8?q?Niklas_S=C3=B6derlund?= X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=5405; i=niklas.soderlund+renesas@ragnatech.se; h=from:subject:message-id; bh=scWCWA88o4VX0VPoZMQAskbn76QyI8hdpUUJeVKaoaI=; b=owEBbQKS/ZANAwAKAQm0/3kE+U0kAcsmYgBqoud2KYWOtN/4ThUapLV/IyG/COzk5a35REFYm 4rM40dyzMSJAjMEAAEKAB0WIQRwy9J0OLNPX3a0+3gJtP95BPlNJAUCaqLndgAKCRAJtP95BPlN JOyDD/9cnft3MYQFYUj9zlqvj8xLhNCL5AmiaP487cYElKwGBz5XG9i3+l/WyK6qpyNVXCC2BQ8 Sn7ju+GvEnJ/cMv4MIfzgLuSsZxHkk4SWUJyxEYG+7cueSTf46RF59U3L/gCWK83znTVPUCC7Fj FbDlwmrxT2Qt2/Q2oQGjW9K5TiFs+gUrbNTLGmRoUqQPP6Jw+VgvXADdjMjqYUkiowTzVnb3SCC 3k/uWrLgkGh8QM7xPstPVqja/+Y7uHTT9SbmmZKwZiBHRNEhcRE6+stM+L0qCJLAEk9bf/njct+ nyR9eTXvj5ZI9n7yGPe/x2ccOlp/TkvQtRc8X4BNetHBEZ3yHRVNqPnEGKUDQtUJOR54L+6D+3m a+qEyhnZfYj2bAFY4glFoLhZsfwofJfMFRc0t1l+lFAFkEAQmQhEvikcWWEhJOtKMhwLDp5Cyzo ndiu0i0AUJ99tUlcK2ifcf9UdU500KojpL/FVPkLlh4lJ1a++AvJ3TfPsiNdsn9MLaew4g0pFhp o1pw6iWxDZ3GpxdTGxArevnKotcyORgUXDf5ZSwKpR3oXhJ3rwmxDvlfR4FN479FcBPdEIIJ9Ux V+Sa0zU2G+z9v/jv0P48ilhg+dTtJcxFebayCD5l9IW5aFPifqkRK5/PTv4kn/WNGSHqYnsOvbV fFN8qgxgqKGSaDg== X-Developer-Key: i=niklas.soderlund+renesas@ragnatech.se; a=openpgp; fpr=9976695FE98693307BF360A2F1591ABD9588DA5F Add 20-bit Bayer formats and documentation. Signed-off-by: Niklas S=C3=B6derlund --- .../userspace-api/media/v4l/pixfmt-bayer.rst | 1 + .../userspace-api/media/v4l/pixfmt-srggb20.rst | 102 +++++++++++++++++= ++++ drivers/media/v4l2-core/v4l2-ioctl.c | 4 + include/uapi/linux/videodev2.h | 4 + 4 files changed, 111 insertions(+) diff --git a/Documentation/userspace-api/media/v4l/pixfmt-bayer.rst b/Docum= entation/userspace-api/media/v4l/pixfmt-bayer.rst index 8b4e413177f5..b93e66d6a27e 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt-bayer.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt-bayer.rst @@ -33,3 +33,4 @@ orders. See also `the Wikipedia article on Bayer filter pixfmt-srggb14 pixfmt-srggb14p pixfmt-srggb16 + pixfmt-srggb20 diff --git a/Documentation/userspace-api/media/v4l/pixfmt-srggb20.rst b/Doc= umentation/userspace-api/media/v4l/pixfmt-srggb20.rst new file mode 100644 index 000000000000..cf911e93aa8d --- /dev/null +++ b/Documentation/userspace-api/media/v4l/pixfmt-srggb20.rst @@ -0,0 +1,102 @@ +.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later +.. c:namespace:: V4L + +.. _V4L2-PIX-FMT-SRGGB20: +.. _v4l2-pix-fmt-sbggr20: +.. _v4l2-pix-fmt-sgbrg20: +.. _v4l2-pix-fmt-sgrbg20: + +**************************************************************************= ************************************************* +V4L2_PIX_FMT_SBGGR20 ('BG20'), V4L2_PIX_FMT_SGBRG20 ('GB20'), V4L2_PIX_FMT= _SGRBG20 ('GR20'), V4L2_PIX_FMT_SRGGB20 ('RG20'), +**************************************************************************= ************************************************* + + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +20-bit Bayer formats +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + + +Description +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +These four pixel formats are raw sRGB / Bayer formats with 20 bits per +sample. Each sample is stored in a 32-bit word. Each n-pixel row contains +n/2 green samples and n/2 blue or red samples, with alternating red and bl= ue +rows. Bytes are stored in memory in little endian order. They are +conventionally described as GRGR... BGBG..., RGRG... GBGB..., etc. Below is +an example of one sample. + +.. cssclass: longtable + +.. flat-table:: 20-bit Bayer Formats + :header-rows: 2 + :stub-columns: 0 + + * - + - :cspan:`31` Sample organization + * - Bit + - 31 + - 30 + - 29 + - 28 + - 27 + - 26 + - 25 + - 24 + - 23 + - 22 + - 21 + - 20 + - 19 + - 18 + - 17 + - 16 + - 15 + - 14 + - 13 + - 12 + - 11 + - 10 + - 9 + - 8 + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + * - + - * + - * + - * + - * + - * + - * + - * + - * + - * + - * + - * + - * + - P\ :sub:`19` + - P\ :sub:`18` + - P\ :sub:`17` + - P\ :sub:`16` + - P\ :sub:`15` + - P\ :sub:`14` + - P\ :sub:`13` + - P\ :sub:`12` + - P\ :sub:`11` + - P\ :sub:`10` + - P\ :sub:`9` + - P\ :sub:`8` + - P\ :sub:`7` + - P\ :sub:`6` + - P\ :sub:`5` + - P\ :sub:`4` + - P\ :sub:`3` + - P\ :sub:`2` + - P\ :sub:`1` + - P\ :sub:`0` diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core= /v4l2-ioctl.c index 17ba1ae70735..14cb94591ea8 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1434,6 +1434,10 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fm= t) case V4L2_PIX_FMT_SGBRG16: descr =3D "16-bit Bayer GBGB/RGRG"; break; case V4L2_PIX_FMT_SGRBG16: descr =3D "16-bit Bayer GRGR/BGBG"; break; case V4L2_PIX_FMT_SRGGB16: descr =3D "16-bit Bayer RGRG/GBGB"; break; + case V4L2_PIX_FMT_SBGGR20: descr =3D "20-bit Bayer BGBG/GRGR"; break; + case V4L2_PIX_FMT_SGBRG20: descr =3D "20-bit Bayer GBGB/RGRG"; break; + case V4L2_PIX_FMT_SGRBG20: descr =3D "20-bit Bayer GRGR/BGBG"; break; + case V4L2_PIX_FMT_SRGGB20: descr =3D "20-bit Bayer RGRG/GBGB"; break; case V4L2_PIX_FMT_RAW_CRU20: descr =3D "14-bit Raw CRU Packed"; break; case V4L2_PIX_FMT_SN9C20X_I420: descr =3D "GSPCA SN9C20X I420"; break; case V4L2_PIX_FMT_SPCA501: descr =3D "GSPCA SPCA501"; break; diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 5373dba640fa..85a32dee4e21 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -744,6 +744,10 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB..= RGRG.. */ #define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16 GRGR..= BGBG.. */ #define V4L2_PIX_FMT_SRGGB16 v4l2_fourcc('R', 'G', '1', '6') /* 16 RGRG..= GBGB.. */ +#define V4L2_PIX_FMT_SBGGR20 v4l2_fourcc('B', 'G', '2', '0') /* 20 BGBG..= GRGR.. */ +#define V4L2_PIX_FMT_SGBRG20 v4l2_fourcc('G', 'B', '2', '0') /* 20 GBGB..= RGRG.. */ +#define V4L2_PIX_FMT_SGRBG20 v4l2_fourcc('G', 'R', '2', '0') /* 20 GRGR..= BGBG.. */ +#define V4L2_PIX_FMT_SRGGB20 v4l2_fourcc('R', 'G', '2', '0') /* 20 RGRG..= GBGB.. */ =20 /* HSV formats */ #define V4L2_PIX_FMT_HSV24 v4l2_fourcc('H', 'S', 'V', '3') --=20 2.55.0 From nobody Fri Sep 25 16:04:05 2026 Received: from fhigh-a7-smtp.messagingengine.com (fhigh-a7-smtp.messagingengine.com [103.168.172.158]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F382C361977; Thu, 10 Sep 2026 17:23:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.158 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789061010; cv=none; b=R5EYuvIqcvKNjZi+BCTLTm17J5jT7SOe87ZY17RsGxKHpShtGpmY812HpP0IAXQze/4xDy7dBbKyyRbZil93beDneQSk+OogxlTk/8lHZLcoEVq+KfmEJl/31hJL5eS+z9WpT13Vf6eAi293kFao/alualwOs1BwEUga87Co+18= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789061010; c=relaxed/simple; bh=zGIoYJxTD+hIwMAPyHiKO4yosOXVoi5ei9gPparQwk8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=formgM14h+nw1Ny0JLwk8HN7BX737GlR1kXF///UZmjGM3CYxe3oxpOEqviI1y4SprcIgxP6gIaMxEdQFe15gnLOMa5vefknsDmqgGMQVvQ1smDzrxrcyLarAiJz5IPEk++jYv6CVgzwX7C9kVsPXOoVvAyFMHAK45SLLL9mScM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=SBeJkH4D; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=JBZ/yv3p; arc=none smtp.client-ip=103.168.172.158 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="SBeJkH4D"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="JBZ/yv3p" Received: from phl-compute-08.internal (phl-compute-08.internal [10.202.2.48]) by mailfhigh.phl.internal (Postfix) with ESMTP id 164F314000DB; Thu, 10 Sep 2026 13:23:10 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-08.internal (MEProxy); Thu, 10 Sep 2026 13:23:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1789060990; x=1789147390; bh=4fRgGcK+E/Zt77mkBDKqWwotZSmfgo4V9w7KCVvSSdM=; b= SBeJkH4D/sDPOPu8y0Y2EKbE0ifIammkuuNGeeuryvaPgHntkxLvM6lpNevPAA1f vtsgPaHHbuMb2mkBik93cDW2bJglQKt0LhoG/esgXytdX9b5fcIoB9aFgJpLa1H4 A8LPfg4VxpPqNyiPcaRWNChwf9aTTSYvp9eAuUsGNQhM3QCuVMmkkBEcecl/346M FOkTtrF0tVSke2+n/cFr11IZOma1BMsYhaiCxvF12ILsGG9aK0fZPxjWa/mylpWt PeyVcLwxTT0IKS710LjFDIS24e2ljl/TpV9i2B6UyG2IVIXaV69GT52qVLh4vt1L I50LAyjqr2koar1+QbSnEg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1789060990; x= 1789147390; bh=4fRgGcK+E/Zt77mkBDKqWwotZSmfgo4V9w7KCVvSSdM=; b=J BZ/yv3pRO4m04rZFWkDF6AioD2+Jo03DJBUJv906Hd91AVQos7xXAZi35luS/gmE ZRbjojjdbGZ18gRsw5uzM/n7bdBbx0Q5UKhrl7/uXs7/Ak/ewVGbbrxcCecFdw6J 7O57JOYpge/dpif0FxA8vS0GXvyFlYXaN+i1O5F7G1OsPbgL+QMjBEF8hkZ7MgzD qPp/XXB9KypivFfgpo2WgFQweE0ezdq2KPq+gBRmkSXmUnNScYZY73hcSEIayD2n SjZWN2WYYeAHHWg9BHv7WKOx5Irv1nB9Zl5gqy/nNA6l1kl7aClwnzkAYsKu3YWH AUL83jOzN97Yc/adlELKA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTG2QFDA+iNuUNX1o895p6n98o1glLl3I4m4xmfaPDS///3K7Hfx7PIQfjbm4wu4FD +59nbbGCGt2km6RO2OM7c3d0dxWIOqJKI7GExpk5XKY3zJZp8LeXn2FaJKTPBEHPCiydKf vMUUULPeFjj1RaMxfLz2tKH/FP1YmY/gIBfGI4Lz/2VpcYNOkVkpZlFbjy5/qShnUDdP9l MUTITZ1ix9fu02vXiK4U4vR2/8ELa6BJUL/pnyYkXdjq7ISRf6xI1Gzfi62UDI2o9OXS3a 5SrBw5Wa66GG6zbHTnFqe3GwfXct/TASh4sDMmcr8kQWAykEd75qN4t/RkMkN8CgZDABsi CSzJRSx+9ihb/cvMA6HdlV/oOlCFNfkjzwC66Yu8Q+k4vEQWeI/FO68UbezWPpF9BLNKQd G1vYFCILyTqyzIL3MvFpiYH8uuR0cMPKNYufDIxdd/QvKf2aqACKd2BK3NMqyNXchvEr7n Pxo+JO8eNEFIMcEGw8BFuzxtDHw7efBsVbt/jZXPU0pnt3uFMbmBzUoIbZg96qF/LDRc8r YZrl4qyFkvKowBRCkwxZrPGVYIcAHgirXsVYSdFVKTXAB61FFT8heIRHevQEk9PTfSMN6J r/BKxNdc700y1LzqAbC5q8S53pmGsgQHTfIeFJkKAnzN/GQMfU2TBf9OzH6g X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 10 Sep 2026 13:23:09 -0400 (EDT) From: =?utf-8?q?Niklas_S=C3=B6derlund?= Date: Thu, 10 Sep 2026 19:22:32 +0200 Subject: [PATCH 2/3] media: uapi: videodev2: Add 24-bit Bayer formats Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260910-v4l2-add-raw-pix-v1-2-80a8e855b41b@ragnatech.se> References: <20260910-v4l2-add-raw-pix-v1-0-80a8e855b41b@ragnatech.se> In-Reply-To: <20260910-v4l2-add-raw-pix-v1-0-80a8e855b41b@ragnatech.se> To: Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, =?utf-8?q?Niklas_S=C3=B6derlund?= X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=5449; i=niklas.soderlund+renesas@ragnatech.se; h=from:subject:message-id; bh=zGIoYJxTD+hIwMAPyHiKO4yosOXVoi5ei9gPparQwk8=; b=owEBbQKS/ZANAwAKAQm0/3kE+U0kAcsmYgBqoud2P5GTdRwcZ2lZGSE/MpffFRTnGO5c9fLmd +IlBIuP9NCJAjMEAAEKAB0WIQRwy9J0OLNPX3a0+3gJtP95BPlNJAUCaqLndgAKCRAJtP95BPlN JJbND/0aGvA8+POpNruuS4CLvq9uU9kR4uueDvHxlVnF77HfApVWSygbLBNIVRNEaq/rOACYMdm +RdA0epJlYMjCVJ3uw3dUen+5BIgTVQfY17Qimuq7lvVkqxcbN53g1zkKlD6li+o0E6KwbZslOy cVJNAfvKChYmQKaU2KDdTBy6fN/D2AHyizNwU5spV2sePl6oAAoPpndpAb2h0Y/WmdrOqCwqidN 0sGO4fCJdweB7uJCmdBjlC9Lrgm9uD5oqiUmzjOQm/kb76FVXp9RStclu9cZMYqLm9VTrQj3LBo PRRt4mkPVhAiUN4L/PvkbNgsVypumABQCBlCNQWRpzSytW1k8FB0R00pKrGE5B62Sgax4ScmPoe Su1OQXtaMuM2dmCfN/VimfidjUTHeADZ5zetwJrYmUvM+RTRAkHD6RAPDW5iacuR4zSZVdDlXrL YUtKPSVvOSXXzZZFesSDg70IZ8lzwBRVuYQwDdFPWvgngeL+MPAAgP81HIMPDXe3D3xas4bpgwt ndBVsNBFCZ+/FCg1w7koY2ROJcIsfq9/Cfi7J1odwVwK6Dph0/BPhnUxvEdcXECJxTdo1P+48xv mKOIen96q1sAiYxkiNgOKO6cHY/dZzgGuGF44wdwpC5eqDj+nvyw+LX5+c9QNtkKxmjAEW7AwcB W1Z1Rif/f6/CUNA== X-Developer-Key: i=niklas.soderlund+renesas@ragnatech.se; a=openpgp; fpr=9976695FE98693307BF360A2F1591ABD9588DA5F Add 24-bit Bayer formats and documentation. Signed-off-by: Niklas S=C3=B6derlund --- .../userspace-api/media/v4l/pixfmt-bayer.rst | 1 + .../userspace-api/media/v4l/pixfmt-srggb24.rst | 102 +++++++++++++++++= ++++ drivers/media/v4l2-core/v4l2-ioctl.c | 4 + include/uapi/linux/videodev2.h | 4 + 4 files changed, 111 insertions(+) diff --git a/Documentation/userspace-api/media/v4l/pixfmt-bayer.rst b/Docum= entation/userspace-api/media/v4l/pixfmt-bayer.rst index b93e66d6a27e..9d76def66648 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt-bayer.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt-bayer.rst @@ -34,3 +34,4 @@ orders. See also `the Wikipedia article on Bayer filter pixfmt-srggb14p pixfmt-srggb16 pixfmt-srggb20 + pixfmt-srggb24 diff --git a/Documentation/userspace-api/media/v4l/pixfmt-srggb24.rst b/Doc= umentation/userspace-api/media/v4l/pixfmt-srggb24.rst new file mode 100644 index 000000000000..e08a00882d81 --- /dev/null +++ b/Documentation/userspace-api/media/v4l/pixfmt-srggb24.rst @@ -0,0 +1,102 @@ +.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later +.. c:namespace:: V4L + +.. _V4L2-PIX-FMT-SRGGB24: +.. _v4l2-pix-fmt-sbggr24: +.. _v4l2-pix-fmt-sgbrg24: +.. _v4l2-pix-fmt-sgrbg24: + +**************************************************************************= ************************************************* +V4L2_PIX_FMT_SBGGR24 ('BG24'), V4L2_PIX_FMT_SGBRG24 ('GB24'), V4L2_PIX_FMT= _SGRBG24 ('GR24'), V4L2_PIX_FMT_SRGGB24 ('RG24'), +**************************************************************************= ************************************************* + + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +24-bit Bayer formats +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + + +Description +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +These four pixel formats are raw sRGB / Bayer formats with 24 bits per +sample. Each sample is stored in a 32-bit word. Each n-pixel row contains +n/2 green samples and n/2 blue or red samples, with alternating red and bl= ue +rows. Bytes are stored in memory in little endian order. They are +conventionally described as GRGR... BGBG..., RGRG... GBGB..., etc. Below is +an example of one sample. + +.. cssclass: longtable + +.. flat-table:: 24-bit Bayer Formats + :header-rows: 2 + :stub-columns: 0 + + * - + - :cspan:`31` Sample organization + * - Bit + - 31 + - 30 + - 29 + - 28 + - 27 + - 26 + - 25 + - 24 + - 23 + - 22 + - 21 + - 20 + - 19 + - 18 + - 17 + - 16 + - 15 + - 14 + - 13 + - 12 + - 11 + - 10 + - 9 + - 8 + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + * - + - * + - * + - * + - * + - * + - * + - * + - * + - P\ :sub:`23` + - P\ :sub:`22` + - P\ :sub:`21` + - P\ :sub:`20` + - P\ :sub:`19` + - P\ :sub:`18` + - P\ :sub:`17` + - P\ :sub:`16` + - P\ :sub:`15` + - P\ :sub:`14` + - P\ :sub:`13` + - P\ :sub:`12` + - P\ :sub:`11` + - P\ :sub:`10` + - P\ :sub:`9` + - P\ :sub:`8` + - P\ :sub:`7` + - P\ :sub:`6` + - P\ :sub:`5` + - P\ :sub:`4` + - P\ :sub:`3` + - P\ :sub:`2` + - P\ :sub:`1` + - P\ :sub:`0` diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core= /v4l2-ioctl.c index 14cb94591ea8..cf2831cbdbc8 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1438,6 +1438,10 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fm= t) case V4L2_PIX_FMT_SGBRG20: descr =3D "20-bit Bayer GBGB/RGRG"; break; case V4L2_PIX_FMT_SGRBG20: descr =3D "20-bit Bayer GRGR/BGBG"; break; case V4L2_PIX_FMT_SRGGB20: descr =3D "20-bit Bayer RGRG/GBGB"; break; + case V4L2_PIX_FMT_SBGGR24: descr =3D "24-bit Bayer BGBG/GRGR"; break; + case V4L2_PIX_FMT_SGBRG24: descr =3D "24-bit Bayer GBGB/RGRG"; break; + case V4L2_PIX_FMT_SGRBG24: descr =3D "24-bit Bayer GRGR/BGBG"; break; + case V4L2_PIX_FMT_SRGGB24: descr =3D "24-bit Bayer RGRG/GBGB"; break; case V4L2_PIX_FMT_RAW_CRU20: descr =3D "14-bit Raw CRU Packed"; break; case V4L2_PIX_FMT_SN9C20X_I420: descr =3D "GSPCA SN9C20X I420"; break; case V4L2_PIX_FMT_SPCA501: descr =3D "GSPCA SPCA501"; break; diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 85a32dee4e21..027c7c7a352c 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -748,6 +748,10 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_SGBRG20 v4l2_fourcc('G', 'B', '2', '0') /* 20 GBGB..= RGRG.. */ #define V4L2_PIX_FMT_SGRBG20 v4l2_fourcc('G', 'R', '2', '0') /* 20 GRGR..= BGBG.. */ #define V4L2_PIX_FMT_SRGGB20 v4l2_fourcc('R', 'G', '2', '0') /* 20 RGRG..= GBGB.. */ +#define V4L2_PIX_FMT_SBGGR24 v4l2_fourcc('B', 'G', '2', '4') /* 24 BGBG..= GRGR.. */ +#define V4L2_PIX_FMT_SGBRG24 v4l2_fourcc('G', 'B', '2', '4') /* 24 GBGB..= RGRG.. */ +#define V4L2_PIX_FMT_SGRBG24 v4l2_fourcc('G', 'R', '2', '4') /* 24 GRGR..= BGBG.. */ +#define V4L2_PIX_FMT_SRGGB24 v4l2_fourcc('R', 'G', '2', '4') /* 24 RGRG..= GBGB.. */ =20 /* HSV formats */ #define V4L2_PIX_FMT_HSV24 v4l2_fourcc('H', 'S', 'V', '3') --=20 2.55.0 From nobody Fri Sep 25 16:04:05 2026 Received: from fout-a4-smtp.messagingengine.com (fout-a4-smtp.messagingengine.com [103.168.172.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 648DB55C1D6; Thu, 10 Sep 2026 17:23:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.147 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789061015; cv=none; b=P1m3CKT/K+iAbZgZ01A6oVldbhLhE30GiNKAaz1Cw8yfLRZTqaqdQylfdI9qkd9OqnDVuC1wuJnclvUaU2J4DC6KVqcGv9WylqIhzmim3cWP6sVTVvOJvM7wZ8CEdtusCvKEya/nzCWT8szOewaMASWMtwYqGkLNyeBoO+ssM9w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789061015; c=relaxed/simple; bh=fxiAQCIsYDMUyYmhH9obs209Z2ARDy73ns0QUGRFSLk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=F8PvqE1WOJYth3TcunUxGGVxY3apCRkMPQRD4YXJLqp9AygXpGHsZ4OO4uNs+BrR7hlXOYfovlxz9tYkmKejZ17PB/msuipufkgP8iClxi/NbVFdm45u8NfgvdqnXFomU+c4QDHFXBScAqE54UwFnU6R134qUpUrIrXsHiDTipc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=Ep17TMBb; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=tyY53jTT; arc=none smtp.client-ip=103.168.172.147 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="Ep17TMBb"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="tyY53jTT" Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfout.phl.internal (Postfix) with ESMTP id 0385AEC00FA; Thu, 10 Sep 2026 13:23:12 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-06.internal (MEProxy); Thu, 10 Sep 2026 13:23:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1789060992; x=1789147392; bh=jHvREpjLuYAQmto3iNwLtYGbTZdr/rv2wMh54g/r0Jg=; b= Ep17TMBbfHKFpRUu52b19HjgFNHfKNx0V/fV3YxfJRQIkfPisfx+cUAtjhOzT+AC T2poz46WaZfKJU59PJI63fn0Y8tIMblBCQdwWg6Bn967fOmNAV0IRNWAhDxWZ17t j9MVkUxPKRzFIGJwOPk192xAwReoqiDOpuiHwxqovXEFagacVmUb+tjDMva4FSe0 Z40B7c5vqcBTQIIMlk1FqoJoh8foSitAs2rvs7gZwV2T7hp8HNFKKc2pT3aezvpP uaaaRu8VFjmQRwFTjrV3XDt9onf4HmPp9owtXEd/eXMNxX1htFwybglPL40ieziD feYuo4yEOkURCCHXQZBv9Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1789060992; x= 1789147392; bh=jHvREpjLuYAQmto3iNwLtYGbTZdr/rv2wMh54g/r0Jg=; b=t yY53jTT3Uzu/PyZugkxPvnNGghDDAtxW5TwfQv6dAGZQjqUEkV0bfsCw4HZM0Zn4 023ue0ir9t6QmYG9E1CcYxYu0f6ckpwi5Nbfp5txTJkwuVKQ2nRMUk0Js2MieppI rzMh+Sjy4rQuArJ6acue+kMvKuwjqDPzKP/3bPj83KwTRcz9+pR8fr0AORRVnfWH 57xFxU0zyvQmEzmW5xUEJQ5Dje3yzdiSEpYkRaAT8M0sYmoDfWOE6o8RrRG5FdR5 P+ueNs22VXOgYfjhsVBy1+d602grcKiRsYx+X2lJmOQtF8ZMaijg4ph7xH0FInvH tHSbAaxPcKp0kt0U8NwBw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTG2QFDA+iNuUNX1o895p6n98o1glLl3I4m4xmfaPDS///3K7Hfx7PIQfjbm4wu4FD +59nbbGCGt2km6RO2OM7c3d0dxWIOqJKI7GExpk5XKY3zJZp8LeXn2FaJKTPBEHPCiydKf vMUUULPeFjj1RaMxfLz2tKH/FP1YmY/gIBfGI4Lz/2VpcYNOkVkpZlFbjy5/qShnUDdP9l MUTITZ1ix9fu02vXiK4U4vR2/8ELa6BJUL/pnyYkXdjq7ISRf6xI1Gzfi62UDI2o9OXS3a 5SrBw5Wa66GG6zbHTnFqe3GwfXct/TASh4sDMmcr8kQWAykEd75qN4t/RkMkN8CgZDABPE cOGz5LLQK/GyKliAGPtJRnkTsCAJZB10uK6T40RTpKKOzwX05nT8hCryBJQos/JiDERuZr uqgMBPXwucwc/fA+vGrL7D73e5I1qFjn3bns3D0SIl1IvNEGlba00Al/l7y+S2qpYferYn ntSpnRGm/NitPEkp6mM/t6X5zfKn5kGVClrYXuUmAPX9eBEKhIZP/5xFk4jVPmrpwyDMF9 hhR9MKJQ1y48BKCF/I6KVZ4KGO3lsMc6nzK+A+/F9zNPMQjKZ7mqZ7g9/lzBY1OQTxLS1G HMsy37cJqDkwQJFRor9fjLqDoHLnobYGG6SBqq+CIQ6jLI2JfVCYQMXVvlRw X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 10 Sep 2026 13:23:11 -0400 (EDT) From: =?utf-8?q?Niklas_S=C3=B6derlund?= Date: Thu, 10 Sep 2026 19:22:33 +0200 Subject: [PATCH 3/3] media: uapi: videodev2: Add 28-bit Bayer formats Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260910-v4l2-add-raw-pix-v1-3-80a8e855b41b@ragnatech.se> References: <20260910-v4l2-add-raw-pix-v1-0-80a8e855b41b@ragnatech.se> In-Reply-To: <20260910-v4l2-add-raw-pix-v1-0-80a8e855b41b@ragnatech.se> To: Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, =?utf-8?q?Niklas_S=C3=B6derlund?= X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=5492; i=niklas.soderlund+renesas@ragnatech.se; h=from:subject:message-id; bh=fxiAQCIsYDMUyYmhH9obs209Z2ARDy73ns0QUGRFSLk=; b=owEBbQKS/ZANAwAKAQm0/3kE+U0kAcsmYgBqoud2LBAA0rgeCXEbWlb72wWuvWZOkSDEnjx+T 6Ugdt/KpE6JAjMEAAEKAB0WIQRwy9J0OLNPX3a0+3gJtP95BPlNJAUCaqLndgAKCRAJtP95BPlN JHabD/9IujeB/WZa74O2yBoPmgwpuV9yZN0a6vku6Yp871bUK2uAIWqGHEsa2FXufB5TuQtLwUg hSeG2OSDykqxwihsn9HbYTRsaRp04F1T1y8aVPeJWXHzlNJbBt/+iQ3eOuBOsXgaGVlbUTBWxK4 C53/23ho9+V+JhqnxuTuYsyfj7gTTxG3CYB9+sNW3exrDlpgGuh39VcuQ0VdjUZdP2/uFh95kdU lYon+p3+4fSNT3tTunLq+gsQD91Jnu/+AbMWIahRRE0EmCvYfuxuxIgZCxXQU0HZh2CxRJqMN43 W+DtwCN9O5ikzutQZDgnz0Yy2/edFKCSl6LU/vx3f0aU5uB/i3+vQCW8eRsVAgqLSicOezRXVxC MvTj6llhotbVEsXRPGeJPRQagkS0Zhmr42FbmXtrsAbGDbDnps/0tanGbJmpf+t2RPjNJD83spb VwMea3Hv/AMC/7pcGcuyyM0Gl3bQECiw9y6WVVTbnsF+T1Te9JdNMxbW2avr2uRVTqjU+YPbWh5 T9bYZGqu5hqFhkIBjocl6FQcx9Hn12+W9Q2hB9zWjEeFNPJW+dN9sjnvPA10BV8L6JP0PGKjUjy X9DUFOjE0i2YAwGc3WylFn76Nnsb0OrYnp0bGHgSJUWk+5tdmYtCF4fuaxAGsOhB5tc3DxVDOBn t9IUK5uGuAuijrg== X-Developer-Key: i=niklas.soderlund+renesas@ragnatech.se; a=openpgp; fpr=9976695FE98693307BF360A2F1591ABD9588DA5F Add 28-bit Bayer formats and documentation. Signed-off-by: Niklas S=C3=B6derlund --- .../userspace-api/media/v4l/pixfmt-bayer.rst | 1 + .../userspace-api/media/v4l/pixfmt-srggb28.rst | 102 +++++++++++++++++= ++++ drivers/media/v4l2-core/v4l2-ioctl.c | 4 + include/uapi/linux/videodev2.h | 4 + 4 files changed, 111 insertions(+) diff --git a/Documentation/userspace-api/media/v4l/pixfmt-bayer.rst b/Docum= entation/userspace-api/media/v4l/pixfmt-bayer.rst index 9d76def66648..ca915889199e 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt-bayer.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt-bayer.rst @@ -35,3 +35,4 @@ orders. See also `the Wikipedia article on Bayer filter pixfmt-srggb16 pixfmt-srggb20 pixfmt-srggb24 + pixfmt-srggb28 diff --git a/Documentation/userspace-api/media/v4l/pixfmt-srggb28.rst b/Doc= umentation/userspace-api/media/v4l/pixfmt-srggb28.rst new file mode 100644 index 000000000000..34133d430436 --- /dev/null +++ b/Documentation/userspace-api/media/v4l/pixfmt-srggb28.rst @@ -0,0 +1,102 @@ +.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later +.. c:namespace:: V4L + +.. _V4L2-PIX-FMT-SRGGB28: +.. _v4l2-pix-fmt-sbggr28: +.. _v4l2-pix-fmt-sgbrg28: +.. _v4l2-pix-fmt-sgrbg28: + +**************************************************************************= ************************************************* +V4L2_PIX_FMT_SBGGR28 ('BG28'), V4L2_PIX_FMT_SGBRG28 ('GB28'), V4L2_PIX_FMT= _SGRBG28 ('GR28'), V4L2_PIX_FMT_SRGGB28 ('RG28'), +**************************************************************************= ************************************************* + + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +28-bit Bayer formats +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + + +Description +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +These four pixel formats are raw sRGB / Bayer formats with 28 bits per +sample. Each sample is stored in a 32-bit word. Each n-pixel row contains +n/2 green samples and n/2 blue or red samples, with alternating red and bl= ue +rows. Bytes are stored in memory in little endian order. They are +conventionally described as GRGR... BGBG..., RGRG... GBGB..., etc. Below is +an example of one sample. + +.. cssclass: longtable + +.. flat-table:: 28-bit Bayer Formats + :header-rows: 2 + :stub-columns: 0 + + * - + - :cspan:`31` Sample organization + * - Bit + - 31 + - 30 + - 29 + - 28 + - 27 + - 26 + - 25 + - 24 + - 23 + - 22 + - 21 + - 20 + - 19 + - 18 + - 17 + - 16 + - 15 + - 14 + - 13 + - 12 + - 11 + - 10 + - 9 + - 8 + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + * - + - * + - * + - * + - * + - P\ :sub:`27` + - P\ :sub:`26` + - P\ :sub:`25` + - P\ :sub:`24` + - P\ :sub:`23` + - P\ :sub:`22` + - P\ :sub:`21` + - P\ :sub:`20` + - P\ :sub:`19` + - P\ :sub:`18` + - P\ :sub:`17` + - P\ :sub:`16` + - P\ :sub:`15` + - P\ :sub:`14` + - P\ :sub:`13` + - P\ :sub:`12` + - P\ :sub:`11` + - P\ :sub:`10` + - P\ :sub:`9` + - P\ :sub:`8` + - P\ :sub:`7` + - P\ :sub:`6` + - P\ :sub:`5` + - P\ :sub:`4` + - P\ :sub:`3` + - P\ :sub:`2` + - P\ :sub:`1` + - P\ :sub:`0` diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core= /v4l2-ioctl.c index cf2831cbdbc8..e14542ad3228 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1442,6 +1442,10 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fm= t) case V4L2_PIX_FMT_SGBRG24: descr =3D "24-bit Bayer GBGB/RGRG"; break; case V4L2_PIX_FMT_SGRBG24: descr =3D "24-bit Bayer GRGR/BGBG"; break; case V4L2_PIX_FMT_SRGGB24: descr =3D "24-bit Bayer RGRG/GBGB"; break; + case V4L2_PIX_FMT_SBGGR28: descr =3D "28-bit Bayer BGBG/GRGR"; break; + case V4L2_PIX_FMT_SGBRG28: descr =3D "28-bit Bayer GBGB/RGRG"; break; + case V4L2_PIX_FMT_SGRBG28: descr =3D "28-bit Bayer GRGR/BGBG"; break; + case V4L2_PIX_FMT_SRGGB28: descr =3D "28-bit Bayer RGRG/GBGB"; break; case V4L2_PIX_FMT_RAW_CRU20: descr =3D "14-bit Raw CRU Packed"; break; case V4L2_PIX_FMT_SN9C20X_I420: descr =3D "GSPCA SN9C20X I420"; break; case V4L2_PIX_FMT_SPCA501: descr =3D "GSPCA SPCA501"; break; diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 027c7c7a352c..0611ba1e5fd9 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -752,6 +752,10 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_SGBRG24 v4l2_fourcc('G', 'B', '2', '4') /* 24 GBGB..= RGRG.. */ #define V4L2_PIX_FMT_SGRBG24 v4l2_fourcc('G', 'R', '2', '4') /* 24 GRGR..= BGBG.. */ #define V4L2_PIX_FMT_SRGGB24 v4l2_fourcc('R', 'G', '2', '4') /* 24 RGRG..= GBGB.. */ +#define V4L2_PIX_FMT_SBGGR28 v4l2_fourcc('B', 'G', '2', '8') /* 28 BGBG..= GRGR.. */ +#define V4L2_PIX_FMT_SGBRG28 v4l2_fourcc('G', 'B', '2', '8') /* 28 GBGB..= RGRG.. */ +#define V4L2_PIX_FMT_SGRBG28 v4l2_fourcc('G', 'R', '2', '8') /* 28 GRGR..= BGBG.. */ +#define V4L2_PIX_FMT_SRGGB28 v4l2_fourcc('R', 'G', '2', '8') /* 28 RGRG..= GBGB.. */ =20 /* HSV formats */ #define V4L2_PIX_FMT_HSV24 v4l2_fourcc('H', 'S', 'V', '3') --=20 2.55.0