added tbm_drm_helper_set/unset_fd
[platform/adaptation/spreadtrum/libtbm-sprd.git] / src / tbm_bufmgr_sprd.c
index 9d1f486..35535e3 100644 (file)
@@ -330,7 +330,7 @@ _tgl_lock(int fd, unsigned int key, int opt)
        data.key = key;
        data.type = tgl_type;
 
-       err = ioctl(fd, TGL_IOCTL_LOCK, data);
+       err = ioctl(fd, TGL_IOCTL_LOCK, &data);
        if (err) {
                TBM_SPRD_ERROR("error(%s) key:%d opt:%d\n",
                        strerror(errno), key, opt);
@@ -349,7 +349,7 @@ _tgl_unlock(int fd, unsigned int key)
        data.key = key;
        data.type = TGL_TYPE_NONE;
 
-       err = ioctl(fd, TGL_IOCTL_UNLOCK, data);
+       err = ioctl(fd, TGL_IOCTL_UNLOCK, &data);
        if (err) {
                TBM_SPRD_ERROR("error(%s) key:%d\n",
                        strerror(errno), key);
@@ -1408,6 +1408,8 @@ tbm_sprd_bufmgr_deinit(void *priv)
 
        if (tbm_backend_is_display_server())
                tbm_drm_helper_unset_tbm_master_fd();
+       else
+               tbm_drm_helper_unset_fd();
 
        if (bufmgr_sprd->device_name)
                free(bufmgr_sprd->device_name);
@@ -1773,6 +1775,8 @@ init_tbm_bufmgr_priv(tbm_bufmgr bufmgr, int fd)
                        TBM_SPRD_ERROR("fail to get auth drm info!\n");
                        goto fail_get_auth_info;
                }
+
+               tbm_drm_helper_set_fd(bufmgr_sprd->fd);
        }
 
        //Create Hash Table
@@ -1853,6 +1857,10 @@ fail_init_cache_state:
                drmHashDestroy(bufmgr_sprd->hashBos);
        if (tbm_backend_is_display_server())
                tbm_drm_helper_unset_tbm_master_fd();
+       else
+               tbm_drm_helper_unset_fd();
+       if (bufmgr_sprd->device_name)
+               free(bufmgr_sprd->device_name);
 fail_get_device_name:
        close(bufmgr_sprd->fd);
 fail_get_auth_info: