aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3048-drm-amd-display-fix-DMCU-hang-when-going-into-Modern.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3048-drm-amd-display-fix-DMCU-hang-when-going-into-Modern.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3048-drm-amd-display-fix-DMCU-hang-when-going-into-Modern.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3048-drm-amd-display-fix-DMCU-hang-when-going-into-Modern.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3048-drm-amd-display-fix-DMCU-hang-when-going-into-Modern.patch
new file mode 100644
index 00000000..f7104f1b
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3048-drm-amd-display-fix-DMCU-hang-when-going-into-Modern.patch
@@ -0,0 +1,55 @@
+From ec8ce00544e202a41f305ccf6a23414992870195 Mon Sep 17 00:00:00 2001
+From: Zi Yu Liao <ziyu.liao@amd.com>
+Date: Thu, 20 Jun 2019 10:55:26 -0400
+Subject: [PATCH 3048/4256] drm/amd/display: fix DMCU hang when going into
+ Modern Standby
+
+[why]
+When the system is going into suspend, set_backlight gets called
+after the eDP got blanked. Since smooth brightness is enabled,
+the driver will make a call into the DMCU to ramp the brightness.
+The DMCU would try to enable ABM to do so. But since the display is
+blanked, this ends up causing ABM1_ACE_DBUF_REG_UPDATE_PENDING to
+get stuck at 1, which results in a dead lock in the DMCU firmware.
+
+[how]
+Disable brightness ramping when the eDP display is blanked.
+
+Signed-off-by: Zi Yu Liao <ziyu.liao@amd.com>
+Reviewed-by: Eric Yang <eric.yang2@amd.com>
+Acked-by: Anthony Koo <Anthony.Koo@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_link.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+index fdce64c288c5..b7c2ac3033f2 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+@@ -2350,7 +2350,7 @@ bool dc_link_set_backlight_level(const struct dc_link *link,
+ if (core_dc->current_state->res_ctx.pipe_ctx[i].stream) {
+ if (core_dc->current_state->res_ctx.
+ pipe_ctx[i].stream->link
+- == link)
++ == link) {
+ /* DMCU -1 for all controller id values,
+ * therefore +1 here
+ */
+@@ -2358,6 +2358,13 @@ bool dc_link_set_backlight_level(const struct dc_link *link,
+ core_dc->current_state->
+ res_ctx.pipe_ctx[i].stream_res.tg->inst +
+ 1;
++
++ /* Disable brightness ramping when the display is blanked
++ * as it can hang the DMCU
++ */
++ if (core_dc->current_state->res_ctx.pipe_ctx[i].plane_state == NULL)
++ frame_ramp = 0;
++ }
+ }
+ }
+ abm->funcs->set_backlight_level_pwm(
+--
+2.17.1
+