diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2022-05-16 23:40:32 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2022-05-17 15:11:22 +0200 |
commit | 20ea6adbf199097c4f5f591ffee088340630dae4 (patch) | |
tree | d6719d95e136611a1c25bbf7789652d6d402779d /target/linux/bcm27xx/patches-5.15/950-0727-media-i2c-ov7251-V4L2_CID_PIXEL_RATE-is-fixed.patch | |
parent | bca05bd072180dc38ef740b37ded9572a6db1981 (diff) | |
download | upstream-20ea6adbf199097c4f5f591ffee088340630dae4.tar.gz upstream-20ea6adbf199097c4f5f591ffee088340630dae4.tar.bz2 upstream-20ea6adbf199097c4f5f591ffee088340630dae4.zip |
bcm27xx: add support for linux v5.15
Build system: x86_64
Build-tested: bcm2708, bcm2709, bcm2710, bcm2711
Run-tested: bcm2708/RPiB+, bcm2709/RPi3B, bcm2710/RPi3B, bcm2711/RPi4B
Signed-off-by: Marty Jones <mj8263788@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0727-media-i2c-ov7251-V4L2_CID_PIXEL_RATE-is-fixed.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.15/950-0727-media-i2c-ov7251-V4L2_CID_PIXEL_RATE-is-fixed.patch | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0727-media-i2c-ov7251-V4L2_CID_PIXEL_RATE-is-fixed.patch b/target/linux/bcm27xx/patches-5.15/950-0727-media-i2c-ov7251-V4L2_CID_PIXEL_RATE-is-fixed.patch new file mode 100644 index 0000000000..80503693b6 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.15/950-0727-media-i2c-ov7251-V4L2_CID_PIXEL_RATE-is-fixed.patch @@ -0,0 +1,104 @@ +From 1fbe6c846412c7c114f599fef881366f1e81ef9c Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <dave.stevenson@raspberrypi.com> +Date: Sat, 12 Feb 2022 09:47:38 +0000 +Subject: [PATCH] media: i2c: ov7251: V4L2_CID_PIXEL_RATE is fixed + +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 | 24 +++++------------------- + 1 file changed, 5 insertions(+), 19 deletions(-) + +--- a/drivers/media/i2c/ov7251.c ++++ b/drivers/media/i2c/ov7251.c +@@ -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 ov7 + .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 ov7 + .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 ov7 + .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 + __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(str + 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_clien + 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, |