• Imre Deak's avatar
    drm/i915/dp_mst: Improve BW sharing between MST streams · 36f579ff
    Imre Deak authored
    At the moment modesetting a stream CRTC will fail if the stream's BW
    along with the current BW of all the other streams on the same MST link
    is above the total BW of the MST link. Make the BW sharing more dynamic
    by trying to reduce the link bpp of one or more streams on the MST link
    in this case.
    
    When selecting a stream to reduce the BW for, take into account which
    link segment in the MST topology ran out of BW and which streams go
    through this link segment. For instance with A,B,C streams in the same
    MST topology A and B may share the BW of a link segment downstream of a
    branch device, stream C not downstream of the branch device, hence not
    affecting this BW. If this link segment's BW runs out one or both of
    stream A/B's BW will be reduced until their total BW is within limits.
    
    While reducing the link bpp for a given stream DSC may need to be
    enabled for it, which requires FEC on the whole MST link. Check for this
    condition and recompute the state for all streams taking the FEC
    overhead into account (on 8b/10b links).
    
    v2:
    - Rebase on s/min_bpp_pipes/min_bpp_reached_pipes/ change.
    Reviewed-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20231030155843.2251023-29-imre.deak@intel.com
    36f579ff
intel_dp.h 7.39 KB