summaryrefslogtreecommitdiffstats
path: root/drivers/dma/dma-jz4740.c
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2015-03-28 18:05:44 +0100
committerVinod Koul <vinod.koul@intel.com>2015-03-30 19:30:23 +0200
commitca76683930a1c6acb8dd22867eca2bedaab998e3 (patch)
tree704cc0b013748cfb710fbad5c79ada13d1e26116 /drivers/dma/dma-jz4740.c
parentLinux 4.0-rc5 (diff)
downloadlinux-ca76683930a1c6acb8dd22867eca2bedaab998e3.tar.xz
linux-ca76683930a1c6acb8dd22867eca2bedaab998e3.zip
dmaengine: jz4740: Define capabilities
Setup the capabilities of the device/driver, so that users of the DMAengine API can query them. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma/dma-jz4740.c')
-rw-r--r--drivers/dma/dma-jz4740.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/dma/dma-jz4740.c b/drivers/dma/dma-jz4740.c
index 4527a3ebeac4..84884418fd30 100644
--- a/drivers/dma/dma-jz4740.c
+++ b/drivers/dma/dma-jz4740.c
@@ -511,6 +511,9 @@ static void jz4740_dma_desc_free(struct virt_dma_desc *vdesc)
kfree(container_of(vdesc, struct jz4740_dma_desc, vdesc));
}
+#define JZ4740_DMA_BUSWIDTHS (BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) | \
+ BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) | BIT(DMA_SLAVE_BUSWIDTH_4_BYTES))
+
static int jz4740_dma_probe(struct platform_device *pdev)
{
struct jz4740_dmaengine_chan *chan;
@@ -548,6 +551,10 @@ static int jz4740_dma_probe(struct platform_device *pdev)
dd->device_prep_dma_cyclic = jz4740_dma_prep_dma_cyclic;
dd->device_config = jz4740_dma_slave_config;
dd->device_terminate_all = jz4740_dma_terminate_all;
+ dd->src_addr_widths = JZ4740_DMA_BUSWIDTHS;
+ dd->dst_addr_widths = JZ4740_DMA_BUSWIDTHS;
+ dd->directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
+ dd->residue_granularity = DMA_RESIDUE_GRANULARITY_BURST;
dd->dev = &pdev->dev;
INIT_LIST_HEAD(&dd->channels);