diff options
author | Rob Clark <robdclark@gmail.com> | 2015-09-08 11:43:34 -0400 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2015-09-08 11:43:34 -0400 |
commit | ab2280c059f3a9b4d28bf33629e8dafbfc99ba4a (patch) | |
tree | 10270481220c48005491c975c0eb669230823d4e | |
parent | ab48ffac133e89dce06aa179ea11be6c0b80272d (diff) | |
download | drm_gralloc-ab2280c059f3a9b4d28bf33629e8dafbfc99ba4a.tar.gz |
fixup! WIP: pipe: add dmabuf/prime support
-rw-r--r-- | gralloc_drm_pipe.c | 8 |
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) |