diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0686-drm-amd-display-Check-if-hubp-function-hooks-exist-b.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/0686-drm-amd-display-Check-if-hubp-function-hooks-exist-b.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0686-drm-amd-display-Check-if-hubp-function-hooks-exist-b.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0686-drm-amd-display-Check-if-hubp-function-hooks-exist-b.patch new file mode 100644 index 00000000..d1f92fa5 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0686-drm-amd-display-Check-if-hubp-function-hooks-exist-b.patch @@ -0,0 +1,66 @@ +From 03144acc6f578271f0cd0f8ce95b3db834f00688 Mon Sep 17 00:00:00 2001 +From: Charlene Liu <charlene.liu@amd.com> +Date: Mon, 1 Oct 2018 15:22:12 -0400 +Subject: [PATCH 0686/2940] drm/amd/display: Check if hubp function hooks exist + before calling them + +Signed-off-by: Charlene Liu <charlene.liu@amd.com> +Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + .../gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +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 f88c440c2826..345fc0302e4e 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 +@@ -787,7 +787,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc) + &dc->current_state->res_ctx.pipe_ctx[i]; + if (pipe_ctx != NULL) { + 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) { + /* one pipe underflow, we will reset all the pipes*/ + need_recover = true; +@@ -813,7 +813,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc) + if (pipe_ctx != NULL) { + hubp = pipe_ctx->plane_res.hubp; + /*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); + } + } +@@ -826,7 +826,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc) + if (pipe_ctx != NULL) { + hubp = pipe_ctx->plane_res.hubp; + /*DCHUBP_CNTL:HUBP_DISABLE=1*/ +- if (hubp != NULL) ++ if (hubp != NULL && hubp->funcs->hubp_disable_control) + hubp->funcs->hubp_disable_control(hubp, true); + } + } +@@ -836,7 +836,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc) + if (pipe_ctx != NULL) { + hubp = pipe_ctx->plane_res.hubp; + /*DCHUBP_CNTL:HUBP_DISABLE=0*/ +- if (hubp != NULL) ++ if (hubp != NULL && hubp->funcs->hubp_disable_control) + hubp->funcs->hubp_disable_control(hubp, true); + } + } +@@ -848,7 +848,7 @@ static bool dcn10_hw_wa_force_recovery(struct dc *dc) + if (pipe_ctx != NULL) { + hubp = pipe_ctx->plane_res.hubp; + /*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); + } + } +-- +2.17.1 + |