media: i2c: ov7251: V4L2_CID_PIXEL_RATE is fixed
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Sat, 12 Feb 2022 09:47:38 +0000 (09:47 +0000)
committerDom Cobley <popcornmix@gmail.com>
Mon, 21 Mar 2022 16:04:44 +0000 (16:04 +0000)
The pixel rate doesn't actually change based on the mode, and
can not be set by userspace.

Fix the control. The control is already read only as set by the core.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/media/i2c/ov7251.c

index 3ba98ad..06e45f4 100644 (file)
@@ -54,6 +54,8 @@
 #define OV7251_PLL2_SYS_DIV_REG                0x309a
 #define OV7251_PLL2_ADC_DIV_REG                0x309b
 
+#define OV7251_PIXEL_CLOCK 48000000
+
 struct reg_value {
        u16 reg;
        u8 val;
@@ -64,7 +66,6 @@ struct ov7251_mode_info {
        u32 height;
        const struct reg_value *data;
        u32 data_size;
-       u32 pixel_clock;
        u32 link_freq;
        u16 exposure_max;
        u16 exposure_def;
@@ -112,7 +113,6 @@ struct ov7251 {
        const struct ov7251_mode_info *current_mode;
 
        struct v4l2_ctrl_handler ctrls;
-       struct v4l2_ctrl *pixel_clock;
        struct v4l2_ctrl *link_freq;
        struct v4l2_ctrl *exposure;
        struct v4l2_ctrl *gain;
@@ -591,7 +591,6 @@ static const struct ov7251_mode_info ov7251_mode_info_data[] = {
                .height = 480,
                .data = ov7251_setting_vga_30fps,
                .data_size = ARRAY_SIZE(ov7251_setting_vga_30fps),
-               .pixel_clock = 48000000,
                .link_freq = 0, /* an index in link_freq[] */
                .exposure_max = 1704,
                .exposure_def = 504,
@@ -605,7 +604,6 @@ static const struct ov7251_mode_info ov7251_mode_info_data[] = {
                .height = 480,
                .data = ov7251_setting_vga_60fps,
                .data_size = ARRAY_SIZE(ov7251_setting_vga_60fps),
-               .pixel_clock = 48000000,
                .link_freq = 0, /* an index in link_freq[] */
                .exposure_max = 840,
                .exposure_def = 504,
@@ -619,7 +617,6 @@ static const struct ov7251_mode_info ov7251_mode_info_data[] = {
                .height = 480,
                .data = ov7251_setting_vga_90fps,
                .data_size = ARRAY_SIZE(ov7251_setting_vga_90fps),
-               .pixel_clock = 48000000,
                .link_freq = 0, /* an index in link_freq[] */
                .exposure_max = 552,
                .exposure_def = 504,
@@ -1155,11 +1152,6 @@ static int ov7251_set_format(struct v4l2_subdev *sd,
        __crop->height = new_mode->height;
 
        if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
-               ret = __v4l2_ctrl_s_ctrl_int64(ov7251->pixel_clock,
-                                              new_mode->pixel_clock);
-               if (ret < 0)
-                       goto exit;
-
                ret = __v4l2_ctrl_s_ctrl(ov7251->link_freq,
                                         new_mode->link_freq);
                if (ret < 0)
@@ -1319,11 +1311,6 @@ static int ov7251_set_frame_interval(struct v4l2_subdev *subdev,
        new_mode = ov7251_find_mode_by_ival(ov7251, &fi->interval);
 
        if (new_mode != ov7251->current_mode) {
-               ret = __v4l2_ctrl_s_ctrl_int64(ov7251->pixel_clock,
-                                              new_mode->pixel_clock);
-               if (ret < 0)
-                       goto exit;
-
                ret = __v4l2_ctrl_s_ctrl(ov7251->link_freq,
                                         new_mode->link_freq);
                if (ret < 0)
@@ -1571,10 +1558,9 @@ static int ov7251_probe(struct i2c_client *client)
                                     V4L2_CID_TEST_PATTERN,
                                     ARRAY_SIZE(ov7251_test_pattern_menu) - 1,
                                     0, 0, ov7251_test_pattern_menu);
-       ov7251->pixel_clock = v4l2_ctrl_new_std(&ov7251->ctrls,
-                                               &ov7251_ctrl_ops,
-                                               V4L2_CID_PIXEL_RATE,
-                                               1, INT_MAX, 1, 1);
+       v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
+                         V4L2_CID_PIXEL_RATE, OV7251_PIXEL_CLOCK,
+                         OV7251_PIXEL_CLOCK, 1, OV7251_PIXEL_CLOCK);
        ov7251->link_freq = v4l2_ctrl_new_int_menu(&ov7251->ctrls,
                                                   &ov7251_ctrl_ops,
                                                   V4L2_CID_LINK_FREQ,