Use comp_sample_bytes() to set DMA transfer size in DAI component and comment why host always copies using word size transfers. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> --- src/audio/dai.c | 8 ++++---- src/audio/host.c | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/audio/dai.c b/src/audio/dai.c index 13f7e10..cc61e83 100644 --- a/src/audio/dai.c +++ b/src/audio/dai.c @@ -264,8 +264,8 @@ static int dai_playback_params(struct comp_dev *dev) /* set up DMA configuration */ config->direction = DMA_DIR_MEM_TO_DEV; - config->src_width = sizeof(uint32_t); - config->dest_width = sizeof(uint32_t); + config->src_width = comp_sample_bytes(dev); + config->dest_width = comp_sample_bytes(dev); config->cyclic = 1; config->dest_dev = dd->dai->plat_data.fifo[0].handshake; @@ -331,8 +331,8 @@ static int dai_capture_params(struct comp_dev *dev) /* set up DMA configuration */ config->direction = DMA_DIR_DEV_TO_MEM; - config->src_width = sizeof(uint32_t); - config->dest_width = sizeof(uint32_t); + config->src_width = comp_sample_bytes(dev); + config->dest_width = comp_sample_bytes(dev); config->cyclic = 1; config->src_dev = dd->dai->plat_data.fifo[1].handshake; diff --git a/src/audio/host.c b/src/audio/host.c index 88d45e4..b731dd6 100644 --- a/src/audio/host.c +++ b/src/audio/host.c @@ -441,7 +441,8 @@ static int host_params(struct comp_dev *dev) if (err < 0) return err; - /* set up DMA configuration */ + /* set up DMA configuration - copy in words for all formats as + this is most optimal for memory <-> memory copies. */ config->src_width = sizeof(uint32_t); config->dest_width = sizeof(uint32_t); config->cyclic = 0; -- 2.11.0