dmaengine: stm32-dmamux: avoid reset of dmamux if used by coprocessor
authorAmelie Delaunay <amelie.delaunay@foss.st.com>
Wed, 4 May 2022 16:17:24 +0000 (18:17 +0200)
committerVinod Koul <vkoul@kernel.org>
Thu, 19 May 2022 18:13:40 +0000 (23:43 +0530)
commitd0b360e3c164be7ccc8eb2bfc341287959e27040
tree7ae02f407695e7060935474da0f1e7f085fda9d2
parentc7399e6d3b18dc17974bc44e2e178664f1bd1bec
dmaengine: stm32-dmamux: avoid reset of dmamux if used by coprocessor

One of the two DMA controllers managed by the DMAMUX can be used by the
coprocessor. It is defined in the device tree with dma-masters.
When the two DMA controllers are used by the main CPU,
dma-masters = <&dma1, &dma2>; is specified in the device tree.
When one of the controllers is used by coprocessor (so not managed by
Linux), dma-masters = <&dma1>; is specified in the device tree.
In this case, Linux driver must not reset the DMAMUX, because it could have
been configured by the coprocessor to use the second DMA controller.
count is the number of DMA controllers defined in dma-masters property.
Reset only if resets property is found and valid in device tree, and if
the two DMA controllers are under Linux control.

Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20220504161724.123180-1-amelie.delaunay@foss.st.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/stm32-dmamux.c