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