}
 }
 
+static void intel_alpm_enable_sink(struct intel_dp *intel_dp,
+                                  const struct intel_crtc_state *crtc_state)
+{
+       u8 val;
+
+       if (!intel_psr_needs_alpm(intel_dp, crtc_state) && !crtc_state->has_lobf)
+               return;
+
+       val = DP_ALPM_ENABLE | DP_ALPM_LOCK_ERROR_IRQ_HPD_ENABLE;
+
+       if (crtc_state->has_panel_replay || (crtc_state->has_lobf &&
+                                            intel_alpm_aux_less_wake_supported(intel_dp)))
+               val |= DP_ALPM_MODE_AUX_LESS;
+
+       drm_dp_dpcd_writeb(&intel_dp->aux, DP_RECEIVER_ALPM_CONFIG, val);
+}
+
 void intel_alpm_post_plane_update(struct intel_atomic_state *state,
                                  struct intel_crtc *crtc)
 {
 
                intel_dp = enc_to_intel_dp(encoder);
 
-               if (intel_dp_is_edp(intel_dp))
+               if (intel_dp_is_edp(intel_dp)) {
+                       intel_alpm_enable_sink(intel_dp, crtc_state);
                        intel_alpm_configure(intel_dp, crtc_state);
+               }
        }
 }
 
 
        drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG, val);
 }
 
-static void intel_psr_enable_sink_alpm(struct intel_dp *intel_dp,
-                                      const struct intel_crtc_state *crtc_state)
-{
-       u8 val;
-
-       /*
-        * eDP Panel Replay uses always ALPM
-        * PSR2 uses ALPM but PSR1 doesn't
-        */
-       if (!intel_dp_is_edp(intel_dp) || (!crtc_state->has_panel_replay &&
-                                          !crtc_state->has_sel_update))
-               return;
-
-       val = DP_ALPM_ENABLE | DP_ALPM_LOCK_ERROR_IRQ_HPD_ENABLE;
-
-       if (crtc_state->has_panel_replay)
-               val |= DP_ALPM_MODE_AUX_LESS;
-
-       drm_dp_dpcd_writeb(&intel_dp->aux, DP_RECEIVER_ALPM_CONFIG, val);
-}
-
 static void intel_psr_enable_sink(struct intel_dp *intel_dp,
                                  const struct intel_crtc_state *crtc_state)
 {
-       intel_psr_enable_sink_alpm(intel_dp, crtc_state);
-
        crtc_state->has_panel_replay ?
                _panel_replay_enable_sink(intel_dp, crtc_state) :
                _psr_enable_sink(intel_dp, crtc_state);
 
 bool intel_psr_needs_alpm(struct intel_dp *intel_dp, const struct intel_crtc_state *crtc_state)
 {
+       /*
+        * eDP Panel Replay uses always ALPM
+        * PSR2 uses ALPM but PSR1 doesn't
+        */
        return intel_dp_is_edp(intel_dp) && (crtc_state->has_sel_update ||
                                             crtc_state->has_panel_replay);
 }