aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-4.19/950-0168-media-ov5647-Add-support-for-non-continuous-clock-mo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-4.19/950-0168-media-ov5647-Add-support-for-non-continuous-clock-mo.patch')
-rw-r--r--target/linux/bcm27xx/patches-4.19/950-0168-media-ov5647-Add-support-for-non-continuous-clock-mo.patch79
1 files changed, 0 insertions, 79 deletions
diff --git a/target/linux/bcm27xx/patches-4.19/950-0168-media-ov5647-Add-support-for-non-continuous-clock-mo.patch b/target/linux/bcm27xx/patches-4.19/950-0168-media-ov5647-Add-support-for-non-continuous-clock-mo.patch
deleted file mode 100644
index edbc12081d..0000000000
--- a/target/linux/bcm27xx/patches-4.19/950-0168-media-ov5647-Add-support-for-non-continuous-clock-mo.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 79bbd278272416aa61c29bda88e79f8f6dd35903 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson@raspberrypi.org>
-Date: Wed, 31 Oct 2018 14:56:47 +0000
-Subject: [PATCH] media: ov5647: Add support for non-continuous clock
- mode
-
-The driver was only supporting continuous clock mode
-although this was not stated anywhere.
-Non-continuous clock saves a small amount of power and
-on some SoCs is easier to interface with.
-
-Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
----
- drivers/media/i2c/ov5647.c | 17 ++++++++++++++---
- 1 file changed, 14 insertions(+), 3 deletions(-)
-
---- a/drivers/media/i2c/ov5647.c
-+++ b/drivers/media/i2c/ov5647.c
-@@ -44,6 +44,7 @@
- #define PWDN_ACTIVE_DELAY_MS 20
-
- #define MIPI_CTRL00_CLOCK_LANE_GATE BIT(5)
-+#define MIPI_CTRL00_LINE_SYNC_ENABLE BIT(4)
- #define MIPI_CTRL00_BUS_IDLE BIT(2)
- #define MIPI_CTRL00_CLOCK_LANE_DISABLE BIT(0)
-
-@@ -95,6 +96,7 @@ struct ov5647 {
- int power_count;
- struct clk *xclk;
- struct gpio_desc *pwdn;
-+ unsigned int flags;
- };
-
- static inline struct ov5647 *to_state(struct v4l2_subdev *sd)
-@@ -269,9 +271,15 @@ static int ov5647_set_virtual_channel(st
-
- static int ov5647_stream_on(struct v4l2_subdev *sd)
- {
-+ struct ov5647 *ov5647 = to_state(sd);
-+ u8 val = MIPI_CTRL00_BUS_IDLE;
- int ret;
-
-- ret = ov5647_write(sd, OV5647_REG_MIPI_CTRL00, MIPI_CTRL00_BUS_IDLE);
-+ if (ov5647->flags & V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK)
-+ val |= MIPI_CTRL00_CLOCK_LANE_GATE |
-+ MIPI_CTRL00_LINE_SYNC_ENABLE;
-+
-+ ret = ov5647_write(sd, OV5647_REG_MIPI_CTRL00, val);
- if (ret < 0)
- return ret;
-
-@@ -568,7 +576,7 @@ static const struct v4l2_subdev_internal
- .open = ov5647_open,
- };
-
--static int ov5647_parse_dt(struct device_node *np)
-+static int ov5647_parse_dt(struct device_node *np, struct ov5647 *sensor)
- {
- struct v4l2_fwnode_endpoint bus_cfg;
- struct device_node *ep;
-@@ -581,6 +589,9 @@ static int ov5647_parse_dt(struct device
-
- ret = v4l2_fwnode_endpoint_parse(of_fwnode_handle(ep), &bus_cfg);
-
-+ if (!ret)
-+ sensor->flags = bus_cfg.bus.mipi_csi2.flags;
-+
- of_node_put(ep);
- return ret;
- }
-@@ -600,7 +611,7 @@ static int ov5647_probe(struct i2c_clien
- return -ENOMEM;
-
- if (IS_ENABLED(CONFIG_OF) && np) {
-- ret = ov5647_parse_dt(np);
-+ ret = ov5647_parse_dt(np, sensor);
- if (ret) {
- dev_err(dev, "DT parsing error: %d\n", ret);
- return ret;