[11/12] cx231xx: drop unconditional port3 switching
Commit Message
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>
---
drivers/media/usb/cx231xx/cx231xx-avcore.c | 17 -----------------
drivers/media/usb/cx231xx/cx231xx-cards.c | 8 --------
drivers/media/usb/cx231xx/cx231xx-core.c | 4 +---
drivers/media/usb/cx231xx/cx231xx-dvb.c | 4 ----
drivers/media/usb/cx231xx/cx231xx.h | 1 -
5 files changed, 1 insertion(+), 33 deletions(-)
Comments
Reviewed-by: Antti Palosaari <crope@iki.fi>
Antti
On 09/25/2014 08:08 AM, Matthias Schwarzott wrote:
> 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>
> ---
> drivers/media/usb/cx231xx/cx231xx-avcore.c | 17 -----------------
> drivers/media/usb/cx231xx/cx231xx-cards.c | 8 --------
> drivers/media/usb/cx231xx/cx231xx-core.c | 4 +---
> drivers/media/usb/cx231xx/cx231xx-dvb.c | 4 ----
> drivers/media/usb/cx231xx/cx231xx.h | 1 -
> 5 files changed, 1 insertion(+), 33 deletions(-)
>
> diff --git a/drivers/media/usb/cx231xx/cx231xx-avcore.c b/drivers/media/usb/cx231xx/cx231xx-avcore.c
> index d31ea57..138ee5e 100644
> --- a/drivers/media/usb/cx231xx/cx231xx-avcore.c
> +++ b/drivers/media/usb/cx231xx/cx231xx-avcore.c
> @@ -1270,8 +1270,6 @@ int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool is_port_3)
> int status = 0;
> bool current_is_port_3;
>
> - if (dev->board.dont_use_port_3)
> - is_port_3 = false;
> status = cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER,
> PWR_CTL_EN, value, 4);
> if (status < 0)
> @@ -1288,9 +1286,6 @@ int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool is_port_3)
> else
> 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,
> PWR_CTL_EN, value, 4);
>
> @@ -2320,9 +2315,6 @@ int cx231xx_set_power_mode(struct cx231xx *dev, enum AV_MODE mode)
> }
>
> if (dev->board.tuner_type != TUNER_ABSENT) {
> - /* Enable tuner */
> - cx231xx_enable_i2c_port_3(dev, true);
> -
> /* reset the Tuner */
> if (dev->board.tuner_gpio)
> cx231xx_gpio_set(dev, dev->board.tuner_gpio);
> @@ -2387,15 +2379,6 @@ int cx231xx_set_power_mode(struct cx231xx *dev, enum AV_MODE mode)
> }
>
> 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 */
> if (dev->board.tuner_gpio)
> cx231xx_gpio_set(dev, dev->board.tuner_gpio);
> diff --git a/drivers/media/usb/cx231xx/cx231xx-cards.c b/drivers/media/usb/cx231xx/cx231xx-cards.c
> index a6fdb6f..0a0a4e9 100644
> --- a/drivers/media/usb/cx231xx/cx231xx-cards.c
> +++ b/drivers/media/usb/cx231xx/cx231xx-cards.c
> @@ -262,7 +262,6 @@ struct cx231xx_board cx231xx_boards[] = {
> .norm = V4L2_STD_PAL,
> .no_alt_vanc = 1,
> .external_av = 1,
> - .dont_use_port_3 = 1,
> /* Actually, it has a 417, but it isn't working correctly.
> * So set to 0 for now until someone can manage to get this
> * to work reliably. */
> @@ -390,7 +389,6 @@ struct cx231xx_board cx231xx_boards[] = {
> .norm = V4L2_STD_NTSC,
> .no_alt_vanc = 1,
> .external_av = 1,
> - .dont_use_port_3 = 1,
> .input = {{
> .type = CX231XX_VMUX_COMPOSITE1,
> .vmux = CX231XX_VIN_2_1,
> @@ -532,7 +530,6 @@ struct cx231xx_board cx231xx_boards[] = {
> .norm = V4L2_STD_NTSC,
> .no_alt_vanc = 1,
> .external_av = 1,
> - .dont_use_port_3 = 1,
>
> .input = {{
> .type = CX231XX_VMUX_COMPOSITE1,
> @@ -656,7 +653,6 @@ struct cx231xx_board cx231xx_boards[] = {
> .norm = V4L2_STD_NTSC,
> .no_alt_vanc = 1,
> .external_av = 1,
> - .dont_use_port_3 = 1,
> .input = {{
> .type = CX231XX_VMUX_COMPOSITE1,
> .vmux = CX231XX_VIN_2_1,
> @@ -683,7 +679,6 @@ struct cx231xx_board cx231xx_boards[] = {
> .norm = V4L2_STD_NTSC,
> .no_alt_vanc = 1,
> .external_av = 1,
> - .dont_use_port_3 = 1,
> /*.has_417 = 1, */
> /* This board is believed to have a hardware encoding chip
> * 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;
> }
>
> - cx231xx_enable_i2c_port_3(dev, true);
> - /* mutex_unlock(&dev->i2c_lock); */
> -
> for (i = 0; i + 15 < len; i += 16)
> cx231xx_info("i2c eeprom %02x: %*ph\n", i, 16, &eedata[i]);
>
> diff --git a/drivers/media/usb/cx231xx/cx231xx-core.c b/drivers/media/usb/cx231xx/cx231xx-core.c
> index c8a6d20..c49022f 100644
> --- a/drivers/media/usb/cx231xx/cx231xx-core.c
> +++ b/drivers/media/usb/cx231xx/cx231xx-core.c
> @@ -1407,9 +1407,7 @@ int cx231xx_dev_init(struct cx231xx *dev)
> if (dev->board.has_dvb)
> cx231xx_set_alt_setting(dev, INDEX_TS1, 0);
>
> - /* set the I2C master port to 3 on channel 1 */
> - errCode = cx231xx_enable_i2c_port_3(dev, true);
> -
> + errCode = 0;
> return errCode;
> }
> EXPORT_SYMBOL_GPL(cx231xx_dev_init);
> diff --git a/drivers/media/usb/cx231xx/cx231xx-dvb.c b/drivers/media/usb/cx231xx/cx231xx-dvb.c
> index 869c433..2ea6946 100644
> --- a/drivers/media/usb/cx231xx/cx231xx-dvb.c
> +++ b/drivers/media/usb/cx231xx/cx231xx-dvb.c
> @@ -266,11 +266,7 @@ static int start_streaming(struct cx231xx_dvb *dvb)
>
> if (dev->USE_ISO) {
> 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_enable_i2c_port_3(dev, true);
> - mutex_unlock(&dev->i2c_lock);
> rc = cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE);
> if (rc < 0)
> return rc;
> diff --git a/drivers/media/usb/cx231xx/cx231xx.h b/drivers/media/usb/cx231xx/cx231xx.h
> index 9234cd7..b8daff6 100644
> --- a/drivers/media/usb/cx231xx/cx231xx.h
> +++ b/drivers/media/usb/cx231xx/cx231xx.h
> @@ -367,7 +367,6 @@ struct cx231xx_board {
> unsigned int valid:1;
> unsigned int no_alt_vanc:1;
> unsigned int external_av:1;
> - unsigned int dont_use_port_3:1;
>
> unsigned char xclk, i2c_speed;
>
>
@@ -1270,8 +1270,6 @@ int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool is_port_3)
int status = 0;
bool current_is_port_3;
- if (dev->board.dont_use_port_3)
- is_port_3 = false;
status = cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER,
PWR_CTL_EN, value, 4);
if (status < 0)
@@ -1288,9 +1286,6 @@ int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool is_port_3)
else
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,
PWR_CTL_EN, value, 4);
@@ -2320,9 +2315,6 @@ int cx231xx_set_power_mode(struct cx231xx *dev, enum AV_MODE mode)
}
if (dev->board.tuner_type != TUNER_ABSENT) {
- /* Enable tuner */
- cx231xx_enable_i2c_port_3(dev, true);
-
/* reset the Tuner */
if (dev->board.tuner_gpio)
cx231xx_gpio_set(dev, dev->board.tuner_gpio);
@@ -2387,15 +2379,6 @@ int cx231xx_set_power_mode(struct cx231xx *dev, enum AV_MODE mode)
}
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 */
if (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,
.no_alt_vanc = 1,
.external_av = 1,
- .dont_use_port_3 = 1,
/* Actually, it has a 417, but it isn't working correctly.
* So set to 0 for now until someone can manage to get this
* to work reliably. */
@@ -390,7 +389,6 @@ struct cx231xx_board cx231xx_boards[] = {
.norm = V4L2_STD_NTSC,
.no_alt_vanc = 1,
.external_av = 1,
- .dont_use_port_3 = 1,
.input = {{
.type = CX231XX_VMUX_COMPOSITE1,
.vmux = CX231XX_VIN_2_1,
@@ -532,7 +530,6 @@ struct cx231xx_board cx231xx_boards[] = {
.norm = V4L2_STD_NTSC,
.no_alt_vanc = 1,
.external_av = 1,
- .dont_use_port_3 = 1,
.input = {{
.type = CX231XX_VMUX_COMPOSITE1,
@@ -656,7 +653,6 @@ struct cx231xx_board cx231xx_boards[] = {
.norm = V4L2_STD_NTSC,
.no_alt_vanc = 1,
.external_av = 1,
- .dont_use_port_3 = 1,
.input = {{
.type = CX231XX_VMUX_COMPOSITE1,
.vmux = CX231XX_VIN_2_1,
@@ -683,7 +679,6 @@ struct cx231xx_board cx231xx_boards[] = {
.norm = V4L2_STD_NTSC,
.no_alt_vanc = 1,
.external_av = 1,
- .dont_use_port_3 = 1,
/*.has_417 = 1, */
/* This board is believed to have a hardware encoding chip
* 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;
}
- cx231xx_enable_i2c_port_3(dev, true);
- /* mutex_unlock(&dev->i2c_lock); */
-
for (i = 0; i + 15 < len; i += 16)
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)
cx231xx_set_alt_setting(dev, INDEX_TS1, 0);
- /* set the I2C master port to 3 on channel 1 */
- errCode = cx231xx_enable_i2c_port_3(dev, true);
-
+ errCode = 0;
return errCode;
}
EXPORT_SYMBOL_GPL(cx231xx_dev_init);
@@ -266,11 +266,7 @@ static int start_streaming(struct cx231xx_dvb *dvb)
if (dev->USE_ISO) {
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_enable_i2c_port_3(dev, true);
- mutex_unlock(&dev->i2c_lock);
rc = cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE);
if (rc < 0)
return rc;
@@ -367,7 +367,6 @@ struct cx231xx_board {
unsigned int valid:1;
unsigned int no_alt_vanc:1;
unsigned int external_av:1;
- unsigned int dont_use_port_3:1;
unsigned char xclk, i2c_speed;