This is v2 of [1] addressing the review comments from Ville. It also includes a few fixes I noticed during further testing, and a workaround for the firmware blocking the HPD state update of an active/disconnected port (stuck in the connected state) until another active/disconnected port gets disabled (added in the last patch). Tested on regular and port-sync configs (on ICL/TGL/ADLP) and on bigjoiner/port-sync+bigjoiner configs (on ADLP). Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> [1] https://lore.kernel.org/all/20230426165305.2049341-1-imre.deak@xxxxxxxxx/ Imre Deak (12): drm/i915: Fix PIPEDMC disabling for a bigjoiner configuration drm/i915: Make the CRTC state consistent during sanitize-disabling drm/i915: Update connector atomic state before crtc sanitize-disabling drm/i915: Separate intel_crtc_disable_noatomic_begin/complete() drm/i915: Factor out set_encoder_for_connector() drm/i915: Add support for disabling any CRTCs during HW readout/sanitization drm/i915/dp: Add link training debug and error printing helpers drm/i915/dp: Convert link training error to debug message on disconnected sink drm/i915/dp: Prevent link training fallback on disconnected port drm/i915/dp: Factor out intel_dp_get_active_pipes() drm/i915: Factor out a helper for handling atomic modeset locks/state drm/i915/tc: Reset TypeC PHYs left enabled in DP-alt mode after the sink disconnects drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/display/intel_ddi.c | 77 +++- drivers/gpu/drm/i915/display/intel_display.c | 14 +- drivers/gpu/drm/i915/display/intel_display.h | 1 + .../drm/i915/display/intel_display_types.h | 2 + drivers/gpu/drm/i915/display/intel_dp.c | 81 +++- drivers/gpu/drm/i915/display/intel_dp.h | 3 + .../drm/i915/display/intel_dp_link_training.c | 399 +++++++----------- .../gpu/drm/i915/display/intel_modeset_lock.c | 50 +++ .../gpu/drm/i915/display/intel_modeset_lock.h | 33 ++ .../drm/i915/display/intel_modeset_setup.c | 316 +++++++++++--- drivers/gpu/drm/i915/display/intel_tc.c | 29 ++ drivers/gpu/drm/i915/display/intel_tc.h | 1 + 13 files changed, 676 insertions(+), 331 deletions(-) create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_lock.c create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_lock.h -- 2.37.2