On Fri, 8 Feb 2008 10:48:54 -0500 (EST)
Alan Stern <[EMAIL PROTECTED]> wrote:

> On Fri, 8 Feb 2008, Mauro Carvalho Chehab wrote:
> 
> > 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.
> 
> ENOSPC means that you are attempting to use more bandwidth than the bus
> allows.  A high-speed isochronous transfer of length 3072 requires 41%
> of the total bandwidth (according to Table 5-5 in the USB 2.0 spec),
> and periodic transfers (isochronous and interrupt) on a high-speed bus
> are limited to no more than 80% of the total bandwidth.
> 
> Performing transfers to two devices would require 82% of the bandwidth;
> hence it isn't allowed.

Thanks! I'll try to decrease the transfer length, using an alternative setting.

> >                 urb->transfer_flags = URB_ISO_ASAP;
> 
> Since you have set urb->transfer_dma, you also need to set 
> URB_NO_TRANSFER_DMA_MAP in urb->flags.

Added, thanks.
> 
> >                 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;
> 
> Where do you set urb->iso_frame_desc[i].length?

I've accidentally removed the code when cleaning the e-mail. The real code is
doing:
        urb->iso_frame_desc[j].offset =  max_pkt_size;

> You may need to put your two devices on separate USB buses.

Thanks. The tests I'm doing are on a notebook. Unfortunately, all 4 usb ports
shares the same USB host. I'll repeat the tests on a device with separate usb
hosts.

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

Reply via email to