mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
xhci: Avoid dead ports when CONFIG_USB_XHCI_HCD=n
Commit51c9e6c773upstream, but modified to get this to apply on 3.0. If the user chooses to say "no" to CONFIG_USB_XHCI_HCD on a system with an Intel Panther Point chipset, the PCI quirks code or the EHCI driver will switch the ports over to the xHCI host, but the xHCI driver will never load. The ports will be powered off and seem "dead" to the user. Fix this by only switching the ports over if CONFIG_USB_XHCI_HCD is either compiled in, or compiled as a module. This patch should be backported to the 3.0 stable kernel, since it contains the commit69e848c209"Intel xhci: Support EHCI/xHCI port switching." Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Reported-by: Eric Anholt <eric.anholt@intel.com> Reported-by: David Bein <d.bein@f5.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
8cac2a0c0f
commit
671e3aaf0c
@@ -755,6 +755,7 @@ EXPORT_SYMBOL_GPL(usb_is_intel_switchable_xhci);
|
||||
*/
|
||||
void usb_enable_xhci_ports(struct pci_dev *xhci_pdev)
|
||||
{
|
||||
#if defined(CONFIG_USB_XHCI_HCD) || defined(CONFIG_USB_XHCI_HCD_MODULE)
|
||||
u32 ports_available;
|
||||
|
||||
ports_available = 0xffffffff;
|
||||
@@ -782,6 +783,18 @@ void usb_enable_xhci_ports(struct pci_dev *xhci_pdev)
|
||||
&ports_available);
|
||||
dev_dbg(&xhci_pdev->dev, "USB 2.0 ports that are now switched over "
|
||||
"to xHCI: 0x%x\n", ports_available);
|
||||
#else
|
||||
/* Don't switchover the ports if the user hasn't compiled the xHCI
|
||||
* driver. Otherwise they will see "dead" USB ports that don't power
|
||||
* the devices.
|
||||
*/
|
||||
dev_warn(&xhci_pdev->dev,
|
||||
"CONFIG_USB_XHCI_HCD is turned off, "
|
||||
"defaulting to EHCI.\n");
|
||||
dev_warn(&xhci_pdev->dev,
|
||||
"USB 3.0 devices will work at USB 2.0 speeds.\n");
|
||||
#endif /* CONFIG_USB_XHCI_HCD || CONFIG_USB_XHCI_HCD_MODULE */
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(usb_enable_xhci_ports);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user