drm/amd: Revert "drm/amd/display: keep eDP Vdd on when eDP stream is already enabled"
Mark Pearson
markpearson at lenovo.com
Mon Jun 20 17:47:47 UTC 2022
On 6/15/22 18:30, Mario Limonciello wrote:
> 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 559e2655220d ("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: Aaron Ma <aaron.ma at canonical.com>
> Fixes: 559e2655220d ("drm/amd/display: keep eDP Vdd on when eDP stream is already enabled")
> Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
> ---
> .../display/dc/dce110/dce110_hw_sequencer.c | 24 ++-----------------
> 1 file changed, 2 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
> index 7eff7811769d..5f2afa5b4814 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
> @@ -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
Verified this fixed the issue on my Lenovo Z13 (R5 Pro 6650U) when
applied to a build of 5.18 from Linus's tree
Thanks Mario!
Tested-by: markpearson at lenovo.com
More information about the amd-gfx
mailing list