diff options
Diffstat (limited to 'drivers/media/dvb/cinergyT2/cinergyT2.c')
-rw-r--r-- | drivers/media/dvb/cinergyT2/cinergyT2.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/media/dvb/cinergyT2/cinergyT2.c b/drivers/media/dvb/cinergyT2/cinergyT2.c index 9325d039ea65..1b8953600425 100644 --- a/drivers/media/dvb/cinergyT2/cinergyT2.c +++ b/drivers/media/dvb/cinergyT2/cinergyT2.c | |||
@@ -544,15 +544,19 @@ static unsigned int cinergyt2_poll (struct file *file, struct poll_table_struct | |||
544 | { | 544 | { |
545 | struct dvb_device *dvbdev = file->private_data; | 545 | struct dvb_device *dvbdev = file->private_data; |
546 | struct cinergyt2 *cinergyt2 = dvbdev->priv; | 546 | struct cinergyt2 *cinergyt2 = dvbdev->priv; |
547 | unsigned int mask = 0; | ||
547 | 548 | ||
548 | if (cinergyt2->disconnect_pending || mutex_lock_interruptible(&cinergyt2->sem)) | 549 | if (cinergyt2->disconnect_pending || mutex_lock_interruptible(&cinergyt2->sem)) |
549 | return -ERESTARTSYS; | 550 | return -ERESTARTSYS; |
550 | 551 | ||
551 | poll_wait(file, &cinergyt2->poll_wq, wait); | 552 | poll_wait(file, &cinergyt2->poll_wq, wait); |
552 | 553 | ||
554 | if (cinergyt2->pending_fe_events != 0) | ||
555 | mask |= (POLLIN | POLLRDNORM | POLLPRI); | ||
556 | |||
553 | mutex_unlock(&cinergyt2->sem); | 557 | mutex_unlock(&cinergyt2->sem); |
554 | 558 | ||
555 | return (POLLIN | POLLRDNORM | POLLPRI); | 559 | return mask; |
556 | } | 560 | } |
557 | 561 | ||
558 | 562 | ||
@@ -902,7 +906,7 @@ static int cinergyt2_probe (struct usb_interface *intf, | |||
902 | return -ENOMEM; | 906 | return -ENOMEM; |
903 | } | 907 | } |
904 | 908 | ||
905 | if ((err = dvb_register_adapter(&cinergyt2->adapter, DRIVER_NAME, THIS_MODULE)) < 0) { | 909 | if ((err = dvb_register_adapter(&cinergyt2->adapter, DRIVER_NAME, THIS_MODULE, &cinergyt2->udev->dev)) < 0) { |
906 | kfree(cinergyt2); | 910 | kfree(cinergyt2); |
907 | return err; | 911 | return err; |
908 | } | 912 | } |