dmaengine: dw: Ignore burst setting for memory peripherals
authorSerge Semin <Sergey.Semin@baikalelectronics.ru>
Fri, 31 Jul 2020 20:08:25 +0000 (23:08 +0300)
committerVinod Koul <vkoul@kernel.org>
Mon, 17 Aug 2020 06:28:31 +0000 (11:58 +0530)
commit8d2f59dab3cfdbb23959b03d561819e180c1bc03
treeded89b0aa477ee7d277d08734df48b76ab1b9e9e
parent0ed725d1f559b290a2fd12a9c689d946a7bef51d
dmaengine: dw: Ignore burst setting for memory peripherals

According to the DW DMA controller Databook 2.18b (page 40 "3.5 Memory
Peripherals") memory peripherals don't have handshaking interface
connected to the controller, therefore they can never be a flow
controller. Since the CTLx.SRC_MSIZE and CTLx.DEST_MSIZE are properties
valid only for peripherals with a handshaking interface, we can freely
zero these fields out if the memory peripheral is selected to be the
source or the destination of the DMA transfers.

Note according to the databook, length of burst transfers to memory is
always equal to the number of data items available in a channel FIFO or
data items required to complete the block transfer, whichever is smaller;
length of burst transfers from memory is always equal to the space
available in a channel FIFO or number of data items required to complete
the block transfer, whichever is smaller.

Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Link: https://lore.kernel.org/r/20200731200826.9292-5-Sergey.Semin@baikalelectronics.ru
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/dw/dw.c
drivers/dma/dw/idma32.c