• Sarah Sharp's avatar
    xhci: Switch PPT ports to EHCI on shutdown. · e95829f4
    Sarah Sharp authored
    The Intel desktop boards DH77EB and DH77DF have a hardware issue that
    can be worked around by BIOS.  If the USB ports are switched to xHCI on
    shutdown, the xHCI host will send a spurious interrupt, which will wake
    the system.  Some BIOS will work around this, but not all.
    
    The bug can be avoided if the USB ports are switched back to EHCI on
    shutdown.  The Intel Windows driver switches the ports back to EHCI, so
    change the Linux xHCI driver to do the same.
    
    Unfortunately, we can't tell the two effected boards apart from other
    working motherboards, because the vendors will change the DMI strings
    for the DH77EB and DH77DF boards to their own custom names.  One example
    is Compulab's mini-desktop, the Intense-PC.  Instead, key off the
    Panther Point xHCI host PCI vendor and device ID, and switch the ports
    over for all PPT xHCI hosts.
    
    The only impact this will have on non-effected boards is to add a couple
    hundred milliseconds delay on boot when the BIOS has to switch the ports
    over from EHCI to xHCI.
    
    This patch should be backported to kernels as old as 3.0, that contain
    the commit 69e848c2 "Intel xhci: Support
    EHCI/xHCI port switching."
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Reported-by: default avatarDenis Turischev <denis@compulab.co.il>
    Tested-by: default avatarDenis Turischev <denis@compulab.co.il>
    Cc: stable@vger.kernel.org
    e95829f4
xhci.c 137 KB