diff mbox

[1/2] mmc: meson-gx: prevent cfg_div_clk from being disabled on init

Message ID 20170216145222.1577-2-webczat@webczatnet.pl (mailing list archive)
State New, archived
Headers show

Commit Message

Michał Zegan Feb. 16, 2017, 2:52 p.m. UTC
At the end of function meson_mmc_clk_init, the cfg_div clock was
prepared, enabled and configured, but then immediately disabled due to bogus if statements.
That made later calls to clk_disable_unprepare executed during module removal to fail with a kernel warning.
Fix that by changing the code to disable clock only when it failed to be configured.

Signed-off-by: Michał Zegan <webczat@webczatnet.pl>
---
 drivers/mmc/host/meson-gx-mmc.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Kevin Hilman Feb. 17, 2017, 7:44 p.m. UTC | #1
Michał Zegan <webczat@webczatnet.pl> writes:

> At the end of function meson_mmc_clk_init, the cfg_div clock was
> prepared, enabled and configured, but then immediately disabled due to bogus if statements.
> That made later calls to clk_disable_unprepare executed during module removal to fail with a kernel warning.
> Fix that by changing the code to disable clock only when it failed to be configured.
>
> Signed-off-by: Michał Zegan <webczat@webczatnet.pl>

I believe this one is not needed any more after Heiner's cleanups?

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michał Zegan Feb. 17, 2017, 7:49 p.m. UTC | #2
W dniu 17.02.2017 o 20:44, Kevin Hilman pisze:
> Michał Zegan <webczat@webczatnet.pl> writes:
>
>> At the end of function meson_mmc_clk_init, the cfg_div clock was
>> prepared, enabled and configured, but then immediately disabled due to bogus if statements.
>> That made later calls to clk_disable_unprepare executed during module removal to fail with a kernel warning.
>> Fix that by changing the code to disable clock only when it failed to be configured.
>>
>> Signed-off-by: Michał Zegan <webczat@webczatnet.pl>
> I believe this one is not needed any more after Heiner's cleanups?
I think it is not needed, yes.
>
> Kevin

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
index 09739352834c..d444b6bfa02b 100644
--- a/drivers/mmc/host/meson-gx-mmc.c
+++ b/drivers/mmc/host/meson-gx-mmc.c
@@ -324,11 +324,12 @@  static int meson_mmc_clk_init(struct meson_host *host)
 	writel(cfg, host->regs + SD_EMMC_CFG);
 
 	ret = clk_prepare_enable(host->cfg_div_clk);
-	if (!ret)
+	if (!ret) {
 		ret = meson_mmc_clk_set(host, f_min);
 
-	if (!ret)
-		clk_disable_unprepare(host->cfg_div_clk);
+		if (ret)
+			clk_disable_unprepare(host->cfg_div_clk);
+	}
 
 	return ret;
 }