• David Brownell's avatar
    MMC/SD dma fault handling fixes · 4f8ee6ae
    David Brownell authored
    Clean up MMC/SD fault handling for transfers with data stages:
    
     - After DMA errors, always issue any STOP needed; aborting DMA
       on the host is not sufficient to reset the card's state.
    
     - It does that already after data or command errors; but also:
         * Always reset the data and command state machines, instead
           of just the command machine (and just for data "CRC" errors)
         * Report how many blocks were transferred (resolving FIXMEs)
    
    There are probably still a few holes in fault handling, but these
    updates resolved some problems I was (briefly) able to reproduce
    by running a DM6446 quite a bit faster than it's supposed to be
    able to handle.
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
    4f8ee6ae
davinci_mmc.c 35.2 KB