dpcd_set_source_specific_data is not specific to OLED panel. It is called from boot-up path also. Hersen Wu introduced it in resume-path while enabling OLED panel for Linux in below commit. So here, I guard it by calling source specific data only for OLED panel, and I can get advantage of around 100ms for non-oled panel during resume. Hersen night have answer about the issue related to regression for other panels, waiting for his reply about this change. commit 96577cf82a1331732a71199522398120c649f1cf Author: Hersen Wu <hersenxs.wu@xxxxxxx> Date: Tue Jan 14 15:39:07 2020 -0500 drm/amd/display: linux enable oled panel support dc part -----Original Message----- From: Wentland, Harry <Harry.Wentland@xxxxxxx> Sent: Monday, January 10, 2022 10:03 PM To: Mahapatra, Rajib <Rajib.Mahapatra@xxxxxxx>; Wu, Hersen <hersenxs.wu@xxxxxxx>; Deucher, Alexander <Alexander.Deucher@xxxxxxx> Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; S, Shirish <Shirish.S@xxxxxxx> Subject: Re: [PATCH] drm/amd/display: Not to call dpcd_set_source_specific_data during resume. On 2022-01-10 04:06, Rajib Mahapatra wrote: > [Why] > During resume path, dpcd_set_source_specific_data is taking extra time > when core_link_write_dpcd fails on DP_SOURCE_OUI+0x03 and > DP_SOURCE_MINIMUM_HBLANK_SUPPORTED. Here,aux->transfer fails with > multiple retries and consume sigficantamount time during > S0i3 resume. > > [How] > Not to call dpcd_set_source_specific_data during resume path when > there is no oled panel connected and achieve faster resume during > S0i3. > > Signed-off-by: Rajib Mahapatra <rajib.mahapatra@xxxxxxx> > --- > drivers/gpu/drm/amd/display/dc/core/dc_link.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c > b/drivers/gpu/drm/amd/display/dc/core/dc_link.c > index c0bdc23702c8..04086c199dbb 100644 > --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c > +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c > @@ -892,7 +892,8 @@ static bool dc_link_detect_helper(struct dc_link *link, > (!link->dc->config.allow_edp_hotplug_detection)) && > link->local_sink) { > // need to re-write OUI and brightness in resume case > - if (link->connector_signal == SIGNAL_TYPE_EDP) { > + if (link->connector_signal == SIGNAL_TYPE_EDP && > + (link->dpcd_sink_ext_caps.bits.oled == 1)) { Is the source specific data only used by OLED panels? Do we know that this won't lead to regressions with any features on non-OLED panels? Harry > dpcd_set_source_specific_data(link); > msleep(post_oui_delay); > dc_link_set_default_brightness_aux(link);