[PATCH weston v6 69/73] compositor-drm: head attach requires a modeset

Pekka Paalanen ppaalanen at gmail.com
Fri Feb 16 14:57:54 UTC 2018


From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>

For the attach on an enabled output to have an effect, we need to go
through drmModeSetCrtc or ATOMIC_ALLOW_MODESET.

Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
---
 libweston/compositor-drm.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
index d1fc66ac..d0196715 100644
--- a/libweston/compositor-drm.c
+++ b/libweston/compositor-drm.c
@@ -4404,9 +4404,24 @@ static int
 drm_output_attach_head(struct weston_output *output_base,
 		       struct weston_head *head_base)
 {
+	struct drm_backend *b = to_drm_backend(output_base->compositor);
+
 	if (wl_list_length(&output_base->head_list) >= MAX_CLONED_CONNECTORS)
 		return -1;
 
+	if (!output_base->enabled)
+		return 0;
+
+	/* XXX: ensure the configuration will work.
+	 * This is actually impossible without major infrastructure
+	 * work. */
+
+	/* Need to go through modeset to add connectors. */
+	/* XXX: Ideally we'd do this per-output, not globally. */
+	b->state_invalid = true;
+
+	weston_output_schedule_repaint(output_base);
+
 	return 0;
 }
 
-- 
2.13.6



More information about the wayland-devel mailing list