diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c index d607ca94bd139e07dd2ab6208da89c0b05670140..6db78d9f8e3b1f6ed029eb8b3c98f6066c658abe 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c @@ -1696,8 +1696,14 @@ static void dcn10_apply_ctx_for_surface( */ if (pipe_ctx->surface && !old_pipe_ctx->surface) { - if (pipe_ctx->mpcc->opp_id != 0xf && pipe_ctx->tg->inst == be_idx) + if (pipe_ctx->mpcc->opp_id != 0xf && pipe_ctx->tg->inst == be_idx) { dcn10_power_down_fe(dc, pipe_ctx->pipe_idx); + /* + * power down fe will unlock when calling reset, need + * to lock it back here. Messy, need rework. + */ + pipe_ctx->tg->funcs->lock(pipe_ctx->tg); + } }