Skip to content

Commit

Permalink
[media] em28xx-dvb: fix PCTV 461e tuner I2C binding
Browse files Browse the repository at this point in the history
Add missing m88ts2022 module reference counts as removing that module
is not allowed when it is used by em28xx-dvb module. That same module
was not unregistered correctly, fix it too.

Error cases validated by returning errors from m88ds3103, m88ts2022
and a8293 probe().

Signed-off-by: Antti Palosaari <crope@iki.fi>
Cc: stable@vger.kernel.org
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
  • Loading branch information
Antti Palosaari authored and Mauro Carvalho Chehab committed Mar 28, 2014
1 parent 418a97c commit 37571b1
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions drivers/media/usb/em28xx/em28xx-dvb.c
Original file line number Diff line number Diff line change
@@ -1602,6 +1602,7 @@ static int em28xx_dvb_suspend(struct em28xx *dev)
em28xx_info("Suspending DVB extension");
if (dev->dvb) {
struct em28xx_dvb *dvb = dev->dvb;
struct i2c_client *client = dvb->i2c_client_tuner;

if (dvb->fe[0]) {
ret = dvb_frontend_suspend(dvb->fe[0]);
@@ -1639,6 +1640,15 @@ static int em28xx_dvb_resume(struct em28xx *dev)
ret = dvb_frontend_resume(dvb->fe[1]);
em28xx_info("fe1 resume %d", ret);
}
/* remove I2C tuner */
if (client) {
module_put(client->dev.driver->owner);
i2c_unregister_device(client);
}

em28xx_unregister_dvb(dvb);
kfree(dvb);
dev->dvb = NULL;
}

return 0;

0 comments on commit 37571b1

Please sign in to comment.