diff options
| -rw-r--r-- | drivers/media/usb/em28xx/em28xx-dvb.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c index 9b3f033e1f09..f599b18ef7ca 100644 --- a/drivers/media/usb/em28xx/em28xx-dvb.c +++ b/drivers/media/usb/em28xx/em28xx-dvb.c | |||
| @@ -1630,6 +1630,7 @@ static int em28xx_dvb_resume(struct em28xx *dev) | |||
| 1630 | em28xx_info("Resuming DVB extension"); | 1630 | em28xx_info("Resuming DVB extension"); |
| 1631 | if (dev->dvb) { | 1631 | if (dev->dvb) { |
| 1632 | struct em28xx_dvb *dvb = dev->dvb; | 1632 | struct em28xx_dvb *dvb = dev->dvb; |
| 1633 | struct i2c_client *client = dvb->i2c_client_tuner; | ||
| 1633 | 1634 | ||
| 1634 | if (dvb->fe[0]) { | 1635 | if (dvb->fe[0]) { |
| 1635 | ret = dvb_frontend_resume(dvb->fe[0]); | 1636 | ret = dvb_frontend_resume(dvb->fe[0]); |
| @@ -1640,6 +1641,15 @@ static int em28xx_dvb_resume(struct em28xx *dev) | |||
| 1640 | ret = dvb_frontend_resume(dvb->fe[1]); | 1641 | ret = dvb_frontend_resume(dvb->fe[1]); |
| 1641 | em28xx_info("fe1 resume %d", ret); | 1642 | em28xx_info("fe1 resume %d", ret); |
| 1642 | } | 1643 | } |
| 1644 | /* remove I2C tuner */ | ||
| 1645 | if (client) { | ||
| 1646 | module_put(client->dev.driver->owner); | ||
| 1647 | i2c_unregister_device(client); | ||
| 1648 | } | ||
| 1649 | |||
| 1650 | em28xx_unregister_dvb(dvb); | ||
| 1651 | kfree(dvb); | ||
| 1652 | dev->dvb = NULL; | ||
| 1643 | } | 1653 | } |
| 1644 | 1654 | ||
| 1645 | return 0; | 1655 | return 0; |
