PCI: pciehp: Rely on dev->link_active_reporting
authorMaciej W. Rozycki <macro@orcam.me.uk>
Sun, 11 Jun 2023 17:19:14 +0000 (18:19 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 14 Jun 2023 22:58:12 +0000 (17:58 -0500)
Use dev->link_active_reporting to determine whether Data Link Layer Link
Active Reporting is available rather than re-retrieving the capability.

Link: https://lore.kernel.org/r/alpine.DEB.2.21.2305310028150.59226@angie.orcam.me.uk
Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Lukas Wunner <lukas@wunner.de>
drivers/pci/hotplug/pciehp_hpc.c

index f8c7011..6bf898e 100644 (file)
@@ -984,7 +984,7 @@ static inline int pcie_hotplug_depth(struct pci_dev *dev)
 struct controller *pcie_init(struct pcie_device *dev)
 {
        struct controller *ctrl;
-       u32 slot_cap, slot_cap2, link_cap;
+       u32 slot_cap, slot_cap2;
        u8 poweron;
        struct pci_dev *pdev = dev->port;
        struct pci_bus *subordinate = pdev->subordinate;
@@ -1030,9 +1030,6 @@ struct controller *pcie_init(struct pcie_device *dev)
        if (dmi_first_match(inband_presence_disabled_dmi_table))
                ctrl->inband_presence_disabled = 1;
 
-       /* Check if Data Link Layer Link Active Reporting is implemented */
-       pcie_capability_read_dword(pdev, PCI_EXP_LNKCAP, &link_cap);
-
        /* Clear all remaining event bits in Slot Status register. */
        pcie_capability_write_word(pdev, PCI_EXP_SLTSTA,
                PCI_EXP_SLTSTA_ABP | PCI_EXP_SLTSTA_PFD |
@@ -1051,7 +1048,7 @@ struct controller *pcie_init(struct pcie_device *dev)
                FLAG(slot_cap, PCI_EXP_SLTCAP_EIP),
                FLAG(slot_cap, PCI_EXP_SLTCAP_NCCS),
                FLAG(slot_cap2, PCI_EXP_SLTCAP2_IBPD),
-               FLAG(link_cap, PCI_EXP_LNKCAP_DLLLARC),
+               FLAG(pdev->link_active_reporting, true),
                pdev->broken_cmd_compl ? " (with Cmd Compl erratum)" : "");
 
        /*