diff options
author | Imre Deak <imre.deak@intel.com> | 2021-06-10 20:42:23 +0300 |
---|---|---|
committer | Imre Deak <imre.deak@intel.com> | 2021-06-16 19:13:43 +0300 |
commit | 151ec347b06a2fb6ecd2922475dca71a7af827a5 (patch) | |
tree | 3c740cb0b943fad7ecb1da0aec6ff7caba317dfa /drivers/gpu/drm/i915/display/intel_tc.h | |
parent | 544021e3f2aa3c4c6c5aabc58907e8bab69b3762 (diff) | |
download | linux-151ec347b06a2fb6ecd2922475dca71a7af827a5.tar.gz linux-151ec347b06a2fb6ecd2922475dca71a7af827a5.tar.bz2 linux-151ec347b06a2fb6ecd2922475dca71a7af827a5.zip |
drm/i915: Force a TypeC PHY disconnect during suspend/shutdown
Disconnect TypeC PHYs during system suspend and shutdown, even with the
corresponding TypeC sink still plugged to its connector, since leaving
the PHY connected causes havoc at least during system resume in the
presence of an Nvidia card.
Note that this will only make a difference in the TypeC DP alternate
mode, since in Thunderbolt alternate mode the PHY is never owned by the
display engine and there is no notion of PHY ownership in legacy mode
(the display engine being the only possible owner in that mode and the
TypeC subsystem not having anything to do with the port in that case).
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3500
Reported-and-tested-by: Chris Chiu <chris.chiu@canonical.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210610174223.605904-1-imre.deak@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_tc.h')
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_tc.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_tc.h b/drivers/gpu/drm/i915/display/intel_tc.h index 0eacbd76ec15..0c881f645e27 100644 --- a/drivers/gpu/drm/i915/display/intel_tc.h +++ b/drivers/gpu/drm/i915/display/intel_tc.h @@ -13,6 +13,8 @@ struct intel_digital_port; struct intel_encoder; bool intel_tc_port_connected(struct intel_encoder *encoder); +void intel_tc_port_disconnect_phy(struct intel_digital_port *dig_port); + u32 intel_tc_port_get_lane_mask(struct intel_digital_port *dig_port); u32 intel_tc_port_get_pin_assignment_mask(struct intel_digital_port *dig_port); int intel_tc_port_fia_max_lane_count(struct intel_digital_port *dig_port); |