Signed-off-by: Eric Ruei <[email protected]> --- .../0005-weston-drm-fix-dual-display-issue.patch | 79 ++++++++++++++++++++++ .../recipes-graphics/wayland/weston_5.0.0.bbappend | 3 +- 2 files changed, 81 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..9b06b81 --- /dev/null +++ b/meta-arago-distro/recipes-graphics/wayland/weston/0005-weston-drm-fix-dual-display-issue.patch @@ -0,0 +1,79 @@ +From db6f5ce008d9b8a4cc7db71659ce1d21d3d7f97f Mon Sep 17 00:00:00 2001 +From: Eric Ruei <[email protected]> +Date: Tue, 26 Mar 2019 13:32:31 -0400 +Subject: [PATCH 3/3] 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 | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c +index 3891176..fa694c3 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; +@@ -4157,6 +4160,7 @@ drm_output_find_special_plane(struct drm_backend *b, struct drm_output *output, + enum wdrm_plane_type type) + { + struct drm_plane *plane; ++ struct drm_plane *plane2 = NULL; /* secondary plane */ + + if (!b->universal_planes) { + uint32_t format; +@@ -4204,11 +4208,22 @@ 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 ((type == WDRM_PLANE_TYPE_PRIMARY) && ++ (plane->crtc_id != output->crtc_id)) { ++ if (plane->crtc_id == 0) { ++ plane->possible_crtcs = (1 << output->pipe); ++ plane2 = plane; ++ } ++ continue; ++ } + plane->possible_crtcs = (1 << output->pipe); + return plane; + } + +- return NULL; ++ return plane2; + } + + /** +-- +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
