From f35a8110657a1c693c395e6da6609d66c4ea52c9 Mon Sep 17 00:00:00 2001 From: Shengjiu Wang Date: Fri, 31 Oct 2014 13:51:20 +0800 Subject: MLK-9731 ASoC: imx-hdmi-dma: audio output is noisy in long time playback In the frame_to_bytes(), when hw_ptr*frame_bits exceed the maxmum of unsigned long, the return value is saturated, so the appl_bytes is wrong. This patch is to correct the usage of frame_to_bytes(). Signed-off-by: Shengjiu Wang (cherry picked from commit 9e66132d9c96305b65aa5fa3ba8a35271a04ded9) --- sound/soc/fsl/imx-hdmi-dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sound/soc') diff --git a/sound/soc/fsl/imx-hdmi-dma.c b/sound/soc/fsl/imx-hdmi-dma.c index 8eeb009479f1..0df685159e9c 100644 --- a/sound/soc/fsl/imx-hdmi-dma.c +++ b/sound/soc/fsl/imx-hdmi-dma.c @@ -455,7 +455,7 @@ static void hdmi_dma_data_copy(struct snd_pcm_substream *substream, if (runtime->access != SNDRV_PCM_ACCESS_MMAP_INTERLEAVED) return; - appl_bytes = frames_to_bytes(runtime, runtime->status->hw_ptr); + appl_bytes = runtime->status->hw_ptr * (runtime->frame_bits / 8); if (type == 'p') appl_bytes += 2 * priv->period_bytes; offset = appl_bytes % priv->buffer_bytes; -- cgit v1.2.3