mxs-mmc PIO mode with odd data length

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

mxs-mmc PIO mode with odd data length

664 Views
YS
Contributor IV

Hi,

Freescale uploaded patches for iMX28 Linux BSP 2.6.35-3 (patches_for_L2.6.35_MX28_SDK_10.12_SOURCE.tar.gz). When I applied it, I found my SDIO WiFi driver (Atheros AR6003) does not work anymore.

I found the cause was newly introduced "fastpath" PIO/polling mode transfer in function mxs_mmc_adtc() at drivers/mmc/host/mxs-mmc.c. It is intended to reduce DMA overhead for small (< 1024byte) amount of data transfer, but implementation is assumed that data length is always multiply of 32bit. It will be true for SD memory card but not alyways true for SDIO. Atheros AR6003 driver issues write with len=3, which caused in-kernel infinity loop.

I added length check in mxs_mmc_adtc() and confirmed it is working with AR6003. I attached patch file.

Original Attachment has been moved to: 59-mxsmmc.patch

Labels (1)
0 Kudos
0 Replies