This is v2 of [1], addressing the review comments from Ville. It also adds HW state verification for MST encoders and a workaround for a payload allocation problem in a DELL monitor's MST hub I noticed during testing.
Tested on HSW, ICL, ADLP. [1] https://lore.kernel.org/intel-gfx/20230125114852.748337-1-imre.d...@intel.com/ Cc: Ville Syrjälä <ville.syrj...@linux.intel.com> Cc: Lyude Paul <ly...@redhat.com> Imre Deak (17): drm/i915/dp_mst: Add the MST topology state for modesetted CRTCs drm/display/dp_mst: Handle old/new payload states in drm_dp_remove_payload() drm/display/dp_mst: Add drm_atomic_get_old_mst_topology_state() drm/i915/dp_mst: Fix payload removal during output disabling drm/display/dp_mst: Fix the payload VCPI check in drm_dp_mst_dump_topology() drm/display/dp_mst: Sanitize payload iteration in drm_dp_mst_dump_topology() drm/i915: Factor out helpers for modesetting CRTCs and connectors drm/i915/dp_mst: Move getting the MST topology state earlier to connector check drm/display/dp_mst: Add a helper to verify the MST payload state drm/i915/dp_mst: Verify the MST state of modesetted outputs drm/display/dp_mst: Add helpers to query for payload allocation errors drm/display/dp_mst: Add helpers to query payload allocation properties drm/display/dp_mst: Export the DP_PAYLOAD_TABLE_SIZE definition drm/display/dp_mst: Factor out a helper to reset the payload table drm/dp: Add a quirk for a DELL P2715Q MST payload allocation problem drm/i915/dp_mst: Add workaround for a DELL P2715Q payload allocation problem drm/i915/dp_mst: Verify the HW state of MST encoders .../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 2 +- drivers/gpu/drm/display/drm_dp_helper.c | 2 + drivers/gpu/drm/display/drm_dp_mst_topology.c | 354 ++++++++++++++++-- drivers/gpu/drm/i915/display/intel_atomic.c | 140 +++++++ drivers/gpu/drm/i915/display/intel_atomic.h | 8 + drivers/gpu/drm/i915/display/intel_cdclk.c | 2 +- drivers/gpu/drm/i915/display/intel_ddi.c | 91 ++++- drivers/gpu/drm/i915/display/intel_display.c | 59 +-- drivers/gpu/drm/i915/display/intel_display.h | 2 - .../drm/i915/display/intel_display_types.h | 19 + drivers/gpu/drm/i915/display/intel_dp.c | 43 +-- drivers/gpu/drm/i915/display/intel_dp.h | 1 + drivers/gpu/drm/i915/display/intel_dp_mst.c | 270 +++++++++++-- drivers/gpu/drm/i915/display/intel_dp_mst.h | 9 + .../drm/i915/display/intel_modeset_verify.c | 2 + drivers/gpu/drm/i915/display/skl_watermark.c | 2 +- drivers/gpu/drm/i915/i915_reg.h | 6 +- drivers/gpu/drm/nouveau/dispnv50/disp.c | 2 +- include/drm/display/drm_dp.h | 5 + include/drm/display/drm_dp_helper.h | 8 + include/drm/display/drm_dp_mst_helper.h | 34 +- 21 files changed, 878 insertions(+), 183 deletions(-) -- 2.37.1