dai-zephyr: Do not skip dma_reload() when sink if full

If sink is full and so no bytes were copied, reload DMA anyway as
otherwise xrun may happen if reload is skipped for a long time.

Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
This commit is contained in:
Serhiy Katsyuba 2023-09-19 11:56:00 +02:00 committed by Kai Vehmanen
parent 529277f3f2
commit 56a6d0d3e0
1 changed files with 9 additions and 0 deletions

View File

@ -1287,6 +1287,15 @@ int dai_zephyr_multi_endpoint_copy(struct dai_data **dd, struct comp_dev *dev,
/* return if nothing to copy */
if (!frames) {
comp_warn(dev, "dai_zephyr_multi_endpoint_copy(): nothing to copy");
for (i = 0; i < num_endpoints; i++) {
ret = dma_reload(dd[i]->chan->dma->z_dev, dd[i]->chan->index, 0, 0, 0);
if (ret < 0) {
dai_report_xrun(dd[i], dev, 0);
return ret;
}
}
return 0;
}