Re: [PATCH] drm/i915/vbt: update DP max link rate table

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Feb 10, 2021 at 04:51 p.m, Ville Syrjälä wrote:
>On Mon, Feb 08, 2021 at 01:31:57PM +0000, Lee, Shawn C wrote:
>> On Fri, Feb 05, 2021, at 8:26 p.m, Ville Syrjälä wrote:
>> >On Mon, Feb 01, 2021 at 11:02:28PM +0800, Lee Shawn C wrote:
>> >> According to Bspec #20124, max link rate table for DP was updated 
>> >> at BDB version 230. Max link rate can support upto UHBR.
>> >> 
>> >> After migrate to BDB v230, the definition for LBR, HBR2 and HBR3 
>> >> were changed. For backward compatibility. If BDB version was from 
>> >> 216 to 229. Driver have to follow original rule to configure DP max 
>> >> link rate value from VBT.
>> >> 
>> >> Cc: Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx>
>> >> Cc: Imre Deak <imre.deak@xxxxxxxxx>
>> >> Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx>
>> >> Cc: Cooper Chiou <cooper.chiou@xxxxxxxxx>
>> >> Cc: William Tseng <william.tseng@xxxxxxxxx>
>> >> Signed-off-by: Lee Shawn C <shawn.c.lee@xxxxxxxxx>
>> >> ---
>> >>  drivers/gpu/drm/i915/display/intel_bios.c     | 24 ++++++++++++++++++-
>> >>  drivers/gpu/drm/i915/display/intel_vbt_defs.h | 14 +++++++----
>> >>  2 files changed, 32 insertions(+), 6 deletions(-)
>> >> 
>> >> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c
>> >> b/drivers/gpu/drm/i915/display/intel_bios.c
>> >> index 04337ac6f8c4..be1f732e6550 100644
>> >> --- a/drivers/gpu/drm/i915/display/intel_bios.c
>> >> +++ b/drivers/gpu/drm/i915/display/intel_bios.c
>> >> @@ -1876,7 +1876,15 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv,
>> >>  	/* DP max link rate for CNL+ */
>> >>  	if (bdb_version >= 216) {
>> >>  		switch (child->dp_max_link_rate) {
>> >> -		default:
>> >> +		case VBT_DP_MAX_LINK_RATE_UHBR20:
>> >> +			info->dp_max_link_rate = 2000000;
>> >> +			break;
>> >> +		case VBT_DP_MAX_LINK_RATE_UHBR13P5:
>> >> +			info->dp_max_link_rate = 1350000;
>> >> +			break;
>> >> +		case VBT_DP_MAX_LINK_RATE_UHBR10:
>> >> +			info->dp_max_link_rate = 1000000;
>> >> +			break;
>> >>  		case VBT_DP_MAX_LINK_RATE_HBR3:
>> >>  			info->dp_max_link_rate = 810000;
>> >>  			break;
>> >> @@ -1889,7 +1897,21 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv,
>> >>  		case VBT_DP_MAX_LINK_RATE_LBR:
>> >>  			info->dp_max_link_rate = 162000;
>> >>  			break;
>> >> +		case VBT_DP_MAX_LINK_RATE_DEFAULT:
>> >> +		default:
>> >> +			info->dp_max_link_rate = 0;
>> >> +			break;
>> >> +		}
>> >> +
>> >> +		if (bdb_version < 230) {
>> >> +			if (child->dp_max_link_rate == VBT_DP_MAX_LINK_RATE_DEFAULT)
>> >> +				info->dp_max_link_rate = 810000;
>> >> +			else if (child->dp_max_link_rate == VBT_DP_MAX_LINK_RATE_LBR)
>> >> +				info->dp_max_link_rate = 540000;
>> >> +			else if (child->dp_max_link_rate == VBT_DP_MAX_LINK_RATE_HBR2)
>> >> +				info->dp_max_link_rate = 162000;
>> >>  		}
>> >
>> >I would split this into two separate functions, one does the new mapping, the other the old mapping. 
>> >
>> 
>> I will split this into two separate functions in patch v2.
>
>Actually looking through the VBT history this seems to have been
>retroactively changed for already rev 216+ to follow the new
>definitions. And naturally no actual explanation given. So it's
>the same old VBT==snafu as always.
>
>I guess the real question is whether any machines migth have shipped
>that depened on the old defitions? Unless someone manages to
>find that out I think we might just have to change this to follow
>only the new style and hope we don't regress a lot of machines.
>

Agree that we should just have the change follow new definition.
But as you mentioned, we are not sure any machines have shipped
with the old definition. :(

In my opinion, we should follow the new style. If we got bug report,
then we can consider to add some codes for backward compatible.

>I was a bit hopeful that this might have fixed [1], but looks
>like that just has this set to 0 which doesn't give us the desired
>2.7Gbps with either the old or new definition :(
>
>[1] https://gitlab.freedesktop.org/drm/intel/-/issues/3034
>

Just like what you said. This change should not be able to give 2.7GHz
on eDP port to help on this issue.

This might not be a good idea. But how about to add this OUI into
quirk list? Then driver can give bandwidth limitation for particular panel.

[    2.422930] [drm:drm_dp_read_desc [drm_kms_helper]] AUX A/DDI A/PHY A: DP sink: OUI 38-ec-11 dev-ID  HW-rev 0.0 SW-rev 0.0 quirks 0x0000

Best regards,
Shawn

>--
>Ville Syrjälä
>Intel
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux