[Intel-gfx] [PATCH 00/23] drm/i915: Fix TypeC port mode switching
Imre Deak
imre.deak at intel.com
Tue Jun 4 14:58:03 UTC 2019
Atm we switch the TypeC port mode upon receiving an HPD interrupt.
That's unsafe since the port could be active (after a modeset) or there
could be other users that depend on the port mode to stay fixed. To make
the mode switching robust add a TypeC port mode refcounting reflecting
the active state of the port and locking for any other users of it
(connector detection/AUX transfers).
The port mode will be reset if needed, whenever the TypeC lock is taken
and the port is inactive. During a modeset resetting the port and
selecting the proper PLL for the new mode must happen during the atomic
commit phase, after the port and its PLL got disabled. For that we need
to reserve both the TBT and MG PHY PLLs for the port and select the
correct one after the port mode got reset/locked down for the duration
of the port's active state.
The patchset has a few refactorings getting to the state described above
gradually, so that reviewing the actual changes is somewhat easier. I
also pushed the whole lot to [1].
The patchset also has a few fixes mostly related to the TBT-alt mode.
[1] https://github.com/ideak/linux/commits/typec-mode-switch
Cc: Manasi Navare <manasi.d.navare at intel.com>
Cc: José Roberto de Souza <jose.souza at intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
Cc: Animesh Manna <animesh.manna at intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni at intel.com>
Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
Cc: Lucas De Marchi <lucas.demarchi at intel.com>
Cc: Anusha Srivatsa <anusha.srivatsa at intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
Imre Deak (23):
drm/i915/icl: Add support to read out the TBT PLL HW state
drm/i915: Tune down WARNs about TBT AUX power well enabling
drm/i915: Move the TypeC port handling code to a separate file
drm/i915: Sanitize the terminology used for TypeC port modes
drm/i915: Don't enable the DDI-IO power in the TypeC TBT-alt mode
drm/i915: Fix the TBT AUX power well enabling
drm/i915: Use the correct AUX power domain in TypeC TBT-alt mode
drm/i915: Unify the TypeC port notation in debug/error messages
drm/i915: Factor out common parts from TypeC port handling functions
drm/i915: Wait for TypeC PHY complete flag to clear in safe mode
drm/i915: Handle the TCCOLD power-down event
drm/i915: Sanitize the TypeC connect/detect sequences
drm/i915: Fix the TypeC port mode sanitization during loading/resume
drm/i915: Keep the TypeC port mode fixed for detect/AUX transfers
drm/i915: Sanitize the TypeC FIA lane configuration decoding
drm/i915: Sanitize the shared DPLL reserve/release interface
drm/i915: Sanitize the shared DPLL find/reference interface
drm/i915/icl: Split getting the DPLLs to port type specific functions
drm/i915/icl: Reserve all required PLLs for TypeC ports
drm/i915: Keep the TypeC port mode fixed when the port is active
drm/i915: Add state verification for the TypeC port mode
drm/i915: Remove unneeded disconnect in TypeC legacy port mode
drm/i915: WARN about invalid lane reversal in TBT-alt/DP-alt modes
drivers/gpu/drm/i915/Makefile | 3 +-
drivers/gpu/drm/i915/Makefile.header-test | 1 +
drivers/gpu/drm/i915/intel_ddi.c | 123 ++---
drivers/gpu/drm/i915/intel_ddi.h | 7 +
drivers/gpu/drm/i915/intel_display.c | 160 ++++++-
drivers/gpu/drm/i915/intel_display.h | 7 +-
drivers/gpu/drm/i915/intel_display_power.c | 111 ++++-
drivers/gpu/drm/i915/intel_dp.c | 243 +---------
drivers/gpu/drm/i915/intel_dp.h | 2 -
drivers/gpu/drm/i915/intel_dp_mst.c | 6 +
drivers/gpu/drm/i915/intel_dp_mst.h | 8 +-
drivers/gpu/drm/i915/intel_dpll_mgr.c | 524 +++++++++++++++------
drivers/gpu/drm/i915/intel_dpll_mgr.h | 25 +-
drivers/gpu/drm/i915/intel_drv.h | 21 +-
drivers/gpu/drm/i915/intel_hdmi.c | 7 +
drivers/gpu/drm/i915/intel_tc.c | 469 ++++++++++++++++++
drivers/gpu/drm/i915/intel_tc.h | 27 ++
17 files changed, 1272 insertions(+), 472 deletions(-)
create mode 100644 drivers/gpu/drm/i915/intel_tc.c
create mode 100644 drivers/gpu/drm/i915/intel_tc.h
--
2.17.1
More information about the Intel-gfx
mailing list