[media] dvb_usb_v2: simplify remote init/exit logic
authorAntti Palosaari <crope@iki.fi>
Fri, 15 Jun 2012 03:52:42 +0000 (00:52 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 4 Aug 2012 10:56:33 +0000 (07:56 -0300)
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/dvb-usb/dvb_usb.h
drivers/media/dvb/dvb-usb/dvb_usb_init.c

index a972de6f84864cabc0c135779b2887303cdb9bc5..62097f38bb16fb6c72318307d1df676dcde027f9 100644 (file)
@@ -328,7 +328,6 @@ struct dvb_usb_device {
 #define DVB_USB_STATE_INIT        0x000
 #define DVB_USB_STATE_I2C         0x001
 #define DVB_USB_STATE_DVB         0x002
-#define DVB_USB_STATE_REMOTE      0x004
        int state;
 
        int powered;
index cea33433150884a5f747f7a184bc21a0cf93d034..5da4233501f01639868dc721ae7b5c5df54e759e 100644 (file)
@@ -137,6 +137,8 @@ static int dvb_usbv2_remote_init(struct dvb_usb_device *d)
        int ret;
        struct rc_dev *dev;
 
+       pr_debug("%s:\n", __func__);
+
        if (dvb_usbv2_disable_rc_polling || !d->props->get_rc_config)
                return 0;
 
@@ -190,8 +192,6 @@ static int dvb_usbv2_remote_init(struct dvb_usb_device *d)
                                msecs_to_jiffies(d->rc.interval));
        }
 
-       d->state |= DVB_USB_STATE_REMOTE;
-
        return 0;
 err:
        pr_debug("%s: failed=%d\n", __func__, ret);
@@ -200,13 +200,14 @@ err:
 
 static int dvb_usbv2_remote_exit(struct dvb_usb_device *d)
 {
-       if (d->state & DVB_USB_STATE_REMOTE) {
+       pr_debug("%s:\n", __func__);
+
+       if (d->rc_dev) {
                cancel_delayed_work_sync(&d->rc_query_work);
                rc_unregister_device(d->rc_dev);
+               d->rc_dev = NULL;
        }
 
-       d->state &= ~DVB_USB_STATE_REMOTE;
-
        return 0;
 }