in the ehci driver, it uses:
 
Tdmaxpkt = 0x5000, /* max buffer for a Td */
 
a td has 5*4K pages giving the 20K above, but i think this only applies if the
first pointer is page aligned (page offset = 0) so all the pages can be filled
completely.
 
The EHCI spec says this:
"The buffer pointer list in the qTD is long enough to support a maximum transfer size of 20K bytes. This case
occurs when all five buffer pointers are used and the first offset is zero. A qTD handles a 16Kbyte buffer
with any starting buffer alignment."
 
The buffer pointer isnt page aligned as far as i can see, so make Tdmaxpkt = 0x4000 instead?
 
--
cinap
 
 

Reply via email to