Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] drm/i915/dp_mst: Avoid the 3 s ACT timeouts after the upstream HPD drops
@ 2026-10-31 15:44 Xiao Lu
  2026-10-31 15:44 ` [PATCH RESEND 1/2] drm/dp_mst: Return whether drm_dp_remove_payload_part1() removed the payload Xiao Lu
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Xiao Lu @ 2026-10-31 15:44 UTC (permalink / raw)
  To: intel-xe, intel-gfx
  Cc: dri-devel, jani.nikula, rodrigo.vivi, imre.deak, ville.syrjala,
	maarten.lankhorst, mripard, tzimmermann, Xiao Lu

Resending with proper threading, the first send had no In-Reply-To headers.
There are no code changes.

On a MTL laptop with a ThinkPad Thunderbolt 4 dock (Synaptics VMM6212) and
a TV behind it, powering the TV on makes the dock drop the upstream HPD for
about 1.76 s. The MST topology is torn down and rebuilt, and the display
stays black for about 5 s. The drm.debug log of the report shows two
"Failed to get ACT after 3000 ms, last status: 04" errors, and in both
cases the driver waits for an ACT it never triggered (timestamps from that
log):

 - 24262.495: intel_dp_retrain_link() forces a modeset on the pipe still
   bound to the old, unregistered MST connector, while the topology is being
   rediscovered. drm_dp_add_payload_part1() fails with "VCPI 1 for port ...
   not in topology", but the enable goes on and waits 3 s for an ACT, with
   no write to DPCD 0x1c0-0x1c2 in between.
 - 24267.035: userspace disables the same pipe afterwards.
   drm_dp_remove_payload_part1() prints "not in topology, not sending remove",
   and the disable waits another 3 s for an ACT.

The new connector is only registered after the first wait is over.

Patch 1 makes drm_dp_remove_payload_part1() tell whether it removed the
payload from the branch device. The existing callers ignore the return value.
Patch 2 stops retraining the link for disconnected MST streams and uses the
return value to skip the ACT and its wait on the i915 disable path.

I haven't tested this on the reporter's setup yet, the analysis is based on
the log attached to the issue.

Patch 1 touches the drm core and will also be sent to dri-devel for
drm-misc-next, it is included here for patch 2 to build.

Issue: https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/17741

Xiao Lu (2):
  drm/dp_mst: Return whether drm_dp_remove_payload_part1() removed the
    payload
  drm/i915/dp_mst: Skip link retrain and ACT for disconnected MST
    streams

 drivers/gpu/drm/display/drm_dp_mst_topology.c | 10 ++-
 .../drm/i915/display/intel_dp_link_training.c |  3 +
 drivers/gpu/drm/i915/display/intel_dp_mst.c   | 68 +++++++++++++++----
 drivers/gpu/drm/i915/display/intel_dp_mst.h   |  1 +
 include/drm/display/drm_dp_mst_helper.h       |  2 +-
 5 files changed, 68 insertions(+), 16 deletions(-)

-- 
2.43.0


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

end of thread, other threads:[~2026-10-31 18:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-31 15:44 [PATCH 0/2] drm/i915/dp_mst: Avoid the 3 s ACT timeouts after the upstream HPD drops Xiao Lu
2026-10-31 15:44 ` [PATCH RESEND 1/2] drm/dp_mst: Return whether drm_dp_remove_payload_part1() removed the payload Xiao Lu
2026-10-31 16:05   ` sashiko-bot
2026-10-31 15:44 ` [PATCH RESEND 2/2] drm/i915/dp_mst: Skip link retrain and ACT for disconnected MST streams Xiao Lu
2026-10-31 16:17   ` sashiko-bot
2026-10-31 16:52 ` ✓ i915.CI.BAT: success for drm/i915/dp_mst: Avoid the 3 s ACT timeouts after the upstream HPD drops (rev2) Patchwork
2026-10-31 18:47 ` ✗ i915.CI.Full: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox