Commit 8e7b3f54 authored by Max Tseng's avatar Max Tseng Committed by Alex Deucher

drm/amd/display: Add control flag to dc_stream_state to skip eDP BL off/link off

Add control flag to dc_stream_state to skip eDP BL off/link off.
Acked-by: default avatarStylon Wang <stylon.wang@amd.com>
Signed-off-by: default avatarMax Tseng <max.tseng@amd.com>
Reviewed-by: default avatarAnthony Koo <Anthony.Koo@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 490ddccb
...@@ -302,6 +302,7 @@ struct dc_stream_state { ...@@ -302,6 +302,7 @@ struct dc_stream_state {
bool vblank_synchronized; bool vblank_synchronized;
bool fpo_in_use; bool fpo_in_use;
struct mall_stream_config mall_stream_config; struct mall_stream_config mall_stream_config;
bool skip_edp_power_down;
}; };
#define ABM_LEVEL_IMMEDIATE_DISABLE 255 #define ABM_LEVEL_IMMEDIATE_DISABLE 255
......
...@@ -1216,7 +1216,8 @@ void dce110_blank_stream(struct pipe_ctx *pipe_ctx) ...@@ -1216,7 +1216,8 @@ void dce110_blank_stream(struct pipe_ctx *pipe_ctx)
struct dce_hwseq *hws = link->dc->hwseq; struct dce_hwseq *hws = link->dc->hwseq;
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) { if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
hws->funcs.edp_backlight_control(link, false); if (!stream->skip_edp_power_down)
hws->funcs.edp_backlight_control(link, false);
link->dc->hwss.set_abm_immediate_disable(pipe_ctx); link->dc->hwss.set_abm_immediate_disable(pipe_ctx);
} }
......
...@@ -2207,9 +2207,8 @@ static enum dc_status enable_link( ...@@ -2207,9 +2207,8 @@ static enum dc_status enable_link(
* link settings. Need to call disable first before enabling at * link settings. Need to call disable first before enabling at
* new link settings. * new link settings.
*/ */
if (link->link_status.link_active) { if (link->link_status.link_active && !stream->skip_edp_power_down)
disable_link(link, &pipe_ctx->link_res, pipe_ctx->stream->signal); disable_link(link, &pipe_ctx->link_res, pipe_ctx->stream->signal);
}
switch (pipe_ctx->stream->signal) { switch (pipe_ctx->stream->signal) {
case SIGNAL_TYPE_DISPLAY_PORT: case SIGNAL_TYPE_DISPLAY_PORT:
...@@ -2327,7 +2326,9 @@ void link_set_dpms_off(struct pipe_ctx *pipe_ctx) ...@@ -2327,7 +2326,9 @@ void link_set_dpms_off(struct pipe_ctx *pipe_ctx)
dc->hwss.disable_stream(pipe_ctx); dc->hwss.disable_stream(pipe_ctx);
} else { } else {
dc->hwss.disable_stream(pipe_ctx); dc->hwss.disable_stream(pipe_ctx);
disable_link(pipe_ctx->stream->link, &pipe_ctx->link_res, pipe_ctx->stream->signal); if (!pipe_ctx->stream->skip_edp_power_down) {
disable_link(pipe_ctx->stream->link, &pipe_ctx->link_res, pipe_ctx->stream->signal);
}
} }
if (pipe_ctx->stream->timing.flags.DSC) { if (pipe_ctx->stream->timing.flags.DSC) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment