>Benjamin Herrenschmidt wrote:
>The one packet is a limitation of v0.8. But you can change it to
>a larger number e.g. 4 or 8 (max 19) by replacing the 1s in
>hc_add_trans()/hc_isp116x.c
>
>-  if (len > maxps *1)
>-    len = maxps * 1;
>+  if (len > maxps * 8)
>+    len = maxps * 8;
>
>A larger number means more packets to the same Endpoint 
>per frame. But if the device
>don't accept so many packets it NAKs and this means wasted 
>(expensive) data I/O to the isp1161.
>More than 19 packets makes no sense because the USB can
>only transfer up to 19 64-Bytes long packets within one frame.
>And if the packets (endpoint maxpacketsize)
>are shorter then 64 then the endpoint 
>most likely does not expect that much bandwidth, anyway. 
>But I have to think about a 
>good heuristic for the number of packets.

Ah ok, I didn't know a single PTD could cover more datas and
was currently hacking a way to put several PTDs for such type
of transfers. I'll go back to your solution,

One more "definitive" solution would be to configure that by
passing the packet type down to hc_add_trans so it can do statistics
(per-packet type data counters) and decide wether to accept or not
a packet depending on the buffer's occupation.

Also, I beleive the ratio ATL/ITL should be somewhat configurable,
probably as a module option.

I'll post a patch if I get something working better. If you have
a more recent source or want me to do experiments with ISO (I have
a CATC this week), don't hesitate to ask.

>The wasted frames between the transfers seems to be a feature of the 
>isp1161. 

Looks like this chip has many interesting "features" ;)

One thing I'll look into rsn is DMA. 

Ben.


_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to