[PATCH] media: i2c: OV5647: gate clock lane before stream on

From: Jacob Chen
Date: Mon Jul 24 2017 - 22:35:11 EST


According to datasheet, BIT5 in reg-0x4800 are used to
enable/disable clock lane gate.

It's wrong to make clock lane free running before
sensor stream on was called, while the mipi phy
are not initialized.

Signed-off-by: Jacob Chen <jacob-chen@xxxxxxxxxx>
---
drivers/media/i2c/ov5647.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c
index 95ce90f..d3e6fd0 100644
--- a/drivers/media/i2c/ov5647.c
+++ b/drivers/media/i2c/ov5647.c
@@ -253,6 +253,10 @@ static int ov5647_stream_on(struct v4l2_subdev *sd)
{
int ret;

+ ret = ov5647_write(sd, 0x4800, 0x04);
+ if (ret < 0)
+ return ret;
+
ret = ov5647_write(sd, 0x4202, 0x00);
if (ret < 0)
return ret;
@@ -264,6 +268,10 @@ static int ov5647_stream_off(struct v4l2_subdev *sd)
{
int ret;

+ ret = ov5647_write(sd, 0x4800, 0x25);
+ if (ret < 0)
+ return ret;
+
ret = ov5647_write(sd, 0x4202, 0x0f);
if (ret < 0)
return ret;
@@ -320,7 +328,7 @@ static int __sensor_init(struct v4l2_subdev *sd)
return ret;
}

- return ov5647_write(sd, 0x4800, 0x04);
+ return ov5647_stream_off(sd);
}

static int ov5647_sensor_power(struct v4l2_subdev *sd, int on)
--
2.7.4