Re: [PATCH] PCI: dwc: Do not fail to probe when link is down

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 04, 2023 at 09:26:35AM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@xxxxxxx>
> 
> Since commit da56a1bfbab5 ("PCI: dwc: Wait for link up only if link is
> started") the following probe error is observed when the PCI link is down:
> 
> imx6q-pcie 33800000.pcie: Phy link never came up
> imx6q-pcie: probe of 33800000.pcie failed with error -110
> 
> The intention of commit 886a9c134755 ("PCI: dwc: Move link handling into
> common code") was to standardize the behavior of link down as explained
> in its commit log:
>     
> "The behavior for a link down was inconsistent as some drivers would fail
> probe in that case while others succeed. Let's standardize this to
> succeed as there are usecases where devices (and the link) appear later
> even without hotplug. For example, a reconfigured FPGA device."
> 
> Restore the original behavior by ignoring the error from
> dw_pcie_wait_for_link().
> 
> Fixes: da56a1bfbab5 ("PCI: dwc: Wait for link up only if link is started")
> Signed-off-by: Fabio Estevam <festevam@xxxxxxx>
Reviewed-by: Ajay Agarwal <ajayagarwal@xxxxxxxxxx>
> ---
>  drivers/pci/controller/dwc/pcie-designware-host.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
> index cf61733bf78d..af6a7cd060b1 100644
> --- a/drivers/pci/controller/dwc/pcie-designware-host.c
> +++ b/drivers/pci/controller/dwc/pcie-designware-host.c
> @@ -492,11 +492,8 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp)
>  		if (ret)
>  			goto err_remove_edma;
>  
> -		if (pci->ops && pci->ops->start_link) {
> -			ret = dw_pcie_wait_for_link(pci);
> -			if (ret)
> -				goto err_stop_link;
> -		}
> +		if (pci->ops && pci->ops->start_link)
> +			dw_pcie_wait_for_link(pci);
>  	}
>  
>  	bridge->sysdata = pp;
> -- 
> 2.34.1
> 
LGTM.



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux