diff options
author | Shengjiu Wang <shengjiu.wang@nxp.com> | 2018-09-04 15:39:23 +0800 |
---|---|---|
committer | Dong Aisheng <aisheng.dong@nxp.com> | 2019-11-25 15:48:34 +0800 |
commit | e0e7942c70746e9487cab9a751b825d0e7ddba30 (patch) | |
tree | dab3cae1bc93cad87325b6370177d9eaef65b3ec /sound/soc/fsl/fsl_asrc.c | |
parent | 9d607a7189bad77c8357a0646a353e5ee74d9d4c (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.c | 3 |
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 */ |