aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0686-drm-amd-display-Check-if-hubp-function-hooks-exist-b.patch
diff options
context:
space:
mode:
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.patch66
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
+