Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Marco Nenciarini <mnencia@kcore.it>
To: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
	dri-devel@lists.freedesktop.org
Cc: jani.nikula@linux.intel.com, ville.syrjala@linux.intel.com,
	imre.deak@intel.com, xiaolu.xie@intel.com
Subject: Re: [PATCH v3] drm/i915/dp: clear and restore MSTM_CTRL around MST DPMS off/on
Date: Tue, 20 Oct 2026 17:30:31 +0200	[thread overview]
Message-ID: <ateJFyHPSYMYdj7A@spark.kcore.it> (raw)
In-Reply-To: <20261020110418.1272170-1-xiaolu.xie@intel.com>

Tested-by: Marco Nenciarini <mnencia@kcore.it>

Tested v3 on a Dell Pro Max 16 (Arrow Lake-P) with a Dell WD19DC dock
(Synaptics VMM5331 MST hub), one monitor on DP and one on HDMI behind
it, i915 driving the dock over TBT-alt, drm.debug=0x10e. Kernel is
Debian 7.2.9 with v3 applied on top.

The only change needed for 7.2.9 was the context of the last hunk in
intel_dp_mst.c, which still uses drm_dp_dpcd_readb(). The new helpers
use drm_dp_dpcd_read_byte(), which exists in 7.2.9, so verify_ctrl()
needed no change.

Results for the points you asked about, 120 s DPMS off with a connector
probe forced on the trunk 30 s into the off period:

1. No "MST mode got reset" message, no MSTM_CTRL mismatch message and
   no connector was unregistered. DPMS off wrote MSTM_CTRL as 0x04
   and the probe read it back as 04.
2. After the wake, one LINK_ADDRESS was sent and the connectors kept
   their names and ids.
3. The wake was normal: link training passed at 810000 x4 on the sink
   and both LTTPRs, payloads were allocated and both monitors came
   back.

I also probed the two MST connectors while paused (90 s off, probes
at 30 s). Modes and EDID were identical before, during and after
(28 and 32 modes, 256 byte EDID). The first probe (DP-6) took about
5 s: its REMOTE_I2C_READ got a NAK (LINK_FAILURE) after 4 s and the
retry worked. The DP-7 probe took under a second with no NAK. The
probe of the trunk read MSTM_CTRL as 04 again.

Unplug and replug during DPMS off: four runs, one cable at a time
(HDMI and DP, 90 s off, cable moved 4 to 7 s into the off period). In
all four the dock raised a long HPD on the trunk and AUX failed for
about a second, so i915 took the normal disconnect path ("MST device
may have disappeared"): the MSTM_CTRL write failed with -6 and the
three MST connectors were unregistered. One second later MST was
enabled again (0x111 <- 07), LINK_ADDRESS was sent and the topology
was rebuilt with new connectors (DP-5, DP-10, DP-11), so the names
were not kept in these runs. There was no "MST mode got reset"
message. The wake that followed was normal, with link training at
810000 x4 and payloads only for the monitors that were connected.

There was no LINK_ADDRESS after the wake. As I read the code,
set_mst() clears the paused state and nothing paused it again after
the rebuild, so unpause() returned false and no re-probe followed.
The only noise was the usual REMOTE_DPCD_READ NAKs, 4 to 10 per run,
the same as the 4 at boot when the topology is first probed.

So on this dock a sink change while paused did not reach the re-probe
at unpause: the dock raised a long HPD and the disconnect path rebuilt
the topology first. The unpause re-probe was only exercised by the
normal wakes above (one LINK_ADDRESS, no topology change).

The logs are available if you want them.

  parent reply	other threads:[~2026-10-21 11:42 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-14  8:14 [PATCH] drm/i915/dp: clear and restore MSTM_CTRL around MST DPMS off/on Xiao Lu
2026-10-14  8:40 ` sashiko-bot
2026-10-14  9:41 ` ✗ i915.CI.BAT: failure for " Patchwork
2026-10-14  9:55 ` [PATCH] " Marco Nenciarini
2026-10-19 12:40 ` Marco Nenciarini
2026-10-20  2:17 ` [PATCH v2] " Xiao Lu
2026-10-20  7:18   ` Marco Nenciarini
2026-10-20  8:11   ` Jani Nikula
2026-10-20  8:12   ` sashiko-bot
2026-10-20 11:04   ` [PATCH v3] " Xiao Lu
2026-10-20 11:26     ` sashiko-bot
2026-10-20 15:30     ` Marco Nenciarini [this message]
2026-10-20  3:06 ` ✓ i915.CI.BAT: success for drm/i915/dp: clear and restore MSTM_CTRL around MST DPMS off/on (rev2) Patchwork
2026-10-20 11:02 ` ✓ i915.CI.Full: " Patchwork
2026-10-20 12:17 ` ✓ i915.CI.BAT: success for drm/i915/dp: clear and restore MSTM_CTRL around MST DPMS off/on (rev3) Patchwork
2026-10-20 17:33 ` ✓ i915.CI.Full: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ateJFyHPSYMYdj7A@spark.kcore.it \
    --to=mnencia@kcore.it \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=imre.deak@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=ville.syrjala@linux.intel.com \
    --cc=xiaolu.xie@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox