1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
From 46773bdd99e4ab1bd0d65931ef782122f4f4a031 Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
Date: Sat, 12 Feb 2022 12:33:13 +0000
Subject: [PATCH] media: i2c: ov7251: Do not reset gain on mode change
There is no reaon why changing mode should reset the analogue
gain of the sensor, and it's not the behaviour that userspace
will be expecting.
Remove the reset.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
---
drivers/media/i2c/ov7251.c | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)
--- a/drivers/media/i2c/ov7251.c
+++ b/drivers/media/i2c/ov7251.c
@@ -115,7 +115,6 @@ struct ov7251 {
struct v4l2_ctrl_handler ctrls;
struct v4l2_ctrl *exposure;
- struct v4l2_ctrl *gain;
struct v4l2_ctrl *hblank;
/* Cached register values */
@@ -1167,10 +1166,6 @@ static int ov7251_set_format(struct v4l2
if (ret < 0)
goto exit;
- ret = __v4l2_ctrl_s_ctrl(ov7251->gain, 16);
- if (ret < 0)
- goto exit;
-
ov7251->current_mode = new_mode;
}
@@ -1321,10 +1316,6 @@ static int ov7251_set_frame_interval(str
if (ret < 0)
goto exit;
- ret = __v4l2_ctrl_s_ctrl(ov7251->gain, 16);
- if (ret < 0)
- goto exit;
-
ov7251->current_mode = new_mode;
}
@@ -1550,8 +1541,8 @@ static int ov7251_probe(struct i2c_clien
V4L2_CID_VFLIP, 0, 1, 1, 0);
ov7251->exposure = v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
V4L2_CID_EXPOSURE, 1, 32, 1, 32);
- ov7251->gain = v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
- V4L2_CID_GAIN, 16, 1023, 1, 16);
+ v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops, V4L2_CID_GAIN,
+ 16, 1023, 1, 16);
v4l2_ctrl_new_std_menu_items(&ov7251->ctrls, &ov7251_ctrl_ops,
V4L2_CID_TEST_PATTERN,
ARRAY_SIZE(ov7251_test_pattern_menu) - 1,
|