Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'usb-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

Pull USB patch revert from Greg Kroah-Hartman:
"Here is one remaining USB patch for 3.9-rc1, it reverts a 3.8 patch
that has caused a lot of regressions for some VIA EHCI controllers."

* tag 'usb-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
USB: EHCI: revert "remove ASS/PSS polling timeout"

+14 -15
+14 -15
drivers/usb/host/ehci-timer.c
··· 113 113 114 114 if (want != actual) { 115 115 116 - /* Poll again later */ 117 - ehci_enable_event(ehci, EHCI_HRTIMER_POLL_ASS, true); 118 - ++ehci->ASS_poll_count; 119 - return; 116 + /* Poll again later, but give up after about 20 ms */ 117 + if (ehci->ASS_poll_count++ < 20) { 118 + ehci_enable_event(ehci, EHCI_HRTIMER_POLL_ASS, true); 119 + return; 120 + } 121 + ehci_dbg(ehci, "Waited too long for the async schedule status (%x/%x), giving up\n", 122 + want, actual); 120 123 } 121 - 122 - if (ehci->ASS_poll_count > 20) 123 - ehci_dbg(ehci, "ASS poll count reached %d\n", 124 - ehci->ASS_poll_count); 125 124 ehci->ASS_poll_count = 0; 126 125 127 126 /* The status is up-to-date; restart or stop the schedule as needed */ ··· 159 160 160 161 if (want != actual) { 161 162 162 - /* Poll again later */ 163 - ehci_enable_event(ehci, EHCI_HRTIMER_POLL_PSS, true); 164 - return; 163 + /* Poll again later, but give up after about 20 ms */ 164 + if (ehci->PSS_poll_count++ < 20) { 165 + ehci_enable_event(ehci, EHCI_HRTIMER_POLL_PSS, true); 166 + return; 167 + } 168 + ehci_dbg(ehci, "Waited too long for the periodic schedule status (%x/%x), giving up\n", 169 + want, actual); 165 170 } 166 - 167 - if (ehci->PSS_poll_count > 20) 168 - ehci_dbg(ehci, "PSS poll count reached %d\n", 169 - ehci->PSS_poll_count); 170 171 ehci->PSS_poll_count = 0; 171 172 172 173 /* The status is up-to-date; restart or stop the schedule as needed */