aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorViswanath Puttagunta <vishp@ti.com>2011-10-19 15:33:54 -0500
committerZiyann <jaraidaniel@gmail.com>2014-10-01 12:55:54 +0200
commit30d2d6f77f263407f44fb6c8d597f2dbf91bea6b (patch)
tree8ab603f970ce22f771a0df2ca3bbd3af4cc78f9d /drivers/mmc
parent79189a1f6611741ac02e1f97d00132b27ea55d29 (diff)
downloadkernel_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.c13
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);
+ }
}
/*