drm_gem_framebuffer_helper.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef __DRM_GEM_FB_HELPER_H__
  2. #define __DRM_GEM_FB_HELPER_H__
  3. struct drm_afbc_framebuffer;
  4. struct drm_device;
  5. struct drm_fb_helper_surface_size;
  6. struct drm_file;
  7. struct drm_framebuffer;
  8. struct drm_framebuffer_funcs;
  9. struct drm_gem_object;
  10. struct drm_mode_fb_cmd2;
  11. struct drm_plane;
  12. struct drm_plane_state;
  13. struct drm_simple_display_pipe;
  14. #define AFBC_VENDOR_AND_TYPE_MASK GENMASK_ULL(63, 52)
  15. struct drm_gem_object *drm_gem_fb_get_obj(struct drm_framebuffer *fb,
  16. unsigned int plane);
  17. void drm_gem_fb_destroy(struct drm_framebuffer *fb);
  18. int drm_gem_fb_create_handle(struct drm_framebuffer *fb, struct drm_file *file,
  19. unsigned int *handle);
  20. int drm_gem_fb_init_with_funcs(struct drm_device *dev,
  21. struct drm_framebuffer *fb,
  22. struct drm_file *file,
  23. const struct drm_mode_fb_cmd2 *mode_cmd,
  24. const struct drm_framebuffer_funcs *funcs);
  25. struct drm_framebuffer *
  26. drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
  27. const struct drm_mode_fb_cmd2 *mode_cmd,
  28. const struct drm_framebuffer_funcs *funcs);
  29. struct drm_framebuffer *
  30. drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
  31. const struct drm_mode_fb_cmd2 *mode_cmd);
  32. struct drm_framebuffer *
  33. drm_gem_fb_create_with_dirty(struct drm_device *dev, struct drm_file *file,
  34. const struct drm_mode_fb_cmd2 *mode_cmd);
  35. #define drm_is_afbc(modifier) \
  36. (((modifier) & AFBC_VENDOR_AND_TYPE_MASK) == DRM_FORMAT_MOD_ARM_AFBC(0))
  37. int drm_gem_fb_afbc_init(struct drm_device *dev,
  38. const struct drm_mode_fb_cmd2 *mode_cmd,
  39. struct drm_afbc_framebuffer *afbc_fb);
  40. int drm_gem_fb_prepare_fb(struct drm_plane *plane,
  41. struct drm_plane_state *state);
  42. int drm_gem_fb_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe,
  43. struct drm_plane_state *plane_state);
  44. #endif