PCI: keystone: Perform host initialization in a single function
No functional change. Instead of having two functions ks_pcie_add_pcie_port() and ks_pcie_dw_host_init() for initializing host, have a single function to perform all the host initialization. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
This commit is contained in:
committed by
Lorenzo Pieralisi
parent
47fe944138
commit
f3560a9f88
@@ -487,45 +487,6 @@ static int ks_pcie_start_link(struct dw_pcie *pci)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* ks_pcie_dw_host_init() - initialize host for v3_65 dw hardware
|
|
||||||
*
|
|
||||||
* Ioremap the register resources, initialize legacy irq domain
|
|
||||||
* and call dw_pcie_v3_65_host_init() API to initialize the Keystone
|
|
||||||
* PCI host controller.
|
|
||||||
*/
|
|
||||||
static int __init ks_pcie_dw_host_init(struct keystone_pcie *ks_pcie)
|
|
||||||
{
|
|
||||||
struct dw_pcie *pci = ks_pcie->pci;
|
|
||||||
struct pcie_port *pp = &pci->pp;
|
|
||||||
struct device *dev = pci->dev;
|
|
||||||
struct platform_device *pdev = to_platform_device(dev);
|
|
||||||
struct resource *res;
|
|
||||||
|
|
||||||
/* Index 0 is the config reg. space address */
|
|
||||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
||||||
pci->dbi_base = devm_pci_remap_cfg_resource(dev, res);
|
|
||||||
if (IS_ERR(pci->dbi_base))
|
|
||||||
return PTR_ERR(pci->dbi_base);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We set these same and is used in pcie rd/wr_other_conf
|
|
||||||
* functions
|
|
||||||
*/
|
|
||||||
pp->va_cfg0_base = pci->dbi_base + SPACE0_REMOTE_CFG_OFFSET;
|
|
||||||
pp->va_cfg1_base = pp->va_cfg0_base;
|
|
||||||
|
|
||||||
/* Index 1 is the application reg. space address */
|
|
||||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
|
||||||
ks_pcie->va_app_base = devm_ioremap_resource(dev, res);
|
|
||||||
if (IS_ERR(ks_pcie->va_app_base))
|
|
||||||
return PTR_ERR(ks_pcie->va_app_base);
|
|
||||||
|
|
||||||
ks_pcie->app = *res;
|
|
||||||
|
|
||||||
return dw_pcie_host_init(pp);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ks_pcie_quirk(struct pci_dev *dev)
|
static void ks_pcie_quirk(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
struct pci_bus *bus = dev->bus;
|
struct pci_bus *bus = dev->bus;
|
||||||
@@ -843,10 +804,32 @@ static int __init ks_pcie_add_pcie_port(struct keystone_pcie *ks_pcie,
|
|||||||
struct dw_pcie *pci = ks_pcie->pci;
|
struct dw_pcie *pci = ks_pcie->pci;
|
||||||
struct pcie_port *pp = &pci->pp;
|
struct pcie_port *pp = &pci->pp;
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
|
struct resource *res;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
/* Index 0 is the config reg. space address */
|
||||||
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||||
|
pci->dbi_base = devm_pci_remap_cfg_resource(dev, res);
|
||||||
|
if (IS_ERR(pci->dbi_base))
|
||||||
|
return PTR_ERR(pci->dbi_base);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We set these same and is used in pcie rd/wr_other_conf
|
||||||
|
* functions
|
||||||
|
*/
|
||||||
|
pp->va_cfg0_base = pci->dbi_base + SPACE0_REMOTE_CFG_OFFSET;
|
||||||
|
pp->va_cfg1_base = pp->va_cfg0_base;
|
||||||
|
|
||||||
|
/* Index 1 is the application reg. space address */
|
||||||
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
||||||
|
ks_pcie->va_app_base = devm_ioremap_resource(dev, res);
|
||||||
|
if (IS_ERR(ks_pcie->va_app_base))
|
||||||
|
return PTR_ERR(ks_pcie->va_app_base);
|
||||||
|
|
||||||
|
ks_pcie->app = *res;
|
||||||
|
|
||||||
pp->ops = &ks_pcie_host_ops;
|
pp->ops = &ks_pcie_host_ops;
|
||||||
ret = ks_pcie_dw_host_init(ks_pcie);
|
ret = dw_pcie_host_init(pp);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to initialize host\n");
|
dev_err(dev, "failed to initialize host\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
Reference in New Issue
Block a user