> 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?
i wonder if it would make more sense to align the buffer. (the unaligned case for iso->data looks wierd, too.) - erik