Re: [PATCH v5 05/11] PCI: cadence: Extract link setup sequence from cdns_pcie_host_setup()

From: Thomas Richard
Date: Tue May 14 2024 - 09:15:56 EST


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.

Regards,

Thomas

--
Thomas Richard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com