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

Reply via email to