DF-3946 / fix.diff
--- a/sys/dev/drm/amd/display/dc/dce110/dce110_hw_sequencer.c +++ b/sys/dev/drm/amd/display/dc/dce110/dce110_hw_sequencer.c @@ -2743,8 +2743,17 @@ for (i = 0; i < dc->res_pool->pipe_count; i++) { struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[i]; - if (pipe_ctx->stream != stream) - continue; + if (pipe_ctx->stream != stream) + continue; + + /* + * The head pipe of a stream can have its plane detached + * while the stream remains committed + * (dc_remove_plane_from_context(), core/dc_resource.c); + * such a pipe has no front end to program. + */ + if (!pipe_ctx->plane_state) + continue; /* Need to allocate mem before program front end for Fiji */ pipe_ctx->plane_res.mi->funcs->allocate_mem_input( |