From: Ankit Nautiyal Date: Wed, 4 Feb 2026 05:02:50 +0000 (+0530) Subject: drm/i915/alpm: Disable LOBF around transitioning for LRR/seamless MN X-Git-Tag: v7.1-rc1~167^2~24^2~167 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fcb7a015464ddbb59001df46ea3f75a9501e131b;p=thirdparty%2Flinux.git drm/i915/alpm: Disable LOBF around transitioning for LRR/seamless MN When enabling LRR/seamless MN disable LOBF first and re-enable afterwards. - pre_plane_update: if LOBF was enabled, disable LOBF before the update_lrr/update_m_n transition. - post_plane_update: Re-enable LOBF after the transition. Signed-off-by: Ankit Nautiyal Reviewed-by: MichaƂ Grzelak Link: https://patch.msgid.link/20260204050250.762718-6-ankit.k.nautiyal@intel.com --- diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 739a0a74e008d..295f14416be70 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -1014,7 +1014,9 @@ static bool intel_crtc_lobf_enabling(const struct intel_crtc_state *old_crtc_sta if (!new_crtc_state->hw.active) return false; - return is_enabling(has_lobf, old_crtc_state, new_crtc_state); + return is_enabling(has_lobf, old_crtc_state, new_crtc_state) || + (new_crtc_state->has_lobf && + (new_crtc_state->update_lrr || new_crtc_state->update_m_n)); } static bool intel_crtc_lobf_disabling(const struct intel_crtc_state *old_crtc_state, @@ -1023,7 +1025,9 @@ static bool intel_crtc_lobf_disabling(const struct intel_crtc_state *old_crtc_st if (!old_crtc_state->hw.active) return false; - return is_disabling(has_lobf, old_crtc_state, new_crtc_state); + return is_disabling(has_lobf, old_crtc_state, new_crtc_state) || + (old_crtc_state->has_lobf && + (new_crtc_state->update_lrr || new_crtc_state->update_m_n)); } #undef is_disabling