summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo Siqueira <rodrigosiqueiramelo@gmail.com>2018-07-12 16:41:02 +0300
committerDaniel Vetter <daniel.vetter@ffwll.ch>2018-07-12 17:24:05 +0300
commit42ac03213b7f102682157c2821e3fd9657ce4eb7 (patch)
tree7d47889a8b4e5419d7e38839e346998da821dfcc
parent58d4d29823d9a6c4593c48a1a24e6a9dcec8e3ff (diff)
downloadlinux-42ac03213b7f102682157c2821e3fd9657ce4eb7.tar.xz
drm/vkms: Add framebuffer and plane helpers
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
-rw-r--r--drivers/gpu/drm/vkms/vkms_drv.c3
-rw-r--r--drivers/gpu/drm/vkms/vkms_plane.c11
2 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/vkms/vkms_drv.c b/drivers/gpu/drm/vkms/vkms_drv.c
index a1448fb56893..37aa2ef33b21 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.c
+++ b/drivers/gpu/drm/vkms/vkms_drv.c
@@ -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,
};
diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
index 2c25b1d6ab5b..9f75b1e2c1c4 100644
--- a/drivers/gpu/drm/vkms/vkms_plane.c
+++ b/drivers/gpu/drm/vkms/vkms_plane.c
@@ -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;
}