The pre_plane_update and post_plane_update hooks used slightly different
conditions for LOBF state changes. Rewrite them to be minimal and
complementary:
- pre runs only when LOBF is being disabled (old=1 -> new=0)
- post runs only when LOBF is being enabled (old=0 -> new=1),
with an early return if PSR is active.
This will help for subsequent changes to handle LOBF during LRR and
seamless MN transitions.
Signed-off-by: Ankit Nautiyal <[email protected]>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c
b/drivers/gpu/drm/i915/display/intel_alpm.c
index 5cfb9345776a..db2b9608f7f8 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -461,7 +461,8 @@ void intel_alpm_pre_plane_update(struct intel_atomic_state
*state,
if (DISPLAY_VER(display) < 20)
return;
- if (crtc_state->has_lobf || crtc_state->has_lobf ==
old_crtc_state->has_lobf)
+ if (!old_crtc_state->has_lobf ||
+ crtc_state->has_lobf == old_crtc_state->has_lobf)
return;
for_each_intel_encoder_mask(display->drm, encoder,
@@ -512,7 +513,10 @@ void intel_alpm_post_plane_update(struct
intel_atomic_state *state,
intel_atomic_get_old_crtc_state(state, crtc);
struct intel_encoder *encoder;
- if (crtc_state->has_psr || !crtc_state->has_lobf ||
+ if (crtc_state->has_psr)
+ return;
+
+ if (!crtc_state->has_lobf ||
crtc_state->has_lobf == old_crtc_state->has_lobf)
return;
--
2.45.2