• Lars-Peter Clausen's avatar
    ASoC: dmaengine-pcm: Add support for querying stream position from DMA driver · 3528f27a
    Lars-Peter Clausen authored
    Currently the sound dmaengine pcm helper functions implement the pcm_pointer
    callback by trying to count the number of elapsed periods. This is done by
    advancing the stream position in the dmaengine callback by one period.
    Unfortunately there is no guarantee that the callback will be called for each
    elapsed period. It may be possible that under high system load it is only called
    once for multiple elapsed periods. This patch addresses the issue by
    implementing support for querying the current stream position directly from the
    dmaengine driver. Since not all dmaengine drivers support reporting the stream
    position yet the old period counting implementation is kept for now.
    
    Furthermore the new mechanism allows to report the stream position with a
    sub-period granularity, given that the dmaengine driver supports this.
    Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
    Acked-by: default avatarVinod Koul <vinod.koul@intel.com>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    3528f27a
soc-dmaengine-pcm.c 8.75 KB