firmware/br-ext-chip-hisilicon/board/hi3516cv100/kernel/patches/21_himci_unreset.patch

30 lines
860 B
Diff

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);