* for VBLANK: (VACTIVE region of the SubVP pipe can fit the MALL prefetch, VBLANK frame time,
         * and the max of (VBLANK blanking time, MALL region)).
         */
-       if (stretched_drr_us < (1 / (double)drr_timing->min_refresh_in_uhz) * 1000000 * 1000000 &&
-                       subvp_active_us - prefetch_us - stretched_drr_us - max_vblank_mallregion > 0)
+       if (drr_timing &&
+           stretched_drr_us < (1 / (double)drr_timing->min_refresh_in_uhz) * 1000000 * 1000000 &&
+           subvp_active_us - prefetch_us - stretched_drr_us - max_vblank_mallregion > 0)
                schedulable = true;
 
        return schedulable;
                if (!subvp_pipe && pipe_mall_type == SUBVP_MAIN)
                        subvp_pipe = pipe;
        }
-       if (found) {
+       if (found && subvp_pipe) {
                phantom_stream = dc_state_get_paired_subvp_stream(context, subvp_pipe->stream);
                main_timing = &subvp_pipe->stream->timing;
                phantom_timing = &phantom_stream->timing;