Hi, Kevin Gordon showed me a case of a USB microscope (UVC) not working on XO-1. It confuses the host controller and even knocks the wifi off the bus. On XO-1.5 and XO-1.75 it is fine. These microscopes are used in the field (e.g. http://ntugigroup.org/)
We're not alone with this class of problem; in other cases, hardware oddities (in the host controller) have been shown to be the cause. Anyway, a load of work landed in Linux 3.6 to address this, to make the EHCI driver more resilient to odd hardware. Backporting to 3.3 is very simple, and fixes the problem. The commits in question are: USB: EHCI: resolve some unlikely races USB: EHCI: fix up locking USB: EHCI: initialize data before resetting hardware USB: EHCI: simplify isochronous scanning USB: EHCI: use hrtimer for the I/O watchdog USB: EHCI: always scan each interrupt QH USB: ehci-sched.c: remove dbg() usage USB: EHCI: don't lose events during a scan USB: EHCI: use hrtimer for unlinking empty async QHs USB: EHCI: unlink multiple async QHs together USB: EHCI: use hrtimer for the IAA watchdog USB: EHCI: don't refcount iso_stream structures USB: EHCI: use hrtimer for (s)iTD deallocation USB: EHCI: use hrtimer for controller death USB: EHCI: use hrtimer for interrupt QH unlink USB: EHCI: use hrtimer for async schedule USB: EHCI: remove PS3 status polling USB: EHCI: return void instead of 0 USB: EHCI: use hrtimer for the periodic schedule USB: EHCI: introduce high-res timer USB: EHCI: add new root-hub state: STOPPING USB: EHCI: add pointer to end of async-unlink list USB: EHCI: rename "reclaim" USB: EHCI: add symbolic constants for QHs USB: EHCI: don't refcount QHs USB: EHCI: remove unneeded suspend/resume code USB: EHCI: initialize data before resetting hardware USB: fix PS3 EHCI systems USB: EHCI: fix command register configuration lost problem USB: EHCI: improve full-speed isochronous scheduling routine EHCI: maintain the ehci->command value properly EHCI: keep track of ports being resumed and indicate in hub_status_data EHCI: don't try to clear the IAAD bit 10 files changed, 1123 insertions(+), 967 deletions(-) I'm proposing backporting this to 3.3 for the 13.1.0 release (affecting XO-1 and XO-1.5). I feel comfortable about it; this all landed in 3.6-rc1 and hasn't needed followup in the form of later fixes, we generally get a good amount of external device testing (I'm sure Kevin will test a gazillion devices as well), and if it presents problems which don't have obvious fixes we can revert. Daniel _______________________________________________ Devel mailing list [email protected] http://lists.laptop.org/listinfo/devel
