For some reason that patch didn't work, but I manually made your changes to the code and it seems to be working fine. Here's the dmesg output after the 12 camera test -Thanks! Jason ----- Original Message ----- From: "Alan Stern" <stern@xxxxxxxxxxxxxxxxxxx> To: "Jason N Pitt" <jpitt@xxxxxxxxx> Cc: "USB list" <linux-usb@xxxxxxxxxxxxxxx> Sent: Tuesday, September 27, 2011 9:06:09 AM Subject: Re: uvcvideo: Failed to resubmit video URB (-27) On Mon, 26 Sep 2011, Pitt, Jason N wrote: > I built/booted the 3.1rc7 kernel (I had to use the one off of > github.com since kernel.org is down, I hope that doesn't make a > difference). I repeated the test and had the same result....I've > attached the dmesg, sys/kernel/debug/usb/usbmon/0u, and lsusb. Yep, I see the same problem. > -I've never patched the kernel before so any guidance would be appreciated! It's easy enough. Extract this email message to a plain text file. Then go into the top-level directory of your 3.1-rc7 kernel source and run patch -p1 <email-file-name That will apply the patch. Then all you have to do is recompile and install the kernel, which should be fairly quick since only one source file will have changed since your previous build. For this test I won't need the lsusb or usbmon output; the dmesg log will be enough. And I only need to see the log from the start of the test. You can erase the beginning part by running dmesg -c >/dev/null before the test begins. Alan Stern Index: usb-3.1/drivers/usb/host/ehci-sched.c =================================================================== --- usb-3.1.orig/drivers/usb/host/ehci-sched.c +++ usb-3.1/drivers/usb/host/ehci-sched.c @@ -2293,6 +2293,7 @@ scan_periodic (struct ehci_hcd *ehci) union ehci_shadow q, *q_p; __hc32 type, *hw_p; unsigned incomplete = false; +int oclock = -1; frame = now_uframe >> 3; @@ -2373,6 +2374,15 @@ restart: *hw_p = ehci->dummy->qh_dma; type = Q_NEXT_TYPE(ehci, q.itd->hw_next); wmb(); + +if (q.itd->hw_transaction[7] & ITD_ACTIVE(ehci)) { + ehci_info(ehci, "Bad iTD frame %u uf %u index0,7 %u %u startf %d\n", + frame, uf, q.itd->index[0], q.itd->index[7], + q.itd->urb->start_frame); + ehci_info(ehci, " clockf %u clockuf %u nowuf %u oclock %d", + clock_frame, clock, now_uframe, oclock); +} + modified = itd_complete (ehci, q.itd); q = *q_p; break; @@ -2460,6 +2470,7 @@ restart: break; /* rescan the rest of this frame, then ... */ +oclock = clock; clock = now; clock_frame = clock >> 3; if (ehci->clock_frame != clock_frame) { -- /* Jason Pitt PhD 206.667.5603 Roth Lab jpitt@xxxxxxxxx Basic Sciences Division Fred Hutchinson Cancer Research Center 1100 Fairview Ave N A3-135 Seattle, WA 98109 */
Attachment:
patched
Description: Binary data