hc
2023-12-11 1f93a7dfd1f8d5ff7a5c53246c7534fe2332d6f4
kernel/include/drm/drm_gem_framebuffer_helper.h
....@@ -1,6 +1,7 @@
11 #ifndef __DRM_GEM_FB_HELPER_H__
22 #define __DRM_GEM_FB_HELPER_H__
33
4
+struct drm_afbc_framebuffer;
45 struct drm_device;
56 struct drm_fb_helper_surface_size;
67 struct drm_file;
....@@ -12,12 +13,19 @@
1213 struct drm_plane_state;
1314 struct drm_simple_display_pipe;
1415
16
+#define AFBC_VENDOR_AND_TYPE_MASK GENMASK_ULL(63, 52)
17
+
1518 struct drm_gem_object *drm_gem_fb_get_obj(struct drm_framebuffer *fb,
1619 unsigned int plane);
1720 void drm_gem_fb_destroy(struct drm_framebuffer *fb);
1821 int drm_gem_fb_create_handle(struct drm_framebuffer *fb, struct drm_file *file,
1922 unsigned int *handle);
2023
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);
2129 struct drm_framebuffer *
2230 drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
2331 const struct drm_mode_fb_cmd2 *mode_cmd,
....@@ -25,16 +33,19 @@
2533 struct drm_framebuffer *
2634 drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
2735 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);
2846
2947 int drm_gem_fb_prepare_fb(struct drm_plane *plane,
3048 struct drm_plane_state *state);
3149 int drm_gem_fb_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe,
3250 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
-
4051 #endif