DT-based MIPS doesn't use OF_DMA_DEFAULT_COHERENT, but might override the system-wide default at runtime. Use dma_default_coherent to override default coherence for MIPS. Signed-off-by: Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx> --- drivers/of/address.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/of/address.c b/drivers/of/address.c index 4c0b169ef9bf..c105d66a1fa4 100644 --- a/drivers/of/address.c +++ b/drivers/of/address.c @@ -1105,6 +1105,14 @@ bool of_dma_is_coherent(struct device_node *np) struct device_node *node; bool is_coherent = IS_ENABLED(CONFIG_OF_DMA_DEFAULT_COHERENT); + /* + * DT-based MIPS doesn't use OF_DMA_DEFAULT_COHERENT, but + * might override the system-wide default at runtime. + */ +#if defined(CONFIG_MIPS) && defined(CONFIG_DMA_NONCOHERENT) + is_coherent = dma_default_coherent; +#endif + node = of_node_get(np); while (node) { -- 2.37.1 (Apple Git-137.1)