[PATCH] drm/amd/display: Not to call dpcd_set_source_specific_data during resume.
Wu, Hersen
hersenxs.wu at amd.com
Thu Jan 20 20:02:00 UTC 2022
[AMD Official Use Only]
Hi Rajib,
For resume from s3 or si03, the change should work.
Reviewed-by: Hersen Wu <hersenxs.wu at amd.com>
For boot up, at the location of your change, link->dpcd_sink_ext_caps.bits.oled = 0.
OLED caps is read by dpcd_read_sink_ext_caps which is called within detect_edp_sink_caps.
For boot up, we need another change.
Thanks!
Hersen
-----Original Message-----
From: Mahapatra, Rajib <Rajib.Mahapatra at amd.com>
Sent: Thursday, January 20, 2022 2:33 PM
To: Wentland, Harry <Harry.Wentland at amd.com>; Wu, Hersen <hersenxs.wu at amd.com>; Deucher, Alexander <Alexander.Deucher at amd.com>
Cc: amd-gfx at lists.freedesktop.org; S, Shirish <Shirish.S at amd.com>
Subject: RE: [PATCH] drm/amd/display: Not to call dpcd_set_source_specific_data during resume.
Hi Hersen,
I am waiting for your comments here.
I think we can take this change for resume path at this moment.
For bootup, we can have separate patch for resume optimization.
Thanks
-Rajib
-----Original Message-----
From: Wentland, Harry <Harry.Wentland at amd.com>
Sent: Tuesday, January 11, 2022 9:47 PM
To: Mahapatra, Rajib <Rajib.Mahapatra at amd.com>; Wu, Hersen <hersenxs.wu at amd.com>; Deucher, Alexander <Alexander.Deucher at amd.com>
Cc: amd-gfx at lists.freedesktop.org; S, Shirish <Shirish.S at amd.com>
Subject: Re: [PATCH] drm/amd/display: Not to call dpcd_set_source_specific_data during resume.
On 2022-01-11 02:52, Mahapatra, Rajib wrote:
> 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.
>
If we set it in the boot-up path we'll probably want to set it on resume as well. Though I'll let Hersen comment since he knows this part much better than me.
Harry
> 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 at amd.com>
> 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 at amd.com>
> Sent: Monday, January 10, 2022 10:03 PM
> To: Mahapatra, Rajib <Rajib.Mahapatra at amd.com>; Wu, Hersen
> <hersenxs.wu at amd.com>; Deucher, Alexander <Alexander.Deucher at amd.com>
> Cc: amd-gfx at lists.freedesktop.org; S, Shirish <Shirish.S at amd.com>
> 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 at amd.com>
>> ---
>> 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);
>
More information about the amd-gfx
mailing list