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@xxxxxxxxxxxxx> > Fixes: 559e2655220d ("drm/amd/display: keep eDP Vdd on when eDP stream is already enabled") > Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> > --- > .../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@xxxxxxxxxx