exynos4: libhwcomposer: update for new api version
diff --git a/exynos4/hal/libhwcomposer/SecHWCUtils.cpp b/exynos4/hal/libhwcomposer/SecHWCUtils.cpp
index 5214e40..6351bbf 100644
--- a/exynos4/hal/libhwcomposer/SecHWCUtils.cpp
+++ b/exynos4/hal/libhwcomposer/SecHWCUtils.cpp
@@ -25,14 +25,8 @@
  */
 
 #include "SecHWCUtils.h"
-
-#ifdef BOARD_USE_V4L2_ION
-#define V4L2_BUF_TYPE_OUTPUT V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE
-#define V4L2_BUF_TYPE_CAPTURE V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE
-#else
 #define V4L2_BUF_TYPE_OUTPUT V4L2_BUF_TYPE_VIDEO_OUTPUT
 #define V4L2_BUF_TYPE_CAPTURE V4L2_BUF_TYPE_VIDEO_CAPTURE
-#endif
 
 #define EXYNOS4_ALIGN( value, base ) (((value) + ((base) - 1)) & ~((base) - 1))
 
@@ -40,7 +34,7 @@
 #ifdef CHECK_FPS
 #include <sys/time.h>
 #include <unistd.h>
-#define CHK_FRAME_CNT 30
+#define CHK_FRAME_CNT 57
 
 void check_fps()
 {
@@ -59,7 +53,7 @@
         memcpy(&tick_old, &tick, sizeof(timeval));
         if (cnt == (10 + CHK_FRAME_CNT)) {
             FPS = 1000*CHK_FRAME_CNT/total;
-            LOGE("[FPS]:%d\n", FPS);
+            ALOGE("[FPS]:%d\n", FPS);
             total = 0;
             cnt = 10;
         }
@@ -77,10 +71,6 @@
     { "V4L2_PIX_FMT_NV21X",     "YUV420/2P/MSB_CBCR",   V4L2_PIX_FMT_NV21X,    12, 2 },
     { "V4L2_PIX_FMT_NV12X",     "YUV420/2P/MSB_CRCB",   V4L2_PIX_FMT_NV12X,    12, 2 },
     { "V4L2_PIX_FMT_YUV420",    "YUV420/3P",            V4L2_PIX_FMT_YUV420,   12, 3 },
-#ifdef BOARD_USE_V4L2_ION
-    { "V4L2_PIX_FMT_YUV420M",   "YUV420/3P",            V4L2_PIX_FMT_YUV420M,  12, 3 },
-    { "V4L2_PIX_FMT_NV12M",     "YUV420/2P",            V4L2_PIX_FMT_NV12M,    12, 2 },
-#endif
     { "V4L2_PIX_FMT_YUYV",      "YUV422/1P/YCBYCR",     V4L2_PIX_FMT_YUYV,     16, 1 },
     { "V4L2_PIX_FMT_YVYU",      "YUV422/1P/YCRYCB",     V4L2_PIX_FMT_YVYU,     16, 1 },
     { "V4L2_PIX_FMT_UYVY",      "YUV422/1P/CBYCRY",     V4L2_PIX_FMT_UYVY,     16, 1 },
@@ -110,18 +100,10 @@
 
     switch (id) {
     case 0:
-#ifdef BOARD_USE_V4L2_ION
-        real_id = 2;
-#else
         real_id = 3;
-#endif
         break;
     case 1:
-#ifdef BOARD_USE_V4L2_ION
-        real_id = 1;
-#else
         real_id = 4;
-#endif
         break;
     default:
         SEC_HWC_Log(HWC_LOG_ERROR, "%s::id(%d) is weird", __func__, id);
@@ -166,11 +148,6 @@
 
     if (0 < win->fd) {
 
-#ifdef BOARD_USE_V4L2_ION
-        ion_unmap((void *)win->addr[0], ALIGN(win->size * NUM_OF_WIN_BUF, PAGE_SIZE));
-        ion_free(win->ion_fd);
-#endif
-
 #ifdef ENABLE_FIMD_VSYNC
         int vsync = 0;
         if (ioctl(win->fd, S3CFB_SET_VSYNC_INT, &vsync) < 0)
@@ -232,26 +209,9 @@
 
     win->size = win->fix_info.line_length * win->var_info.yres;
 
-#ifdef BOARD_USE_V4L2_ION
-    struct s3c_fb_user_ion_client ion_handle;
-    void *ion_start_addr;
-
-    if (ioctl(win->fd, S3CFB_GET_ION_USER_HANDLE, &ion_handle) < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "Get fb ion client is failed\n");
-        return -1;
-    }
-
-    win->ion_fd = ion_handle.fd;
-    ion_start_addr = ion_map(win->ion_fd, ALIGN(win->size * NUM_OF_WIN_BUF, PAGE_SIZE), 0);
-#endif
-
     for (int j = 0; j < NUM_OF_WIN_BUF; j++) {
         temp_size = win->size * j;
-#ifdef BOARD_USE_V4L2_ION
-        win->addr[j] = (uint32_t)ion_start_addr + temp_size;
-#else
         win->addr[j] = win->fix_info.smem_start + temp_size;
-#endif
         SEC_HWC_Log(HWC_LOG_DEBUG, "%s::win-%d add[%d]  %x ",
                 __func__, win_num, j,  win->addr[j]);
     }
@@ -268,17 +228,10 @@
     struct fb_var_screeninfo *lcd_info = &(win->lcd_info);
 
 #ifdef ENABLE_FIMD_VSYNC
-#ifdef BOARD_USE_V4L2_ION
-    int fimd_num = 0;
-    if (ioctl(win->fd, FBIO_WAITFORVSYNC, &fimd_num) < 0)
-        SEC_HWC_Log(HWC_LOG_ERROR, "%s::FBIO_WAITFORVSYNC fail(%s)",
-                __func__, strerror(errno));
-#else
     if (ioctl(win->fd, FBIO_WAITFORVSYNC, 0) < 0)
         SEC_HWC_Log(HWC_LOG_ERROR, "%s::FBIO_WAITFORVSYNC fail(%s)",
                 __func__, strerror(errno));
 #endif
-#endif
 
     lcd_info->yoffset = lcd_info->yres * win->buf_index;
 
@@ -339,25 +292,10 @@
     struct v4l2_crop    crop;
     struct v4l2_requestbuffers req;
 
-#ifdef BOARD_USE_V4L2_ION
-    /* You MUST initialize structure for v4l2 */
-    memset(&fmt, 0, sizeof(fmt));
-    memset(&cropcap, 0, sizeof(cropcap));
-    memset(&crop, 0, sizeof(crop));
-    memset(&req, 0, sizeof(req));
-
-    /*  To set size & format for source image (DMA-INPUT) */
-    fmt.fmt.pix_mp.num_planes  = src->planes;
-    fmt.fmt.pix_mp.width       = src->full_width;
-    fmt.fmt.pix_mp.height      = src->full_height;
-    fmt.fmt.pix_mp.pixelformat = src->color_space;
-    fmt.fmt.pix_mp.field       = V4L2_FIELD_ANY;
-#else
     fmt.fmt.pix.width       = src->full_width;
     fmt.fmt.pix.height      = src->full_height;
     fmt.fmt.pix.pixelformat = src->color_space;
     fmt.fmt.pix.field       = V4L2_FIELD_NONE;
-#endif
     fmt.type                = V4L2_BUF_TYPE_OUTPUT;
 
     if (ioctl(fd, VIDIOC_S_FMT, &fmt) < 0) {
@@ -370,10 +308,6 @@
     crop.type = V4L2_BUF_TYPE_OUTPUT;
     crop.c.width  = src->width;
     crop.c.height = src->height;
-#ifdef BOARD_USE_V4L2_ION
-    crop.c.left   = src->start_x;
-    crop.c.top    = src->start_y;
-#else
     if (0x50 <= hw_ver) {
         crop.c.left   = src->start_x;
         crop.c.top    = src->start_y;
@@ -382,8 +316,6 @@
         crop.c.top    = 0;
     }
 
-#endif
-
     if (ioctl(fd, VIDIOC_S_CROP, &crop) < 0) {
         SEC_HWC_Log(HWC_LOG_ERROR, "%s::Error in video VIDIOC_S_CROP :"
                 "crop.c.left : (%d), crop.c.top : (%d), crop.c.width : (%d), crop.c.height : (%d)",
@@ -410,27 +342,10 @@
     struct v4l2_format      sFormat;
     struct v4l2_control     vc;
     struct v4l2_framebuffer fbuf;
-#ifdef BOARD_USE_V4L2_ION
-    struct v4l2_crop    crop;
-    struct v4l2_requestbuffers req;
-#endif
     int ret;
 
-#ifdef BOARD_USE_V4L2_ION
-    /* You MUST initialize structure for v4l2 */
-    memset(&sFormat, 0, sizeof(sFormat));
-    memset(&vc, 0, sizeof(vc));
-    memset(&fbuf, 0, sizeof(fbuf));
-    memset(&crop, 0, sizeof(crop));
-    memset(&req, 0, sizeof(req));
-#endif
-
     /* set rotation configuration */
-#ifdef BOARD_USE_V4L2_ION
-    vc.id = V4L2_CID_ROTATE;
-#else
     vc.id = V4L2_CID_ROTATION;
-#endif
     vc.value = rotation;
 
     ret = ioctl(fd, VIDIOC_S_CTRL, &vc);
@@ -463,45 +378,6 @@
         return -1;
     }
 
-#ifdef BOARD_USE_V4L2_ION
-    /* set destination */
-    sFormat.type             = V4L2_BUF_TYPE_CAPTURE;
-    sFormat.fmt.pix_mp.width         = dst->full_width;
-    sFormat.fmt.pix_mp.height        = dst->full_height;
-    sFormat.fmt.pix_mp.pixelformat    = dst->color_space;
-    sFormat.fmt.pix_mp.num_planes    = dst->planes;
-    sFormat.fmt.pix.field            = V4L2_FIELD_ANY;
-
-    ret = ioctl(fd, VIDIOC_S_FMT, &sFormat);
-    if (ret < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "%s::Error in video VIDIOC_S_FMT (%d)", __func__, ret);
-        return -1;
-    }
-
-    /*  set destination window */
-    crop.type     = V4L2_BUF_TYPE_CAPTURE;
-    crop.c.left   = dst->start_x;
-    crop.c.top    = dst->start_y;
-    crop.c.width  = dst->width;
-    crop.c.height = dst->height;
-
-    ret = ioctl(fd, VIDIOC_S_CROP, &crop);
-    if (ret < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "%s::Error in video VIDIOC_S_CROP (%d)", __func__, ret);
-        return -1;
-    }
-
-    /*  input buffer type */
-    req.count       = 1;
-    req.type        = V4L2_BUF_TYPE_CAPTURE;
-    req.memory      = V4L2_MEMORY_USERPTR;
-
-    ret = ioctl (fd, VIDIOC_REQBUFS, &req);
-    if (ret < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "%s::Error in VIDIOC_REQBUFS (%d)", __func__, ret);
-        return -1;
-    }
-#else
     /* set size, format & address for destination image (DMA-OUTPUT) */
     ret = ioctl(fd, VIDIOC_G_FBUF, &fbuf);
     if (ret < 0) {
@@ -532,7 +408,6 @@
         SEC_HWC_Log(HWC_LOG_ERROR, "%s::Error in video VIDIOC_S_FMT (%d)", __func__, ret);
         return -1;
     }
-#endif
 
     return 0;
 }
