2024-05-30 08:53:26

by Kai-Heng Feng

[permalink] [raw]
Subject: [PATCH 2/2] PCI: vmd: Let OS control ASPM for devices under VMD domain

Intel SoC cannot reach lower power states when mapped VMD PCIe bridges
and NVMe devices don't have ASPM configured.

So set aspm_os_control attribute to let OS really enable ASPM for those
devices.

Fixes: f492edb40b54 ("PCI: vmd: Add quirk to configure PCIe ASPM and LTR")
Link: https://lore.kernel.org/linux-pm/[email protected]/
Signed-off-by: Kai-Heng Feng <[email protected]>
---
drivers/pci/controller/vmd.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
index 87b7856f375a..1dbc525c473f 100644
--- a/drivers/pci/controller/vmd.c
+++ b/drivers/pci/controller/vmd.c
@@ -751,6 +751,8 @@ static int vmd_pm_enable_quirk(struct pci_dev *pdev, void *userdata)
if (!(features & VMD_FEAT_BIOS_PM_QUIRK))
return 0;

+ pdev->aspm_os_control = 1;
+
pci_enable_link_state_locked(pdev, PCIE_LINK_STATE_ALL);

pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_LTR);
--
2.43.0