Browse Source

Merge branch 'CR_8959_Implement_new_flush_L2_cache_method_Windsome.Zeng' into 'jh7110-devel'

CR 8959 Use the new method in VPU to flush the entire L2 cache

See merge request sdk/soft_3rdpart!82
andy.hu 3 months ago
parent
commit
fd4ac2103b

+ 5 - 1
codaj12/jdi/linux/driver/jpu.c

@@ -42,6 +42,7 @@
 #include "jpu.h"
 
 extern void sifive_ccache_flush_range(phys_addr_t start, size_t len);
+extern void sifive_ccache_flush_entire(void);
 
 //#define ENABLE_DEBUG_MSG
 #ifdef ENABLE_DEBUG_MSG
@@ -205,7 +206,10 @@ static void starfive_flush_dcache(phys_addr_t start, size_t len)
 #ifdef ARCH_HAS_SYNC_DMA_FOR_DEVICE
 	dma_sync_single_for_device(jpu_dev, start, len, DMA_FROM_DEVICE);
 #else
-	sifive_ccache_flush_range(start, len);
+	if (len >= 0x80000)
+                sifive_ccache_flush_entire();
+        else
+		sifive_ccache_flush_range(start, len);
 #endif
 }
 

+ 5 - 1
wave420l/code/vdi/linux/driver/venc.c

@@ -40,6 +40,7 @@
 #include "vpu.h"
 
 extern void sifive_ccache_flush_range(phys_addr_t start, size_t len);
+extern void sifive_ccache_flush_entire(void);
 
 #ifndef  CONFIG_PM
 #define CONFIG_PM
@@ -356,7 +357,10 @@ static void starfive_flush_dcache(phys_addr_t start, size_t len)
 #ifdef ARCH_HAS_SYNC_DMA_FOR_DEVICE
 	dma_sync_single_for_device(vpu_dev, start, len, DMA_FROM_DEVICE);
 #else
-	sifive_ccache_flush_range(start, len);
+	if (len >= 0x80000)
+		sifive_ccache_flush_entire();
+	else
+		sifive_ccache_flush_range(start, len);
 #endif
 }
 

+ 5 - 1
wave511/code/vdi/linux/driver/vdec.c

@@ -55,6 +55,7 @@
 #include "vpu.h"
 
 extern void sifive_ccache_flush_range(phys_addr_t start, size_t len);
+extern void sifive_ccache_flush_entire(void);
 
 //#define ENABLE_DEBUG_MSG
 #ifdef ENABLE_DEBUG_MSG
@@ -477,7 +478,10 @@ static void starfive_flush_dcache(phys_addr_t start, size_t len)
 #ifdef ARCH_HAS_SYNC_DMA_FOR_DEVICE
 	dma_sync_single_for_device(vpu_dev, start, len, DMA_FROM_DEVICE);
 #else
-	sifive_ccache_flush_range(start, len);
+	if (len >= 0x80000)
+		sifive_ccache_flush_entire();
+	else
+		sifive_ccache_flush_range(start, len);
 #endif
 }