From 93670a8ba09c6be5bc03af35263e3b0ab40aaec3 Mon Sep 17 00:00:00 2001 From: jsg Date: Mon, 19 Feb 2024 01:50:11 +0000 Subject: [PATCH] drm/amd/display: Fix 'panel_cntl' could be null in 'dcn21_set_backlight_level()' From Srinivasan Shanmugam 2e150ccea13129eb048679114808eb9770443e4d in linux-6.6.y/6.6.17 e96fddb32931d007db12b1fce9b5e8e4c080401b in mainline linux --- .../drm/amd/display/dc/dcn21/dcn21_hwseq.c | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 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 f99b1bc4969..7238930e638 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 @@ -237,34 +237,35 @@ bool dcn21_set_backlight_level(struct pipe_ctx *pipe_ctx, { struct dc_context *dc = pipe_ctx->stream->ctx; struct abm *abm = pipe_ctx->stream_res.abm; + struct timing_generator *tg = pipe_ctx->stream_res.tg; struct panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl; + uint32_t otg_inst; + + if (!abm && !tg && !panel_cntl) + return false; + + otg_inst = tg->inst; if (dc->dc->res_pool->dmcu) { dce110_set_backlight_level(pipe_ctx, backlight_pwm_u16_16, frame_ramp); return true; } - if (abm != NULL) { - uint32_t otg_inst = pipe_ctx->stream_res.tg->inst; - - if (abm && panel_cntl) { - 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); - } - } + 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); } - if (abm && abm->funcs && abm->funcs->set_backlight_level_pwm) + if (abm->funcs && abm->funcs->set_backlight_level_pwm) abm->funcs->set_backlight_level_pwm(abm, backlight_pwm_u16_16, frame_ramp, 0, panel_cntl->inst); else -- 2.20.1