[media] cx231xx: drop unconditional port3 switching
authorMatthias Schwarzott <zzam@gentoo.org>
Thu, 2 Oct 2014 05:21:04 +0000 (02:21 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Thu, 30 Oct 2014 19:42:11 +0000 (17:42 -0200)
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>
drivers/media/usb/cx231xx/cx231xx-avcore.c
drivers/media/usb/cx231xx/cx231xx-cards.c
drivers/media/usb/cx231xx/cx231xx-core.c
drivers/media/usb/cx231xx/cx231xx-dvb.c
drivers/media/usb/cx231xx/cx231xx.h

index 0a5fec47c08ccf6ff8f20ab91df049fdb96824e9..b56bc87790741f70ed56eed406bcf255d2f802f8 100644 (file)
@@ -1270,9 +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;
-
        /*
         * Should this code check dev->port_3_switch_enabled first
         * 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
                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);
 
@@ -2329,9 +2323,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);
@@ -2396,15 +2387,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);
index 4eb2057ab022b25bd0ac865b1050f683acbaa74f..432cbcf8ce430e6fe501efa8385f3d98b2dbe6af 100644 (file)
@@ -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]);
 
index c8a6d20c9a23e8578edde437fefdca0d2a5d5980..c49022f4525a93623144c10c8f4ea6e70eae5936 100644 (file)
@@ -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);
index 869c433fbbbf62210abab966b290495ae39447c3..2ea69469e74b3fb88c69d822e164502988a50ba1 100644 (file)
@@ -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;
index c90aa44a6826bfa166211052dab6fa9c68417435..a0ec241765228b7cb384d9ec0dd3cb80218b6068 100644 (file)
@@ -368,7 +368,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;