return 0;
 }
 
-static bool intel_crtc_needs_wa_14015401596(const struct intel_crtc_state *crtc_state)
-{
-       struct intel_display *display = to_intel_display(crtc_state);
-
-       return intel_vrr_possible(crtc_state) && crtc_state->has_psr &&
-               IS_DISPLAY_VER(display, 13, 14);
-}
-
 static int intel_crtc_vblank_delay(const struct intel_crtc_state *crtc_state)
 {
        struct intel_display *display = to_intel_display(crtc_state);
        if (!HAS_DSB(display))
                return 0;
 
-       /* Wa_14015401596 */
-       if (intel_crtc_needs_wa_14015401596(crtc_state))
-               vblank_delay = max(vblank_delay, 1);
-
        vblank_delay = max(vblank_delay, intel_psr_min_vblank_delay(crtc_state));
 
        return vblank_delay;
 
 #include "intel_psr_regs.h"
 #include "intel_snps_phy.h"
 #include "intel_vblank.h"
+#include "intel_vrr.h"
 #include "skl_universal_plane.h"
 
 /**
 {
        struct intel_display *display = to_intel_display(crtc_state);
 
-       if (!crtc_state->has_psr || DISPLAY_VER(display) < 20)
+       if (!crtc_state->has_psr)
+               return 0;
+
+       /* Wa_14015401596 */
+       if (intel_vrr_possible(crtc_state) && IS_DISPLAY_VER(display, 13, 14))
+               return 1;
+
+       /* Rest is for SRD_STATUS needed on LunarLake and onwards */
+       if (DISPLAY_VER(display) < 20)
                return 0;
 
        /*