All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] drm/i915/cx0: TCSS power for the non-TC C20 PHY on PTL port B
@ 2026-10-14 22:26 ` Burak Göncü via B4 Relay
  0 siblings, 0 replies; 13+ messages in thread
From: Burak Göncü @ 2026-10-14 22:26 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: Jani Nikula, Rodrigo Vivi, Imre Deak, Mika Kahola,
	Burak Göncü

On PTL, port B is driven by a C20 PHY that sits in the Type-C
subsystem, but nothing in the driver requests TCSS power for it; only
the firmware does, when it lights a display on the port at boot. The
ASUS Zenbook Duo UX8407AA drives its second internal panel from port B.
After a power-on with the detachable keyboard lying on that panel, the
first enable of the panel fails and can hang the machine (gitlab issue
9196).

Patch 2 requests TCSS power for such a PHY around its PLL enable and
disable. Patch 1 first serializes the TCSS mailbox handshake of
Wa_14020908590, which patch 2 reuses and which the TC ports could
already race on.

Two questions from v1 are still open:

- Does port B's C20 PHY on PTL always need the TCSS power request when
  it is used as a non-TC port, as this series assumes, or does this
  belong in the port's power well / AUX handling, or in a board quirk?
- Should the request be held for as long as the port is in use rather
  than per PLL enable/disable? Releasing it while the panel is off puts
  the hardware back into the state an unpatched kernel has; holding it
  showed no measurable difference in package power or PC10/LPI
  residency on this machine.

EDITME: v2 test results on the hardware.

Compile-tested on drm-tip with W=1 for i915 and xe (clang). HDMI/DP on
port B could not be tested, as this board only drives eDP there.

An LLM-based assistant helped with the investigation and with writing
the patches; I tested them on the hardware and reviewed them.

---
Changes in v2:
- New patch 1: serialize the TCSS mailbox with a display-wide mutex; it
  was covered only by each TC port's own lock (Sashiko review)
- Patch 2: also wait for the TCSS power state to clear when the request
  is released, as the TC PHY code does (Sashiko review)
- Drop the RFC prefix
- Link to v1: https://patch.msgid.link/20261006-ptl-port-b-tcss-v1-1-240670342cd3@gmail.com

---
Burak Göncü (2):
      drm/i915/tc: serialize the TCSS power request mailbox
      drm/i915/cx0: request TCSS power for the non-TC C20 PHY on PTL port B

 drivers/gpu/drm/i915/display/intel_cx0_phy.c       | 37 ++++++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_display_core.h  |  5 +++
 .../gpu/drm/i915/display/intel_display_driver.c    |  1 +
 drivers/gpu/drm/i915/display/intel_tc.c            | 33 +++++++++++++++++--
 drivers/gpu/drm/i915/display/intel_tc.h            |  1 +
 5 files changed, 74 insertions(+), 3 deletions(-)
---
base-commit: daeb062fc40f727fafefed080c6d12a5ad1d0d12
change-id: 20261006-ptl-port-b-tcss-8b1cbc5d98e0

Best regards,
--  
Burak Göncü <burakgon12@gmail.com>


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2026-11-03 11:21 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-14 22:26 [PATCH v2 0/2] drm/i915/cx0: TCSS power for the non-TC C20 PHY on PTL port B Burak Göncü
2026-10-14 22:26 ` Burak Göncü via B4 Relay
2026-10-14 22:26 ` [PATCH v2 1/2] drm/i915/tc: serialize the TCSS power request mailbox Burak Göncü
2026-10-14 22:26   ` Burak Göncü via B4 Relay
2026-10-14 22:26 ` [PATCH v2 2/2] drm/i915/cx0: request TCSS power for the non-TC C20 PHY on PTL port B Burak Göncü
2026-10-14 22:26   ` Burak Göncü via B4 Relay
2026-10-15 12:26 ` ✓ CI.KUnit: success for drm/i915/cx0: " Patchwork
2026-10-15 14:46 ` ✓ i915.CI.BAT: " Patchwork
2026-10-15 19:04 ` ✓ i915.CI.Full: " Patchwork
2026-10-15 19:40 ` ✓ Xe.CI.BAT: " Patchwork
2026-10-16  1:34 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-10-16 18:57 ` [PATCH v2 0/2] " Burak Göncü
2026-11-03 11:20 ` Imre Deak

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.