On Wed, 14 Jul 2004, John Que wrote:
> By "After 31 interations," , I mean
> There is a loop in the pwc_isoc_handler() ; which is the completion callbak.
>
> for (i = 0; i < urb->number_of_packets; i++)
> {
> fst = urb->iso_frame_desc[i].status;
> flen = urb->iso_frame_desc[i].actual_length;
>
> We reach iterate in this loop 31 times ; (In fact , urb->number_of_packets
> is 10 as I said;
> so it happens after 3 times we enter the completion callbak.
>
> It seesm to me that the host controller is responsible for the -75 status
> (-EOVERFLOW).
> I use usb-ohci (no patches) .
> When looking at the code of usb-ohci I see:
>
> urb->iso_frame_desc [td->index].actual_length = dlen;
> urb->iso_frame_desc [td->index].status = cc_to_error [cc];
>
> And by adding printk() I saw that cc_to_error [cc] gets a value of
> EOVERFLOW.
That makes sense.
> I do not have any idea why it happens or if the host controller or the
> driver is the cause for it.
>
> According to the error_codes.txt in Linux documentation :
>
> -EOVERFLOW (*) The amount of data returned by the endpoint was
> greater than either the max packet size of the
> endpoint or the remaining buffer size. "Babble".
>
>
> Could it be that the endpoint returned a packert larger than max packet of
> that endpoint?
It's pretty unlikely but not impossible. More likely is that the packet
is larger than urb->iso_frame_desc[td->index].length. That would also
cause EOVERFLOW. Do you know what the value of .length was, and what the
packet size was supposed to be?
Alan Stern
-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel