c***@gmx.de
2013-04-11 11:25:01 UTC
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
PS:
sorry for the previous mail. i was sending it with web mail which i use very rarely
and the default setting for email was to send them as HTML :(
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
PS:
sorry for the previous mail. i was sending it with web mail which i use very rarely
and the default setting for email was to send them as HTML :(