struct dc_link *link, uint32_t coasting_vtotal);
        bool (*edp_replay_residency)(const struct dc_link *link,
                        unsigned int *residency, const bool is_start,
-                       const bool is_alpm);
+                       const enum pr_residency_mode mode);
        bool (*edp_set_replay_power_opt_and_coasting_vtotal)(struct dc_link *link,
                        const unsigned int *power_opts, uint32_t coasting_vtotal);
 
 
 }
 
 bool edp_replay_residency(const struct dc_link *link,
-       unsigned int *residency, const bool is_start, const bool is_alpm)
+       unsigned int *residency, const bool is_start, const enum pr_residency_mode mode)
 {
        struct dc  *dc = link->ctx->dc;
        struct dmub_replay *replay = dc->res_pool->replay;
        if (!dc_get_edp_link_panel_inst(dc, link, &panel_inst))
                return false;
 
+       if (!residency)
+               return false;
+
        if (replay != NULL && link->replay_settings.replay_feature_enabled)
-               replay->funcs->replay_residency(replay, panel_inst, residency, is_start, is_alpm);
+               replay->funcs->replay_residency(replay, panel_inst, residency, is_start, mode);
        else
                *residency = 0;
 
 
                        union dmub_replay_cmd_set *cmd_data);
 bool edp_set_coasting_vtotal(struct dc_link *link, uint32_t coasting_vtotal);
 bool edp_replay_residency(const struct dc_link *link,
-       unsigned int *residency, const bool is_start, const bool is_alpm);
+       unsigned int *residency, const bool is_start, const enum pr_residency_mode mode);
 bool edp_get_replay_state(const struct dc_link *link, uint64_t *state);
 bool edp_set_replay_power_opt_and_coasting_vtotal(struct dc_link *link,
        const unsigned int *power_opts, uint32_t coasting_vtotal);