[blfs-support] Usb error on boot/ or insert

Bruce Dubbs bruce.dubbs at gmail.com
Wed Mar 13 12:22:36 PDT 2013


spiky wrote:
> On 13/03/13 17:34, Matt Burgess wrote:
>> On Wed, 2013-03-13 at 17:08 +0000, spiky wrote:
>>
>> 3.8.3 isn't out quite yet.  You can try the individual patch on top of
>> 3.8.2 though.  It's available at
>> http://lkml.indiana.edu/hypermail/linux/kernel/1303.1/02649.html.

> I get an error with the patch
>
> patching file drivers/usb/host/ehci-timer.c
> patch: **** malformed patch at line 9: if (want != actual) {
>
> I copied the patch into linux dir run patch -p1 < patch-name

Edit the patch so it is as below.  The indentation may not be the same.
I don't use tab characters.

   -- Bruce

--- drivers/usb/host/ehci-timer.c.save  2013-03-03 16:04:08.000000000 -0600
+++ drivers/usb/host/ehci-timer.c       2013-03-13 14:14:44.000000000 -0500
@@ -112,16 +112,14 @@
         actual = ehci_readl(ehci, &ehci->regs->status) & STS_ASS;

         if (want != actual) {
-
-               /* Poll again later */
-               ehci_enable_event(ehci, EHCI_HRTIMER_POLL_ASS, true);
-               ++ehci->ASS_poll_count;
-               return;
+      /* Poll again later, but give up after about 20 ms */
+      if (ehci->ASS_poll_count++ < 20) {
+      ehci_enable_event(ehci, EHCI_HRTIMER_POLL_ASS, true);
+      return;
+      }
+      ehci_dbg(ehci, "Waited too long for the async schedule status 
(%x/%x), giving up\n",
+               want, actual);
         }
-
-       if (ehci->ASS_poll_count > 20)
-               ehci_dbg(ehci, "ASS poll count reached %d\n",
-                               ehci->ASS_poll_count);
         ehci->ASS_poll_count = 0;

         /* The status is up-to-date; restart or stop the schedule as 
needed */
@@ -160,14 +158,14 @@

         if (want != actual) {

-               /* Poll again later */
-               ehci_enable_event(ehci, EHCI_HRTIMER_POLL_PSS, true);
-               return;
+      /* Poll again later, but give up after about 20 ms */
+      if (ehci->PSS_poll_count++ < 20) {
+      ehci_enable_event(ehci, EHCI_HRTIMER_POLL_PSS, true);
+      return;
+      }
+      ehci_dbg(ehci, "Waited too long for the periodic schedule status 
(%x/%x), giving up\n",
+      want, actual);
         }
-
-       if (ehci->PSS_poll_count > 20)
-               ehci_dbg(ehci, "PSS poll count reached %d\n",
-                               ehci->PSS_poll_count);
         ehci->PSS_poll_count = 0;

         /* The status is up-to-date; restart or stop the schedule as 
needed */



More information about the blfs-support mailing list