• Qiao Zhou's avatar
    dma: mmp-tdma: refine dma disable and dma-pos update · 1eed601a
    Qiao Zhou authored
    Below are the refinements.
    1. Set DMA abort bit when disabling dma channel. This will clear
    the remaining data in dma FIFO, to fix channel-swap issue.
    2. Read DMA HW pointer when updating DMA status. Previously dma
    position is calculated by adding one period size in dma interrupt.
    This is inaccurate/insufficient for some high-quality audio APP.
    Since interrupt bottom half handler has variable schedule delay,
    it causes big error when calculating sample delay. Read the actual
    HW pointer and feedback can improve the accuracy.
    3. Do some minor code clean.
    Signed-off-by: default avatarQiao Zhou <zhouqiao@marvell.com>
    Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
    1eed601a
mmp_tdma.c 18 KB