#include "dce/dce_i2c_hw.h"
 #include "dce/dce_panel_cntl.h"
 #include "dce/dmub_abm.h"
+#include "dce/dmub_psr.h"
 
 #include "hw_sequencer_private.h"
 #include "reg_helper.h"
                .dwb_fi_phase = -1, // -1 = disable
                .dmub_command_table = true,
                .enable_tri_buf = true,
+               .disable_psr = true,
 };
 
 enum dcn302_clk_src_array_id {
                        dce_abm_destroy(&pool->multiple_abms[i]);
        }
 
+       if (pool->psr != NULL)
+               dmub_psr_destroy(&pool->psr);
+
        if (pool->dccg != NULL)
                dcn_dccg_destroy(&pool->dccg);
 }
        }
        pool->timing_generator_count = i;
 
+       /* PSR */
+       pool->psr = dmub_psr_create(ctx);
+       if (pool->psr == NULL) {
+               dm_error("DC: failed to create psr!\n");
+               BREAK_TO_DEBUGGER();
+               goto create_fail;
+       }
+
        /* ABMs */
        for (i = 0; i < pool->res_cap->num_timing_generator; i++) {
                pool->multiple_abms[i] = dmub_abm_create(ctx, &abm_regs[i], &abm_shift, &abm_mask);