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

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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -302,6 +302,7 @@ struct dc_stream_state {
	bool vblank_synchronized;
	bool fpo_in_use;
	struct mall_stream_config mall_stream_config;
	bool skip_edp_power_down;
};

#define ABM_LEVEL_IMMEDIATE_DISABLE 255
+2 −1
Original line number Diff line number Diff line
@@ -1216,6 +1216,7 @@ void dce110_blank_stream(struct pipe_ctx *pipe_ctx)
	struct dce_hwseq *hws = link->dc->hwseq;

	if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
		if (!stream->skip_edp_power_down)
			hws->funcs.edp_backlight_control(link, false);
		link->dc->hwss.set_abm_immediate_disable(pipe_ctx);
	}
+4 −3
Original line number Diff line number Diff line
@@ -2207,9 +2207,8 @@ static enum dc_status enable_link(
	 * link settings. Need to call disable first before enabling at
	 * 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);
	}

	switch (pipe_ctx->stream->signal) {
	case SIGNAL_TYPE_DISPLAY_PORT:
@@ -2327,8 +2326,10 @@ void link_set_dpms_off(struct pipe_ctx *pipe_ctx)
		dc->hwss.disable_stream(pipe_ctx);
	} else {
		dc->hwss.disable_stream(pipe_ctx);
		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 (dc_is_dp_signal(pipe_ctx->stream->signal))