@@ -549,34 +424,15 @@
 
 int fimc_v4l2_queue(int fd, struct fimc_buf *fimc_buf, enum v4l2_buf_type type, int index)
 {
-#ifdef BOARD_USE_V4L2_ION
-    struct v4l2_plane plane[3];
-    int i;
-#endif
     struct v4l2_buffer buf;
     int ret;
 
-#ifdef BOARD_USE_V4L2_ION
-    buf.length      = fimc_buf->planes;
-#else
     buf.length      = 0;
     buf.m.userptr   = (unsigned long)fimc_buf;
-#endif
     buf.memory      = V4L2_MEMORY_USERPTR;
     buf.index       = index;
     buf.type        = type;
 
-#ifdef BOARD_USE_V4L2_ION
-    if (buf.type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE ||
-        buf.type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
-        for (i = 0; i < buf.length; i++) {
-            plane[i].m.userptr = fimc_buf->base[i];
-            plane[i].length = fimc_buf->size[i];
-        }
-    }
-    buf.m.planes = plane;
-#endif
-
     ret = ioctl(fd, VIDIOC_QBUF, &buf);
     if (0 > ret) {
         SEC_HWC_Log(HWC_LOG_ERROR, "Error in VIDIOC_QBUF : (%d)", ret);
@@ -589,14 +445,7 @@
 int fimc_v4l2_dequeue(int fd, struct fimc_buf *fimc_buf, enum v4l2_buf_type type)
 {
     struct v4l2_buffer          buf;
-#ifdef BOARD_USE_V4L2_ION
-    struct v4l2_plane plane[3];
-#endif
 
-#ifdef BOARD_USE_V4L2_ION
-    buf.m.planes    = plane;
-    buf.length      = fimc_buf->planes;
-#endif
     buf.memory      = V4L2_MEMORY_USERPTR;
     buf.type        = type;
 
@@ -654,27 +503,6 @@
     check_fps();
 #endif
 
-#ifdef BOARD_USE_V4L2_ION
-    if (fimc_v4l2_queue(fd, fimc_src_buf, V4L2_BUF_TYPE_OUTPUT, 0) < 0) {
-         SEC_HWC_Log(HWC_LOG_ERROR, "Fail : SRC v4l2_queue()");
-         return -1;
-     }
-
-    if (fimc_v4l2_queue(fd, fimc_dst_buf, V4L2_BUF_TYPE_CAPTURE, 0) < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "Fail : DST v4l2_queue()");
-        return -2;
-    }
-
-    if (fimc_v4l2_stream_on(fd, V4L2_BUF_TYPE_OUTPUT) < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "Fail : SRC v4l2_stream_on()");
-        return -3;
-    }
-
-    if (fimc_v4l2_stream_on(fd, V4L2_BUF_TYPE_CAPTURE) < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "Fail : DST v4l2_stream_on()");
-        return -4;
-    }
-#else
     if (fimc_v4l2_stream_on(fd, V4L2_BUF_TYPE_OUTPUT) < 0) {
         SEC_HWC_Log(HWC_LOG_ERROR, "Fail : SRC v4l2_stream_on()");
         return -5;
@@ -684,38 +512,19 @@
         SEC_HWC_Log(HWC_LOG_ERROR, "Fail : SRC v4l2_queue()");
         goto STREAM_OFF;
     }
