Hi Jacopo, Thank you for the patch. On Wed, Feb 23, 2022 at 11:40:20AM +0100, Jacopo Mondi wrote: > The register tables for all resolutions smaller than 720p are now > identical. > > Remove the duplicated ones and create a single ov5640_setting_low_res[] > register table. > > Signed-off-by: Jacopo Mondi <jacopo@xxxxxxxxxx> Neat :-) Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> If there's any volunteer, it would be nice to take this one step further and isolate the other changes too. > --- > drivers/media/i2c/ov5640.c | 120 +++++-------------------------------- > 1 file changed, 15 insertions(+), 105 deletions(-) > > diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c > index ab17ac79f936..a85e10a8118f 100644 > --- a/drivers/media/i2c/ov5640.c > +++ b/drivers/media/i2c/ov5640.c > @@ -482,7 +482,7 @@ static const struct reg_value ov5640_init_setting_30fps_VGA[] = { > {0x3a1f, 0x14, 0, 0}, {0x3008, 0x02, 0, 0}, {0x3c00, 0x04, 0, 300}, > }; > > -static const struct reg_value ov5640_setting_QQVGA_160_120[] = { > +static const struct reg_value ov5640_setting_low_res[] = { > {0x3c07, 0x08, 0, 0}, > {0x3c09, 0x1c, 0, 0}, {0x3c0a, 0x9c, 0, 0}, {0x3c0b, 0x40, 0, 0}, > {0x3814, 0x31, 0, 0}, > @@ -496,96 +496,6 @@ static const struct reg_value ov5640_setting_QQVGA_160_120[] = { > {0x4407, 0x04, 0, 0}, {0x5001, 0xa3, 0, 0}, > }; > > -static const struct reg_value ov5640_setting_QCIF_176_144[] = { > - {0x3c07, 0x08, 0, 0}, > - {0x3c09, 0x1c, 0, 0}, {0x3c0a, 0x9c, 0, 0}, {0x3c0b, 0x40, 0, 0}, > - {0x3814, 0x31, 0, 0}, > - {0x3815, 0x31, 0, 0}, > - {0x3618, 0x00, 0, 0}, {0x3612, 0x29, 0, 0}, {0x3708, 0x64, 0, 0}, > - {0x3709, 0x52, 0, 0}, {0x370c, 0x03, 0, 0}, {0x3a02, 0x03, 0, 0}, > - {0x3a03, 0xd8, 0, 0}, {0x3a08, 0x01, 0, 0}, {0x3a09, 0x27, 0, 0}, > - {0x3a0a, 0x00, 0, 0}, {0x3a0b, 0xf6, 0, 0}, {0x3a0e, 0x03, 0, 0}, > - {0x3a0d, 0x04, 0, 0}, {0x3a14, 0x03, 0, 0}, {0x3a15, 0xd8, 0, 0}, > - {0x4001, 0x02, 0, 0}, {0x4004, 0x02, 0, 0}, > - {0x4407, 0x04, 0, 0}, {0x460b, 0x35, 0, 0}, {0x460c, 0x22, 0, 0}, > - {0x3824, 0x02, 0, 0}, {0x5001, 0xa3, 0, 0}, > -}; > - > -static const struct reg_value ov5640_setting_QVGA_320_240[] = { > - {0x3c07, 0x08, 0, 0}, > - {0x3c09, 0x1c, 0, 0}, {0x3c0a, 0x9c, 0, 0}, {0x3c0b, 0x40, 0, 0}, > - {0x3814, 0x31, 0, 0}, > - {0x3815, 0x31, 0, 0}, > - {0x3618, 0x00, 0, 0}, {0x3612, 0x29, 0, 0}, {0x3708, 0x64, 0, 0}, > - {0x3709, 0x52, 0, 0}, {0x370c, 0x03, 0, 0}, {0x3a02, 0x03, 0, 0}, > - {0x3a03, 0xd8, 0, 0}, {0x3a08, 0x01, 0, 0}, {0x3a09, 0x27, 0, 0}, > - {0x3a0a, 0x00, 0, 0}, {0x3a0b, 0xf6, 0, 0}, {0x3a0e, 0x03, 0, 0}, > - {0x3a0d, 0x04, 0, 0}, {0x3a14, 0x03, 0, 0}, {0x3a15, 0xd8, 0, 0}, > - {0x4001, 0x02, 0, 0}, {0x4004, 0x02, 0, 0}, > - {0x4407, 0x04, 0, 0}, {0x460b, 0x35, 0, 0}, {0x460c, 0x22, 0, 0}, > - {0x3824, 0x02, 0, 0}, {0x5001, 0xa3, 0, 0}, > -}; > - > -static const struct reg_value ov5640_setting_VGA_640_480[] = { > - {0x3c07, 0x08, 0, 0}, > - {0x3c09, 0x1c, 0, 0}, {0x3c0a, 0x9c, 0, 0}, {0x3c0b, 0x40, 0, 0}, > - {0x3814, 0x31, 0, 0}, > - {0x3815, 0x31, 0, 0}, > - {0x3618, 0x00, 0, 0}, {0x3612, 0x29, 0, 0}, {0x3708, 0x64, 0, 0}, > - {0x3709, 0x52, 0, 0}, {0x370c, 0x03, 0, 0}, {0x3a02, 0x03, 0, 0}, > - {0x3a03, 0xd8, 0, 0}, {0x3a08, 0x01, 0, 0}, {0x3a09, 0x27, 0, 0}, > - {0x3a0a, 0x00, 0, 0}, {0x3a0b, 0xf6, 0, 0}, {0x3a0e, 0x03, 0, 0}, > - {0x3a0d, 0x04, 0, 0}, {0x3a14, 0x03, 0, 0}, {0x3a15, 0xd8, 0, 0}, > - {0x4001, 0x02, 0, 0}, {0x4004, 0x02, 0, 0}, > - {0x4407, 0x04, 0, 0}, {0x460b, 0x35, 0, 0}, {0x460c, 0x22, 0, 0}, > - {0x3824, 0x02, 0, 0}, {0x5001, 0xa3, 0, 0}, > -}; > - > -static const struct reg_value ov5640_setting_NTSC_720_480[] = { > - {0x3c07, 0x08, 0, 0}, > - {0x3c09, 0x1c, 0, 0}, {0x3c0a, 0x9c, 0, 0}, {0x3c0b, 0x40, 0, 0}, > - {0x3814, 0x31, 0, 0}, > - {0x3815, 0x31, 0, 0}, > - {0x3618, 0x00, 0, 0}, {0x3612, 0x29, 0, 0}, {0x3708, 0x64, 0, 0}, > - {0x3709, 0x52, 0, 0}, {0x370c, 0x03, 0, 0}, {0x3a02, 0x03, 0, 0}, > - {0x3a03, 0xd8, 0, 0}, {0x3a08, 0x01, 0, 0}, {0x3a09, 0x27, 0, 0}, > - {0x3a0a, 0x00, 0, 0}, {0x3a0b, 0xf6, 0, 0}, {0x3a0e, 0x03, 0, 0}, > - {0x3a0d, 0x04, 0, 0}, {0x3a14, 0x03, 0, 0}, {0x3a15, 0xd8, 0, 0}, > - {0x4001, 0x02, 0, 0}, {0x4004, 0x02, 0, 0}, > - {0x4407, 0x04, 0, 0}, {0x460b, 0x35, 0, 0}, {0x460c, 0x22, 0, 0}, > - {0x3824, 0x02, 0, 0}, {0x5001, 0xa3, 0, 0}, > -}; > - > -static const struct reg_value ov5640_setting_PAL_720_576[] = { > - {0x3c07, 0x08, 0, 0}, > - {0x3c09, 0x1c, 0, 0}, {0x3c0a, 0x9c, 0, 0}, {0x3c0b, 0x40, 0, 0}, > - {0x3814, 0x31, 0, 0}, > - {0x3815, 0x31, 0, 0}, > - {0x3618, 0x00, 0, 0}, {0x3612, 0x29, 0, 0}, {0x3708, 0x64, 0, 0}, > - {0x3709, 0x52, 0, 0}, {0x370c, 0x03, 0, 0}, {0x3a02, 0x03, 0, 0}, > - {0x3a03, 0xd8, 0, 0}, {0x3a08, 0x01, 0, 0}, {0x3a09, 0x27, 0, 0}, > - {0x3a0a, 0x00, 0, 0}, {0x3a0b, 0xf6, 0, 0}, {0x3a0e, 0x03, 0, 0}, > - {0x3a0d, 0x04, 0, 0}, {0x3a14, 0x03, 0, 0}, {0x3a15, 0xd8, 0, 0}, > - {0x4001, 0x02, 0, 0}, {0x4004, 0x02, 0, 0}, > - {0x4407, 0x04, 0, 0}, {0x460b, 0x35, 0, 0}, {0x460c, 0x22, 0, 0}, > - {0x3824, 0x02, 0, 0}, {0x5001, 0xa3, 0, 0}, > -}; > - > -static const struct reg_value ov5640_setting_XGA_1024_768[] = { > - {0x3c07, 0x08, 0, 0}, > - {0x3c09, 0x1c, 0, 0}, {0x3c0a, 0x9c, 0, 0}, {0x3c0b, 0x40, 0, 0}, > - {0x3814, 0x31, 0, 0}, > - {0x3815, 0x31, 0, 0}, > - {0x3618, 0x00, 0, 0}, {0x3612, 0x29, 0, 0}, {0x3708, 0x64, 0, 0}, > - {0x3709, 0x52, 0, 0}, {0x370c, 0x03, 0, 0}, {0x3a02, 0x03, 0, 0}, > - {0x3a03, 0xd8, 0, 0}, {0x3a08, 0x01, 0, 0}, {0x3a09, 0x27, 0, 0}, > - {0x3a0a, 0x00, 0, 0}, {0x3a0b, 0xf6, 0, 0}, {0x3a0e, 0x03, 0, 0}, > - {0x3a0d, 0x04, 0, 0}, {0x3a14, 0x03, 0, 0}, {0x3a15, 0xd8, 0, 0}, > - {0x4001, 0x02, 0, 0}, {0x4004, 0x02, 0, 0}, > - {0x4407, 0x04, 0, 0}, {0x460b, 0x35, 0, 0}, {0x460c, 0x22, 0, 0}, > - {0x3824, 0x02, 0, 0}, {0x5001, 0xa3, 0, 0}, > -}; > - > static const struct reg_value ov5640_setting_720P_1280_720[] = { > {0x3c07, 0x07, 0, 0}, > {0x3c09, 0x1c, 0, 0}, {0x3c0a, 0x9c, 0, 0}, {0x3c0b, 0x40, 0, 0}, > @@ -727,8 +637,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = { > .htot = 1896, > .vblank_def = 864, > }, > - .reg_data = ov5640_setting_QQVGA_160_120, > - .reg_data_size = ARRAY_SIZE(ov5640_setting_QQVGA_160_120), > + .reg_data = ov5640_setting_low_res, > + .reg_data_size = ARRAY_SIZE(ov5640_setting_low_res), > }, { > /* 176x144 */ > .id = OV5640_MODE_QCIF_176_144, > @@ -771,8 +681,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = { > .htot = 1896, > .vblank_def = 840, > }, > - .reg_data = ov5640_setting_QCIF_176_144, > - .reg_data_size = ARRAY_SIZE(ov5640_setting_QCIF_176_144), > + .reg_data = ov5640_setting_low_res, > + .reg_data_size = ARRAY_SIZE(ov5640_setting_low_res), > }, { > /* 320x240 */ > .id = OV5640_MODE_QVGA_320_240, > @@ -815,8 +725,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = { > .htot = 1896, > .vblank_def = 744, > }, > - .reg_data = ov5640_setting_QVGA_320_240, > - .reg_data_size = ARRAY_SIZE(ov5640_setting_QVGA_320_240), > + .reg_data = ov5640_setting_low_res, > + .reg_data_size = ARRAY_SIZE(ov5640_setting_low_res), > }, { > /* 640x480 */ > .id = OV5640_MODE_VGA_640_480, > @@ -859,8 +769,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = { > .htot = 1896, > .vblank_def = 600, > }, > - .reg_data = ov5640_setting_VGA_640_480, > - .reg_data_size = ARRAY_SIZE(ov5640_setting_VGA_640_480), > + .reg_data = ov5640_setting_low_res, > + .reg_data_size = ARRAY_SIZE(ov5640_setting_low_res), > }, { > /* 720x480 */ > .id = OV5640_MODE_NTSC_720_480, > @@ -903,8 +813,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = { > .htot = 1896, > .vblank_def = 504, > }, > - .reg_data = ov5640_setting_NTSC_720_480, > - .reg_data_size = ARRAY_SIZE(ov5640_setting_NTSC_720_480), > + .reg_data = ov5640_setting_low_res, > + .reg_data_size = ARRAY_SIZE(ov5640_setting_low_res), > }, { > /* 720x576 */ > .id = OV5640_MODE_PAL_720_576, > @@ -947,8 +857,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = { > .htot = 1896, > .vblank_def = 408, > }, > - .reg_data = ov5640_setting_PAL_720_576, > - .reg_data_size = ARRAY_SIZE(ov5640_setting_PAL_720_576), > + .reg_data = ov5640_setting_low_res, > + .reg_data_size = ARRAY_SIZE(ov5640_setting_low_res), > }, { > /* 1024x768 */ > .id = OV5640_MODE_XGA_1024_768, > @@ -989,8 +899,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = { > .htot = 1896, > .vblank_def = 312, > }, > - .reg_data = ov5640_setting_XGA_1024_768, > - .reg_data_size = ARRAY_SIZE(ov5640_setting_XGA_1024_768), > + .reg_data = ov5640_setting_low_res, > + .reg_data_size = ARRAY_SIZE(ov5640_setting_low_res), > }, { > /* 1280x720 */ > .id = OV5640_MODE_720P_1280_720, -- Regards, Laurent Pinchart