aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0424-staging-bcm2835-codec-Add-the-unpacked-16bpp-raw-for.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0424-staging-bcm2835-codec-Add-the-unpacked-16bpp-raw-for.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.10/950-0424-staging-bcm2835-codec-Add-the-unpacked-16bpp-raw-for.patch167
1 files changed, 167 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0424-staging-bcm2835-codec-Add-the-unpacked-16bpp-raw-for.patch b/target/linux/bcm27xx/patches-5.10/950-0424-staging-bcm2835-codec-Add-the-unpacked-16bpp-raw-for.patch
new file mode 100644
index 0000000000..1f85d7deb8
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.10/950-0424-staging-bcm2835-codec-Add-the-unpacked-16bpp-raw-for.patch
@@ -0,0 +1,167 @@
+From 49a0627f025c62465563090dc7785ba6c9764bcd Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.com>
+Date: Thu, 7 Jan 2021 10:45:16 +0000
+Subject: [PATCH] staging/bcm2835-codec: Add the unpacked (16bpp) raw
+ formats
+
+Now that the firmware supports the unpacked (16bpp) variants
+of the MIPI raw formats, add the mappings.
+
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
+---
+ .../bcm2835-codec/bcm2835-v4l2-codec.c | 128 +++++++++++++++++-
+ 1 file changed, 126 insertions(+), 2 deletions(-)
+
+--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
+@@ -381,6 +381,106 @@ static const struct bcm2835_codec_fmt su
+ .size_multiplier_x2 = 2,
+ .is_bayer = true,
+ }, {
++ /* Bayer formats unpacked to 16bpp */
++ /* 10 bit */
++ .fourcc = V4L2_PIX_FMT_SRGGB10,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB10,
++ .size_multiplier_x2 = 2,
++ .is_bayer = true,
++ }, {
++ .fourcc = V4L2_PIX_FMT_SBGGR10,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR10,
++ .size_multiplier_x2 = 2,
++ .is_bayer = true,
++ }, {
++ .fourcc = V4L2_PIX_FMT_SGRBG10,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG10,
++ .size_multiplier_x2 = 2,
++ .is_bayer = true,
++ }, {
++ .fourcc = V4L2_PIX_FMT_SGBRG10,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG10,
++ .size_multiplier_x2 = 2,
++ .is_bayer = true,
++ }, {
++ /* 12 bit */
++ .fourcc = V4L2_PIX_FMT_SRGGB12,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB12,
++ .size_multiplier_x2 = 2,
++ .is_bayer = true,
++ }, {
++ .fourcc = V4L2_PIX_FMT_SBGGR12,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR12,
++ .size_multiplier_x2 = 2,
++ .is_bayer = true,
++ }, {
++ .fourcc = V4L2_PIX_FMT_SGRBG12,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG12,
++ .size_multiplier_x2 = 2,
++ .is_bayer = true,
++ }, {
++ .fourcc = V4L2_PIX_FMT_SGBRG12,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG12,
++ .size_multiplier_x2 = 2,
++ .is_bayer = true,
++ }, {
++ /* 14 bit */
++ .fourcc = V4L2_PIX_FMT_SRGGB14,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB14,
++ .size_multiplier_x2 = 2,
++ .is_bayer = true,
++ }, {
++ .fourcc = V4L2_PIX_FMT_SBGGR14,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR14,
++ .size_multiplier_x2 = 2,
++ .is_bayer = true,
++ }, {
++ .fourcc = V4L2_PIX_FMT_SGRBG14,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG14,
++ .size_multiplier_x2 = 2,
++ .is_bayer = true,
++ }, {
++ .fourcc = V4L2_PIX_FMT_SGBRG14,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG14,
++ .size_multiplier_x2 = 2,
++ .is_bayer = true,
++ }, {
+ /* Monochrome MIPI formats */
+ /* 8 bit */
+ .fourcc = V4L2_PIX_FMT_GREY,
+@@ -422,6 +522,30 @@ static const struct bcm2835_codec_fmt su
+ .mmal_fmt = MMAL_ENCODING_Y16,
+ .size_multiplier_x2 = 2,
+ }, {
++ /* 10 bit as 16bpp */
++ .fourcc = V4L2_PIX_FMT_Y10,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_Y10,
++ .size_multiplier_x2 = 2,
++ }, {
++ /* 12 bit as 16bpp */
++ .fourcc = V4L2_PIX_FMT_Y12,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_Y12,
++ .size_multiplier_x2 = 2,
++ }, {
++ /* 14 bit as 16bpp */
++ .fourcc = V4L2_PIX_FMT_Y14,
++ .depth = 16,
++ .bytesperline_align = 32,
++ .flags = 0,
++ .mmal_fmt = MMAL_ENCODING_Y14,
++ .size_multiplier_x2 = 2,
++ }, {
+ /* Compressed formats */
+ .fourcc = V4L2_PIX_FMT_H264,
+ .depth = 0,
+@@ -2681,10 +2805,10 @@ static const struct v4l2_m2m_ops m2m_ops
+
+ /* Size of the array to provide to the VPU when asking for the list of supported
+ * formats.
+- * The ISP component currently advertises 44 input formats, so add a small
++ * The ISP component currently advertises 62 input formats, so add a small
+ * overhead on that.
+ */
+-#define MAX_SUPPORTED_ENCODINGS 50
++#define MAX_SUPPORTED_ENCODINGS 70
+
+ /* Populate dev->supported_fmts with the formats supported by those ports. */
+ static int bcm2835_codec_get_supported_fmts(struct bcm2835_codec_dev *dev)