diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2023-06-26 12:59:58 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2023-06-26 12:59:58 -0500 |
commit | 99f7b809067be43141027f4bbb6af7b55f854554 (patch) | |
tree | 1a576ff6556929a76b5c32de188ad4e5db7118f4 /drivers/pci/controller/dwc/pcie-designware-host.c | |
parent | 375328faa2c546f28719c68a3d88e043e878debd (diff) | |
parent | 3bbc3c72c4b8982ecb719df6685dc7067def0904 (diff) |
Merge branch 'pci/controller/dwc'
- Wait for link to come up only if we've initiated link training (Ajay
Agarwal)
- Save and restore imx6 Root Port MSI control to work around hardware
defect (Richard Zhu)
* pci/controller/dwc:
PCI: imx6: Save and restore root port MSI control in suspend and resume
PCI: dwc: Wait for link up only if link is started
Diffstat (limited to 'drivers/pci/controller/dwc/pcie-designware-host.c')
-rw-r--r-- | drivers/pci/controller/dwc/pcie-designware-host.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c index 9952057c8819..cf61733bf78d 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -485,14 +485,19 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp) if (ret) goto err_remove_edma; - if (!dw_pcie_link_up(pci)) { + if (dw_pcie_link_up(pci)) { + dw_pcie_print_link_status(pci); + } else { ret = dw_pcie_start_link(pci); if (ret) goto err_remove_edma; - } - /* Ignore errors, the link may come up later */ - dw_pcie_wait_for_link(pci); + if (pci->ops && pci->ops->start_link) { + ret = dw_pcie_wait_for_link(pci); + if (ret) + goto err_stop_link; + } + } bridge->sysdata = pp; |