[libcamera-devel] [PATCH 1/2] media: imx258: Rectify mismatch of VTS value

Bingbu Cao bingbu.cao at linux.intel.com
Mon Jul 26 04:20:31 CEST 2021


Umang and Laurent,

I just checked the spec, 0xc98 should be the initial value not for 4208x3118, the patch
looks good to me though I am not working on that anymore.

Reviewed-by: Bingbu Cao <bingbu.cao at intel.com>

On 7/23/21 7:50 PM, Laurent Pinchart wrote:
> Hi Umang,
> 
> Thank you for the patch.
> 
> (Expanding the CC list)
> 
> On Fri, Jul 23, 2021 at 04:52:32PM +0530, Umang Jain wrote:
>> From: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>>
>> The frame_length_lines (0x0340) registers are hard-coded as follows:
>>
>> - 4208x3118
>>   frame_length_lines = 0x0c50
>>
>> - 2104x1560
>>   frame_length_lines = 0x0638
>>
>> - 1048x780
>>   frame_length_lines = 0x034c
>>
>> The driver exposes the V4L2_CID_VBLANK control in read-only mode and
>> sets its value to vts_def - height, where vts_def is a mode-dependent
>> value coming from the supported_modes array. It is set using one of
>> the following macros defined in the driver:
>>
>>   #define IMX258_VTS_30FPS                0x0c98
>>   #define IMX258_VTS_30FPS_2K             0x0638
>>   #define IMX258_VTS_30FPS_VGA            0x034c
>>
>> There's a clear mismatch in the value for the full resolution mode i.e.
>> IMX258_VTS_30FPS. Fix it by rectifying the macro with the value set for
>> the frame_length_lines register as stated above.
>>
>> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>> Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> 
>> ---
>>  drivers/media/i2c/imx258.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/i2c/imx258.c b/drivers/media/i2c/imx258.c
>> index 7ab9e5f9f267..4e695096e5d0 100644
>> --- a/drivers/media/i2c/imx258.c
>> +++ b/drivers/media/i2c/imx258.c
>> @@ -23,7 +23,7 @@
>>  #define IMX258_CHIP_ID			0x0258
>>  
>>  /* V_TIMING internal */
>> -#define IMX258_VTS_30FPS		0x0c98
>> +#define IMX258_VTS_30FPS		0x0c50
>>  #define IMX258_VTS_30FPS_2K		0x0638
>>  #define IMX258_VTS_30FPS_VGA		0x034c
>>  #define IMX258_VTS_MAX			0xffff
> 

-- 
Best regards,
Bingbu Cao


More information about the libcamera-devel mailing list