Bug 2492079 - drm/i915: Internal eDP panel (DDI A / pipe A) fails to resume after s2idle suspend >1h on Arrow Lake-P (ThinkPad P1 Gen 8)
Summary: drm/i915: Internal eDP panel (DDI A / pipe A) fails to resume after s2idle su...
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 44
Hardware: x86_64
OS: Linux
unspecified
urgent
Target Milestone: ---
Assignee: Justin M. Forbes
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 2184978
TreeView+ depends on / blocked
 
Reported: 2026-06-24 07:04 UTC by pstourac
Modified: 2026-06-30 07:06 UTC (History)
16 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

Description pstourac 2026-06-24 07:04:08 UTC
Environment

  ┌───────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
  │       Field       │                                                                         Value                                                                          │
  ├───────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ Laptop            │ Lenovo ThinkPad P1 Gen 8 (BIOS: N4EET23W 1.09)                                                                                                         │
  ├───────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ CPU / GPU         │ Intel Core Ultra 7 265H — Arrow Lake-P / Arc Pro 130T [8086:7d51] rev 03                                                                               │
  ├───────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ Internal display  │ eDP — Chimei Innolux CMN 0x1660, 1920×1200, via DDI A / C10 PHY                                                                                        │
  ├───────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ External displays │ 2× DisplayPort monitors via Lenovo ThinkPad Thunderbolt 4 Dock (vendor=0x108, device=0x2031), connected through Thunderbolt 4 [8086:0b26 Goshen Ridge] │
  ├───────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ Kernel            │ 7.1.1-300.fc44.x86_64 (Fedora 44, built 2026-06-22)                                                                                                    │
  ├───────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ i915 GuC          │ i915/mtl_guc_70.bin version 70.53.0                                                                                                                    │
  ├───────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ Suspend mode      │ s2idle — only supported mode (ACPI: PM: (supports S0 S4 S5), no S3)                                                                                    │
  └───────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

  ---
  Reproduction

  1. Boot with Lenovo ThinkPad Thunderbolt 4 Dock connected (external monitors active via DP through dock).
  2. Work normally for several hours (~5h in this case).
  3. Suspend the system (lid close / systemctl suspend) for more than ~1 hour. In this case: ~14 hours (18:16 → 08:15 next day).
  4. Wake the system.

  Result: The internal eDP display does not come back. The C10 PLL for DDI A is in hardware reset state (all registers = 0x00). The display subsystem enters a stuck state that cannot recover without reboot. Disconnecting and reconnecting the Thunderbolt dock does not help and causes the external displays to also
  fail.

  ---
  Suspend / Resume Timeline

  2026-06-23 08:41:56  Boot
  2026-06-23 08:41:56  Low-power S0 idle used by default for system suspend
  2026-06-23 08:42     Thunderbolt dock connected (vendor=0x108, device=0x2031)

  2026-06-23 13:45:44  [FIRST OCCURRENCE — pre-suspend PHY instability]
                       i915: *ERROR* Failed to bring PHY A to idle.
                       i915: *ERROR* PHY A Read 0c70 failed after 3 retries.
                       i915: *ERROR* PHY A Write 0c70 failed after 3 retries.
                       (display recovered on its own at this point)

  2026-06-23 18:16:37  PM: suspend entry (s2idle)

  2026-06-24 08:15:30  PM: suspend exit              [~14h suspend duration]
  2026-06-24 08:15:30  i915: GT0/GT1 GuC firmware 70.53.0 reloaded — OK
  2026-06-24 08:15:30  PM: resume devices took 0.321 seconds

  2026-06-24 08:15:31  [FAILURE — internal display does not come back]
  2026-06-24 08:15:43  PHY A / pipe A errors (see log below)

  2026-06-24 08:16:05  thunderbolt 1-1: device disconnected  [manual dock unplug]
  2026-06-24 08:16:09  i915: *ERROR* flip_done timed out
  2026-06-24 08:16:09  i915: *ERROR* [CRTC:151:pipe A] commit wait timed out
  2026-06-24 08:16:17  thunderbolt 1-1: new device found, vendor=0x108 device=0x2031
  2026-06-24 08:16:17  thunderbolt 1-1: Lenovo ThinkPad Thunderbolt 4 Dock  [dock reconnected]
  2026-06-24 08:16:20  i915: *ERROR* [CRTC:151:pipe A] flip_done timed out
  2026-06-24 08:16:30  i915: *ERROR* [CRTC:151:pipe A] commit wait timed out
                       [external displays also fail to restore after dock reconnect]

  ---
  Kernel Log — Post-Resume Failure (2026-06-24 08:15:31–08:15:43)

  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:151:pipe A] flip_done timed out
  i915 0000:00:02.0: [drm] *ERROR* [CRTC:151:pipe A] mismatch in pixel_rate (expected 154260, found 39003)
  i915 0000:00:02.0: [drm] *ERROR* [CRTC:151: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: 2, ssc_enabled: no, use_c10: yes, tbt_mode: no
  i915 0000:00:02.0: [drm] *ERROR* c10pll_hw_state: fracen: yes, quot: 8192, rem: 0, den: 1, multiplier: 253, tx_clk_div: 2.
  i915 0000:00:02.0: [drm] *ERROR* c10pll_rawhw_state:
  i915 0000:00:02.0: [drm] *ERROR* tx: 0x10, cmn: 0x21
  i915 0000:00:02.0: [drm] *ERROR* pll[0] = 0x34, pll[1] = 0x0, pll[2] = 0xda, pll[3] = 0x1
  i915 0000:00:02.0: [drm] *ERROR* pll[4] = 0x0, pll[5] = 0x0, pll[6] = 0x0, pll[7] = 0x0
  i915 0000:00:02.0: [drm] *ERROR* pll[8] = 0x0, pll[9] = 0x1, pll[10] = 0x0, pll[11] = 0x0
  i915 0000:00:02.0: [drm] *ERROR* pll[12] = 0x20, pll[13] = 0x0, pll[14] = 0x0, pll[15] = 0x2
  i915 0000:00:02.0: [drm] *ERROR* pll[16] = 0x85, pll[17] = 0x8f, pll[18] = 0xe6, pll[19] = 0x23

  i915 0000:00:02.0: [drm] *ERROR* found:
  i915 0000:00:02.0: [drm] *ERROR* cx0pll_hw_state: lane_count: 2, ssc_enabled: no, use_c10: yes, tbt_mode: no
  i915 0000:00:02.0: [drm] *ERROR* c10pll_hw_state: fracen: no, multiplier: 16, tx_clk_div: 0.
  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..19] = 0x00  (all zero — hardware reset/power-down state)

  i915 0000:00:02.0: [drm] *ERROR* [CRTC:151:pipe A] mismatch in hw.pipe_mode.crtc_clock (expected 154260, found 39003)
  i915 0000:00:02.0: [drm] *ERROR* [CRTC:151:pipe A] mismatch in hw.adjusted_mode.crtc_clock (expected 154260, found 39003)
  i915 0000:00:02.0: [drm] *ERROR* [CRTC:151:pipe A] mismatch in port_clock (expected 243000, found 61440)
  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+0x2b3/0x4e0 [i915]
  RIP: 0010:verify_crtc_state+0x2b9/0x4e0 [i915]

  Call Trace:
    intel_modeset_verify_crtc+0x44/0x70 [i915]
    intel_atomic_commit_tail+0xb9d/0xf00 [i915]
    intel_atomic_commit+0x2ab/0x2f0 [i915]
    drm_atomic_commit+0xb1/0xe0
    drm_mode_atomic_ioctl+0x...

  ---
  Root Cause Analysis

  The C10 PHY (CX0 combo PHY) for DDI A (internal eDP) is in hardware reset state after resume — all 20 PLL registers read as 0x00. The driver fails to bring the PHY back to an operational state, resulting in the DPLL state mismatch:

  - Expected pixel clock: 154,260 kHz (fracen=yes, multiplier=253) — correct for 1920×1200 eDP
  - Found: 39,003 kHz (fracen=no, multiplier=16) — corresponds to PHY power-down / reset state

  The driver issued PHY A Read/Write 0c70 commands (likely the PHY lane control register) which timed out after 3 retries, indicating the PHY is unresponsive. The same error pattern also appeared ~5 hours before suspend (13:45), suggesting the PHY becomes unstable after extended idle periods — this is consistent with
  the known CX0 "PHY left idle for more than 1 hour" issue.

  ---
  Patches Already Applied (in kernel 7.1.1-300.fc44)

  The following related patches are confirmed present (backported via 7.0.10):

  - drm/i915/cx0: Clear response ready & error bit — Suraj Kandpal (patchwork series 159540, Jan 2026)
  - drm/i915/cx0: Rename intel_clear_response_ready flag — Suraj Kandpal
  - drm/i915/dp_tunnel: Don't update tunnel state during system resume — Imre Deak

  Despite these patches, the bug persists.

  ---
  Likely Missing Fix

  On 2026-06-18, Jakub Bystron reported an identical regression on kernel 7.1.0:
  "[REGRESSION] drm/i915: ThinkPad P1 Gen 7 fails to resume internal eDP panel after longer lid suspend"

  Jani Nikula (i915 display maintainer) responded on 2026-06-22, identifying the fix as a patch series by Imre Deak submitted to intel-gfx.org on 2026-06-12:

  Message-ID: 20260612172617.3427027-1-imre.deak
  From: Imre Deak <imre.deak>
  To: intel-gfx.org
  Date: Fri, 12 Jun 2026

  URL: https://lore.kernel.org/r/20260612172617.3427027-1-imre.deak@intel.com

  This patch series is currently on drm-tip only. It was not included in Linux 7.1.0 (released 2026-06-15, too early) nor in Linux 7.1.1 (released 2026-06-19, ChangeLog contains no drm/i915 entries). It is not present in Fedora kernel 7.1.1-300.fc44 (built 2026-06-22).

  ---
  Request

  Please backport Imre Deak's patch series (20260612172617.3427027-1-imre.deak) to the Fedora kernel package, or include it in the next kernel update once it lands in a 7.1.y stable release.

  ---
  Bugzilla fields:

  ┌────────────┬──────────────────────────────────────────┐
  │   Field    │                  Value                   │
  ├────────────┼──────────────────────────────────────────┤
  │ Product    │ Fedora                                   │
  ├────────────┼──────────────────────────────────────────┤
  │ Component  │ kernel                                   │
  ├────────────┼──────────────────────────────────────────┤
  │ Version    │ 44                                       │
  ├────────────┼──────────────────────────────────────────┤
  │ Severity   │ high                                     │
  ├────────────┼──────────────────────────────────────────┤
  │ Hardware   │ x86_64                                   │
  ├────────────┼──────────────────────────────────────────┤
  │ OS         │ Linux                                    │
  ├────────────┼──────────────────────────────────────────┤
  │ Whiteboard │ drm/i915 CX0 PHY eDP Arrow Lake-P s2idle │
  └────────────┴──────────────────────────────────────────┘


Reproducible: Always

Comment 1 pstourac 2026-06-30 07:06:13 UTC
Looks like kernel-7.1.2-200 has applied patches, it works.


Note You need to log in before you can comment on or make changes to this bug.