From 4228cc8b9c526f4eb7db12fe6b78de5e6775c25a Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Fri, 24 Mar 2017 20:44:18 +0900 Subject: [PATCH] remove PrivGem PrivGem structure is useless. use the bo_exynos as a value of the hashtable. Change-Id: Iff0d4da14989e5b61ce818eebc5f48f73e032758 --- src/tbm_bufmgr_exynos.c | 71 ++++++----------------------------------- 1 file changed, 10 insertions(+), 61 deletions(-) diff --git a/src/tbm_bufmgr_exynos.c b/src/tbm_bufmgr_exynos.c index 8ce6f58..d7566ef 100644 --- a/src/tbm_bufmgr_exynos.c +++ b/src/tbm_bufmgr_exynos.c @@ -200,11 +200,6 @@ union _tbm_bo_cache_state { typedef struct _tbm_bufmgr_exynos *tbm_bufmgr_exynos; typedef struct _tbm_bo_exynos *tbm_bo_exynos; -typedef struct _exynos_private { - int ref_count; - struct _tbm_bo_exynos *bo_priv; -} PrivGem; - /* tbm buffor object for exynos */ struct _tbm_bo_exynos { int fd; @@ -222,8 +217,6 @@ struct _tbm_bo_exynos { unsigned int flags_exynos; unsigned int flags_tbm; - PrivGem *private; - pthread_mutex_t mutex; struct dma_buf_fence dma_fence[DMA_FENCE_LIST_MAX]; int device; @@ -1078,20 +1071,8 @@ tbm_exynos_bo_alloc(tbm_bo bo, int size, int flags) bo_exynos->dmabuf = arg.fd; } - /* add bo to hash */ - PrivGem *privGem = calloc(1, sizeof(PrivGem)); - - if (!privGem) { - TBM_EXYNOS_ERROR("fail to calloc privGem\n"); - free(bo_exynos); - return 0; - } - - privGem->ref_count = 1; - privGem->bo_priv = bo_exynos; - if (drmHashInsert(bufmgr_exynos->hashBos, bo_exynos->name, - (void *)privGem) < 0) { + (void *)bo_exynos) < 0) { TBM_EXYNOS_ERROR("Cannot insert bo to Hash(%d)\n", bo_exynos->name); } @@ -1140,18 +1121,12 @@ tbm_exynos_bo_free(tbm_bo bo) } /* delete bo from hash */ - PrivGem *privGem = NULL; int ret; ret = drmHashLookup(bufmgr_exynos->hashBos, bo_exynos->name, - (void **)&privGem); + (void **)&bo_exynos); if (ret == 0) { - privGem->ref_count--; - if (privGem->ref_count == 0) { - drmHashDelete(bufmgr_exynos->hashBos, bo_exynos->name); - free(privGem); - privGem = NULL; - } + drmHashDelete(bufmgr_exynos->hashBos, bo_exynos->name); } else { TBM_EXYNOS_ERROR("Cannot find bo to Hash(%d), ret=%d\n", bo_exynos->name, ret); @@ -1180,15 +1155,14 @@ tbm_exynos_bo_import(tbm_bo bo, unsigned int key) tbm_bufmgr_exynos bufmgr_exynos; tbm_bo_exynos bo_exynos; - PrivGem *privGem = NULL; int ret; bufmgr_exynos = (tbm_bufmgr_exynos)tbm_backend_get_bufmgr_priv(bo); EXYNOS_RETURN_VAL_IF_FAIL(bufmgr_exynos != NULL, 0); - ret = drmHashLookup(bufmgr_exynos->hashBos, key, (void **)&privGem); + ret = drmHashLookup(bufmgr_exynos->hashBos, key, (void **)&bo_exynos); if (ret == 0) - return privGem->bo_priv; + return bo_exynos; struct drm_gem_open arg = {0, }; struct drm_exynos_gem_info info = {0, }; @@ -1240,20 +1214,8 @@ tbm_exynos_bo_import(tbm_bo bo, unsigned int key) } /* add bo to hash */ - privGem = NULL; - - privGem = calloc(1, sizeof(PrivGem)); - if (!privGem) { - TBM_EXYNOS_ERROR("fail to calloc privGem\n"); - free(bo_exynos); - return 0; - } - - privGem->ref_count = 1; - privGem->bo_priv = bo_exynos; - if (drmHashInsert(bufmgr_exynos->hashBos, bo_exynos->name, - (void *)privGem) < 0) { + (void *)bo_exynos) < 0) { TBM_EXYNOS_ERROR("Cannot insert bo to Hash(%d)\n", bo_exynos->name); } @@ -1274,7 +1236,6 @@ tbm_exynos_bo_import_fd(tbm_bo bo, tbm_fd key) tbm_bufmgr_exynos bufmgr_exynos; tbm_bo_exynos bo_exynos; - PrivGem *privGem = NULL; unsigned int name; int ret; char buf[STRERR_BUFSIZE]; @@ -1302,10 +1263,10 @@ tbm_exynos_bo_import_fd(tbm_bo bo, tbm_fd key) return 0; } - ret = drmHashLookup(bufmgr_exynos->hashBos, name, (void **)&privGem); + ret = drmHashLookup(bufmgr_exynos->hashBos, name, (void **)&bo_exynos); if (ret == 0) { - if (gem == privGem->bo_priv->gem) - return privGem->bo_priv; + if (gem == bo_exynos->gem) + return bo_exynos; } unsigned int real_size = -1; @@ -1352,20 +1313,8 @@ tbm_exynos_bo_import_fd(tbm_bo bo, tbm_fd key) } /* add bo to hash */ - privGem = NULL; - - privGem = calloc(1, sizeof(PrivGem)); - if (!privGem) { - TBM_EXYNOS_ERROR("fail to calloc privGem\n"); - free(bo_exynos); - return 0; - } - - privGem->ref_count = 1; - privGem->bo_priv = bo_exynos; - if (drmHashInsert(bufmgr_exynos->hashBos, bo_exynos->name, - (void *)privGem) < 0) { + (void *)bo_exynos) < 0) { TBM_EXYNOS_ERROR("bo:%p Cannot insert bo to Hash(%d) from gem:%d, fd:%d\n", bo, bo_exynos->name, gem, key); } -- 2.34.1