瀏覽代碼

mmc: mxcmmc: fix SD cards not being detected sometimes.

When a SD card is initialized some data transfers of 64 and 8 bytes
are issued. It seems the DMA has some problems dealing with these kind
of "short" transfers, leading sometimes to the SD card not being detected.

In order to solve this problem, do not use DMA for transfer sizes lower
than the sector size.

Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
Javier Martin 13 年之前
父節點
當前提交
2cb535529d
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/mmc/host/mxcmmc.c

+ 1 - 1
drivers/mmc/host/mxcmmc.c

@@ -240,7 +240,7 @@ static int mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data)
 		return 0;
 		return 0;
 
 
 	for_each_sg(data->sg, sg, data->sg_len, i) {
 	for_each_sg(data->sg, sg, data->sg_len, i) {
-		if (sg->offset & 3 || sg->length & 3) {
+		if (sg->offset & 3 || sg->length & 3 || sg->length < 512) {
 			host->do_dma = 0;
 			host->do_dma = 0;
 			return 0;
 			return 0;
 		}
 		}