drm/vram-helpers: Create DRM_GEM_VRAM_PLANE_HELPER_FUNCS
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 22 Jun 2021 16:55:06 +0000 (18:55 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 24 Jun 2021 13:37:08 +0000 (15:37 +0200)
Like we have for the shadow helpers too, and roll it out to drivers.

Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Tian Tao <tiantao6@hisilicon.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Tian Tao <tiantao6@hisilicon.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210622165511.3169559-11-daniel.vetter@ffwll.ch
drivers/gpu/drm/ast/ast_mode.c
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
drivers/gpu/drm/vboxvideo/vbox_mode.c
include/drm/drm_gem_vram_helper.h

index e5996ae..f5d58c3 100644 (file)
@@ -612,8 +612,7 @@ ast_primary_plane_helper_atomic_disable(struct drm_plane *plane,
 }
 
 static const struct drm_plane_helper_funcs ast_primary_plane_helper_funcs = {
-       .prepare_fb = drm_gem_vram_plane_helper_prepare_fb,
-       .cleanup_fb = drm_gem_vram_plane_helper_cleanup_fb,
+       DRM_GEM_VRAM_PLANE_HELPER_FUNCS,
        .atomic_check = ast_primary_plane_helper_atomic_check,
        .atomic_update = ast_primary_plane_helper_atomic_update,
        .atomic_disable = ast_primary_plane_helper_atomic_disable,
index fa8da0e..89bed78 100644 (file)
@@ -152,8 +152,7 @@ static const struct drm_plane_funcs hibmc_plane_funcs = {
 };
 
 static const struct drm_plane_helper_funcs hibmc_plane_helper_funcs = {
-       .prepare_fb     = drm_gem_vram_plane_helper_prepare_fb,
-       .cleanup_fb     = drm_gem_vram_plane_helper_cleanup_fb,
+       DRM_GEM_VRAM_PLANE_HELPER_FUNCS,
        .atomic_check = hibmc_plane_atomic_check,
        .atomic_update = hibmc_plane_atomic_update,
 };
index 964381d..972c83b 100644 (file)
@@ -488,8 +488,7 @@ static const struct drm_plane_helper_funcs vbox_primary_helper_funcs = {
        .atomic_check = vbox_primary_atomic_check,
        .atomic_update = vbox_primary_atomic_update,
        .atomic_disable = vbox_primary_atomic_disable,
-       .prepare_fb     = drm_gem_vram_plane_helper_prepare_fb,
-       .cleanup_fb     = drm_gem_vram_plane_helper_cleanup_fb,
+       DRM_GEM_VRAM_PLANE_HELPER_FUNCS,
 };
 
 static const struct drm_plane_funcs vbox_primary_plane_funcs = {
index 27ed7e9..f48d181 100644 (file)
@@ -124,6 +124,18 @@ void
 drm_gem_vram_plane_helper_cleanup_fb(struct drm_plane *plane,
                                     struct drm_plane_state *old_state);
 
+/**
+ * DRM_GEM_VRAM_PLANE_HELPER_FUNCS -
+ *     Initializes struct drm_plane_helper_funcs for VRAM handling
+ *
+ * Drivers may use GEM BOs as VRAM helpers for the framebuffer memory. This
+ * macro initializes struct drm_plane_helper_funcs to use the respective helper
+ * functions.
+ */
+#define DRM_GEM_VRAM_PLANE_HELPER_FUNCS \
+       .prepare_fb = drm_gem_vram_plane_helper_prepare_fb, \
+       .cleanup_fb = drm_gem_vram_plane_helper_cleanup_fb
+
 /*
  * Helpers for struct drm_simple_display_pipe_funcs
  */