From: Jai Luthra <jai.luthra@ideasonboard.com>
To: Florian Fainelli <florian.fainelli@broadcom.com>,
Tomasz Figa <tfiga@chromium.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Kieran Bingham <kieran.bingham@ideasonboard.com>,
Dave Stevenson <dave.stevenson@raspberrypi.com>,
Naushir Patuck <naush@raspberrypi.com>,
Stefan Wahren <wahrenst@gmx.net>,
Paul Elder <paul.elder@ideasonboard.com>,
Hans Verkuil <hans@jjverkuil.nl>,
Tomasz Figa <tfiga@chromium.org>,
linux-media@vger.kernel.org,
linux-rpi-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
Jai Luthra <jai.luthra@ideasonboard.com>
Subject: [PATCH v5 05/10] platform/raspberrypi: vchiq-mmal: Support bayer and gray formats
Date: Thu, 17 Sep 2026 13:53:11 +0530 [thread overview]
Message-ID: <20260917-b4-vchiq-isp-v5-5-2d8870add2c0@ideasonboard.com> (raw)
In-Reply-To: <20260917-b4-vchiq-isp-v5-0-2d8870add2c0@ideasonboard.com>
Raw camera sensors often send data as packed or unpacked bayer and gray
formats, which needs to be processed by the ISP.
Add macros to support bayer and gray format FOURCCs in the MMAL layer.
Tested-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>
---
Changes in v4:
- Drop comment about FourCC values being copied from V4L2
---
include/linux/raspberrypi/mmal-encodings.h | 63 ++++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)
diff --git a/include/linux/raspberrypi/mmal-encodings.h b/include/linux/raspberrypi/mmal-encodings.h
index eadf2e981408..fd9cd840cb7b 100644
--- a/include/linux/raspberrypi/mmal-encodings.h
+++ b/include/linux/raspberrypi/mmal-encodings.h
@@ -69,6 +69,69 @@
*/
#define MMAL_ENCODING_OPAQUE MMAL_FOURCC('O', 'P', 'Q', 'V')
+/**
+ * Bayer formats
+ */
+/* 8 bit per pixel Bayer formats. */
+#define MMAL_ENCODING_BAYER_SBGGR8 MMAL_FOURCC('B', 'A', '8', '1')
+#define MMAL_ENCODING_BAYER_SGBRG8 MMAL_FOURCC('G', 'B', 'R', 'G')
+#define MMAL_ENCODING_BAYER_SGRBG8 MMAL_FOURCC('G', 'R', 'B', 'G')
+#define MMAL_ENCODING_BAYER_SRGGB8 MMAL_FOURCC('R', 'G', 'G', 'B')
+
+/* 10 bit per pixel packed Bayer formats. */
+#define MMAL_ENCODING_BAYER_SBGGR10P MMAL_FOURCC('p', 'B', 'A', 'A')
+#define MMAL_ENCODING_BAYER_SGRBG10P MMAL_FOURCC('p', 'g', 'A', 'A')
+#define MMAL_ENCODING_BAYER_SGBRG10P MMAL_FOURCC('p', 'G', 'A', 'A')
+#define MMAL_ENCODING_BAYER_SRGGB10P MMAL_FOURCC('p', 'R', 'A', 'A')
+
+/* 12 bit per pixel packed Bayer formats. */
+#define MMAL_ENCODING_BAYER_SBGGR12P MMAL_FOURCC('p', 'B', '1', '2')
+#define MMAL_ENCODING_BAYER_SGRBG12P MMAL_FOURCC('p', 'g', '1', '2')
+#define MMAL_ENCODING_BAYER_SGBRG12P MMAL_FOURCC('p', 'G', '1', '2')
+#define MMAL_ENCODING_BAYER_SRGGB12P MMAL_FOURCC('p', 'R', '1', '2')
+
+/* 14 bit per pixel packed Bayer formats. */
+#define MMAL_ENCODING_BAYER_SBGGR14P MMAL_FOURCC('p', 'B', 'E', 'E')
+#define MMAL_ENCODING_BAYER_SGBRG14P MMAL_FOURCC('p', 'G', 'E', 'E')
+#define MMAL_ENCODING_BAYER_SGRBG14P MMAL_FOURCC('p', 'g', 'E', 'E')
+#define MMAL_ENCODING_BAYER_SRGGB14P MMAL_FOURCC('p', 'R', 'E', 'E')
+
+/* 16 bit per pixel Bayer formats. */
+#define MMAL_ENCODING_BAYER_SBGGR16 MMAL_FOURCC('B', 'G', '1', '6')
+#define MMAL_ENCODING_BAYER_SGBRG16 MMAL_FOURCC('G', 'B', '1', '6')
+#define MMAL_ENCODING_BAYER_SGRBG16 MMAL_FOURCC('G', 'R', '1', '6')
+#define MMAL_ENCODING_BAYER_SRGGB16 MMAL_FOURCC('R', 'G', '1', '6')
+
+/* 10 bit per pixel unpacked (16bit) Bayer formats. */
+#define MMAL_ENCODING_BAYER_SBGGR10 MMAL_FOURCC('B', 'G', '1', '0')
+#define MMAL_ENCODING_BAYER_SGRBG10 MMAL_FOURCC('B', 'A', '1', '0')
+#define MMAL_ENCODING_BAYER_SGBRG10 MMAL_FOURCC('G', 'B', '1', '0')
+#define MMAL_ENCODING_BAYER_SRGGB10 MMAL_FOURCC('R', 'G', '1', '0')
+
+/* 12 bit per pixel unpacked (16bit) Bayer formats */
+#define MMAL_ENCODING_BAYER_SBGGR12 MMAL_FOURCC('B', 'G', '1', '2')
+#define MMAL_ENCODING_BAYER_SGRBG12 MMAL_FOURCC('B', 'A', '1', '2')
+#define MMAL_ENCODING_BAYER_SGBRG12 MMAL_FOURCC('G', 'B', '1', '2')
+#define MMAL_ENCODING_BAYER_SRGGB12 MMAL_FOURCC('R', 'G', '1', '2')
+
+/* 14 bit per pixel unpacked (16bit) Bayer formats */
+#define MMAL_ENCODING_BAYER_SBGGR14 MMAL_FOURCC('B', 'G', '1', '4')
+#define MMAL_ENCODING_BAYER_SGBRG14 MMAL_FOURCC('G', 'B', '1', '4')
+#define MMAL_ENCODING_BAYER_SGRBG14 MMAL_FOURCC('G', 'R', '1', '4')
+#define MMAL_ENCODING_BAYER_SRGGB14 MMAL_FOURCC('R', 'G', '1', '4')
+
+/* MIPI packed monochrome images */
+#define MMAL_ENCODING_GREY MMAL_FOURCC('G', 'R', 'E', 'Y')
+#define MMAL_ENCODING_Y10P MMAL_FOURCC('Y', '1', '0', 'P')
+#define MMAL_ENCODING_Y12P MMAL_FOURCC('Y', '1', '2', 'P')
+#define MMAL_ENCODING_Y14P MMAL_FOURCC('Y', '1', '4', 'P')
+#define MMAL_ENCODING_Y16 MMAL_FOURCC('Y', '1', '6', ' ')
+
+/* Unpacked monochrome formats (16bit per sample, but only N LSBs used) */
+#define MMAL_ENCODING_Y10 MMAL_FOURCC('Y', '1', '0', ' ')
+#define MMAL_ENCODING_Y12 MMAL_FOURCC('Y', '1', '2', ' ')
+#define MMAL_ENCODING_Y14 MMAL_FOURCC('Y', '1', '4', ' ')
+
/** An EGL image handle
*/
#define MMAL_ENCODING_EGL_IMAGE MMAL_FOURCC('E', 'G', 'L', 'I')
--
2.55.0
next prev parent reply other threads:[~2026-09-17 8:25 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-17 8:23 [PATCH v5 00/10] media: Add support for Broadcom/RPi BCM2835 ISP Jai Luthra
2026-09-17 8:23 ` [PATCH v5 01/10] media: videobuf2-core: Move type check out of vb2_core_expbuf() Jai Luthra
2026-10-02 10:56 ` Paul Elder
2026-11-04 11:49 ` Jai Luthra
2026-11-05 12:09 ` Hans Verkuil
2026-09-17 8:23 ` [PATCH v5 02/10] platform/raspberrypi: vchiq-mmal: Include missing headers Jai Luthra
2026-09-17 8:23 ` [PATCH v5 03/10] platform/raspberrypi: vchiq-mmal: Move headers to include/linux Jai Luthra
2026-09-17 8:23 ` [PATCH v5 04/10] platform/raspberrypi: vchiq-mmal: Support ISP parameters and stats Jai Luthra
2026-09-17 8:23 ` Jai Luthra [this message]
2026-10-02 10:33 ` [PATCH v5 05/10] platform/raspberrypi: vchiq-mmal: Support bayer and gray formats Paul Elder
2026-09-17 8:23 ` [PATCH v5 06/10] platform/raspberrypi: vchiq: Add helpers for vchiq driver data Jai Luthra
2026-09-17 8:23 ` [PATCH v5 07/10] media: videobuf2: Allow exporting of a struct dmabuf Jai Luthra
2026-11-05 12:13 ` Hans Verkuil
2026-09-17 8:23 ` [PATCH v5 08/10] media: platform: broadcom: Move unicam driver to subdir Jai Luthra
2026-09-17 8:23 ` [PATCH v5 09/10] media: platform: broadcom: Add bcm2835-isp driver Jai Luthra
2026-10-02 10:52 ` Paul Elder
2026-09-17 8:23 ` [PATCH v5 10/10] platform/raspberrypi: vchiq: Load bcm2835_isp driver from vchiq Jai Luthra
2026-10-05 16:13 ` [PATCH v5 00/10] media: Add support for Broadcom/RPi BCM2835 ISP Dave Stevenson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260917-b4-vchiq-isp-v5-5-2d8870add2c0@ideasonboard.com \
--to=jai.luthra@ideasonboard.com \
--cc=dave.stevenson@raspberrypi.com \
--cc=florian.fainelli@broadcom.com \
--cc=hans@jjverkuil.nl \
--cc=kernel-list@raspberrypi.com \
--cc=kieran.bingham@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rpi-kernel@lists.infradead.org \
--cc=m.szyprowski@samsung.com \
--cc=mchehab@kernel.org \
--cc=naush@raspberrypi.com \
--cc=paul.elder@ideasonboard.com \
--cc=tfiga@chromium.org \
--cc=wahrenst@gmx.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®