If the link is not up till the pwrctl drivers enable power to endpoints then cur_bus_speed will not be updated with correct speed. As part of rescan, pci_pwrctrl_notify() will be called when new devices are added and as part of it update the link bus speed. Suggested-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@xxxxxxxxxxxxxxxx> --- drivers/pci/pwrctrl/core.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/pci/pwrctrl/core.c b/drivers/pci/pwrctrl/core.c index 6bdbfed584d6d79ce28ba9e384a596b065ca69a4..4c1d3832c43503a7e434a3fe5e0bf15a148434dc 100644 --- a/drivers/pci/pwrctrl/core.c +++ b/drivers/pci/pwrctrl/core.c @@ -10,16 +10,21 @@ #include <linux/pci-pwrctrl.h> #include <linux/property.h> #include <linux/slab.h> +#include "../pci.h" static int pci_pwrctrl_notify(struct notifier_block *nb, unsigned long action, void *data) { struct pci_pwrctrl *pwrctrl = container_of(nb, struct pci_pwrctrl, nb); struct device *dev = data; + struct pci_bus *bus = to_pci_dev(dev)->bus; if (dev_fwnode(dev) != dev_fwnode(pwrctrl->dev)) return NOTIFY_DONE; + if (bus->self) + pcie_update_link_speed(bus); + switch (action) { case BUS_NOTIFY_ADD_DEVICE: /* -- 2.34.1