diff options
author | Khang Nguyen <khang.nguyen.xw@renesas.com> | 2020-04-03 16:57:36 +0900 |
---|---|---|
committer | Khang Nguyen <khang.nguyen.xw@renesas.com> | 2020-05-04 18:17:34 +0900 |
commit | d2ac235d446aa87dbe2bbb3883b8707ae43f3e6d (patch) | |
tree | a73808e0fb2ca166686e9b72ce37680a68862579 | |
parent | a2a4b6233ed053964f4601bf3eb1ae919bf103c7 (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
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 \ |