RE: [RFC] dmaengine: xilinx_dma: device-wide directions cause ASoC cyclic DMA regression

From: Pandey, Radhey Shyam

Date: Tue Feb 10 2026 - 09:04:31 EST


[AMD Official Use Only - AMD Internal Distribution Only]

>Hello all,
>We have observed a regression on a ZynqMP platform using AXI DMA for ASoC PCM playback with Linux 6.12.y.
>We would like to discuss a regression in ASoC audio on ZynqMP platforms caused by upstream commit 7e01511443c3 (dmaengine: xilinx_dma: Set dma_device directions).

Please use plain text. I am not clear on your problem . So do some
initial triage. May be print the common.directions in
working /non-working case.

Based on documentation - directions: should contain a bitmask of the
supported slave directions (i.e. excluding mem2mem transfers).

FYI - below drivers set directions field. I believe fsldma set
proper direction field. Does aligning to it fixes your regression?

grep -r "common.directions" drivers/dma/
drivers/dma/fsldma.c: fdev->common.directions =
BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
drivers/dma/qcom/bam_dma.c: bdev->common.directions =
BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
drivers/dma/qcom/qcom_adm.c: adev->common.directions =
BIT(DMA_DEV_TO_MEM | DMA_MEM_TO_DEV);
drivers/dma/xilinx/xilinx_dma.c:
xdev->common.directions |= chan->direction;

Thanks,
Radhey