3.16.66-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Shuah Khan <shuah.kh@xxxxxxxxxxx> commit 6eb5e3399e8f45aa191ad21c0556bece8ea559f2 upstream. 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@xxxxxxxxxxx> Reviewed-by: Antti Palosaari <crope@xxxxxx> Signed-off-by: Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx> Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx> --- drivers/media/usb/em28xx/em28xx-dvb.c | 17 ----------------- 1 file changed, 17 deletions(-) --- a/drivers/media/usb/em28xx/em28xx-dvb.c +++ b/drivers/media/usb/em28xx/em28xx-dvb.c @@ -1712,7 +1712,6 @@ static int em28xx_dvb_resume(struct em28 em28xx_info("Resuming DVB extension\n"); 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]); @@ -1723,22 +1722,6 @@ static int em28xx_dvb_resume(struct em28 ret = dvb_frontend_resume(dvb->fe[1]); em28xx_info("fe1 resume %d\n", 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;