Thread (14 messages) 14 messages, 3 authors, 2018-01-03

[LINUX PATCH 1/4] dmaengine: xilinx_dma: Fix dma_get_slave_caps() API failures

From: Appana Durga Kedareswara Rao <hidden>
Date: 2018-01-03 05:09:18
Also in: dmaengine, lkml

Hi Vinod,

	Thanks for the review... 
On Thu, Dec 21, 2017 at 03:41:35PM +0530, Kedareswara rao Appana wrote:

Patch title should say what is does, not the cause/effect
Sure will fix in v2... 
An apt title might be "populate dma caps properly"
quoted
When client driver uses dma_get_slave_caps() api, it checks for
certain fields of dma_device struct currently driver is not settings
few fields resulting
dma_get_slave_caps() returning failure.
It would help to mention the fields you are setting here
Sure will fix in v2... 

Regards,
Kedar.
quoted
This patch fixes this issue by populating proper values to the struct
dma_device fields.

Signed-off-by: Kedareswara rao Appana <redacted>
---
 drivers/dma/xilinx/xilinx_dma.c | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/drivers/dma/xilinx/xilinx_dma.c
b/drivers/dma/xilinx/xilinx_dma.c index 88d317d..21ac954 100644
--- a/drivers/dma/xilinx/xilinx_dma.c
+++ b/drivers/dma/xilinx/xilinx_dma.c
@@ -2398,6 +2398,7 @@ static int xilinx_dma_chan_probe(struct
xilinx_dma_device *xdev,
quoted
 		chan->direction = DMA_MEM_TO_DEV;
 		chan->id = chan_id;
 		chan->tdest = chan_id;
+		xdev->common.directions = BIT(DMA_MEM_TO_DEV);

 		chan->ctrl_offset = XILINX_DMA_MM2S_CTRL_OFFSET;
 		if (xdev->dma_config->dmatype == XDMA_TYPE_VDMA) { @@ -
2415,6
quoted
+2416,7 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
 		chan->direction = DMA_DEV_TO_MEM;
 		chan->id = chan_id;
 		chan->tdest = chan_id - xdev->nr_channels;
+		xdev->common.directions |= BIT(DMA_DEV_TO_MEM);

 		chan->ctrl_offset = XILINX_DMA_S2MM_CTRL_OFFSET;
 		if (xdev->dma_config->dmatype == XDMA_TYPE_VDMA) { @@ -
2629,6
quoted
+2631,8 @@ static int xilinx_dma_probe(struct platform_device *pdev)
 		dma_cap_set(DMA_PRIVATE, xdev->common.cap_mask);
 	}

+	xdev->common.dst_addr_widths = BIT(addr_width / 8);
+	xdev->common.src_addr_widths = BIT(addr_width / 8);
 	xdev->common.device_alloc_chan_resources =
 				xilinx_dma_alloc_chan_resources;
 	xdev->common.device_free_chan_resources =
--
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe dmaengine"
in the body of a message to majordomo at vger.kernel.org More majordomo
info at  http://vger.kernel.org/majordomo-info.html
--
~Vinod
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help