Commit 66951d98 authored by Srinivasan Shanmugam's avatar Srinivasan Shanmugam Committed by Alex Deucher

drm/amd/display: Add NULL test for 'timing generator' in 'dcn21_set_pipe()'

In "u32 otg_inst = pipe_ctx->stream_res.tg->inst;"
pipe_ctx->stream_res.tg could be NULL, it is relying on the caller to
ensure the tg is not NULL.

Fixes: 474ac4a8 ("drm/amd/display: Implement some asic specific abm call backs.")
Cc: Yongqiang Sun <yongqiang.sun@amd.com>
Cc: Anthony Koo <Anthony.Koo@amd.com>
Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Cc: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: default avatarSrinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Reviewed-by: default avatarAnthony Koo <Anthony.Koo@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e96fddb3
...@@ -206,28 +206,32 @@ void dcn21_set_abm_immediate_disable(struct pipe_ctx *pipe_ctx) ...@@ -206,28 +206,32 @@ void dcn21_set_abm_immediate_disable(struct pipe_ctx *pipe_ctx)
void dcn21_set_pipe(struct pipe_ctx *pipe_ctx) void dcn21_set_pipe(struct pipe_ctx *pipe_ctx)
{ {
struct abm *abm = pipe_ctx->stream_res.abm; 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 panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl;
struct dmcu *dmcu = pipe_ctx->stream->ctx->dc->res_pool->dmcu; 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) { if (dmcu) {
dce110_set_pipe(pipe_ctx); dce110_set_pipe(pipe_ctx);
return; return;
} }
if (abm && panel_cntl) { if (abm->funcs && abm->funcs->set_pipe_ex) {
if (abm->funcs && abm->funcs->set_pipe_ex) { abm->funcs->set_pipe_ex(abm,
abm->funcs->set_pipe_ex(abm,
otg_inst, otg_inst,
SET_ABM_PIPE_NORMAL, SET_ABM_PIPE_NORMAL,
panel_cntl->inst, panel_cntl->inst,
panel_cntl->pwrseq_inst); panel_cntl->pwrseq_inst);
} else { } else {
dmub_abm_set_pipe(abm, otg_inst, dmub_abm_set_pipe(abm, otg_inst,
SET_ABM_PIPE_NORMAL, SET_ABM_PIPE_NORMAL,
panel_cntl->inst, panel_cntl->inst,
panel_cntl->pwrseq_inst); panel_cntl->pwrseq_inst);
}
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment