mmc: sdhci-xenon: Fix the work flow in xenon_remove().
authorHu Ziji <huziji@marvell.com>
Fri, 28 Apr 2017 02:34:59 +0000 (10:34 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Fri, 28 Apr 2017 10:33:05 +0000 (12:33 +0200)
sdhci_remove_host() might execute SOFT_RESET_ALL.  Inside xenon_remove(),
Xenon SDHC should be enabled during sdhci_remove_host().

Move xenon_sdhc_unprepare after sdhci_remove_host() such that Xenon SDHC is
disabled after sdhci_remove_host() completes.

Signed-off-by: Hu Ziji <huziji@marvell.com>
Reported-by: Jisheng Zhang <jszhang@marvell.com>
Tested-by: Jisheng Zhang <jszhang@marvell.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-xenon.c

index 8e56b9ccfb399325852c890ced5c517840fb24c2..67246655315b02b005b00153abfaa60c67fca7a5 100644 (file)
@@ -512,10 +512,10 @@ static int xenon_remove(struct platform_device *pdev)
 
        xenon_clean_phy(host);
 
-       xenon_sdhc_unprepare(host);
-
        sdhci_remove_host(host, 0);
 
+       xenon_sdhc_unprepare(host);
+
        clk_disable_unprepare(pltfm_host->clk);
 
        sdhci_pltfm_free(pdev);