summaryrefslogtreecommitdiffstats
path: root/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-drm-rcar-du-Set-primary-plane-zpos-immutably-at-init.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-drm-rcar-du-Set-primary-plane-zpos-immutably-at-init.patch')
-rw-r--r--meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-drm-rcar-du-Set-primary-plane-zpos-immutably-at-init.patch89
1 files changed, 89 insertions, 0 deletions
diff --git a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-drm-rcar-du-Set-primary-plane-zpos-immutably-at-init.patch b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-drm-rcar-du-Set-primary-plane-zpos-immutably-at-init.patch
new file mode 100644
index 0000000..9ce66d6
--- /dev/null
+++ b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-drm-rcar-du-Set-primary-plane-zpos-immutably-at-init.patch
@@ -0,0 +1,89 @@
+From f8358c2afe0be62cffe4cca58c5373951ecc1c8d Mon Sep 17 00:00:00 2001
+From: Khang Nguyen <khang.nguyen.xw@renesas.com>
+Date: Mon, 13 Apr 2020 21:49:28 +0900
+Subject: [PATCH] drm: rcar-du: Set primary plane zpos immutably at
+ initializing
+
+This patch backports a fix from [1] for an issue occurs on Weston 8.0.0.
+
+[1]:
+https://lists.freedesktop.org/archives/dri-devel/2020-April/261224.html
+
+According to drm_plane_create_zpos_property() function documentation,
+all planes zpos range should be set if zpos property is supported.
+However, the rcar-du driver didn't set primary plane zpos range. Since
+the primary plane's zpos is fixed, set it immutably.
+
+Signed-off-by: Khang Nguyen <khang.nguyen.xw@renesas.com>
+Signed-off-by: Tram Huynh <tram.huynh.aj@renesas.com>
+---
+ drivers/gpu/drm/rcar-du/rcar_du_plane.c | 13 ++++++++-----
+ drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 18 ++++++++++--------
+ 2 files changed, 18 insertions(+), 13 deletions(-)
+
+diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
+index 1b70db3..5818c59 100644
+--- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
++++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
+@@ -825,15 +825,18 @@ int rcar_du_planes_init(struct rcar_du_group *rgrp)
+ drm_plane_helper_add(&plane->plane,
+ &rcar_du_plane_helper_funcs);
+
+- if (type == DRM_PLANE_TYPE_PRIMARY)
+- continue;
++ if (type == DRM_PLANE_TYPE_PRIMARY){
++ drm_plane_create_zpos_immutable_property(&plane->plane,
++ 0);
++ } else {
+
+- drm_object_attach_property(&plane->plane.base,
++ drm_object_attach_property(&plane->plane.base,
+ rcdu->props.alpha, 255);
+- drm_object_attach_property(&plane->plane.base,
++ drm_object_attach_property(&plane->plane.base,
+ rcdu->props.colorkey,
+ RCAR_DU_COLORKEY_NONE);
+- drm_plane_create_zpos_property(&plane->plane, 1, 1, 7);
++ drm_plane_create_zpos_property(&plane->plane, 1, 1, 7);
++ }
+ }
+
+ return 0;
+diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
+index c44d336..0c352a0 100644
+--- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
++++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
+@@ -633,20 +633,22 @@ int rcar_du_vsp_init(struct rcar_du_vsp *vsp, struct device_node *np,
+ drm_plane_helper_add(&plane->plane,
+ &rcar_du_vsp_plane_helper_funcs);
+
+- if (type == DRM_PLANE_TYPE_PRIMARY)
+- continue;
+-
+- drm_object_attach_property(&plane->plane.base,
++ if (type == DRM_PLANE_TYPE_PRIMARY) {
++ drm_plane_create_zpos_immutable_property(&plane->plane,
++ 0);
++ } else {
++ drm_object_attach_property(&plane->plane.base,
+ rcdu->props.alpha, 255);
+- drm_object_attach_property(&plane->plane.base,
++ drm_object_attach_property(&plane->plane.base,
+ rcdu->props.colorkey,
+ RCAR_DU_COLORKEY_NONE);
+- if (rcdu->props.colorkey_alpha)
+- drm_object_attach_property(&plane->plane.base,
++ if (rcdu->props.colorkey_alpha)
++ drm_object_attach_property(&plane->plane.base,
+ rcdu->props.colorkey_alpha,
+ 0);
+- drm_plane_create_zpos_property(&plane->plane, 1, 1,
++ drm_plane_create_zpos_property(&plane->plane, 1, 1,
+ vsp->num_planes - 1);
++ }
+ }
+
+ return 0;
+--
+2.7.4
+