return true;
 }
 
-void dcn20_split_stream_for_mpc(
+bool dcn20_split_stream_for_mpc(
                struct resource_context *res_ctx,
                const struct resource_pool *pool,
                struct pipe_ctx *primary_pipe,
        secondary_pipe->top_pipe = primary_pipe;
 
        ASSERT(primary_pipe->plane_state);
-       resource_build_scaling_params(primary_pipe);
-       resource_build_scaling_params(secondary_pipe);
+       if (!resource_build_scaling_params(primary_pipe) ||
+                       !resource_build_scaling_params(secondary_pipe))
+               return false;
+
+       return true;
 }
 
 void dcn20_populate_dml_writeback_from_context(
                                                goto validate_fail;
                                        dcn20_build_mapped_resource(dc, context, pipe->stream);
                                } else
-                                       dcn20_split_stream_for_mpc(
-                                               &context->res_ctx, dc->res_pool,
-                                               pipe, hsplit_pipe);
+                                       if (!dcn20_split_stream_for_mpc(
+                                                       &context->res_ctx, dc->res_pool,
+                                                       pipe, hsplit_pipe))
+                                               goto validate_fail;
                                pipe_split_from[hsplit_pipe->pipe_idx] = pipe_idx;
                        }
                } else if (hsplit_pipe && hsplit_pipe->plane_state == pipe->plane_state) {
 
                        const struct resource_pool *pool,
                        struct display_stream_compressor **dsc);
 bool dcn20_validate_dsc(struct dc *dc, struct dc_state *new_ctx);
-void dcn20_split_stream_for_mpc(
+bool dcn20_split_stream_for_mpc(
                struct resource_context *res_ctx,
                const struct resource_pool *pool,
                struct pipe_ctx *primary_pipe,