Resolve display flicker on the InfinityBook Pro 14 Gen6 by tuxedo

The guide by tuxedo tells you how to disable `PSR` which stands for panel-self-refresh.

But psr is a very useful feature to conserve.

Thanks to the reddit user 909876b4-cf8c I went down the rabbit hole to figure out what tuxedos custom solution actually does. They force psr version 1. link

I'm booting with i915.enable_psr=0

And after calling $ echo 0x3 > /sys/kernel/debug/dri/0/i915_edp_psr_debug

my display is still working fine and psr is enabled

cat /sys/kernel/debug/dri/0/i915_edp_psr_status 
Sink support: yes [0x03]
PSR mode: PSR1 enabled
Source PSR ctl: enabled [0x81f00ee6]
Source PSR status: IDLE [0x04010000]
Busy frontbuffer bits: 0x00000000

Optional: For a flicker free experience follow the guide in https://bennis-blog.de/2021/11/19/pop_os-nvidia-on-the-infinitybook-pro-14-gen6/ to add the kernel parameter `i915.enable_psr=0`

The actual fix

Create a systemd unit file to enable psr version 1.

$sudo nano /etc/systemd/system/infinitybook_psr_fix.service

# ---
[Service]
Type=oneshot
ExecStart=bash -c 'echo 0x3 > /sys/kernel/debug/dri/0/i915_edp_psr_debug'
[Install]
WantedBy=graphical.target
# If graphical.target doesn't work for you
# WantedBy=multi-user.target
# ---

$sudo systemctl daemon-reload
$sudo systemctl enable infinitybook_psr_fix.service
$sudo systemctl start infinitybook_psr_fix.service

# Confirm that it worked by calling 
sudo cat /sys/kernel/debug/dri/0/i915_edp_psr_status 

This fix might resolve the screen flickering for all HDPI displays on Alder Lake (12th gen Intel)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert