*** This bug is a duplicate of bug 2150605 ***
https://bugs.launchpad.net/bugs/2150605
Public bug reported:
(AI disclosure: to help ensure I didn't miss anything that might be
required for debugging/triaging, I had Claude help me gather up this
information and collate it into this report.)
## Summary
On a Dell Pro Max 14 Premium (MA14250, Arrow Lake-P, `8086:7d51`,
display version 14.00 D0), the internal eDP panel fails to come back
after every `s2idle` resume. The kernel and userspace resume correctly —
services keep logging, the machine is reachable — but the panel stays
black. `i915` fails to bring the C10 PHY out of idle, the DDI buffer
never goes active, and the subsequent atomic commit times out with a C10
PLL state mismatch. GNOME retries the modeset indefinitely without
recovering.
Occurs on 3 of 3 recent suspend/resume cycles. Twice the display
eventually recovered after repeated compositor retries; the third time
it did not, and the machine had to be power-cycled, losing the session.
## Impact
Loss of the running session on resume. On the affected image there is
**no available workaround** — see "Why no workaround is possible" below.
This is the main reason for filing against Ubuntu rather than only
upstream.
## Hardware / software
| | |
|---|---|
| Machine | Dell Inc. Dell Pro Max 14 Premium MA14250 |
| BIOS | 1.9.0, 2026-03-31 (latest; `fwupdmgr get-upgrades` reports no updates
available) |
| GPU | `00:02.0` Intel Arrow Lake-P [Arc Pro 130T/140T] `[8086:7d51]` (rev 03)
|
| Driver | `i915` (module `xe` is present but not bound) |
| Display IP | `[drm] Found meteorlake (device ID 7d51) integrated display
version 14.00 stepping D0` |
| Panel | BOE, model 3429, eDP-1, 1920x1200, 2 lanes, C10 PHY (`use_c10: yes`) |
| DMC | `i915/mtl_dmc.bin` v2.23 |
| GuC / HuC | `i915/mtl_guc_70.bin` 70.53.0 / `i915/mtl_huc_gsc.bin` 8.5.4 |
| OS | Ubuntu 26.04 LTS |
| Kernel | 7.0.0-28-generic (`pc-kernel` snap rev 3672, 7.0.0-28.28) |
| Model | `ubuntu-classic-2604-amd64`, grade `signed`, Secure Boot enabled,
TPM-sealed FDE |
| gadget / snapd | `pc` 26.04-1 rev 220 / `snapd` 2.76 |
| Sleep states | `/sys/power/state` = `freeze mem`; `/sys/power/mem_sleep` =
`[s2idle]` (no S3) |
## Steps to reproduce
1. Boot to the GNOME session on the internal panel only (no external displays;
all DP/HDMI connectors report `disconnected`).
2. Close the lid, or otherwise trigger `systemd-logind` suspend. The system
enters `s2idle`.
3. Wait — reproduced after ~3 h, ~1.5 h and ~25 min of sleep. Does not
reproduce every time unfortunately.
4. Open the lid.
**Expected:** panel lights up, session resumes.
**Actual:** panel lights up but stays black. The kernel has resumed
(`PM: suspend exit`) and userspace keeps running — network daemons
continue to log throughout — but no image is ever presented.
Switching VT (`Ctrl+Alt+F3` / `Ctrl+Alt+F2`) does not restore the panel.
Only a forced power-off recovers the machine.
## Kernel log
Resume at `11:43:25`, forced power-off at `11:43:53`. Trimmed (audit lines and
the
`pll[0..19]` register dumps removed):
```
11:43:25.111008 kernel: PM: suspend exit
11:43:25.576568 kernel: i915 0000:00:02.0: [drm] *ERROR* Failed to bring PHY A
to idle.
11:43:25.583664 kernel: i915 0000:00:02.0: [drm] *ERROR* PHY A Read 0c70 failed
after 3 retries.
11:43:25.592564 kernel: i915 0000:00:02.0: [drm] *ERROR* PHY A Write 0c70
failed after 3 retries.
11:43:25.813645 kernel: i915 0000:00:02.0: [drm] *ERROR* Timeout waiting for
DDI BUF A to get active
11:43:26.728404 kernel: i915 0000:00:02.0: [drm] *ERROR* Timed out waiting for
DP idle patterns
11:43:37.143678 kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A]
flip_done timed out
11:43:37.359262 kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A]
mismatch in pixel_rate (expected 162240, found 36919)
11:43:37.359896 kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A]
mismatch in dpll_hw_state
11:43:37.360193 kernel: i915 0000:00:02.0: [drm] *ERROR* expected:
11:43:37.360448 kernel: i915 0000:00:02.0: [drm] *ERROR* cx0pll_hw_state:
lane_count: 2, ssc_enabled: no, use_c10: yes, tbt_mode: no
11:43:37.361038 kernel: i915 0000:00:02.0: [drm] *ERROR* c10pll_hw_state:
clock: 270000, fracen: yes,
11:43:37.361932 kernel: i915 0000:00:02.0: [drm] *ERROR* quot: 40960, rem: 0,
den: 1,
11:43:37.362713 kernel: i915 0000:00:02.0: [drm] *ERROR* multiplier: 140,
tx_clk_div: 1.
11:43:37.364644 kernel: i915 0000:00:02.0: [drm] *ERROR* tx: 0x10, cmn: 0x21
11:43:37.369964 kernel: i915 0000:00:02.0: [drm] *ERROR* found:
11:43:37.370411 kernel: i915 0000:00:02.0: [drm] *ERROR* cx0pll_hw_state:
lane_count: 2, ssc_enabled: no, use_c10: yes, tbt_mode: no
11:43:37.371636 kernel: i915 0000:00:02.0: [drm] *ERROR* c10pll_hw_state:
clock: 61440, fracen: no,
11:43:37.373327 kernel: i915 0000:00:02.0: [drm] *ERROR* multiplier: 16,
tx_clk_div: 0.
11:43:37.374056 kernel: i915 0000:00:02.0: [drm] *ERROR* tx: 0x0, cmn: 0x0
11:43:37.379640 kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A]
mismatch in hw.pipe_mode.crtc_clock (expected 162240, found 36919)
11:43:37.380884 kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A]
mismatch in hw.adjusted_mode.crtc_clock (expected 162240, found 36919)
11:43:37.382169 kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A]
mismatch in port_clock (expected 270000, found 61440)
11:43:37.383403 kernel: i915 0000:00:02.0: [drm] pipe state doesn't match!
11:43:37.383686 kernel: WARNING:
drivers/gpu/drm/i915/display/intel_modeset_verify.c:225 at
verify_crtc_state+0x349/0x5c0 [i915], CPU#8: KMS thread/6319
11:43:37.384919 kernel: RIP: 0010:verify_crtc_state+0x34f/0x5c0 [i915]
11:43:37.385424 kernel: intel_modeset_verify_crtc+0x4f/0xb0 [i915]
11:43:37.385464 kernel: intel_atomic_commit_tail+0x8a3/0xc50 [i915]
11:43:37.385500 kernel: intel_atomic_commit+0x28e/0x2e0 [i915]
11:43:37.385526 kernel: drm_atomic_commit+0xad/0xf0
11:43:37.385601 kernel: drm_mode_atomic_ioctl+0x7d1/0x910
11:43:37.385651 kernel: drm_ioctl_kernel+0xb5/0x110
11:43:37.385690 kernel: drm_ioctl+0x309/0x5f0
11:43:37.595744 kernel: i915 0000:00:02.0: [drm] DPLL 0: pll hw state mismatch
11:43:37.595767 kernel: WARNING:
drivers/gpu/drm/i915/display/intel_dpll_mgr.c:4945 at
verify_single_dpll_state+0x2a6/0x6b0 [i915], CPU#9: KMS thread/6319
11:43:37.596156 kernel: RIP: 0010:verify_single_dpll_state+0x2b3/0x6b0 [i915]
11:43:37.596531 kernel: intel_dpll_state_verify+0x63/0x260 [i915]
11:43:37.596866 kernel: intel_modeset_verify_crtc+0x5a/0xb0 [i915]
11:43:37.597659 kernel: intel_atomic_commit_tail+0x8a3/0xc50 [i915]
11:43:50.455704 kernel: i915 0000:00:02.0: [drm] *ERROR* flip_done timed out
11:43:50.456480 kernel: i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A]
commit wait timed out
<log ends — forced power-off>
```
The signature is identical on the two earlier resumes (`Aug 05 09:42:58`
and `Aug 05 16:44:45`), both starting with `Failed to bring PHY A to
idle.` within ~0.5 s of `PM: suspend exit`.
## Analysis
The C10 PHY register access fails first (`PHY A Read/Write 0c70 failed
after 3 retries`), before any PLL programming. Everything downstream
follows from that: the DDI buffer never activates, the PLL is left at
its power-on values, and `verify_crtc_state()` correctly reports the
mismatch:
- expected `port_clock 270000`, `multiplier 140`, `tx_clk_div 1`, `fracen yes`
(HBR2, 2 lanes)
- found `port_clock 61440`, `multiplier 16`, `tx_clk_div 0`, `fracen no`, `tx:
0x0, cmn: 0x0`
`tx: 0x0, cmn: 0x0` in the raw hardware state suggests the PHY was not
powered up or not released from reset when the resume-time modeset ran,
rather than the PLL being programmed with wrong values.
The `WARNING` splats are the verification code doing its job — the
underlying failure is the PHY not coming out of idle. Recovery never
happens because each subsequent atomic commit hits the same dead PHY.
## Why no workaround is possible on this image
Normally one would test `i915.enable_psr=0`, `i915.enable_dc=0`, or move
the device to the `xe` driver via `i915.force_probe=!7d51
xe.force_probe=7d51`. None of these are reachable here:
1. `i915` is loaded from the initramfs (module load at `11:44:20.26`,
switch-root at `11:44:24.31`). The initramfs ships inside the `pc-kernel` snap,
so a `/etc/modprobe.d/` file on the rootfs is read too late to affect module
parameters.
2. `/sys/module/i915/parameters/enable_psr` is mode `-r--------`, so it cannot
be changed at runtime.
3. The supported cmdline route is rejected, because the gadget allow-list
contains only `quiet` and `splash`:
```
$ sudo snap set system system.kernel.cmdline-append="i915.enable_psr=0"
error: cannot perform the following tasks:
- Run configure hook of "core" snap (run hook "configure":
"i915.enable_psr=0" is not allowed in the kernel command line by the gadget)
```
```
$ cat /snap/pc/current/meta/gadget.yaml
kernel-cmdline:
append:
- quiet
- splash
```
4. `system.kernel.dangerous-cmdline-append` requires model grade `dangerous`;
this model is grade `signed`.
5. Editing the command line at the bootloader is not viable either: Secure Boot
is enabled, the kernel is a UKI (`kernel.efi`), and snapd seals the command
line into the TPM (`current_kernel_command_lines` in `/var/lib/snapd/modeenv`).
6. There is no alternative sleep state to fall back to: only `s2idle` is
supported (`/sys/power/mem_sleep` = `[s2idle]`, ACPI reports `S0 S4 S5`), and
hibernation is blocked by kernel lockdown under Secure Boot.
The only mitigation left to the user is to stop suspending altogether
(`HandleLidSwitch=lock` plus disabling GNOME's idle suspend), which means a
laptop that stays powered on in a bag.
This combination — a display regression whose standard workarounds are
all module parameters, on a signed image that permits no module
parameters — is worth considering independently of the driver fix.
Either widening the gadget allow-list for `i915.*` / `xe.*`, or
providing a supported way to set debug module parameters on
grade-`signed` classic systems, would let affected users self-mitigate
while a fix lands.
## Requested
1. Fix or backport the C10 PHY resume path for Arrow Lake-P eDP in the 26.04
kernel.
2. Advice on whether moving this device to the `xe` driver is expected to help,
and if so, a supported way to do it on a grade-`signed` classic image.
ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: linux-image-7.0.0-28-generic (not installed)
ProcVersionSignature: Ubuntu 7.0.0-28.28-generic 7.0.12
Uname: Linux 7.0.0-28-generic x86_64
ApportVersion: 2.34.1-0ubuntu0.1
Architecture: amd64
AudioDevicesInUse:
USER PID ACCESS COMMAND
/dev/snd/controlC0: dan 5767 F.... wireplumber
/dev/snd/seq: dan 5743 F.... pipewire
CasperMD5CheckMismatches: ./EFI/boot/bootx64.efi ./EFI/boot/grubx64.efi
./EFI/boot/mmx64.efi
CasperMD5CheckResult: fail
CurrentDesktop: ubuntu:GNOME
Date: Sat Aug 8 12:13:45 2026
MachineType: Dell Inc. Dell Pro Max 14 Premium MA14250
ProcEnviron:
LANG=en_US.UTF-8
PATH=(custom, no user)
SHELL=/bin/zsh
TERM=xterm-ghostty
XDG_RUNTIME_DIR=<set>
ProcFB: 0 i915drmfb
ProcKernelCmdLine: snapd_recovery_mode=run console=ttyS0,115200n8 console=tty1
panic=-1 quiet splash snapd.xkb="us,pc105,,"
PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No
PulseAudio daemon running, or not running as session daemon.
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 03/31/2026
dmi.bios.release: 1.9
dmi.bios.vendor: Dell Inc.
dmi.bios.version: 1.9.0
dmi.board.name: 06XRHN
dmi.board.vendor: Dell Inc.
dmi.board.version: A02
dmi.chassis.type: 10
dmi.chassis.vendor: Dell Inc.
dmi.ec.firmware.release: 1.8
dmi.modalias:
dmi:bvnDellInc.:bvr1.9.0:bd03/31/2026:br1.9:efr1.8:svnDellInc.:pnDellProMax14PremiumMA14250:pvr:rvnDellInc.:rn06XRHN:rvrA02:cvnDellInc.:ct10:cvr:sku0D32:pfaDellProMaxLaptops:
dmi.product.family: Dell Pro Max Laptops
dmi.product.name: Dell Pro Max 14 Premium MA14250
dmi.product.sku: 0D32
dmi.sys.vendor: Dell Inc.
** Affects: linux (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-bug resolute wayland-session
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2163096
Title:
i915: eDP panel fails to re-train after s2idle resume on Arrow Lake-P
(C10 PHY), black screen requires hard power-off
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2163096/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs