From: Anders Berg <anders.b...@lsi.com>

Added module parameter 'burst' that allows the setup of the DMA controller
preferred burst setting on reads and writes. Set this to 7 for INCR16, 5 for
INCR8, 3 for INCR4 or 0 for singles (no bursts).

Signed-off-by: Anders Berg <anders.b...@lsi.com>
---
 drivers/dma/lsi-dma32.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/lsi-dma32.c b/drivers/dma/lsi-dma32.c
index 0c679bf..f08a1e8 100644
--- a/drivers/dma/lsi-dma32.c
+++ b/drivers/dma/lsi-dma32.c
@@ -59,6 +59,9 @@
 #define ch_dbg(dmac, fmt, ...)       do {} while (0)
 #endif
 
+static unsigned int burst = 5;
+module_param(burst, uint, 0644);
+MODULE_PARM_DESC(burst, "Set preferred bust size during DMA transfters");
 
 static void reset_channel(struct gpdma_channel *dmac)
 {
@@ -416,6 +419,8 @@ gpdma_prep_memcpy(struct dma_chan *chan,
        struct gpdma_channel *dmac = to_gpdma_chan(chan);
        struct gpdma_desc *desc;
        u16 rot_len, x_count, src_size, access_size;
+       u16 src_burst = burst;
+       u16 dst_burst = burst;
 
        desc = get_descriptor(dmac->engine);
        if (desc == NULL) {
@@ -461,8 +466,11 @@ gpdma_prep_memcpy(struct dma_chan *chan,
        desc->hw.src_y_mod     = 0;
        desc->hw.src_addr      = cpu_to_le32(src & 0xffffffff);
        desc->hw.src_data_mask = ~0;
-       desc->hw.src_access    = cpu_to_le16((rot_len << 6) | access_size);
-       desc->hw.dst_access    = cpu_to_le16(access_size);
+       desc->hw.src_access    = cpu_to_le16((rot_len << 6) |
+                                            access_size |
+                                            (src_burst & 7));
+       desc->hw.dst_access    = cpu_to_le16(access_size |
+                                            (dst_burst & 7));
        desc->hw.ch_config     = cpu_to_le32(DMA_CONFIG_ONE_SHOT(1));
        desc->hw.next_ptr      = 0;
        desc->hw.dst_x_ctr     = cpu_to_le16(x_count);
-- 
1.7.9.5

-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to