Drivers: DW: Set DMA lli_desc->sar and lli_desc->dar

This patch fixes DMIC capture for TGL platform in IPC3 mode. The
error seen in firmware trace is:

ERROR dmic_irq_handler(): full fifo A or PDM overrun
ERROR dw_dma_get_data_size(): xrun detected

The set of sar and dar is restored to driver. It was removed
with function dw_dma_mask_address() when removing support for
BDW and HSW platforms. The two first lines removed from the
function are needed for all platforms. The lines were added
to where the function was originally called.

Fixes commit d80635054f
("platform: remove support for Broadwell and Haswell")

Suggested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This commit is contained in:
Seppo Ingalsuo 2023-03-21 14:18:25 +02:00 committed by Kai Vehmanen
parent e5fe974880
commit aedb5f286f
1 changed files with 3 additions and 0 deletions

View File

@ -716,6 +716,9 @@ static int dw_dma_set_config(struct dma_chan_data *channel,
goto out;
}
lli_desc->sar = sg_elem->src;
lli_desc->dar = sg_elem->dest;
if (sg_elem->size > DW_CTLH_BLOCK_TS_MASK) {
tr_err(&dwdma_tr, "dw_dma_set_config(): dma %d channel %d block size too big %d",
channel->dma->plat_data.id,