brcm2708: update to latest patches from RPi Foundation
[openwrt/staging/chunkeey.git] / target / linux / brcm2708 / patches-4.19 / 950-0206-media-tc358743-Return-an-appropriate-colorspace-from.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0206-media-tc358743-Return-an-appropriate-colorspace-from.patch b/target/linux/brcm2708/patches-4.19/950-0206-media-tc358743-Return-an-appropriate-colorspace-from.patch
deleted file mode 100644 (file)
index 28ee4e7..0000000
+++ /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;