intel_atomic_get_old_crtc_state(state, crtc);
        struct intel_encoder *encoder;
 
-       if ((!crtc_state->has_lobf ||
-            crtc_state->has_lobf == old_crtc_state->has_lobf) && !crtc_state->has_psr)
+       if (crtc_state->has_psr || !crtc_state->has_lobf ||
+           crtc_state->has_lobf == old_crtc_state->has_lobf)
                return;
 
        for_each_intel_encoder_mask(display->drm, encoder,
 
 static void intel_psr_enable_sink(struct intel_dp *intel_dp,
                                  const struct intel_crtc_state *crtc_state)
 {
+       intel_alpm_enable_sink(intel_dp, crtc_state);
+
        crtc_state->has_panel_replay ?
                _panel_replay_enable_sink(intel_dp, crtc_state) :
                _psr_enable_sink(intel_dp, crtc_state);
             IS_DISPLAY_VERx100_STEP(display, 3000, STEP_A0, STEP_B0)) &&
            !intel_dp->psr.panel_replay_enabled)
                intel_dmc_block_pkgc(display, intel_dp->psr.pipe, true);
+
+       intel_alpm_configure(intel_dp, crtc_state);
 }
 
 static bool psr_interrupt_error_check(struct intel_dp *intel_dp)
                            intel_dp->psr.sel_update_enabled ? "2" : "1");
 
        /*
-        * Enabling here only for PSR. Panel Replay enable bit is already
-        * written at this point. See
+        * Enabling sink PSR/Panel Replay here only for PSR. Panel Replay enable
+        * bit is already written at this point. Sink ALPM is enabled here for
+        * PSR and Panel Replay. See
         * intel_psr_panel_replay_enable_sink. Modifiers/options:
         *  - Selective Update
         *  - Region Early Transport
        if (intel_dp_is_edp(intel_dp))
                intel_snps_phy_update_psr_power_state(&dp_to_dig_port(intel_dp)->base, false);
 
+       if (intel_dp->psr.panel_replay_enabled && intel_dp_is_edp(intel_dp))
+               intel_alpm_disable(intel_dp);
+
        /* Disable PSR on Sink */
        if (!intel_dp->psr.panel_replay_enabled) {
                drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG, 0);
        if (intel_alpm_get_error(intel_dp)) {
                intel_psr_disable_locked(intel_dp);
                psr->sink_not_reliable = true;
-               intel_alpm_disable(intel_dp);
        }
 }