dmaengine: pl330: Limit MFIFO usage for memcpy to avoid exhausting entries
authorJon Medhurst <tixy@linaro.org>
Fri, 7 Nov 2014 18:05:18 +0000 (18:05 +0000)
committerVinod Koul <vinod.koul@intel.com>
Mon, 17 Nov 2014 07:31:20 +0000 (13:01 +0530)
The MFIFO is shared by all channels so restrict each memcpy to it's fair
share. This is being over cautious, but without a global view of DMA
channel usage on a system it's not possible to come up with a more
optimum safe limit.

Signed-off-by: Jon Medhurst <tixy@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/pl330.c

index 81505420bde4dc817e347e10594029d6a7c23d56..e13b51a46502bc57820d1431f9f6cb512a5b9551 100644 (file)
@@ -2336,7 +2336,7 @@ static inline int get_burst_len(struct dma_pl330_desc *desc, size_t len)
        int burst_len;
 
        burst_len = pl330->pcfg.data_bus_width / 8;
-       burst_len *= pl330->pcfg.data_buf_dep;
+       burst_len *= pl330->pcfg.data_buf_dep / pl330->pcfg.num_chan;
        burst_len >>= desc->rqcfg.brst_size;
 
        /* src/dst_burst_len can't be more than 16 */