[media] em28xx: add support for DVB SEC I2C client
authorAntti Palosaari <crope@iki.fi>
Thu, 16 Apr 2015 16:33:07 +0000 (13:33 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Sat, 6 Jun 2015 10:22:00 +0000 (07:22 -0300)
Add support for DVB SEC (satellite equipment controller) I2C client.

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

index 5b7c7c888274ef50e7d2996af60b125c8b377626..ef1bfa2606fc55d9050ca162f85d598f756429b3 100644 (file)
@@ -96,6 +96,7 @@ struct em28xx_dvb {
        int                     lna_gpio;
        struct i2c_client       *i2c_client_demod;
        struct i2c_client       *i2c_client_tuner;
+       struct i2c_client       *i2c_client_sec;
 };
 
 static inline void print_err_status(struct em28xx *dev,
@@ -1729,7 +1730,6 @@ static int em28xx_dvb_fini(struct em28xx *dev)
        em28xx_info("Closing DVB extension\n");
 
        dvb = dev->dvb;
-       client = dvb->i2c_client_tuner;
 
        em28xx_uninit_usb_xfer(dev, EM28XX_DIGITAL_MODE);
 
@@ -1746,7 +1746,15 @@ static int em28xx_dvb_fini(struct em28xx *dev)
                }
        }
 
+       /* remove I2C SEC */
+       client = dvb->i2c_client_sec;
+       if (client) {
+               module_put(client->dev.driver->owner);
+               i2c_unregister_device(client);
+       }
+
        /* remove I2C tuner */
+       client = dvb->i2c_client_tuner;
        if (client) {
                module_put(client->dev.driver->owner);
                i2c_unregister_device(client);