[media] af9015: remove 2nd I2C-adapter
authorAntti Palosaari <crope@iki.fi>
Sat, 18 Jun 2011 13:24:53 +0000 (10:24 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 27 Jul 2011 20:55:58 +0000 (17:55 -0300)
It is useless. There is only one physical I2C-adapter.

2nd adapter was added originally due to some plans for allowing only one
demod to access bus at time. But I never implemented proper locking...

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/dvb-usb/af9015.c
drivers/media/dvb/dvb-usb/af9015.h

index 7ad4ed8de8b23f7fe3c1faff61e0a07d93191e5b..be6306b48a5df6d6ede3f6c412b4e87f92ea911b 100644 (file)
@@ -1089,44 +1089,11 @@ error:
        return ret;
 }
 
-/* init 2nd I2C adapter */
-static int af9015_i2c_init(struct dvb_usb_device *d)
-{
-       int ret;
-       struct af9015_state *state = d->priv;
-       deb_info("%s:\n", __func__);
-
-       strncpy(state->i2c_adap.name, d->desc->name,
-               sizeof(state->i2c_adap.name));
-       state->i2c_adap.algo      = d->props.i2c_algo;
-       state->i2c_adap.algo_data = NULL;
-       state->i2c_adap.dev.parent = &d->udev->dev;
-
-       i2c_set_adapdata(&state->i2c_adap, d);
-
-       ret = i2c_add_adapter(&state->i2c_adap);
-       if (ret < 0)
-               err("could not add i2c adapter");
-
-       return ret;
-}
-
 static int af9015_af9013_frontend_attach(struct dvb_usb_adapter *adap)
 {
        int ret;
-       struct af9015_state *state = adap->dev->priv;
-       struct i2c_adapter *i2c_adap;
-
-       if (adap->id == 0) {
-               /* select I2C adapter */
-               i2c_adap = &adap->dev->i2c_adap;
-
-               deb_info("%s: init I2C\n", __func__);
-               ret = af9015_i2c_init(adap->dev);
-       } else {
-               /* select I2C adapter */
-               i2c_adap = &state->i2c_adap;
 
+       if (adap->id == 1) {
                /* copy firmware to 2nd demodulator */
                if (af9015_config.dual_mode) {
                        ret = af9015_copy_firmware(adap->dev);
@@ -1143,7 +1110,7 @@ static int af9015_af9013_frontend_attach(struct dvb_usb_adapter *adap)
 
        /* attach demodulator */
        adap->fe = dvb_attach(af9013_attach, &af9015_af9013_config[adap->id],
-               i2c_adap);
+               &adap->dev->i2c_adap);
 
        return adap->fe == NULL ? -ENODEV : 0;
 }
@@ -1213,57 +1180,56 @@ static struct mxl5007t_config af9015_mxl5007t_config = {
 
 static int af9015_tuner_attach(struct dvb_usb_adapter *adap)
 {
-       struct af9015_state *state = adap->dev->priv;
-       struct i2c_adapter *i2c_adap;
        int ret;
        deb_info("%s:\n", __func__);
 
-       /* select I2C adapter */
-       if (adap->id == 0)
-               i2c_adap = &adap->dev->i2c_adap;
-       else
-               i2c_adap = &state->i2c_adap;
-
        switch (af9015_af9013_config[adap->id].tuner) {
        case AF9013_TUNER_MT2060:
        case AF9013_TUNER_MT2060_2:
-               ret = dvb_attach(mt2060_attach, adap->fe, i2c_adap,
+               ret = dvb_attach(mt2060_attach, adap->fe, &adap->dev->i2c_adap,
                        &af9015_mt2060_config,
                        af9015_config.mt2060_if1[adap->id])
                        == NULL ? -ENODEV : 0;
                break;
        case AF9013_TUNER_QT1010:
        case AF9013_TUNER_QT1010A:
-               ret = dvb_attach(qt1010_attach, adap->fe, i2c_adap,
+               ret = dvb_attach(qt1010_attach, adap->fe, &adap->dev->i2c_adap,
                        &af9015_qt1010_config) == NULL ? -ENODEV : 0;
                break;
        case AF9013_TUNER_TDA18271:
-               ret = dvb_attach(tda18271_attach, adap->fe, 0xc0, i2c_adap,
+               ret = dvb_attach(tda18271_attach, adap->fe, 0xc0,
+                       &adap->dev->i2c_adap,
                        &af9015_tda18271_config) == NULL ? -ENODEV : 0;
                break;
        case AF9013_TUNER_TDA18218:
-               ret = dvb_attach(tda18218_attach, adap->fe, i2c_adap,
+               ret = dvb_attach(tda18218_attach, adap->fe,
+                       &adap->dev->i2c_adap,
                        &af9015_tda18218_config) == NULL ? -ENODEV : 0;
                break;
        case AF9013_TUNER_MXL5003D:
-               ret = dvb_attach(mxl5005s_attach, adap->fe, i2c_adap,
+               ret = dvb_attach(mxl5005s_attach, adap->fe,
+                       &adap->dev->i2c_adap,
                        &af9015_mxl5003_config) == NULL ? -ENODEV : 0;
                break;
        case AF9013_TUNER_MXL5005D:
        case AF9013_TUNER_MXL5005R:
-               ret = dvb_attach(mxl5005s_attach, adap->fe, i2c_adap,
+               ret = dvb_attach(mxl5005s_attach, adap->fe,
+                       &adap->dev->i2c_adap,
                        &af9015_mxl5005_config) == NULL ? -ENODEV : 0;
                break;
        case AF9013_TUNER_ENV77H11D5:
-               ret = dvb_attach(dvb_pll_attach, adap->fe, 0xc0, i2c_adap,
+               ret = dvb_attach(dvb_pll_attach, adap->fe, 0xc0,
+                       &adap->dev->i2c_adap,
                        DVB_PLL_TDA665X) == NULL ? -ENODEV : 0;
                break;
        case AF9013_TUNER_MC44S803:
-               ret = dvb_attach(mc44s803_attach, adap->fe, i2c_adap,
+               ret = dvb_attach(mc44s803_attach, adap->fe,
+                       &adap->dev->i2c_adap,
                        &af9015_mc44s803_config) == NULL ? -ENODEV : 0;
                break;
        case AF9013_TUNER_MXL5007T:
-               ret = dvb_attach(mxl5007t_attach, adap->fe, i2c_adap,
+               ret = dvb_attach(mxl5007t_attach, adap->fe,
+                       &adap->dev->i2c_adap,
                        0xc0, &af9015_mxl5007t_config) == NULL ? -ENODEV : 0;
                break;
        case AF9013_TUNER_UNKNOWN:
@@ -1711,33 +1677,11 @@ static int af9015_usb_probe(struct usb_interface *intf,
        return ret;
 }
 
-static void af9015_i2c_exit(struct dvb_usb_device *d)
-{
-       struct af9015_state *state = d->priv;
-       deb_info("%s:\n", __func__);
-
-       /* remove 2nd I2C adapter */
-       if (d->state & DVB_USB_STATE_I2C)
-               i2c_del_adapter(&state->i2c_adap);
-}
-
-static void af9015_usb_device_exit(struct usb_interface *intf)
-{
-       struct dvb_usb_device *d = usb_get_intfdata(intf);
-       deb_info("%s:\n", __func__);
-
-       /* remove 2nd I2C adapter */
-       if (d != NULL && d->desc != NULL)
-               af9015_i2c_exit(d);
-
-       dvb_usb_device_exit(intf);
-}
-
 /* usb specific object needed to register this driver with the usb subsystem */
 static struct usb_driver af9015_usb_driver = {
        .name = "dvb_usb_af9015",
        .probe = af9015_usb_probe,
-       .disconnect = af9015_usb_device_exit,
+       .disconnect = dvb_usb_device_exit,
        .id_table = af9015_usb_table,
 };
 
index beb3004f00ba31640aab86399fd7ef4889469d14..6252ea6c19042b75a92e6aee88b3d9ec258f24da 100644 (file)
@@ -99,7 +99,6 @@ enum af9015_ir_mode {
 };
 
 struct af9015_state {
-       struct i2c_adapter i2c_adap; /* I2C adapter for 2nd FE */
        u8 rc_repeat;
        u32 rc_keycode;
        u8 rc_last[4];