Observed 4 times of the following sequence from the log

Dell U2721DE → daisy-chained Dell U2421HE
[  211.264956] i915 0000:00:02.0: [drm:intel_tc_port_update_mode [i915]] Port 
E/TC#3: TC port mode reset (disconnected -> dp-alt)
[  211.265078] i915 0000:00:02.0: [drm:intel_power_well_enable [i915]] enabling 
AUX_E
[  211.265201] i915 0000:00:02.0: [drm:intel_dpll_enable [i915]] enable MG PLL 
3 (active 0x2, on? 0) for [CRTC:185:pipe B]
[  211.265315] i915 0000:00:02.0: [drm:intel_dpll_enable [i915]] enabling MG 
PLL 3
[  211.265477] i915 0000:00:02.0: [drm:mst_stream_pre_enable [i915]] active MST 
streams 0 -> 1

Got hotplug event, but link status are all zeors
[  211.317532] i915 0000:00:02.0: [drm:intel_dp_hpd_pulse [i915]] got hpd irq 
on [ENCODER:293:DDI E (TC)/PHY TC3] - short
[  211.317684] i915 0000:00:02.0: [drm:intel_dp_hpd_pulse [i915]] 
[ENCODER:293:DDI E (TC)/PHY TC3] MST short HPD: delta since last=4815ms
[  211.318518] i915 0000:00:02.0: [drm:intel_dp_check_mst_status [i915]] DPRX 
ESI: 41 10 00 02 (loop=0 active_streams=1)
[  211.319497] i915 0000:00:02.0: [drm:intel_dp_dump_link_status [i915]] 
[CONNECTOR:294:DP-3][ENCODER:293:DDI E (TC)/PHY TC3][DPRX] ln0_1:0x0 ln2_3:0x0 
align:0xc0 sink:0x0 adj_req0_1:0x0 adj_req2_3:0x0

Try retrain the link
[  211.319634] i915 0000:00:02.0: [drm:intel_dp_link_ok [i915]] 
[ENCODER:293:DDI E (TC)/PHY TC3] 8b/10b link not ok, retraining
...
[  211.400818] i915 0000:00:02.0: 
[drm:intel_dp_link_training_channel_equalization [i915]] 
[CONNECTOR:294:DP-3][ENCODER:293:DDI E (TC)/PHY TC3][DPRX] Channel EQ done. DP 
Training successful
[  211.401196] i915 0000:00:02.0: [drm:intel_dp_link_train_phy [i915]] 
[CONNECTOR:294:DP-3][ENCODER:293:DDI E (TC)/PHY TC3][DPRX] Link Training passed 
at link rate = 810000, lane count = 2

And then got HPD burst
[  211.702027] i915 0000:00:02.0: [drm:intel_dp_hpd_pulse [i915]] got hpd irq 
on [ENCODER:293:DDI E (TC)/PHY TC3] - short
[  211.702464] i915 0000:00:02.0: [drm:intel_dp_hpd_pulse [i915]] 
[ENCODER:293:DDI E (TC)/PHY TC3] MST short HPD: delta since last=25ms
...
[  211.733194] i915 0000:00:02.0: [drm:intel_dp_hpd_pulse [i915]] got hpd irq 
on [ENCODER:293:DDI E (TC)/PHY TC3] - short
[  211.733566] i915 0000:00:02.0: [drm:intel_dp_hpd_pulse [i915]] 
[ENCODER:293:DDI E (TC)/PHY TC3] MST short HPD: delta since last=31ms

And stucks

From previous 3 iterations, there are 3 HPD burst and then it continue
working, but at the forth trial it stucks with only 2 HPD.

I feel the issue could be from this commit which is included in v6.16
kernel.

commit 35021b5b15de0c4eceecda9e2dadab2e5e56b7e2
Author: Imre Deak <[email protected]>
Date:   Tue Mar 4 17:29:15 2025 +0200

    drm/i915/dp: Fix link training interrupted by a short HPD pulse
    
    During Display Port link training the handling of HPD pulses should be
    prevented, as that handling can interfere with the link training:
    
    - Accessing DPCD registers outside the range of link training registers
      are not allowed by the Standard (see DP Standard v2.1, 3.5.2.16.1,
      3.6.6.1). The pulse handler reads the DPRX capability registers, which
      are outside of the allowed range.
    - Switching of the LTTPR transparent/non-transparent mode may reset the
      LTTPRs on the link, thus aborting any ongoing link training. The pulse
      handler does set the LTTPR mode, thus it could unexpectedly abort the
      ongoing link training.
    
    Block/unblock the HPD pulse handling for the duration of the link
    training to prevent the above DPCD register accesses / LTTPR mode
    change.
    
    Apart from the above scenarios, there are other ways a non-link training
    DPCD register could be accessed during link training: via the DRM AUX
    device node, or via DPCD register probing (as performed by
    drm_dp_dpcd_probe()). These will be addressed by a follow-up change.
    
    v2: Rebase on the intel_hpd_suspend/resume -> intel_hpd_block/unblock()
        rename change.
    
    Reviewed-by: Jani Nikula <[email protected]>
    Signed-off-by: Imre Deak <[email protected]>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/[email protected]

It blocks the HPD before the link training is done, and then the HPD
bursts lead to another race issue and result in the stuck.

The provided patch clears the HPDs happen during the link training, it
should fix the issue if the assumption above is correct.

Please give it a try, thanks.
https://people.canonical.com/~acelan/bugs/lp2141225

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2141225

Title:
  Kernel panic when connecting USB-C Dell monitors on Ubuntu kernel
  6.17.0-14-generic

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-hwe-6.17/+bug/2141225/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to