CR-2026-06-19: P16g i915 PSR Kernel Parameter Persistence
Change Summary
| Field | Value |
|---|---|
CR ID |
CR-2026-06-19-p16g-i915-psr-persistence |
Author |
Evan Rosado |
Risk Level |
Low (kernel parameter change, fully reversible) |
Approval |
Self-approval |
Target Date |
2026-06-19 |
Systems Affected |
modestus-p16g (ThinkPad P16 Gen 2, Arrow Lake-S) |
Rollback Window |
Immediate — reboot with original parameters |
Related Incidents |
INC-2026-05-23-002 (P16g DPMS Wake Failure) |
Description
What
Add i915.enable_psr=0 to both systemd-boot entries on the ESP (/boot/efi/loader/entries/) and create /etc/kernel/cmdline so the parameter persists across kernel updates.
Why
The P16g laptop display (eDP-1) fails to initialize at the login screen after boot, lid close, or suspend. The internal panel stays black until an external monitor is connected, which triggers a hotplug modeset that forces the display pipe alive. This is the same i915 Panel Self Refresh (PSR) hang documented in INC-2026-05-23-002.
The fix (i915.enable_psr=0) was applied to /boot/loader/entries/arch.conf on 2026-05-23, but this was the wrong file. The P16g has a split boot layout:
-
ESP at
/boot/efi— systemd-boot reads entries from here -
XBOOTLDR at
/boot— where the kernel images live, but boot entries here are ignored
The parameter was applied to the XBOOTLDR copy, not the ESP copy. Every kernel update since then has generated fresh ESP entries without the parameter, silently re-introducing the regression.
Root Cause of Persistence Failure
| Location | Purpose | Has i915.enable_psr=0? |
|---|---|---|
|
XBOOTLDR — not read by systemd-boot for this layout |
Yes (applied 2026-05-23, ineffective) |
|
ESP — actually booted |
No |
|
Persistent source for |
Does not exist |
Without /etc/kernel/cmdline, kernel-install has no persistent source for kernel parameters. Each kernel update regenerates ESP entries from scratch, stripping any hand-edited parameters.
Impact
-
Without fix: Login screen invisible on internal panel after every boot, lid close, or suspend. Requires external monitor to trigger display. Full machine appears dead to user.
-
With fix: PSR disabled. Negligible power impact on AC (~5-10 min reduced battery life). Display wakes reliably from all states.