drm/i915/psr: LunarLake PSR2_CTL[IO Wake Lines] is 6 bits wide
authorJouni Högander <jouni.hogander@intel.com>
Fri, 17 May 2024 07:30:04 +0000 (10:30 +0300)
committerJouni Högander <jouni.hogander@intel.com>
Mon, 20 May 2024 04:34:45 +0000 (07:34 +0300)
On LunarLake  PSR2_CTL[IO Wake Lines] contains now bit 13:18. Take this
into account when enabling PSR2_CTL.

Bspec: 69885

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240517073005.2414293-3-jouni.hogander@intel.com
drivers/gpu/drm/i915/display/intel_psr.c
drivers/gpu/drm/i915/display/intel_psr_regs.h

index f5d3eb776833b6e219c7d1f49b8fee1808ac852e..d2f6488b8fc78c75b2da396def227f1f92007a3f 100644 (file)
@@ -958,6 +958,8 @@ static void hsw_activate_psr2(struct intel_dp *intel_dp)
 
                tmp = map[psr->alpm_parameters.fast_wake_lines - TGL_EDP_PSR2_FAST_WAKE_MIN_LINES];
                val |= TGL_EDP_PSR2_FAST_WAKE(tmp + TGL_EDP_PSR2_FAST_WAKE_MIN_LINES);
+       } else if (DISPLAY_VER(dev_priv) >= 20) {
+               val |= LNL_EDP_PSR2_IO_BUFFER_WAKE(psr->alpm_parameters.io_wake_lines);
        } else if (DISPLAY_VER(dev_priv) >= 12) {
                val |= TGL_EDP_PSR2_IO_BUFFER_WAKE(psr->alpm_parameters.io_wake_lines);
                val |= TGL_EDP_PSR2_FAST_WAKE(psr->alpm_parameters.fast_wake_lines);
index e14cb48f2614102a619ef40810b268b309da79d5..b6a39926ccb6ee0bf5d84c6044986cadec272134 100644 (file)
 #define   TGL_EDP_PSR2_IO_BUFFER_WAKE_MIN_LINES        5
 #define   TGL_EDP_PSR2_IO_BUFFER_WAKE(lines)   REG_FIELD_PREP(TGL_EDP_PSR2_IO_BUFFER_WAKE_MASK, \
                                                               (lines) - TGL_EDP_PSR2_IO_BUFFER_WAKE_MIN_LINES)
+#define   LNL_EDP_PSR2_IO_BUFFER_WAKE_MASK     REG_GENMASK(18, 13)
+#define   LNL_EDP_PSR2_IO_BUFFER_WAKE_MIN_LINES        5
+#define   LNL_EDP_PSR2_IO_BUFFER_WAKE(lines)   REG_FIELD_PREP(LNL_EDP_PSR2_IO_BUFFER_WAKE_MASK, \
+                                                              (lines) - LNL_EDP_PSR2_IO_BUFFER_WAKE_MIN_LINES)
 #define   EDP_PSR2_FAST_WAKE_MASK              REG_GENMASK(12, 11)
 #define   EDP_PSR2_FAST_WAKE_MAX_LINES         8
 #define   EDP_PSR2_FAST_WAKE(lines)            REG_FIELD_PREP(EDP_PSR2_FAST_WAKE_MASK, \