summaryrefslogtreecommitdiff
path: root/sound/soc/fsl/fsl_asrc.c
diff options
context:
space:
mode:
authorShengjiu Wang <shengjiu.wang@nxp.com>2018-09-04 15:39:23 +0800
committerDong Aisheng <aisheng.dong@nxp.com>2019-11-25 15:48:34 +0800
commite0e7942c70746e9487cab9a751b825d0e7ddba30 (patch)
treedab3cae1bc93cad87325b6370177d9eaef65b3ec /sound/soc/fsl/fsl_asrc.c
parent9d607a7189bad77c8357a0646a353e5ee74d9d4c (diff)
MLK-18979-1: ASoC: fsl_asrc: add resume function for asrc_m2m
There will be "output DMA task timeout" after suspend and resume. The reason is there is not enough data in the input FIFO. In the fsl_asrc_start_pair function we initialize the FIFO with zero data after pair is enabled, it looks like we add more data to input FIFO. For example if the input buffer length is 100, but the actual length is 100 + channel*4. so we need to do same work in resume for the asrc pair is disabled in suspend, the input FIFO is cleared. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Diffstat (limited to 'sound/soc/fsl/fsl_asrc.c')
-rw-r--r--sound/soc/fsl/fsl_asrc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c
index ede17dddae6a..c1db84d6756a 100644
--- a/sound/soc/fsl/fsl_asrc.c
+++ b/sound/soc/fsl/fsl_asrc.c
@@ -1235,10 +1235,13 @@ static int fsl_asrc_suspend(struct device *dev)
static int fsl_asrc_resume(struct device *dev)
{
+ struct fsl_asrc *asrc_priv = dev_get_drvdata(dev);
int ret;
ret = pm_runtime_force_resume(dev);
+ fsl_asrc_m2m_resume(asrc_priv);
+
return ret;
}
#endif /* CONFIG_PM_SLEEP */