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