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)
committerVinod Koul <vkoul@kernel.org>
Wed, 7 Feb 2024 08:30:51 +0000 (09:30 +0100)
commit712a92a48158e02155b4b6b21e03a817f78c9b7e
tree08ab008296dc4e277cf095953d59f8ee1266ee12
parente2f6a5789051ee9c632f27a12d0f01f0cbf78aac
dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup

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>
drivers/dma/dw-edma/dw-hdma-v0-core.c