提交 a1cf0903 编写于 作者: M Maxime Ripard 提交者: 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: NMaxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: NLudovic Desroches <ludovic.desroches@atmel.com>
Fixes: 6007ccb5 ("dmaengine: xdmac: Add interleaved transfer support")
Cc: stable@vger.kernel.org #4.2
Signed-off-by: NVinod Koul <vinod.koul@intel.com>
上级 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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册