Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mmc: f-sdh30: fix order of function calls in sdhci_f_sdh30_remove

The order of function calls in sdhci_f_sdh30_remove is wrong,
let's call sdhci_pltfm_unregister first.

Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Fixes: 5def5c1c15bf ("mmc: sdhci-f-sdh30: Replace with sdhci_pltfm")
Signed-off-by: Yangtao Li <frank.li@vivo.com>
Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20230727070051.17778-62-frank.li@vivo.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

authored by

Yangtao Li and committed by
Ulf Hansson
58abdd80 cf3f15b8

+7 -4
+7 -4
drivers/mmc/host/sdhci_f_sdh30.c
··· 210 210 { 211 211 struct sdhci_host *host = platform_get_drvdata(pdev); 212 212 struct f_sdhost_priv *priv = sdhci_f_sdhost_priv(host); 213 - 214 - reset_control_assert(priv->rst); 215 - clk_disable_unprepare(priv->clk); 216 - clk_disable_unprepare(priv->clk_iface); 213 + struct clk *clk_iface = priv->clk_iface; 214 + struct reset_control *rst = priv->rst; 215 + struct clk *clk = priv->clk; 217 216 218 217 sdhci_pltfm_unregister(pdev); 218 + 219 + reset_control_assert(rst); 220 + clk_disable_unprepare(clk); 221 + clk_disable_unprepare(clk_iface); 219 222 220 223 return 0; 221 224 }