]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/pci/host/pci-keystone.c
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[karo-tx-linux.git] / drivers / pci / host / pci-keystone.c
index 47cf0c18d9e303816c8cb4dda1be6f63262767c9..734da589cdfb94b4312c3a8cd13dbe06c9c5604c 100644 (file)
@@ -88,7 +88,7 @@ DECLARE_PCI_FIXUP_ENABLE(PCI_ANY_ID, PCI_ANY_ID, quirk_limit_mrrs);
 static int ks_pcie_establish_link(struct keystone_pcie *ks_pcie)
 {
        struct pcie_port *pp = &ks_pcie->pp;
-       int count = 200;
+       unsigned int retries;
 
        dw_pcie_setup_rc(pp);
 
@@ -99,17 +99,15 @@ static int ks_pcie_establish_link(struct keystone_pcie *ks_pcie)
 
        ks_dw_pcie_initiate_link_train(ks_pcie);
        /* check if the link is up or not */
-       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) {
-                       ks_dw_pcie_initiate_link_train(ks_pcie);
-                       continue;
-               }
-               dev_err(pp->dev, "phy link never came up\n");
-               return -EINVAL;
+               ks_dw_pcie_initiate_link_train(ks_pcie);
        }
 
-       return 0;
+       dev_err(pp->dev, "phy link never came up\n");
+       return -EINVAL;
 }
 
 static void ks_pcie_msi_irq_handler(unsigned int irq, struct irq_desc *desc)