diff mbox series

[L/M/Unstable,1/9] Revert "UBUNTU: SAUCE: vmd: fixup bridge ASPM by driver name instead"

Message ID 20230906075421.357683-2-kai.heng.feng@canonical.com
State New
Headers show
Series Enable ASPM for NVMe behind VMD | expand

Commit Message

Kai-Heng Feng Sept. 6, 2023, 7:54 a.m. UTC
BugLink: https://bugs.launchpad.net/bugs/2034504

This reverts commit 154d48da2c57514e4b5dadc7b8c70a4edb550981.

Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
 drivers/pci/quirks.c | 32 +++++++++-----------------------
 1 file changed, 9 insertions(+), 23 deletions(-)
diff mbox series

Patch

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 274005cdada6..1198dc07754f 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -6052,36 +6052,23 @@  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a31, dpc_log_size);
 #endif
 
 /*
+ * Device [8086:9a09], [8086:a0b0] and [8086:a0bc]
  * BIOS may not be able to access config space of devices under VMD domain, so
  * it relies on software to enable ASPM for links under VMD.
  */
-static bool pci_fixup_is_vmd_bridge(struct pci_dev *pdev)
-{
-	struct pci_bus *bus = pdev->bus;
-	struct device *dev;
-	struct pci_driver *pdrv;
-
-	if (!pci_is_root_bus(bus))
-		return false;
-
-	dev = bus->bridge->parent;
-	if (dev == NULL)
-		return false;
-
-	pdrv = pci_dev_driver(to_pci_dev(dev));
-	if (pdrv == NULL || strcmp("vmd", pdrv->name))
-		return false;
-
-	return true;
-}
+static const struct pci_device_id vmd_bridge_tbl[] = {
+	{ PCI_VDEVICE(INTEL, 0x9a09) },
+	{ PCI_VDEVICE(INTEL, 0xa0b0) },
+	{ PCI_VDEVICE(INTEL, 0xa0bc) },
+	{ }
+};
 
 static void pci_fixup_enable_aspm(struct pci_dev *pdev)
 {
-	if (!pci_fixup_is_vmd_bridge(pdev))
+	if (!pci_match_id(vmd_bridge_tbl, pdev))
 		return;
 
 	pdev->dev_flags |= PCI_DEV_FLAGS_ENABLE_ASPM;
-	pci_info(pdev, "enable ASPM for pci bridge behind vmd");
 }
 DECLARE_PCI_FIXUP_CLASS_HEADER(PCI_VENDOR_ID_INTEL, PCI_ANY_ID,
 			       PCI_CLASS_BRIDGE_PCI, 8, pci_fixup_enable_aspm);
@@ -6096,7 +6083,7 @@  static void pci_fixup_enable_vmd_nvme_ltr(struct pci_dev *pdev)
 	if (!parent)
 		return;
 
-	if (!pci_fixup_is_vmd_bridge(parent))
+	if (!pci_match_id(vmd_bridge_tbl, parent))
 		return;
 
 	pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_LTR);
@@ -6114,7 +6101,6 @@  static void pci_fixup_enable_vmd_nvme_ltr(struct pci_dev *pdev)
 	/* 3145728ns, i.e. 0x300000ns */
 	pci_write_config_word(pdev, pos + PCI_LTR_MAX_SNOOP_LAT, 0x1003);
 	pci_write_config_word(pdev, pos + PCI_LTR_MAX_NOSNOOP_LAT, 0x1003);
-	pci_info(pdev, "enable LTR for nvme behind vmd");
 }
 DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
 			      PCI_CLASS_STORAGE_EXPRESS, 0, pci_fixup_enable_vmd_nvme_ltr);