From 0d6541041f93e1e1f254ebdd17ff951977d72293 Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Fri, 5 Aug 2022 17:42:12 +0800 Subject: [PATCH] ASoC: rockchip: dlp: Fix wrong HW delta assign Always update delta into ref, obviously, it's playback. Fixes: 9975bc50f325 ("ASoC: rockchip: Add support for Digital Loopback") Signed-off-by: Sugar Zhang Change-Id: Ie9507d87d56811cccd3ea884370e1e972aebf962 --- sound/soc/rockchip/rockchip_dlp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sound/soc/rockchip/rockchip_dlp.c b/sound/soc/rockchip/rockchip_dlp.c index 27a514785f77..56f38a71dc28 100644 --- a/sound/soc/rockchip/rockchip_dlp.c +++ b/sound/soc/rockchip/rockchip_dlp.c @@ -530,14 +530,14 @@ static int dmaengine_pcm_lp_setup(struct snd_soc_component *component, delta = is_playback ? (a - fifo_a) - (b + fifo_b) : (b - fifo_b) - (a + fifo_a); - prtd->hw_ptr_delta = delta; - /* push valid playback into ref list */ spin_lock(&dlp->lock); if (is_playback) { + prtd->hw_ptr_delta = delta; kref_get(&prtd->refcount); list_add_tail(&prtd->node, &dlp->ref_list); } else { + brtd->hw_ptr_delta = delta; kref_get(&brtd->refcount); list_add_tail(&brtd->node, &dlp->ref_list); }