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@xxxxxxxxx> 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@xxxxxxxxxxxxxxxx> >> >> 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@xxxxxxxxxxxxxxxx> >> Signed-off-by: Umang Jain <umang.jain@xxxxxxxxxxxxxxxx> > > Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > >> --- >> 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