media: ov5640: Change CSI-2 timings to comply with FPS
authorJacopo Mondi <jacopo@jmondi.org>
Fri, 13 May 2022 14:14:07 +0000 (15:14 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Fri, 8 Jul 2022 14:31:34 +0000 (15:31 +0100)
Now that the frame duration can be controlled by tuning the VBLANK
duration in CSI-2 mode, fix all modes definitions to comply with the
reported FPS.

All modes run at 30 FPS except for full-resolution mode 2592x1944
which runs at 15FPS.

Tested on a 2 data lanes setup in UYVY and RGB565 modes in CSI-2 mode.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/i2c/ov5640.c

index a17fcb3..8391e92 100644 (file)
@@ -598,8 +598,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = {
                                .width  = 160,
                                .height = 120,
                        },
-                       .htot           = 1896,
-                       .vblank_def     = 864,
+                       .htot           = 1600,
+                       .vblank_def     = 878,
                },
                .reg_data       = ov5640_setting_low_res,
                .reg_data_size  = ARRAY_SIZE(ov5640_setting_low_res),
@@ -643,8 +643,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = {
                                .width  = 176,
                                .height = 144,
                        },
-                       .htot           = 1896,
-                       .vblank_def     = 840,
+                       .htot           = 1600,
+                       .vblank_def     = 854,
                },
                .reg_data       = ov5640_setting_low_res,
                .reg_data_size  = ARRAY_SIZE(ov5640_setting_low_res),
@@ -688,8 +688,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = {
                                .width  = 320,
                                .height = 240,
                        },
-                       .htot           = 1896,
-                       .vblank_def     = 744,
+                       .htot           = 1600,
+                       .vblank_def     = 760,
                },
                .reg_data       = ov5640_setting_low_res,
                .reg_data_size  = ARRAY_SIZE(ov5640_setting_low_res),
@@ -733,8 +733,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = {
                                .width  = 640,
                                .height = 480,
                        },
-                       .htot           = 1896,
-                       .vblank_def     = 600,
+                       .htot           = 1600,
+                       .vblank_def     = 520,
                },
                .reg_data       = ov5640_setting_low_res,
                .reg_data_size  = ARRAY_SIZE(ov5640_setting_low_res),
@@ -778,7 +778,7 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = {
                                .height = 480,
                        },
                        .htot           = 1896,
-                       .vblank_def     = 504,
+                       .vblank_def     = 1206,
                },
                .reg_data       = ov5640_setting_low_res,
                .reg_data_size  = ARRAY_SIZE(ov5640_setting_low_res),
@@ -822,7 +822,7 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = {
                                .height = 576,
                        },
                        .htot           = 1896,
-                       .vblank_def     = 408,
+                       .vblank_def     = 1110,
                },
                .reg_data       = ov5640_setting_low_res,
                .reg_data_size  = ARRAY_SIZE(ov5640_setting_low_res),
@@ -865,7 +865,7 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = {
                                .height = 768,
                        },
                        .htot           = 1896,
-                       .vblank_def     = 312,
+                       .vblank_def     = 918,
                },
                .reg_data       = ov5640_setting_low_res,
                .reg_data_size  = ARRAY_SIZE(ov5640_setting_low_res),
@@ -907,8 +907,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = {
                                .width  = 1280,
                                .height = 720,
                        },
-                       .htot           = 1892,
-                       .vblank_def     = 20,
+                       .htot           = 1600,
+                       .vblank_def     = 560,
                },
                .reg_data       = ov5640_setting_720P_1280_720,
                .reg_data_size  = ARRAY_SIZE(ov5640_setting_720P_1280_720),
@@ -952,8 +952,8 @@ static const struct ov5640_mode_info ov5640_mode_data[OV5640_NUM_MODES] = {
                                .width  = 1920,
                                .height = 1080,
                        },
-                       .htot           = 2500,
-                       .vblank_def     = 40,
+                       .htot           = 2234,
+                       .vblank_def     = 24,
                },
                .reg_data       = ov5640_setting_1080P_1920_1080,
                .reg_data_size  = ARRAY_SIZE(ov5640_setting_1080P_1920_1080),