-#endif
     if (fimc_v4l2_dequeue(fd, fimc_src_buf, V4L2_BUF_TYPE_OUTPUT) < 0) {
         SEC_HWC_Log(HWC_LOG_ERROR, "Fail : SRC v4l2_dequeue()");
         return -6;
     }
-#ifdef BOARD_USE_V4L2_ION
-    if (fimc_v4l2_dequeue(fd, fimc_dst_buf, V4L2_BUF_TYPE_CAPTURE) < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "Fail : DST v4l2_dequeue()");
-        return -7;
-    }
-#endif
 STREAM_OFF:
     if (fimc_v4l2_stream_off(fd, V4L2_BUF_TYPE_OUTPUT) < 0) {
         SEC_HWC_Log(HWC_LOG_ERROR, "Fail : SRC  v4l2_stream_off()");
         return -8;
     }
-#ifdef BOARD_USE_V4L2_ION 
-    if (fimc_v4l2_stream_off(fd, V4L2_BUF_TYPE_CAPTURE) < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "Fail : DST  v4l2_stream_off()");
-        return -9;
-    }
-#endif
     if (fimc_v4l2_clr_buf(fd, V4L2_BUF_TYPE_OUTPUT) < 0) {
         SEC_HWC_Log(HWC_LOG_ERROR, "Fail : SRC v4l2_clr_buf()");
         return -10;
     }
-#ifdef BOARD_USE_V4L2_ION
-    if (fimc_v4l2_clr_buf(fd, V4L2_BUF_TYPE_CAPTURE)< 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "Fail : DST v4l2_clr_buf()");
-        return -11;
-    }
-#endif
     return 0;
 }
 
@@ -823,17 +632,11 @@
         sec_img *src_img, sec_rect *src_rect)
 {
     s5p_fimc_t *fimc = &ctx->fimc;
-    struct s3c_mem_alloc *ptr_mem_alloc = &ctx->s3c_mem.mem_alloc[0];
-    struct s3c_mem_dma_param s3c_mem_dma;
-#ifdef USE_HW_PMEM
-    sec_pmem_alloc_t *pm_alloc = &ctx->sec_pmem.sec_pmem_alloc[0];
-#endif
 
     unsigned int src_virt_addr  = 0;
     unsigned int src_phys_addr  = 0;
     unsigned int src_frame_size = 0;
 
-    struct pmem_region region;
     ADDRS * addr;
 
     // error check routine
@@ -884,61 +687,16 @@
             }
             break;
         default:
-#ifdef BOARD_USE_V4L2_ION
-            fimc->params.src.buf_addr_phy_rgb_y = src_img->base;
-            fimc->params.src.buf_addr_phy_cb = src_img->base + src_img->uoffset;
-            fimc->params.src.buf_addr_phy_cr = src_img->base + src_img->uoffset + src_img->voffset;
-            src_phys_addr = fimc->params.src.buf_addr_phy_rgb_y;
-            break;
-#endif
             if (src_img->usage & GRALLOC_USAGE_HW_FIMC1) {
                 fimc->params.src.buf_addr_phy_rgb_y = src_img->paddr;
                 fimc->params.src.buf_addr_phy_cb = src_img->paddr + src_img->uoffset;
                 fimc->params.src.buf_addr_phy_cr = src_img->paddr + src_img->uoffset + src_img->voffset;
                 src_phys_addr = fimc->params.src.buf_addr_phy_rgb_y;
-             break;
-             }
-            // copy
-            src_frame_size = FRAME_SIZE(src_img->format, src_img->w, src_img->h);
-            if (src_frame_size == 0) {
-                SEC_HWC_Log(HWC_LOG_ERROR, "%s::FRAME_SIZE fail", __func__);
-                return 0;
-            }
-
-#ifdef USE_HW_PMEM
-            if (0 <= checkPmem(&ctx->sec_pmem, 0, src_frame_size)) {
-                src_virt_addr   = pm_alloc->virt_addr;
-                src_phys_addr   = pm_alloc->phys_addr;
-                pm_alloc->size  = src_frame_size;
-            } else
-#endif
-            if (0 <= checkMem(&ctx->s3c_mem, 0, src_frame_size)) {
-                src_virt_addr       = ptr_mem_alloc->vir_addr;
-                src_phys_addr       = ptr_mem_alloc->phy_addr;
-                ptr_mem_alloc->size = src_frame_size;
             } else {
-                SEC_HWC_Log(HWC_LOG_ERROR, "%s::check_mem fail", __func__);
-                return 0;
+                SEC_HWC_Log(HWC_LOG_ERROR, "%s::\nformat = 0x%x : Not "
+                        "GRALLOC_USAGE_HW_FIMC1 can not supported\n",
+                        __func__, src_img->format);
             }
-            if ((src_img->format == HAL_PIXEL_FORMAT_YCbCr_420_P) ||
-                (src_img->format == HAL_PIXEL_FORMAT_YV12) ||
-                (src_img->format == HAL_PIXEL_FORMAT_YCbCr_420_SP) ||
-                (src_img->format == HAL_PIXEL_FORMAT_YCrCb_420_SP)) {
-                if (memcpy_rect((void *)src_virt_addr, (void*)((unsigned int)src_img->base),
-                            src_img->f_w, src_img->f_h, src_rect->w, src_rect->h, src_img->format) != 0)
-                    return 0;
-            } else {
-                memcpy((void *)src_virt_addr, (void*)((unsigned int)src_img->base), src_frame_size);
-            }
-
-#ifdef USE_HW_PMEM
-            if (pm_alloc->size  == src_frame_size) {
-                region.offset = 0;
-                region.len = src_frame_size;
-                if (ioctl(ctx->sec_pmem.pmem_master_fd, PMEM_CACHE_FLUSH, &region) < 0)
-                    SEC_HWC_Log(HWC_LOG_ERROR, "%s::pmem cache flush fail ", __func__);
-            }
-#endif
             break;
         }
     }
