From: Pekka Paalanen Date: Fri, 8 Dec 2017 12:45:00 +0000 (+0200) Subject: compositor-drm: head attach requires a modeset X-Git-Tag: upstream/5.0.0~127 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d5f98d8932c6b3502b44ff5a3554ab7f80457231;p=platform%2Fupstream%2Fweston.git compositor-drm: head attach requires a modeset 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 Acked-by: Derek Foreman Reviewed-by: Daniel Stone --- diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c index 9e88962c..592ee76a 100644 --- a/libweston/compositor-drm.c +++ b/libweston/compositor-drm.c @@ -4388,9 +4388,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; }