aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorRoman Li <Roman.Li@amd.com>2018-03-29 10:56:17 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-04-11 14:17:25 -0400
commitc3d7bad88e3b35b981eecc1645ddbb3f13a8b54f (patch)
tree053d8807545dd0e5ea0bb4f97e875e8cd7ae56fa /drivers
parentaf2ac326087da632e9580f65205f4cc4205caf85 (diff)
drm/amd/display: fix brightness level after resume from suspend
Adding missing call to cache current backlight values. Otherwise the brightness resets to default value on resume. Signed-off-by: Roman Li <Roman.Li@amd.com> Reviewed-by: Charlene Liu <Charlene.Liu@amd.com> Acked-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/amd/display/dc/core/dc_link.c13
-rw-r--r--drivers/gpu/drm/amd/display/dc/dc_link.h2
-rw-r--r--drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c4
3 files changed, 18 insertions, 1 deletions
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 eeb04471b2f5..6d1c4981a185 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -1997,6 +1997,19 @@ bool dc_link_set_backlight_level(const struct dc_link *link, uint32_t level,
1997 return true; 1997 return true;
1998} 1998}
1999 1999
2000bool dc_link_set_abm_disable(const struct dc_link *link)
2001{
2002 struct dc *core_dc = link->ctx->dc;
2003 struct abm *abm = core_dc->res_pool->abm;
2004
2005 if ((abm == NULL) || (abm->funcs->set_backlight_level == NULL))
2006 return false;
2007
2008 abm->funcs->set_abm_immediate_disable(abm);
2009
2010 return true;
2011}
2012
2000bool dc_link_set_psr_enable(const struct dc_link *link, bool enable, bool wait) 2013bool dc_link_set_psr_enable(const struct dc_link *link, bool enable, bool wait)
2001{ 2014{
2002 struct dc *core_dc = link->ctx->dc; 2015 struct dc *core_dc = link->ctx->dc;
diff --git a/drivers/gpu/drm/amd/display/dc/dc_link.h b/drivers/gpu/drm/amd/display/dc/dc_link.h
index fb4d9eafdc6e..dc34515ef01f 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_link.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_link.h
@@ -132,6 +132,8 @@ static inline struct dc_link *dc_get_link_at_index(struct dc *dc, uint32_t link_
132bool dc_link_set_backlight_level(const struct dc_link *dc_link, uint32_t level, 132bool dc_link_set_backlight_level(const struct dc_link *dc_link, uint32_t level,
133 uint32_t frame_ramp, const struct dc_stream_state *stream); 133 uint32_t frame_ramp, const struct dc_stream_state *stream);
134 134
135bool dc_link_set_abm_disable(const struct dc_link *dc_link);
136
135bool dc_link_set_psr_enable(const struct dc_link *dc_link, bool enable, bool wait); 137bool dc_link_set_psr_enable(const struct dc_link *dc_link, bool enable, bool wait);
136 138
137bool dc_link_get_psr_state(const struct dc_link *dc_link, uint32_t *psr_state); 139bool dc_link_get_psr_state(const struct dc_link *dc_link, uint32_t *psr_state);
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 30dd62f0f5fa..1c644c7a24b7 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
@@ -1016,8 +1016,10 @@ void dce110_blank_stream(struct pipe_ctx *pipe_ctx)
1016 struct dc_stream_state *stream = pipe_ctx->stream; 1016 struct dc_stream_state *stream = pipe_ctx->stream;
1017 struct dc_link *link = stream->sink->link; 1017 struct dc_link *link = stream->sink->link;
1018 1018
1019 if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) 1019 if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
1020 link->dc->hwss.edp_backlight_control(link, false); 1020 link->dc->hwss.edp_backlight_control(link, false);
1021 dc_link_set_abm_disable(link);
1022 }
1021 1023
1022 if (dc_is_dp_signal(pipe_ctx->stream->signal)) 1024 if (dc_is_dp_signal(pipe_ctx->stream->signal))
1023 pipe_ctx->stream_res.stream_enc->funcs->dp_blank(pipe_ctx->stream_res.stream_enc); 1025 pipe_ctx->stream_res.stream_enc->funcs->dp_blank(pipe_ctx->stream_res.stream_enc);