Bug 46311

Summary: Any USB camera device doesn't work if it is connected to intel HM70 chipset xhci port2,3.
Product: Drivers Reporter: mikemai (mikemai)
Component: USBAssignee: Sarah Sharp (sarah)
Status: RESOLVED CODE_FIX    
Severity: high CC: alan
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: kernel 3.4.4 Subsystem:
Regression: No Bisected commit-id:

Description mikemai 2012-08-22 14:15:27 UTC
Model: Lenovo Ideapad Z500

Hardware: Intel HM70 chipset

OS version: Linpus Lite 1.6 , Fedora 17, Ubuntu 12.1

Reproduce step: Enter OS, any USB camera device doesn't work, can't see any camera

Comment: 

Any USB (camera) device doesn't work in intel HM70 chipset USB xhci port2, 3.  
This is because in HM70 chipset, xhci port2 and port3 should be set to USB 2.0.
But Linux kernel's usb driver do not know it. 
After initialize the USB controller, those two port will be set to USB 3.0 .
(In drivers/usb/host/pci-quirk.c , XUSB2PR and USB_PSSEN register are be initialized to 0xffffffff)
This will cause USB xhci port2, 3 doesn't work normally in HM70.
Comment 1 Sarah Sharp 2012-09-14 20:10:48 UTC
Hi Mike,

The fix for this is now in Greg KH's USB tree, and should be on its way to Linus' kernel shortly.  The commit ID is a96874a2a92feaef607ddd3137277a788cb927a6 "Intel xhci: Only switch the switchable ports".  Can you test with Greg's usb-linus branch and make sure that this fixes your issue?

git clone git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git -b usb-linus

I'm setting this issue as resolved, so let me know if the patch doesn't work for you.

Sarah Sharp