[media] media: em28xx-dvb - fix em28xx_dvb_resume() to not unregister i2c and dvb
authorShuah Khan <shuah.kh@samsung.com>
Wed, 9 Jul 2014 13:21:27 +0000 (10:21 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Sat, 26 Jul 2014 14:03:36 +0000 (11:03 -0300)
em28xx_dvb_resume() unregisters i2c tuner, i2c demod, and dvb.
This erroneous cleanup results in i2c tuner, i2c demod, and dvb
devices unregistered and removed during resume. This error is a
result of merge conflict between two patches that went into 3.15.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/usb/em28xx/em28xx-dvb.c

index 96a0bdbecfada9eea00acf1a9a7849012043007a..5f90890b9558b07ae4beb2e947131a2009f50359 100644 (file)
@@ -1713,7 +1713,6 @@ static int em28xx_dvb_resume(struct em28xx *dev)
        em28xx_info("Resuming 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_resume(dvb->fe[0]);
@@ -1724,22 +1723,6 @@ 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);
-               }
-
-               /* remove I2C demod */
-               client = dvb->i2c_client_demod;
-               if (client) {
-                       module_put(client->dev.driver->owner);
-                       i2c_unregister_device(client);
-               }
-
-               em28xx_unregister_dvb(dvb);
-               kfree(dvb);
-               dev->dvb = NULL;
        }
 
        return 0;