OpenCloudOS-Kernel/drivers/dma/xilinx
Radhey Shyam Pandey 14ccf0aab4 dmaengine: xilinx_dma: In dma channel probe fix node order dependency
In overlay application we noticed that dma channel node probe order is
inverted i.e s2mm channel is probed first followed by mm2s channel. The
reason for this inversion is fdtoverlay utility which uses a function
called fdt_add_subnode(*). It stores the subnodes after the properties,
this has the effect of inserting the new subnode before any others and
the end result is a reversal.

Because of this inverted channel probe order, the node probed first is
assigned a '0' index instead of Channel ID should be '0' for tx and '1'
for rx and dmatest client using the DT convention fails in dma transfer
as channel are swapped.

To fix above behavior and make channel assignment index independent
of probe order, always assign mm2s channel at '0' index and the s2mm
channel at IP specific fixed offset derived from the max_channels
count.

Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Link: https://lore.kernel.org/r/1580388865-9960-3-git-send-email-radhey.shyam.pandey@xilinx.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-02-25 11:17:54 +05:30
..
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
xilinx_dma.c dmaengine: xilinx_dma: In dma channel probe fix node order dependency 2020-02-25 11:17:54 +05:30
zynqmp_dma.c dmaengine: zynqmp_dma: fix burst length configuration 2020-01-21 14:49:30 +05:30