diff mbox series

PCI: Disable D3cold support on Intel XMM7360

Message ID 20210324111316.250576-1-kai.heng.feng@canonical.com (mailing list archive)
State Superseded
Delegated to: Bjorn Helgaas
Headers show
Series PCI: Disable D3cold support on Intel XMM7360 | expand

Commit Message

Kai-Heng Feng March 24, 2021, 11:13 a.m. UTC
On some platforms, the root port for Intel XMM7360 WWAN supports D3cold.
When the root port is put to D3cold by system suspend or runtime
suspend, attempt to systems resume or runtime resume will freeze the
laptop for a while, then it automatically shuts down.

The root cause is unclear for now, as the Intel XMM7360 doesn't have a
driver yet.

So disable D3cold for XMM7360 as a workaround, until proper device
driver is in place.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=212419
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
 drivers/pci/quirks.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Krzysztof WilczyƄski March 26, 2021, 9:25 a.m. UTC | #1
Hi,

Thank you for sending the patch over!

[...]
> +static void pci_fixup_no_d3cold(struct pci_dev *pdev)
> +{
> +	pci_info(pdev, "disable D3cold\n");

Not sure how useful this message would generally be?  Unless this is
useful to someone who is doing some troubleshooting, etc.

> +	pci_d3cold_disable(pdev);
> +}
> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x7360, pci_fixup_no_d3cold);
[...]

A small suggestion: a brief comment, perhaps even linking to the
Bugzilla, might be a nice touch here, so that people would know why
D3cold is being disabled for XMM7360, etc.

Krzysztof
diff mbox series

Patch

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 653660e3ba9e..8ca8153e4a19 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -5612,3 +5612,10 @@  static void apex_pci_fixup_class(struct pci_dev *pdev)
 }
 DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
 			       PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
+
+static void pci_fixup_no_d3cold(struct pci_dev *pdev)
+{
+	pci_info(pdev, "disable D3cold\n");
+	pci_d3cold_disable(pdev);
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x7360, pci_fixup_no_d3cold);