Skip to content

Commit 62a8b8a

Browse files
Niklas Söderlundopsiff
authored andcommitted
media: adv7180: Disable test-pattern control on adv7180
[ Upstream commit a980bc5 ] The register that enables selecting a test-pattern to be outputted in free-run mode (FREE_RUN_PAT_SEL[2:0]) is only available on adv7280 based devices, not the adv7180 based ones. Add a flag to mark devices that are capable of generating test-patterns, and those that are not. And only register the control on supported devices. Signed-off-by: Niklas Söderlund <[email protected]> Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit ca9f3ab612c62f3145401d2dc5e3c824c643371b)
1 parent 4cc6de0 commit 62a8b8a

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

drivers/media/i2c/adv7180.c

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ struct adv7180_state;
194194
#define ADV7180_FLAG_V2 BIT(1)
195195
#define ADV7180_FLAG_MIPI_CSI2 BIT(2)
196196
#define ADV7180_FLAG_I2P BIT(3)
197+
#define ADV7180_FLAG_TEST_PATTERN BIT(4)
197198

198199
struct adv7180_chip_info {
199200
unsigned int flags;
@@ -673,11 +674,15 @@ static int adv7180_init_controls(struct adv7180_state *state)
673674
ADV7180_HUE_MAX, 1, ADV7180_HUE_DEF);
674675
v4l2_ctrl_new_custom(&state->ctrl_hdl, &adv7180_ctrl_fast_switch, NULL);
675676

676-
v4l2_ctrl_new_std_menu_items(&state->ctrl_hdl, &adv7180_ctrl_ops,
677-
V4L2_CID_TEST_PATTERN,
678-
ARRAY_SIZE(test_pattern_menu) - 1,
679-
0, ARRAY_SIZE(test_pattern_menu) - 1,
680-
test_pattern_menu);
677+
if (state->chip_info->flags & ADV7180_FLAG_TEST_PATTERN) {
678+
v4l2_ctrl_new_std_menu_items(&state->ctrl_hdl,
679+
&adv7180_ctrl_ops,
680+
V4L2_CID_TEST_PATTERN,
681+
ARRAY_SIZE(test_pattern_menu) - 1,
682+
0,
683+
ARRAY_SIZE(test_pattern_menu) - 1,
684+
test_pattern_menu);
685+
}
681686

682687
state->sd.ctrl_handler = &state->ctrl_hdl;
683688
if (state->ctrl_hdl.error) {
@@ -1209,7 +1214,7 @@ static const struct adv7180_chip_info adv7182_info = {
12091214
};
12101215

12111216
static const struct adv7180_chip_info adv7280_info = {
1212-
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_I2P,
1217+
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_I2P | ADV7180_FLAG_TEST_PATTERN,
12131218
.valid_input_mask = BIT(ADV7182_INPUT_CVBS_AIN1) |
12141219
BIT(ADV7182_INPUT_CVBS_AIN2) |
12151220
BIT(ADV7182_INPUT_CVBS_AIN3) |
@@ -1223,7 +1228,8 @@ static const struct adv7180_chip_info adv7280_info = {
12231228
};
12241229

12251230
static const struct adv7180_chip_info adv7280_m_info = {
1226-
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_MIPI_CSI2 | ADV7180_FLAG_I2P,
1231+
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_MIPI_CSI2 | ADV7180_FLAG_I2P |
1232+
ADV7180_FLAG_TEST_PATTERN,
12271233
.valid_input_mask = BIT(ADV7182_INPUT_CVBS_AIN1) |
12281234
BIT(ADV7182_INPUT_CVBS_AIN2) |
12291235
BIT(ADV7182_INPUT_CVBS_AIN3) |
@@ -1244,7 +1250,8 @@ static const struct adv7180_chip_info adv7280_m_info = {
12441250
};
12451251

12461252
static const struct adv7180_chip_info adv7281_info = {
1247-
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_MIPI_CSI2,
1253+
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_MIPI_CSI2 |
1254+
ADV7180_FLAG_TEST_PATTERN,
12481255
.valid_input_mask = BIT(ADV7182_INPUT_CVBS_AIN1) |
12491256
BIT(ADV7182_INPUT_CVBS_AIN2) |
12501257
BIT(ADV7182_INPUT_CVBS_AIN7) |
@@ -1259,7 +1266,8 @@ static const struct adv7180_chip_info adv7281_info = {
12591266
};
12601267

12611268
static const struct adv7180_chip_info adv7281_m_info = {
1262-
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_MIPI_CSI2,
1269+
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_MIPI_CSI2 |
1270+
ADV7180_FLAG_TEST_PATTERN,
12631271
.valid_input_mask = BIT(ADV7182_INPUT_CVBS_AIN1) |
12641272
BIT(ADV7182_INPUT_CVBS_AIN2) |
12651273
BIT(ADV7182_INPUT_CVBS_AIN3) |
@@ -1279,7 +1287,8 @@ static const struct adv7180_chip_info adv7281_m_info = {
12791287
};
12801288

12811289
static const struct adv7180_chip_info adv7281_ma_info = {
1282-
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_MIPI_CSI2,
1290+
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_MIPI_CSI2 |
1291+
ADV7180_FLAG_TEST_PATTERN,
12831292
.valid_input_mask = BIT(ADV7182_INPUT_CVBS_AIN1) |
12841293
BIT(ADV7182_INPUT_CVBS_AIN2) |
12851294
BIT(ADV7182_INPUT_CVBS_AIN3) |
@@ -1304,7 +1313,7 @@ static const struct adv7180_chip_info adv7281_ma_info = {
13041313
};
13051314

13061315
static const struct adv7180_chip_info adv7282_info = {
1307-
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_I2P,
1316+
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_I2P | ADV7180_FLAG_TEST_PATTERN,
13081317
.valid_input_mask = BIT(ADV7182_INPUT_CVBS_AIN1) |
13091318
BIT(ADV7182_INPUT_CVBS_AIN2) |
13101319
BIT(ADV7182_INPUT_CVBS_AIN7) |
@@ -1319,7 +1328,8 @@ static const struct adv7180_chip_info adv7282_info = {
13191328
};
13201329

13211330
static const struct adv7180_chip_info adv7282_m_info = {
1322-
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_MIPI_CSI2 | ADV7180_FLAG_I2P,
1331+
.flags = ADV7180_FLAG_V2 | ADV7180_FLAG_MIPI_CSI2 | ADV7180_FLAG_I2P |
1332+
ADV7180_FLAG_TEST_PATTERN,
13231333
.valid_input_mask = BIT(ADV7182_INPUT_CVBS_AIN1) |
13241334
BIT(ADV7182_INPUT_CVBS_AIN2) |
13251335
BIT(ADV7182_INPUT_CVBS_AIN3) |

0 commit comments

Comments
 (0)