Commit b2d6fd77 authored by Bjorn Helgaas's avatar Bjorn Helgaas

PCI: armada: Pass device-specific struct to internal functions

Only interfaces used from outside the driver, e.g., those called by the
DesignWare core, need to accept pointers to the generic struct pcie_port.
Internal interfaces can accept pointers to the device-specific struct,
which makes them more straightforward.  No functional change intended.
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Reviewed-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 76876957
...@@ -83,8 +83,9 @@ static int armada8k_pcie_link_up(struct pcie_port *pp) ...@@ -83,8 +83,9 @@ static int armada8k_pcie_link_up(struct pcie_port *pp)
return 0; return 0;
} }
static void armada8k_pcie_establish_link(struct pcie_port *pp) static void armada8k_pcie_establish_link(struct armada8k_pcie *pcie)
{ {
struct pcie_port *pp = &pcie->pp;
u32 reg; u32 reg;
if (!dw_pcie_link_up(pp)) { if (!dw_pcie_link_up(pp)) {
...@@ -135,13 +136,16 @@ static void armada8k_pcie_establish_link(struct pcie_port *pp) ...@@ -135,13 +136,16 @@ static void armada8k_pcie_establish_link(struct pcie_port *pp)
static void armada8k_pcie_host_init(struct pcie_port *pp) static void armada8k_pcie_host_init(struct pcie_port *pp)
{ {
struct armada8k_pcie *pcie = to_armada8k_pcie(pp);
dw_pcie_setup_rc(pp); dw_pcie_setup_rc(pp);
armada8k_pcie_establish_link(pp); armada8k_pcie_establish_link(pcie);
} }
static irqreturn_t armada8k_pcie_irq_handler(int irq, void *arg) static irqreturn_t armada8k_pcie_irq_handler(int irq, void *arg)
{ {
struct pcie_port *pp = arg; struct armada8k_pcie *pcie = arg;
struct pcie_port *pp = &pcie->pp;
u32 val; u32 val;
/* /*
...@@ -160,9 +164,10 @@ static struct pcie_host_ops armada8k_pcie_host_ops = { ...@@ -160,9 +164,10 @@ static struct pcie_host_ops armada8k_pcie_host_ops = {
.host_init = armada8k_pcie_host_init, .host_init = armada8k_pcie_host_init,
}; };
static int armada8k_add_pcie_port(struct pcie_port *pp, static int armada8k_add_pcie_port(struct armada8k_pcie *pcie,
struct platform_device *pdev) struct platform_device *pdev)
{ {
struct pcie_port *pp = &pcie->pp;
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
int ret; int ret;
...@@ -176,7 +181,7 @@ static int armada8k_add_pcie_port(struct pcie_port *pp, ...@@ -176,7 +181,7 @@ static int armada8k_add_pcie_port(struct pcie_port *pp,
} }
ret = devm_request_irq(dev, pp->irq, armada8k_pcie_irq_handler, ret = devm_request_irq(dev, pp->irq, armada8k_pcie_irq_handler,
IRQF_SHARED, "armada8k-pcie", pp); IRQF_SHARED, "armada8k-pcie", pcie);
if (ret) { if (ret) {
dev_err(dev, "failed to request irq %d\n", pp->irq); dev_err(dev, "failed to request irq %d\n", pp->irq);
return ret; return ret;
...@@ -221,7 +226,7 @@ static int armada8k_pcie_probe(struct platform_device *pdev) ...@@ -221,7 +226,7 @@ static int armada8k_pcie_probe(struct platform_device *pdev)
goto fail; goto fail;
} }
ret = armada8k_add_pcie_port(pp, pdev); ret = armada8k_add_pcie_port(pcie, pdev);
if (ret) if (ret)
goto fail; goto fail;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment