aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2020-11-08 12:35:35 +0100
committerLinus Walleij <linus.walleij@linaro.org>2020-11-11 00:27:53 +0100
commita6c40b8032b845f132abfcbcbed6bddebbcc3b4a (patch)
treed22ffb962522bf18e9f92e8f02cc31fde4b19ca2
parent06ad8d339524bf94b89859047822c31df6ace239 (diff)
downloadbmc-a6c40b8032b845f132abfcbcbed6bddebbcc3b4a.tar.gz
drm/mcde: Fix unbalanced regulator
Since we now turn off the EPOD regulator to reset the hardware, we need to balance the regulators after that point. If registering the master fails we only need to disable one regulator. Fix this by open-coding this leg of the error path. Fixes: c4842d4d0f74 ("drm/mcde: Fix display pipeline restart") Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Cc: Stephan Gerhold <stephan@gerhold.net> Link: https://patchwork.freedesktop.org/patch/msgid/20201108113535.1819952-1-linus.walleij@linaro.org
-rw-r--r--drivers/gpu/drm/mcde/mcde_drv.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/mcde/mcde_drv.c b/drivers/gpu/drm/mcde/mcde_drv.c
index c592957ed07fc7..92f8bd907193f5 100644
--- a/drivers/gpu/drm/mcde/mcde_drv.c
+++ b/drivers/gpu/drm/mcde/mcde_drv.c
@@ -413,7 +413,13 @@ static int mcde_probe(struct platform_device *pdev)
match);
if (ret) {
dev_err(dev, "failed to add component master\n");
- goto clk_disable;
+ /*
+ * The EPOD regulator is already disabled at this point so some
+ * special errorpath code is needed
+ */
+ clk_disable_unprepare(mcde->mcde_clk);
+ regulator_disable(mcde->vana);
+ return ret;
}
return 0;