diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/dvb-frontends/rtl2832.c | 24 | ||||
-rw-r--r-- | drivers/media/dvb-frontends/rtl2832_priv.h | 1 |
2 files changed, 4 insertions, 21 deletions
diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c index e80c6b974f4c..eaa74b0c8609 100644 --- a/drivers/media/dvb-frontends/rtl2832.c +++ b/drivers/media/dvb-frontends/rtl2832.c @@ -868,15 +868,10 @@ static int rtl2832_select(struct i2c_adapter *adap, void *mux_priv, u32 chan_id) cancel_delayed_work(&dev->i2c_gate_work); /* - * chan_id 1 is muxed adapter demod provides and chan_id 0 is demod - * itself. We need open gate when request is for chan_id 1. On that case * I2C adapter lock is already taken and due to that we will use * regmap_update_bits() which does not lock again I2C adapter. */ - if (chan_id == 1) - ret = regmap_update_bits(dev->regmap, 0x101, 0x08, 0x08); - else - ret = rtl2832_update_bits(dev->client, 0x101, 0x08, 0x00); + ret = regmap_update_bits(dev->regmap, 0x101, 0x08, 0x08); if (ret) goto err; @@ -1224,25 +1219,18 @@ static int rtl2832_probe(struct i2c_client *client, ret = PTR_ERR(dev->regmap); goto err_kfree; } - /* create muxed i2c adapter for demod itself */ - dev->i2c_adapter = i2c_add_mux_adapter(i2c, &i2c->dev, dev, 0, 0, 0, - rtl2832_select, NULL); - if (dev->i2c_adapter == NULL) { - ret = -ENODEV; - goto err_regmap_exit; - } /* check if the demod is there */ ret = rtl2832_bulk_read(client, 0x000, &tmp, 1); if (ret) - goto err_i2c_del_mux_adapter; + goto err_regmap_exit; /* create muxed i2c adapter for demod tuner bus */ dev->i2c_adapter_tuner = i2c_add_mux_adapter(i2c, &i2c->dev, dev, - 0, 1, 0, rtl2832_select, rtl2832_deselect); + 0, 0, 0, rtl2832_select, rtl2832_deselect); if (dev->i2c_adapter_tuner == NULL) { ret = -ENODEV; - goto err_i2c_del_mux_adapter; + goto err_regmap_exit; } /* create dvb_frontend */ @@ -1261,8 +1249,6 @@ static int rtl2832_probe(struct i2c_client *client, dev_info(&client->dev, "Realtek RTL2832 successfully attached\n"); return 0; -err_i2c_del_mux_adapter: - i2c_del_mux_adapter(dev->i2c_adapter); err_regmap_exit: regmap_exit(dev->regmap); err_kfree: @@ -1282,8 +1268,6 @@ static int rtl2832_remove(struct i2c_client *client) i2c_del_mux_adapter(dev->i2c_adapter_tuner); - i2c_del_mux_adapter(dev->i2c_adapter); - regmap_exit(dev->regmap); kfree(dev); diff --git a/drivers/media/dvb-frontends/rtl2832_priv.h b/drivers/media/dvb-frontends/rtl2832_priv.h index e25d7487ec06..9ff4f6530346 100644 --- a/drivers/media/dvb-frontends/rtl2832_priv.h +++ b/drivers/media/dvb-frontends/rtl2832_priv.h @@ -34,7 +34,6 @@ struct rtl2832_dev { struct rtl2832_platform_data *pdata; struct i2c_client *client; struct regmap *regmap; - struct i2c_adapter *i2c_adapter; struct i2c_adapter *i2c_adapter_tuner; struct dvb_frontend fe; struct delayed_work stat_work; |