[PATCH v2 1/5] of: address: Fix default coherency for MIPS

From: Jiaxun Yang
Date: Thu Feb 23 2023 - 06:37:07 EST


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)