drivers/pci/controller/dwc/pci-imx6.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
According to PCI/endpoint/pci-endpoint-cfs.rst, the endpoint (EP) should
only link up after `echo 1 > start` is executed.
To match the documented behavior, do not start the link automatically
when adding the EP controller. Ensure the LTSSM_EN bit is not asserted
to 1'b1 by default.
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
---
drivers/pci/controller/dwc/pci-imx6.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index 5f267dd261b5..69825e47d2d4 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1337,6 +1337,10 @@ static int imx_add_pcie_ep(struct imx_pcie *imx_pcie,
struct device *dev = pci->dev;
imx_pcie_host_init(pp);
+
+ /* Make sure that PCIe LTSSM is cleared */
+ imx_pcie_ltssm_disable(dev);
+
ep = &pci->ep;
ep->ops = &pcie_ep_ops;
@@ -1360,9 +1364,6 @@ static int imx_add_pcie_ep(struct imx_pcie *imx_pcie,
pci_epc_init_notify(ep->epc);
- /* Start LTSSM. */
- imx_pcie_ltssm_enable(dev);
-
return 0;
}
--
2.37.1
On Fri, Jun 06, 2025 at 03:57:29PM +0800, Richard Zhu wrote: > According to PCI/endpoint/pci-endpoint-cfs.rst, the endpoint (EP) should > only link up after `echo 1 > start` is executed. > > To match the documented behavior, do not start the link automatically > when adding the EP controller. Ensure the LTSSM_EN bit is not asserted > to 1'b1 by default. Reviewed-by: Frank Li <Frank.Li@nxp.com> > > Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com> > --- > drivers/pci/controller/dwc/pci-imx6.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c > index 5f267dd261b5..69825e47d2d4 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -1337,6 +1337,10 @@ static int imx_add_pcie_ep(struct imx_pcie *imx_pcie, > struct device *dev = pci->dev; > > imx_pcie_host_init(pp); > + > + /* Make sure that PCIe LTSSM is cleared */ > + imx_pcie_ltssm_disable(dev); > + > ep = &pci->ep; > ep->ops = &pcie_ep_ops; > > @@ -1360,9 +1364,6 @@ static int imx_add_pcie_ep(struct imx_pcie *imx_pcie, > > pci_epc_init_notify(ep->epc); > > - /* Start LTSSM. */ > - imx_pcie_ltssm_enable(dev); > - > return 0; > } > > -- > 2.37.1 >
© 2016 - 2025 Red Hat, Inc.