]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote...
authorKory Maincent <kory.maincent@bootlin.com>
Mon, 29 Jan 2024 16:26:02 +0000 (17:26 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 6 Mar 2024 14:48:43 +0000 (14:48 +0000)
commitd24fe6d5a1cfdddb7a9ef56736ec501c4d0a5fd3
tree31f38ff8db2d2032ef0d45aac19d9a355e3ae9d1
parent227ef58a9b0c372efba422e8886a8015a1509eba
dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup

[ Upstream commit bbcc1c83f343e580c3aa1f2a8593343bf7b55bba ]

The Linked list element and pointer are not stored in the same memory as
the eDMA controller register. If the doorbell register is toggled before
the full write of the linked list a race condition error will occur.
In remote setup we can only use a readl to the memory to assure the full
write has occurred.

Fixes: 7e4b8a4fbe2c ("dmaengine: Add Synopsys eDMA IP version 0 support")
Reviewed-by: Serge Semin <fancer.lancer@gmail.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
Link: https://lore.kernel.org/r/20240129-b4-feature_hdma_mainline-v7-6-8e8c1acb7a46@bootlin.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/dma/dw-edma/dw-edma-v0-core.c