Commit a1cf0903 authored by Maxime Ripard's avatar Maxime Ripard Committed by Vinod Koul

dmaengine: at_xdmac: change block increment addressing mode

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: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: default avatarLudovic Desroches <ludovic.desroches@atmel.com>
Fixes: 6007ccb5 ("dmaengine: xdmac: Add interleaved transfer support")
Cc: stable@vger.kernel.org #4.2
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent 6bea0f6d
...@@ -875,14 +875,14 @@ at_xdmac_interleaved_queue_desc(struct dma_chan *chan, ...@@ -875,14 +875,14 @@ at_xdmac_interleaved_queue_desc(struct dma_chan *chan,
if (xt->src_inc) { if (xt->src_inc) {
if (xt->src_sgl) if (xt->src_sgl)
chan_cc |= AT_XDMAC_CC_SAM_UBS_DS_AM; chan_cc |= AT_XDMAC_CC_SAM_UBS_AM;
else else
chan_cc |= AT_XDMAC_CC_SAM_INCREMENTED_AM; chan_cc |= AT_XDMAC_CC_SAM_INCREMENTED_AM;
} }
if (xt->dst_inc) { if (xt->dst_inc) {
if (xt->dst_sgl) if (xt->dst_sgl)
chan_cc |= AT_XDMAC_CC_DAM_UBS_DS_AM; chan_cc |= AT_XDMAC_CC_DAM_UBS_AM;
else else
chan_cc |= AT_XDMAC_CC_DAM_INCREMENTED_AM; chan_cc |= AT_XDMAC_CC_DAM_INCREMENTED_AM;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment