PCI: dwc: Move dw_pcie_setup_rc() to DWC common code
[linux-2.6-microblaze.git] / drivers / pci / controller / dwc / pcie-qcom.c
index b476164..e49791c 100644 (file)
@@ -207,18 +207,15 @@ static void qcom_ep_reset_deassert(struct qcom_pcie *pcie)
        usleep_range(PERST_DELAY_US, PERST_DELAY_US + 500);
 }
 
-static int qcom_pcie_establish_link(struct qcom_pcie *pcie)
+static int qcom_pcie_start_link(struct dw_pcie *pci)
 {
-       struct dw_pcie *pci = pcie->pci;
-
-       if (dw_pcie_link_up(pci))
-               return 0;
+       struct qcom_pcie *pcie = to_qcom_pcie(pci);
 
        /* Enable Link Training state machine */
        if (pcie->ops->ltssm_enable)
                pcie->ops->ltssm_enable(pcie);
 
-       return dw_pcie_wait_for_link(pci);
+       return 0;
 }
 
 static void qcom_pcie_2_1_0_ltssm_enable(struct qcom_pcie *pcie)
@@ -1283,20 +1280,10 @@ static int qcom_pcie_host_init(struct pcie_port *pp)
                        goto err_disable_phy;
        }
 
-       dw_pcie_setup_rc(pp);
-       dw_pcie_msi_init(pp);
-
        qcom_ep_reset_deassert(pcie);
 
-       ret = qcom_pcie_establish_link(pcie);
-       if (ret)
-               goto err;
-
        return 0;
-err:
-       qcom_ep_reset_assert(pcie);
-       if (pcie->ops->post_deinit)
-               pcie->ops->post_deinit(pcie);
+
 err_disable_phy:
        phy_power_off(pcie->phy);
 err_deinit:
@@ -1363,12 +1350,12 @@ static const struct qcom_pcie_ops ops_2_7_0 = {
 
 static const struct dw_pcie_ops dw_pcie_ops = {
        .link_up = qcom_pcie_link_up,
+       .start_link = qcom_pcie_start_link,
 };
 
 static int qcom_pcie_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
-       struct resource *res;
        struct pcie_port *pp;
        struct dw_pcie *pci;
        struct qcom_pcie *pcie;
@@ -1407,13 +1394,6 @@ static int qcom_pcie_probe(struct platform_device *pdev)
                goto err_pm_runtime_put;
        }
 
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dbi");
-       pci->dbi_base = devm_pci_remap_cfg_resource(dev, res);
-       if (IS_ERR(pci->dbi_base)) {
-               ret = PTR_ERR(pci->dbi_base);
-               goto err_pm_runtime_put;
-       }
-
        pcie->elbi = devm_platform_ioremap_resource_byname(pdev, "elbi");
        if (IS_ERR(pcie->elbi)) {
                ret = PTR_ERR(pcie->elbi);
@@ -1432,14 +1412,6 @@ static int qcom_pcie_probe(struct platform_device *pdev)
 
        pp->ops = &qcom_pcie_dw_ops;
 
-       if (IS_ENABLED(CONFIG_PCI_MSI)) {
-               pp->msi_irq = platform_get_irq_byname(pdev, "msi");
-               if (pp->msi_irq < 0) {
-                       ret = pp->msi_irq;
-                       goto err_pm_runtime_put;
-               }
-       }
-
        ret = phy_init(pcie->phy);
        if (ret) {
                pm_runtime_disable(&pdev->dev);