void dcn_bw_notify_pplib_of_wm_ranges(struct dc *dc)
 {
-       struct pp_smu_funcs_rv *pp = &dc->res_pool->pp_smu->rv_funcs;
+       struct pp_smu_funcs_rv *pp = NULL;
        struct pp_smu_wm_range_sets ranges = {0};
        int min_fclk_khz, min_dcfclk_khz, socclk_khz;
        const int overdrive = 5000000; /* 5 GHz to cover Overdrive */
 
-       if (!pp->set_wm_ranges)
+       if (dc->res_pool->pp_smu)
+               pp = &dc->res_pool->pp_smu->rv_funcs;
+       if (!pp || !pp->set_wm_ranges)
                return;
 
        kernel_fpu_begin();
 
        struct pp_smu_display_requirement_rv *smu_req_cur =
                        &dc->res_pool->pp_smu_req;
        struct pp_smu_display_requirement_rv smu_req = *smu_req_cur;
-       struct pp_smu_funcs_rv *pp_smu = &dc->res_pool->pp_smu->rv_funcs;
+       struct pp_smu_funcs_rv *pp_smu = NULL;
        bool send_request_to_increase = false;
        bool send_request_to_lower = false;
        int display_count;
        bool enter_display_off = false;
 
        display_count = get_active_display_cnt(dc, context);
-
+       if (dc->res_pool->pp_smu)
+               pp_smu = &dc->res_pool->pp_smu->rv_funcs;
        if (display_count == 0)
                enter_display_off = true;
 
                 * if function pointer not set up, this message is
                 * sent as part of pplib_apply_display_requirements.
                 */
-               if (pp_smu->set_display_count)
+               if (pp_smu && pp_smu->set_display_count)
                        pp_smu->set_display_count(&pp_smu->pp_smu, display_count);
 
                smu_req.display_count = display_count;
         */
        if (send_request_to_increase) {
                /*use dcfclk to request voltage*/
-               if (pp_smu->set_hard_min_fclk_by_freq &&
+               if (pp_smu && pp_smu->set_hard_min_fclk_by_freq &&
                                pp_smu->set_hard_min_dcfclk_by_freq &&
                                pp_smu->set_min_deep_sleep_dcfclk) {
 
 
        if (!send_request_to_increase && send_request_to_lower) {
                /*use dcfclk to request voltage*/
-               if (pp_smu->set_hard_min_fclk_by_freq &&
+               if (pp_smu && pp_smu->set_hard_min_fclk_by_freq &&
                                pp_smu->set_hard_min_dcfclk_by_freq &&
                                pp_smu->set_min_deep_sleep_dcfclk) {