encoder_h265: CB1 Modify memory map [1/1]

PD#SWPL-191082

Problem:
Modify vm_page_prot

Solution:
Modify vm_page_prot

Verify:
Local

Signed-off-by: xiaoya.lin <xiaoya.lin@amlogic.com>
Change-Id: I7a997b4a3567378612e4a69d86deea8d6813b026
diff --git a/drivers/frame_sink/encoder/h265/vpu.c b/drivers/frame_sink/encoder/h265/vpu.c
index a7b9a78..32f6446 100644
--- a/drivers/frame_sink/encoder/h265/vpu.c
+++ b/drivers/frame_sink/encoder/h265/vpu.c
@@ -382,7 +382,7 @@
 	}
 	return 0;
 }
-#if 0
+
 static u32 vpu_is_buffer_cached(struct file *filp, ulong vm_pgoff)
 {
 	struct vpudrv_buffer_pool_t *pool, *n;
@@ -406,7 +406,7 @@
 	enc_pr(LOG_ALL, "[-]vpu_is_buffer_cached, ret:%d\n", cached);
 	return cached;
 }
-#endif
+
 static s32 vpu_multi_dma_buf_release(struct file *filp)
 {
 	struct vpu_multi_dma_buf_pool_t *pool, *n;
@@ -1892,7 +1892,15 @@
 #endif
 
 	vm->vm_pgoff = (s_video_memory.phys_addr >> PAGE_SHIFT) + vm->vm_pgoff;
-	vm->vm_page_prot = pgprot_noncached(vm->vm_page_prot);
+	if (vm->vm_pgoff ==
+		(s_common_memory.phys_addr >> PAGE_SHIFT)) {
+		vm->vm_page_prot =
+			pgprot_noncached(vm->vm_page_prot);
+	} else {
+		if (vpu_is_buffer_cached(fp, vm->vm_pgoff) == 0)
+			vm->vm_page_prot =
+				pgprot_noncached(vm->vm_page_prot);
+	}
 	/* vm->vm_page_prot = pgprot_writecombine(vm->vm_page_prot); */
 	if (!pfn_valid(vm->vm_pgoff)) {
 		enc_pr(LOG_ERROR, "%s invalid pfn\n", __FUNCTION__);