diff options
author | Stefan Ringel <linuxtv@stefanringel.de> | 2011-11-28 13:46:18 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-11-28 18:30:28 -0500 |
commit | 8159c184cf58ac78fc868d776fa2062d1162b6e5 (patch) | |
tree | 0535ca72ce61b2d8611030c690910204a4d63634 /drivers/media/video/tm6000/tm6000-video.c | |
parent | c00ecc97bc638919ff35117290b4fab01354e8d7 (diff) |
[media] tm6000: bugfix at interrupt reset
Signed-off-by: Stefan Ringel <linuxtv@stefanringel.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/tm6000/tm6000-video.c')
-rw-r--r-- | drivers/media/video/tm6000/tm6000-video.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/drivers/media/video/tm6000/tm6000-video.c b/drivers/media/video/tm6000/tm6000-video.c index 1e5ace0b5d10..4db3535a6b42 100644 --- a/drivers/media/video/tm6000/tm6000-video.c +++ b/drivers/media/video/tm6000/tm6000-video.c | |||
@@ -1609,12 +1609,25 @@ static int tm6000_release(struct file *file) | |||
1609 | 1609 | ||
1610 | tm6000_uninit_isoc(dev); | 1610 | tm6000_uninit_isoc(dev); |
1611 | 1611 | ||
1612 | /* Stop interrupt USB pipe */ | ||
1613 | tm6000_ir_int_stop(dev); | ||
1614 | |||
1615 | usb_reset_configuration(dev->udev); | ||
1616 | |||
1617 | if (&dev->int_in) | ||
1618 | usb_set_interface(dev->udev, | ||
1619 | dev->isoc_in.bInterfaceNumber, | ||
1620 | 2); | ||
1621 | else | ||
1622 | usb_set_interface(dev->udev, | ||
1623 | dev->isoc_in.bInterfaceNumber, | ||
1624 | 0); | ||
1625 | |||
1626 | /* Start interrupt USB pipe */ | ||
1627 | tm6000_ir_int_start(dev); | ||
1628 | |||
1612 | if (!fh->radio) | 1629 | if (!fh->radio) |
1613 | videobuf_mmap_free(&fh->vb_vidq); | 1630 | videobuf_mmap_free(&fh->vb_vidq); |
1614 | |||
1615 | err = tm6000_reset(dev); | ||
1616 | if (err < 0) | ||
1617 | dev_err(&vdev->dev, "reset failed: %d\n", err); | ||
1618 | } | 1631 | } |
1619 | 1632 | ||
1620 | kfree(fh); | 1633 | kfree(fh); |