Always control cache and lock 33/56233/1 accepted/tizen/mobile/20160107.100049 accepted/tizen/tv/20160107.100113 accepted/tizen/wearable/20160107.100128 submit/tizen/20160106.011232
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 5 Jan 2016 12:11:38 +0000 (21:11 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Tue, 5 Jan 2016 12:51:56 +0000 (21:51 +0900)
Change-Id: I7f1a4850bc711998cb3a9f1da373108078dd496a

configure.ac
src/tbm_bufmgr_exynos.c

index 9173bfe..bfda71b 100644 (file)
@@ -50,6 +50,15 @@ if test "x$CACHE_CTRL" = xyes; then
     AC_DEFINE(ENABLE_CACHECRTL, 1, [Enable cache control])
 fi
 
+AC_ARG_ENABLE(backendctrl,
+             AS_HELP_STRING([--enable-backendctrl],
+             [Enable always backend ctrl (default: enable)]),
+             [BACKENED_CTRL=$enableval], [BACKEND_CTRL=yes])
+
+if test "x$BACKEND_CTRL" = xyes; then
+    AC_DEFINE(ALWAYS_BACKEND_CTRL, 1, [Enable always backend ctrl])
+fi
+
 LIBTBM_EXYNOS_CFLAGS="$LIBDRM_CFLAGS $LIBDRM_EXYNOS_CFLAGS $LIBTBM_CFLAGS $DLOG_CFLAGS "
 LIBTBM_EXYNOS_LIBS="$LIBDRM_LIBS $LIBDRM_EXYNOS_LIBS $LIBTBM_LIBS $DLOG_LIBS "
 AC_SUBST(LIBTBM_EXYNOS_CFLAGS)
index 9ddce2c..ec6a7e4 100644 (file)
@@ -1007,6 +1007,7 @@ tbm_exynos_bo_lock(tbm_bo bo, int device, int opt)
 {
     EXYNOS_RETURN_VAL_IF_FAIL (bo!=NULL, 0);
 
+#ifndef ALWAYS_BACKEND_CTRL
     tbm_bufmgr_exynos bufmgr_exynos;
     tbm_bo_exynos bo_exynos;
     struct dma_buf_fence fence;
@@ -1105,6 +1106,7 @@ tbm_exynos_bo_lock(tbm_bo bo, int device, int opt)
           bo,
           bo_exynos->gem, bo_exynos->name,
           bo_exynos->dmabuf);
+#endif /* ALWAYS_BACKEND_CTRL */
 
     return 1;
 }
@@ -1114,6 +1116,7 @@ tbm_exynos_bo_unlock(tbm_bo bo)
 {
     EXYNOS_RETURN_VAL_IF_FAIL (bo!=NULL, 0);
 
+#ifndef ALWAYS_BACKEND_CTRL
     tbm_bo_exynos bo_exynos;
     struct dma_buf_fence fence;
     struct flock filelock;
@@ -1180,6 +1183,7 @@ tbm_exynos_bo_unlock(tbm_bo bo)
           bo,
           bo_exynos->gem, bo_exynos->name,
           bo_exynos->dmabuf);
+#endif /* ALWAYS_BACKEND_CTRL */
 
     return 1;
 }
@@ -1920,6 +1924,12 @@ init_tbm_bufmgr_priv (tbm_bufmgr bufmgr, int fd)
     bufmgr_backend->surface_get_num_bos = tbm_exynos_surface_get_num_bos;
     bufmgr_backend->bo_get_flags = tbm_exynos_bo_get_flags;
 
+#ifdef ALWAYS_BACKEND_CTRL
+    bufmgr_backend->flags = (TBM_LOCK_CTRL_BACKEND | TBM_CACHE_CTRL_BACKEND);
+    bufmgr_backend->bo_lock = NULL;
+    bufmgr_backend->bo_lock2 = tbm_exynos_bo_lock;
+    bufmgr_backend->bo_unlock = tbm_exynos_bo_unlock;
+#else
     if (bufmgr_exynos->use_dma_fence)
     {
         bufmgr_backend->flags = (TBM_LOCK_CTRL_BACKEND | TBM_CACHE_CTRL_BACKEND);
@@ -1933,6 +1943,7 @@ init_tbm_bufmgr_priv (tbm_bufmgr bufmgr, int fd)
         bufmgr_backend->bo_lock = NULL;
         bufmgr_backend->bo_unlock = NULL;
     }
+#endif /* ALWAYS_BACKEND_CTRL */
 
     if (!tbm_backend_init (bufmgr, bufmgr_backend))
     {