From 98d345a332256441c69bd04f7dcd92b66b5c4e1d Mon Sep 17 00:00:00 2001 From: David Collins Date: Fri, 1 May 2020 17:16:04 -0700 Subject: [PATCH] clk: qcom: gdsc-regulator: correct gdsc_disable() success return value Currently gdsc_disable() can return a value of 1 upon successfully disabling a GDSC if it has a parent supply. Correct this so that 0 is always returned on success. Change-Id: I37ade1bf62b4e8b2f3446b9072674935579d75dd Signed-off-by: David Collins --- drivers/clk/qcom/gdsc-regulator.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/clk/qcom/gdsc-regulator.c b/drivers/clk/qcom/gdsc-regulator.c index 53ffc1f1416c..301c6f47ff55 100644 --- a/drivers/clk/qcom/gdsc-regulator.c +++ b/drivers/clk/qcom/gdsc-regulator.c @@ -321,18 +321,19 @@ static int gdsc_disable(struct regulator_dev *rdev) { struct gdsc *sc = rdev_get_drvdata(rdev); uint32_t regval; - int i, ret = 0; + int i, ret = 0, parent_enabled; if (rdev->supply) { regulator_lock(rdev->supply->rdev); - ret = regulator_is_enabled(rdev->supply); - if (ret < 0) { + parent_enabled = regulator_is_enabled(rdev->supply); + if (parent_enabled < 0) { + ret = parent_enabled; dev_err(&rdev->dev, "%s unable to check parent enable state, ret=%d\n", sc->rdesc.name, ret); goto done; } - if (!ret) { + if (!parent_enabled) { dev_err(&rdev->dev, "%s cannot disable GDSC while parent is disabled\n", sc->rdesc.name); ret = -EIO;