diff mbox series

PCI: dwc/meson: do not fail on wait linkup timeout

Message ID 20200921074953.25289-1-narmstrong@baylibre.com (mailing list archive)
State Superseded, archived
Delegated to: Lorenzo Pieralisi
Headers show
Series PCI: dwc/meson: do not fail on wait linkup timeout | expand

Commit Message

Neil Armstrong Sept. 21, 2020, 7:49 a.m. UTC
When establish link timeouts, probe fails but the error is unrelated since
the PCIe controller has been probed succesfully.

Align with most of the other dw-pcie drivers and ignore return of
dw_pcie_wait_for_link() in the host_init callback.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 drivers/pci/controller/dwc/pci-meson.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

Comments

Kevin Hilman Sept. 21, 2020, 3:05 p.m. UTC | #1
Neil Armstrong <narmstrong@baylibre.com> writes:

> When establish link timeouts, probe fails but the error is unrelated since
> the PCIe controller has been probed succesfully.
>
> Align with most of the other dw-pcie drivers and ignore return of
> dw_pcie_wait_for_link() in the host_init callback.
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>

Tested-by: Kevin Hilman <khilman@baylibre.com>
Rob Herring Sept. 22, 2020, 5:30 p.m. UTC | #2
On Mon, Sep 21, 2020 at 1:50 AM Neil Armstrong <narmstrong@baylibre.com> wrote:
>
> When establish link timeouts, probe fails but the error is unrelated since
> the PCIe controller has been probed succesfully.
>
> Align with most of the other dw-pcie drivers and ignore return of
> dw_pcie_wait_for_link() in the host_init callback.

I think all, not most DWC drivers should be aligned. Plus the code
here is pretty much the same, so I'm working on moving all this to the
common DWC code. Drivers that need to bring up the link will need to
implement .start_link() (currently only used for EP mode). Most of the
time that is just setting the LTSSM bit which Synopsys thought letting
every vendor do their own register for was a good idea. Sigh.

Rob
Lorenzo Pieralisi Nov. 19, 2020, 11:12 a.m. UTC | #3
On Tue, Sep 22, 2020 at 11:30:30AM -0600, Rob Herring wrote:
> On Mon, Sep 21, 2020 at 1:50 AM Neil Armstrong <narmstrong@baylibre.com> wrote:
> >
> > When establish link timeouts, probe fails but the error is unrelated since
> > the PCIe controller has been probed succesfully.
> >
> > Align with most of the other dw-pcie drivers and ignore return of
> > dw_pcie_wait_for_link() in the host_init callback.
> 
> I think all, not most DWC drivers should be aligned. Plus the code
> here is pretty much the same, so I'm working on moving all this to the
> common DWC code. Drivers that need to bring up the link will need to
> implement .start_link() (currently only used for EP mode). Most of the
> time that is just setting the LTSSM bit which Synopsys thought letting
> every vendor do their own register for was a good idea. Sigh.

Should I drop this patch then ?

Thanks,
Lorenzo
Rob Herring Nov. 19, 2020, 2:17 p.m. UTC | #4
On Thu, Nov 19, 2020 at 5:12 AM Lorenzo Pieralisi
<lorenzo.pieralisi@arm.com> wrote:
>
> On Tue, Sep 22, 2020 at 11:30:30AM -0600, Rob Herring wrote:
> > On Mon, Sep 21, 2020 at 1:50 AM Neil Armstrong <narmstrong@baylibre.com> wrote:
> > >
> > > When establish link timeouts, probe fails but the error is unrelated since
> > > the PCIe controller has been probed succesfully.
> > >
> > > Align with most of the other dw-pcie drivers and ignore return of
> > > dw_pcie_wait_for_link() in the host_init callback.
> >
> > I think all, not most DWC drivers should be aligned. Plus the code
> > here is pretty much the same, so I'm working on moving all this to the
> > common DWC code. Drivers that need to bring up the link will need to
> > implement .start_link() (currently only used for EP mode). Most of the
> > time that is just setting the LTSSM bit which Synopsys thought letting
> > every vendor do their own register for was a good idea. Sigh.
>
> Should I drop this patch then ?

Yes, this is done by my series.

Rob
diff mbox series

Patch

diff --git a/drivers/pci/controller/dwc/pci-meson.c b/drivers/pci/controller/dwc/pci-meson.c
index 33deb290c4e7..846275e68fbc 100644
--- a/drivers/pci/controller/dwc/pci-meson.c
+++ b/drivers/pci/controller/dwc/pci-meson.c
@@ -383,10 +383,7 @@  static int meson_pcie_host_init(struct pcie_port *pp)
 
 	pp->bridge->ops = &meson_pci_ops;
 
-	ret = meson_pcie_establish_link(mp);
-	if (ret)
-		return ret;
-
+	meson_pcie_establish_link(mp);
 	dw_pcie_msi_init(pp);
 
 	return 0;