dmaengine: imx-sdma: remove the maximum limitation for bd numbers
authorRobin Gong <yibin.gong@nxp.com>
Tue, 19 Jun 2018 16:57:02 +0000 (00:57 +0800)
committerVinod Koul <vkoul@kernel.org>
Mon, 2 Jul 2018 12:54:47 +0000 (18:24 +0530)
No this limitation now after virtual dma used since bd is allocated
dynamically instead of static.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de>
Tested-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/imx-sdma.c

index d1d3494..9f1a462 100644 (file)
@@ -285,7 +285,6 @@ struct sdma_context_data {
        u32  scratch7;
 } __attribute__ ((packed));
 
-#define NUM_BD (int)(PAGE_SIZE / sizeof(struct sdma_buffer_descriptor))
 
 struct sdma_engine;
 
@@ -1290,13 +1289,6 @@ static struct dma_async_tx_descriptor *sdma_prep_slave_sg(
        if (ret)
                goto err_bd_out;
 
-       if (sg_len > NUM_BD) {
-               dev_err(sdma->dev, "SDMA channel %d: maximum number of sg exceeded: %d > %d\n",
-                               channel, sg_len, NUM_BD);
-               ret = -EINVAL;
-               goto err_bd_out;
-       }
-
        desc->chn_count = 0;
        for_each_sg(sgl, sg, sg_len, i) {
                struct sdma_buffer_descriptor *bd = &desc->bd[i];
@@ -1406,12 +1398,6 @@ static struct dma_async_tx_descriptor *sdma_prep_dma_cyclic(
        if (ret)
                goto err_bd_out;
 
-       if (num_periods > NUM_BD) {
-               dev_err(sdma->dev, "SDMA channel %d: maximum number of sg exceeded: %d > %d\n",
-                               channel, num_periods, NUM_BD);
-               goto err_bd_out;
-       }
-
        if (period_len > 0xffff) {
                dev_err(sdma->dev, "SDMA channel %d: maximum period size exceeded: %zu > %d\n",
                                channel, period_len, 0xffff);