diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0191-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0191-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0191-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch b/target/linux/brcm2708/patches-4.19/950-0191-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch deleted file mode 100644 index 999ad5f41a..0000000000 --- a/target/linux/brcm2708/patches-4.19/950-0191-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch +++ /dev/null @@ -1,95 +0,0 @@ -From f0a4354bf8d99532577a21bb99da792fe2691626 Mon Sep 17 00:00:00 2001 -From: Philipp Zabel <p.zabel@pengutronix.de> -Date: Thu, 21 Sep 2017 17:30:24 +0200 -Subject: [PATCH 191/806] media: tc358743: fix connected/active CSI-2 lane - reporting - -g_mbus_config was supposed to indicate all supported lane numbers, not -only the number of those currently in active use. Since the TC358743 -can dynamically reduce the number of active lanes if the required -bandwidth allows for it, report all lane numbers up to the connected -number of lanes as supported in pdata mode. -In device tree mode, do not report lane count and clock mode at all, as -the receiver driver can determine these from the device tree. - -To allow communicating the number of currently active lanes, add a new -bitfield to the v4l2_mbus_config flags. This is a temporary fix, to be -used only until a better solution is found. - -Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> ---- - drivers/media/i2c/tc358743.c | 30 ++++++++++++++++-------------- - include/media/v4l2-mediabus.h | 8 ++++++++ - 2 files changed, 24 insertions(+), 14 deletions(-) - ---- a/drivers/media/i2c/tc358743.c -+++ b/drivers/media/i2c/tc358743.c -@@ -1606,28 +1606,29 @@ static int tc358743_g_mbus_config(struct - struct v4l2_mbus_config *cfg) - { - struct tc358743_state *state = to_state(sd); -+ const u32 mask = V4L2_MBUS_CSI2_LANE_MASK; -+ -+ if (state->csi_lanes_in_use > state->bus.num_data_lanes) -+ return -EINVAL; - - cfg->type = V4L2_MBUS_CSI2; -+ cfg->flags = (state->csi_lanes_in_use << __ffs(mask)) & mask; -+ -+ /* In DT mode, only report the number of active lanes */ -+ if (sd->dev->of_node) -+ return 0; - -- /* Support for non-continuous CSI-2 clock is missing in the driver */ -- cfg->flags = V4L2_MBUS_CSI2_CONTINUOUS_CLOCK; -+ /* Support for non-continuous CSI-2 clock is missing in pdata mode */ -+ cfg->flags |= V4L2_MBUS_CSI2_CONTINUOUS_CLOCK; - -- switch (state->csi_lanes_in_use) { -- case 1: -+ if (state->bus.num_data_lanes > 0) - cfg->flags |= V4L2_MBUS_CSI2_1_LANE; -- break; -- case 2: -+ if (state->bus.num_data_lanes > 1) - cfg->flags |= V4L2_MBUS_CSI2_2_LANE; -- break; -- case 3: -+ if (state->bus.num_data_lanes > 2) - cfg->flags |= V4L2_MBUS_CSI2_3_LANE; -- break; -- case 4: -+ if (state->bus.num_data_lanes > 3) - cfg->flags |= V4L2_MBUS_CSI2_4_LANE; -- break; -- default: -- return -EINVAL; -- } - - return 0; - } -@@ -2052,6 +2053,7 @@ static int tc358743_probe(struct i2c_cli - if (pdata) { - state->pdata = *pdata; - state->bus.flags = V4L2_MBUS_CSI2_CONTINUOUS_CLOCK; -+ state->bus.num_data_lanes = 4; - } else { - err = tc358743_probe_of(state); - if (err == -ENODEV) ---- a/include/media/v4l2-mediabus.h -+++ b/include/media/v4l2-mediabus.h -@@ -67,6 +67,14 @@ - V4L2_MBUS_CSI2_3_LANE | V4L2_MBUS_CSI2_4_LANE) - #define V4L2_MBUS_CSI2_CHANNELS (V4L2_MBUS_CSI2_CHANNEL_0 | V4L2_MBUS_CSI2_CHANNEL_1 | \ - V4L2_MBUS_CSI2_CHANNEL_2 | V4L2_MBUS_CSI2_CHANNEL_3) -+/* -+ * Number of lanes in use, 0 == use all available lanes (default) -+ * -+ * This is a temporary fix for devices that need to reduce the number of active -+ * lanes for certain modes, until g_mbus_config() can be replaced with a better -+ * solution. -+ */ -+#define V4L2_MBUS_CSI2_LANE_MASK (0xf << 10) - - /** - * enum v4l2_mbus_type - media bus type |