i2c: Add generic I2C multiplexer using pinctrl API
[firefly-linux-kernel-4.4.55.git] / drivers / dma / at_hdmac.c
index bf0d7e4e345bd09babde30dfed59b4874f27b0fc..7292aa87b2dd3fb54a4797f7c676d74a6a047713 100644 (file)
@@ -39,7 +39,6 @@
  */
 
 #define        ATC_DEFAULT_CFG         (ATC_FIFOCFG_HALFFIFO)
-#define        ATC_DEFAULT_CTRLA       (0)
 #define        ATC_DEFAULT_CTRLB       (ATC_SIF(AT_DMA_MEM_IF) \
                                |ATC_DIF(AT_DMA_MEM_IF))
 
@@ -574,7 +573,6 @@ atc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
                return NULL;
        }
 
-       ctrla =   ATC_DEFAULT_CTRLA;
        ctrlb =   ATC_DEFAULT_CTRLB | ATC_IEN
                | ATC_SRC_ADDR_MODE_INCR
                | ATC_DST_ADDR_MODE_INCR
@@ -585,13 +583,13 @@ atc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
         * of the most common optimization.
         */
        if (!((src | dest  | len) & 3)) {
-               ctrla |= ATC_SRC_WIDTH_WORD | ATC_DST_WIDTH_WORD;
+               ctrla = ATC_SRC_WIDTH_WORD | ATC_DST_WIDTH_WORD;
                src_width = dst_width = 2;
        } else if (!((src | dest | len) & 1)) {
-               ctrla |= ATC_SRC_WIDTH_HALFWORD | ATC_DST_WIDTH_HALFWORD;
+               ctrla = ATC_SRC_WIDTH_HALFWORD | ATC_DST_WIDTH_HALFWORD;
                src_width = dst_width = 1;
        } else {
-               ctrla |= ATC_SRC_WIDTH_BYTE | ATC_DST_WIDTH_BYTE;
+               ctrla = ATC_SRC_WIDTH_BYTE | ATC_DST_WIDTH_BYTE;
                src_width = dst_width = 0;
        }
 
@@ -668,7 +666,8 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
                return NULL;
        }
 
-       ctrla = ATC_DEFAULT_CTRLA | atslave->ctrla;
+       ctrla =   ATC_SCSIZE(sconfig->src_maxburst)
+               | ATC_DCSIZE(sconfig->dst_maxburst);
        ctrlb = ATC_IEN;
 
        switch (direction) {
@@ -796,12 +795,12 @@ atc_dma_cyclic_fill_desc(struct dma_chan *chan, struct at_desc *desc,
                enum dma_transfer_direction direction)
 {
        struct at_dma_chan      *atchan = to_at_dma_chan(chan);
-       struct at_dma_slave     *atslave = chan->private;
        struct dma_slave_config *sconfig = &atchan->dma_sconfig;
        u32                     ctrla;
 
        /* prepare common CRTLA value */
-       ctrla =   ATC_DEFAULT_CTRLA | atslave->ctrla
+       ctrla =   ATC_SCSIZE(sconfig->src_maxburst)
+               | ATC_DCSIZE(sconfig->dst_maxburst)
                | ATC_DST_WIDTH(reg_width)
                | ATC_SRC_WIDTH(reg_width)
                | period_len >> reg_width;