• Adrian Hunter's avatar
    omap_hsmmc: Fix response type for busy after response · 4a694dc9
    Adrian Hunter authored
    Some MMC commands result in the card becoming busy after
    the response is received.  This needs to be specified
    for the omap_hsmmc host controller, which is what this
    patch does.  However, the effect is that some commands
    with no data will cause a Transfer Complete (TC) interrupt
    in addition to the Command Complete (CC) interrupt.
    In order to deal with that, the irq handler has needed
    a few changes also.
    
    The benefit of this change is that the omap_hsmmc host
    controller driver now waits for the TC interrupt while
    the card is busy, so the mmc_block driver needs to poll
    the card status just once instead of repeatedly.
    i.e. the net result is more sleep and less cpu.
    
    The command sequence for open-ended multi-block write
    with DMA is now:
    
    	Issue write command CMD25
    	Receive CC interrupt
    	Data is sent
    	Receive TC interrupt (DMA is done)
    	Issue stop command CMD12
    	Receive CC interrupt
    	Card is busy
    	Receive TC interrupt
    	Card is now ready for next transfer
    Signed-off-by: default avatarAdrian Hunter <adrian.hunter@nokia.com>
    Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
    4a694dc9
omap_hsmmc.c 31.3 KB