I'm attempting to debug an issue with the omap_hsmmc driver on a custom DM8148 board. The majority of the SD cards I have function properly, but certain cards (which work fine on other Linux computers) trigger a variety of errors on our custom board.
Occasionally, after the start of a CMD18 block transfer, I receive the interrupt status 1 to indicate that the command has completed. Prior to receiving the status 2 to indicate that the data is complete, I receive a call to omap_hsmmc_do_irq with the status set to 0x80, indicating a card detect event. The card detect handler runs, and I never get the data completion interrupt from the original CMD18 transfer.
Additionally, I see BADA errors signaled on occasion from this card, which weren't previously handled by the driver.
Does anyone have any ideas what could be causing this behavior? I have had some limited success going through the reset procedure outlined in the SD spec and getting things going, but it appears some conditions I can't properly recover from.
Thanks,
Nick Reed