On Wed, 21 Jan 2004, David Brownell wrote: > Date: Wed, 21 Jan 2004 11:45:22 -0800 > From: David Brownell <[EMAIL PROTECTED]> > To: John Heil <[EMAIL PROTECTED]> > Cc: [EMAIL PROTECTED], [EMAIL PROTECTED], > linux-usb-devel <[EMAIL PROTECTED]> > Subject: Re: [linux-usb-devel] Re: Test of ehci iso patch > > > > I meant: 2048 bytes per transaction and 8 transaction per > > URB/iTD and each read iTD is laterally chained to a write iTD and > > the pair is anchored by a single periodic frame list slot so that > > the controller re-reads the pair 8 times per slot. > > > > There is a 1 to 1 mapping of urbs to iTDs. > > > > Each iTD uses all 8 of its transactions so each uframe gets > > So each URB is 16K, not 2K -- a much more reasonable policy. > And the IRQ rate in each direction has a floor that's barely > higher than what I used for 24+ hour streaming tests. > > > > 2048 bytes inbound and 2048 outbound for 4096 bytes on the bus > > per uframe, overall 4096 bytes * 8 uframes = 32K bytes on the bus, > > in my testing mode. > > And two itds per schedule slot, which should be completing from > the same IRQ. That seems like the main difference between your > tests and mine, other than the hardware. > > When you try to make each ISO endpoint use 3KB, I think you'll find > you need to sort out some bandwidth allocation issues in Linux. >
That's next up as of today, so we'll see... > > > (Right now I'm on Cypress FX2 boards). > > And presumably using the 2KB per endpoint configs, to sustain > that streaming rate. > Yes. > > > I do set the transactions URB_NO_INTERRUPT for 7 of the 8 transactions > > per iTD. I will try setting it to 15 of the 16 (8 read + 8 write), thus > > placing the interrupt on the last of the write transactions (which always > > must follow the read). > > Hmm? This doesn't match what you said earlier. That's not an > option that can be set on individual transactions ... it applies > to the last transaction in the URB. > > - Dave > I forgot how I set all of that up... I was thinking of the IOC bit available in each of the iTD's 8 transaction definitions rather than URB_NO_INTERRUPT. I looked back at my driver code and it does set each URB to URB_NO_INTERRUPT, however, in itd_fill I set the EHCI_ITD_IOC bit on the last transation of each iTD, thus overriding URB_NO_INTERRUPT and presumably log2_irq_thresh=6 also, something I'll be cleaning up as I progress. johnh - ----------------------------------------------------------------- John Heil South Coast Software Custom systems software for UNIX and IBM MVS mainframes 1-714-774-6952 [EMAIL PROTECTED] http://www.sc-software.com ----------------------------------------------------------------- ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
