summaryrefslogtreecommitdiffstats
path: root/include/drm/drm_gem_framebuffer_helper.h
diff options
context:
space:
mode:
authorNoralf Trønnes2017-08-13 15:31:44 +0200
committerNoralf Trønnes2017-08-16 21:32:23 +0200
commit4c3dbb2c312c9fafbac30d98c523b8b1f3455d78 (patch)
tree901be83c520677157cb770881c39e472c99305c4 /include/drm/drm_gem_framebuffer_helper.h
parentdrm/gem-cma-helper: Remove drm_gem_cma_dumb_map_offset() (diff)
downloadkernel-qcow2-linux-4c3dbb2c312c9fafbac30d98c523b8b1f3455d78.tar.gz
kernel-qcow2-linux-4c3dbb2c312c9fafbac30d98c523b8b1f3455d78.tar.xz
kernel-qcow2-linux-4c3dbb2c312c9fafbac30d98c523b8b1f3455d78.zip
drm: Add GEM backed framebuffer library
This library provides helpers for drivers that don't subclass drm_framebuffer and are backed by drm_gem_object. The code is taken from drm_fb_cma_helper. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Eric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/1502631125-13557-2-git-send-email-noralf@tronnes.org
Diffstat (limited to 'include/drm/drm_gem_framebuffer_helper.h')
-rw-r--r--include/drm/drm_gem_framebuffer_helper.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/include/drm/drm_gem_framebuffer_helper.h b/include/drm/drm_gem_framebuffer_helper.h
new file mode 100644
index 000000000000..db9cfa07235e
--- /dev/null
+++ b/include/drm/drm_gem_framebuffer_helper.h
@@ -0,0 +1,37 @@
+#ifndef __DRM_GEM_FB_HELPER_H__
+#define __DRM_GEM_FB_HELPER_H__
+
+struct drm_device;
+struct drm_file;
+struct drm_fb_helper_surface_size;
+struct drm_framebuffer;
+struct drm_framebuffer_funcs;
+struct drm_gem_object;
+struct drm_mode_fb_cmd2;
+struct drm_plane;
+struct drm_plane_state;
+
+struct drm_gem_object *drm_gem_fb_get_obj(struct drm_framebuffer *fb,
+ unsigned int plane);
+void drm_gem_fb_destroy(struct drm_framebuffer *fb);
+int drm_gem_fb_create_handle(struct drm_framebuffer *fb, struct drm_file *file,
+ unsigned int *handle);
+
+struct drm_framebuffer *
+drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
+ const struct drm_mode_fb_cmd2 *mode_cmd,
+ const struct drm_framebuffer_funcs *funcs);
+struct drm_framebuffer *
+drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
+ const struct drm_mode_fb_cmd2 *mode_cmd);
+
+int drm_gem_fb_prepare_fb(struct drm_plane *plane,
+ struct drm_plane_state *state);
+
+struct drm_framebuffer *
+drm_gem_fbdev_fb_create(struct drm_device *dev,
+ struct drm_fb_helper_surface_size *sizes,
+ unsigned int pitch_align, struct drm_gem_object *obj,
+ const struct drm_framebuffer_funcs *funcs);
+
+#endif