From bbb4918e770a536784f8e5573737f0afade4fdb2 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Mon, 7 Jun 2021 16:54:19 -0400 Subject: meta-agl-drm-lease: Improve usability Changes: - Switch to using AGL_FEATURES instead of just directly modifying IMAGE_INSTALL in the feature template. - Move rcar3 kernel recipe bbappend to a dynamic-layer addition so the layer is usable on other platforms. Bug-AGL: SPEC-3955 Signed-off-by: Scott Murray Change-Id: Ie109cc3606d68d354aae9d902a60ef82272244bf --- meta-agl-drm-lease/conf/include/agl-drm-lease.inc | 2 +- meta-agl-drm-lease/conf/layer.conf | 5 ++++ ...m-enable-dumb-buffer-ops-for-render-nodes.patch | 31 +++++++++++++++++++++ .../0002-drm-rcar-du-support-render-node.patch | 32 ++++++++++++++++++++++ .../linux-renesas/linux-renesas_%.bbappend | 8 ++++++ ...m-enable-dumb-buffer-ops-for-render-nodes.patch | 31 --------------------- .../0002-drm-rcar-du-support-render-node.patch | 32 ---------------------- .../linux-renesas/linux-renesas_%.bbappend | 8 ------ 8 files changed, 77 insertions(+), 72 deletions(-) create mode 100644 meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/recipes-kernel/linux-renesas/files/0001-drm-enable-dumb-buffer-ops-for-render-nodes.patch create mode 100644 meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/recipes-kernel/linux-renesas/files/0002-drm-rcar-du-support-render-node.patch create mode 100644 meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/recipes-kernel/linux-renesas/linux-renesas_%.bbappend delete mode 100644 meta-agl-drm-lease/recipes-kernel/linux-renesas/files/0001-drm-enable-dumb-buffer-ops-for-render-nodes.patch delete mode 100644 meta-agl-drm-lease/recipes-kernel/linux-renesas/files/0002-drm-rcar-du-support-render-node.patch delete mode 100644 meta-agl-drm-lease/recipes-kernel/linux-renesas/linux-renesas_%.bbappend diff --git a/meta-agl-drm-lease/conf/include/agl-drm-lease.inc b/meta-agl-drm-lease/conf/include/agl-drm-lease.inc index 5ec51c55..bdf55628 100644 --- a/meta-agl-drm-lease/conf/include/agl-drm-lease.inc +++ b/meta-agl-drm-lease/conf/include/agl-drm-lease.inc @@ -1 +1 @@ -IMAGE_INSTALL_append = " drm-lease-manager" +AGL_FEATURES += "agl-drm-lease" diff --git a/meta-agl-drm-lease/conf/layer.conf b/meta-agl-drm-lease/conf/layer.conf index a319a99f..d34d3928 100644 --- a/meta-agl-drm-lease/conf/layer.conf +++ b/meta-agl-drm-lease/conf/layer.conf @@ -8,6 +8,11 @@ BBFILE_COLLECTIONS += "agl-drm-lease" BBFILE_PATTERN_agl-drm-lease = "^${LAYERDIR}/" BBFILE_PRIORITY_agl-drm-lease = "80" +BBFILES_DYNAMIC += " \ + rcar-gen3:${LAYERDIR}/dynamic-layers/meta-rcar-gen3/*/*/*.bb \ + rcar-gen3:${LAYERDIR}/dynamic-layers/meta-rcar-gen3/*/*/*.bbappend \ +" + # This should only be incremented on significant changes that will # cause compatibility issues with other layers LAYERVERSION_agl-drm-lease = "1" diff --git a/meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/recipes-kernel/linux-renesas/files/0001-drm-enable-dumb-buffer-ops-for-render-nodes.patch b/meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/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/dynamic-layers/meta-rcar-gen3/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 +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/dynamic-layers/meta-rcar-gen3/recipes-kernel/linux-renesas/files/0002-drm-rcar-du-support-render-node.patch b/meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/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/dynamic-layers/meta-rcar-gen3/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 +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 + +--- + 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/dynamic-layers/meta-rcar-gen3/recipes-kernel/linux-renesas/linux-renesas_%.bbappend b/meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/recipes-kernel/linux-renesas/linux-renesas_%.bbappend new file mode 100644 index 00000000..e0a434c3 --- /dev/null +++ b/meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/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 \ +" + 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 deleted file mode 100644 index a9b6bb55..00000000 --- a/meta-agl-drm-lease/recipes-kernel/linux-renesas/files/0001-drm-enable-dumb-buffer-ops-for-render-nodes.patch +++ /dev/null @@ -1,31 +0,0 @@ -From d39ae6c8cdbab2797f5603abe0eb2bacde881951 Mon Sep 17 00:00:00 2001 -From: Damian Hobson-Garcia -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 deleted file mode 100644 index 045a63ed..00000000 --- a/meta-agl-drm-lease/recipes-kernel/linux-renesas/files/0002-drm-rcar-du-support-render-node.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 2ea386a6175c695d81365acd3b22a3bc87ab8195 Mon Sep 17 00:00:00 2001 -From: Tomohito Esaki -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 - ---- - 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 deleted file mode 100644 index e0a434c3..00000000 --- a/meta-agl-drm-lease/recipes-kernel/linux-renesas/linux-renesas_%.bbappend +++ /dev/null @@ -1,8 +0,0 @@ -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 \ -" - -- cgit 1.2.3-korg