[media] af9035: Add possibility to define which I2C adapter to use
authorOlli Salonen <olli.salonen@iki.fi>
Sun, 21 Sep 2014 10:53:18 +0000 (07:53 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 24 Sep 2014 00:47:28 +0000 (21:47 -0300)
Some I2C tuner drivers require that the I2C device of the tuner is added
to the I2C adapter of the demodulator (Si2168+Si2157 for example). Add
possibility to tell af9035_add_i2c_dev which I2C adapter should be used.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/usb/dvb-usb-v2/af9035.c

index 440ecb459b9ca43876f078ba588e16fb08603890..c50d27d4a57f5a9fe1b7910d33855f22188766f2 100644 (file)
@@ -194,12 +194,11 @@ static int af9035_wr_reg_mask(struct dvb_usb_device *d, u32 reg, u8 val,
 }
 
 static int af9035_add_i2c_dev(struct dvb_usb_device *d, char *type, u8 addr,
-               void *platform_data)
+               void *platform_data, struct i2c_adapter *adapter)
 {
        int ret, num;
        struct state *state = d_to_priv(d);
        struct i2c_client *client;
-       struct i2c_adapter *adapter = &d->i2c_adap;
        struct i2c_board_info board_info = {
                .addr = addr,
                .platform_data = platform_data,
@@ -1091,7 +1090,7 @@ static int af9035_frontend_attach(struct dvb_usb_adapter *adap)
        state->af9033_config[adap->id].fe = &adap->fe[0];
        state->af9033_config[adap->id].ops = &state->ops;
        ret = af9035_add_i2c_dev(d, "af9033", state->af9033_i2c_addr[adap->id],
-                       &state->af9033_config[adap->id]);
+                       &state->af9033_config[adap->id], &d->i2c_adap);
        if (ret)
                goto err;
 
@@ -1382,7 +1381,7 @@ static int af9035_tuner_attach(struct dvb_usb_adapter *adap)
 
                ret = af9035_add_i2c_dev(d, "it913x",
                                state->af9033_i2c_addr[adap->id] >> 1,
-                               &it913x_config);
+                               &it913x_config, &d->i2c_adap);
                if (ret)
                        goto err;
 
@@ -1407,7 +1406,7 @@ static int af9035_tuner_attach(struct dvb_usb_adapter *adap)
 
                ret = af9035_add_i2c_dev(d, "it913x",
                                state->af9033_i2c_addr[adap->id] >> 1,
-                               &it913x_config);
+                               &it913x_config, &d->i2c_adap);
                if (ret)
                        goto err;