diff options
Diffstat (limited to 'linux/drivers/media/dvb/dvb-usb/dvb-usb-urb.c')
-rw-r--r-- | linux/drivers/media/dvb/dvb-usb/dvb-usb-urb.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/linux/drivers/media/dvb/dvb-usb/dvb-usb-urb.c b/linux/drivers/media/dvb/dvb-usb/dvb-usb-urb.c index e5bff4157..7effc9383 100644 --- a/linux/drivers/media/dvb/dvb-usb/dvb-usb-urb.c +++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb-urb.c @@ -159,11 +159,13 @@ int dvb_usb_urb_init(struct dvb_usb_device *d) { /* * when reloading the driver w/o replugging the device - * a timeout occures, this helps + * sometimes a timeout occures, this helps */ -// usb_clear_halt(dib->udev,usb_sndbulkpipe(dib->udev,dib->dibdev->dev_cl->pipe_cmd)); -// usb_clear_halt(dib->udev,usb_rcvbulkpipe(dib->udev,dib->dibdev->dev_cl->pipe_cmd)); -// usb_clear_halt(dib->udev,usb_rcvbulkpipe(dib->udev,dib->dibdev->dev_cl->pipe_data)); + if (d->props.generic_bulk_ctrl_endpoint != 0) { + usb_clear_halt(d->udev,usb_sndbulkpipe(d->udev,d->props.generic_bulk_ctrl_endpoint)); + usb_clear_halt(d->udev,usb_rcvbulkpipe(d->udev,d->props.generic_bulk_ctrl_endpoint)); + } + usb_clear_halt(d->udev,usb_rcvbulkpipe(d->udev,d->props.urb.endpoint)); /* allocate the array for the data transfer URBs */ d->urb_list = kmalloc(d->props.urb.count * sizeof(struct urb *),GFP_KERNEL); |