Commit fcb7a015 authored by Ankit Nautiyal's avatar Ankit Nautiyal
Browse files

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: default avatarAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: default avatarMichał Grzelak <michal.grzelak@intel.com>
Link: https://patch.msgid.link/20260204050250.762718-6-ankit.k.nautiyal@intel.com
parent 31106c68
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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