aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/media/i2c/ov5640.c
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2022-05-13 15:14:12 +0100
committerMauro Carvalho Chehab <mchehab@kernel.org>2022-07-08 15:37:14 +0100
commit6ac98b41b4fb44656ef0ccccee4fda73751eb7bf (patch)
tree71d76c45cc8b1259901196ed5ebfe813d5f8a9ab /drivers/media/i2c/ov5640.c
parentmedia: ov5640: Add RGB565_1X16 format (diff)
downloadwireguard-linux-6ac98b41b4fb44656ef0ccccee4fda73751eb7bf.tar.xz
wireguard-linux-6ac98b41b4fb44656ef0ccccee4fda73751eb7bf.zip
media: ov5640: Add BGR888 format
Add support for BGR888 image format. No existing media bus codes describe exactly the way data is transferred on the CSI-2 bus. This is not a new issue, the CSI-2 YUV422 8-bit format is described by MEDIA_BUS_FMT_UYVY8_1X16 which is an arbitrary convention and not an exact match. Use the MEDIA_BUS_FMT_BGR888_1X24 to follow the same convention, based on the order in which bits are transmitted over the CSI-2 bus when producing images in RGB24 format. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'drivers/media/i2c/ov5640.c')
-rw-r--r--drivers/media/i2c/ov5640.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c
index 4a88794710ad..a1c00e7781d5 100644
--- a/drivers/media/i2c/ov5640.c
+++ b/drivers/media/i2c/ov5640.c
@@ -226,6 +226,10 @@ static const struct ov5640_pixfmt {
.colorspace = V4L2_COLORSPACE_SRGB,
.bpp = 16,
}, {
+ .code = MEDIA_BUS_FMT_BGR888_1X24,
+ .colorspace = V4L2_COLORSPACE_SRGB,
+ .bpp = 24,
+ }, {
.code = MEDIA_BUS_FMT_SBGGR8_1X8,
.colorspace = V4L2_COLORSPACE_SRGB,
.bpp = 8,
@@ -2940,6 +2944,11 @@ static int ov5640_set_framefmt(struct ov5640_dev *sensor,
fmt = 0x61;
mux = OV5640_FMT_MUX_RGB;
break;
+ case MEDIA_BUS_FMT_BGR888_1X24:
+ /* BGR888: RGB */
+ fmt = 0x23;
+ mux = OV5640_FMT_MUX_RGB;
+ break;
case MEDIA_BUS_FMT_JPEG_1X8:
/* YUV422, YUYV */
fmt = 0x30;