This patchset cleans up the DP link BW and the DSC slice config
computation with the following aims:

- Fix the BW calculation taking into account all the MST,DSC,SSC,FEC
  related overhead and use the proper UHBR/non-UHBR BW utilization
  factor (which depends on the symbol size vs. effective data size
  ratio).
- Unify the BW calculation during mode validation and state computation.
- Unify the BW calculation for eDP / DP-SST / DP-MST.
- Compute the DSC slice configuration in a way better reflecting the
  pipe/DSC stream engine/slice parameters of the config.

Cc: Ankit Nautiyal <[email protected]>

Imre Deak (50):
  drm/dp: Parse all DSC slice count caps for eDP 1.5
  drm/dp: Add drm_dp_dsc_sink_slice_count_mask()
  drm/i915/dp: Fix DSC sink's slice count capability check
  drm/i915/dp: Return a fixed point BPP value from intel_dp_output_bpp()
  drm/i915/dp: Use a mode's crtc_clock vs. clock during state
    computation
  drm/i915/dp: Factor out intel_dp_link_bw_overhead()
  drm/i915/dp: Fix BW check in is_bw_sufficient_for_dsc_config()
  drm/i915/dp: Use the effective data rate for DP BW calculation
  drm/i915/dp: Use the effective data rate for DP compressed BW
    calculation
  drm/i915/dp: Account with MST,SSC BW overhead for uncompressed DP-MST
    stream BW
  drm/i915/dp: Account with DSC BW overhead for compressed DP-SST stream
    BW
  drm/i915/dp: Account with pipe joiner max compressed BPP limit for
    DP-MST and eDP
  drm/i915/dp: Drop unused timeslots param from
    dsc_compute_link_config()
  drm/i915/dp: Factor out align_max_sink_dsc_input_bpp()
  drm/i915/dp: Factor out align_max_vesa_compressed_bpp_x16()
  drm/i915/dp: Fail state computation for invalid min/max link BPP
    values
  drm/i915/dp: Fail state computation for invalid max throughput BPP
    value
  drm/i915/dp: Fail state computation for invalid max sink compressed
    BPP value
  drm/i915/dp: Fail state computation for invalid DSC source input BPP
    values
  drm/i915/dp: Align min/max DSC input BPPs to sink caps
  drm/i915/dp: Align min/max compressed BPPs when calculating BPP limits
  drm/i915/dp: Drop intel_dp parameter from
    intel_dp_compute_config_link_bpp_limits()
  drm/i915/dp: Pass intel_output_format to
    intel_dp_dsc_sink_{min_max}_compressed_bpp()
  drm/i915/dp: Pass mode clock to dsc_throughput_quirk_max_bpp_x16()
  drm/i915/dp: Factor out compute_min_compressed_bpp_x16()
  drm/i915/dp: Factor out compute_max_compressed_bpp_x16()
  drm/i915/dp: Add intel_dp_mode_valid_with_dsc()
  drm/i915/dp: Unify detect and compute time DSC mode BW validation
  drm/i915/dp: Use helpers to align min/max compressed BPPs
  drm/i915/dp: Simplify computing DSC BPPs for eDP
  drm/i915/dp: Simplify computing DSC BPPs for DP-SST
  drm/i915/dp: Simplify computing forced DSC BPP for DP-SST
  drm/i915/dp: Unify computing compressed BPP for DP-SST and eDP
  drm/i915/dp: Simplify eDP vs. DP compressed BPP computation
  drm/i915/dp: Simplify computing the DSC compressed BPP for DP-MST
  drm/i915/dsc: Track the detaild DSC slice configuration
  drm/i915/dsc: Track the DSC stream count in the DSC slice config state
  drm/i915/dsi: Move initialization of DSI DSC streams-per-pipe to
    fill_dsc()
  drm/i915/dsi: Track the detailed DSC slice configuration
  drm/i915/dp: Track the detailed DSC slice configuration
  drm/i915/dsc: Switch to using intel_dsc_line_slice_count()
  drm/i915/dp: Factor out intel_dp_dsc_min_slice_count()
  drm/i915/dp: Use int for DSC slice count variables
  drm/i915/dp: Rename test_slice_count to slices_per_line
  drm/i915/dp: Simplify the DSC slice config loop's slices-per-pipe
    iteration
  drm/i915/dsc: Add intel_dsc_get_slice_config()
  drm/i915/dsi: Use intel_dsc_get_slice_config()
  drm/i915/dp: Unify DP and eDP slice count computation
  drm/i915/dp: Add intel_dp_dsc_get_slice_config()
  drm/i915/dp: Use intel_dp_dsc_get_slice_config()

 drivers/gpu/drm/display/drm_dp_helper.c       | 103 ++-
 drivers/gpu/drm/i915/display/icl_dsi.c        |   6 -
 drivers/gpu/drm/i915/display/intel_bios.c     |  27 +-
 drivers/gpu/drm/i915/display/intel_display.c  |   2 +-
 .../drm/i915/display/intel_display_types.h    |   7 +-
 drivers/gpu/drm/i915/display/intel_dp.c       | 868 +++++++++---------
 drivers/gpu/drm/i915/display/intel_dp.h       |  26 +-
 .../drm/i915/display/intel_dp_link_training.c |   4 +-
 drivers/gpu/drm/i915/display/intel_dp_mst.c   | 110 +--
 drivers/gpu/drm/i915/display/intel_vdsc.c     |  71 +-
 drivers/gpu/drm/i915/display/intel_vdsc.h     |   6 +
 include/drm/display/drm_dp_helper.h           |   3 +
 12 files changed, 658 insertions(+), 575 deletions(-)

-- 
2.49.1

Reply via email to