Hi,
I use AM3715 + TI-Android-ICS-4.0.3-DevKit-3.0.0 to run Android ICS.
I found some devices (rate is about 1%) have bit inversion issue during sdcard read/write operation with DMA.
And i found two ways to fix this issue:
1. Close DMA ,add PIO mode.
2. Reduce MMC host max block counts to 16 (If set 24, still error.)
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 11c4c67..5f7179a 100755
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -2212,7 +2212,8 @@ static int __init omap_hsmmc_probe(struct platform_device
mmc->max_segs = 1;
mmc->max_blk_size = 512; /* Block Length at max can be 1024 */
- mmc->max_blk_count = 0xFFFF; /* No. of Blocks is 16 bits */
+ mmc->max_blk_count = 0x10; /* No. of Blocks is 16 bits */
So i think the root cause is bit inverse when MMC0 DMA transfer large data in one time.
I can't figure out whether this is a software or a hardware issue.
Could somebody do me a favor? Thanks very much.
BRs