Commit e131f1ba authored by Kedareswara rao Appana's avatar Kedareswara rao Appana Committed by Vinod Koul
Browse files

dmaengine: xilinx: Use different channel names for each dma



Current driver assumes that child node channel name is either
"xlnx,axi-vdma-mm2s-channel" or "xlnx,axi-vdma-s2mm-channel"
which is confusing the users of AXI DMA and CDMA.
This patch fixes this issue by using different channel
names for the AXI DMA and AXI CDMA child nodes.

Signed-off-by: default avatarKedareswara rao Appana <appanad@xilinx.com>
Acked-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent fde57a7c
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -50,8 +50,12 @@ Optional properties for VDMA:
	{3}, flush s2mm channel

Required child node properties:
- compatible: It should be either "xlnx,axi-vdma-mm2s-channel" or
- compatible:
	For VDMA: It should be either "xlnx,axi-vdma-mm2s-channel" or
	"xlnx,axi-vdma-s2mm-channel".
	For CDMA: It should be "xlnx,axi-cdma-channel".
	For AXIDMA: It should be either "xlnx,axi-dma-mm2s-channel" or
	"xlnx,axi-dma-s2mm-channel".
- interrupts: Should contain per channel VDMA interrupts.
- xlnx,datawidth: Should contain the stream data width, take values
	{32,64...1024}.
+6 −2
Original line number Diff line number Diff line
@@ -2353,7 +2353,9 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
	if (!has_dre)
		xdev->common.copy_align = fls(width - 1);

	if (of_device_is_compatible(node, "xlnx,axi-vdma-mm2s-channel")) {
	if (of_device_is_compatible(node, "xlnx,axi-vdma-mm2s-channel") ||
	    of_device_is_compatible(node, "xlnx,axi-dma-mm2s-channel") ||
	    of_device_is_compatible(node, "xlnx,axi-cdma-channel")) {
		chan->direction = DMA_MEM_TO_DEV;
		chan->id = chan_id;
		chan->tdest = chan_id;
@@ -2367,7 +2369,9 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
				chan->flush_on_fsync = true;
		}
	} else if (of_device_is_compatible(node,
					    "xlnx,axi-vdma-s2mm-channel")) {
					   "xlnx,axi-vdma-s2mm-channel") ||
		   of_device_is_compatible(node,
					   "xlnx,axi-dma-s2mm-channel")) {
		chan->direction = DMA_DEV_TO_MEM;
		chan->id = chan_id;
		chan->tdest = chan_id - xdev->nr_channels;