Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 34a09239 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "clk: qcom: gdsc-regulator: Update support to skip GDSC disable"

parents bc169004 1c1c79fe
Loading
Loading
Loading
Loading
+6 −11
Original line number Diff line number Diff line
@@ -181,6 +181,9 @@ static int gdsc_is_enabled(struct regulator_dev *rdev)
	if (!sc->toggle_logic)
		return !sc->resets_asserted;

	if (sc->skip_disable_before_enable)
		return false;

	regmap_read(sc->regmap, REG_OFFSET, &regval);

	if (regval & PWR_ON_MASK) {
@@ -202,6 +205,9 @@ static int gdsc_enable(struct regulator_dev *rdev)
	uint32_t regval, cfg_regval, hw_ctrl_regval = 0x0;
	int i, ret = 0;

	if (sc->skip_disable_before_enable)
		return 0;

	if (sc->parent_regulator) {
		ret = regulator_set_voltage(sc->parent_regulator,
				RPMH_REGULATOR_LEVEL_LOW_SVS, INT_MAX);
@@ -380,7 +386,6 @@ static int gdsc_enable(struct regulator_dev *rdev)
		clk_disable_unprepare(sc->clocks[sc->root_clk_idx]);

	sc->is_gdsc_enabled = true;
	sc->skip_disable_before_enable = false;

	mutex_unlock(&gdsc_seq_lock);

@@ -393,16 +398,6 @@ static int gdsc_disable(struct regulator_dev *rdev)
	uint32_t regval;
	int i, ret = 0;

	/*
	 * Protect GDSC against late_init disabling when the GDSC is enabled
	 * by an entity outside external to HLOS.
	 */
	if (sc->skip_disable_before_enable) {
		dev_dbg(&rdev->dev, "Skip Disabling: %s\n", sc->rdesc.name);
		sc->skip_disable_before_enable = false;
		return 0;
	}

	mutex_lock(&gdsc_seq_lock);

	if (sc->force_root_en)