[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <0bee2d4b-b190-4353-ab29-003364721a3c@suswa.mountain>
Date: Wed, 15 May 2024 09:05:37 +0200
From: Dan Carpenter <dan.carpenter@...aro.org>
To: Thomas Richard <thomas.richard@...tlin.com>
Cc: Linus Walleij <linus.walleij@...aro.org>,
Bartosz Golaszewski <brgl@...ev.pl>,
Tony Lindgren <tony@...mide.com>,
Aaro Koskinen <aaro.koskinen@....fi>,
Janusz Krzysztofik <jmkrzyszt@...il.com>,
Vignesh R <vigneshr@...com>, Andi Shyti <andi.shyti@...nel.org>,
Peter Rosin <peda@...ntia.se>,
Lorenzo Pieralisi <lpieralisi@...nel.org>,
Krzysztof WilczyĆski <kw@...ux.com>,
Rob Herring <robh@...nel.org>, Bjorn Helgaas <bhelgaas@...gle.com>,
Siddharth Vadapalli <s-vadapalli@...com>,
linux-gpio@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-omap@...r.kernel.org, linux-i2c@...r.kernel.org,
linux-pci@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
gregory.clement@...tlin.com, theo.lebrun@...tlin.com,
thomas.petazzoni@...tlin.com, u-kumar1@...com
Subject: Re: [PATCH v5 05/11] PCI: cadence: Extract link setup sequence from
cdns_pcie_host_setup()
On Tue, May 14, 2024 at 03:15:34PM +0200, Thomas Richard wrote:
> On 4/16/24 16:16, Dan Carpenter wrote:
> > On Tue, Apr 16, 2024 at 03:29:54PM +0200, Thomas Richard wrote:
> >> diff --git a/drivers/pci/controller/cadence/pcie-cadence-host.c b/drivers/pci/controller/cadence/pcie-cadence-host.c
> >> index 5b14f7ee3c79..93d9922730af 100644
> >> --- a/drivers/pci/controller/cadence/pcie-cadence-host.c
> >> +++ b/drivers/pci/controller/cadence/pcie-cadence-host.c
> >> @@ -497,6 +497,30 @@ static int cdns_pcie_host_init(struct device *dev,
> >> return cdns_pcie_host_init_address_translation(rc);
> >> }
> >>
> >> +int cdns_pcie_host_link_setup(struct cdns_pcie_rc *rc)
> >> +{
> >> + struct cdns_pcie *pcie = &rc->pcie;
> >> + struct device *dev = rc->pcie.dev;
> >> + int ret;
> >> +
> >> + if (rc->quirk_detect_quiet_flag)
> >> + cdns_pcie_detect_quiet_min_delay_set(&rc->pcie);
> >> +
> >> + cdns_pcie_host_enable_ptm_response(pcie);
> >> +
> >> + ret = cdns_pcie_start_link(pcie);
> >> + if (ret) {
> >> + dev_err(dev, "Failed to start link\n");
> >> + return ret;
> >> + }
> >> +
> >> + ret = cdns_pcie_host_start_link(rc);
> >> + if (ret)
> >> + dev_dbg(dev, "PCIe link never came up\n");
> >
> > If we're going to ignore this error the message should be a dev_err()
> > at least.
>
> Hello Dan,
>
> In fact it could not be really an error.
> If you physically don't have a device on the PCIe bus,
> cdns_pcie_host_start_link() will not return 0.
>
> So if we use dev_err(), we will always have the error if there is no
> device on the PCIe bus.
Ah okay. Thanks for looking at this. It feels like maybe
cdns_pcie_host_start_link() should just check for that at the start and
return 0 instead of doing waiting 1 second and returning -ETIMEOUT.
But I don't know this code well enough to say if that's even possible.
regards,
dan carpenter
Powered by blists - more mailing lists