diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-4.19/950-0201-media-tc358743-Return-an-appropriate-colorspace-from.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-4.19/950-0201-media-tc358743-Return-an-appropriate-colorspace-from.patch | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/target/linux/bcm27xx/patches-4.19/950-0201-media-tc358743-Return-an-appropriate-colorspace-from.patch b/target/linux/bcm27xx/patches-4.19/950-0201-media-tc358743-Return-an-appropriate-colorspace-from.patch deleted file mode 100644 index 28ee4e7f44..0000000000 --- a/target/linux/bcm27xx/patches-4.19/950-0201-media-tc358743-Return-an-appropriate-colorspace-from.patch +++ /dev/null @@ -1,98 +0,0 @@ -From c7a3697a4d4c2199f05ab3cd321138d464ca62db Mon Sep 17 00:00:00 2001 -From: Dave Stevenson <dave.stevenson@raspberrypi.org> -Date: Thu, 22 Nov 2018 17:31:06 +0000 -Subject: [PATCH] media: tc358743: Return an appropriate colorspace - from tc358743_set_fmt - -When calling tc358743_set_fmt, the code was calling tc358743_get_fmt -to choose a valid format. However that sets the colorspace -based on what was read back from the chip. When you set the format, -then the driver would choose and program the colorspace based -on the format code. - -The result was that if you called try or set format for UYVY -when the current format was RGB3 then you would get told sRGB, -and try RGB3 when current was UYVY and you would get told -SMPTE170M. - -The value programmed into the chip is determined by this driver, -therefore there is no need to read back the value. Return the -colorspace based on the format set/tried instead. - -Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org> ---- - drivers/media/i2c/tc358743.c | 40 +++++++++++++----------------------- - 1 file changed, 14 insertions(+), 26 deletions(-) - ---- a/drivers/media/i2c/tc358743.c -+++ b/drivers/media/i2c/tc358743.c -@@ -1680,12 +1680,23 @@ static int tc358743_enum_mbus_code(struc - return 0; - } - -+static u32 tc358743_g_colorspace(u32 code) -+{ -+ switch (code) { -+ case MEDIA_BUS_FMT_RGB888_1X24: -+ return V4L2_COLORSPACE_SRGB; -+ case MEDIA_BUS_FMT_UYVY8_1X16: -+ return V4L2_COLORSPACE_SMPTE170M; -+ default: -+ return 0; -+ } -+} -+ - static int tc358743_get_fmt(struct v4l2_subdev *sd, - struct v4l2_subdev_pad_config *cfg, - struct v4l2_subdev_format *format) - { - struct tc358743_state *state = to_state(sd); -- u8 vi_rep = i2c_rd8(sd, VI_REP); - - if (format->pad != 0) - return -EINVAL; -@@ -1695,23 +1706,7 @@ static int tc358743_get_fmt(struct v4l2_ - format->format.height = state->timings.bt.height; - format->format.field = V4L2_FIELD_NONE; - -- switch (vi_rep & MASK_VOUT_COLOR_SEL) { -- case MASK_VOUT_COLOR_RGB_FULL: -- case MASK_VOUT_COLOR_RGB_LIMITED: -- format->format.colorspace = V4L2_COLORSPACE_SRGB; -- break; -- case MASK_VOUT_COLOR_601_YCBCR_LIMITED: -- case MASK_VOUT_COLOR_601_YCBCR_FULL: -- format->format.colorspace = V4L2_COLORSPACE_SMPTE170M; -- break; -- case MASK_VOUT_COLOR_709_YCBCR_FULL: -- case MASK_VOUT_COLOR_709_YCBCR_LIMITED: -- format->format.colorspace = V4L2_COLORSPACE_REC709; -- break; -- default: -- format->format.colorspace = 0; -- break; -- } -+ format->format.colorspace = tc358743_g_colorspace(format->format.code); - - return 0; - } -@@ -1726,18 +1721,11 @@ static int tc358743_set_fmt(struct v4l2_ - int ret = tc358743_get_fmt(sd, cfg, format); - - format->format.code = code; -+ format->format.colorspace = tc358743_g_colorspace(code); - - if (ret) - return ret; - -- switch (code) { -- case MEDIA_BUS_FMT_RGB888_1X24: -- case MEDIA_BUS_FMT_UYVY8_1X16: -- break; -- default: -- return -EINVAL; -- } -- - if (format->which == V4L2_SUBDEV_FORMAT_TRY) - return 0; - |