diff options
author | Oza Pawandeep <poza@codeaurora.org> | 2018-05-17 23:44:11 +0200 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2018-05-17 23:44:11 +0200 |
commit | 9f5a70f18c5893a30d6c339adc48de43c57dd7e2 (patch) | |
tree | a9883d7afecbedeffb9379bc88c9c5d06793f1ab /drivers/pci/hotplug/pciehp_hpc.c | |
parent | PCI/AER: Add TLP header information to tracepoint (diff) | |
download | linux-9f5a70f18c5893a30d6c339adc48de43c57dd7e2.tar.xz linux-9f5a70f18c5893a30d6c339adc48de43c57dd7e2.zip |
PCI: Add generic pcie_wait_for_link() interface
Clients such as hotplug and Downstream Port Containment (DPC) both need to
wait until a link becomes active or inactive.
Add a generic pcie_wait_link_active() interface and use it instead of
duplicating the code.
Signed-off-by: Oza Pawandeep <poza@codeaurora.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Diffstat (limited to 'drivers/pci/hotplug/pciehp_hpc.c')
-rw-r--r-- | drivers/pci/hotplug/pciehp_hpc.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c index 18a42f8f5dc5..e0c2b8ead6cb 100644 --- a/drivers/pci/hotplug/pciehp_hpc.c +++ b/drivers/pci/hotplug/pciehp_hpc.c @@ -231,25 +231,11 @@ bool pciehp_check_link_active(struct controller *ctrl) return ret; } -static void __pcie_wait_link_active(struct controller *ctrl, bool active) -{ - int timeout = 1000; - - if (pciehp_check_link_active(ctrl) == active) - return; - while (timeout > 0) { - msleep(10); - timeout -= 10; - if (pciehp_check_link_active(ctrl) == active) - return; - } - ctrl_dbg(ctrl, "Data Link Layer Link Active not %s in 1000 msec\n", - active ? "set" : "cleared"); -} - static void pcie_wait_link_active(struct controller *ctrl) { - __pcie_wait_link_active(ctrl, true); + struct pci_dev *pdev = ctrl_dev(ctrl); + + pcie_wait_for_link(pdev, true); } static bool pci_bus_check_dev(struct pci_bus *bus, int devfn) |