From: Ville Syrjälä Date: Wed, 19 Nov 2025 18:16:04 +0000 (+0200) Subject: drm/i915: Use hw.active instead of uapi.active in the initial plane readout X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e48b99d863166c5131f6d6c0ed81107392bc421f;p=thirdparty%2Fkernel%2Flinux.git drm/i915: Use hw.active instead of uapi.active in the initial plane readout We're interested in the actual hardware state rather than the uapi state, so grab the crtc active flag from the correct spot. In practice the two will be identical here becase .get_initial_plane_config() will reject the initial FB when joiner is active. Signed-off-by: Ville Syrjälä Link: https://patch.msgid.link/20251119181606.17129-5-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula --- diff --git a/drivers/gpu/drm/i915/display/intel_plane_initial.c b/drivers/gpu/drm/i915/display/intel_plane_initial.c index a1de1ec564d1f..ff1afd3a8f205 100644 --- a/drivers/gpu/drm/i915/display/intel_plane_initial.c +++ b/drivers/gpu/drm/i915/display/intel_plane_initial.c @@ -39,7 +39,7 @@ intel_reuse_initial_plane_obj(struct intel_crtc *this, const struct intel_crtc_state *crtc_state = to_intel_crtc_state(crtc->base.state); - if (!crtc_state->uapi.active) + if (!crtc_state->hw.active) continue; if (!plane_state->ggtt_vma) @@ -411,10 +411,12 @@ void intel_initial_plane_config(struct intel_display *display) struct intel_crtc *crtc; for_each_intel_crtc(display->drm, crtc) { + const struct intel_crtc_state *crtc_state = + to_intel_crtc_state(crtc->base.state); struct intel_initial_plane_config *plane_config = &plane_configs[crtc->pipe]; - if (!to_intel_crtc_state(crtc->base.state)->uapi.active) + if (!crtc_state->hw.active) continue; /* diff --git a/drivers/gpu/drm/xe/display/xe_plane_initial.c b/drivers/gpu/drm/xe/display/xe_plane_initial.c index 12d25c5290fd2..01c105a93bb90 100644 --- a/drivers/gpu/drm/xe/display/xe_plane_initial.c +++ b/drivers/gpu/drm/xe/display/xe_plane_initial.c @@ -58,7 +58,7 @@ intel_reuse_initial_plane_obj(struct intel_crtc *this, const struct intel_crtc_state *crtc_state = to_intel_crtc_state(crtc->base.state); - if (!crtc_state->uapi.active) + if (!crtc_state->hw.active) continue; if (!plane_state->ggtt_vma) @@ -290,10 +290,12 @@ void intel_initial_plane_config(struct intel_display *display) struct intel_crtc *crtc; for_each_intel_crtc(display->drm, crtc) { + const struct intel_crtc_state *crtc_state = + to_intel_crtc_state(crtc->base.state); struct intel_initial_plane_config *plane_config = &plane_configs[crtc->pipe]; - if (!to_intel_crtc_state(crtc->base.state)->uapi.active) + if (!crtc_state->hw.active) continue; /*