Skip to contentSkip to conversation

i.MX28: Lower the amount of blocks transfered in one DMA cycle

PATCH New Marek Vasut 2 participants 3 messages Apr 9, 2012

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 i.MX28: Lower the amount of blocks transfered in one DMA cycle

Some MMC cards, like my ancient 32.0MB SanDisk RS-MMC cards had issue if b_max was set to 0x40 and DMA was enabled. Lower this value to 0x20, which allows these cards to work too.

Cc Stefano Babic <[email protected]>
Cc Wolfgang Denk <[email protected]>
Cc Detlev Zundel <[email protected]>
Cc Fabio Estevam <[email protected]>
---
 drivers/mmc/mxsmmc.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

NOTE: I need to do more tests on other obscure cards tomorrow.

drivers/mmc/mxsmmc.c +1 -1
index 35c6bda..6572e95 100644
@@ -406,7 +406,7 @@ int mxsmmc_initialize(bd_t *bis, int id, int (*wp)(int))
 	 */
 	mmc->f_min = 400000;
 	mmc->f_max = mxc_get_clock(MXC_SSP0_CLK + id) * 1000 / 2;
-	mmc->b_max = 0x40;
+	mmc->b_max = 0x20;
 
 	mmc_register(mmc);
 	return 0;
Signature · 1 line
1.7.9.1
reviewer
#1 lore raw

PATCH 1/1 i.MX28: Lower the amount of blocks transfered in one DMA cycle

Hi Marek,

Quoted 4 lines · Marek Vasut

Some MMC cards, like my ancient 32.0MB SanDisk RS-MMC cards had issue if b_max
was set to 0x40 and DMA was enabled. Lower this value to 0x20, which allows these cards to work too.

I know this is off topic here, but I am wondering whether the mxs mmc driver in the kernel is able to handle this card correctly or not.

Regards,

Fabio Estevam

#2 lore raw

PATCH 1/1 i.MX28: Lower the amount of blocks transfered in one DMA cycle

Dear Fabio Estevam,

Quoted 10 lines

Hi Marek,

Quoted 4 lines · Marek Vasut

Some MMC cards, like my ancient 32.0MB SanDisk RS-MMC cards had issue if b_max
was set to 0x40 and DMA was enabled. Lower this value to 0x20, which allows these cards to work too.

I know this is off topic here, but I am wondering whether the mxs mmc driver in the kernel is able to handle this card correctly or not.

Linux does, but I think there must be some limit to multiblock transfers there, otherwise it'd fail too.

Quoted 3 lines

Regards,

Fabio Estevam

Best regards,
Marek Vasut