aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/cinergyT2/cinergyT2.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/dvb/cinergyT2/cinergyT2.c')
-rw-r--r--drivers/media/dvb/cinergyT2/cinergyT2.c8
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 }