OSDN Git Service

drm/vboxvideo: Replace prepare_fb()/cleanup_fb() with GEM VRAM helpers
authorThomas Zimmermann <tzimmermann@suse.de>
Thu, 24 Oct 2019 08:14:04 +0000 (10:14 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 24 Oct 2019 14:12:42 +0000 (16:12 +0200)
GEM VRAM provides an implementation for prepare_fb() and cleanup_fb()
of struct drm_plane_helper_funcs. Switch over vboxvideo.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20191024081404.6978-5-tzimmermann@suse.de
drivers/gpu/drm/vboxvideo/vbox_mode.c

index b5604d3..cea38c5 100644 (file)
@@ -334,35 +334,6 @@ static void vbox_primary_atomic_disable(struct drm_plane *plane,
                                    old_state->src_y >> 16);
 }
 
-static int vbox_primary_prepare_fb(struct drm_plane *plane,
-                                  struct drm_plane_state *new_state)
-{
-       struct drm_gem_vram_object *gbo;
-       int ret;
-
-       if (!new_state->fb)
-               return 0;
-
-       gbo = drm_gem_vram_of_gem(new_state->fb->obj[0]);
-       ret = drm_gem_vram_pin(gbo, DRM_GEM_VRAM_PL_FLAG_VRAM);
-       if (ret)
-               DRM_WARN("Error %d pinning new fb, out of video mem?\n", ret);
-
-       return ret;
-}
-
-static void vbox_primary_cleanup_fb(struct drm_plane *plane,
-                                   struct drm_plane_state *old_state)
-{
-       struct drm_gem_vram_object *gbo;
-
-       if (!old_state->fb)
-               return;
-
-       gbo = drm_gem_vram_of_gem(old_state->fb->obj[0]);
-       drm_gem_vram_unpin(gbo);
-}
-
 static int vbox_cursor_atomic_check(struct drm_plane *plane,
                                    struct drm_plane_state *new_state)
 {
@@ -492,30 +463,6 @@ static void vbox_cursor_atomic_disable(struct drm_plane *plane,
        mutex_unlock(&vbox->hw_mutex);
 }
 
-static int vbox_cursor_prepare_fb(struct drm_plane *plane,
-                                 struct drm_plane_state *new_state)
-{
-       struct drm_gem_vram_object *gbo;
-
-       if (!new_state->fb)
-               return 0;
-
-       gbo = drm_gem_vram_of_gem(new_state->fb->obj[0]);
-       return drm_gem_vram_pin(gbo, DRM_GEM_VRAM_PL_FLAG_SYSTEM);
-}
-
-static void vbox_cursor_cleanup_fb(struct drm_plane *plane,
-                                  struct drm_plane_state *old_state)
-{
-       struct drm_gem_vram_object *gbo;
-
-       if (!plane->state->fb)
-               return;
-
-       gbo = drm_gem_vram_of_gem(plane->state->fb->obj[0]);
-       drm_gem_vram_unpin(gbo);
-}
-
 static const u32 vbox_cursor_plane_formats[] = {
        DRM_FORMAT_ARGB8888,
 };
@@ -524,8 +471,8 @@ static const struct drm_plane_helper_funcs vbox_cursor_helper_funcs = {
        .atomic_check   = vbox_cursor_atomic_check,
        .atomic_update  = vbox_cursor_atomic_update,
        .atomic_disable = vbox_cursor_atomic_disable,
-       .prepare_fb     = vbox_cursor_prepare_fb,
-       .cleanup_fb     = vbox_cursor_cleanup_fb,
+       .prepare_fb     = drm_gem_vram_plane_helper_prepare_fb,
+       .cleanup_fb     = drm_gem_vram_plane_helper_cleanup_fb,
 };
 
 static const struct drm_plane_funcs vbox_cursor_plane_funcs = {
@@ -546,8 +493,8 @@ 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 = vbox_primary_prepare_fb,
-       .cleanup_fb = vbox_primary_cleanup_fb,
+       .prepare_fb     = drm_gem_vram_plane_helper_prepare_fb,
+       .cleanup_fb     = drm_gem_vram_plane_helper_cleanup_fb,
 };
 
 static const struct drm_plane_funcs vbox_primary_plane_funcs = {