From ab2280c059f3a9b4d28bf33629e8dafbfc99ba4a Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Tue, 8 Sep 2015 11:43:34 -0400 Subject: fixup! WIP: pipe: add dmabuf/prime support --- gralloc_drm_pipe.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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) -- cgit v1.2.3