hardware: samsung_slsi: exynos5: Seperate Secure memory region
authorJihyun Kim <jihyun86.kim@samsung.com>
Wed, 12 Sep 2012 07:51:53 +0000 (16:51 +0900)
committerDima Zavin <dima@android.com>
Tue, 18 Sep 2012 21:34:49 +0000 (14:34 -0700)
This patch update OMX and HWC to separate secure memory region.
Secure memory region is separated with MFC_INPUT, MFC_OUTPU, FIMD_VIDEO.

Change-Id: I83981ce288de76ea5fb123bfc471d790a7706cee
Signed-off-by: Jihyun Kim <jihyun86.kim@samsung.com>
exynos_omx/openmax/exynos_omx/osal/Exynos_OSAL_SharedMemory.c
gralloc/gralloc.cpp
include/ion.h

index 9d2dea3ae05d56721d1183a4fd2404102df50de5..b757ff69762ed3f477dc82b5650cdbd35f0a9fbb 100644 (file)
@@ -157,7 +157,7 @@ OMX_PTR Exynos_OSAL_SharedMemory_Alloc(OMX_HANDLETYPE handle, OMX_U32 size, MEMO
     switch (memoryType) {
     case SECURE_MEMORY:
         mask = ION_HEAP_EXYNOS_CONTIG_MASK;
-        flag = ION_EXYNOS_VIDEO_MASK;
+        flag = ION_EXYNOS_MFC_INPUT_MASK;
         break;
     case NORMAL_MEMORY:
         mask = ION_HEAP_EXYNOS_MASK;
index e69be6e1ec6da082fa081dca1df2e85d39e1b9c3..c212896e70d237cf186731bd82d30fe6e6997f56 100644 (file)
 #include "gr.h"
 
 #define ION_HEAP_EXYNOS_CONTIG_MASK     (1 << 4)
-#define ION_EXYNOS_VIDEO_MASK           (1 << 29)
+#define ION_EXYNOS_FIMD_VIDEO_MASK  (1 << 28)
+#define ION_EXYNOS_MFC_OUTPUT_MASK  (1 << 26)
+#define ION_EXYNOS_MFC_INPUT_MASK   (1 << 25)
+
 
 /*****************************************************************************/
 
@@ -161,6 +164,9 @@ static int gralloc_alloc_rgb(int ionfd, int w, int h, int format, int usage,
     *stride = bpr / bpp;
     size = ALIGN(size, PAGE_SIZE);
 
+    if (usage & GRALLOC_USAGE_PROTECTED)
+        ion_flags |= ION_EXYNOS_FIMD_VIDEO_MASK;
+
     err = ion_alloc_fd(ionfd, size, 0, heap_mask, ion_flags,
                        &fd);
     *hnd = new private_handle_t(fd, size, usage, w, h, format, *stride,
@@ -256,6 +262,9 @@ static int gralloc_alloc_yuv(int ionfd, int w, int h, int format,
             return -EINVAL;
     }
 
+    if (usage & GRALLOC_USAGE_PROTECTED)
+       ion_flags |= ION_EXYNOS_MFC_OUTPUT_MASK;
+
     err = ion_alloc_fd(ionfd, luma_size, 0, heap_mask, ion_flags, &fd);
     if (err)
         return err;
@@ -301,8 +310,6 @@ static int gralloc_alloc(alloc_device_t* dev,
 
     if( (usage & GRALLOC_USAGE_SW_READ_MASK) == GRALLOC_USAGE_SW_READ_OFTEN )
         ion_flags = ION_FLAG_CACHED;
-    if (usage & GRALLOC_USAGE_PROTECTED)
-        ion_flags |= ION_EXYNOS_VIDEO_MASK;
 
     private_module_t* m = reinterpret_cast<private_module_t*>
         (dev->common.module);
index 88774643690cf7dfa3e53cbccb4e5c37c97ca039..0c6045ef3d7b9bcf3e41751434f37fb0b0b31098 100644 (file)
 #define ION_HEAP_SYSTEM_CONTIG_MASK     (1 << 1)
 #define ION_HEAP_EXYNOS_CONTIG_MASK     (1 << 4)
 #define ION_HEAP_EXYNOS_MASK            (1 << 5)
-#define ION_EXYNOS_VIDEO_MASK           (1 << 29)
+#define ION_EXYNOS_FIMD_VIDEO_MASK    (1 << 28)
+#define ION_EXYNOS_GSC_MASK            (1 << 27)
+#define ION_EXYNOS_MFC_OUTPUT_MASK    (1 << 26)
+#define ION_EXYNOS_MFC_INPUT_MASK    (1 << 25)
+
 
 /* ION_MSYNC_FLAGS
  * values of @flags parameter to ion_msync()