diff --git a/drivers/pci/controller/pci-msm.c b/drivers/pci/controller/pci-msm.c index 719dde839eb5..cc17276c425c 100644 --- a/drivers/pci/controller/pci-msm.c +++ b/drivers/pci/controller/pci-msm.c @@ -6917,6 +6917,14 @@ static int msm_pcie_drv_resume(struct msm_pcie_dev_t *pcie_dev) msm_pcie_scale_link_bandwidth(pcie_dev, current_link_speed); + /* scale CX and rate change based on current GEN speed */ + current_link_speed = readl_relaxed(pcie_dev->dm_core + + PCIE20_CAP_LINKCTRLSTATUS); + current_link_speed = ((current_link_speed >> 16) & + PCI_EXP_LNKSTA_CLS); + + msm_pcie_scale_link_bandwidth(pcie_dev, current_link_speed); + /* always ungate clkreq */ msm_pcie_write_reg_field(pcie_dev->parf, PCIE20_PARF_CLKREQ_OVERRIDE,