Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetoot...
[cascardo/linux.git] / drivers / pci / host / pcie-qcom.c
index 5ec2d44..ef0a84c 100644 (file)
@@ -86,12 +86,10 @@ struct qcom_pcie_ops {
 };
 
 struct qcom_pcie {
-       struct pcie_port pp;
-       struct device *dev;
+       struct pcie_port pp;                    /* pp.dbi_base is DT dbi */
+       void __iomem *parf;                     /* DT parf */
+       void __iomem *elbi;                     /* DT elbi */
        union qcom_pcie_resources res;
-       void __iomem *parf;
-       void __iomem *dbi;
-       void __iomem *elbi;
        struct phy *phy;
        struct gpio_desc *reset;
        struct qcom_pcie_ops *ops;
@@ -136,7 +134,7 @@ static int qcom_pcie_establish_link(struct qcom_pcie *pcie)
 static int qcom_pcie_get_resources_v0(struct qcom_pcie *pcie)
 {
        struct qcom_pcie_resources_v0 *res = &pcie->res.v0;
-       struct device *dev = pcie->dev;
+       struct device *dev = pcie->pp.dev;
 
        res->vdda = devm_regulator_get(dev, "vdda");
        if (IS_ERR(res->vdda))
@@ -188,7 +186,7 @@ static int qcom_pcie_get_resources_v0(struct qcom_pcie *pcie)
 static int qcom_pcie_get_resources_v1(struct qcom_pcie *pcie)
 {
        struct qcom_pcie_resources_v1 *res = &pcie->res.v1;
-       struct device *dev = pcie->dev;
+       struct device *dev = pcie->pp.dev;
 
        res->vdda = devm_regulator_get(dev, "vdda");
        if (IS_ERR(res->vdda))
@@ -237,7 +235,7 @@ static void qcom_pcie_deinit_v0(struct qcom_pcie *pcie)
 static int qcom_pcie_init_v0(struct qcom_pcie *pcie)
 {
        struct qcom_pcie_resources_v0 *res = &pcie->res.v0;
-       struct device *dev = pcie->dev;
+       struct device *dev = pcie->pp.dev;
        u32 val;
        int ret;
 
@@ -359,7 +357,7 @@ static void qcom_pcie_deinit_v1(struct qcom_pcie *pcie)
 static int qcom_pcie_init_v1(struct qcom_pcie *pcie)
 {
        struct qcom_pcie_resources_v1 *res = &pcie->res.v1;
-       struct device *dev = pcie->dev;
+       struct device *dev = pcie->pp.dev;
        int ret;
 
        ret = reset_control_deassert(res->core);
@@ -426,7 +424,7 @@ err_res:
 static int qcom_pcie_link_up(struct pcie_port *pp)
 {
        struct qcom_pcie *pcie = to_qcom_pcie(pp);
-       u16 val = readw(pcie->dbi + PCIE20_CAP + PCI_EXP_LNKSTA);
+       u16 val = readw(pcie->pp.dbi_base + PCIE20_CAP + PCI_EXP_LNKSTA);
 
        return !!(val & PCI_EXP_LNKSTA_DLLLA);
 }
@@ -509,8 +507,8 @@ static int qcom_pcie_probe(struct platform_device *pdev)
        if (!pcie)
                return -ENOMEM;
 
+       pp = &pcie->pp;
        pcie->ops = (struct qcom_pcie_ops *)of_device_get_match_data(dev);
-       pcie->dev = dev;
 
        pcie->reset = devm_gpiod_get_optional(dev, "perst", GPIOD_OUT_LOW);
        if (IS_ERR(pcie->reset))
@@ -522,9 +520,9 @@ static int qcom_pcie_probe(struct platform_device *pdev)
                return PTR_ERR(pcie->parf);
 
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dbi");
-       pcie->dbi = devm_ioremap_resource(dev, res);
-       if (IS_ERR(pcie->dbi))
-               return PTR_ERR(pcie->dbi);
+       pp->dbi_base = devm_ioremap_resource(dev, res);
+       if (IS_ERR(pp->dbi_base))
+               return PTR_ERR(pp->dbi_base);
 
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "elbi");
        pcie->elbi = devm_ioremap_resource(dev, res);
@@ -539,9 +537,7 @@ static int qcom_pcie_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       pp = &pcie->pp;
        pp->dev = dev;
-       pp->dbi_base = pcie->dbi;
        pp->root_bus_nr = -1;
        pp->ops = &qcom_pcie_dw_ops;
 
@@ -569,8 +565,6 @@ static int qcom_pcie_probe(struct platform_device *pdev)
                return ret;
        }
 
-       platform_set_drvdata(pdev, pcie);
-
        return 0;
 }