• Imre Deak's avatar
    drm/i915/dp_mst: Fix PBN / MTP_TU size calculation for UHBR rates · 9069b775
    Imre Deak authored
    Atm the allocated MST PBN value is calculated from the TU size (number
    of allocated MTP slots) as
    
      PBN = TU * pbn_div
    
    pbn_div being the link BW for each MTP slot. For DP 1.4 link rates this
    worked, as pbn_div there is guraranteed to be an integer number, however
    on UHBR this isn't the case. To get a PBN, TU pair where TU is a
    properly rounded-up value covering all the BW corresponding to PBN,
    calculate first PBN and from PBN the TU value.
    
    Calculate PBN directly from the effective pixel data rate, instead of
    calculating it indirectly from the corresponding TU and pbn_div values
    (which are in turn derived from the pixel data rate and BW overhead).
    
    Add a helper function to calculate the effective data rate, also adding
    a note that callers of intel_dp_link_required() may also need to check
    the effective data rate (vs. the data rate w/o the BW overhead).
    
    While at it add a note to check if WA#14013163432 is applicable.
    
    v2:
    - Fix PBN calculation, deriving it from the effective data rate directly
      instead of using the indirect TU and pbn_div values for this.
    - Add a note about WA#14013163432. (Arun)
    v3:
    - Fix rounding up quotient while calculating remote_tu. (Ville)
    
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com> (v1)
    Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20231117150929.1767227-3-imre.deak@intel.com
    9069b775
intel_dp_mst.c 56.8 KB