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
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
ExecStart=bash -c 'echo 0x3 > /sys/kernel/debug/dri/0/i915_edp_psr_debug'
# If graphical.target doesn't work for you
$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)
Summary of what I did.
Added the kernel parameter
sudo kernelstub -a i915.enable_psr=0 to resolve the screen flicker issue. Even better: https://bennis-blog.de/2022/05/14/resolve-display-flicker-on-the-infinitybook-pro-14-gen6-by-tuxedo/
- tuxedo-touchpad-switch (touchpad-led support – also add to startup applications)
- tuxedo-pinfix-tgl-dkms (not sure if required)
For power tuning, I installed
tlp and mostly adjusted
/etc/tlp.conf L0319: RUNTIME_PM_DRIVER_BLACKLIST="" so that runtime_pm is enabled for the nvidia card (it sometimes turned on [maybe after sleep]).
As the touchpad sometimes stops to work (mostly on login), I created a simple script that fixes the issue.
sudo rmmod i2c_hid_acpi
sudo modprobe i2c_hid_acpi
Maybe: set deep sleep: (I didn’t do that because the Nvidia card wakes up after standby)
sudo kernelstub -a "mem_sleep_default=deep"
Accelerated video playback. https://wiki.archlinux.org/title/Hardware_video_acceleration
I failed to get va-api working with firefox (seems to be a known bug), but chrome is working fine following the arch wiki or https://www.linuxuprising.com/2021/01/how-to-enable-hardware-accelerated.html
For some reason `vdpau-va-driver_0.7.4-7_amd64.deb` is missing from the ubuntu repos. You can simply install it from here (debian). It enables va-api with nvidia.
[not required after 22.04] I also installed https://pipewire-debian.github.io/pipewire-debian/ with
WARNING: OPAL boot currently doesn’t work, as the SSD is power cycled on reboot.
Patched Nautilus for better search: https://www.linuxuprising.com/2020/06/how-to-install-nautilus-with-type-ahead.html