From 38ec635750f3e01eb72acfea7ee96dd7324e553e Mon Sep 17 00:00:00 2001 From: Victoria Brekenfeld Date: Fri, 15 Jul 2022 19:35:36 +0200 Subject: [PATCH] drm: Fix borked cleanup logic --- src/backend/kms/drm_helpers.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/backend/kms/drm_helpers.rs b/src/backend/kms/drm_helpers.rs index 5313598b..debec901 100644 --- a/src/backend/kms/drm_helpers.rs +++ b/src/backend/kms/drm_helpers.rs @@ -72,10 +72,17 @@ pub fn display_configuration( for conn in connectors .iter() .flat_map(|conn| device.get_connector(*conn).ok()) - .flat_map(|conn| conn.current_encoder()) - .flat_map(|enc| device.get_encoder(enc).ok()) - .flat_map(|enc| enc.crtc()) - .filter(|c| cleanup.contains(&c)) + .filter(|conn| { + if let Some(enc) = conn.current_encoder() { + if let Some(enc) = device.get_encoder(enc).ok() { + if let Some(crtc) = enc.crtc() { + return cleanup.contains(&crtc); + } + } + } + false + }) + .map(|info| info.handle()) { let crtc_id = get_prop(device, conn, "CRTC_ID")?; req.add_property(conn, crtc_id, property::Value::CRTC(None));