@@ -946,19 +704,6 @@
     return src_phys_addr;
 }
 
-static int get_dst_phys_addr(struct hwc_context_t *ctx, sec_img *dst_img,
-        sec_rect *dst_rect, int *dst_memcpy_flag)
-{
-    unsigned int dst_phys_addr  = 0;
-
-    if (HWC_PHYS_MEM_TYPE == dst_img->mem_type && 0 != dst_img->base)
-        dst_phys_addr = dst_img->base;
-    else
-        dst_phys_addr = dst_img->base;
-
-    return dst_phys_addr;
-}
-
 static inline int rotateValueHAL2PP(unsigned char transform)
 {
     int rotate_flag = transform & 0x7;
@@ -1049,11 +794,7 @@
 
 static inline int widthOfPP(unsigned int ver, int pp_color_format, int number)
 {
-#ifdef BOARD_USE_V4L2_ION
-    if (1) {
-#else
     if (0x50 <= ver) {
-#endif
         switch (pp_color_format) {
         /* 422 1/2/3 plane */
         case V4L2_PIX_FMT_YUYV:
@@ -1156,7 +897,7 @@
         return yuv_list[sel].planes;
 }
 
-static int runcFimcCore(struct hwc_context_t *ctx,
+static int runFimcCore(struct hwc_context_t *ctx,
         unsigned int src_phys_addr, sec_img *src_img, sec_rect *src_rect,
         uint32_t src_color_space,
         unsigned int dst_phys_addr, sec_img *dst_img, sec_rect *dst_rect,
@@ -1168,18 +909,12 @@
     struct fimc_buf fimc_src_buf;
     int src_bpp, src_planes;
 
-#ifdef BOARD_USE_V4L2_ION
-    struct fimc_buf fimc_dst_buf;
-    int dst_bpp, dst_planes;
-    unsigned int src_frame_size = 0;
-    unsigned int dst_frame_size = 0;
-#endif
     unsigned int    frame_size = 0;
 
     bool src_cbcr_order = true;
     int rotate_value = rotateValueHAL2PP(transform);
-    int hflip = hflipValueHAL2PP(transform);
-    int vflip = vflipValueHAL2PP(transform);
+    int hflip = 0;
+    int vflip = 0;
 
     /* 1. param(fimc config)->src information
      *    - src_img,src_rect => s_fw,s_fh,s_w,s_h,s_x,s_y
@@ -1193,17 +928,6 @@
     params->src.color_space = src_color_space;
     params->src.buf_addr_phy_rgb_y = src_phys_addr;
 
-#ifdef BOARD_USE_V4L2_ION
-    params->dst.full_width  = dst_img->f_w;
-    params->dst.full_height = dst_img->f_h;
-    params->dst.width       = widthOfPP(fimc->hw_ver, dst_color_space, dst_rect->w);
-    params->dst.height      = heightOfPP(dst_color_space, dst_rect->h);
-    params->dst.start_x     = dst_rect->x;
-    params->dst.start_y     = dst_rect->y;
-    params->dst.color_space = dst_color_space;
-    params->dst.buf_addr_phy_rgb_y = dst_phys_addr;
-#endif
-
     /* check src minimum */
     if (src_rect->w < 16 || src_rect->h < 8) {
         SEC_HWC_Log(HWC_LOG_ERROR,
@@ -1217,13 +941,13 @@
         return -1;
     }
 
-#ifdef BOARD_USE_V4L2_ION
-#else
     /* 2. param(fimc config)->dst information
      *    - dst_img,dst_rect,rot => d_fw,d_fh,d_w,d_h,d_x,d_y
      */
     switch (rotate_value) {
     case 0:
+        hflip = hflipValueHAL2PP(transform);
+        vflip = vflipValueHAL2PP(transform);
         params->dst.full_width  = dst_img->f_w;
         params->dst.full_height = dst_img->f_h;
 
@@ -1235,6 +959,8 @@
         params->dst.height      = heightOfPP(dst_color_space, dst_rect->h);
         break;
     case 90:
+        hflip = vflipValueHAL2PP(transform);
+        vflip = hflipValueHAL2PP(transform);
         params->dst.full_width  = dst_img->f_h;
         params->dst.full_height = dst_img->f_w;
 
@@ -1277,10 +1003,9 @@
         break;
     }
     params->dst.color_space = dst_color_space;
-#endif
 
     SEC_HWC_Log(HWC_LOG_DEBUG,
-            "runcFimcCore()::"
+            "runFimcCore()::"
             "SRC f.w(%d),f.h(%d),x(%d),y(%d),w(%d),h(%d)=>"
             "DST f.w(%d),f.h(%d),x(%d),y(%d),w(%d),h(%d)",
             params->src.full_width, params->src.full_height,
@@ -1320,35 +1045,6 @@
      *   - set input buffer
      *   - set buffer type (V4L2_MEMORY_USERPTR)
      */
-#ifdef BOARD_USE_V4L2_ION
-    switch (dst_img->format) {
-    case HAL_PIXEL_FORMAT_RGBA_8888:
-    case HAL_PIXEL_FORMAT_RGBX_8888:
-    case HAL_PIXEL_FORMAT_RGB_888:
-    case HAL_PIXEL_FORMAT_BGRA_8888:
-        dst_planes = 1;
-        dst_bpp = 32;
-        break;
-
-    case HAL_PIXEL_FORMAT_RGB_565:
-    case HAL_PIXEL_FORMAT_RGBA_5551:
-    case HAL_PIXEL_FORMAT_RGBA_4444:
-        dst_planes = 1;
-        dst_bpp = 16;
-        break;
-    }
-
-    dst_frame_size = params->dst.width * params->dst.height ;
-    params->dst.planes = dst_planes;
-
-    if (dst_planes == 1) {
-        fimc_dst_buf.base[0] = params->dst.buf_addr_phy_rgb_y;
-        if (dst_bpp == 32)
-            fimc_dst_buf.size[0] = dst_frame_size * 4;
-        else if (dst_bpp == 16)
-             fimc_dst_buf.size[0] = dst_frame_size * 2;
-    }
-#endif
 
     if (fimc_v4l2_set_dst(fimc->dev_fd, &params->dst, rotate_value, hflip, vflip, dst_phys_addr) < 0) {
         SEC_HWC_Log(HWC_LOG_ERROR, "fimc_v4l2_set_dst is failed\n");
@@ -1361,16 +1057,13 @@
      *   - set input buffer
      *   - set buffer type (V4L2_MEMORY_USERPTR)
      */
-#ifndef BOARD_USE_V4L2_ION
     if (fimc_v4l2_set_src(fimc->dev_fd, fimc->hw_ver, &params->src) < 0) {
         SEC_HWC_Log(HWC_LOG_ERROR, "fimc_v4l2_set_src is failed\n");
         return -1;
     }
-#endif
 
     /* 5. Set input dma address (Y/RGB, Cb, Cr)
      *    - zero copy : mfc, camera
-     *    - memcpy to pmem : SW dec(420P), video editor(YV12)
      */
     switch (src_img->format) {
     case HAL_PIXEL_FORMAT_CUSTOM_YCbCr_420_SP:
@@ -1390,32 +1083,9 @@
     case HAL_PIXEL_FORMAT_RGB_565:
     case HAL_PIXEL_FORMAT_YV12:
     default:
-        if (src_img->format == HAL_PIXEL_FORMAT_YV12)
+        if (src_img->format == HAL_PIXEL_FORMAT_YV12){
             src_cbcr_order = false;
-
-#ifdef BOARD_USE_V4L2_ION
-        fimc_src_buf.base[0] = params->src.buf_addr_phy_rgb_y;
-        if (src_cbcr_order == true) {
-            fimc_src_buf.base[1] = params->src.buf_addr_phy_cb;
-            fimc_src_buf.base[2] = params->src.buf_addr_phy_cr;
-        } else {
-            fimc_src_buf.base[1] = params->src.buf_addr_phy_cr;
-            fimc_src_buf.base[2] = params->src.buf_addr_phy_cb;
         }
-        SEC_HWC_Log(HWC_LOG_DEBUG,
-                "runFimcCore - Y=0x%X, U=0x%X, V=0x%X\n",
-                fimc_src_buf.base[0], fimc_src_buf.base[1],fimc_src_buf.base[2]);
-        src_frame_size = params->src.full_width * params->src.full_height;
-        fimc_src_buf.size[0] = src_frame_size;
-        fimc_src_buf.size[1] = src_frame_size >> 2;
-        fimc_src_buf.size[2] = src_frame_size >> 2;
-        SEC_HWC_Log(HWC_LOG_DEBUG,
-                "runFimcCore - Y_length=%d, U_length=%d, V_length=%d\n",
-                fimc_src_buf.size[0], fimc_src_buf.size[1],fimc_src_buf.size[2]);
-        src_planes = get_yuv_planes(src_color_space);
-
-        break;
-#endif
 
         if (src_img->usage & GRALLOC_USAGE_HW_FIMC1) {
             fimc_src_buf.base[0] = params->src.buf_addr_phy_rgb_y;
@@ -1432,108 +1102,20 @@
                     fimc_src_buf.base[0], fimc_src_buf.base[1],fimc_src_buf.base[2]);
             break;
         }
-
-        /* set source Y image */
-        fimc_src_buf.base[0] = params->src.buf_addr_phy_rgb_y;
-        /* set source Cb,Cr images for 2 or 3 planes */
-        src_bpp    = get_yuv_bpp(src_color_space);
-        src_planes = get_yuv_planes(src_color_space);
-        if (2 == src_planes) {          /* 2 planes */
-            frame_size = params->src.full_width * params->src.full_height;
-            params->src.buf_addr_phy_cb =
-                params->src.buf_addr_phy_rgb_y + frame_size;
-            /* CbCr */
-            fimc_src_buf.base[1] = params->src.buf_addr_phy_cb;
-        } else if (3 == src_planes) {   /* 3 planes */
-            frame_size = params->src.full_width * params->src.full_height;
-            params->src.buf_addr_phy_cb =
-                params->src.buf_addr_phy_rgb_y + frame_size;
-            if (12 == src_bpp)
-                params->src.buf_addr_phy_cr =
-                    params->src.buf_addr_phy_cb + (frame_size >> 2);
-            else
-                params->src.buf_addr_phy_cr =
-                    params->src.buf_addr_phy_cb + (frame_size >> 1);
-            /* Cb, Cr */
-            if (src_cbcr_order == true) {
-                fimc_src_buf.base[1] = params->src.buf_addr_phy_cb;
-                fimc_src_buf.base[2] = params->src.buf_addr_phy_cr;
-            }
-            else {
-                fimc_src_buf.base[2] = params->src.buf_addr_phy_cb;
-                fimc_src_buf.base[1] = params->src.buf_addr_phy_cr;
-            }
-        }
-        break;
     }
 
     /* 6. Run FIMC
      *    - stream on => queue => dequeue => stream off => clear buf
      */
-#ifdef BOARD_USE_V4L2_ION
-    int ret = 0;
-    params->src.planes = src_planes;
-
-    if (fimc_v4l2_set_src(fimc->dev_fd, fimc->hw_ver, &params->src) < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "fimc_v4l2_set_src is failed\n");
-        return -1;
-    }
-
-    fimc_src_buf.planes = src_planes;
-    fimc_dst_buf.planes = dst_planes;
-
-    ret = fimc_handle_oneshot(fimc->dev_fd, &fimc_src_buf, &fimc_dst_buf);
-
-    if (ret < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR,"fimc_handle_oneshot = %d\n",ret);
-        if (ret == -2) {
-            fimc_v4l2_clr_buf(fimc->dev_fd, V4L2_BUF_TYPE_OUTPUT);
-        } else if (ret == -3) {
-            fimc_v4l2_clr_buf(fimc->dev_fd, V4L2_BUF_TYPE_OUTPUT);
-            fimc_v4l2_clr_buf(fimc->dev_fd, V4L2_BUF_TYPE_CAPTURE);
-        }
-        return ret;
-    }
-#else
     if (fimc_handle_oneshot(fimc->dev_fd, &fimc_src_buf, NULL) < 0) {
+        ALOGE("fimcrun fail");            
         fimc_v4l2_clr_buf(fimc->dev_fd, V4L2_BUF_TYPE_OUTPUT);
         return -1;
     }
-#endif
 
     return 0;
 }
 
-#ifdef SUB_TITLES_HWC
-int createG2d(sec_g2d_t *g2d)
-{
-    g2d->dev_fd = open(SEC_G2D_DEV_NAME, O_RDWR);
-
-    if (g2d->dev_fd <= 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "%s::G2d open error (%d)", __func__, errno);
-        goto err;
-    }
-
-    return 0;
-err:
-    if (0 < g2d->dev_fd)
-        close(g2d->dev_fd);
-    g2d->dev_fd =0;
-
-    return -1;
-}
-
-int destroyG2d(sec_g2d_t *g2d)
-{
-    // close
-    if (0 < g2d->dev_fd)
-        close(g2d->dev_fd);
-    g2d->dev_fd = 0;
-
-    return 0;
-}
-#endif
-
 int createFimc(s5p_fimc_t *fimc)
 {
     struct v4l2_capability cap;
@@ -1575,8 +1157,6 @@
         goto err;
     }
 
-#ifdef BOARD_USE_V4L2_ION
-#else
     vc.id = V4L2_CID_FIMC_VERSION;
     vc.value = 0;
 
@@ -1585,7 +1165,6 @@
         goto err;
     }
     fimc->hw_ver = vc.value;
-#endif
 
     return 0;
 
@@ -1622,7 +1201,6 @@
     unsigned int src_phys_addr  = 0;
     unsigned int dst_phys_addr  = 0;
     int          rotate_value   = 0;
-    int          flag_force_memcpy = 0;
     int32_t      src_color_space;
     int32_t      dst_color_space;
 
@@ -1632,7 +1210,7 @@
         return -1;
 
     /* 2. destination address and size */
-    dst_phys_addr = get_dst_phys_addr(ctx, dst_img, dst_rect, &flag_force_memcpy);
+    dst_phys_addr = dst_img->base;
     if (0 == dst_phys_addr)
         return -2;
 
@@ -1645,433 +1223,38 @@
         return -4;
 
     /* 4. FIMC: src_rect of src_img => dst_rect of dst_img */
-    if (runcFimcCore(ctx, src_phys_addr, src_img, src_rect,
+    if (runFimcCore(ctx, src_phys_addr, src_img, src_rect,
                 (uint32_t)src_color_space, dst_phys_addr, dst_img, dst_rect,
                 (uint32_t)dst_color_space, transform) < 0)
         return -5;
 
-    if (flag_force_memcpy == 1) {
-#ifdef USE_HW_PMEM
-        if (0 != ctx->sec_pmem.sec_pmem_alloc[1].size) {
-            struct s3c_mem_dma_param s3c_mem_dma;
-
-            s3c_mem_dma.src_addr =
-                (unsigned long)(ctx->sec_pmem.sec_pmem_alloc[1].virt_addr);
-            s3c_mem_dma.size     = ctx->sec_pmem.sec_pmem_alloc[1].size;
-
-            ioctl(ctx->s3c_mem.fd, S3C_MEM_CACHE_INVAL, &s3c_mem_dma);
-
-            memcpy((void*)((unsigned int)dst_img->base),
-                    (void *)(ctx->sec_pmem.sec_pmem_alloc[1].virt_addr),
-                    ctx->sec_pmem.sec_pmem_alloc[1].size);
-        } else
-#endif
-        {
-            struct s3c_mem_alloc *ptr_mem_alloc = &ctx->s3c_mem.mem_alloc[1];
-            struct s3c_mem_dma_param s3c_mem_dma;
-
-            s3c_mem_dma.src_addr = (unsigned long)ptr_mem_alloc->vir_addr;
-            s3c_mem_dma.size     = ptr_mem_alloc->size;
-
-            ioctl(ctx->s3c_mem.fd, S3C_MEM_CACHE_INVAL, &s3c_mem_dma);
-
-            memcpy((void*)((unsigned int)dst_img->base),
-                    (void *)ptr_mem_alloc->vir_addr, ptr_mem_alloc->size);
-        }
-    }
-
     return 0;
 }
 
-#ifdef SUB_TITLES_HWC
-static int get_g2d_src_phys_addr(struct hwc_context_t  *ctx, g2d_rect *src_rect)
-{
-    sec_g2d_t  *g2d = &ctx->g2d;
-    struct s3c_mem_alloc *ptr_mem_alloc = &ctx->s3c_mem.mem_alloc[0];
-#ifdef USE_HW_PMEM
-    sec_pmem_alloc_t *pm_alloc = &ctx->sec_pmem.sec_pmem_alloc[0];
-#endif
-
-    unsigned int src_virt_addr  = 0;
-    unsigned int src_phys_addr  = 0;
-    unsigned int src_frame_size = 0;
-
-    struct pmem_region region;
-
-    // error check routine
-    if (0 == src_rect->virt_addr) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "%s invalid src address\n", __func__);
-        return 0;
-    }
-
-    src_frame_size = FRAME_SIZE(src_rect->color_format,
-            src_rect->full_w, src_rect->full_h);
-    if (src_frame_size == 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "%s::FRAME_SIZE fail", __func__);
-        return 0;
-    }
-
-#ifdef USE_HW_PMEM
-    if (0 <= checkPmem(&ctx->sec_pmem, 0, src_frame_size)) {
-        src_virt_addr   = pm_alloc->virt_addr;
-        src_phys_addr   = pm_alloc->phys_addr;
-        pm_alloc->size  = src_frame_size;
-    } else
-#endif
-    if (0 <= checkMem(&ctx->s3c_mem, 0, src_frame_size)) {
-        src_virt_addr       = ptr_mem_alloc->vir_addr;
-        src_phys_addr       = ptr_mem_alloc->phy_addr;
-        ptr_mem_alloc->size = src_frame_size;
-    } else {
-        SEC_HWC_Log(HWC_LOG_ERROR, "%s::check_mem fail", __func__);
-        return 0;
-    }
-    memcpy((void *)src_virt_addr, (void*)((unsigned int)src_rect->virt_addr), src_frame_size);
-
-    return src_phys_addr;
-}
-
-int get_HAL_2_G2D_FORMAT(int format)
-{
-    switch (format) {
-    case    HAL_PIXEL_FORMAT_RGBA_8888:     return  G2D_ABGR_8888;
-    case    HAL_PIXEL_FORMAT_RGBX_8888:     return  G2D_XBGR_8888;
-    case    HAL_PIXEL_FORMAT_BGRA_8888:     return  G2D_ARGB_8888;
-    case    HAL_PIXEL_FORMAT_RGB_888:       return  G2D_PACKED_BGR_888;
-    case    HAL_PIXEL_FORMAT_RGB_565:       return  G2D_RGB_565;
-    case    HAL_PIXEL_FORMAT_RGBA_5551:     return  G2D_RGBA_5551;
-    case    HAL_PIXEL_FORMAT_RGBA_4444:     return  G2D_RGBA_4444;
+int check_yuv_format(unsigned int color_format) {
+    switch (color_format) {
+    case HAL_PIXEL_FORMAT_YV12:
+    case HAL_PIXEL_FORMAT_YCbCr_422_SP:
+    case HAL_PIXEL_FORMAT_YCrCb_420_SP:
+    case HAL_PIXEL_FORMAT_YCbCr_422_I:
+    case HAL_PIXEL_FORMAT_YCbCr_422_P:
+    case HAL_PIXEL_FORMAT_YCbCr_420_P:
+    case HAL_PIXEL_FORMAT_YCbCr_420_I:
+    case HAL_PIXEL_FORMAT_CbYCrY_422_I:
+    case HAL_PIXEL_FORMAT_CbYCrY_420_I:
+    case HAL_PIXEL_FORMAT_YCbCr_420_SP:
+    case HAL_PIXEL_FORMAT_YCrCb_422_SP:
+    case HAL_PIXEL_FORMAT_CUSTOM_YCbCr_420_SP:
+    case HAL_PIXEL_FORMAT_CUSTOM_YCrCb_420_SP:
+    case HAL_PIXEL_FORMAT_CUSTOM_YCbCr_420_SP_TILED:
+    case HAL_PIXEL_FORMAT_CUSTOM_YCbCr_422_SP:
+    case HAL_PIXEL_FORMAT_CUSTOM_YCrCb_422_SP:
+    case HAL_PIXEL_FORMAT_CUSTOM_YCbCr_422_I:
+    case HAL_PIXEL_FORMAT_CUSTOM_YCrCb_422_I:
+    case HAL_PIXEL_FORMAT_CUSTOM_CbYCrY_422_I:
+    case HAL_PIXEL_FORMAT_CUSTOM_CrYCbY_422_I:
+        return 1;
     default:
-        return -1;
-    }
-}
-
-static inline int rotateValueHAL2G2D(unsigned char transform)
-{
-    int rotate_flag = transform & 0x7;
-
-    switch (rotate_flag) {
-    case HAL_TRANSFORM_ROT_90:  return G2D_ROT_90;
-    case HAL_TRANSFORM_ROT_180: return G2D_ROT_180;
-    case HAL_TRANSFORM_ROT_270: return G2D_ROT_270;
-    default:
-        return G2D_ROT_0;
-    }
-}
-
-int runG2d(struct hwc_context_t *ctx, g2d_rect *src_rect, g2d_rect *dst_rect,
-            uint32_t transform)
-{
-    sec_g2d_t *  g2d = &ctx->g2d;
-    g2d_flag flag = {G2D_ROT_0, G2D_ALPHA_BLENDING_OPAQUE, 0, 0, 0, 0, 0, 0};
-    int          rotate_value   = 0;
-
-    // 1 : source address and size
-    src_rect->phys_addr = get_g2d_src_phys_addr(ctx, src_rect);
-    if (0 == src_rect->phys_addr)
-        return -1;
-
-    // 2 : destination address and size
-    if (0 == dst_rect->phys_addr)
-        return -2;
-
-    // check whether g2d supports the src format
-    src_rect->color_format = get_HAL_2_G2D_FORMAT(src_rect->color_format);
-    if (0 > src_rect->color_format)
-        return -3;
-
-    dst_rect->color_format = get_HAL_2_G2D_FORMAT(dst_rect->color_format);
-    if (0 > dst_rect->color_format)
-        return -4;
-
-    flag.rotate_val = rotateValueHAL2G2D(transform);
-
-   // scale and rotate and alpha with FIMG
-    if(stretchSecFimg(src_rect, dst_rect, &flag) < 0)
-        return -5;
-
-    return 0;
-}
-#endif
-
-int createMem(struct s3c_mem_t *mem, unsigned int index, unsigned int size)
-{
-    struct s3c_mem_alloc *ptr_mem_alloc;
-    struct s3c_mem_alloc mem_alloc_info;
-
-    if (index >= NUM_OF_MEM_OBJ) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "%s::invalid index (%d >= %d)",
-                __func__, index, NUM_OF_MEM_OBJ);
-        goto err;
-    }
-
-    ptr_mem_alloc = &mem->mem_alloc[index];
-
-    if (mem->fd <= 0) {
-        mem->fd = open(S3C_MEM_DEV_NAME, O_RDWR);
-        if (mem->fd <= 0) {
-            SEC_HWC_Log(HWC_LOG_ERROR, "%s::open(%s) fail(%s)",
-                    __func__, S3C_MEM_DEV_NAME, strerror(errno));
-            goto err;
-        }
-    }
-
-    // kcoolsw : what the hell of this line??
-    if (0 == size)
         return 0;
-
-    mem_alloc_info.size = size;
-
-    if (ioctl(mem->fd, S3C_MEM_CACHEABLE_ALLOC, &mem_alloc_info) < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "%s::S3C_MEM_ALLOC(size : %d) fail",
-                __func__, mem_alloc_info.size);
-        goto err;
     }
-
-    ptr_mem_alloc->phy_addr = mem_alloc_info.phy_addr;
-    ptr_mem_alloc->vir_addr = mem_alloc_info.vir_addr;
-    ptr_mem_alloc->size     = mem_alloc_info.size;
-
-    return 0;
-
-err:
-    if (0 < mem->fd)
-        close(mem->fd);
-    mem->fd = 0;
-
-    return 0;
 }
-
-int destroyMem(struct s3c_mem_t *mem)
-{
-    int i;
-    struct s3c_mem_alloc *ptr_mem_alloc;
-
-    if (mem->fd <= 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "%s::invalied fd(%d) fail", __func__, mem->fd);
-        return -1;
-    }
-
-    for (i = 0; i < NUM_OF_MEM_OBJ; i++) {
-        ptr_mem_alloc = &mem->mem_alloc[i];
-
-        if (0 != ptr_mem_alloc->vir_addr) {
-            if (ioctl(mem->fd, S3C_MEM_FREE, ptr_mem_alloc) < 0) {
-                SEC_HWC_Log(HWC_LOG_ERROR, "%s::S3C_MEM_FREE fail", __func__);
-                return -1;
-            }
-
-            ptr_mem_alloc->phy_addr = 0;
-            ptr_mem_alloc->vir_addr = 0;
-            ptr_mem_alloc->size     = 0;
-        }
-    }
-
-    close(mem->fd);
-    mem->fd = 0;
-
-    return 0;
-}
-
-int checkMem(struct s3c_mem_t *mem, unsigned int index, unsigned int size)
-{
-    int ret;
-    struct s3c_mem_alloc *ptr_mem_alloc;
-    struct s3c_mem_alloc mem_alloc_info;
-
-    if (index >= NUM_OF_MEM_OBJ) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "%s::invalid index (%d >= %d)", __func__,
-                index, NUM_OF_MEM_OBJ);
-        return -1;
-    }
-
-    if (mem->fd <= 0) {
-        ret = createMem(mem, index, size);
-        return ret;
-    }
-
-    ptr_mem_alloc = &mem->mem_alloc[index];
-
-    if (ptr_mem_alloc->size < (int)size) {
-        if (0 < ptr_mem_alloc->size) {
-            // free allocated mem
-            if (ioctl(mem->fd, S3C_MEM_FREE, ptr_mem_alloc) < 0) {
-                SEC_HWC_Log(HWC_LOG_ERROR, "%s::S3C_MEM_FREE fail", __func__);
-                return -1;
-            }
-        }
-
-        // allocate mem with requested size
-        mem_alloc_info.size = size;
-        if (ioctl(mem->fd, S3C_MEM_CACHEABLE_ALLOC, &mem_alloc_info) < 0) {
-            SEC_HWC_Log(HWC_LOG_ERROR, "%s::S3C_MEM_ALLOC(size : %d)  fail",
-                    __func__, mem_alloc_info.size);
-            return -1;
-        }
-
-        ptr_mem_alloc->phy_addr = mem_alloc_info.phy_addr;
-        ptr_mem_alloc->vir_addr = mem_alloc_info.vir_addr;
-        ptr_mem_alloc->size     = mem_alloc_info.size;
-    }
-
-    return 0;
-}
-
-#ifdef USE_HW_PMEM
-int createPmem(sec_pmem_t *pm, unsigned int buf_size)
-{
-    int    master_fd, err = 0, i;
-    void  *base;
-    unsigned int phys_base;
-    size_t size, sub_size[NUM_OF_MEM_OBJ];
-    struct pmem_region region;
-
-    master_fd = open(PMEM_DEVICE_DEV_NAME, O_RDWR, 0);
-    if (master_fd < 0) {
-        pm->pmem_master_fd = -1;
-        if (EACCES == errno) {
-            return 0;
-        } else {
-            SEC_HWC_Log(HWC_LOG_ERROR, "%s::open(%s) fail(%s)",
-                    __func__, PMEM_DEVICE_DEV_NAME, strerror(errno));
-            return -errno;
-        }
-    }
-
-    if (ioctl(master_fd, PMEM_GET_TOTAL_SIZE, &region) < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "PMEM_GET_TOTAL_SIZE failed, default mode");
-        size = 8<<20;   // 8 MiB
-    } else {
-        size = region.len;
-    }
-
-    base = mmap(0, size, PROT_READ|PROT_WRITE, MAP_SHARED, master_fd, 0);
-    if (base == MAP_FAILED) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "[%s] mmap failed : %d (%s)", __func__,
-                errno, strerror(errno));
-        base = 0;
-        close(master_fd);
-        master_fd = -1;
-        return -errno;
-    }
-
-    if (ioctl(master_fd, PMEM_GET_PHYS, &region) < 0) {
-        SEC_HWC_Log(HWC_LOG_ERROR, "PMEM_GET_PHYS failed, limp mode");
-        region.offset = 0;
-    }
-
-    pm->pmem_master_fd   = master_fd;
-    pm->pmem_master_base = base;
-    pm->pmem_total_size  = size;
-    //pm->pmem_master_phys_base = region.offset;
-    phys_base = region.offset;
-
-    // sec_pmem_alloc[0] for temporary buffer for source
-    sub_size[0] = buf_size;
-    sub_size[0] = roundUpToPageSize(sub_size[0]);
-
-    for (i = 0; i < NUM_OF_MEM_OBJ; i++) {
-        sec_pmem_alloc_t *pm_alloc = &(pm->sec_pmem_alloc[i]);
-        int fd, ret;
-        int offset = i ? sub_size[i-1] : 0;
-        struct pmem_region sub = { offset, sub_size[i] };
-
-        // create the "sub-heap"
-        if (0 > (fd = open(PMEM_DEVICE_DEV_NAME, O_RDWR, 0))) {
-            SEC_HWC_Log(HWC_LOG_ERROR,
-                    "[%s][index=%d] open failed (%dL) : %d (%s)",
-                    __func__, i, __LINE__, errno, strerror(errno));
-            return -errno;
-        }
-
-        // connect to it
-        if (0 != (ret = ioctl(fd, PMEM_CONNECT, pm->pmem_master_fd))) {
-            SEC_HWC_Log(HWC_LOG_ERROR,
-                    "[%s][index=%d] ioctl(PMEM_CONNECT) failed : %d (%s)",
-                    __func__, i, errno, strerror(errno));
-            close(fd);
-            return -errno;
-        }
-
-        // make it available to the client process
-        if (0 != (ret = ioctl(fd, PMEM_MAP, &sub))) {
-            SEC_HWC_Log(HWC_LOG_ERROR,
-                    "[%s][index=%d] ioctl(PMEM_MAP) failed : %d (%s)",
-                    __func__, i, errno, strerror(errno));
-            close(fd);
-            return -errno;
-        }
-
-        pm_alloc->fd         = fd;
-        pm_alloc->total_size = sub_size[i];
-        pm_alloc->offset     = offset;
-        pm_alloc->virt_addr  = (unsigned int)base + (unsigned int)offset;
-        pm_alloc->phys_addr  = (unsigned int)phys_base + (unsigned int)offset;
-
-#if defined (PMEM_DEBUG)
-        SEC_HWC_Log(HWC_LOG_DEBUG, "[%s] pm_alloc[%d] fd=%d total_size=%d "
-                "offset=0x%x virt_addr=0x%x phys_addr=0x%x",
-                __func__, i, pm_alloc->fd, pm_alloc->total_size,
-                pm_alloc->offset, pm_alloc->virt_addr, pm_alloc->phys_addr);
-#endif
-    }
-
-    return err;
-}
-
-int destroyPmem(sec_pmem_t *pm)
-{
-    int i, err;
-
-    for (i=0; i<NUM_OF_MEM_OBJ; i++) {
-        sec_pmem_alloc_t *pm_alloc = &(pm->sec_pmem_alloc[i]);
-
-        if (0 <= pm_alloc->fd) {
-            struct pmem_region sub = { pm_alloc->offset, pm_alloc->total_size };
-
-            if (0 > (err = ioctl(pm_alloc->fd, PMEM_UNMAP, &sub)))
-                SEC_HWC_Log(HWC_LOG_ERROR,
-                        "[%s][index=%d] ioctl(PMEM_UNMAP) failed : %d (%s)",
-                        __func__, i, errno, strerror(errno));
-#if defined (PMEM_DEBUG)
-            else
-                SEC_HWC_Log(HWC_LOG_DEBUG,
-                        "[%s] pm_alloc[%d] unmap fd=%d total_size=%d offset=0x%x",
-                        __func__, i, pm_alloc->fd, pm_alloc->total_size,
-                        pm_alloc->offset);
-#endif
-            close(pm_alloc->fd);
-
-            pm_alloc->fd         = -1;
-            pm_alloc->total_size = 0;
-            pm_alloc->offset     = 0;
-            pm_alloc->virt_addr  = 0;
-            pm_alloc->phys_addr  = 0;
-        }
-    }
-
-    if (0 <= pm->pmem_master_fd) {
-        munmap(pm->pmem_master_base, pm->pmem_total_size);
-        close(pm->pmem_master_fd);
-        pm->pmem_master_fd = -1;
-    }
-
-    pm->pmem_master_base = 0;
-    pm->pmem_total_size  = 0;
-
-    return 0;
-}
-
-int checkPmem(sec_pmem_t *pm, unsigned int index, unsigned int requested_size)
-{
-    sec_pmem_alloc_t *pm_alloc = &(pm->sec_pmem_alloc[index]);
-
-    if (0 < pm_alloc->virt_addr &&
-            requested_size <= (unsigned int)(pm_alloc->total_size))
-        return 0;
-
-    pm_alloc->size = 0;
-    return -1;
-}
-
-#endif