mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 02:24:24 +02:00
PCI: dwc: Fail dw_pcie_host_init() if dw_pcie_wait_for_link() returns -ETIMEDOUT
The dw_pcie_wait_for_link() API now distinguishes link failures more precisely: -ENODEV: Device not found on the bus. -EIO: Device found but inactive. -ETIMEDOUT: Link failed to come up. Out of these three errors, only -ETIMEDOUT represents a definitive link failure since it signals that something is wrong with the link. For the other two errors, there is a possibility that the link might come up later. So fail dw_pcie_host_init() if -ETIMEDOUT is returned and skip the failure otherwise. Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Reviewed-by: Niklas Cassel <cassel@kernel.org> Link: https://patch.msgid.link/20260120-pci-dwc-suspend-rework-v4-5-2f32d5082549@oss.qualcomm.com
This commit is contained in:
parent
d266f63b38
commit
86cbb7a810
|
|
@ -675,8 +675,13 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp)
|
|||
goto err_remove_edma;
|
||||
}
|
||||
|
||||
/* Ignore errors, the link may come up later */
|
||||
dw_pcie_wait_for_link(pci);
|
||||
/*
|
||||
* Only fail on timeout error. Other errors indicate the device may
|
||||
* become available later, so continue without failing.
|
||||
*/
|
||||
ret = dw_pcie_wait_for_link(pci);
|
||||
if (ret == -ETIMEDOUT)
|
||||
goto err_stop_link;
|
||||
|
||||
ret = pci_host_probe(bridge);
|
||||
if (ret)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user