dma: support 4burst mode for dev-to-mem and mem-to-dev transmit
authorKang Nam Park <kn0710.park@samsung.com>
Mon, 29 Dec 2014 06:54:25 +0000 (15:54 +0900)
committerTaekki Kim <taekki.kim@samsung.com>
Mon, 14 May 2018 05:42:46 +0000 (14:42 +0900)
Change-Id: I19b1d7f068a1774f693d9b3c3c201fb3042afa80
Signed-off-by: Kang Nam Park <kn0710.park@samsung.com>
Signed-off-by: Seokju Yoon <sukju.yoon@samsung.com>
drivers/dma/pl330.c

index 017a9c7b041b6792f49c36191d40beaeb366e9a3..d9e51cbb14ebafb28c53486068b6a67169ca8af4 100644 (file)
@@ -1115,6 +1115,8 @@ static inline int _ldst_devtomem(struct pl330_dmac *pl330, unsigned dry_run,
 
        if (pl330->quirks & PL330_QUIRK_BROKEN_NO_FLUSHP)
                cond = BURST;
+       else if (pxs->desc->rqcfg.brst_len != 1)
+               cond = BURST;
        else
                cond = SINGLE;
 
@@ -1140,6 +1142,8 @@ static inline int _ldst_memtodev(struct pl330_dmac *pl330,
 
        if (pl330->quirks & PL330_QUIRK_BROKEN_NO_FLUSHP)
                cond = BURST;
+       else if (pxs->desc->rqcfg.brst_len != 1)
+               cond = BURST;
        else
                cond = SINGLE;
 
@@ -2869,7 +2873,7 @@ pl330_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
                }
 
                desc->rqcfg.brst_size = pch->burst_sz;
-               desc->rqcfg.brst_len = 1;
+               desc->rqcfg.brst_len = pch->burst_len;
                desc->rqtype = direction;
                desc->bytes_requested = sg_dma_len(sg);
        }