mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-22 09:48:07 +07:00
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>
This commit is contained in:
parent
c74db7e42d
commit
ab892598d0
@ -2018,6 +2018,19 @@ bool dc_link_set_backlight_level(const struct dc_link *link, uint32_t level,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool dc_link_set_abm_disable(const struct dc_link *link)
|
||||||
|
{
|
||||||
|
struct dc *core_dc = link->ctx->dc;
|
||||||
|
struct abm *abm = core_dc->res_pool->abm;
|
||||||
|
|
||||||
|
if ((abm == NULL) || (abm->funcs->set_backlight_level == NULL))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
abm->funcs->set_abm_immediate_disable(abm);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool dc_link_set_psr_enable(const struct dc_link *link, bool enable, bool wait)
|
bool dc_link_set_psr_enable(const struct dc_link *link, bool enable, bool wait)
|
||||||
{
|
{
|
||||||
struct dc *core_dc = link->ctx->dc;
|
struct dc *core_dc = link->ctx->dc;
|
||||||
|
@ -141,6 +141,8 @@ static inline struct dc_link *dc_get_link_at_index(struct dc *dc, uint32_t link_
|
|||||||
bool dc_link_set_backlight_level(const struct dc_link *dc_link, uint32_t level,
|
bool dc_link_set_backlight_level(const struct dc_link *dc_link, uint32_t level,
|
||||||
uint32_t frame_ramp, const struct dc_stream_state *stream);
|
uint32_t frame_ramp, const struct dc_stream_state *stream);
|
||||||
|
|
||||||
|
bool dc_link_set_abm_disable(const struct dc_link *dc_link);
|
||||||
|
|
||||||
bool dc_link_set_psr_enable(const struct dc_link *dc_link, bool enable, bool wait);
|
bool dc_link_set_psr_enable(const struct dc_link *dc_link, bool enable, bool wait);
|
||||||
|
|
||||||
bool dc_link_get_psr_state(const struct dc_link *dc_link, uint32_t *psr_state);
|
bool dc_link_get_psr_state(const struct dc_link *dc_link, uint32_t *psr_state);
|
||||||
|
@ -1046,8 +1046,10 @@ void dce110_blank_stream(struct pipe_ctx *pipe_ctx)
|
|||||||
struct dc_stream_state *stream = pipe_ctx->stream;
|
struct dc_stream_state *stream = pipe_ctx->stream;
|
||||||
struct dc_link *link = stream->sink->link;
|
struct dc_link *link = stream->sink->link;
|
||||||
|
|
||||||
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP)
|
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
|
||||||
link->dc->hwss.edp_backlight_control(link, false);
|
link->dc->hwss.edp_backlight_control(link, false);
|
||||||
|
dc_link_set_abm_disable(link);
|
||||||
|
}
|
||||||
|
|
||||||
if (dc_is_dp_signal(pipe_ctx->stream->signal))
|
if (dc_is_dp_signal(pipe_ctx->stream->signal))
|
||||||
pipe_ctx->stream_res.stream_enc->funcs->dp_blank(pipe_ctx->stream_res.stream_enc);
|
pipe_ctx->stream_res.stream_enc->funcs->dp_blank(pipe_ctx->stream_res.stream_enc);
|
||||||
|
Loading…
Reference in New Issue
Block a user