From 08725d4ae92fe18976efe209df5df66876b1f015 Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Thu, 21 Jun 2018 20:07:42 +0800 Subject: [PATCH] ASoC: rockchip: multi_dais_pcm: refine dma slave config This patch refine dma slave config only when interlace size is valid. Change-Id: If02cec29083d5f582ccd0efcd78e7a6547d2df66 Signed-off-by: Sugar Zhang --- sound/soc/rockchip/rockchip_multi_dais_pcm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sound/soc/rockchip/rockchip_multi_dais_pcm.c b/sound/soc/rockchip/rockchip_multi_dais_pcm.c index c2f8e45dc17b..c41e58234785 100644 --- a/sound/soc/rockchip/rockchip_multi_dais_pcm.c +++ b/sound/soc/rockchip/rockchip_multi_dais_pcm.c @@ -271,14 +271,16 @@ static int dmaengine_mpcm_hw_params(struct snd_pcm_substream *substream, if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { chan = pcm->tx_chans[i]; if (sz) { - slave_config.dst_maxburst = sz / slave_config.dst_addr_width; slave_config.src_interlace_size = frame_bytes - sz; + if (slave_config.src_interlace_size) + slave_config.dst_maxburst = sz / slave_config.dst_addr_width; } } else { chan = pcm->rx_chans[i]; if (sz) { - slave_config.src_maxburst = sz / slave_config.src_addr_width; slave_config.dst_interlace_size = frame_bytes - sz; + if (slave_config.dst_interlace_size) + slave_config.src_maxburst = sz / slave_config.src_addr_width; } } if (!chan)