Same failure signature on Meteor Lake-P (the existing reports are mostly Arrow 
Lake).
Adding a clean A/B between two Ubuntu HWE kernels on identical hardware and 
cmdline.

Hardware

- Lenovo ThinkPad P1 Gen 7, machine type 21KV001RMX
- BIOS N48ET34W (1.21), 2026-05-11
- iGPU: 00:02.0 Intel Meteor Lake-P [Intel Arc Graphics] [8086:7d55] rev 08, 
driver i915
- dGPU: 01:00.0 NVIDIA AD107GLM [RTX 1000 Ada Generation Laptop GPU] 
[10de:28b9], nvidia 580.173.02 (DKMS)
- Panel: eDP-1, 2560x1600, port_clock 810000 (HBR3, lane_count: 4, use_c10: yes)
- Firmware: DMC i915/mtl_dmc.bin v2.21, GuC 70.36.0 (kernel recommends 
70.53.0), HuC 8.5.4
- ACPI advertises S0 S4 S5 — s2idle only, no S3
- Ubuntu 24.04.4 LTS, X11 session (GNOME), iGPU runtime PM at default 
control=auto

Kernels

  kernel   package   result
  7.0.0-28-generic (base 7.0.12)   7.0.0-28.28~24.04.1   BAD — 41–54 s black 
screen on every resume
  6.17.0-40-generic   6.17.0-40.40~24.04.1   GOOD — resume ~2.5 s, zero i915 
errors

Same cmdline, same dock, same session type. Only the kernel changed.

Symptom

Every resume from s2idle: backlight on, screen black, machine unusable for 
~40–55 s, then
the desktop appears normally. No hard failure — purely a stall.

Failure sequence (7.0.0-28)

Root cause is visible at the very top: the C10 PHY message bus is dead, so the 
PLL is never
programmed, and every subsequent atomic commit waits out its full 10 s timeout.

    i915 0000:00:02.0: [drm] *ERROR* Failed to bring PHY A to idle.
    i915 0000:00:02.0: [drm] *ERROR* PHY A Read 0c70 failed after 3 retries.
    i915 0000:00:02.0: [drm] *ERROR* PHY A Write 0c70 failed after 3 retries.
    i915 0000:00:02.0: [drm] *ERROR* Timeout waiting for DDI BUF A to get active
    i915 0000:00:02.0: [drm] *ERROR* Timed out waiting for DP idle patterns
    i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] flip_done timed out
    i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] mismatch in pixel_rate 
(expected 282699, found 21444)
    i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] mismatch in dpll_hw_state
    i915 0000:00:02.0: [drm] *ERROR* expected:
    i915 0000:00:02.0: [drm] *ERROR* cx0pll_hw_state: lane_count: 4, 
ssc_enabled: no, use_c10: yes, tbt_mode: no
    i915 0000:00:02.0: [drm] *ERROR* c10pll_hw_state: clock: 810000, fracen: 
yes,
    i915 0000:00:02.0: [drm] *ERROR* found:
    i915 0000:00:02.0: [drm] *ERROR* c10pll_hw_state: clock: 61440, fracen: no,
    i915 0000:00:02.0: [drm] *ERROR* c10pll_rawhw_state:
    i915 0000:00:02.0: [drm] *ERROR* tx: 0x0, cmn: 0x0
    i915 0000:00:02.0: [drm] *ERROR* pll[0] = 0x0, pll[1] = 0x0, pll[2] = 0x0, 
pll[3] = 0x0
       ... all 20 pll[] registers read back 0x0 ...
    i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] mismatch in port_clock 
(expected 810000, found 61440)
    i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] mismatch in 
min_voltage_level (expected 1, found 0)
    ------------[ cut here ]------------
    i915 0000:00:02.0: [drm] pipe state doesn't match!
    WARNING: drivers/gpu/drm/i915/display/intel_modeset_verify.c:225 at 
verify_crtc_state+0x51b/0x6c0 [i915], CPU#17: Xorg/6093

Same 61440 vs 810000 parked-PLL value as the Arrow Lake reports in this
bug.

Then four consecutive 10 s timeouts, which is where the wall-clock goes:

    09:04:08  [CRTC:150:pipe A] flip_done timed out
    09:04:18  flip_done timed out / [CRTC:150:pipe A] commit wait timed out
    09:04:29  [CRTC:150:pipe A] flip_done timed out
    09:04:29  [CRTC:150:pipe A] DSB 1 timed out waiting for idle (current 
head=0x12fc000, head=0x0, tail=0x1080)
    09:04:39  flip_done timed out / [CRTC:150:pipe A] commit wait timed out
    09:04:49  flip_done timed out / [CONNECTOR:507:eDP-1] commit wait timed out
    09:04:50  [drm] PHY A failed to change powerdown state

Caller is the compositor's DPMS-on after resume:

    Call Trace:
     intel_modeset_verify_crtc+0x70/0xb0 [i915]
     intel_atomic_commit_tail+0x8bb/0xc80 [i915]
     intel_atomic_commit+0x2c0/0x310 [i915]
     drm_atomic_commit+0xaf/0xf0
     drm_atomic_connector_commit_dpms+0xfc/0x110
     drm_mode_obj_set_property_ioctl+0x1c3/0x450
     drm_connector_property_set_ioctl+0x3a/0x60
     drm_ioctl_kernel+0xb7/0x110

An earlier boot on the same kernel produced the identical chain from
intel_dbuf_mbus_post_ddb_update → intel_crtc_wait_for_next_vblank →
drm_crtc_wait_one_vblank (vblank wait timed out on crtc 0), so the entry point
varies but the parked-PLL cause is the same.

Good kernel (6.17.0-40), same machine, same cmdline

    PM: suspend entry (s2idle)
    Restarting tasks: Starting
    Restarting tasks: Done
    PM: suspend exit

- suspend entry → suspend exit = 19 s wall, of which 
/sys/power/suspend_stats/last_hw_sleep
  = 16 551 862 µs actually asleep ⇒ kernel-side resume ≈ 2.5 s
- Zero i915 errors in the whole boot. No PHY A, no DDI BUF, no flip_done.
- Reproduced twice, once with the nvidia modules absent and once with them 
loaded — identical.

Ruled out on this machine

- i915.enable_psr=0 i915.enable_panel_replay=0 — verified applied via 
/proc/cmdline,
  no effect, identical trace. (Consistent with other reports here.)
- nvidia: 6.17 resumes fast both with nvidia 580.173.02 unloaded and loaded. No 
nvidia
  frame appears anywhere in the failing stack.
- PM core / s2idle itself: /sys/power/suspend_stats shows success incrementing 
and all
  failed_* counters at 0; firmware sleep counters populate normally. The stall 
is entirely
  in the display commit path after PM: suspend exit.

Notes

- Does not require a multi-hour dwell here: two failures on the same boot were 
29 minutes apart,
  so the dwell between them was under half an hour. Every resume on 7.0.0-28 
failed.
- Ubuntu currently offers nothing newer on this line: apt policy 
linux-image-generic-hwe-24.04
  gives candidate = installed = 7.0.0-28.28~24.04.1, so 24.04 HWE users have no 
upgrade path
  out of this. Working around it by pinning 6.17.0-40-generic.

Attaching the full scrubbed kernel log for both the bad 7.0.0-28 boot
and the good 6.17.0-40 boot.

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

Title:
  `i915 Arrow Lake-S: PHY A / C10 DPLL state mismatch on resume from
  long s2idle dwell — slow wake (5-10s) with retry storm`

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


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

Reply via email to