Skip to content

Commit 4051187

Browse files
committed
audio: use BUFFER_USAGE_SHARED for all DMA buffers
Buffers allocated for DMA are shared buffers as they are accessed both by the DMA hardware as well as DSP core. Mark these buffers as shared in the SOF buffer usage flags, allowing to use common infra to ensure cache coherency. Chain DMA buffers are in theory only used by the DMA, but as the DSP code does initial zeroing of the buffer, it is still a shared buffer. Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
1 parent 589e05d commit 4051187

5 files changed

Lines changed: 5 additions & 5 deletions

File tree

src/audio/chain_dma.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ __cold static int chain_task_init(struct comp_dev *dev, uint8_t host_dma_id, uin
592592
fifo_size = ALIGN_UP_INTERNAL(fifo_size, addr_align);
593593
/* allocate not shared buffer */
594594
cd->dma_buffer = buffer_alloc(fifo_size, SOF_MEM_FLAG_USER | SOF_MEM_FLAG_DMA,
595-
addr_align, BUFFER_USAGE_NOT_SHARED);
595+
addr_align, BUFFER_USAGE_SHARED);
596596

597597
if (!cd->dma_buffer) {
598598
comp_err(dev, "failed to alloc dma buffer");

src/audio/dai-legacy.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ int dai_common_params(struct dai_data *dd, struct comp_dev *dev,
562562
}
563563
} else {
564564
dd->dma_buffer = buffer_alloc(buffer_size, SOF_MEM_FLAG_USER | SOF_MEM_FLAG_DMA,
565-
addr_align, BUFFER_USAGE_NOT_SHARED);
565+
addr_align, BUFFER_USAGE_SHARED);
566566
if (!dd->dma_buffer) {
567567
comp_err(dev, "failed to alloc dma buffer");
568568
return -ENOMEM;

src/audio/dai-zephyr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1021,7 +1021,7 @@ static int dai_set_dma_buffer(struct dai_data *dd, struct comp_dev *dev,
10211021
} else {
10221022
dd->dma_buffer = buffer_alloc_range(buffer_size_preferred, buffer_size,
10231023
SOF_MEM_FLAG_USER | SOF_MEM_FLAG_DMA,
1024-
addr_align, BUFFER_USAGE_NOT_SHARED);
1024+
addr_align, BUFFER_USAGE_SHARED);
10251025
if (!dd->dma_buffer) {
10261026
comp_err(dev, "failed to alloc dma buffer");
10271027
return -ENOMEM;

src/audio/host-legacy.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -760,7 +760,7 @@ int host_common_params(struct host_data *hd, struct comp_dev *dev,
760760
}
761761
} else {
762762
hd->dma_buffer = buffer_alloc(buffer_size, SOF_MEM_FLAG_USER | SOF_MEM_FLAG_DMA,
763-
addr_align, BUFFER_USAGE_NOT_SHARED);
763+
addr_align, BUFFER_USAGE_SHARED);
764764
if (!hd->dma_buffer) {
765765
comp_err(dev, "failed to alloc dma buffer");
766766
err = -ENOMEM;

src/audio/host-zephyr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -922,7 +922,7 @@ int host_common_params(struct host_data *hd, struct comp_dev *dev,
922922
/* allocate not shared buffer */
923923
hd->dma_buffer = buffer_alloc_range(buffer_size_preferred, buffer_size,
924924
SOF_MEM_FLAG_USER | SOF_MEM_FLAG_DMA,
925-
addr_align, BUFFER_USAGE_NOT_SHARED);
925+
addr_align, BUFFER_USAGE_SHARED);
926926
if (!hd->dma_buffer) {
927927
comp_err(dev, "failed to alloc dma buffer");
928928
return -ENOMEM;

0 commit comments

Comments
 (0)