summaryrefslogtreecommitdiff
path: root/drivers/media/usb/cx231xx/cx231xx-i2c.c
diff options
context:
space:
mode:
authorMatthias Schwarzott <zzam@gentoo.org>2014-10-02 02:21:01 -0300
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2014-10-30 17:38:36 -0200
commit8a0253481c4db5e0790de16748435dbc06b63e65 (patch)
treee6199ee405f1ed99ed6440941c9b392f8a8f415f /drivers/media/usb/cx231xx/cx231xx-i2c.c
parenta1f267651f1f653c82f46bf1d7d108ad31926a10 (diff)
[media] cx231xx: let is_tuner check the real i2c port and not the i2c master number
Get used i2c port from bus_nr and status of port_3 switch. Signed-off-by: Matthias Schwarzott <zzam@gentoo.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/usb/cx231xx/cx231xx-i2c.c')
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-i2c.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/media/usb/cx231xx/cx231xx-i2c.c b/drivers/media/usb/cx231xx/cx231xx-i2c.c
index af9180f3bf30..9ade3acbc877 100644
--- a/drivers/media/usb/cx231xx/cx231xx-i2c.c
+++ b/drivers/media/usb/cx231xx/cx231xx-i2c.c
@@ -54,10 +54,19 @@ do { \
} \
} while (0)
+static inline int get_real_i2c_port(struct cx231xx *dev, int bus_nr)
+{
+ if (bus_nr == 1)
+ return dev->port_3_switch_enabled ? I2C_1_MUX_3 : I2C_1_MUX_1;
+ return bus_nr;
+}
+
static inline bool is_tuner(struct cx231xx *dev, struct cx231xx_i2c *bus,
const struct i2c_msg *msg, int tuner_type)
{
- if (bus->nr != dev->board.tuner_i2c_master)
+ int i2c_port = get_real_i2c_port(dev, bus->nr);
+
+ if (i2c_port != dev->board.tuner_i2c_master)
return false;
if (msg->addr != dev->board.tuner_addr)