PCI: layerscape: Factor out ls_pcie_establish_link()
authorBjorn Helgaas <bhelgaas@google.com>
Tue, 2 Jun 2015 21:24:25 +0000 (16:24 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 10 Jun 2015 18:52:46 +0000 (13:52 -0500)
All other DesignWare-based drivers have a *_establish_link() function.

This functionality is trivial for Layerscape, but factor out a
ls_pcie_establish_link() for consistency with the other drivers.  No
functional change.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Pratyush Anand <pratyush.anand@gmail.com>
drivers/pci/host/pci-layerscape.c

index bb5894fb81d6f9f99319be9432271875c8795d68..434b116f1a7e47f670bbe91f97b600333724ba64 100644 (file)
@@ -62,23 +62,30 @@ static int ls_pcie_link_up(struct pcie_port *pp)
        return 1;
 }
 
-static void ls_pcie_host_init(struct pcie_port *pp)
+static int ls_pcie_establish_link(struct pcie_port *pp)
 {
-       struct ls_pcie *pcie = to_ls_pcie(pp);
        int count = 0;
-       u32 val;
-
-       dw_pcie_setup_rc(pp);
 
        while (!dw_pcie_link_up(pp)) {
                usleep_range(100, 1000);
                count++;
                if (count >= 200) {
                        dev_err(pp->dev, "phy link never came up\n");
-                       return;
+                       return -EINVAL;
                }
        }
 
+       return 0;
+}
+
+static void ls_pcie_host_init(struct pcie_port *pp)
+{
+       struct ls_pcie *pcie = to_ls_pcie(pp);
+       u32 val;
+
+       dw_pcie_setup_rc(pp);
+       ls_pcie_establish_link(pp);
+
        /*
         * LS1021A Workaround for internal TKT228622
         * to fix the INTx hang issue