ASoC: rockchip: dlp: Fix wrong HW delta assign

Always update delta into ref, obviously, it's playback.

Fixes: 9975bc50f3 ("ASoC: rockchip: Add support for Digital Loopback")
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Change-Id: Ie9507d87d56811cccd3ea884370e1e972aebf962
This commit is contained in:
Sugar Zhang
2022-08-05 17:42:12 +08:00
committed by Tao Huang
parent 9f7d75a79c
commit 0d6541041f

View File

@@ -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);
}