Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 285327
b: refs/heads/master
c: 8159c18
h: refs/heads/master
i:
  285325: 98d0c4c
  285323: fa47466
  285319: 42fb108
  285311: 938aa4a
v: v3
  • Loading branch information
Stefan Ringel authored and Mauro Carvalho Chehab committed Nov 28, 2011
1 parent f0816a5 commit 37baa37
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 54 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c00ecc97bc638919ff35117290b4fab01354e8d7
refs/heads/master: 8159c184cf58ac78fc868d776fa2062d1162b6e5
49 changes: 0 additions & 49 deletions trunk/drivers/media/video/tm6000/tm6000-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -599,55 +599,6 @@ int tm6000_init(struct tm6000_core *dev)
return rc;
}

int tm6000_reset(struct tm6000_core *dev)
{
int pipe;
int err;

msleep(500);

err = usb_set_interface(dev->udev, dev->isoc_in.bInterfaceNumber, 0);
if (err < 0) {
tm6000_err("failed to select interface %d, alt. setting 0\n",
dev->isoc_in.bInterfaceNumber);
return err;
}

err = usb_reset_configuration(dev->udev);
if (err < 0) {
tm6000_err("failed to reset configuration\n");
return err;
}

if ((dev->quirks & TM6000_QUIRK_NO_USB_DELAY) == 0)
msleep(5);

/*
* Not all devices have int_in defined
*/
if (!dev->int_in.endp)
return 0;

err = usb_set_interface(dev->udev, dev->isoc_in.bInterfaceNumber, 2);
if (err < 0) {
tm6000_err("failed to select interface %d, alt. setting 2\n",
dev->isoc_in.bInterfaceNumber);
return err;
}

msleep(5);

pipe = usb_rcvintpipe(dev->udev,
dev->int_in.endp->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK);

err = usb_clear_halt(dev->udev, pipe);
if (err < 0) {
tm6000_err("usb_clear_halt failed: %d\n", err);
return err;
}

return 0;
}

int tm6000_set_audio_bitrate(struct tm6000_core *dev, int bitrate)
{
Expand Down
21 changes: 17 additions & 4 deletions trunk/drivers/media/video/tm6000/tm6000-video.c
Original file line number Diff line number Diff line change
Expand Up @@ -1609,12 +1609,25 @@ static int tm6000_release(struct file *file)

tm6000_uninit_isoc(dev);

/* Stop interrupt USB pipe */
tm6000_ir_int_stop(dev);

usb_reset_configuration(dev->udev);

if (&dev->int_in)
usb_set_interface(dev->udev,
dev->isoc_in.bInterfaceNumber,
2);
else
usb_set_interface(dev->udev,
dev->isoc_in.bInterfaceNumber,
0);

/* Start interrupt USB pipe */
tm6000_ir_int_start(dev);

if (!fh->radio)
videobuf_mmap_free(&fh->vb_vidq);

err = tm6000_reset(dev);
if (err < 0)
dev_err(&vdev->dev, "reset failed: %d\n", err);
}

kfree(fh);
Expand Down

0 comments on commit 37baa37

Please sign in to comment.