[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: USB Isochronous Problem



Michael T. Francis wrote:
> Orjan,
> 
> 
> 
> Thanks for your response.  Your suggestion didn't quite solve the problem
> I'm having.

[...]

> usb-host.c: Urbs are linked, ignoring.
> usb-host.c: Urbs are linked, ignoring.
> usb-host.c: Out of synch? Previous frame = 0, current frame = 425
> Out of memory.

Does the "Out of memory" message always show up this early?  (BTW, the 
first "Out of synch?" message is completely harmless.)

> usb-host.c: error in rx desc->status, epid 2, first urb = 0xc0fe09a0

Please apply the attached patch, rebuild the kernel, and send the debug 
log again.  I would like to have a closer look at the error condition 
reported by the DMA in descriptor.

-- 
Orjan Friberg
Axis Communications

Index: usb-host.c
===================================================================
RCS file: /usr/local/cvs/cvsroot/os/linux/arch/cris/drivers/usb-host.c,v
retrieving revision 1.15.2.5
diff -u -r1.15.2.5 usb-host.c
--- usb-host.c	2 May 2003 17:29:53 -0000	1.15.2.5
+++ usb-host.c	1 Jul 2003 08:20:49 -0000
@@ -1543,9 +1543,17 @@
                    ctrl pipes are not. */
                 
 		if (myNextRxDesc->status & IO_MASK(USB_IN_status, error)) {
+			__u32 r_usb_ept_data;
+
 			warn("error in rx desc->status, epid %d, first urb = 0x%lx", 
                              epid, (unsigned long)urb);
 			__dump_in_desc(myNextRxDesc);
+
+                        *R_USB_EPT_INDEX = IO_FIELD(R_USB_EPT_INDEX, value, epid); 
+                        nop();
+                        r_usb_ept_data = *R_USB_EPT_DATA;
+			warn("R_USB_EPT_DATA for epid %d = 0x%x", epid, r_usb_ept_data);
+
                         etrax_usb_complete_urb(urb, -EPROTO);
 			goto skip_out;
 		}