Hi Guys, There's currently an issue with isoc transfers made by em28xx driver[1] and ehcd_hci. If I try to start isoc transfers on more than one hardware, the second hardware fails at usb_submit_urb() with -ENOSPC.
The current code that initializes isoc transfers looks like this (I've removed error handling and replaced some constants to make it cleaner to read): max_pkt_size = 3072; size = 40 * max_pkt_size; for (i = 0; i < 5; i++) { urb = usb_alloc_urb(40, GFP_KERNEL); dev->transfer_buffer[i] = usb_buffer_alloc(usb_dev, size, GFP_KERNEL, &urb->transfer_dma); memset(dev->transfer_buffer[i], 0, size); urb->dev = usb_udev; urb->context = v4l_dev; urb->pipe = usb_rcvisocpipe(usb_dev, 0x82); urb->transfer_flags = URB_ISO_ASAP; urb->interval = 1; urb->transfer_buffer = dev->transfer_buffer[i]; urb->complete = em28xx_isocIrq; urb->number_of_packets = 40; urb->transfer_buffer_length = size; for (j = 0; j < 40; j++) urb->iso_frame_desc[j].offset = j * max_pkt_size; dev->urb[i] = urb; } for (i = 0; i < 5; i++) usb_submit_urb(dev->urb[i], GFP_KERNEL); Any ideas on how this could work? [1] The complete code is at: http://linuxtv.org/hg/v4l-dvb/file/3be355e3e327/linux/drivers/media/video/em28xx/em28xx-core.c Cheers, Mauro - To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html