| From ad9f2478704c8142534030e9e1d9146a25c15de1 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 16 Jun 2020 23:21:24 +0200 |
| Subject: drm/etnaviv: Fix error path on failure to enable bus clk |
| |
| From: Lubomir Rintel <lkundrak@v3.sk> |
| |
| [ Upstream commit f8794feaf65cdc97767604cf864775d20b97f397 ] |
| |
| Since commit 65f037e8e908 ("drm/etnaviv: add support for slave interface |
| clock") the reg clock is enabled before the bus clock and we need to undo |
| its enablement on error. |
| |
| Fixes: 65f037e8e908 ("drm/etnaviv: add support for slave interface clock") |
| Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> |
| Signed-off-by: Lucas Stach <l.stach@pengutronix.de> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c |
| index f17fbe6ff7c74..37ae15dc4fc6d 100644 |
| --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c |
| +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c |
| @@ -1465,7 +1465,7 @@ static int etnaviv_gpu_clk_enable(struct etnaviv_gpu *gpu) |
| if (gpu->clk_bus) { |
| ret = clk_prepare_enable(gpu->clk_bus); |
| if (ret) |
| - return ret; |
| + goto disable_clk_reg; |
| } |
| |
| if (gpu->clk_core) { |
| @@ -1488,6 +1488,9 @@ static int etnaviv_gpu_clk_enable(struct etnaviv_gpu *gpu) |
| disable_clk_bus: |
| if (gpu->clk_bus) |
| clk_disable_unprepare(gpu->clk_bus); |
| +disable_clk_reg: |
| + if (gpu->clk_reg) |
| + clk_disable_unprepare(gpu->clk_reg); |
| |
| return ret; |
| } |
| -- |
| 2.25.1 |
| |