From 1e75ca7aaab171945e8d9995ff9776274dec55d8 Mon Sep 17 00:00:00 2001 From: jsg Date: Mon, 19 Feb 2024 01:52:20 +0000 Subject: [PATCH] drm/amd/display: Add NULL test for 'timing generator' in 'dcn21_set_pipe()' From Srinivasan Shanmugam 3f3c237a706580326d3b7a1b97697e5031ca4667 in linux-6.6.y/6.6.17 66951d98d9bf45ba25acf37fe0747253fafdf298 in mainline linux --- .../drm/amd/display/dc/dcn21/dcn21_hwseq.c | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/sys/dev/pci/drm/amd/display/dc/dcn21/dcn21_hwseq.c b/sys/dev/pci/drm/amd/display/dc/dcn21/dcn21_hwseq.c index 7238930e638..1b08749b084 100644 --- a/sys/dev/pci/drm/amd/display/dc/dcn21/dcn21_hwseq.c +++ b/sys/dev/pci/drm/amd/display/dc/dcn21/dcn21_hwseq.c @@ -206,28 +206,32 @@ void dcn21_set_abm_immediate_disable(struct pipe_ctx *pipe_ctx) void dcn21_set_pipe(struct pipe_ctx *pipe_ctx) { struct abm *abm = pipe_ctx->stream_res.abm; - uint32_t otg_inst = pipe_ctx->stream_res.tg->inst; + struct timing_generator *tg = pipe_ctx->stream_res.tg; struct panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl; struct dmcu *dmcu = pipe_ctx->stream->ctx->dc->res_pool->dmcu; + uint32_t otg_inst; + + if (!abm && !tg && !panel_cntl) + return; + + otg_inst = tg->inst; if (dmcu) { dce110_set_pipe(pipe_ctx); return; } - if (abm && panel_cntl) { - if (abm->funcs && abm->funcs->set_pipe_ex) { - abm->funcs->set_pipe_ex(abm, + if (abm->funcs && abm->funcs->set_pipe_ex) { + abm->funcs->set_pipe_ex(abm, otg_inst, SET_ABM_PIPE_NORMAL, panel_cntl->inst, panel_cntl->pwrseq_inst); - } else { - dmub_abm_set_pipe(abm, otg_inst, - SET_ABM_PIPE_NORMAL, - panel_cntl->inst, - panel_cntl->pwrseq_inst); - } + } else { + dmub_abm_set_pipe(abm, otg_inst, + SET_ABM_PIPE_NORMAL, + panel_cntl->inst, + panel_cntl->pwrseq_inst); } } -- 2.20.1