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;