]> git.baikalelectronics.ru Git - kernel.git/commit
dmaengine: dw: Ignore burst setting for memory peripherals
authorBaikal Electronics <support@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)
commit3871579b8342e2dac2361a1d6a9246949212ce1f
treeded89b0aa477ee7d277d08734df48b76ab1b9e9e
parent793b576b9e5614fcdc33a1e02a7b4d40c99d9cf4
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