dmaengine: fsl-edma-common: move dmamux register to another single function
authorRobin Gong <yibin.gong@nxp.com>
Tue, 25 Jun 2019 09:43:20 +0000 (17:43 +0800)
committerVinod Koul <vkoul@kernel.org>
Wed, 3 Jul 2019 07:58:23 +0000 (13:28 +0530)
Prepare for edmav2 on i.mx7ulp whose dmamux register is 32bit. No function
impacted.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Tested-by: Angelo Dureghello <angelo@sysam.it>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/fsl-edma-common.c

index 07d96894c7c4385778b0468164c8144d0dfb4e94..ba74e10aa0c27d25e6a965bcf1a3ecad67cb3943 100644 (file)
@@ -77,6 +77,19 @@ void fsl_edma_disable_request(struct fsl_edma_chan *fsl_chan)
 }
 EXPORT_SYMBOL_GPL(fsl_edma_disable_request);
 
+static void mux_configure8(struct fsl_edma_chan *fsl_chan, void __iomem *addr,
+                          u32 off, u32 slot, bool enable)
+{
+       u8 val8;
+
+       if (enable)
+               val8 = EDMAMUX_CHCFG_ENBL | slot;
+       else
+               val8 = EDMAMUX_CHCFG_DIS;
+
+       iowrite8(val8, addr + off);
+}
+
 void fsl_edma_chan_mux(struct fsl_edma_chan *fsl_chan,
                        unsigned int slot, bool enable)
 {
@@ -90,10 +103,7 @@ void fsl_edma_chan_mux(struct fsl_edma_chan *fsl_chan,
        muxaddr = fsl_chan->edma->muxbase[ch / chans_per_mux];
        slot = EDMAMUX_CHCFG_SOURCE(slot);
 
-       if (enable)
-               iowrite8(EDMAMUX_CHCFG_ENBL | slot, muxaddr + ch_off);
-       else
-               iowrite8(EDMAMUX_CHCFG_DIS, muxaddr + ch_off);
+       mux_configure8(fsl_chan, muxaddr, ch_off, slot, enable);
 }
 EXPORT_SYMBOL_GPL(fsl_edma_chan_mux);