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: Bjorn Helgaas <bhelgaas@google.com>
        { },
 };
 
-static int __init ls_add_pcie_port(struct pcie_port *pp,
+static int __init ls_add_pcie_port(struct ls_pcie *pcie,
                                   struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
+       struct pcie_port *pp = &pcie->pp;
        int ret;
-       struct ls_pcie *pcie = to_ls_pcie(pp);
 
        pp->dev = dev;
        pp->ops = pcie->drvdata->ops;
        if (!ls_pcie_is_bridge(pcie))
                return -ENODEV;
 
-       ret = ls_add_pcie_port(&pcie->pp, pdev);
+       ret = ls_add_pcie_port(pcie, pdev);
        if (ret < 0)
                return ret;