Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 599760d6 authored by Roman Li's avatar Roman Li Committed by Alex Deucher
Browse files

drm/amd/display: Fix Vega10 lightup on S3 resume



[Why]
There have been a few reports of Vega10 display remaining blank
after S3 resume. The regression is caused by workaround for mode
change on Vega10 - skip set_bandwidth if stream count is 0.
As a result we skipped dispclk reset on suspend, thus on resume
we may skip the clock update assuming it hasn't been changed.
On some systems it causes display blank or 'out of range'.

[How]
Revert "drm/amd/display: Fix Vega10 black screen after mode change"
Verified that it hadn't cause mode change regression.

Signed-off-by: default avatarRoman Li <Roman.Li@amd.com>
Reviewed-by: default avatarSun peng Li <Sunpeng.Li@amd.com>
Acked-by: default avatarLeo Li <sunpeng.li@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 61ea6f58
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2560,7 +2560,7 @@ static void pplib_apply_display_requirements(
	dc->prev_display_config = *pp_display_cfg;
}

void dce110_set_bandwidth(
static void dce110_set_bandwidth(
		struct dc *dc,
		struct dc_state *context,
		bool decrease_allowed)
+0 −5
Original line number Diff line number Diff line
@@ -68,11 +68,6 @@ void dce110_fill_display_configs(
	const struct dc_state *context,
	struct dm_pp_display_configuration *pp_display_cfg);

void dce110_set_bandwidth(
		struct dc *dc,
		struct dc_state *context,
		bool decrease_allowed);

uint32_t dce110_get_min_vblank_time_us(const struct dc_state *context);

void dp_receiver_power_ctrl(struct dc_link *link, bool on);
+0 −12
Original line number Diff line number Diff line
@@ -244,17 +244,6 @@ static void dce120_update_dchub(
	dh_data->dchub_info_valid = false;
}

static void dce120_set_bandwidth(
		struct dc *dc,
		struct dc_state *context,
		bool decrease_allowed)
{
	if (context->stream_count <= 0)
		return;

	dce110_set_bandwidth(dc, context, decrease_allowed);
}

void dce120_hw_sequencer_construct(struct dc *dc)
{
	/* All registers used by dce11.2 match those in dce11 in offset and
@@ -263,6 +252,5 @@ void dce120_hw_sequencer_construct(struct dc *dc)
	dce110_hw_sequencer_construct(dc);
	dc->hwss.enable_display_power_gating = dce120_enable_display_power_gating;
	dc->hwss.update_dchub = dce120_update_dchub;
	dc->hwss.set_bandwidth = dce120_set_bandwidth;
}