Skip to content

drm/i915/tc: Fix enabled/disconnected DP-alt sink handling

Imre Deak intel-gfx intel-xe stable 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest19 patches 31 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/19drm/i915/lnl+/tc: Fix handling of an enabled/disconnected dp-alt sinkdrivers/gpu/drm/i915/display/intel_tc.c+10 -69 replies
2/19drm/i915/icl+/tc: Cache the max lane count valuedrivers/gpu/drm/i915/display/intel_tc.c+42 -62 replies
3/19drm/i915/lnl+/tc: Fix max lane count HW readoutdrivers/gpu/drm/i915/display/intel_tc.c+9 -02 replies
4/19drm/i915/lnl+/tc: Use the cached max lane count valuedrivers/gpu/drm/i915/display/intel_tc.c+5 -11 reply
5/19drm/i915/icl+/tc: Convert AUX powered WARN to a debug messagedrivers/gpu/drm/i915/display/intel_tc.c+3 -31 reply
6/19drm/i915/tc: Use the cached max lane count valuedrivers/gpu/drm/i915/display/intel_tc.c+0 -41 reply
7/19drm/i915/tc: Move getting the power domain before reading DFLEX registersdrivers/gpu/drm/i915/display/intel_tc.c+8 -101 reply
8/19drm/i915/tc: Move asserting the power state after reading TCSS_DDI_STATUSdrivers/gpu/drm/i915/display/intel_tc.c+4 -21 reply
9/19drm/i915/tc: Add an enum for the TypeC pin assignmentdrivers/gpu/drm/i915/display/intel_display_regs.h drivers/gpu/drm/i915/display/intel_tc.c drivers/gpu/drm/i915/display/intel_tc.h+78 -121 reply
10/19drm/i915/tc: Pass pin assignment value around using the pin assignment enumdrivers/gpu/drm/i915/display/intel_ddi.c drivers/gpu/drm/i915/display/intel_tc.c drivers/gpu/drm/i915/display/intel_tc.h+20 -161 reply
11/19drm/i915/tc: Handle pin assignment NONE on all platformsdrivers/gpu/drm/i915/display/intel_tc.c+2 -01 reply
12/19drm/i915/tc: Validate the pin assignment on all platformsdrivers/gpu/drm/i915/display/intel_tc.c+23 -51 reply
13/19drm/i915/tc: Unify the way to get the pin assignment on all platformsdrivers/gpu/drm/i915/display/intel_tc.c+27 -201 reply
14/19drm/i915/tc: Unify the way to get the max lane count value on MTL+drivers/gpu/drm/i915/display/intel_tc.c+0 -241 reply
15/19drm/i915/tc: Handle non-TC encoders when getting the pin assignmentdrivers/gpu/drm/i915/display/intel_tc.c+3 -01 reply
16/19drm/i915/tc: Pass intel_tc_port to internal lane mask/count helpersdrivers/gpu/drm/i915/display/intel_tc.c+7 -101 reply
17/19dmc/i915/tc: Report pin assignment NONE in TBT-alt modedrivers/gpu/drm/i915/display/intel_tc.c+3 -01 reply
18/19drm/i915/tc: Cache the pin assignment valuedrivers/gpu/drm/i915/display/intel_tc.c+3 -11 reply
19/19drm/i915/tc: Debug print the pin assignment and max lane countdrivers/gpu/drm/i915/display/intel_tc.c+17 -41 reply

Reviews trailers per patch

All 19 patches have a Reviewed-by or Acked-by.

PatchKhaled AlmahallawyMika KaholaLuca Coelho
SeriesT-b
1/19T-b R-b R-b
2/19T-b T-b R-b
3/19T-b T-b R-b
4/19T-b R-b
5/19T-b R-b
6/19R-b
7/19R-b
8/19R-b
9/19R-b
10/19R-b
11/19R-b
12/19R-b
13/19R-b
14/19R-b
15/19R-b
16/19R-b
17/19R-b
18/19R-b
19/19R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v1 thread

Cover letter [PATCH 00/19] drm/i915/tc: Fix enabled/disconnected DP-alt sink handling

This patchset fixes an issue on LNL+, where the TypeC PHY's mode/state is detected incorrectly during HW readout for a DP-alt sink that got enabled by BIOS/GOP, but later the sink got disconnected by the user before the driver got loaded.

The issue in the driver is due to overlooking a change on LNL+ in the way the PHY ready flag and pin assignment is set/cleared in the PHY registers by the HW/FW wrt. how this works on all the earlier (ICL-MTL) TypeC platforms.

The first 5 patches fix the issue, the rest refactor the PHY's max lane count and pin assignment query functions, sanitizing the code, removing duplications and validating the register values read out from the HW.

Imre Deak (19):
drm/i915/lnl+/tc: Fix handling of an enabled/disconnected dp-alt sink drm/i915/icl+/tc: Cache the max lane count value drm/i915/lnl+/tc: Fix max lane count HW readout drm/i915/lnl+/tc: Use the cached max lane count value drm/i915/icl+/tc: Convert AUX powered WARN to a debug message drm/i915/tc: Use the cached max lane count value drm/i915/tc: Move getting the power domain before reading DFLEX
registers
drm/i915/tc: Move asserting the power state after reading
TCSS_DDI_STATUS
drm/i915/tc: Add an enum for the TypeC pin assignment drm/i915/tc: Pass pin assignment value around using the pin assignment
enum
drm/i915/tc: Handle pin assignment NONE on all platforms drm/i915/tc: Validate the pin assignment on all platforms drm/i915/tc: Unify the way to get the pin assignment on all platforms drm/i915/tc: Unify the way to get the max lane count value on MTL+ drm/i915/tc: Handle non-TC encoders when getting the pin assignment drm/i915/tc: Pass intel_tc_port to internal lane mask/count helpers dmc/i915/tc: Report pin assignment NONE in TBT-alt mode drm/i915/tc: Cache the pin assignment value
drm/i915/tc: Debug print the pin assignment and max lane count

 drivers/gpu/drm/i915/display/intel_ddi.c      |  19 +-
 .../gpu/drm/i915/display/intel_display_regs.h |   2 +
 drivers/gpu/drm/i915/display/intel_tc.c       | 217 ++++++++++++------
 drivers/gpu/drm/i915/display/intel_tc.h       |  72 +++++-
 4 files changed, 225 insertions(+), 85 deletions(-)
Signature · 1 line
2.49.1