summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhang Nguyen <khang.nguyen.xw@renesas.com>2020-04-03 16:57:36 +0900
committerKhang Nguyen <khang.nguyen.xw@renesas.com>2020-05-04 18:17:34 +0900
commitd2ac235d446aa87dbe2bbb3883b8707ae43f3e6d (patch)
treea73808e0fb2ca166686e9b72ce37680a68862579
parenta2a4b6233ed053964f4601bf3eb1ae919bf103c7 (diff)
rcar-gen3: linux-renesas: Fix ZPOS issue occurs on Weston 8.0.0
This applies a patch to Kernel to fix ZPOS issue occurs on Weston 8.0.0: 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: Takamitsu Honda <takamitsu.honda.pv@renesas.com> Change-Id: I1adb23fd123a6aaafa1ea2c669631200967bff89
-rw-r--r--meta-rcar-gen3/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-drm-rcar-du-Set-primary-plane-zpos-immutably-at-init.patch89
-rw-r--r--meta-rcar-gen3/recipes-kernel/linux-libc-headers/linux-libc-headers_4.14.bb5
-rw-r--r--meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-drm-rcar-du-Set-primary-plane-zpos-immutably-at-init.patch89
-rw-r--r--meta-rcar-gen3/recipes-kernel/linux/linux-renesas_4.14.bb5
4 files changed, 188 insertions, 0 deletions
diff --git a/meta-rcar-gen3/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-drm-rcar-du-Set-primary-plane-zpos-immutably-at-init.patch b/meta-rcar-gen3/recipes-kernel/linux-libc-headers/linux-libc-headers/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-libc-headers/linux-libc-headers/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
+
diff --git a/meta-rcar-gen3/recipes-kernel/linux-libc-headers/linux-libc-headers_4.14.bb b/meta-rcar-gen3/recipes-kernel/linux-libc-headers/linux-libc-headers_4.14.bb
index 2887f2f..e22fff8 100644
--- a/meta-rcar-gen3/recipes-kernel/linux-libc-headers/linux-libc-headers_4.14.bb
+++ b/meta-rcar-gen3/recipes-kernel/linux-libc-headers/linux-libc-headers_4.14.bb
@@ -16,6 +16,11 @@ SRC_URI_append = " \
file://0001-perf-tools-Add-Python-3-support.patch \
"
+# Fix patch for Weston 8.0.0 issue
+SRC_URI_append = " \
+ file://0001-drm-rcar-du-Set-primary-plane-zpos-immutably-at-init.patch \
+"
+
# Enable RPMSG_VIRTIO depend on ICCOM
SRC_URI_append = " \
${@oe.utils.conditional("USE_ICCOM", "1", " file://0001-rpmsg-Add-message-to-be-able-to-configure-RPMSG_VIRT.patch", "", d)} \
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
+
diff --git a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas_4.14.bb b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas_4.14.bb
index b2a2f66..f43a965 100644
--- a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas_4.14.bb
+++ b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas_4.14.bb
@@ -34,6 +34,11 @@ SRC_URI_append = " \
file://0001-perf-tools-Add-Python-3-support.patch \
"
+# Fix patch for Weston 8.0.0 issue
+SRC_URI_append = " \
+ file://0001-drm-rcar-du-Set-primary-plane-zpos-immutably-at-init.patch \
+"
+
# Enable RPMSG_VIRTIO depend on ICCOM
SUPPORT_ICCOM = " \
file://0001-rpmsg-Add-message-to-be-able-to-configure-RPMSG_VIRT.patch \