This is v2 of the first part of [1] refactoring the DP link recovery logic in patches 1-26 of [1]. For the rationale please refer to the link recovery parts in the cover letter of [1].
This v2 version has the following changes: - Address the review comments from Jani: - Remove unneeded kernel-doc documentation. - Explicitly compare against and set recovery state enum values. - Expand the high-level documentation adding recovery flowcharts. - Simplify resetting the recovery state as suggested by Ville after the sink/link capabilities change without an HPD pulse (i.e. without any signaling or via an RX_CAP_CHANGED signal), effectively rebasing patches 1-26 in [1] on top of [2], which also resulted in dropping patches 1-3 and 6 from [1]- Cc: Jani Nikula <[email protected]> Cc: Ville Syrjälä <[email protected]> [1] https://lore.kernel.org/all/[email protected] [2] https://lore.kernel.org/all/[email protected] Imre Deak (22): drm/i915/dp_link_training: Introduce link training state struct drm/i915/dp_link_training: Factor out link training state reset helper drm/i915/dp_link_training: Flush commits in debugfs entries drm/i915/dp_link_training: Move link training helpers to link training code drm/i915/dp_link_training: Use link_training as base pointer in debugfs drm/i915/dp_link_training: Add helpers to access force retrain state drm/i915/dp_link_training: Move link recovery/debug state to link_training drm/i915/dp_link_training: Prevent repeated autoretrain attempts drm/i915/dp_link_training: Clamp sequential link training failure counter drm/i915/dp_link_training: Check for pending autoretrain explicitly drm/i915/dp_link_training: Add helper to query pending autoretrain drm/i915/dp_link_training: Add helper to query allowed autoretrain drm/i915/dp_link_training: Add helper to mark link training failure drm/i915/dp_link_training: Add helper to reset link recovery state drm/i915/dp_link_training: Track link recovery state with an enum drm/i915/dp_link_training: Add no-fallback link recovery state drm/i915/display: Factor out a helper to modeset a pipe with atomic state drm/i915/display: Simplify intel_modeset_commit_pipes_for_atomic_state() drm/i915/dp_link_training: Allocate atomic state for autoretrain modeset drm/i915/dp_link_training: Disallow autoretrains after failed modeset drm/i915/dp_link_training: Fix kernel-doc of intel_dp_init_lttpr_and_dprx_caps() drm/i915/dp_link_training: Document DP link recovery logic .../gpu/intel-display/dp-link-training.rst | 8 + Documentation/gpu/intel-display/index.rst | 1 + drivers/gpu/drm/i915/display/g4x_dp.c | 10 +- drivers/gpu/drm/i915/display/intel_ddi.c | 19 +- drivers/gpu/drm/i915/display/intel_display.c | 42 +- drivers/gpu/drm/i915/display/intel_display.h | 3 + .../drm/i915/display/intel_display_types.h | 7 +- drivers/gpu/drm/i915/display/intel_dp.c | 218 +---- drivers/gpu/drm/i915/display/intel_dp.h | 7 +- .../drm/i915/display/intel_dp_link_training.c | 891 +++++++++++++++++- .../drm/i915/display/intel_dp_link_training.h | 15 + 11 files changed, 967 insertions(+), 254 deletions(-) create mode 100644 Documentation/gpu/intel-display/dp-link-training.rst -- 2.49.1
