UPSTREAM: dmaengine: pl330: add max burst for dmaengine
authorShawn Lin <shawn.lin@rock-chips.com>
Fri, 22 Jan 2016 11:06:51 +0000 (19:06 +0800)
committerCaesar Wang <wxt@rock-chips.com>
Thu, 2 Jun 2016 06:42:14 +0000 (14:42 +0800)
This patch add max burst capability for dmaengine and
limit burst capability to one for PL330_QUIRK_BROKEN_NO_FLUSHP

Change-Id: I378325508af1246177e327c6572611545c52e04e
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 86a8ce7d4103f6680236af6916abf38e12477df8)

drivers/dma/pl330.c

index 88bacdeb5a66b49ce8cba511f7d1a0a8e413b747..372b4359da97d4d7753233884e65c40abc7261cb 100644 (file)
@@ -33,6 +33,7 @@
 #define PL330_MAX_CHAN         8
 #define PL330_MAX_IRQS         32
 #define PL330_MAX_PERI         32
+#define PL330_MAX_BURST         16
 
 #define PL330_QUIRK_BROKEN_NO_FLUSHP BIT(0)
 
@@ -2937,6 +2938,8 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
        pd->dst_addr_widths = PL330_DMA_BUSWIDTHS;
        pd->directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
        pd->residue_granularity = DMA_RESIDUE_GRANULARITY_SEGMENT;
+       pd->max_burst = ((pl330->quirks & PL330_QUIRK_BROKEN_NO_FLUSHP) ?
+                        1 : PL330_MAX_BURST);
 
        ret = dma_async_device_register(pd);
        if (ret) {