[PATCH weston v9 4/9] compositor-drm: head attach requires a modeset
Pekka Paalanen
ppaalanen at gmail.com
Thu Apr 19 12:09:14 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.
v9:
- Add another XXX comment.
Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
Acked-by: Derek Foreman <derekf at osg.samsung.com>
---
libweston/compositor-drm.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
index ed7ac15b..25d122de 100644
--- a/libweston/compositor-drm.c
+++ b/libweston/compositor-drm.c
@@ -4386,9 +4386,27 @@ 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. */
+ /* XXX: Doing it globally, what guarantees another output's update
+ * will not clear the flag before this output is updated?
+ */
+ b->state_invalid = true;
+
+ weston_output_schedule_repaint(output_base);
+
return 0;
}
--
2.16.1
More information about the wayland-devel
mailing list