diff options
author | Matthias Schwarzott <zzam@gentoo.org> | 2014-10-02 05:21:00 (GMT) |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2014-10-30 19:21:46 (GMT) |
commit | a1f267651f1f653c82f46bf1d7d108ad31926a10 (patch) | |
tree | 88c17663f456a800228884ae063b1dce9fb9161f /drivers/media | |
parent | c3c3f1ae8bab74c99fa211c76b035a41523e83dd (diff) | |
download | linux-a1f267651f1f653c82f46bf1d7d108ad31926a10.tar.xz |
[media] cx231xx: remember status of i2c port_3 switch
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>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/usb/cx231xx/cx231xx-avcore.c | 12 | ||||
-rw-r--r-- | drivers/media/usb/cx231xx/cx231xx.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/media/usb/cx231xx/cx231xx-avcore.c b/drivers/media/usb/cx231xx/cx231xx-avcore.c index 40a6987..0a5fec4 100644 --- a/drivers/media/usb/cx231xx/cx231xx-avcore.c +++ b/drivers/media/usb/cx231xx/cx231xx-avcore.c @@ -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; } diff --git a/drivers/media/usb/cx231xx/cx231xx.h b/drivers/media/usb/cx231xx/cx231xx.h index f03338b..8a3c97b 100644 --- a/drivers/media/usb/cx231xx/cx231xx.h +++ b/drivers/media/usb/cx231xx/cx231xx.h @@ -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; |