diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2015-06-02 16:47:17 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2015-06-10 13:52:59 -0500 |
commit | 6cbb247e85eb4449d31a8dcb9b3f0464772b1395 (patch) | |
tree | 4a73b6883501b2ec7dba50fdc377c1fc60c961c2 /drivers/pci/host/pci-imx6.c | |
parent | 1d3f9bac716a09af2d5d6e8601336ec9efcdccda (diff) | |
download | lwn-6cbb247e85eb4449d31a8dcb9b3f0464772b1395.tar.gz lwn-6cbb247e85eb4449d31a8dcb9b3f0464772b1395.zip |
PCI: designware: Wait for link to come up with consistent style
All the DesignWare-based host drivers loop waiting for the link to come up,
but they do it several ways that are needlessly different.
Wait for the link to come up in a consistent style across all the
DesignWare drivers. No functional change.
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Pratyush Anand <pratyush.anand@gmail.com>
Diffstat (limited to 'drivers/pci/host/pci-imx6.c')
-rw-r--r-- | drivers/pci/host/pci-imx6.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c index 8cc012371ca7..af7da8ac8082 100644 --- a/drivers/pci/host/pci-imx6.c +++ b/drivers/pci/host/pci-imx6.c @@ -335,21 +335,19 @@ static void imx6_pcie_init_phy(struct pcie_port *pp) static int imx6_pcie_wait_for_link(struct pcie_port *pp) { - int count = 200; + unsigned int retries; - while (!dw_pcie_link_up(pp)) { + for (retries = 0; retries < 200; retries++) { + if (dw_pcie_link_up(pp)) + return 0; usleep_range(100, 1000); - if (--count) - continue; - - dev_err(pp->dev, "phy link never came up\n"); - dev_dbg(pp->dev, "DEBUG_R0: 0x%08x, DEBUG_R1: 0x%08x\n", - readl(pp->dbi_base + PCIE_PHY_DEBUG_R0), - readl(pp->dbi_base + PCIE_PHY_DEBUG_R1)); - return -EINVAL; } - return 0; + dev_err(pp->dev, "phy link never came up\n"); + dev_dbg(pp->dev, "DEBUG_R0: 0x%08x, DEBUG_R1: 0x%08x\n", + readl(pp->dbi_base + PCIE_PHY_DEBUG_R0), + readl(pp->dbi_base + PCIE_PHY_DEBUG_R1)); + return -EINVAL; } static irqreturn_t imx6_pcie_msi_handler(int irq, void *arg) |