Message ID | 1394281177-5920-2-git-send-email-m.chehab@samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Am 08.03.2014 13:19, schrieb Mauro Carvalho Chehab: > Simplify the logic a little by removing one level of identation. > Also, it only makes sense to print something if the .fini callback > is actually doing something. > > Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com> > --- > drivers/media/usb/em28xx/em28xx-dvb.c | 48 +++++++++++++++++++---------------- > 1 file changed, 26 insertions(+), 22 deletions(-) > > diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c > index cacdca3a3412..6638394b3457 100644 > --- a/drivers/media/usb/em28xx/em28xx-dvb.c > +++ b/drivers/media/usb/em28xx/em28xx-dvb.c > @@ -1543,6 +1543,9 @@ static inline void prevent_sleep(struct dvb_frontend_ops *ops) > > static int em28xx_dvb_fini(struct em28xx *dev) > { > + struct em28xx_dvb *dvb; > + struct i2c_client *client; > + > if (dev->is_audio_only) { > /* Shouldn't initialize IR for this interface */ > return 0; > @@ -1553,35 +1556,36 @@ static int em28xx_dvb_fini(struct em28xx *dev) > return 0; > } > > - em28xx_info("Closing DVB extension"); > + if (!dev->dvb) > + return 0; > > - if (dev->dvb) { > - struct em28xx_dvb *dvb = dev->dvb; > - struct i2c_client *client = dvb->i2c_client_tuner; > + em28xx_info("Closing DVB extension"); > > - em28xx_uninit_usb_xfer(dev, EM28XX_DIGITAL_MODE); > + dvb = dev->dvb; > + client = dvb->i2c_client_tuner; > > - if (dev->disconnected) { > - /* We cannot tell the device to sleep > - * once it has been unplugged. */ > - if (dvb->fe[0]) > - prevent_sleep(&dvb->fe[0]->ops); > - if (dvb->fe[1]) > - prevent_sleep(&dvb->fe[1]->ops); > - } > + em28xx_uninit_usb_xfer(dev, EM28XX_DIGITAL_MODE); > > - /* remove I2C tuner */ > - if (client) { > - module_put(client->dev.driver->owner); > - i2c_unregister_device(client); > - } > + if (dev->disconnected) { > + /* We cannot tell the device to sleep > + * once it has been unplugged. */ > + if (dvb->fe[0]) > + prevent_sleep(&dvb->fe[0]->ops); > + if (dvb->fe[1]) > + prevent_sleep(&dvb->fe[1]->ops); > + } > > - em28xx_unregister_dvb(dvb); > - kfree(dvb); > - dev->dvb = NULL; > - kref_put(&dev->ref, em28xx_free_device); > + /* remove I2C tuner */ > + if (client) { > + module_put(client->dev.driver->owner); > + i2c_unregister_device(client); > } > > + em28xx_unregister_dvb(dvb); > + kfree(dvb); > + dev->dvb = NULL; > + kref_put(&dev->ref, em28xx_free_device); > + > return 0; > } > Reviewed-by: Frank Schäfer <fschaefer.oss@googlemail.com> -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c index cacdca3a3412..6638394b3457 100644 --- a/drivers/media/usb/em28xx/em28xx-dvb.c +++ b/drivers/media/usb/em28xx/em28xx-dvb.c @@ -1543,6 +1543,9 @@ static inline void prevent_sleep(struct dvb_frontend_ops *ops) static int em28xx_dvb_fini(struct em28xx *dev) { + struct em28xx_dvb *dvb; + struct i2c_client *client; + if (dev->is_audio_only) { /* Shouldn't initialize IR for this interface */ return 0; @@ -1553,35 +1556,36 @@ static int em28xx_dvb_fini(struct em28xx *dev) return 0; } - em28xx_info("Closing DVB extension"); + if (!dev->dvb) + return 0; - if (dev->dvb) { - struct em28xx_dvb *dvb = dev->dvb; - struct i2c_client *client = dvb->i2c_client_tuner; + em28xx_info("Closing DVB extension"); - em28xx_uninit_usb_xfer(dev, EM28XX_DIGITAL_MODE); + dvb = dev->dvb; + client = dvb->i2c_client_tuner; - if (dev->disconnected) { - /* We cannot tell the device to sleep - * once it has been unplugged. */ - if (dvb->fe[0]) - prevent_sleep(&dvb->fe[0]->ops); - if (dvb->fe[1]) - prevent_sleep(&dvb->fe[1]->ops); - } + em28xx_uninit_usb_xfer(dev, EM28XX_DIGITAL_MODE); - /* remove I2C tuner */ - if (client) { - module_put(client->dev.driver->owner); - i2c_unregister_device(client); - } + if (dev->disconnected) { + /* We cannot tell the device to sleep + * once it has been unplugged. */ + if (dvb->fe[0]) + prevent_sleep(&dvb->fe[0]->ops); + if (dvb->fe[1]) + prevent_sleep(&dvb->fe[1]->ops); + } - em28xx_unregister_dvb(dvb); - kfree(dvb); - dev->dvb = NULL; - kref_put(&dev->ref, em28xx_free_device); + /* remove I2C tuner */ + if (client) { + module_put(client->dev.driver->owner); + i2c_unregister_device(client); } + em28xx_unregister_dvb(dvb); + kfree(dvb); + dev->dvb = NULL; + kref_put(&dev->ref, em28xx_free_device); + return 0; }
Simplify the logic a little by removing one level of identation. Also, it only makes sense to print something if the .fini callback is actually doing something. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com> --- drivers/media/usb/em28xx/em28xx-dvb.c | 48 +++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 22 deletions(-)