From 12f637e85536dab837e17f8298e4ef75bfa26b58 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Tue, 5 Jan 2016 21:11:38 +0900 Subject: [PATCH] Always control cache and lock Change-Id: I7f1a4850bc711998cb3a9f1da373108078dd496a --- configure.ac | 9 +++++++++ src/tbm_bufmgr_exynos.c | 11 +++++++++++ 2 files changed, 20 insertions(+) diff --git a/configure.ac b/configure.ac index 9173bfe..bfda71b 100644 --- a/configure.ac +++ b/configure.ac @@ -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) diff --git a/src/tbm_bufmgr_exynos.c b/src/tbm_bufmgr_exynos.c index 9ddce2c..ec6a7e4 100644 --- a/src/tbm_bufmgr_exynos.c +++ b/src/tbm_bufmgr_exynos.c @@ -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)) { -- 2.34.1