On Fri, Apr 23, 2010 at 06:36:04PM +0800, Andiry Xu wrote: > On Thu, 2010-04-22 at 12:43 -0700, Sarah Sharp wrote: > > On Tue, Apr 20, 2010 at 05:54:41PM +0800, Libin Yang wrote: > > > This is the version 4 for ISOC patches. > > > > > > The difference from v3 is to add a transfer ring check in > > > xhci_queue_isoc_tx_prepare() before inserting any tds of the urb to the ring. > > > > I tested this on my FS webcam that was causing a scheduling while atomic > > oops on the last version of the patch. With the current 3 isochronous > > patches (but without your patch to allocate bigger ring for isochronous > > endpoints), the driver runs out of room on the endpoint ring (expected) > > and does not oops the system. I see the isochronous transfers > > successfully canceled, so you've fixed that bug. :) > > > > With your patch to enlarge the isoc transfer ring, I successfully get > > video out of the FS webcam! > > > > Unfortunately, I tried it with my HS webcam, and that does not work. > > The log file gets garbled with the amount of messages coming from the > > driver, but I see a lot of "ERROR Transfer event TRB DMA ptr not part of > > current TD" messages. It seems like the driver and the host controller > > got out of sync somewhere, and the host was giving back transfers for > > isoc TDs, and the driver was skipping over them. But the log file where > > the transfers were enqueued was garbled, so I can't see exactly what's > > happening. > > > > I tried applying a patch to turn off a lot of the debugging, and then > > the webcam worked, so I'm not sure if it's an intermittent failure. I > > need to test more. In the mean time, the log file I have from the high > > speed webcam failure is at > > > > http://minilop.net/~sarah/isoc-hs-webcam-v4-patches.tar.gz > > > > Maybe you can see the problem quicker than I? > > > > Hmm... I'm curious about this. Can you reproduce this issue every time > with debug message on? > > Can you add some debug message to print out the following information > when the error happens? > The address of ep_ring->dequeue, td->last_trb, event and event_dma, and > call xhci_debug_ring(xhci, xhci->event_ring) and xhci_debug_ring(xhci, > ep_ring). After I sent the email, I tried several times to reproduce this and could not. I'll add the debugging and see if I can catch it again. Sarah Sharp -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html