linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Michał Mirosław" <mirq-linux@rere.qmqm.pl>
To: Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>
Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>,
	linux-arm-kernel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 4/4] regulator: workaround self-referent regulators
Date: Fri, 13 Nov 2020 01:16:50 +0100	[thread overview]
Message-ID: <6e250bd5d444db3afd010b1ce66db9843a9114d1.1605225991.git.mirq-linux@rere.qmqm.pl> (raw)
In-Reply-To: <cover.1605225991.git.mirq-linux@rere.qmqm.pl>

Workaround regulators whose supply name happens to be the same as its
own name. This fixes boards that used to work before the early supply
resolving was removed. The error message is left in place so that
offending drivers can be detected.

Fixes: aea6cb99703e ("regulator: resolve supply after creating regulator")
Cc: stable@vger.kernel.org
Reported-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
---
 drivers/regulator/core.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index ab922ed273f3..38ba579efe2b 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -1844,7 +1844,10 @@ static int regulator_resolve_supply(struct regulator_dev *rdev)
 	if (r == rdev) {
 		dev_err(dev, "Supply for %s (%s) resolved to itself\n",
 			rdev->desc->name, rdev->supply_name);
-		return -EINVAL;
+		if (!have_full_constraints())
+			return -EINVAL;
+		r = dummy_regulator_rdev;
+		get_device(&r->dev);
 	}
 
 	/*
-- 
2.20.1


      parent reply	other threads:[~2020-11-13  0:17 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-13  0:16 [PATCH 0/4] regulator: debugging and fixing supply deps Michał Mirosław
2020-11-13  0:16 ` [PATCH 3/4] regulator: avoid resolve_supply() infinite recursion Michał Mirosław
2020-11-13  0:16 ` [PATCH 2/4] regulator: debug early supply resolving Michał Mirosław
2020-11-13  0:16 ` [PATCH 1/4] regulator: fix memory leak with repeated set_machine_constraints() Michał Mirosław
2020-11-13  0:16 ` Michał Mirosław [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6e250bd5d444db3afd010b1ce66db9843a9114d1.1605225991.git.mirq-linux@rere.qmqm.pl \
    --to=mirq-linux@rere.qmqm.pl \
    --cc=a.fatoum@pengutronix.de \
    --cc=broonie@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --subject='Re: [PATCH 4/4] regulator: workaround self-referent regulators' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
on how to clone and mirror all data and code used for this inbox