summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Clark <robdclark@gmail.com>2015-09-08 11:43:34 -0400
committerRob Clark <robdclark@gmail.com>2015-09-08 11:43:34 -0400
commitab2280c059f3a9b4d28bf33629e8dafbfc99ba4a (patch)
tree10270481220c48005491c975c0eb669230823d4e
parentab48ffac133e89dce06aa179ea11be6c0b80272d (diff)
downloaddrm_gralloc-ab2280c059f3a9b4d28bf33629e8dafbfc99ba4a.tar.gz
fixup! WIP: pipe: add dmabuf/prime support
-rw-r--r--gralloc_drm_pipe.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gralloc_drm_pipe.c b/gralloc_drm_pipe.c
index 1a08157..2c77c54 100644
--- a/gralloc_drm_pipe.c
+++ b/gralloc_drm_pipe.c
@@ -139,7 +139,7 @@ static struct pipe_buffer *get_pipe_buffer_locked(struct pipe_manager *pm,
templ.array_size = 1;
#ifdef DMABUF
- if (handle->prime_fd > 0) {
+ if (handle->prime_fd >= 0) {
buf->winsys.type = DRM_API_HANDLE_TYPE_FD;
buf->winsys.handle = handle->prime_fd;
buf->winsys.stride = handle->stride;
@@ -230,6 +230,12 @@ static void pipe_free(struct gralloc_drm_drv_t *drv, struct gralloc_drm_bo_t *bo
struct pipe_manager *pm = (struct pipe_manager *) drv;
struct pipe_buffer *buf = (struct pipe_buffer *) bo;
+#ifdef DMABUF
+ struct gralloc_drm_handle_t *handle = bo->handle;
+ close(handle->prime_fd);
+ handle->prime_fd = -1;
+#endif
+
pthread_mutex_lock(&pm->mutex);
if (buf->transfer)