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.
(Right now I'm on Cypress FX2 boards).
And presumably using the 2KB per endpoint configs, to sustain that streaming rate.
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
------------------------------------------------------- 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
