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

[ Upstream commit 712a92a48158e02155b4b6b21e03a817f78c9b7e ]

The Linked list element and pointer are not stored in the same memory as
the HDMA 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: e74c39573d35 ("dmaengine: dw-edma: Add support for native HDMA")
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-5-8e8c1acb7a46@bootlin.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/dma/dw-edma/dw-hdma-v0-core.c