From c731ea37eeb2390ebf91d5185ffb8860c86ffc34 Mon Sep 17 00:00:00 2001 From: Bing Song Date: Wed, 12 Aug 2020 10:22:04 +0800 Subject: MLK-24501-5 dsp: add lpa pcm support. Use reserved memory as PCM mode need more memory. Use ping-pong buffer for PCM LPA playback to avoid underrun. Signed-off-by: Bing Song Reviewed-by: Shengjiu Wang --- sound/soc/fsl/fsl_dsp_proxy.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'sound/soc/fsl/fsl_dsp_proxy.c') diff --git a/sound/soc/fsl/fsl_dsp_proxy.c b/sound/soc/fsl/fsl_dsp_proxy.c index 84271e0a17a5..73e6e4cb6147 100644 --- a/sound/soc/fsl/fsl_dsp_proxy.c +++ b/sound/soc/fsl/fsl_dsp_proxy.c @@ -288,6 +288,9 @@ u32 xf_proxy_b2a(struct xf_proxy *proxy, void *b) else if ((u32)(b - dsp_priv->scratch_buf_virt) < dsp_priv->scratch_buf_size) return (u32)(b - dsp_priv->scratch_buf_virt); + else if (dsp_priv->dsp_is_lpa && ((u32)(b - dsp_priv->dram_reserved_vir_addr) < + dsp_priv->dram_reserved_size)) + return (u32)(b - dsp_priv->dram_reserved_vir_addr + dsp_priv->scratch_buf_size); else return XF_PROXY_BADADDR; } @@ -300,6 +303,8 @@ void *xf_proxy_a2b(struct xf_proxy *proxy, u32 address) if (address < dsp_priv->scratch_buf_size) return dsp_priv->scratch_buf_virt + address; + else if (dsp_priv->dsp_is_lpa && (address < dsp_priv->scratch_buf_size + dsp_priv->dram_reserved_size)) + return dsp_priv->dram_reserved_vir_addr + address - dsp_priv->scratch_buf_size; else if (address == XF_PROXY_NULL) return NULL; else -- cgit v1.2.3