CR-2026-06-19: Rollback
Rollback Plan
Rollback removes i915.enable_psr=0 from all locations, restoring the kernel’s default PSR behavior. Use this only if disabling PSR causes display artifacts, GPU errors, or unexpected power consumption.
Removing i915.enable_psr=0 will re-enable PSR, which is known to hang the eDP-1 display pipe on kernel 7.0.x with Arrow Lake-S. Only roll back if a newer kernel has fixed the PSR regression, or if disabling PSR introduces a worse problem.
|
Step 1: Remove from ESP Boot Entries
sudo awk '/^options/' /boot/efi/loader/entries/arch.conf /boot/efi/loader/entries/arch-lts.conf
sudo sed -i 's/ i915.enable_psr=0//' /boot/efi/loader/entries/arch.conf /boot/efi/loader/entries/arch-lts.conf
sudo awk '/^options/' /boot/efi/loader/entries/arch.conf /boot/efi/loader/entries/arch-lts.conf
Step 2: Remove from XBOOTLDR Entry
sudo sed -i 's/ i915.enable_psr=0//' /boot/loader/entries/arch.conf
Step 3: Remove from Persistent Cmdline
Two options:
sudo sed -i 's/ i915.enable_psr=0//' /etc/kernel/cmdline
cat /etc/kernel/cmdline
sudo rm /etc/kernel/cmdline
ls -la /etc/kernel/cmdline 2>&1
Deleting /etc/kernel/cmdline means kernel-install will fall back to its default behavior for generating boot entry options. This may or may not preserve your other parameters (nvidia_drm.modeset=1, mem_sleep_default=s2idle, etc.). Option A is safer.
|
Step 4: Reboot
sudo reboot
Step 5: Verify PSR Re-enabled
# PSR parameter should be absent
grep 'i915.enable_psr' /proc/cmdline && echo "STILL PRESENT -- rollback incomplete" || echo "Removed -- PSR at kernel default"
# Check PSR status
sudo cat /sys/kernel/debug/dri/1/i915_edp_psr_status 2>/dev/null
Filesystem-Level Rollback (Nuclear Option)
If the parameter-level rollback (Steps 1-5) is insufficient or the system is unbootable, restore the pre-change btrfs snapshot taken in Phase 0 of the implementation.
# 1. Boot from LTS kernel (select "Arch Linux LTS" at systemd-boot menu)
# or boot from a live USB
# 2. Unlock and mount the btrfs volume
sudo cryptsetup luksOpen /dev/<device> cryptroot
sudo mount /dev/mapper/cryptroot /mnt
# 3. Replace current @ with the pre-change snapshot
sudo mv /mnt/@ /mnt/@broken-psr-fix
sudo btrfs subvolume snapshot /mnt/@snapshots/pre-psr-fix-2026-06-19 /mnt/@
# 4. Reboot into restored system
sudo umount /mnt
sudo reboot
This restores the entire root subvolume to its pre-change state, including /etc/kernel/cmdline and any other changes made since the snapshot. /home is on a separate subvolume (@home) and is unaffected.
|
After restoring, clean up:
# Remove the broken subvolume
sudo mount /dev/mapper/cryptroot /mnt
sudo btrfs subvolume delete /mnt/@broken-psr-fix
sudo umount /mnt
When to Re-enable PSR (Remove This Fix)
Test PSR on future kernels periodically:
# Quick DPMS cycle test -- if display wakes, PSR is fixed upstream
hyprctl dispatch dpms off && sleep 5 && hyprctl dispatch dpms on
If the display wakes reliably on a future kernel, remove i915.enable_psr=0 from /etc/kernel/cmdline and the boot entries per Steps 1-5 above.
Related
-
INC-2026-05-23-002: P16g DPMS Wake Failure — original incident and root cause analysis
-
INC-2026-05-23-001: P16g Power Button Shutdown — cascading incident from display failure