This patch fixes a disable failure when regulator supply is used.
A while loop in regulator disable checks for supply pointer != NULL
but the pointer is not always updated, resulting in the while loop
running too many times causing a disable failure.
Signed-off-by: Mattias Wallin <[email protected]>
Acked-by: Linus Walleij <[email protected]>
Acked-by: Mark Brown <[email protected]>
---
drivers/regulator/core.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index f1d10c9..c625633 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -1359,6 +1359,7 @@ static int _regulator_disable(struct regulator_dev *rdev,
struct regulator_dev **supply_rdev_ptr)
{
int ret = 0;
+ *supply_rdev_ptr = NULL;
if (WARN(rdev->use_count <= 0,
"unbalanced disables for %s\n",
--
1.6.3.3
On Tue, 2010-11-02 at 14:55 +0100, Mattias Wallin wrote:
> This patch fixes a disable failure when regulator supply is used.
> A while loop in regulator disable checks for supply pointer != NULL
> but the pointer is not always updated, resulting in the while loop
> running too many times causing a disable failure.
>
> Signed-off-by: Mattias Wallin <[email protected]>
> Acked-by: Linus Walleij <[email protected]>
> Acked-by: Mark Brown <[email protected]>
> ---
> drivers/regulator/core.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
> index f1d10c9..c625633 100644
> --- a/drivers/regulator/core.c
> +++ b/drivers/regulator/core.c
> @@ -1359,6 +1359,7 @@ static int _regulator_disable(struct regulator_dev *rdev,
> struct regulator_dev **supply_rdev_ptr)
> {
> int ret = 0;
> + *supply_rdev_ptr = NULL;
>
> if (WARN(rdev->use_count <= 0,
> "unbalanced disables for %s\n",
Applied.
Thanks
Liam
--
Freelance Developer, SlimLogic Ltd
ASoC and Voltage Regulator Maintainer.
http://www.slimlogic.co.uk