]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/usb/host/xhci-pci.c
Merge 4.3-rc7 into usb-next
[karo-tx-linux.git] / drivers / usb / host / xhci-pci.c
index c79d33676672daca6047ebead9d8afb70a49007d..17f6897acde2a5a7674ccff44ddc55f0db192166 100644 (file)
@@ -147,6 +147,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
        if (pdev->vendor == PCI_VENDOR_ID_INTEL &&
                pdev->device == PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI) {
                xhci->quirks |= XHCI_SPURIOUS_REBOOT;
+               xhci->quirks |= XHCI_SPURIOUS_WAKEUP;
        }
        if (pdev->vendor == PCI_VENDOR_ID_INTEL &&
                (pdev->device == PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_XHCI ||
@@ -200,15 +201,17 @@ static int xhci_pci_setup(struct usb_hcd *hcd)
        struct pci_dev          *pdev = to_pci_dev(hcd->self.controller);
        int                     retval;
 
+       xhci = hcd_to_xhci(hcd);
+       if (!xhci->sbrn)
+               pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn);
+
        retval = xhci_gen_setup(hcd, xhci_pci_quirks);
        if (retval)
                return retval;
 
-       xhci = hcd_to_xhci(hcd);
        if (!usb_hcd_is_primary_hcd(hcd))
                return 0;
 
-       pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn);
        xhci_dbg(xhci, "Got SBRN %u\n", (unsigned int) xhci->sbrn);
 
        /* Find any debug ports */