summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/hdpvr/hdpvr-core.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-03-26 22:17:48 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-03-26 22:17:48 -0300
commit09aaab39357cabdaf8446e398d8eea2aee045d11 (patch)
treeadebb16a1d12259e0a335fd60443f56a4e6dda67 /linux/drivers/media/video/hdpvr/hdpvr-core.c
parent885a23d5d3b31b99d23ef1d05b212d9e3fbba93f (diff)
parent355b49a5385160b8c9a02ba6ef84f6dfaa9e74b9 (diff)
downloadmediapointer-dvb-s2-09aaab39357cabdaf8446e398d8eea2aee045d11.tar.gz
mediapointer-dvb-s2-09aaab39357cabdaf8446e398d8eea2aee045d11.tar.bz2
merge: http://linuxtv.org/hg/~awalls/v4l-dvb
From: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'linux/drivers/media/video/hdpvr/hdpvr-core.c')
-rw-r--r--linux/drivers/media/video/hdpvr/hdpvr-core.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/linux/drivers/media/video/hdpvr/hdpvr-core.c b/linux/drivers/media/video/hdpvr/hdpvr-core.c
index e96aed42d..547833eb6 100644
--- a/linux/drivers/media/video/hdpvr/hdpvr-core.c
+++ b/linux/drivers/media/video/hdpvr/hdpvr-core.c
@@ -342,7 +342,7 @@ static int hdpvr_probe(struct usb_interface *interface,
}
mutex_unlock(&dev->io_mutex);
- if (hdpvr_register_videodev(dev,
+ if (hdpvr_register_videodev(dev, &interface->dev,
video_nr[atomic_inc_return(&dev_nr)])) {
err("registering videodev failed");
goto error;
@@ -390,8 +390,10 @@ static void hdpvr_disconnect(struct usb_interface *interface)
video_unregister_device(dev->video_dev);
wake_up_interruptible(&dev->wait_data);
wake_up_interruptible(&dev->wait_buffer);
+ mutex_unlock(&dev->io_mutex);
msleep(100);
flush_workqueue(dev->workqueue);
+ mutex_lock(&dev->io_mutex);
hdpvr_cancel_queue(dev);
destroy_workqueue(dev->workqueue);
mutex_unlock(&dev->io_mutex);