Turn off IO & PBIAS cells and then SD card VMMC as soon as we get disconnect interrupt. Failure to do so might cause current spikes (latch-up issue) which can potentially burn the IO cells. Signed-off-by: Viswanath Puttagunta <vishp@xxxxxx> --- drivers/mmc/host/omap_hsmmc.c | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 56d4499..61d830f 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -1177,10 +1177,17 @@ static irqreturn_t omap_hsmmc_detect(int irq, void *dev_id) carddetect = -ENOSYS; } - if (carddetect) + if (carddetect) { mmc_detect_change(host->mmc, (HZ * 200) / 1000); - else - mmc_detect_change(host->mmc, (HZ * 50) / 1000); + } else { + if ((MMC_POWER_OFF != host->power_mode) && + (mmc_slot(host).set_power != NULL)) { + mmc_slot(host).set_power(host->dev, host->slot_id, + 0, 0); + host->power_mode = MMC_POWER_OFF; + } + mmc_detect_change(host->mmc, 0); + } return IRQ_HANDLED; } -- 1.7.4.1 -- 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