OSDN Git Service

Add gralloc_drm_get_prime_fd function
authorRob Herring <robh@kernel.org>
Fri, 22 Jan 2016 16:35:14 +0000 (10:35 -0600)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Thu, 17 Mar 2016 08:10:43 +0000 (16:10 +0800)
Mesa EGL needs to retrieve prime fds from gralloc handles.

Signed-off-by: Rob Herring <robh@kernel.org>
gralloc_drm.c
gralloc_drm.h
gralloc_drm_handle.h

index 54b9408..6b3825e 100644 (file)
@@ -278,6 +278,7 @@ static struct gralloc_drm_handle_t *create_bo_handle(int width,
        handle->format = format;
        handle->usage = usage;
        handle->plane_mask = 0;
+       handle->prime_fd = -1;
 
        return handle;
 }
@@ -372,6 +373,12 @@ int gralloc_drm_get_gem_handle(buffer_handle_t _handle)
        return (handle) ? handle->name : 0;
 }
 
+int gralloc_drm_get_prime_fd(buffer_handle_t _handle)
+{
+       struct gralloc_drm_handle_t *handle = gralloc_drm_handle(_handle);
+       return (handle) ? handle->prime_fd : -1;
+}
+
 /*
  * Query YUV component offsets for a buffer handle
  */
index e1a9957..ac0a53d 100644 (file)
@@ -133,6 +133,7 @@ void gralloc_drm_bo_decref(struct gralloc_drm_bo_t *bo);
 
 struct gralloc_drm_bo_t *gralloc_drm_bo_from_handle(buffer_handle_t handle);
 buffer_handle_t gralloc_drm_bo_get_handle(struct gralloc_drm_bo_t *bo, int *stride);
+int gralloc_drm_get_prime_fd(buffer_handle_t _handle);
 int gralloc_drm_get_gem_handle(buffer_handle_t handle);
 void gralloc_drm_resolve_format(buffer_handle_t _handle, uint32_t *pitches, uint32_t *offsets, uint32_t *handles);
 unsigned int planes_for_format(struct gralloc_drm_t *drm, int hal_format);
index f5b6aa0..ee96fbf 100644 (file)
@@ -36,6 +36,9 @@ struct gralloc_drm_bo_t;
 struct gralloc_drm_handle_t {
        native_handle_t base;
 
+       /* file descriptors */
+       int prime_fd;
+
        int magic;
 
        int width;