summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorAnkit Nautiyal <ankit.k.nautiyal@intel.com>2026-02-04 10:32:50 +0530
committerAnkit Nautiyal <ankit.k.nautiyal@intel.com>2026-02-05 14:20:30 +0530
commitfcb7a015464ddbb59001df46ea3f75a9501e131b (patch)
tree22e93adb9c06eb3774c7fbcf8782a6713d2d89fa /drivers/gpu
parent31106c684db72b0714013e2620ad415cc8756109 (diff)
downloadlinux-fcb7a015464ddbb59001df46ea3f75a9501e131b.tar.gz
linux-fcb7a015464ddbb59001df46ea3f75a9501e131b.zip
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 <ankit.k.nautiyal@intel.com> Reviewed-by: MichaƂ Grzelak <michal.grzelak@intel.com> Link: https://patch.msgid.link/20260204050250.762718-6-ankit.k.nautiyal@intel.com
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/display/intel_display.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 739a0a74e008..295f14416be7 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