libge2d: ge2d strechblit consumes too much time [2/2]

PD#SWPL-60558

Problem:
ge2d strechblit consumes too much time

Solution:
add cache sync in libge2d

Verify:
w400

Signed-off-by: yuhua.lin <yuhua.lin@amlogic.com>
Change-Id: Ia58d788d5189f9b77febfbef93959e6218fdfc56
diff --git a/IONmem.c b/IONmem.c
index 6bde5b3..1923451 100644
--- a/IONmem.c
+++ b/IONmem.c
@@ -143,6 +143,25 @@
     return ret;
 }
 
+int ion_mem_sync_cache(int ion_fd, int shared_fd)
+{
+    int legacy_ion = 0;
+
+    legacy_ion = ion_is_legacy(ion_fd);
+    if (!legacy_ion)
+        return 0;
+    if (ion_fd >= 0 && shared_fd >= 0) {
+        if (ion_sync_fd(ion_fd, shared_fd)) {
+            __E("ion_mem_sync_cache err!\n");
+            return -1;
+        }
+    } else {
+        __E("ion_mem_sync_cache err!\n");
+        return -1;
+    }
+    return 0;
+}
+
 int ion_mem_invalid_cache(int ion_fd, int shared_fd)
 {
     int legacy_ion = 0;
diff --git a/include/ion/IONmem.h b/include/ion/IONmem.h
index 8c02579..80f746b 100644
--- a/include/ion/IONmem.h
+++ b/include/ion/IONmem.h
@@ -24,6 +24,8 @@
 
 int ion_mem_init(void);
 unsigned long ion_mem_alloc(int ion_fd, size_t size, IONMEM_AllocParams *params, bool cache_flag);
+int ion_mem_sync_cache(int ion_fd, int shared_fd);
+
 int ion_mem_invalid_cache(int ion_fd, int shared_fd);
 void ion_mem_exit(int ion_fd);