drm/vkms: Add framebuffer and plane helpers
authorRodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
Thu, 12 Jul 2018 13:41:02 +0000 (10:41 -0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 12 Jul 2018 14:24:05 +0000 (16:24 +0200)
This patch appends the minimum helpers related to framebuffer and plane
to make vkms minimally usable.

Changes since V1:
- None
Changes since V2:
- Squash "Add plane helper struct" and "Add helper for framebuffer
  create"
Changes since V3:
 Daniel Vetter:
 - Remove atomic_check from plane helper

Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/d37807da7d3b39444b4c9abb149fe3c518d07c61.1531402095.git.rodrigosiqueiramelo@gmail.com
drivers/gpu/drm/vkms/vkms_drv.c
drivers/gpu/drm/vkms/vkms_plane.c

index a1448fb568933b265e2c167173d4a3be2aee95f9..37aa2ef33b21337f0dea0c1d92ad5468343e760e 100644 (file)
@@ -9,6 +9,8 @@
 #include <drm/drm_gem.h>
 #include <drm/drm_crtc_helper.h>
 #include <drm/drm_atomic_helper.h>
+#include <drm/drm_gem_framebuffer_helper.h>
+#include <drm/drm_fb_helper.h>
 #include "vkms_drv.h"
 
 #define DRIVER_NAME    "vkms"
@@ -64,6 +66,7 @@ static struct drm_driver vkms_driver = {
 };
 
 static const struct drm_mode_config_funcs vkms_mode_funcs = {
+       .fb_create = drm_gem_fb_create,
        .atomic_check = drm_atomic_helper_check,
        .atomic_commit = drm_atomic_helper_commit,
 };
index 2c25b1d6ab5bece351c820e31e4ec63e13a9ec77..9f75b1e2c1c4bdcba7601e1ca93e8ed99fa1fbfa 100644 (file)
@@ -19,6 +19,15 @@ static const struct drm_plane_funcs vkms_plane_funcs = {
        .atomic_destroy_state   = drm_atomic_helper_plane_destroy_state,
 };
 
+static void vkms_primary_plane_update(struct drm_plane *plane,
+                                     struct drm_plane_state *old_state)
+{
+}
+
+static const struct drm_plane_helper_funcs vkms_primary_helper_funcs = {
+       .atomic_update          = vkms_primary_plane_update,
+};
+
 struct drm_plane *vkms_plane_init(struct vkms_device *vkmsdev)
 {
        struct drm_device *dev = &vkmsdev->drm;
@@ -42,5 +51,7 @@ struct drm_plane *vkms_plane_init(struct vkms_device *vkmsdev)
                return ERR_PTR(ret);
        }
 
+       drm_plane_helper_add(plane, &vkms_primary_helper_funcs);
+
        return plane;
 }