aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3257-drm-amd-display-fix-backlight-not-off-at-resume-from.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3257-drm-amd-display-fix-backlight-not-off-at-resume-from.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3257-drm-amd-display-fix-backlight-not-off-at-resume-from.patch79
1 files changed, 79 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3257-drm-amd-display-fix-backlight-not-off-at-resume-from.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3257-drm-amd-display-fix-backlight-not-off-at-resume-from.patch
new file mode 100644
index 00000000..e1ff074b
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3257-drm-amd-display-fix-backlight-not-off-at-resume-from.patch
@@ -0,0 +1,79 @@
+From 175d8b1b5391be3686d218d400c37af79b202a18 Mon Sep 17 00:00:00 2001
+From: Charlene Liu <charlene.liu@amd.com>
+Date: Mon, 8 Jan 2018 16:47:39 -0500
+Subject: [PATCH 3257/4131] drm/amd/display: fix backlight not off at resume
+ from S4
+
+Signed-off-by: Charlene Liu <charlene.liu@amd.com>
+Reviewed-by: Krunoslav Kovac <Krunoslav.Kovac@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+---
+ .../amd/display/dc/dce110/dce110_hw_sequencer.c | 33 ++++++++++++++++++----
+ 1 file changed, 27 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+index d036d1d..f982f23 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+@@ -914,6 +914,7 @@ void hwss_edp_backlight_control(
+ /*todo: unhardcode*/
+ cntl.lanes_number = LANE_COUNT_FOUR;
+ cntl.hpd_sel = link->link_enc->hpd_source;
++ cntl.signal = SIGNAL_TYPE_EDP;
+
+ /* For eDP, the following delays might need to be considered
+ * after link training completed:
+@@ -1407,7 +1408,24 @@ static void disable_vga_and_power_gate_all_controllers(
+ }
+ }
+
+-static struct dc_link *get_link_for_eDP_not_in_use(
++static struct dc_link *get_link_for_edp(
++ struct dc *dc)
++{
++ int i;
++ struct dc_link *link = NULL;
++
++ /* check if there is an eDP panel not in use */
++ for (i = 0; i < dc->link_count; i++) {
++ if (dc->links[i]->local_sink &&
++ dc->links[i]->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
++ link = dc->links[i];
++ break;
++ }
++ }
++
++ return link;
++}
++static struct dc_link *get_link_for_edp_not_in_use(
+ struct dc *dc,
+ struct dc_state *context)
+ {
+@@ -1441,16 +1459,19 @@ static struct dc_link *get_link_for_eDP_not_in_use(
+ */
+ void dce110_enable_accelerated_mode(struct dc *dc, struct dc_state *context)
+ {
+- struct dc_link *eDP_link_to_turnoff = get_link_for_eDP_not_in_use(dc, context);
++ struct dc_link *edp_link_to_turnoff = get_link_for_edp_not_in_use(dc, context);
++
++ struct dc_link *edp_link = get_link_for_edp(dc);
+
+- if (eDP_link_to_turnoff)
+- dc->hwss.edp_backlight_control(eDP_link_to_turnoff, false);
++ if (edp_link)
++ /*we need turn off backlight before DP_blank and encoder powered down*/
++ dc->hwss.edp_backlight_control(edp_link, false);
+
+ power_down_all_hw_blocks(dc);
+ disable_vga_and_power_gate_all_controllers(dc);
+
+- if (eDP_link_to_turnoff)
+- dc->hwss.edp_power_control(eDP_link_to_turnoff, false);
++ if (edp_link_to_turnoff)
++ dc->hwss.edp_power_control(edp_link_to_turnoff, false);
+
+ bios_set_scratch_acc_mode_change(dc->ctx->dc_bios);
+ }
+--
+2.7.4
+