[media] cx231xx: drop unconditional port3 switching
All switching should be done by i2c mux adapters. Drop explicit dont_use_port_3 flag. Drop info message about switch. Only the removed code in start_streaming is questionable: It did switch the port_3 flag without accessing i2c in between. Signed-off-by: Matthias Schwarzott <zzam@gentoo.org> Reviewed-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
15c212dd0f
commit
660acd54d1
|
@ -1270,9 +1270,6 @@ int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool is_port_3)
|
||||||
int status = 0;
|
int status = 0;
|
||||||
bool current_is_port_3;
|
bool current_is_port_3;
|
||||||
|
|
||||||
if (dev->board.dont_use_port_3)
|
|
||||||
is_port_3 = false;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Should this code check dev->port_3_switch_enabled first
|
* Should this code check dev->port_3_switch_enabled first
|
||||||
* to skip unnecessary reading of the register?
|
* to skip unnecessary reading of the register?
|
||||||
|
@ -1296,9 +1293,6 @@ int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool is_port_3)
|
||||||
else
|
else
|
||||||
value[0] &= ~I2C_DEMOD_EN;
|
value[0] &= ~I2C_DEMOD_EN;
|
||||||
|
|
||||||
cx231xx_info("Changing the i2c master port to %d\n",
|
|
||||||
is_port_3 ? 3 : 1);
|
|
||||||
|
|
||||||
status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
|
status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
|
||||||
PWR_CTL_EN, value, 4);
|
PWR_CTL_EN, value, 4);
|
||||||
|
|
||||||
|
@ -2329,9 +2323,6 @@ int cx231xx_set_power_mode(struct cx231xx *dev, enum AV_MODE mode)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dev->board.tuner_type != TUNER_ABSENT) {
|
if (dev->board.tuner_type != TUNER_ABSENT) {
|
||||||
/* Enable tuner */
|
|
||||||
cx231xx_enable_i2c_port_3(dev, true);
|
|
||||||
|
|
||||||
/* reset the Tuner */
|
/* reset the Tuner */
|
||||||
if (dev->board.tuner_gpio)
|
if (dev->board.tuner_gpio)
|
||||||
cx231xx_gpio_set(dev, dev->board.tuner_gpio);
|
cx231xx_gpio_set(dev, dev->board.tuner_gpio);
|
||||||
|
@ -2396,15 +2387,6 @@ int cx231xx_set_power_mode(struct cx231xx *dev, enum AV_MODE mode)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dev->board.tuner_type != TUNER_ABSENT) {
|
if (dev->board.tuner_type != TUNER_ABSENT) {
|
||||||
/*
|
|
||||||
* Enable tuner
|
|
||||||
* Hauppauge Exeter seems to need to do something different!
|
|
||||||
*/
|
|
||||||
if (dev->model == CX231XX_BOARD_HAUPPAUGE_EXETER)
|
|
||||||
cx231xx_enable_i2c_port_3(dev, false);
|
|
||||||
else
|
|
||||||
cx231xx_enable_i2c_port_3(dev, true);
|
|
||||||
|
|
||||||
/* reset the Tuner */
|
/* reset the Tuner */
|
||||||
if (dev->board.tuner_gpio)
|
if (dev->board.tuner_gpio)
|
||||||
cx231xx_gpio_set(dev, dev->board.tuner_gpio);
|
cx231xx_gpio_set(dev, dev->board.tuner_gpio);
|
||||||
|
|
|
@ -262,7 +262,6 @@ struct cx231xx_board cx231xx_boards[] = {
|
||||||
.norm = V4L2_STD_PAL,
|
.norm = V4L2_STD_PAL,
|
||||||
.no_alt_vanc = 1,
|
.no_alt_vanc = 1,
|
||||||
.external_av = 1,
|
.external_av = 1,
|
||||||
.dont_use_port_3 = 1,
|
|
||||||
/* Actually, it has a 417, but it isn't working correctly.
|
/* Actually, it has a 417, but it isn't working correctly.
|
||||||
* So set to 0 for now until someone can manage to get this
|
* So set to 0 for now until someone can manage to get this
|
||||||
* to work reliably. */
|
* to work reliably. */
|
||||||
|
@ -390,7 +389,6 @@ struct cx231xx_board cx231xx_boards[] = {
|
||||||
.norm = V4L2_STD_NTSC,
|
.norm = V4L2_STD_NTSC,
|
||||||
.no_alt_vanc = 1,
|
.no_alt_vanc = 1,
|
||||||
.external_av = 1,
|
.external_av = 1,
|
||||||
.dont_use_port_3 = 1,
|
|
||||||
.input = {{
|
.input = {{
|
||||||
.type = CX231XX_VMUX_COMPOSITE1,
|
.type = CX231XX_VMUX_COMPOSITE1,
|
||||||
.vmux = CX231XX_VIN_2_1,
|
.vmux = CX231XX_VIN_2_1,
|
||||||
|
@ -532,7 +530,6 @@ struct cx231xx_board cx231xx_boards[] = {
|
||||||
.norm = V4L2_STD_NTSC,
|
.norm = V4L2_STD_NTSC,
|
||||||
.no_alt_vanc = 1,
|
.no_alt_vanc = 1,
|
||||||
.external_av = 1,
|
.external_av = 1,
|
||||||
.dont_use_port_3 = 1,
|
|
||||||
|
|
||||||
.input = {{
|
.input = {{
|
||||||
.type = CX231XX_VMUX_COMPOSITE1,
|
.type = CX231XX_VMUX_COMPOSITE1,
|
||||||
|
@ -656,7 +653,6 @@ struct cx231xx_board cx231xx_boards[] = {
|
||||||
.norm = V4L2_STD_NTSC,
|
.norm = V4L2_STD_NTSC,
|
||||||
.no_alt_vanc = 1,
|
.no_alt_vanc = 1,
|
||||||
.external_av = 1,
|
.external_av = 1,
|
||||||
.dont_use_port_3 = 1,
|
|
||||||
.input = {{
|
.input = {{
|
||||||
.type = CX231XX_VMUX_COMPOSITE1,
|
.type = CX231XX_VMUX_COMPOSITE1,
|
||||||
.vmux = CX231XX_VIN_2_1,
|
.vmux = CX231XX_VIN_2_1,
|
||||||
|
@ -683,7 +679,6 @@ struct cx231xx_board cx231xx_boards[] = {
|
||||||
.norm = V4L2_STD_NTSC,
|
.norm = V4L2_STD_NTSC,
|
||||||
.no_alt_vanc = 1,
|
.no_alt_vanc = 1,
|
||||||
.external_av = 1,
|
.external_av = 1,
|
||||||
.dont_use_port_3 = 1,
|
|
||||||
/*.has_417 = 1, */
|
/*.has_417 = 1, */
|
||||||
/* This board is believed to have a hardware encoding chip
|
/* This board is believed to have a hardware encoding chip
|
||||||
* supporting mpeg1/2/4, but as the 417 is apparently not
|
* supporting mpeg1/2/4, but as the 417 is apparently not
|
||||||
|
@ -1012,9 +1007,6 @@ static int read_eeprom(struct cx231xx *dev, struct i2c_client *client,
|
||||||
len_todo -= msg_read.len;
|
len_todo -= msg_read.len;
|
||||||
}
|
}
|
||||||
|
|
||||||
cx231xx_enable_i2c_port_3(dev, true);
|
|
||||||
/* mutex_unlock(&dev->i2c_lock); */
|
|
||||||
|
|
||||||
for (i = 0; i + 15 < len; i += 16)
|
for (i = 0; i + 15 < len; i += 16)
|
||||||
cx231xx_info("i2c eeprom %02x: %*ph\n", i, 16, &eedata[i]);
|
cx231xx_info("i2c eeprom %02x: %*ph\n", i, 16, &eedata[i]);
|
||||||
|
|
||||||
|
|
|
@ -1407,9 +1407,7 @@ int cx231xx_dev_init(struct cx231xx *dev)
|
||||||
if (dev->board.has_dvb)
|
if (dev->board.has_dvb)
|
||||||
cx231xx_set_alt_setting(dev, INDEX_TS1, 0);
|
cx231xx_set_alt_setting(dev, INDEX_TS1, 0);
|
||||||
|
|
||||||
/* set the I2C master port to 3 on channel 1 */
|
errCode = 0;
|
||||||
errCode = cx231xx_enable_i2c_port_3(dev, true);
|
|
||||||
|
|
||||||
return errCode;
|
return errCode;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(cx231xx_dev_init);
|
EXPORT_SYMBOL_GPL(cx231xx_dev_init);
|
||||||
|
|
|
@ -266,11 +266,7 @@ static int start_streaming(struct cx231xx_dvb *dvb)
|
||||||
|
|
||||||
if (dev->USE_ISO) {
|
if (dev->USE_ISO) {
|
||||||
cx231xx_info("DVB transfer mode is ISO.\n");
|
cx231xx_info("DVB transfer mode is ISO.\n");
|
||||||
mutex_lock(&dev->i2c_lock);
|
|
||||||
cx231xx_enable_i2c_port_3(dev, false);
|
|
||||||
cx231xx_set_alt_setting(dev, INDEX_TS1, 4);
|
cx231xx_set_alt_setting(dev, INDEX_TS1, 4);
|
||||||
cx231xx_enable_i2c_port_3(dev, true);
|
|
||||||
mutex_unlock(&dev->i2c_lock);
|
|
||||||
rc = cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE);
|
rc = cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE);
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
|
@ -368,7 +368,6 @@ struct cx231xx_board {
|
||||||
unsigned int valid:1;
|
unsigned int valid:1;
|
||||||
unsigned int no_alt_vanc:1;
|
unsigned int no_alt_vanc:1;
|
||||||
unsigned int external_av:1;
|
unsigned int external_av:1;
|
||||||
unsigned int dont_use_port_3:1;
|
|
||||||
|
|
||||||
unsigned char xclk, i2c_speed;
|
unsigned char xclk, i2c_speed;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue