aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/tm6000/tm6000-dvb.c
diff options
context:
space:
mode:
authorMichel Ludwig <michel.ludwig@gmail.com>2007-09-24 17:01:49 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-05-18 00:39:46 -0300
commit4386136d29327a6645f7dba963d609d2452db843 (patch)
treeffbace1f9b18e406774902eaae5d780c197f612f /drivers/staging/tm6000/tm6000-dvb.c
parentV4L/DVB (12800): tm6000: fix tm6000 analog video buffer handling (diff)
downloadlinux-dev-4386136d29327a6645f7dba963d609d2452db843.tar.xz
linux-dev-4386136d29327a6645f7dba963d609d2452db843.zip
V4L/DVB (12801): tm6000: Add support for ADSTech Mini Dual TV (PTV-339).
Signed-off-by: Michel Ludwig <michel.ludwig@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/staging/tm6000/tm6000-dvb.c')
-rw-r--r--drivers/staging/tm6000/tm6000-dvb.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/staging/tm6000/tm6000-dvb.c b/drivers/staging/tm6000/tm6000-dvb.c
index d2ec6ca766cb..9df93cfe3106 100644
--- a/drivers/staging/tm6000/tm6000-dvb.c
+++ b/drivers/staging/tm6000/tm6000-dvb.c
@@ -61,10 +61,6 @@ int tm6000_start_stream(struct tm6000_core *dev)
tm6000_init_digital_mode(dev);
-// ret = usb_set_interface(dev->udev, 0, 1);
-// if (ret<0)
-// return ret;
-
/*
ret = tm6000_set_led_status(tm6000_dev, 0x1);
if(ret < 0) {
@@ -94,10 +90,17 @@ int tm6000_start_stream(struct tm6000_core *dev)
dvb->bulk_urb->transfer_buffer,
maxPaketSize,
tm6000_urb_received, dev);
+
+ ret = usb_set_interface(dev->udev, 0, 1);
+ if(ret < 0) {
+ printk(KERN_ERR "tm6000: error %i in %s during set interface\n", ret, __FUNCTION__);
+ return ret;
+ }
+
ret = usb_clear_halt(dev->udev, pipe);
if(ret < 0) {
printk(KERN_ERR "tm6000: error %i in %s during pipe reset\n",ret,__FUNCTION__);
-// return ret;
+ return ret;
}
else {
printk(KERN_ERR "tm6000: pipe resetted\n");
@@ -121,10 +124,16 @@ int tm6000_start_stream(struct tm6000_core *dev)
void tm6000_stop_stream(struct tm6000_core *dev)
{
+ int ret;
struct tm6000_dvb *dvb = dev->dvb;
// tm6000_set_led_status(tm6000_dev, 0x0);
+ ret = usb_set_interface(dev->udev, 0, 0);
+ if(ret < 0) {
+ printk(KERN_ERR "tm6000: error %i in %s during set interface\n",ret,__FUNCTION__);
+ }
+
if(dvb->bulk_urb) {
usb_kill_urb(dvb->bulk_urb);
kfree(dvb->bulk_urb->transfer_buffer);