Commit 937e24b7 authored by Mario Limonciello's avatar Mario Limonciello Committed by Alex Deucher
Browse files

drm/amd: Revert "drm/amd/display: keep eDP Vdd on when eDP stream is already enabled"

A variety of Lenovo machines with Rembrandt APUs and OLED panels have
stopped showing the display at login.  This behavior clears up after
leaving it idle and moving the mouse or touching keyboard.

It was bisected to be caused by commit 559e2655 ("drm/amd/display:
keep eDP Vdd on when eDP stream is already enabled").  Revert this commit
to fix the issue.

Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2047


Reported-by: default avatarAaron Ma <aaron.ma@canonical.com>
Fixes: 559e2655 ("drm/amd/display: keep eDP Vdd on when eDP stream is already enabled")
Signed-off-by: default avatarMario Limonciello <mario.limonciello@amd.com>
Tested-by: default avatarMark Pearson <markpearson@lenovo.com>
Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent f15345a3
Loading
Loading
Loading
Loading
+2 −22
Original line number Diff line number Diff line
@@ -1766,29 +1766,9 @@ void dce110_enable_accelerated_mode(struct dc *dc, struct dc_state *context)
				break;
			}
		}

		/*
		 * TO-DO: So far the code logic below only addresses single eDP case.
		 * For dual eDP case, there are a few things that need to be
		 * implemented first:
		 *
		 * 1. Change the fastboot logic above, so eDP link[0 or 1]'s
		 * stream[0 or 1] will all be checked.
		 *
		 * 2. Change keep_edp_vdd_on to an array, and maintain keep_edp_vdd_on
		 * for each eDP.
		 *
		 * Once above 2 things are completed, we can then change the logic below
		 * correspondingly, so dual eDP case will be fully covered.
		 */

		// We are trying to enable eDP, don't power down VDD if eDP stream is existing
		if ((edp_stream_num == 1 && edp_streams[0] != NULL) || can_apply_edp_fast_boot) {
		// We are trying to enable eDP, don't power down VDD
		if (can_apply_edp_fast_boot)
			keep_edp_vdd_on = true;
			DC_LOG_EVENT_LINK_TRAINING("Keep eDP Vdd on\n");
		} else {
			DC_LOG_EVENT_LINK_TRAINING("No eDP stream enabled, turn eDP Vdd off\n");
		}
	}

	// Check seamless boot support