summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamian Hobson-Garcia <dhobsong@igel.co.jp>2021-03-17 18:32:18 +0900
committerDamian Hobson-Garcia <dhobsong@igel.co.jp>2021-03-17 18:49:35 +0900
commit049bb26f3d28886a52cc02cdef951022f349ae89 (patch)
tree267a1977b45a45f4e495f1485911cfcd5994a8b9
parent83c248ad5c477cbe9ac5e46923b42dadfa68c6b0 (diff)
drm-lease: Enable DRM render node on R-Car
When using DRM lease, wayland clients applications must be able to create an EGL context without DRM authentication. The latest R-Car OpenGL driver, can do this when the R-Car display driver must provides a render node. Enable the rcar-du render node and allow it to allocate of scanout buffers. Bug-AGL: SPEC-3730 Change-Id: Iae4f74afb69de3a7f9ddf3ec5113938ade81fda4 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
-rw-r--r--meta-agl-drm-lease/recipes-kernel/linux-renesas/files/0001-drm-enable-dumb-buffer-ops-for-render-nodes.patch31
-rw-r--r--meta-agl-drm-lease/recipes-kernel/linux-renesas/files/0002-drm-rcar-du-support-render-node.patch32
-rw-r--r--meta-agl-drm-lease/recipes-kernel/linux-renesas/linux-renesas_%.bbappend8
3 files changed, 71 insertions, 0 deletions
diff --git a/meta-agl-drm-lease/recipes-kernel/linux-renesas/files/0001-drm-enable-dumb-buffer-ops-for-render-nodes.patch b/meta-agl-drm-lease/recipes-kernel/linux-renesas/files/0001-drm-enable-dumb-buffer-ops-for-render-nodes.patch
new file mode 100644
index 00000000..a9b6bb55
--- /dev/null
+++ b/meta-agl-drm-lease/recipes-kernel/linux-renesas/files/0001-drm-enable-dumb-buffer-ops-for-render-nodes.patch
@@ -0,0 +1,31 @@
+From d39ae6c8cdbab2797f5603abe0eb2bacde881951 Mon Sep 17 00:00:00 2001
+From: Damian Hobson-Garcia <dhobsong@igel.co.jp>
+Date: Tue, 16 Mar 2021 19:54:39 +0900
+Subject: [PATCH] drm: enable dumb buffer ops for render nodes
+
+The EGL modules that use render nodes on R-Car use these operations
+to create and manage buffers that can be used for scanout on R-Car.
+---
+ drivers/gpu/drm/drm_ioctl.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
+index fcd728d7cf72..e293cf7bc35c 100644
+--- a/drivers/gpu/drm/drm_ioctl.c
++++ b/drivers/gpu/drm/drm_ioctl.c
+@@ -676,9 +676,9 @@ static const struct drm_ioctl_desc drm_ioctls[] = {
+ DRM_IOCTL_DEF(DRM_IOCTL_MODE_RMFB, drm_mode_rmfb_ioctl, 0),
+ DRM_IOCTL_DEF(DRM_IOCTL_MODE_PAGE_FLIP, drm_mode_page_flip_ioctl, DRM_MASTER),
+ DRM_IOCTL_DEF(DRM_IOCTL_MODE_DIRTYFB, drm_mode_dirtyfb_ioctl, DRM_MASTER),
+- DRM_IOCTL_DEF(DRM_IOCTL_MODE_CREATE_DUMB, drm_mode_create_dumb_ioctl, 0),
+- DRM_IOCTL_DEF(DRM_IOCTL_MODE_MAP_DUMB, drm_mode_mmap_dumb_ioctl, 0),
+- DRM_IOCTL_DEF(DRM_IOCTL_MODE_DESTROY_DUMB, drm_mode_destroy_dumb_ioctl, 0),
++ DRM_IOCTL_DEF(DRM_IOCTL_MODE_CREATE_DUMB, drm_mode_create_dumb_ioctl, DRM_RENDER_ALLOW),
++ DRM_IOCTL_DEF(DRM_IOCTL_MODE_MAP_DUMB, drm_mode_mmap_dumb_ioctl, DRM_RENDER_ALLOW),
++ DRM_IOCTL_DEF(DRM_IOCTL_MODE_DESTROY_DUMB, drm_mode_destroy_dumb_ioctl, DRM_RENDER_ALLOW),
+ DRM_IOCTL_DEF(DRM_IOCTL_MODE_OBJ_GETPROPERTIES, drm_mode_obj_get_properties_ioctl, 0),
+ DRM_IOCTL_DEF(DRM_IOCTL_MODE_OBJ_SETPROPERTY, drm_mode_obj_set_property_ioctl, DRM_MASTER),
+ DRM_IOCTL_DEF(DRM_IOCTL_MODE_CURSOR2, drm_mode_cursor2_ioctl, DRM_MASTER),
+--
+2.17.1
+
diff --git a/meta-agl-drm-lease/recipes-kernel/linux-renesas/files/0002-drm-rcar-du-support-render-node.patch b/meta-agl-drm-lease/recipes-kernel/linux-renesas/files/0002-drm-rcar-du-support-render-node.patch
new file mode 100644
index 00000000..045a63ed
--- /dev/null
+++ b/meta-agl-drm-lease/recipes-kernel/linux-renesas/files/0002-drm-rcar-du-support-render-node.patch
@@ -0,0 +1,32 @@
+From 2ea386a6175c695d81365acd3b22a3bc87ab8195 Mon Sep 17 00:00:00 2001
+From: Tomohito Esaki <etom@igel.co.jp>
+Date: Wed, 8 Aug 2018 14:20:46 +0900
+Subject: [PATCH 2/2] drm: rcar-du: enable rcar-du render node
+
+Create a render node tied to the DU device so that the allocated
+buffers can be used for scanout, VSP composition, etc.
+
+[dhobsong@igel.co.jp: Rebased to Linux 5.4]
+Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+---
+ drivers/gpu/drm/rcar-du/rcar_du_drv.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+index 6a099b04a161..3e63911e4198 100644
+--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
++++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+@@ -458,7 +458,8 @@ static const struct drm_ioctl_desc rcar_du_ioctls[] = {
+ DEFINE_DRM_GEM_CMA_FOPS(rcar_du_fops);
+
+ static struct drm_driver rcar_du_driver = {
+- .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
++ .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC
++ | DRIVER_RENDER,
+ .gem_free_object_unlocked = drm_gem_cma_free_object,
+ .gem_vm_ops = &drm_gem_cma_vm_ops,
+ .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
+--
+2.25.1
+
diff --git a/meta-agl-drm-lease/recipes-kernel/linux-renesas/linux-renesas_%.bbappend b/meta-agl-drm-lease/recipes-kernel/linux-renesas/linux-renesas_%.bbappend
new file mode 100644
index 00000000..e0a434c3
--- /dev/null
+++ b/meta-agl-drm-lease/recipes-kernel/linux-renesas/linux-renesas_%.bbappend
@@ -0,0 +1,8 @@
+COMPATIBLE_MACHINE = "rcar-gen3"
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI_append = " \
+ file://0001-drm-enable-dumb-buffer-ops-for-render-nodes.patch \
+ file://0002-drm-rcar-du-support-render-node.patch \
+"
+