1 | #ifndef __DRM_GEM_FB_HELPER_H__ |
2 | #define __DRM_GEM_FB_HELPER_H__ |
3 | |
4 | #include <linux/dma-buf.h> |
5 | #include <linux/iosys-map.h> |
6 | |
7 | struct drm_afbc_framebuffer; |
8 | struct drm_device; |
9 | struct drm_fb_helper_surface_size; |
10 | struct drm_file; |
11 | struct drm_framebuffer; |
12 | struct drm_framebuffer_funcs; |
13 | struct drm_gem_object; |
14 | struct drm_mode_fb_cmd2; |
15 | |
16 | #define AFBC_VENDOR_AND_TYPE_MASK GENMASK_ULL(63, 52) |
17 | |
18 | struct drm_gem_object *drm_gem_fb_get_obj(struct drm_framebuffer *fb, |
19 | unsigned int plane); |
20 | void drm_gem_fb_destroy(struct drm_framebuffer *fb); |
21 | int drm_gem_fb_create_handle(struct drm_framebuffer *fb, struct drm_file *file, |
22 | unsigned int *handle); |
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); |
29 | struct drm_framebuffer * |
30 | drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file, |
31 | const struct drm_mode_fb_cmd2 *mode_cmd, |
32 | const struct drm_framebuffer_funcs *funcs); |
33 | struct drm_framebuffer * |
34 | drm_gem_fb_create(struct drm_device *dev, struct drm_file *file, |
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 | int drm_gem_fb_vmap(struct drm_framebuffer *fb, struct iosys_map *map, |
41 | struct iosys_map *data); |
42 | void drm_gem_fb_vunmap(struct drm_framebuffer *fb, struct iosys_map *map); |
43 | int drm_gem_fb_begin_cpu_access(struct drm_framebuffer *fb, enum dma_data_direction dir); |
44 | void drm_gem_fb_end_cpu_access(struct drm_framebuffer *fb, enum dma_data_direction dir); |
45 | |
46 | #define drm_is_afbc(modifier) \ |
47 | (((modifier) & AFBC_VENDOR_AND_TYPE_MASK) == DRM_FORMAT_MOD_ARM_AFBC(0)) |
48 | |
49 | int drm_gem_fb_afbc_init(struct drm_device *dev, |
50 | const struct drm_mode_fb_cmd2 *mode_cmd, |
51 | struct drm_afbc_framebuffer *afbc_fb); |
52 | |
53 | #endif |
54 | |