Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df711fc9 authored by Andiry Xu's avatar Andiry Xu Committed by Sarah Sharp
Browse files

xHCI: reset-on-resume quirk for NEC uPD720200



Julian Sikorski reports NEC uPD720200 does not work stable after suspend
and resume. Re-initialize the host in xhci_resume().

This should be backported to stable kernels as old as 2.6.37.  The
kernel will need to include
commit c877b3b2
"xhci: Add reset on resume quirk for asrock p67 host"
for this patch to work.

Signed-off-by: default avatarAndiry Xu <andiry.xu@amd.com>
Reported-by: default avatarJulian Sikorski <belegdol@gmail.com>
Tested-by: default avatarJulian Sikorski <belegdol@gmail.com>
Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
parent 8746c83d
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -33,6 +33,8 @@
#define PCI_VENDOR_ID_ETRON		0x1b6f
#define PCI_VENDOR_ID_ETRON		0x1b6f
#define PCI_DEVICE_ID_ASROCK_P67	0x7023
#define PCI_DEVICE_ID_ASROCK_P67	0x7023


#define PCI_DEVICE_ID_NEC_uPD720200	0x0194

static const char hcd_name[] = "xhci_hcd";
static const char hcd_name[] = "xhci_hcd";


/* called after powerup, by probe or system-pm "wakeup" */
/* called after powerup, by probe or system-pm "wakeup" */
@@ -74,8 +76,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
				pdev->revision);
				pdev->revision);
	}
	}


	if (pdev->vendor == PCI_VENDOR_ID_NEC)
	if (pdev->vendor == PCI_VENDOR_ID_NEC) {
		xhci->quirks |= XHCI_NEC_HOST;
		xhci->quirks |= XHCI_NEC_HOST;
		if (pdev->device == PCI_DEVICE_ID_NEC_uPD720200)
			xhci->quirks |= XHCI_RESET_ON_RESUME;
	}


	if (pdev->vendor == PCI_VENDOR_ID_AMD && xhci->hci_version == 0x96)
	if (pdev->vendor == PCI_VENDOR_ID_AMD && xhci->hci_version == 0x96)
		xhci->quirks |= XHCI_AMD_0x96_HOST;
		xhci->quirks |= XHCI_AMD_0x96_HOST;