]> git.baikalelectronics.ru Git - kernel.git/commitdiff
PCI: keystone: Do not initiate link training multiple times
authorKishon Vijay Abraham I <kishon@ti.com>
Wed, 17 Oct 2018 07:40:57 +0000 (13:10 +0530)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Wed, 17 Oct 2018 08:40:56 +0000 (09:40 +0100)
commit f58d2c5915ed8df19a114a0af4 ("PCI: designware: Add generic
dw_pcie_wait_for_link()") while adding a generic dw_pcie_wait_for_link()
performed a special handling (initiate link training multiple times) for
keystone which is not required. This also resulted in unncessarily waiting
for more time to establish the link even when no PCI device is connected.

Remove it and make it look similar to other dwc based PCIe drivers.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/dwc/pci-keystone.c

index afb9483720772f8937d154dcf6161a1cb53862ca..aa7e706fc37df5e0db575e798c6bd2e61d0fd87c 100644 (file)
@@ -87,19 +87,17 @@ static int ks_pcie_establish_link(struct keystone_pcie *ks_pcie)
 {
        struct dw_pcie *pci = ks_pcie->pci;
        struct device *dev = pci->dev;
-       unsigned int retries;
 
        if (dw_pcie_link_up(pci)) {
                dev_info(dev, "Link already up\n");
                return 0;
        }
 
+       ks_dw_pcie_initiate_link_train(ks_pcie);
+
        /* check if the link is up or not */
-       for (retries = 0; retries < 5; retries++) {
-               ks_dw_pcie_initiate_link_train(ks_pcie);
-               if (!dw_pcie_wait_for_link(pci))
-                       return 0;
-       }
+       if (!dw_pcie_wait_for_link(pci))
+               return 0;
 
        dev_err(dev, "phy link never came up\n");
        return -ETIMEDOUT;