We have an iMX28-based custom platform running Freescale Linux 2.6.35 kernel. The board includes a TI WL1831 WiFi module using SD interface to the processor. We are using the WL18xx driver R8.4. We are seeing a basic SD/MMC issue when the wifi modules are loaded. The driver hangs and the problem occurs in the kernel mxs-mmc driver when sending a command. The driver starts the transaction and polls a number of BUSY bits waiting for the transaction to complete. The BUSY bits never get cleared and so the driver hangs. It looks like the command and response are OK on the wire.
This happens every time but not always in the same place. A delay before each SD read and write causes the problem to go away so it looks like there is some kind of timing issue here. I've tried this at a number of different SD clock rates 400K, 25MHz. and 50Mhz. , which are supported by the WiFi module, but the problem remains the same.
I've looked around but have not seen any obvious issues relating to the iMX28 SD controller or the WiFi module.
Has anyone seen this kind of issue before or know of something that could be causing it?