x86/PCI: Avoid AMD SB7xx EHCI USB wakeup defect
authorKai-Heng Feng <kai.heng.feng@canonical.com>
Fri, 16 Jun 2017 09:40:54 +0000 (17:40 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 30 Jun 2017 16:15:08 +0000 (11:15 -0500)
commit0bf3730bbc41f155543fa63becb4ff436d6a00a9
treeaf6b694bf06b9d73d45955ba34e19c1c70819032
parente60514bd4485c0c7c5a7cf779b200ce0b95c70d6
x86/PCI: Avoid AMD SB7xx EHCI USB wakeup defect

On an AMD Carrizo laptop, when EHCI runtime PM is enabled, EHCI ports do
not assert PME# for device plug/unplug events while in D3.

As Alan Stern points out [1], the PME signal is not enabled when controller
is in D3, therefore it's not being woken up when new devices get plugged
in.

Testing shows PME signal works when the EHCI power state is D2.

Clear the PCI_PM_CAP_PME_D3 and PCI_PM_CAP_PME_D3cold bits in
dev->pme_support to indicate the device will not assert PME# from those
states.

[1] http://lkml.kernel.org/r/Pine.LNX.4.44L0.1706121010010.2092-100000@iolanthe.rowland.org
Link: https://bugzilla.kernel.org/show_bug.cgi?id=196091
Link: https://support.amd.com/TechDocs/46837.pdf
Link: https://support.amd.com/TechDocs/42413.pdf
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
[bhelgaas: changelog, add parens in quirk]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
arch/x86/pci/fixup.c