* - Config must have 2 displays (i.e., 2 non-phantom master pipes)
  * - One display is SubVP
  * - Other display must have Freesync enabled
+ * - The potential DRR display must not be PSR capable
  *
  * @return: True if admissible, false otherwise
  *
        uint8_t subvp_count = 0;
        uint8_t non_subvp_pipes = 0;
        bool drr_pipe_found = false;
+       bool drr_psr_capable = false;
 
        for (i = 0; i < dc->res_pool->pipe_count; i++) {
                struct pipe_ctx *pipe = &context->res_ctx.pipe_ctx[i];
                                subvp_count++;
                        if (pipe->stream->mall_stream_config.type == SUBVP_NONE) {
                                non_subvp_pipes++;
+                               drr_psr_capable = (drr_psr_capable || dcn32_is_psr_capable(pipe));
                                if (pipe->stream->ignore_msa_timing_param &&
                                                (pipe->stream->allow_freesync || pipe->stream->vrr_active_variable)) {
                                        drr_pipe_found = true;
                }
        }
 
-       if (subvp_count == 1 && non_subvp_pipes == 1 && drr_pipe_found)
+       if (subvp_count == 1 && non_subvp_pipes == 1 && drr_pipe_found && !drr_psr_capable)
                result = true;
 
        return result;
  * - One display is SubVP
  * - Other display must not have Freesync capability
  * - DML must have output DRAM clock change support as SubVP + Vblank
+ * - The potential vblank display must not be PSR capable
  *
  * @return: True if admissible, false otherwise
  *
        uint8_t non_subvp_pipes = 0;
        bool drr_pipe_found = false;
        struct vba_vars_st *vba = &context->bw_ctx.dml.vba;
+       bool vblank_psr_capable = false;
 
        for (i = 0; i < dc->res_pool->pipe_count; i++) {
                struct pipe_ctx *pipe = &context->res_ctx.pipe_ctx[i];
                                subvp_count++;
                        if (pipe->stream->mall_stream_config.type == SUBVP_NONE) {
                                non_subvp_pipes++;
+                               vblank_psr_capable = (vblank_psr_capable || dcn32_is_psr_capable(pipe));
                                if (pipe->stream->ignore_msa_timing_param &&
                                                (pipe->stream->allow_freesync || pipe->stream->vrr_active_variable)) {
                                        drr_pipe_found = true;
                }
        }
 
-       if (subvp_count == 1 && non_subvp_pipes == 1 && !drr_pipe_found &&
+       if (subvp_count == 1 && non_subvp_pipes == 1 && !drr_pipe_found && !vblank_psr_capable &&
                        vba->DRAMClockChangeSupport[vlevel][vba->maxMpcComb] == dm_dram_clock_change_vblank_w_mall_sub_vp)
                result = true;