• Imre Deak's avatar
    drm/i915/fdi: Improve FDI BW sharing between pipe B and C · 998d2cd3
    Imre Deak authored
    At the moment modesetting pipe C on IVB will fail if pipe B uses 4 FDI
    lanes. Make the BW sharing more dynamic by trying to reduce pipe B's
    link bpp in this case, until pipe B uses only up to 2 FDI lanes.
    
    For this instead of the encoder compute config retry loop - which
    reduced link bpp only for the encoder's pipe - reduce the maximum link
    bpp for pipe B/C as required after all CRTC states are computed and
    recompute the CRTC states with the new bpp limit.
    
    Atm, all FDI encoder's compute config function returns an error if a BW
    constrain prevents increasing the pipe bpp value. The corresponding
    crtc_state->bw_constrained check can be replaced with checking
    crtc_state->max_link_bpp_x16, add TODO comments for this. SDVO is an
    exception where this case is only handled in the outer config retry
    loop, failing the modeset with a WARN, add a FIXME comment to handle
    this in the encoder code similarly to other encoders.
    
    v2:
    - Don't assume that a CRTC is already in the atomic state, while
      reducing its link bpp.
    - Add DocBook description to intel_fdi_atomic_check_link().
    v3:
    - Enable BW management for FDI links in a separate patch. (Ville)
    v4: (Ville)
    - Fail the SDVO encoder config computation if it doesn't support the
      link bpp limit.
    - Add TODO: comments about checking link_bpp_x16 instead of
      bw_constrained.
    v5:
    - Replace link bpp limit check with a FIXME: comment in
      intel_sdvo_compute_config(). (Ville)
    
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    [Amended commit message wrt. changes in v5]
    Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230921195159.2646027-11-imre.deak@intel.com
    998d2cd3
intel_link_bw.c 5.91 KB