diff options
author | Viswanath Puttagunta <vishp@ti.com> | 2011-10-19 15:33:54 -0500 |
---|---|---|
committer | Ziyann <jaraidaniel@gmail.com> | 2014-10-01 12:55:54 +0200 |
commit | 30d2d6f77f263407f44fb6c8d597f2dbf91bea6b (patch) | |
tree | 8ab603f970ce22f771a0df2ca3bbd3af4cc78f9d /drivers/mmc | |
parent | 79189a1f6611741ac02e1f97d00132b27ea55d29 (diff) | |
download | kernel_samsung_tuna-30d2d6f77f263407f44fb6c8d597f2dbf91bea6b.zip kernel_samsung_tuna-30d2d6f77f263407f44fb6c8d597f2dbf91bea6b.tar.gz kernel_samsung_tuna-30d2d6f77f263407f44fb6c8d597f2dbf91bea6b.tar.bz2 |
omap-hsmmc: Fix issue during SD card disconnect
Turning off IO & PBIAS cells and then SD card VMMC
as soon as we get disconnect interrupt. Failure to do
so is causing current spikes (latch-up issue)which
can potentially burn the I/O cells.
Enabled Debounce logic in TWL6030 so that erroneous
disconnect/connect interrupts will be suppressed.
This will also fix issue where SD card disconnect
event was not getting detected when SD card is very
slowly plugged out.
Change-Id: I13f55451718b8cce3448245395b8d1344d4a2790
Signed-off-by: Viswanath Puttagunta <vishp@ti.com>
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | 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 f6e47a0..b973676 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -1368,10 +1368,17 @@ static void omap_hsmmc_detect(struct work_struct *work) 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); + } } /* |