From 2478000c7382de46c60ec5c46e92d3eb588f1f28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Mon, 28 Jun 2021 09:16:12 +0200 Subject: [PATCH] kms: Properly predict power saving effect on tracked state Entering power saving effectively disables CRTCs, and thus the CRTC id a connector is associated with. Make sure that the tracked state reflects this. Part-of: --- src/backends/native/meta-kms-connector.c | 3 +++ src/backends/native/meta-kms-crtc.c | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/src/backends/native/meta-kms-connector.c b/src/backends/native/meta-kms-connector.c index 368dd0ff7..7d10dcb3c 100644 --- a/src/backends/native/meta-kms-connector.c +++ b/src/backends/native/meta-kms-connector.c @@ -766,6 +766,9 @@ meta_kms_connector_predict_state (MetaKmsConnector *connector, if (!current_state) return; + if (meta_kms_update_is_power_save (update)) + current_state->current_crtc_id = 0; + mode_sets = meta_kms_update_get_mode_sets (update); for (l = mode_sets; l; l = l->next) { diff --git a/src/backends/native/meta-kms-crtc.c b/src/backends/native/meta-kms-crtc.c index 4599f4455..7d4706bf1 100644 --- a/src/backends/native/meta-kms-crtc.c +++ b/src/backends/native/meta-kms-crtc.c @@ -285,6 +285,14 @@ meta_kms_crtc_predict_state (MetaKmsCrtc *crtc, GList *crtc_gammas; GList *l; + if (meta_kms_update_is_power_save (update)) + { + crtc->current_state.is_active = FALSE; + crtc->current_state.rect = (MetaRectangle) { 0 }; + crtc->current_state.is_drm_mode_valid = FALSE; + crtc->current_state.drm_mode = (drmModeModeInfo) { 0 }; + } + mode_sets = meta_kms_update_get_mode_sets (update); for (l = mode_sets; l; l = l->next) {