From 56d2082cec84e411066f283c26e9516fd222b4cf Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Tue, 4 Jun 2024 20:38:25 +0800 Subject: [PATCH] ASoC: rockchip: multi-dais: Workaround for interleaved for GKI Once upstream is merged, this patch can be dropped. also for line CONFIG_NO_GKI Signed-off-by: Sugar Zhang Change-Id: I83f5a08e93010741c26ec044f70b388a50e6c7a9 --- sound/soc/rockchip/rockchip_multi_dais_pcm.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sound/soc/rockchip/rockchip_multi_dais_pcm.c b/sound/soc/rockchip/rockchip_multi_dais_pcm.c index d0173bfd54aa..0feab27b477d 100644 --- a/sound/soc/rockchip/rockchip_multi_dais_pcm.c +++ b/sound/soc/rockchip/rockchip_multi_dais_pcm.c @@ -196,6 +196,8 @@ static int dmaengine_config_interleaved(struct snd_pcm_substream *substream, #ifdef CONFIG_NO_GKI xt->nump = nump; +#else + xt->sgl[1].size = nump; #endif xt->numf = numf; @@ -692,8 +694,14 @@ static int dmaengine_mpcm_open(struct snd_soc_component *component, if (!prtd) return -ENOMEM; +#ifdef CONFIG_NO_GKI prtd->xt = kzalloc(sizeof(struct dma_interleaved_template) + sizeof(struct data_chunk), GFP_KERNEL); +#else + prtd->xt = kzalloc(sizeof(struct dma_interleaved_template) + + sizeof(struct data_chunk) * 2, GFP_KERNEL); + +#endif if (!prtd->xt) { kfree(prtd); return -ENOMEM;