PCI: dwc: Move dw_pcie_setup_rc() to DWC common code
[linux-2.6-microblaze.git] / drivers / pci / controller / dwc / pci-keystone.c
index a222728..5a4bcc2 100644 (file)
@@ -272,14 +272,6 @@ static void ks_pcie_handle_legacy_irq(struct keystone_pcie *ks_pcie,
        ks_pcie_app_writel(ks_pcie, IRQ_EOI, offset);
 }
 
-/*
- * Dummy function so that DW core doesn't configure MSI
- */
-static int ks_pcie_am654_msi_host_init(struct pcie_port *pp)
-{
-       return 0;
-}
-
 static void ks_pcie_enable_error_irq(struct keystone_pcie *ks_pcie)
 {
        ks_pcie_app_writel(ks_pcie, ERR_IRQ_ENABLE_SET, ERR_IRQ_ALL);
@@ -519,14 +511,8 @@ static void ks_pcie_stop_link(struct dw_pcie *pci)
 static int ks_pcie_start_link(struct dw_pcie *pci)
 {
        struct keystone_pcie *ks_pcie = to_keystone_pcie(pci);
-       struct device *dev = pci->dev;
        u32 val;
 
-       if (dw_pcie_link_up(pci)) {
-               dev_dbg(dev, "link is already up\n");
-               return 0;
-       }
-
        /* Initiate Link Training */
        val = ks_pcie_app_readl(ks_pcie, CMD_STATUS);
        ks_pcie_app_writel(ks_pcie, CMD_STATUS, LTSSM_EN_VAL | val);
@@ -821,8 +807,6 @@ static int __init ks_pcie_host_init(struct pcie_port *pp)
        if (ret)
                return ret;
 
-       dw_pcie_setup_rc(pp);
-
        ks_pcie_stop_link(pci);
        ks_pcie_setup_rc_app_regs(ks_pcie);
        writew(PCI_IO_RANGE_TYPE_32 | (PCI_IO_RANGE_TYPE_32 << 8),
@@ -841,9 +825,6 @@ static int __init ks_pcie_host_init(struct pcie_port *pp)
                        "Asynchronous external abort");
 #endif
 
-       ks_pcie_start_link(pci);
-       dw_pcie_wait_for_link(pci);
-
        return 0;
 }
 
@@ -854,7 +835,6 @@ static const struct dw_pcie_host_ops ks_pcie_host_ops = {
 
 static const struct dw_pcie_host_ops ks_pcie_am654_host_ops = {
        .host_init = ks_pcie_host_init,
-       .msi_host_init = ks_pcie_am654_msi_host_init,
 };
 
 static irqreturn_t ks_pcie_err_irq_handler(int irq, void *priv)
@@ -977,33 +957,6 @@ static const struct dw_pcie_ep_ops ks_pcie_am654_ep_ops = {
        .get_features = &ks_pcie_am654_get_features,
 };
 
-static int __init ks_pcie_add_pcie_ep(struct keystone_pcie *ks_pcie,
-                                     struct platform_device *pdev)
-{
-       int ret;
-       struct dw_pcie_ep *ep;
-       struct resource *res;
-       struct device *dev = &pdev->dev;
-       struct dw_pcie *pci = ks_pcie->pci;
-
-       ep = &pci->ep;
-
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "addr_space");
-       if (!res)
-               return -EINVAL;
-
-       ep->phys_base = res->start;
-       ep->addr_size = resource_size(res);
-
-       ret = dw_pcie_ep_init(ep);
-       if (ret) {
-               dev_err(dev, "failed to initialize endpoint\n");
-               return ret;
-       }
-
-       return 0;
-}
-
 static void ks_pcie_disable_phy(struct keystone_pcie *ks_pcie)
 {
        int num_lanes = ks_pcie->num_lanes;
@@ -1313,7 +1266,7 @@ static int __init ks_pcie_probe(struct platform_device *pdev)
                }
 
                pci->ep.ops = ep_ops;
-               ret = ks_pcie_add_pcie_ep(ks_pcie, pdev);
+               ret = dw_pcie_ep_init(&pci->ep);
                if (ret < 0)
                        goto err_get_sync;
                break;