On 07/23/2012 08:44 PM, Sarah Sharp wrote: > Did you try disabling the wake on bits in the port status registers? I > would prefer that solution if it works. No, I didn't. Why we need to disable wake on capabilities? > > Otherwise this patchset looks fine. I'll work with the hardware folks > and see if this is exposed on other boards. Also, this is not a BIOS > bug, but a hardware issue that can be worked around in BIOS. So I might > edit your description on the first patch a bit when I submit it to Greg. Of course, please edit it if required. > > Sarah Sharp > > On Mon, Jul 23, 2012 at 02:46:32PM +0300, Denis Turischev wrote: >> Intense-PC is Compulab's mini-desktop with Intel Panther Point >> chipset. >> >> Unconditional switchover to xHCI provided by function >> usb_enable_xhci_ports() leads to surprising results, after shutdown >> system powered-on again after a few seconds. On Windows power >> related problems were not observed. Switching back to EHCI solves >> the problem. >> >> The patch switches usb ports back to EHCI during xhci shutdown >> for Intense-PC. >> >> Signed-off-by: Denis Turischev <denis@xxxxxxxxxxxxxx> >> --- >> drivers/usb/host/xhci.c | 14 ++++++++++++++ >> 1 file changed, 14 insertions(+) >> >> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c >> index a979cd0..541efaa 100644 >> --- a/drivers/usb/host/xhci.c >> +++ b/drivers/usb/host/xhci.c >> @@ -26,6 +26,8 @@ >> #include <linux/module.h> >> #include <linux/moduleparam.h> >> #include <linux/slab.h> >> +#include <linux/dmi.h> >> +#include "pci-quirks.h" >> >> #include "xhci.h" >> >> @@ -656,8 +658,20 @@ void xhci_stop(struct usb_hcd *hcd) >> */ >> void xhci_shutdown(struct usb_hcd *hcd) >> { >> + struct pci_dev *pdev; >> + const char *brd_name; >> struct xhci_hcd *xhci = hcd_to_xhci(hcd); >> >> + pdev = to_pci_dev(hcd->self.controller); >> + >> + if (usb_is_intel_switchable_xhci(pdev)) { >> + brd_name = dmi_get_system_info(DMI_BOARD_NAME); >> + >> + /* quirk for Compulab's Intense-PC board */ >> + if (brd_name && strstr(brd_name, "Intense-PC")) >> + usb_disable_xhci_ports(pdev); >> + } >> + >> spin_lock_irq(&xhci->lock); >> xhci_halt(xhci); >> spin_unlock_irq(&xhci->lock); >> -- >> 1.7.9.5 >> -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html