summaryrefslogtreecommitdiff
path: root/sound/soc/fsl/fsl_esai_mix.c
AgeCommit message (Collapse)Author
2020-09-10MLK-24753-2: ASoC: fsl_esai_mix: get pointer from dma driver directlyShengjiu Wang
Previously update pointer in mix function according to dma callback, which is not accurate for the callback maybe triggerred very late, that cause the read pointer and write pointer point to same period, then there is noise in output. So get pointer directly from dma driver to avoid such issue. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Peng Zhang <peng.zhang_8@nxp.com>
2020-09-10MLK-24753-1: ASoC: fsl_esai_mix: Using workqueue for mix handlerShengjiu Wang
Previously doing mixing in softirq, the mixing causing too much time ( period size is 512 sample, the time is about 2.5ms), so move the mixing to workqueue to reduce irq loading Use 4 period instead of pingpong buffer for leverage instant loading. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Peng Zhang <peng.zhang_8@nxp.com>
2020-08-31MLK-24612-2: ASoC: fsl_esai: Add esai mix driverShengjiu Wang
ESAI mixer is for mixing the data from clients. There is a ping-pong buffer in the mixer for storing the mixed data. The period size is same as the period size in client (unit is sample number). Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Peng Zhang <peng.zhang_8@nxp.com>