]> Git Repo - linux.git/commitdiff
dmaengine: at_xdmac: change block increment addressing mode
authorMaxime Ripard <[email protected]>
Tue, 15 Sep 2015 13:36:00 +0000 (15:36 +0200)
committerVinod Koul <[email protected]>
Thu, 1 Oct 2015 01:59:40 +0000 (07:29 +0530)
The addressing mode we were using was not only incrementing the address at
each microblock, but also at each data boundary, which was severely slowing
the transfer, without any benefit since we were not using the data stride.

Switch to the micro block increment only in order to get back to an
acceptable performance level.

Signed-off-by: Maxime Ripard <[email protected]>
Signed-off-by: Ludovic Desroches <[email protected]>
Fixes: 6007ccb57744 ("dmaengine: xdmac: Add interleaved transfer support")
Cc: [email protected] #4.2
Signed-off-by: Vinod Koul <[email protected]>
drivers/dma/at_xdmac.c

index a165b4bfd3300e97d409f2053b71adb276392336..ffea6027b631982d0fedc973e890910c15685aa6 100644 (file)
@@ -875,14 +875,14 @@ at_xdmac_interleaved_queue_desc(struct dma_chan *chan,
 
        if (xt->src_inc) {
                if (xt->src_sgl)
-                       chan_cc |=  AT_XDMAC_CC_SAM_UBS_DS_AM;
+                       chan_cc |=  AT_XDMAC_CC_SAM_UBS_AM;
                else
                        chan_cc |=  AT_XDMAC_CC_SAM_INCREMENTED_AM;
        }
 
        if (xt->dst_inc) {
                if (xt->dst_sgl)
-                       chan_cc |=  AT_XDMAC_CC_DAM_UBS_DS_AM;
+                       chan_cc |=  AT_XDMAC_CC_DAM_UBS_AM;
                else
                        chan_cc |=  AT_XDMAC_CC_DAM_INCREMENTED_AM;
        }
This page took 0.056101 seconds and 4 git commands to generate.