Commit f8981b0d authored by Stephen Boyd's avatar Stephen Boyd
Browse files

Merge tag 'qcom-clk-fixes-for-6.9' of...

Merge tag 'qcom-clk-fixes-for-6.9' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into clk-fixes

Pull Qualcomm clk driver fixes from Bjorn Andersson:

The introduction of support for the external VDD_GFX supply in SA8295P
ADP unearthed a lockdep problem in the GDSC code w.r.t regulator
supplies. Make the regulator optional, to avoid creating a dummy
regulator, on those boards that doesn't use this. While not solving the
root cause of the problem, it reduces the impact of the lockdep warning
- and it avoids wasting resources.

Refactoring of the RPM clock driver accidentally removed num_clks from
msm8976. Reintroduce this to get the clocks back.

* tag 'qcom-clk-fixes-for-6.9' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  clk: qcom: smd-rpm: Restore msm8976 num_clk
  clk: qcom: gdsc: treat optional supplies as optional
parents d3e8a91a 0d4ce245
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -768,6 +768,7 @@ static struct clk_smd_rpm *msm8976_clks[] = {

static const struct rpm_smd_clk_desc rpm_clk_msm8976 = {
	.clks = msm8976_clks,
	.num_clks = ARRAY_SIZE(msm8976_clks),
	.icc_clks = bimc_pcnoc_snoc_smmnoc_icc_clks,
	.num_icc_clks = ARRAY_SIZE(bimc_pcnoc_snoc_smmnoc_icc_clks),
};
+8 −3
Original line number Diff line number Diff line
@@ -487,9 +487,14 @@ int gdsc_register(struct gdsc_desc *desc,
		if (!scs[i] || !scs[i]->supply)
			continue;

		scs[i]->rsupply = devm_regulator_get(dev, scs[i]->supply);
		if (IS_ERR(scs[i]->rsupply))
			return PTR_ERR(scs[i]->rsupply);
		scs[i]->rsupply = devm_regulator_get_optional(dev, scs[i]->supply);
		if (IS_ERR(scs[i]->rsupply)) {
			ret = PTR_ERR(scs[i]->rsupply);
			if (ret != -ENODEV)
				return ret;

			scs[i]->rsupply = NULL;
		}
	}

	data->num_domains = num;