diff --git a/drivers/mmc/host/himciv100/himci.c b/drivers/mmc/host/himciv100/himci.c index 64f9af3..dd49323 100644 --- a/drivers/mmc/host/himciv100/himci.c +++ b/drivers/mmc/host/himciv100/himci.c @@ -112,6 +112,17 @@ static void hi_mci_sys_reset(struct himci_host *host) local_irq_restore(flags); } +static void hi_mci_sys_undo_reset(struct himci_host *host) +{ + unsigned long flags; + + himci_trace(2, "undo reset"); + + local_irq_save(flags); + hi_mci_ctr_undo_reset(); + local_irq_restore(flags); +} + static void hi_mci_ctrl_power(struct himci_host *host, unsigned int flag) { himci_trace(2, "begin"); @@ -256,6 +267,8 @@ static void hi_mci_init_card(struct himci_host *host) hi_mci_ctrl_power(host, POWER_ON); udelay(200); + hi_mci_sys_undo_reset(host); + /* clear MMC host intr */ himci_writel(ALL_INT_CLR, host->base + MCI_RINTSTS);