@@ -2240,6 +2258,9 @@ static void pci_init_capabilities(struct pci_dev *dev)
ÂÂÂÂÂ /* Advanced Error Reporting */
ÂÂÂÂÂ pci_aer_init(dev);
+ÂÂÂ /* Check link and detect downtrain errors */
+ÂÂÂ pcie_check_upstream_link(dev);
This is called for every PCIe device right? Won't there be a duplicated print in case a device loads with lower PCIe bandwidth than needed?
Alex, can you comment on this please?
+
ÂÂÂÂÂ if (pci_probe_reset_function(dev) == 0)
ÂÂÂÂÂÂÂÂÂ dev->reset_fn = 1;
 }
diff --git a/include/linux/pci.h b/include/linux/pci.h
index abd5d5e17aee..15bfab8f7a1b 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1088,6 +1088,7 @@ int pcie_set_mps(struct pci_dev *dev, int mps);
 u32 pcie_bandwidth_available(struct pci_dev *dev, struct pci_dev **limiting_dev,
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ enum pci_bus_speed *speed,
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ enum pcie_link_width *width);
+void __pcie_print_link_status(struct pci_dev *dev, bool verbose);
 void pcie_print_link_status(struct pci_dev *dev);
 int pcie_flr(struct pci_dev *dev);
 int __pci_reset_function_locked(struct pci_dev *dev);