[RFC PATCH] dmaengine: xilinx_dma: Fix per-channel direction reporting via device_caps

Rahul Navale rahulnavale04 at gmail.com
Wed Feb 25 23:35:10 PST 2026


From: Rahul Navale <rahul.navale at ifm.com>

>in the RFC patch, rebuild and exercise your use case. Then please do
>dmesg|grep xilinx_dma_device_caps

Hi Folker,

Thanks for the suggestion.
I applied your RFC patch and added printk() in xilinx_dma_device_caps()
around the assignment of caps->directions.

After rebuilding and booting, I exercised the audio playback use case
and collected the requested logs. The callback is reached and prints
appear both during early boot and during playback. Issue still persists.
cyclic playback fails after the first buffer period.

Output of `dmesg | grep xilinx_dma_device_caps`:
root at pdm3:~# aplay closetoyou.wav
Playing WAVE 'closetoyou.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
^CAborted by signal Interrupt...
aplay: pcm_write:2178: write error: Interrupted system call
root at pdm3:~# aplay closetoyou.wav root at pdm3:~# dmesg | grep xilinx_dma_device_caps
[    0.318827] xilinx_dma_device_caps: caps->directions = 0x00000001
[    0.318832] xilinx_dma_device_caps: caps->directions = 0x00000001
[    0.319170] xilinx_dma_device_caps: caps->directions = 0x00000002
[    0.319175] xilinx_dma_device_caps: caps->directions = 0x00000002
[    6.375745] xilinx_dma_device_caps: caps->directions = 0x00000001
[    6.375762] xilinx_dma_device_caps: caps->directions = 0x00000001
[  133.401497] xilinx_dma_device_caps: caps->directions = 0x00000001
[  133.401513] xilinx_dma_device_caps: caps->directions = 0x00000001
root at pdm3:~#
root at pdm3:~# aplay closetoyou.wav
Playing WAVE 'closetoyou.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo

aplay: pcm_write:2178: write error: Interrupted system call
root at pdm3:~# aplay closetoyou.wav root at pdm3:~# dmesg | grep xilinx_dma_device_caps
[    0.318827] xilinx_dma_device_caps: caps->directions = 0x00000001
[    0.318832] xilinx_dma_device_caps: caps->directions = 0x00000001
[    0.319170] xilinx_dma_device_caps: caps->directions = 0x00000002
[    0.319175] xilinx_dma_device_caps: caps->directions = 0x00000002
[    6.375745] xilinx_dma_device_caps: caps->directions = 0x00000001
[    6.375762] xilinx_dma_device_caps: caps->directions = 0x00000001
[  133.401497] xilinx_dma_device_caps: caps->directions = 0x00000001
[  133.401513] xilinx_dma_device_caps: caps->directions = 0x00000001
[  167.802636] xilinx_dma_device_caps: caps->directions = 0x00000001
[  167.802651] xilinx_dma_device_caps: caps->directions = 0x00000001




More information about the linux-arm-kernel mailing list