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 <vi...@ti.com>
---
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to