aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/mmp_tdma.c
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2020-04-19 18:49:11 +0200
committerVinod Koul <vkoul@kernel.org>2020-04-23 12:45:44 +0530
commitbaed6b34ceea87bc6e88efd84a92c44559f2dc6c (patch)
treef455a8afd3971348c7c371d954e972a96297d22a /drivers/dma/mmp_tdma.c
parentdmaengine: mmp_tdma: Log an error if channel is in wrong state (diff)
downloadlinux-dev-baed6b34ceea87bc6e88efd84a92c44559f2dc6c.tar.xz
linux-dev-baed6b34ceea87bc6e88efd84a92c44559f2dc6c.zip
dmaengine: mmp_tdma: Fill in slave capabilities
This makes dma_get_slave_caps() work with the device so that it could actually be used with soc-generic-dmaengine-pcm. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Link: https://lore.kernel.org/r/20200419164912.670973-7-lkundrak@v3.sk Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma/mmp_tdma.c')
-rw-r--r--drivers/dma/mmp_tdma.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/dma/mmp_tdma.c b/drivers/dma/mmp_tdma.c
index 1597f6ebf335..2e318558c644 100644
--- a/drivers/dma/mmp_tdma.c
+++ b/drivers/dma/mmp_tdma.c
@@ -703,6 +703,17 @@ static int mmp_tdma_probe(struct platform_device *pdev)
tdev->device.device_terminate_all = mmp_tdma_terminate_all;
tdev->device.copy_align = DMAENGINE_ALIGN_8_BYTES;
+ tdev->device.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
+ if (type == MMP_AUD_TDMA) {
+ tdev->device.max_burst = SZ_128;
+ tdev->device.src_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
+ tdev->device.dst_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
+ } else if (type == PXA910_SQU) {
+ tdev->device.max_burst = SZ_32;
+ }
+ tdev->device.residue_granularity = DMA_RESIDUE_GRANULARITY_BURST;
+ tdev->device.descriptor_reuse = true;
+
dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
platform_set_drvdata(pdev, tdev);