Commit 069ade5d authored by Bjorn Helgaas's avatar Bjorn Helgaas
Browse files

Merge branch 'remotes/lorenzo/pci/rockchip'

  - Make rockchip 0V9 and 1V8 power regulators non-optional (Robin Murphy)

* remotes/lorenzo/pci/rockchip:
  PCI: rockchip: Make some regulators non-optional
parents 21cea0c0 1e4d4018
Loading
Loading
Loading
Loading
+25 −44
Original line number Diff line number Diff line
@@ -620,19 +620,13 @@ static int rockchip_pcie_parse_host_dt(struct rockchip_pcie *rockchip)
		dev_info(dev, "no vpcie3v3 regulator found\n");
	}

	rockchip->vpcie1v8 = devm_regulator_get_optional(dev, "vpcie1v8");
	if (IS_ERR(rockchip->vpcie1v8)) {
		if (PTR_ERR(rockchip->vpcie1v8) != -ENODEV)
	rockchip->vpcie1v8 = devm_regulator_get(dev, "vpcie1v8");
	if (IS_ERR(rockchip->vpcie1v8))
		return PTR_ERR(rockchip->vpcie1v8);
		dev_info(dev, "no vpcie1v8 regulator found\n");
	}

	rockchip->vpcie0v9 = devm_regulator_get_optional(dev, "vpcie0v9");
	if (IS_ERR(rockchip->vpcie0v9)) {
		if (PTR_ERR(rockchip->vpcie0v9) != -ENODEV)
	rockchip->vpcie0v9 = devm_regulator_get(dev, "vpcie0v9");
	if (IS_ERR(rockchip->vpcie0v9))
		return PTR_ERR(rockchip->vpcie0v9);
		dev_info(dev, "no vpcie0v9 regulator found\n");
	}

	return 0;
}
@@ -658,26 +652,21 @@ static int rockchip_pcie_set_vpcie(struct rockchip_pcie *rockchip)
		}
	}

	if (!IS_ERR(rockchip->vpcie1v8)) {
	err = regulator_enable(rockchip->vpcie1v8);
	if (err) {
		dev_err(dev, "fail to enable vpcie1v8 regulator\n");
		goto err_disable_3v3;
	}
	}

	if (!IS_ERR(rockchip->vpcie0v9)) {
	err = regulator_enable(rockchip->vpcie0v9);
	if (err) {
		dev_err(dev, "fail to enable vpcie0v9 regulator\n");
		goto err_disable_1v8;
	}
	}

	return 0;

err_disable_1v8:
	if (!IS_ERR(rockchip->vpcie1v8))
	regulator_disable(rockchip->vpcie1v8);
err_disable_3v3:
	if (!IS_ERR(rockchip->vpcie3v3))
@@ -897,7 +886,6 @@ static int __maybe_unused rockchip_pcie_suspend_noirq(struct device *dev)

	rockchip_pcie_disable_clocks(rockchip);

	if (!IS_ERR(rockchip->vpcie0v9))
	regulator_disable(rockchip->vpcie0v9);

	return ret;
@@ -908,13 +896,11 @@ static int __maybe_unused rockchip_pcie_resume_noirq(struct device *dev)
	struct rockchip_pcie *rockchip = dev_get_drvdata(dev);
	int err;

	if (!IS_ERR(rockchip->vpcie0v9)) {
	err = regulator_enable(rockchip->vpcie0v9);
	if (err) {
		dev_err(dev, "fail to enable vpcie0v9 regulator\n");
		return err;
	}
	}

	err = rockchip_pcie_enable_clocks(rockchip);
	if (err)
@@ -939,7 +925,6 @@ static int __maybe_unused rockchip_pcie_resume_noirq(struct device *dev)
err_pcie_resume:
	rockchip_pcie_disable_clocks(rockchip);
err_disable_0v9:
	if (!IS_ERR(rockchip->vpcie0v9))
	regulator_disable(rockchip->vpcie0v9);
	return err;
}
@@ -1081,9 +1066,7 @@ static int rockchip_pcie_probe(struct platform_device *pdev)
		regulator_disable(rockchip->vpcie12v);
	if (!IS_ERR(rockchip->vpcie3v3))
		regulator_disable(rockchip->vpcie3v3);
	if (!IS_ERR(rockchip->vpcie1v8))
	regulator_disable(rockchip->vpcie1v8);
	if (!IS_ERR(rockchip->vpcie0v9))
	regulator_disable(rockchip->vpcie0v9);
err_set_vpcie:
	rockchip_pcie_disable_clocks(rockchip);
@@ -1108,9 +1091,7 @@ static int rockchip_pcie_remove(struct platform_device *pdev)
		regulator_disable(rockchip->vpcie12v);
	if (!IS_ERR(rockchip->vpcie3v3))
		regulator_disable(rockchip->vpcie3v3);
	if (!IS_ERR(rockchip->vpcie1v8))
	regulator_disable(rockchip->vpcie1v8);
	if (!IS_ERR(rockchip->vpcie0v9))
	regulator_disable(rockchip->vpcie0v9);

	return 0;