* [BUG] i915/ADL-P eDP: link training exits with adj_req=0x11 unresolved, causing modeset loop on CMN14E7 (Dell Latitude 5430)
@ 2026-08-16 19:24 Novej Panjawani
2026-08-17 12:08 ` Jani Nikula
0 siblings, 1 reply; 2+ messages in thread
From: Novej Panjawani @ 2026-08-16 19:24 UTC (permalink / raw)
To: intel-gfx
## Summary
After boot and after any display mode change (HDMI connect/disconnect),
the internal eDP display on this Dell Latitude 5430 (ADL-P, Intel Iris
Xe 46A8) enters an **infinite modeset loop** that repeats every ~2
seconds: backlight off → pipe disabled → link retrain → pipe enabled →
backlight on → repeat. This produces continuous visible black-screen
flashing. The loop self-resolves after ~5–15 minutes (thermal
stabilization of the eDP connection), and is immediately re-triggered by
any subsequent mode change.
External HDMI display is not affected.
## Hardware / Environment
| | |
|---|---|
| **System** | Dell Latitude 5430 |
| **GPU** | Intel Alder Lake-P, Iris Xe Graphics — PCI `0000:00:02.0`,
Device ID `0x46A8` |
| **Panel** | Chimei Innolux CMN14E7 — 14" 1920×1080, eDP 1.4, EDID 1.4 |
| **Kernel** | `6.18.40-1-cachyos-lts` (clang 22.1.8, LLD 22.1.8) |
| **i915** | 1.6.0 — GuC 70.49.4, DMC adlp_dmc.bin v2.20, HuC 7.9.3 |
| **BIOS** | Dell 1.36.0 (2025-12-23) — latest per fwupd |
## Root Cause
With `drm.debug=0x04`, the following loop is captured every ~2 seconds:
1. `intel_dp_start_link_train` uses **vswing 0/0/0/0, pre-emph 0/0/0/0**
at `LINK_BW_SET=0x0a` (HBR / 2.7 Gbps), 2 lanes
2. TPS1 and TPS2 complete — `"Channel EQ done. DP Training successful"`
3. Pipe A and backlight are enabled (PWM = 23718)
4. ~2 seconds later, link status check:
- Read 1: `align:0x80 sink:0x3 adj_req0_1:0x11` — aligned, but panel
requesting vswing level 1
- Read 2: `align:0x0 sink:0x1 adj_req0_1:0x11` — **alignment lost,
symbol lock lost**
5. Driver detects link loss → full modeset (backlight off, pipe disabled)
6. Repeat from step 1
**`adj_req0_1=0x11` (vswing level 1 requested for lanes 0/1) appears in
every DPCD read throughout the flicker window.** The driver exits
training while adj_req is non-zero and does not apply the requested
levels to the operational link. The panel cannot sustain HBR at level 0,
degrades within ~2 seconds, fires IRQ_HPD, the driver responds with a
full modeset, and the cycle repeats.
## Debug Log (one complete cycle)
Captured with `drm.debug=0x04`:
```
i915: [drm:intel_dp_start_link_train] Using LINK_BW_SET value 0a
i915: [drm:intel_dp_set_signal_levels] 8b/10b, lanes: 2, vswing levels:
0/0/0/0, pre-emphasis levels: 0/0/0/0
i915: [drm:intel_dp_link_train_phy] Clock recovery OK
i915: [drm:intel_dp_link_train_phy] Channel EQ done. DP Training successful
i915: [drm:intel_dp_link_train_phy] Link Training passed at link rate =
270000, lane count = 2
i915: enabling pipe A
i915: [drm:cnp_enable_backlight] set backlight PWM = 23718
-- ~2 seconds --
i915: [drm:intel_dp_dump_link_status] ln0_1:0x73 align:0x80 sink:0x3
adj_req0_1:0x11 <-- link ok, but adj_req non-zero
i915: [drm:intel_dp_dump_link_status] ln0_1:0x73 align:0x0 sink:0x1
adj_req0_1:0x11 <-- link lost
i915: [drm:cnp_disable_backlight] set backlight PWM = 0
i915: [drm:intel_disable_transcoder] disabling pipe A
i915: [drm:intel_hpd_irq_handler] Received HPD interrupt on PIN 4 - cnt: 10
i915: [drm:intel_dp_hpd_pulse] ignoring long hpd on eDP [ENCODER:262:DDI
A/PHY A]
-- repeat every ~2 seconds --
```
## Reproduction
1. Append `drm.debug=0x04` to kernel cmdline, reboot
2. `journalctl -k -f | grep -E
"link_train|dump_link|hpd|backlight|transcoder"`
3. Cycle appears within seconds of display init, repeats every ~2 seconds
4. After 5–15 min, cycle stops (thermal stabilization)
5. Retrigger: unplug external display → cycle immediately resumes
## Expected Behaviour
Either:
- **(a)** The TPS2 loop should continue iterating and updating
vswing/pre-emph until `adj_req` is zero before declaring training
successful; or
- **(b)** After training exits, the driver should apply the final
`adj_req` vswing values to the DDI buffer translation used for normal
operation
## Attempted Workarounds (all ineffective)
None of the following affect link training vswing behavior:
- `i915.enable_psr=0`, `i915.enable_panel_replay=0`
- `i915.enable_dc=0`, `i915.enable_sagv=0`, `i915.enable_fbc=0`,
`i915.enable_dsb=0`
- `i915.edp_vswing=2` — selects 400 mV DDI translation table but does
not force vswing level 1 in the training loop
- `i915.enable_rc6=0` — silently ignored ("unknown parameter"); GuC RC
remains active
- `xe.force_probe=46a8` — xe exhibits a separate fatal bug: continuous
GTT plane faults in stolen framebuffer memory (~300K–600K suppressed
callbacks per 5 seconds)
## Notes
- Issue self-resolves after thermal warmup, strongly suggesting the
physical link is borderline at HBR/level-0 — applying level 1 should
resolve it permanently
- BIOS 1.36.0 is the latest (confirmed via fwupd)
- External HDMI (pipe B) is unaffected throughout
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [BUG] i915/ADL-P eDP: link training exits with adj_req=0x11 unresolved, causing modeset loop on CMN14E7 (Dell Latitude 5430)
2026-08-16 19:24 [BUG] i915/ADL-P eDP: link training exits with adj_req=0x11 unresolved, causing modeset loop on CMN14E7 (Dell Latitude 5430) Novej Panjawani
@ 2026-08-17 12:08 ` Jani Nikula
0 siblings, 0 replies; 2+ messages in thread
From: Jani Nikula @ 2026-08-17 12:08 UTC (permalink / raw)
To: Novej Panjawani, intel-gfx
On Sun, 16 Aug 2026, Novej Panjawani <novej.panjawani@gmail.com> wrote:
> ## Summary
>
> After boot and after any display mode change (HDMI connect/disconnect),
> the internal eDP display on this Dell Latitude 5430 (ADL-P, Intel Iris
> Xe 46A8) enters an **infinite modeset loop** that repeats every ~2
> seconds: backlight off → pipe disabled → link retrain → pipe enabled →
> backlight on → repeat. This produces continuous visible black-screen
> flashing. The loop self-resolves after ~5–15 minutes (thermal
> stabilization of the eDP connection), and is immediately re-triggered by
> any subsequent mode change.
Please file a bug as described at [1].
BR,
Jani.
[1] https://drm.pages.freedesktop.org/intel-docs/how-to-file-i915-bugs.html
>
> External HDMI display is not affected.
>
> ## Hardware / Environment
>
> | | |
> |---|---|
> | **System** | Dell Latitude 5430 |
> | **GPU** | Intel Alder Lake-P, Iris Xe Graphics — PCI `0000:00:02.0`,
> Device ID `0x46A8` |
> | **Panel** | Chimei Innolux CMN14E7 — 14" 1920×1080, eDP 1.4, EDID 1.4 |
> | **Kernel** | `6.18.40-1-cachyos-lts` (clang 22.1.8, LLD 22.1.8) |
> | **i915** | 1.6.0 — GuC 70.49.4, DMC adlp_dmc.bin v2.20, HuC 7.9.3 |
> | **BIOS** | Dell 1.36.0 (2025-12-23) — latest per fwupd |
>
> ## Root Cause
>
> With `drm.debug=0x04`, the following loop is captured every ~2 seconds:
>
> 1. `intel_dp_start_link_train` uses **vswing 0/0/0/0, pre-emph 0/0/0/0**
> at `LINK_BW_SET=0x0a` (HBR / 2.7 Gbps), 2 lanes
> 2. TPS1 and TPS2 complete — `"Channel EQ done. DP Training successful"`
> 3. Pipe A and backlight are enabled (PWM = 23718)
> 4. ~2 seconds later, link status check:
> - Read 1: `align:0x80 sink:0x3 adj_req0_1:0x11` — aligned, but panel
> requesting vswing level 1
> - Read 2: `align:0x0 sink:0x1 adj_req0_1:0x11` — **alignment lost,
> symbol lock lost**
> 5. Driver detects link loss → full modeset (backlight off, pipe disabled)
> 6. Repeat from step 1
>
> **`adj_req0_1=0x11` (vswing level 1 requested for lanes 0/1) appears in
> every DPCD read throughout the flicker window.** The driver exits
> training while adj_req is non-zero and does not apply the requested
> levels to the operational link. The panel cannot sustain HBR at level 0,
> degrades within ~2 seconds, fires IRQ_HPD, the driver responds with a
> full modeset, and the cycle repeats.
>
> ## Debug Log (one complete cycle)
>
> Captured with `drm.debug=0x04`:
>
> ```
> i915: [drm:intel_dp_start_link_train] Using LINK_BW_SET value 0a
> i915: [drm:intel_dp_set_signal_levels] 8b/10b, lanes: 2, vswing levels:
> 0/0/0/0, pre-emphasis levels: 0/0/0/0
> i915: [drm:intel_dp_link_train_phy] Clock recovery OK
> i915: [drm:intel_dp_link_train_phy] Channel EQ done. DP Training successful
> i915: [drm:intel_dp_link_train_phy] Link Training passed at link rate =
> 270000, lane count = 2
> i915: enabling pipe A
> i915: [drm:cnp_enable_backlight] set backlight PWM = 23718
>
> -- ~2 seconds --
>
> i915: [drm:intel_dp_dump_link_status] ln0_1:0x73 align:0x80 sink:0x3
> adj_req0_1:0x11 <-- link ok, but adj_req non-zero
> i915: [drm:intel_dp_dump_link_status] ln0_1:0x73 align:0x0 sink:0x1
> adj_req0_1:0x11 <-- link lost
>
> i915: [drm:cnp_disable_backlight] set backlight PWM = 0
> i915: [drm:intel_disable_transcoder] disabling pipe A
> i915: [drm:intel_hpd_irq_handler] Received HPD interrupt on PIN 4 - cnt: 10
> i915: [drm:intel_dp_hpd_pulse] ignoring long hpd on eDP [ENCODER:262:DDI
> A/PHY A]
>
> -- repeat every ~2 seconds --
> ```
>
> ## Reproduction
>
> 1. Append `drm.debug=0x04` to kernel cmdline, reboot
> 2. `journalctl -k -f | grep -E
> "link_train|dump_link|hpd|backlight|transcoder"`
> 3. Cycle appears within seconds of display init, repeats every ~2 seconds
> 4. After 5–15 min, cycle stops (thermal stabilization)
> 5. Retrigger: unplug external display → cycle immediately resumes
>
> ## Expected Behaviour
>
> Either:
> - **(a)** The TPS2 loop should continue iterating and updating
> vswing/pre-emph until `adj_req` is zero before declaring training
> successful; or
> - **(b)** After training exits, the driver should apply the final
> `adj_req` vswing values to the DDI buffer translation used for normal
> operation
>
> ## Attempted Workarounds (all ineffective)
>
> None of the following affect link training vswing behavior:
> - `i915.enable_psr=0`, `i915.enable_panel_replay=0`
> - `i915.enable_dc=0`, `i915.enable_sagv=0`, `i915.enable_fbc=0`,
> `i915.enable_dsb=0`
> - `i915.edp_vswing=2` — selects 400 mV DDI translation table but does
> not force vswing level 1 in the training loop
> - `i915.enable_rc6=0` — silently ignored ("unknown parameter"); GuC RC
> remains active
> - `xe.force_probe=46a8` — xe exhibits a separate fatal bug: continuous
> GTT plane faults in stolen framebuffer memory (~300K–600K suppressed
> callbacks per 5 seconds)
>
> ## Notes
>
> - Issue self-resolves after thermal warmup, strongly suggesting the
> physical link is borderline at HBR/level-0 — applying level 1 should
> resolve it permanently
> - BIOS 1.36.0 is the latest (confirmed via fwupd)
> - External HDMI (pipe B) is unaffected throughout
>
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-08-17 12:09 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-16 19:24 [BUG] i915/ADL-P eDP: link training exits with adj_req=0x11 unresolved, causing modeset loop on CMN14E7 (Dell Latitude 5430) Novej Panjawani
2026-08-17 12:08 ` Jani Nikula
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.