dmaengine: imx-dma: remove dma_slave_config direction usage
authorVinod Koul <vkoul@kernel.org>
Thu, 19 Jul 2018 16:52:26 +0000 (22:22 +0530)
committerVinod Koul <vkoul@kernel.org>
Sun, 7 Oct 2018 13:55:10 +0000 (19:25 +0530)
dma_slave_config direction was marked as deprecated quite some
time back, remove the usage from this driver so that the field
can be removed

Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/imx-dma.c

index 75b6ff0..c2fff3f 100644 (file)
@@ -162,6 +162,7 @@ struct imxdma_channel {
        bool                            enabled_2d;
        int                             slot_2d;
        unsigned int                    irq;
+       struct dma_slave_config         config;
 };
 
 enum imx_dma_type {
@@ -675,14 +676,15 @@ static int imxdma_terminate_all(struct dma_chan *chan)
        return 0;
 }
 
-static int imxdma_config(struct dma_chan *chan,
-                        struct dma_slave_config *dmaengine_cfg)
+static int imxdma_config_write(struct dma_chan *chan,
+                              struct dma_slave_config *dmaengine_cfg,
+                              enum dma_transfer_direction direction)
 {
        struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
        struct imxdma_engine *imxdma = imxdmac->imxdma;
        unsigned int mode = 0;
 
-       if (dmaengine_cfg->direction == DMA_DEV_TO_MEM) {
+       if (direction == DMA_DEV_TO_MEM) {
                imxdmac->per_address = dmaengine_cfg->src_addr;
                imxdmac->watermark_level = dmaengine_cfg->src_maxburst;
                imxdmac->word_size = dmaengine_cfg->src_addr_width;
@@ -723,6 +725,16 @@ static int imxdma_config(struct dma_chan *chan,
        return 0;
 }
 
+static int imxdma_config(struct dma_chan *chan,
+                        struct dma_slave_config *dmaengine_cfg)
+{
+       struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
+
+       memcpy(&imxdmac->config, dmaengine_cfg, sizeof(*dmaengine_cfg));
+
+       return 0;
+}
+
 static enum dma_status imxdma_tx_status(struct dma_chan *chan,
                                            dma_cookie_t cookie,
                                            struct dma_tx_state *txstate)
@@ -905,6 +917,8 @@ static struct dma_async_tx_descriptor *imxdma_prep_dma_cyclic(
        desc->desc.callback = NULL;
        desc->desc.callback_param = NULL;
 
+       imxdma_config_write(chan, &imxdmac->config, direction);
+
        return &desc->desc;
 }