Signed-off-by: Eric Ruei <[email protected]> --- .../0005-weston-drm-fix-dual-display-issue.patch | 62 ++++++++++++++++++++++ .../recipes-graphics/wayland/weston_5.0.0.bbappend | 3 +- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston/0005-weston-drm-fix-dual-display-issue.patch
diff --git a/meta-arago-distro/recipes-graphics/wayland/weston/0005-weston-drm-fix-dual-display-issue.patch b/meta-arago-distro/recipes-graphics/wayland/weston/0005-weston-drm-fix-dual-display-issue.patch new file mode 100644 index 0000000..b462fdb --- /dev/null +++ b/meta-arago-distro/recipes-graphics/wayland/weston/0005-weston-drm-fix-dual-display-issue.patch @@ -0,0 +1,62 @@ +From 538f82f4f0fb8f57979f46a84620bb8dc5a46ed6 Mon Sep 17 00:00:00 2001 +From: Eric Ruei <[email protected]> +Date: Tue, 26 Mar 2019 09:31:14 -0400 +Subject: [PATCH 2/2] weston: drm: fix dual display issue + +This patch fixes the dual display issue by enhancing the primary plane +search algorithm to keep the plane which is connected to the crtc of +the output because the direct switching of active planes is not allowed. + +Upstream status: Pending + +Signed-off-by: Eric Ruei <[email protected]> +--- + libweston/compositor-drm.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c +index 3891176..232cb7f 100644 +--- a/libweston/compositor-drm.c ++++ b/libweston/compositor-drm.c +@@ -428,6 +428,7 @@ struct drm_plane { + + uint32_t possible_crtcs; + uint32_t plane_id; ++ uint32_t crtc_id; + uint32_t count_formats; + + struct drm_property_info props[WDRM_PLANE__COUNT]; +@@ -4073,6 +4074,7 @@ drm_plane_create(struct drm_backend *b, const drmModePlane *kplane, + if (kplane) { + plane->possible_crtcs = kplane->possible_crtcs; + plane->plane_id = kplane->plane_id; ++ plane->crtc_id = kplane->crtc_id; + + props = drmModeObjectGetProperties(b->drm.fd, kplane->plane_id, + DRM_MODE_OBJECT_PLANE); +@@ -4097,6 +4099,7 @@ drm_plane_create(struct drm_backend *b, const drmModePlane *kplane, + else { + plane->possible_crtcs = (1 << output->pipe); + plane->plane_id = 0; ++ plane->crtc_id = 0; + plane->count_formats = 1; + plane->formats[0].format = format; + plane->type = type; +@@ -4204,6 +4207,14 @@ drm_output_find_special_plane(struct drm_backend *b, struct drm_output *output, + if (found_elsewhere) + continue; + ++ /* The output should keep the primary plane connected to its ++ * crtc since the direct switching of active plane is not ++ * allowed. */ ++ if ((plane->crtc_id != 0) && ++ (type == WDRM_PLANE_TYPE_PRIMARY) && ++ (plane->crtc_id != output->crtc_id)) ++ continue; ++ + plane->possible_crtcs = (1 << output->pipe); + return plane; + } +-- +1.9.1 + diff --git a/meta-arago-distro/recipes-graphics/wayland/weston_5.0.0.bbappend b/meta-arago-distro/recipes-graphics/wayland/weston_5.0.0.bbappend index 68e53cc..cc456b4 100644 --- a/meta-arago-distro/recipes-graphics/wayland/weston_5.0.0.bbappend +++ b/meta-arago-distro/recipes-graphics/wayland/weston_5.0.0.bbappend @@ -2,7 +2,7 @@ PACKAGECONFIG[fbdev] = "--enable-fbdev-compositor WESTON_NATIVE_BACKEND="fbdev-backend.so",--disable-fbdev-compositor,udev mtdev" PACKAGECONFIG[kms] = "--enable-drm-compositor,--disable-drm-compositor,drm udev libgbm mtdev" -PR_append = ".arago30" +PR_append = ".arago31" FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" @@ -13,6 +13,7 @@ SRC_URI += " \ file://0002-weston-Allow-visual_id-to-be-0.patch \ file://0003-weston-Fix-virtual-keyboard-display-issue-for-QT5-ap.patch \ file://0004-weston-Fix-touch-screen-crash-issue.patch \ + file://0005-weston-drm-fix-dual-display-issue.patch \ " INHIBIT_PACKAGE_STRIP = "1" -- 1.9.1 _______________________________________________ meta-arago mailing list [email protected] http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
