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@xxxxxxxxxxx> Reported-by: Jisheng Zhang <jszhang@xxxxxxxxxxx> Tested-by: Jisheng Zhang <jszhang@xxxxxxxxxxx> --- drivers/mmc/host/sdhci-xenon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/sdhci-xenon.c b/drivers/mmc/host/sdhci-xenon.c index 3b82a0b..786c3ed 100644 --- a/drivers/mmc/host/sdhci-xenon.c +++ b/drivers/mmc/host/sdhci-xenon.c @@ -514,10 +514,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); -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html