mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 14:13:16 +00:00
108 lines
3.5 KiB
Diff
108 lines
3.5 KiB
Diff
|
From f8c8c6aed54e064f3ec36eeee0595ec4e2206d66 Mon Sep 17 00:00:00 2001
|
||
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||
|
Date: Sat, 12 Feb 2022 09:53:47 +0000
|
||
|
Subject: [PATCH] media: i2c: ov7251: V4L2_CID_LINK_FREQUENCY is fixed
|
||
|
|
||
|
The link frequency does not change with the mode, so remove
|
||
|
the special handling for it.
|
||
|
|
||
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||
|
---
|
||
|
drivers/media/i2c/ov7251.c | 29 +++++++----------------------
|
||
|
1 file changed, 7 insertions(+), 22 deletions(-)
|
||
|
|
||
|
--- a/drivers/media/i2c/ov7251.c
|
||
|
+++ b/drivers/media/i2c/ov7251.c
|
||
|
@@ -66,7 +66,6 @@ struct ov7251_mode_info {
|
||
|
u32 height;
|
||
|
const struct reg_value *data;
|
||
|
u32 data_size;
|
||
|
- u32 link_freq;
|
||
|
u16 exposure_max;
|
||
|
u16 exposure_def;
|
||
|
struct v4l2_fract timeperframe;
|
||
|
@@ -113,7 +112,6 @@ struct ov7251 {
|
||
|
const struct ov7251_mode_info *current_mode;
|
||
|
|
||
|
struct v4l2_ctrl_handler ctrls;
|
||
|
- struct v4l2_ctrl *link_freq;
|
||
|
struct v4l2_ctrl *exposure;
|
||
|
struct v4l2_ctrl *gain;
|
||
|
|
||
|
@@ -591,7 +589,6 @@ static const struct ov7251_mode_info ov7
|
||
|
.height = 480,
|
||
|
.data = ov7251_setting_vga_30fps,
|
||
|
.data_size = ARRAY_SIZE(ov7251_setting_vga_30fps),
|
||
|
- .link_freq = 0, /* an index in link_freq[] */
|
||
|
.exposure_max = 1704,
|
||
|
.exposure_def = 504,
|
||
|
.timeperframe = {
|
||
|
@@ -604,7 +601,6 @@ static const struct ov7251_mode_info ov7
|
||
|
.height = 480,
|
||
|
.data = ov7251_setting_vga_60fps,
|
||
|
.data_size = ARRAY_SIZE(ov7251_setting_vga_60fps),
|
||
|
- .link_freq = 0, /* an index in link_freq[] */
|
||
|
.exposure_max = 840,
|
||
|
.exposure_def = 504,
|
||
|
.timeperframe = {
|
||
|
@@ -617,7 +613,6 @@ static const struct ov7251_mode_info ov7
|
||
|
.height = 480,
|
||
|
.data = ov7251_setting_vga_90fps,
|
||
|
.data_size = ARRAY_SIZE(ov7251_setting_vga_90fps),
|
||
|
- .link_freq = 0, /* an index in link_freq[] */
|
||
|
.exposure_max = 552,
|
||
|
.exposure_def = 504,
|
||
|
.timeperframe = {
|
||
|
@@ -1152,11 +1147,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(ov7251->link_freq,
|
||
|
- new_mode->link_freq);
|
||
|
- if (ret < 0)
|
||
|
- goto exit;
|
||
|
-
|
||
|
ret = __v4l2_ctrl_modify_range(ov7251->exposure,
|
||
|
1, new_mode->exposure_max,
|
||
|
1, new_mode->exposure_def);
|
||
|
@@ -1311,11 +1301,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(ov7251->link_freq,
|
||
|
- new_mode->link_freq);
|
||
|
- if (ret < 0)
|
||
|
- goto exit;
|
||
|
-
|
||
|
ret = __v4l2_ctrl_modify_range(ov7251->exposure,
|
||
|
1, new_mode->exposure_max,
|
||
|
1, new_mode->exposure_def);
|
||
|
@@ -1464,6 +1449,7 @@ static int ov7251_probe(struct i2c_clien
|
||
|
{
|
||
|
struct v4l2_fwnode_device_properties props;
|
||
|
struct device *dev = &client->dev;
|
||
|
+ struct v4l2_ctrl *ctrl;
|
||
|
struct ov7251 *ov7251;
|
||
|
unsigned int rate = 0;
|
||
|
int ret;
|
||
|
@@ -1561,13 +1547,12 @@ static int ov7251_probe(struct i2c_clien
|
||
|
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,
|
||
|
- ARRAY_SIZE(link_freq) - 1,
|
||
|
- 0, link_freq);
|
||
|
- if (ov7251->link_freq)
|
||
|
- ov7251->link_freq->flags |= V4L2_CTRL_FLAG_READ_ONLY;
|
||
|
+ ctrl = v4l2_ctrl_new_int_menu(&ov7251->ctrls, &ov7251_ctrl_ops,
|
||
|
+ V4L2_CID_LINK_FREQ,
|
||
|
+ ARRAY_SIZE(link_freq) - 1,
|
||
|
+ 0, link_freq);
|
||
|
+ if (ctrl)
|
||
|
+ ctrl->flags |= V4L2_CTRL_FLAG_READ_ONLY;
|
||
|
|
||
|
ov7251->sd.ctrl_handler = &ov7251->ctrls;
|
||
|
|