9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] Tdmaxpkt in usbehci (no html)
@ 2013-04-11 11:25 cinap_lenrek
  2013-04-11 13:05 ` erik quanstrom
  0 siblings, 1 reply; 3+ messages in thread
From: cinap_lenrek @ 2013-04-11 11:25 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

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 :(



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [9fans] Tdmaxpkt in usbehci (no html)
  2013-04-11 11:25 [9fans] Tdmaxpkt in usbehci (no html) cinap_lenrek
@ 2013-04-11 13:05 ` erik quanstrom
  2013-04-11 13:09   ` kernel panic
  0 siblings, 1 reply; 3+ messages in thread
From: erik quanstrom @ 2013-04-11 13:05 UTC (permalink / raw)
  To: 9fans

> 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



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [9fans] Tdmaxpkt in usbehci (no html)
  2013-04-11 13:05 ` erik quanstrom
@ 2013-04-11 13:09   ` kernel panic
  0 siblings, 0 replies; 3+ messages in thread
From: kernel panic @ 2013-04-11 13:09 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

yes, that would work too.

--
cinap

> Gesendet: Donnerstag, 11. April 2013 um 15:05 Uhr
> Von: "erik quanstrom" <quanstro@quanstro.net>
> An: 9fans@9fans.net
> Betreff: Re: [9fans] Tdmaxpkt in usbehci (no html)
>
> > 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
>
>



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-04-11 13:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-11 11:25 [9fans] Tdmaxpkt in usbehci (no html) cinap_lenrek
2013-04-11 13:05 ` erik quanstrom
2013-04-11 13:09   ` kernel panic

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).