From: Imre Deak <imre.deak@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>,
Daniel Vetter <daniel.vetter@ffwll.ch>,
Lucas De Marchi <lucas.demarchi@intel.com>
Subject: [PATCH 00/23] drm/i915: Fix TypeC port mode switching
Date: Tue, 4 Jun 2019 17:58:03 +0300 [thread overview]
Message-ID: <20190604145826.16424-1-imre.deak@intel.com> (raw)
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@intel.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next reply other threads:[~2019-06-04 14:59 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-04 14:58 Imre Deak [this message]
2019-06-04 14:58 ` [PATCH 01/23] drm/i915/icl: Add support to read out the TBT PLL HW state Imre Deak
2019-06-07 17:36 ` Souza, Jose
2019-06-04 14:58 ` [PATCH 02/23] drm/i915: Tune down WARNs about TBT AUX power well enabling Imre Deak
2019-06-07 17:50 ` Souza, Jose
2019-06-08 13:33 ` Imre Deak
2019-06-04 14:58 ` [PATCH 03/23] drm/i915: Move the TypeC port handling code to a separate file Imre Deak
2019-06-06 8:42 ` Jani Nikula
2019-06-06 8:43 ` Jani Nikula
2019-06-06 9:09 ` Imre Deak
2019-06-10 22:57 ` Lucas De Marchi
2019-06-11 10:01 ` Jani Nikula
2019-06-07 17:56 ` Souza, Jose
2019-06-04 14:58 ` [PATCH 04/23] drm/i915: Sanitize the terminology used for TypeC port modes Imre Deak
2019-06-07 19:15 ` Souza, Jose
2019-06-08 13:43 ` Imre Deak
2019-06-10 23:21 ` Lucas De Marchi
2019-06-11 11:19 ` Imre Deak
2019-06-04 14:58 ` [PATCH 05/23] drm/i915: Don't enable the DDI-IO power in the TypeC TBT-alt mode Imre Deak
2019-06-07 19:23 ` Souza, Jose
2019-06-04 14:58 ` [PATCH 06/23] drm/i915: Fix the TBT AUX power well enabling Imre Deak
2019-06-07 19:58 ` Souza, Jose
2019-06-08 13:55 ` Imre Deak
2019-06-04 14:58 ` [PATCH 07/23] drm/i915: Use the correct AUX power domain in TypeC TBT-alt mode Imre Deak
2019-06-07 20:02 ` Souza, Jose
2019-06-04 14:58 ` [PATCH 08/23] drm/i915: Unify the TypeC port notation in debug/error messages Imre Deak
2019-06-07 20:21 ` Souza, Jose
2019-06-07 20:42 ` Imre Deak
2019-06-07 20:45 ` Souza, Jose
2019-06-07 20:46 ` Imre Deak
2019-06-04 14:58 ` [PATCH 09/23] drm/i915: Factor out common parts from TypeC port handling functions Imre Deak
2019-06-06 8:47 ` Jani Nikula
2019-06-06 9:19 ` Imre Deak
2019-06-07 21:22 ` Souza, Jose
2019-06-08 17:23 ` Imre Deak
2019-06-18 16:33 ` Ville Syrjälä
2019-06-18 16:44 ` Imre Deak
2019-06-04 14:58 ` [PATCH 10/23] drm/i915: Wait for TypeC PHY complete flag to clear in safe mode Imre Deak
2019-06-07 21:32 ` Souza, Jose
2019-06-04 14:58 ` [PATCH 11/23] drm/i915: Handle the TCCOLD power-down event Imre Deak
2019-06-07 21:41 ` Souza, Jose
2019-06-08 17:31 ` Imre Deak
2019-06-04 14:58 ` [PATCH 12/23] drm/i915: Sanitize the TypeC connect/detect sequences Imre Deak
2019-06-07 22:15 ` Souza, Jose
2019-06-08 17:40 ` Imre Deak
2019-06-04 14:58 ` [PATCH 13/23] drm/i915: Fix the TypeC port mode sanitization during loading/resume Imre Deak
2019-06-07 22:39 ` Souza, Jose
2019-06-08 17:50 ` Imre Deak
2019-06-04 14:58 ` [PATCH 14/23] drm/i915: Keep the TypeC port mode fixed for detect/AUX transfers Imre Deak
2019-06-04 14:58 ` [PATCH 15/23] drm/i915: Sanitize the TypeC FIA lane configuration decoding Imre Deak
2019-06-07 22:49 ` Souza, Jose
2019-06-18 16:39 ` Ville Syrjälä
2019-06-18 16:46 ` Imre Deak
2019-06-04 14:58 ` [PATCH 16/23] drm/i915: Sanitize the shared DPLL reserve/release interface Imre Deak
2019-06-04 14:58 ` [PATCH 17/23] drm/i915: Sanitize the shared DPLL find/reference interface Imre Deak
2019-06-04 14:58 ` [PATCH 18/23] drm/i915/icl: Split getting the DPLLs to port type specific functions Imre Deak
2019-06-04 14:58 ` [PATCH 19/23] drm/i915/icl: Reserve all required PLLs for TypeC ports Imre Deak
2019-06-07 17:41 ` [PATCH v2 " Imre Deak
2019-06-18 17:25 ` Ville Syrjälä
2019-06-18 18:02 ` Imre Deak
2019-06-04 14:58 ` [PATCH 20/23] drm/i915: Keep the TypeC port mode fixed when the port is active Imre Deak
2019-06-19 12:58 ` Ville Syrjälä
2019-06-19 16:08 ` Imre Deak
2019-06-04 14:58 ` [PATCH 21/23] drm/i915: Add state verification for the TypeC port mode Imre Deak
2019-06-04 14:58 ` [PATCH 22/23] drm/i915: Remove unneeded disconnect in TypeC legacy " Imre Deak
2019-06-08 0:18 ` Souza, Jose
2019-06-04 14:58 ` [PATCH 23/23] drm/i915: WARN about invalid lane reversal in TBT-alt/DP-alt modes Imre Deak
2019-06-08 0:13 ` Souza, Jose
2019-06-08 0:25 ` Souza, Jose
2019-06-04 17:30 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Fix TypeC port mode switching Patchwork
2019-06-04 17:39 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-06-05 5:24 ` ✓ Fi.CI.BAT: success " Patchwork
2019-06-05 16:36 ` ✓ Fi.CI.IGT: " Patchwork
2019-06-07 17:59 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Fix TypeC port mode switching (rev2) Patchwork
2019-06-07 18:07 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-06-07 18:34 ` ✓ Fi.CI.BAT: success " Patchwork
2019-06-10 12:34 ` ✓ Fi.CI.IGT: " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190604145826.16424-1-imre.deak@intel.com \
--to=imre.deak@intel.com \
--cc=daniel.vetter@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=lucas.demarchi@intel.com \
--cc=paulo.r.zanoni@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox