Message ID | 20250403053937.765849-3-hongxing.zhu@nxp.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Add some enhancements for i.MX95 PCIe | expand |
On Thu, Apr 03, 2025 at 01:39:32PM +0800, Richard Zhu wrote: > Skip one dw_pcie_wait_for_link() in workaround link training. Remove one reduntant dw_pcie_wait_for_link() in link traning workaround because common framework already do that. Reviewed-by: Frank Li <Frank.Li@nxp.com> > > Suggested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com> > --- > drivers/pci/controller/dwc/pci-imx6.c | 15 ++++----------- > 1 file changed, 4 insertions(+), 11 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c > index 57aa777231ae..84d2f94e3da0 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -881,11 +881,11 @@ static int imx_pcie_start_link(struct dw_pcie *pci) > /* Start LTSSM. */ > imx_pcie_ltssm_enable(dev); > > - ret = dw_pcie_wait_for_link(pci); > - if (ret) > - goto err_reset_phy; > - > if (pci->max_link_speed > 1) { > + ret = dw_pcie_wait_for_link(pci); > + if (ret) > + goto err_reset_phy; > + > /* Allow faster modes after the link is up */ > dw_pcie_dbi_ro_wr_en(pci); > tmp = dw_pcie_readl_dbi(pci, offset + PCI_EXP_LNKCAP); > @@ -907,17 +907,10 @@ static int imx_pcie_start_link(struct dw_pcie *pci) > dev_err(dev, "Failed to bring link up!\n"); > goto err_reset_phy; > } > - > - /* Make sure link training is finished as well! */ > - ret = dw_pcie_wait_for_link(pci); > - if (ret) > - goto err_reset_phy; > } else { > dev_info(dev, "Link: Only Gen1 is enabled\n"); > } > > - tmp = dw_pcie_readw_dbi(pci, offset + PCI_EXP_LNKSTA); > - dev_info(dev, "Link up, Gen%i\n", tmp & PCI_EXP_LNKSTA_CLS); > return 0; > > err_reset_phy: > -- > 2.37.1 >
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 57aa777231ae..84d2f94e3da0 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -881,11 +881,11 @@ static int imx_pcie_start_link(struct dw_pcie *pci) /* Start LTSSM. */ imx_pcie_ltssm_enable(dev); - ret = dw_pcie_wait_for_link(pci); - if (ret) - goto err_reset_phy; - if (pci->max_link_speed > 1) { + ret = dw_pcie_wait_for_link(pci); + if (ret) + goto err_reset_phy; + /* Allow faster modes after the link is up */ dw_pcie_dbi_ro_wr_en(pci); tmp = dw_pcie_readl_dbi(pci, offset + PCI_EXP_LNKCAP); @@ -907,17 +907,10 @@ static int imx_pcie_start_link(struct dw_pcie *pci) dev_err(dev, "Failed to bring link up!\n"); goto err_reset_phy; } - - /* Make sure link training is finished as well! */ - ret = dw_pcie_wait_for_link(pci); - if (ret) - goto err_reset_phy; } else { dev_info(dev, "Link: Only Gen1 is enabled\n"); } - tmp = dw_pcie_readw_dbi(pci, offset + PCI_EXP_LNKSTA); - dev_info(dev, "Link up, Gen%i\n", tmp & PCI_EXP_LNKSTA_CLS); return 0; err_reset_phy:
Skip one dw_pcie_wait_for_link() in workaround link training. Suggested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com> --- drivers/pci/controller/dwc/pci-imx6.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-)