TBM_FORMAT_YUV420,
TBM_FORMAT_YVU420
};
-#ifdef USE_CACHE
+
static inline int
_tgl_init(int fd, unsigned int key)
{
return 1;
}
+#ifdef USE_CACHE
static inline int
_tgl_set_data(int fd, unsigned int key, unsigned int val)
{
return fd;
}
+#ifdef USE_CACHE
static int
_sprd_bo_cache_flush (tbm_bufmgr_sprd bufmgr_sprd, tbm_bo_sprd bo_sprd, int flags)
{
-#ifdef USE_CACHE
SPRD_RETURN_VAL_IF_FAIL (bufmgr_sprd != NULL, 0);
SPRD_RETURN_VAL_IF_FAIL (bo_sprd != NULL, 0);
getpid(), __FUNCTION__, __LINE__);
return 0;
}
-#endif
return 1;
}
+#endif
static int
_bo_init_cache_state(tbm_bufmgr_sprd bufmgr_sprd, tbm_bo_sprd bo_sprd, int import)
{
-#ifdef USE_CACHE
SPRD_RETURN_VAL_IF_FAIL (bo_sprd != NULL, 0);
SPRD_RETURN_VAL_IF_FAIL (bufmgr_sprd != NULL, 0);
- tbm_bo_cache_state cache_state;
-
if (bufmgr_sprd->use_dma_fence)
return 1;
_tgl_init(bufmgr_sprd->tgl_fd, bo_sprd->name);
+#ifdef USE_CACHE
+ tbm_bo_cache_state cache_state;
+
if (import == 0) {
cache_state.data.isDirtied = DEVICE_NONE;
cache_state.data.isCached = 0;
static void
_bo_destroy_cache_state(tbm_bufmgr_sprd bufmgr_sprd, tbm_bo_sprd bo_sprd)
{
-#ifdef USE_CACHE
SPRD_RETURN_IF_FAIL (bo_sprd != NULL);
SPRD_RETURN_IF_FAIL (bufmgr_sprd != NULL);
return;
_tgl_destroy(bufmgr_sprd->tgl_fd, bo_sprd->name);
-#endif
}
static int
_bufmgr_init_cache_state(tbm_bufmgr_sprd bufmgr_sprd)
{
-#ifdef USE_CACHE
SPRD_RETURN_VAL_IF_FAIL(bufmgr_sprd != NULL, 0);
if (bufmgr_sprd->use_dma_fence)
}
}
+#ifdef USE_CACHE
if (!_tgl_init(bufmgr_sprd->tgl_fd, GLOBAL_KEY)) {
TBM_SPRD_LOG("[libtbm-sprd:%d] "
"error: Fail to initialize the tgl\n",
static void
_bufmgr_deinit_cache_state(tbm_bufmgr_sprd bufmgr_sprd)
{
-#ifdef USE_CACHE
SPRD_RETURN_IF_FAIL(bufmgr_sprd != NULL);
if (bufmgr_sprd->use_dma_fence)
if (bufmgr_sprd->tgl_fd >= 0)
close(bufmgr_sprd->tgl_fd);
-#endif
}
#ifndef USE_CONTIG_ONLY
{
SPRD_RETURN_VAL_IF_FAIL (bo != NULL, 0);
-#if USE_BACKEND_LOCK
tbm_bufmgr_sprd bufmgr_sprd;
tbm_bo_sprd bo_sprd;
- int ret = 0;
bo_sprd = (tbm_bo_sprd)tbm_backend_get_bo_priv(bo);
SPRD_RETURN_VAL_IF_FAIL (bo_sprd != NULL, 0);
bufmgr_sprd = (tbm_bufmgr_sprd)tbm_backend_get_bufmgr_priv(bo);
SPRD_RETURN_VAL_IF_FAIL (bufmgr_sprd != NULL, 0);
+#if USE_BACKEND_LOCK
+ int ret = 0;
+
if (bufmgr_sprd->use_dma_fence) {
+
struct dma_buf_fence fence;
memset(&fence, 0, sizeof(struct dma_buf_fence));
getpid(),
__FUNCTION__, bo_sprd->name, bo_sprd->dmabuf);
} else {
+
ret = _tgl_lock(bufmgr_sprd->tgl_fd, bo_sprd->name);
DBG ("[libtbm-sprd:%d] lock tgl flink_id:%d\n",
return ret;
}
-
#endif
+
return 1;
}
{
SPRD_RETURN_VAL_IF_FAIL (bo != NULL, 0);
-#if USE_BACKEND_LOCK
tbm_bufmgr_sprd bufmgr_sprd;
tbm_bo_sprd bo_sprd;
- int ret = 0;
bo_sprd = (tbm_bo_sprd)tbm_backend_get_bo_priv(bo);
SPRD_RETURN_VAL_IF_FAIL (bo_sprd != NULL, 0);
bufmgr_sprd = (tbm_bufmgr_sprd)tbm_backend_get_bufmgr_priv(bo);
SPRD_RETURN_VAL_IF_FAIL (bufmgr_sprd != NULL, 0);
+#if USE_BACKEND_LOCK
+ int ret = 0;
+
if (bufmgr_sprd->use_dma_fence) {
struct dma_buf_fence fence;
return ret;
}
#endif
+
return 1;
}
}
if (tbm_backend_is_display_server()) {
- int master_fd = -1;
-
bufmgr_sprd->fd = -1;
- master_fd = tbm_drm_helper_get_master_fd();
- if (master_fd < 0)
+
+ bufmgr_sprd->fd = tbm_drm_helper_get_master_fd();
+ if (bufmgr_sprd->fd < 0)
bufmgr_sprd->fd = _tbm_sprd_open_drm();
- else
- bufmgr_sprd->fd = master_fd;
if (bufmgr_sprd->fd < 0) {
TBM_SPRD_LOG ("[libtbm-sprd:%d] error: Fail to create drm!\n", getpid());
if (!bufmgr_sprd->device_name)
{
TBM_SPRD_LOG ("[libtbm-sprd:%d] error: Fail to get device name!\n", getpid());
+ tbm_drm_helper_unset_tbm_master_fd();
close(bufmgr_sprd->fd);
free (bufmgr_sprd);
return 0;
if (!_bufmgr_init_cache_state(bufmgr_sprd)) {
TBM_SPRD_LOG ("[libtbm-sprd:%d] error: init bufmgr cache state failed!\n", getpid());
- tbm_drm_helper_unset_tbm_master_fd();
+ if (tbm_backend_is_display_server())
+ tbm_drm_helper_unset_tbm_master_fd();
+
close(bufmgr_sprd->fd);
free(bufmgr_sprd);
_bufmgr_deinit_cache_state(bufmgr_sprd);
- tbm_drm_helper_unset_tbm_master_fd();
+ if (tbm_backend_is_display_server())
+ tbm_drm_helper_unset_tbm_master_fd();
+
close(bufmgr_sprd->fd);
free (bufmgr_sprd);
_bufmgr_deinit_cache_state(bufmgr_sprd);
- tbm_drm_helper_unset_tbm_master_fd();
+ if (tbm_backend_is_display_server())
+ tbm_drm_helper_unset_tbm_master_fd();
+
close(bufmgr_sprd->fd);
free (bufmgr_sprd);