[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADnq5_OLpgEJjpN5y9b3gNwCmvdfNTA=puUv8UjOCDH96JgvOQ@mail.gmail.com>
Date: Thu, 27 Jan 2022 12:36:09 -0500
From: Alex Deucher <alexdeucher@...il.com>
To: Aditya Garg <gargaditya08@...e.com>
Cc: "harry.wentland@....com" <harry.wentland@....com>,
"sunpeng.li@....com" <sunpeng.li@....com>,
"Rodrigo.Siqueira@....com" <Rodrigo.Siqueira@....com>,
"alexander.deucher@....com" <alexander.deucher@....com>,
"christian.koenig@....com" <christian.koenig@....com>,
"Xinhui.Pan@....com" <Xinhui.Pan@....com>,
"amd-gfx@...ts.freedesktop.org" <amd-gfx@...ts.freedesktop.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
"Felix.Kuehling@....com" <Felix.Kuehling@....com>,
"evan.quan@....com" <evan.quan@....com>,
"stylon.wang@....com" <stylon.wang@....com>,
"wesley.chalmers@....com" <wesley.chalmers@....com>,
"qingqing.zhuo@....com" <qingqing.zhuo@....com>,
"George.Shen@....com" <George.Shen@....com>,
"roman.li@....com" <roman.li@....com>,
"solomon.chiu@....com" <solomon.chiu@....com>,
"Aurabindo.Pillai@....com" <Aurabindo.Pillai@....com>,
"wayne.lin@....com" <wayne.lin@....com>,
"mikita.lipski@....com" <mikita.lipski@....com>,
"Bhawanpreet.Lakha@....com" <Bhawanpreet.Lakha@....com>,
"agustin.gutierrez@....com" <agustin.gutierrez@....com>,
"pavle.kotarac@....com" <pavle.kotarac@....com>,
Aun-Ali Zaidi <admin@...eit.net>,
Orlando Chamberlain <redecorating@...tonmail.com>
Subject: Re: [PATCH RESEND] drm/amd/display: Force link_rate as LINK_RATE_RBR2
for 2018 15" Apple Retina panels
On Wed, Jan 26, 2022 at 8:56 AM Aditya Garg <gargaditya08@...e.com> wrote:
>
> From: Aun-Ali Zaidi <admin@...eit.net>
>
> The eDP link rate reported by the DP_MAX_LINK_RATE dpcd register (0xa) is
> contradictory to the highest rate supported reported by
> EDID (0xc = LINK_RATE_RBR2). The effects of this compounded with commit
> '4a8ca46bae8a ("drm/amd/display: Default max bpc to 16 for eDP")' results
> in no display modes being found and a dark panel.
>
> For now, simply force the maximum supported link rate for the eDP attached
> 2018 15" Apple Retina panels.
>
> Additionally, we must also check the firmware revision since the device ID
> reported by the DPCD is identical to that of the more capable 16,1,
> incorrectly quirking it. We also use said firmware check to quirk the
> refreshed 15,1 models with Vega graphics as they use a slightly newer
> firmware version.
>
> Tested-by: Aun-Ali Zaidi <admin@...eit.net>
> Signed-off-by: Aun-Ali Zaidi <admin@...eit.net>
> Signed-off-by: Aditya Garg <gargaditya08@...e.com>
> ---
> .../gpu/drm/amd/display/dc/core/dc_link_dp.c | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
> index 05e216524..17939ad17 100644
> --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
> +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
> @@ -5597,6 +5597,25 @@ static bool retrieve_link_cap(struct dc_link *link)
> dp_hw_fw_revision.ieee_fw_rev,
> sizeof(dp_hw_fw_revision.ieee_fw_rev));
>
> + /* Quirk for Apple MBP 2018 15" Retina panels: wrong DP_MAX_LINK_RATE */
> + {
> + uint8_t str_mbp_2018[] = { 101, 68, 21, 103, 98, 97 };
> + uint8_t fwrev_mbp_2018[] = { 7, 4 };
> + uint8_t fwrev_mbp_2018_vega[] = { 8, 4 };
> +
> + // We also check for the firmware revision as 16,1 models have an
> + // identical device id and are incorrectly quirked otherwise.
C style comments please. I'll let one of the display guys comment on
the rest of the patch. Seems reasonable, we have a similar quirk for
the Apple MBP 2017 15" Retina panel later in this function. Could you
move this next to the other quirk?
Alex
> + if ((link->dpcd_caps.sink_dev_id == 0x0010fa) &&
> + !memcmp(link->dpcd_caps.sink_dev_id_str, str_mbp_2018,
> + sizeof(str_mbp_2018)) &&
> + (!memcmp(link->dpcd_caps.sink_fw_revision, fwrev_mbp_2018,
> + sizeof(fwrev_mbp_2018)) ||
> + !memcmp(link->dpcd_caps.sink_fw_revision, fwrev_mbp_2018_vega,
> + sizeof(fwrev_mbp_2018_vega)))) {
> + link->reported_link_cap.link_rate = LINK_RATE_RBR2;
> + }
> + }
> +
> memset(&link->dpcd_caps.dsc_caps, '\0',
> sizeof(link->dpcd_caps.dsc_caps));
> memset(&link->dpcd_caps.fec_cap, '\0', sizeof(link->dpcd_caps.fec_cap));
> --
> 2.25.1
>
>
Powered by blists - more mailing lists