[media] cx231xx: remember status of i2c port_3 switch
authorMatthias Schwarzott <zzam@gentoo.org>
Thu, 2 Oct 2014 05:21:00 +0000 (02:21 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Thu, 30 Oct 2014 19:21:46 +0000 (17:21 -0200)
This is used later for is_tuner function that switches i2c behaviour for
some tuners.

[mchehab@osg.samsung.com: Fix CodingStyle on a multi-line comment]

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/usb/cx231xx/cx231xx-avcore.c
drivers/media/usb/cx231xx/cx231xx.h

index 40a69879fc0ad91993e375637b2e41a6b32e0156..0a5fec47c08ccf6ff8f20ab91df049fdb96824e9 100644 (file)
@@ -1272,6 +1272,14 @@ int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool 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?
+        * If yes, the flag dev->port_3_switch_enabled must be initialized
+        * correctly.
+        */
+
        status = cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER,
                                       PWR_CTL_EN, value, 4);
        if (status < 0)
@@ -1294,6 +1302,10 @@ int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool is_port_3)
        status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
                                        PWR_CTL_EN, value, 4);
 
+       /* remember status of the switch for usage in is_tuner */
+       if (status >= 0)
+               dev->port_3_switch_enabled = is_port_3;
+
        return status;
 
 }
index f03338bdb949befe08d8f20a1a23c3299b117a83..8a3c97b4e89539940286b244ec2a57251e2c8b88 100644 (file)
@@ -629,6 +629,7 @@ struct cx231xx {
        /* I2C adapters: Master 1 & 2 (External) & Master 3 (Internal only) */
        struct cx231xx_i2c i2c_bus[3];
        unsigned int xc_fw_load_done:1;
+       unsigned int port_3_switch_enabled:1;
        /* locks */
        struct mutex gpio_i2c_lock;
        struct mutex i2c_lock;