Lunarlake has some configurations in ALPM_CTL register for legacy ALPM as
well. Write these.

Bspec: 71477

Signed-off-by: Jouni Högander <jouni.hogan...@intel.com>
---
 drivers/gpu/drm/i915/display/intel_psr.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index df60b4fb0d65..47dcfc164319 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1534,6 +1534,18 @@ static void wm_optimization_wa(struct intel_dp *intel_dp,
                             wa_16013835468_bit_get(intel_dp), 0);
 }
 
+static void lnl_alpm_configure(struct intel_dp *intel_dp)
+{
+       struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+       enum transcoder cpu_transcoder = intel_dp->psr.transcoder;
+       struct alpm_parameters *alpm_params = &intel_dp->psr.alpm_params;
+
+       intel_de_write(dev_priv, ALPM_CTL(cpu_transcoder),
+                      ALPM_CTL_EXTENDED_FAST_WAKE_ENABLE |
+                      
ALPM_CTL_ALPM_ENTRY_CHECK(alpm_params->check_entry_lines) |
+                      
ALPM_CTL_EXTENDED_FAST_WAKE_TIME(alpm_params->fast_wake_lines));
+}
+
 static void intel_psr_enable_source(struct intel_dp *intel_dp,
                                    const struct intel_crtc_state *crtc_state)
 {
@@ -1589,6 +1601,9 @@ static void intel_psr_enable_source(struct intel_dp 
*intel_dp,
                             intel_dp->psr.psr2_sel_fetch_enabled ?
                             IGNORE_PSR2_HW_TRACKING : 0);
 
+       if (DISPLAY_VER(dev_priv) >= 20)
+               lnl_alpm_configure(intel_dp);
+
        /*
         * Wa_16013835468
         * Wa_14015648006
-- 
2.34.1

Reply via email to