diff options
Diffstat (limited to 'libweston/backend-drm/kms.c')
-rw-r--r-- | libweston/backend-drm/kms.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libweston/backend-drm/kms.c b/libweston/backend-drm/kms.c index ea1d8090..d12fa57e 100644 --- a/libweston/backend-drm/kms.c +++ b/libweston/backend-drm/kms.c @@ -1163,6 +1163,7 @@ drm_output_apply_state_atomic(struct drm_output_state *state, struct drm_plane_state *plane_state; struct drm_mode *current_mode = to_drm_mode(output->base.current_mode); struct drm_head *head; + struct drm_head *tmp; struct drm_writeback_state *wb_state = output->wb_state; enum writeback_screenshot_state wb_screenshot_state = drm_output_get_writeback_state(output); @@ -1235,6 +1236,14 @@ drm_output_apply_state_atomic(struct drm_output_state *state, wl_list_for_each(head, &output->base.head_list, base.output_link) ret |= connector_add_prop(req, &head->connector, WDRM_CONNECTOR_CRTC_ID, 0); + + wl_list_for_each_safe(head, tmp, &output->disable_head, + disable_head_link) { + ret |= connector_add_prop(req, &head->connector, + WDRM_CONNECTOR_CRTC_ID, 0); + wl_list_remove(&head->disable_head_link); + wl_list_init(&head->disable_head_link); + } } wl_list_for_each(head, &output->base.head_list, base.output_link) { |