Re: USB 3.0 in Linux main stream kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 28 Jan 2009, Sarah Sharp wrote:

> > > A new implementation will certainly have its own issues.  In
> > > particular, I'm thinking of the requirement that every buffer in a
> > > transfer (except the last) must be a multiple of the maxpacket length.
> 
> This is a host controller hardware limitation, correct?

Yes.

>  Is it part of
> the host controller specs, or is it specific to different
> implementations of the hardware?

It is part of the specs for UHCI, OHCI, and EHCI.  I'm not familiar
with the specs for any other host controllers (especially xHCI!).

Since the bulk maxpackets lengths are <= 512 for all three of those 
controller types, this restriction isn't too bad.  For the most part, 
scatterlists come from the block layer, which works in terms of 
512-byte sectors.

However with wireless USB it has already caused problems.  There are 
devices with bulk maxpacket sizes of 1024, and people have observed 
buffers of length 512.  The host controller couldn't handle it right.

> If hardware didn't have the limitation that all buffers had to be a
> multiple of the max packet length, there would be no changes necessary,
> right?  The scatter gather would just be pushed down to the HCD and each
> entry would be treated like a DMA buffer.

Pushing scatterlists down to the HCD level would involve several
nontrivial changes to the code.  The issue of the buffer lengths is
just one of them, although it is perhaps the most vexing.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux