Em 04-08-2011 04:14, Thierry Reding escreveu: > Instead of selecting the default interface setting when preparing > isochronous transfers, select it on the first call to open() to make > sure it is available earlier. Hmm... I fail to see what this is needed earlier. The ISOC endpont is used only when the device is streaming. Did you get any bug related to it? If so, please describe it better. > --- > drivers/staging/tm6000/tm6000-video.c | 17 ++++++++++++----- > 1 files changed, 12 insertions(+), 5 deletions(-) > > diff --git a/drivers/staging/tm6000/tm6000-video.c b/drivers/staging/tm6000/tm6000-video.c > index 70fc19e..b59a0da 100644 > --- a/drivers/staging/tm6000/tm6000-video.c > +++ b/drivers/staging/tm6000/tm6000-video.c > @@ -595,11 +595,6 @@ static int tm6000_prepare_isoc(struct tm6000_core *dev) > tm6000_uninit_isoc(dev); > /* Stop interrupt USB pipe */ > tm6000_ir_int_stop(dev); > - > - usb_set_interface(dev->udev, > - dev->isoc_in.bInterfaceNumber, > - dev->isoc_in.bAlternateSetting); > - > /* Start interrupt USB pipe */ > tm6000_ir_int_start(dev); > > @@ -1484,6 +1479,18 @@ static int tm6000_open(struct file *file) > break; > } > > + if (dev->users == 0) { > + int err = usb_set_interface(dev->udev, > + dev->isoc_in.bInterfaceNumber, > + dev->isoc_in.bAlternateSetting); > + if (err < 0) { > + dev_err(&vdev->dev, "failed to select interface %d, " > + "alt. setting %d\n", > + dev->isoc_in.bInterfaceNumber, > + dev->isoc_in.bAlternateSetting); > + } > + } > + > /* If more than one user, mutex should be added */ > dev->users++; > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html