[openwrt/openwrt] ramips: fix sd polling

LEDE Commits lede-commits at lists.infradead.org
Fri Jun 26 18:19:31 EDT 2020


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/cd6515c2e87b85bb3796ba365db34b3c52a251d5

commit cd6515c2e87b85bb3796ba365db34b3c52a251d5
Author: Qin Wei <support at vocore.io>
AuthorDate: Sat May 16 15:51:36 2020 +0800

    ramips: fix sd polling
    
    This is fixed in 18.06, it appears again in 19.07.
    Currently mt7628 sdcard driver do not support polling mode which is for
    the device do not have card-detect pin to detect sd card insert. Without
    this patch, device will not detect sdcard is inserted. This patch is a
    fix of that.
    
    Signed-off-by: Qin Wei <support at vocore.io>
---
 target/linux/ramips/files/drivers/mmc/host/mtk-mmc/sd.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/target/linux/ramips/files/drivers/mmc/host/mtk-mmc/sd.c b/target/linux/ramips/files/drivers/mmc/host/mtk-mmc/sd.c
index 8cbc87da3a..188e015572 100644
--- a/target/linux/ramips/files/drivers/mmc/host/mtk-mmc/sd.c
+++ b/target/linux/ramips/files/drivers/mmc/host/mtk-mmc/sd.c
@@ -439,6 +439,8 @@ static void msdc_tasklet_card(struct work_struct *work)
 		inserted = (status & MSDC_PS_CDSTS) ? 0 : 1;
 	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;
@@ -1857,6 +1859,8 @@ static int msdc_ops_get_cd(struct mmc_host *mmc)
 			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);



More information about the lede-commits mailing list