ramips: fix cd-poll sd card remove randomly
authorQin Wie <me@vonger.cn>
Tue, 1 Aug 2017 06:26:49 +0000 (14:26 +0800)
committerJohn Crispin <john@phrozen.org>
Fri, 4 Aug 2017 21:13:18 +0000 (23:13 +0200)
Fix when add 'mediatek,cd-poll' to dts cause the sd card be removed randomly.
Special for the device without card-detect pin.

Signed-off-by: Qin Wie <me@vonger.cn>
target/linux/ramips/patches-4.9/0046-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch

index 29ec3b7e1e1db41f3719c7687516cc07e3638092..dc55967b640e305fe34f1080834c22d08732c608 100644 (file)
@@ -2345,6 +2345,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 +      else
 +              inserted = (status & MSDC_PS_CDSTS) ? 1 : 0;
 +    }
++    if (host->mmc->caps & MMC_CAP_NEEDS_POLL)
++        inserted = 1;
 +
 +#if 0
 +    change = host->card_inserted ^ inserted;
@@ -4092,6 +4094,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 +              present = (sdr_read32(MSDC_PS) & MSDC_PS_CDSTS) ? 0 : 1; 
 +        else
 +              present = (sdr_read32(MSDC_PS) & MSDC_PS_CDSTS) ? 1 : 0; 
++   if (host->mmc->caps & MMC_CAP_NEEDS_POLL)
++       present = 1;
 +        host->card_inserted = present;  
 +#endif        
 +        spin_unlock_irqrestore(&host->lock, flags);