Commit 8c826bd9 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'regulator-fix-v6.9-merge-window' of...

Merge tag 'regulator-fix-v6.9-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator

Pull regulator fix from Mark Brown:
 "One fix that came in during the merge window, fixing a problem with
  bootstrapping the state of exclusive regulators which have a parent
  regulator"

* tag 'regulator-fix-v6.9-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
  regulator: core: Propagate the regulator state in case of exclusive get
parents 6b571e26 e4ead3cd
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -2274,6 +2274,17 @@ struct regulator *_regulator_get(struct device *dev, const char *id,
		if (ret > 0) {
			rdev->use_count = 1;
			regulator->enable_count = 1;

			/* Propagate the regulator state to its supply */
			if (rdev->supply) {
				ret = regulator_enable(rdev->supply);
				if (ret < 0) {
					destroy_regulator(regulator);
					module_put(rdev->owner);
					put_device(&rdev->dev);
					return ERR_PTR(ret);
				}
			}
		} else {
			rdev->use_count = 0;
			regulator->enable_count = 0;