mbox series

[00/12,SRU,U/OEM-5.14] Fix i915 TypeC disconnect problems for Intel ADL-P

Message ID 20211124102235.447553-1-chris.chiu@canonical.com
Headers show
Series Fix i915 TypeC disconnect problems for Intel ADL-P | expand

Message

Chris Chiu Nov. 24, 2021, 10:22 a.m. UTC
BugLink: https://bugs.launchpad.net/bugs/1952041

[Impact]
When the ADL-P system connects the external display via TypeC port, it will hang after unplugging the TypeC connector. The system will never come back until reboot.

[Fix]
Intel has released a patch set to fix the TypeC PHY connect/disconnect logic. The shift for ownership of PHY and power domain will be handled correctly for ADL-P.

[Test]
The ADL-P system will no longer freeze and the ownership will shift correctly after disconnecting the external display connects via TypeC port.

[Where problem could occur]
It's kind of a big refactor for the i915 TypeC PHY handling logic. Don't know if there's any problems on older platforms. Targeting only on Unstable and latest OEM kernel for lower risk.

Imre Deak (12):
  drm/i915/adlp/tc: Fix PHY connected check for Thunderbolt mode
  drm/i915/tc: Remove waiting for PHY complete during releasing
    ownership
  drm/i915/tc: Check for DP-alt, legacy sinks before taking PHY
    ownership
  drm/i915/tc: Add/use helpers to retrieve TypeC port properties
  drm/i915/tc: Don't keep legacy TypeC ports in connected state w/o a
    sink
  drm/i915/tc: Add a mode for the TypeC PHY's disconnected state
  drm/i915/tc: Refactor TC-cold block/unblock helpers
  drm/i915/tc: Avoid using legacy AUX PW in TBT mode
  drm/i915/icl/tc: Remove the ICL special casing during TC-cold blocking
  drm/i915/tc: Fix TypeC PHY connect/disconnect logic on ADL-P
  drm/i915/tc: Drop extra TC cold blocking from
    intel_tc_port_connected()
  drm/i915/tc: Fix system hang on ADL-P during TypeC PHY disconnect

 drivers/gpu/drm/i915/display/intel_ddi.c      |  34 +-
 drivers/gpu/drm/i915/display/intel_display.c  |   6 +-
 drivers/gpu/drm/i915/display/intel_display.h  |   1 +
 .../drm/i915/display/intel_display_power.c    |   4 +-
 .../drm/i915/display/intel_display_types.h    |   3 +
 drivers/gpu/drm/i915/display/intel_dp_aux.c   |   6 +-
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c |   5 +-
 drivers/gpu/drm/i915/display/intel_tc.c       | 290 ++++++++++++------
 drivers/gpu/drm/i915/display/intel_tc.h       |   6 +-
 9 files changed, 224 insertions(+), 131 deletions(-)

Comments

Chris Chiu Nov. 25, 2021, 11:24 a.m. UTC | #1
On Wed, Nov 24, 2021 at 6:22 PM Chris Chiu <chris.chiu@canonical.com> wrote:
>
> BugLink: https://bugs.launchpad.net/bugs/1952041
>
> [Impact]
> When the ADL-P system connects the external display via TypeC port, it will hang after unplugging the TypeC connector. The system will never come back until reboot.
>
> [Fix]
> Intel has released a patch set to fix the TypeC PHY connect/disconnect logic. The shift for ownership of PHY and power domain will be handled correctly for ADL-P.
>
> [Test]
> The ADL-P system will no longer freeze and the ownership will shift correctly after disconnecting the external display connects via TypeC port.
>
> [Where problem could occur]
> It's kind of a big refactor for the i915 TypeC PHY handling logic. Don't know if there's any problems on older platforms. Targeting only on Unstable and latest OEM kernel for lower risk.
>

The patch #4 of this series is particularly for 5.14 kernel. Jammy and
Unstable should cherry-pick the patch cleanly. Proposed a v2 for the
OEM-5.14 and sent another SRU for Jammy and Unstable

> Imre Deak (12):
>   drm/i915/adlp/tc: Fix PHY connected check for Thunderbolt mode
>   drm/i915/tc: Remove waiting for PHY complete during releasing
>     ownership
>   drm/i915/tc: Check for DP-alt, legacy sinks before taking PHY
>     ownership
>   drm/i915/tc: Add/use helpers to retrieve TypeC port properties
>   drm/i915/tc: Don't keep legacy TypeC ports in connected state w/o a
>     sink
>   drm/i915/tc: Add a mode for the TypeC PHY's disconnected state
>   drm/i915/tc: Refactor TC-cold block/unblock helpers
>   drm/i915/tc: Avoid using legacy AUX PW in TBT mode
>   drm/i915/icl/tc: Remove the ICL special casing during TC-cold blocking
>   drm/i915/tc: Fix TypeC PHY connect/disconnect logic on ADL-P
>   drm/i915/tc: Drop extra TC cold blocking from
>     intel_tc_port_connected()
>   drm/i915/tc: Fix system hang on ADL-P during TypeC PHY disconnect
>
>  drivers/gpu/drm/i915/display/intel_ddi.c      |  34 +-
>  drivers/gpu/drm/i915/display/intel_display.c  |   6 +-
>  drivers/gpu/drm/i915/display/intel_display.h  |   1 +
>  .../drm/i915/display/intel_display_power.c    |   4 +-
>  .../drm/i915/display/intel_display_types.h    |   3 +
>  drivers/gpu/drm/i915/display/intel_dp_aux.c   |   6 +-
>  drivers/gpu/drm/i915/display/intel_dpll_mgr.c |   5 +-
>  drivers/gpu/drm/i915/display/intel_tc.c       | 290 ++++++++++++------
>  drivers/gpu/drm/i915/display/intel_tc.h       |   6 +-
>  9 files changed, 224 insertions(+), 131 deletions(-)
>
> --
> 2.25.1
>