Re: [RFC PATCH] dmaengine: xilinx_dma: Fix per-channel direction reporting via device_caps
From: Rahul Navale
Date: Mon Mar 09 2026 - 03:28:43 EST
From: Rahul Navale <rahul.navale@xxxxxxx>
>Please undo the latest Xilinx DMA patch I sent.
>To get some more data, could you apply the following patch (keep RFC
>patch and debug stuff) and rerun with 7e01511443c3 a) applied and b)
>reverted and post logs for both cases:
I have applied provided patch (with kept RFC patch and debug stuff) and with
7e01511443c3 applied. logs:
root@pdm3:~# dmesg | grep xilinx_dma_device_caps
[ 0.285057] xilinx_dma_device_caps: caps->directions = 0x00000001
[ 0.285060] xilinx_dma_device_caps: caps->directions = 0x00000001
[ 0.285759] xilinx_dma_device_caps: caps->directions = 0x00000002
[ 0.285763] xilinx_dma_device_caps: caps->directions = 0x00000002
[ 7.535143] xilinx_dma_device_caps: caps->directions = 0x00000001
[ 7.535147] xilinx_dma_device_caps: caps->directions = 0x00000001
root@pdm3:~# dmesg | grep ptr_res
root@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@pdm3:~#
root@pdm3:~# dmesg | grep ptr_res
[ 198.997591] ptr_res: ptr = 0x00000000
[ 199.002885] ptr_res: ptr = 0x00000000
[ 199.002900] ptr_res: ptr = 0x00000000
[ 199.002925] ptr_res: ptr = 0x00000000
[ 199.002946] ptr_res: ptr = 0x00000000
[ 199.117775] ptr_res: ptr = 0x00000000
[ 199.117818] ptr_res: ptr = 0x00000000
[ 199.117839] ptr_res: ptr = 0x00000000
[ 199.242766] ptr_res: ptr = 0x00000000
[ 199.242800] ptr_res: ptr = 0x00000000
[ 199.242820] ptr_res: ptr = 0x00000000
Also I have applied provided patch (with kept RFC patch and debug stuff) and with
7e01511443c3 reverted. logs:
root@pdm3:~# dmesg | grep xilinx_dma_device_caps
root@pdm3:~# dmesg | grep ptr_res
root@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@pdm3:~#
root@pdm3:~# dmesg | grep ptr_res
[ 60.480754] ptr_res_no: ptr = 0x00000000
[ 60.486058] ptr_res_no: ptr = 0x00000000
[ 60.486070] ptr_res_no: ptr = 0x00000000
[ 60.486094] ptr_res_no: ptr = 0x00000000
[ 60.486113] ptr_res_no: ptr = 0x00000000
[ 60.600877] ptr_res_no: ptr = 0x00001770
[ 60.600920] ptr_res_no: ptr = 0x00001770
[ 60.600939] ptr_res_no: ptr = 0x00001770
[ 60.600948] ptr_res_no: ptr = 0x00001770
[ 60.600968] ptr_res_no: ptr = 0x00001770
[ 60.602739] ptr_res_no: ptr = 0x00001770
[ 60.602750] ptr_res_no: ptr = 0x00001770
[ 60.725869] ptr_res_no: ptr = 0x00002ee0
[ 60.725904] ptr_res_no: ptr = 0x00002ee0
[ 60.725921] ptr_res_no: ptr = 0x00002ee0
[ 60.725931] ptr_res_no: ptr = 0x00002ee0
[ 60.725949] ptr_res_no: ptr = 0x00002ee0
[ 60.727667] ptr_res_no: ptr = 0x00002ee0
[ 60.727677] ptr_res_no: ptr = 0x00002ee0
[ 60.850877] ptr_res_no: ptr = 0x00000000
[ 60.850939] ptr_res_no: ptr = 0x00000000
[ 60.850960] ptr_res_no: ptr = 0x00000000
[ 60.850969] ptr_res_no: ptr = 0x00000000
[ 60.851000] ptr_res_no: ptr = 0x00000000
[ 60.852750] ptr_res_no: ptr = 0x00000000
[ 60.852760] ptr_res_no: ptr = 0x00000000
[ 60.975869] ptr_res_no: ptr = 0x00001770
[ 60.975905] ptr_res_no: ptr = 0x00001770
[ 60.975923] ptr_res_no: ptr = 0x00001770
...
...