diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0189-media-ov5647-Add-support-for-non-continuous-clock-mo.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0189-media-ov5647-Add-support-for-non-continuous-clock-mo.patch | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0189-media-ov5647-Add-support-for-non-continuous-clock-mo.patch b/target/linux/brcm2708/patches-4.19/950-0189-media-ov5647-Add-support-for-non-continuous-clock-mo.patch deleted file mode 100644 index 082a161443..0000000000 --- a/target/linux/brcm2708/patches-4.19/950-0189-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 189/806] 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; |