Hi all,

Sorry for the delay and thank you for the fix.
I just checked the databook and the changes makes sense.

cheers,
Luis

On 16-Oct-17 13:23, Sakari Ailus wrote:
> Luis,
> 
> Any comment on these?
> 
> On Sun, Oct 01, 2017 at 06:22:37PM +0800, Jacob Chen wrote:
>> When I was supporting Rpi Camera Module on the ASUS Tinker board,
>> I found this driver have some issues with rockchip's mipi-csi driver.
>> It didn't place clock lane in LP-11 state before performing
>> D-PHY initialisation.
>>
>> From our experience, on some OV sensors,
>> LP-11 state is not achieved while BIT(5)-0x4800 is cleared.
>>
>> So let's set BIT(5) and BIT(0) both while not streaming, in order to
>> coax the clock lane into LP-11 state.
>>
>> 0x4800 : MIPI CTRL 00
>>      BIT(5) : clock lane gate enable
>>              0: continuous
>>              1: none-continuous
>>      BIT(0) : manually set clock lane
>>              0: Not used
>>              1: used
>>
>> Signed-off-by: Jacob Chen <jacob-c...@iotwrt.com>
>> ---
>>  drivers/media/i2c/ov5647.c | 13 ++++++++++++-
>>  1 file changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c
>> index 95ce90fdb876..247302d01f53 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,10 @@ static int __sensor_init(struct v4l2_subdev *sd)
>>                      return ret;
>>      }
>>  
>> -    return ov5647_write(sd, 0x4800, 0x04);
>> +    /*
>> +     * stream off to make the clock lane into LP-11 state.
>> +     */
>> +    return ov5647_stream_off(sd);
>>  }
>>  
>>  static int ov5647_sensor_power(struct v4l2_subdev *sd, int on)
>> -- 
>> 2.14.1
>>
> 
Reviewed-by: Luis Oliveira <loli...@synopsys.com>

Reply via email to