Commit 95022795 authored by Charlene Liu's avatar Charlene Liu Committed by Alex Deucher

drm/amd/display: Check if hubp function hooks exist before calling them

Signed-off-by: default avatarCharlene Liu <charlene.liu@amd.com>
Reviewed-by: default avatarDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Acked-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 6a85538a
...@@ -787,7 +787,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc) ...@@ -787,7 +787,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc)
&dc->current_state->res_ctx.pipe_ctx[i]; &dc->current_state->res_ctx.pipe_ctx[i];
if (pipe_ctx != NULL) { if (pipe_ctx != NULL) {
hubp = pipe_ctx->plane_res.hubp; hubp = pipe_ctx->plane_res.hubp;
if (hubp != NULL) { if (hubp != NULL && hubp->funcs->hubp_get_underflow_status) {
if (hubp->funcs->hubp_get_underflow_status(hubp) != 0) { if (hubp->funcs->hubp_get_underflow_status(hubp) != 0) {
/* one pipe underflow, we will reset all the pipes*/ /* one pipe underflow, we will reset all the pipes*/
need_recover = true; need_recover = true;
...@@ -813,7 +813,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc) ...@@ -813,7 +813,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc)
if (pipe_ctx != NULL) { if (pipe_ctx != NULL) {
hubp = pipe_ctx->plane_res.hubp; hubp = pipe_ctx->plane_res.hubp;
/*DCHUBP_CNTL:HUBP_BLANK_EN=1*/ /*DCHUBP_CNTL:HUBP_BLANK_EN=1*/
if (hubp != NULL) if (hubp != NULL && hubp->funcs->set_hubp_blank_en)
hubp->funcs->set_hubp_blank_en(hubp, true); hubp->funcs->set_hubp_blank_en(hubp, true);
} }
} }
...@@ -826,7 +826,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc) ...@@ -826,7 +826,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc)
if (pipe_ctx != NULL) { if (pipe_ctx != NULL) {
hubp = pipe_ctx->plane_res.hubp; hubp = pipe_ctx->plane_res.hubp;
/*DCHUBP_CNTL:HUBP_DISABLE=1*/ /*DCHUBP_CNTL:HUBP_DISABLE=1*/
if (hubp != NULL) if (hubp != NULL && hubp->funcs->hubp_disable_control)
hubp->funcs->hubp_disable_control(hubp, true); hubp->funcs->hubp_disable_control(hubp, true);
} }
} }
...@@ -836,7 +836,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc) ...@@ -836,7 +836,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc)
if (pipe_ctx != NULL) { if (pipe_ctx != NULL) {
hubp = pipe_ctx->plane_res.hubp; hubp = pipe_ctx->plane_res.hubp;
/*DCHUBP_CNTL:HUBP_DISABLE=0*/ /*DCHUBP_CNTL:HUBP_DISABLE=0*/
if (hubp != NULL) if (hubp != NULL && hubp->funcs->hubp_disable_control)
hubp->funcs->hubp_disable_control(hubp, true); hubp->funcs->hubp_disable_control(hubp, true);
} }
} }
...@@ -848,7 +848,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc) ...@@ -848,7 +848,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc)
if (pipe_ctx != NULL) { if (pipe_ctx != NULL) {
hubp = pipe_ctx->plane_res.hubp; hubp = pipe_ctx->plane_res.hubp;
/*DCHUBP_CNTL:HUBP_BLANK_EN=0*/ /*DCHUBP_CNTL:HUBP_BLANK_EN=0*/
if (hubp != NULL) if (hubp != NULL && hubp->funcs->set_hubp_blank_en)
hubp->funcs->set_hubp_blank_en(hubp, true); hubp->funcs->set_hubp_blank_en(hubp, true);
} }
} }
......
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