diff mbox series

[v2,4/4] MIPS: c-r4k: Always install dma flush functions

Message ID 20230222132425.7442-5-jiaxun.yang@flygoat.com (mailing list archive)
State Accepted
Commit 600efe35d54961dd026f04c6ea5b4074b3284c87
Headers show
Series MIPS DMA coherence fixes | expand

Commit Message

Jiaxun Yang Feb. 22, 2023, 1:24 p.m. UTC
As nowadays DMA coherence is managed per device, it is possible
to have a system that is defaulted to coherent dma but still
have noncoherent device that needs to use those flush functions.

Just install them unconditionally.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
 arch/mips/mm/c-r4k.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

Comments

Thomas Bogendoerfer March 24, 2023, 1:13 p.m. UTC | #1
On Wed, Feb 22, 2023 at 01:24:25PM +0000, Jiaxun Yang wrote:
> As nowadays DMA coherence is managed per device, it is possible
> to have a system that is defaulted to coherent dma but still
> have noncoherent device that needs to use those flush functions.
> 
> Just install them unconditionally.
> 
> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
> ---
>  arch/mips/mm/c-r4k.c | 12 +++---------
>  1 file changed, 3 insertions(+), 9 deletions(-)

applied to mips-next.

Thomas.
diff mbox series

Patch

diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index a549fa98c2f4..7d447050a20b 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -1867,15 +1867,9 @@  void r4k_cache_init(void)
 	__local_flush_icache_user_range	= local_r4k_flush_icache_user_range;
 
 #ifdef CONFIG_DMA_NONCOHERENT
-	if (dma_default_coherent) {
-		_dma_cache_wback_inv	= (void *)cache_noop;
-		_dma_cache_wback	= (void *)cache_noop;
-		_dma_cache_inv		= (void *)cache_noop;
-	} else {
-		_dma_cache_wback_inv	= r4k_dma_cache_wback_inv;
-		_dma_cache_wback	= r4k_dma_cache_wback_inv;
-		_dma_cache_inv		= r4k_dma_cache_inv;
-	}
+	_dma_cache_wback_inv	= r4k_dma_cache_wback_inv;
+	_dma_cache_wback	= r4k_dma_cache_wback_inv;
+	_dma_cache_inv		= r4k_dma_cache_inv;
 #endif /* CONFIG_DMA_NONCOHERENT */
 
 	build_clear_page();