• Alexander Sverdlin's avatar
    dmaengine: ep93xx: Treat STALL and NFB IRQs same way · 94901e1b
    Alexander Sverdlin authored
    Debugging ALSA hangups it was found that EP9302 (latest E2 rev.) DMA controller
    sometimes asserts STALL interrupt instead of NFB interrupt. Simply ignoring the
    difference and simply acting upon the amount of data we still have to transfer
    seems to work fine. This somehow sounds similar to M2M issue which is already
    dealt with in the driver, when the controller asserts DONE interrupt too early.
    
    The issue is not documented in Cirrus Logic erratas for EP93XX, but original
    Cirrus DMA driver from 2003 (not based on DMA API) did the similar handling
    of STALL interrupt. In-tree driver (6d831c65) did it also, before conversion to
    DMA engine API.
    Signed-off-by: default avatarAlexander Sverdlin <alexander.sverdlin@gmail.com>
    Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
    94901e1b
ep93xx_dma.c 37.3 KB