]> git.karo-electronics.de Git - linux-beck.git/commitdiff
[media] cx231xx: Prepare for attaching new style i2c_client DVB demod drivers
authorMatthias Schwarzott <zzam@gentoo.org>
Tue, 26 Jul 2016 07:09:04 +0000 (04:09 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Thu, 22 Sep 2016 15:54:49 +0000 (12:54 -0300)
cx231xx does not yet support attaching new-style i2c_client DVB demod
drivers. Add necessary code base on tuner support for i2c_client.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/usb/cx231xx/cx231xx-dvb.c

index ab2fb9fa0cd19621747d287ad7a79dd7f9d56205..f03034588343d41d1d17cc04c9fba891cfc3d3d3 100644 (file)
@@ -65,6 +65,7 @@ struct cx231xx_dvb {
        struct dmx_frontend fe_hw;
        struct dmx_frontend fe_mem;
        struct dvb_net net;
+       struct i2c_client *i2c_client_demod;
        struct i2c_client *i2c_client_tuner;
 };
 
@@ -586,8 +587,14 @@ static void unregister_dvb(struct cx231xx_dvb *dvb)
        dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw);
        dvb_dmxdev_release(&dvb->dmxdev);
        dvb_dmx_release(&dvb->demux);
-       client = dvb->i2c_client_tuner;
        /* remove I2C tuner */
+       client = dvb->i2c_client_tuner;
+       if (client) {
+               module_put(client->dev.driver->owner);
+               i2c_unregister_device(client);
+       }
+       /* remove I2C demod */
+       client = dvb->i2c_client_demod;
        if (client) {
                module_put(client->dev.driver->owner);
                i2c_unregister_device(client);