Dell Pro 14 Plus PB14250 + Intel Lunar Lake: fix for lid-open screen flicker on Zorin OS using xe.enable_psr=0

Hi everyone,

I want to share a tested fix for a Dell Pro 14 Plus PB14250 running Zorin OS/Linux with Intel Lunar Lake graphics.

This is not a universal fix for every laptop. It is only what worked on my specific machine, but I am sharing it in case it helps other Dell Pro 14 Plus or Intel Lunar Lake users.

Tested system

  • Laptop: Dell Pro 14 Plus PB14250
  • GPU: Intel Lunar Lake [Intel Graphics]
  • Kernel: 6.17.0-22-generic
  • Session: X11
  • Graphics driver: xe
  • OS: Zorin OS/Linux

Problem 1: screen flicker/glitch when opening the lid

When opening the laptop lid, the internal display showed a very brief visual glitch/flicker. After that, the screen worked normally.

This did not look like a hardware failure because the issue happened specifically when waking/activating the display.

First I checked the active graphics driver:

`bash
lspci -nnk | grep -A4 -E "VGA|3D|Display"

My output showed:

00:02.0 VGA compatible controller [0300]: Intel Corporation Lunar Lake [Intel Graphics] [8086:64a0] (rev 04)
Subsystem: Dell Device [1028:0cdc]
Kernel driver in use: xe
Kernel modules: xe

Important: this system is using the new Intel xe driver, not i915.
Then I checked the available xe driver parameters:
modinfo xe | grep -Ei "psr|panel|fbc|dc"
The driver supported:
enable_psr
enable_dc
enable_fbc
enable_psr2_sel_fetch

The fix was to disable PSR / Panel Self Refresh for the xe driver.
Edit GRUB:

sudo nano /etc/default/grub

Find this line:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Change it to: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash xe.enable_psr=0"

The uodate GRUB and Reboot. After Reboot , I verified the parameter was active:
cat /proc/cmdline

It showed:
xe.enable_psr=0

then i verified the module parameter directly:
sudo cat /sys/module/xe/parameters/enable_psr
Expected result:
0
After this, the lid-open screen glitch disappeared.

Enjoy

Problem 2: Howdy face unlock failing in low light.

Howdy was installed and working, but it failed often in the same light conditions where Windows Hello worked before.
The error was related to the image being considered too dark:

Face detection image too dark

I checked the Howdy config:

grep -nE 'dark_threshold|certainty|timeout|device_path|use_cnn' /etc/howdy/config.ini

My relevant config was:

Plain text
use_cnn = false
certainty = 3.5
timeout = 4
device_path = /dev/video2
dark_threshold = 60

The fix was to increase the darkness threshold:

sudo sed -i.bak 's/^dark_threshold = .*/dark_threshold = 90/' /etc/howdy/config.ini

Then I verified it:

grep -nE 'dark_threshold|certainty|timeout|device_path|use_cnn' /etc/howdy/config.ini

Result:
Plain text
dark_threshold = 90
Then I added a new face model under the real low-light condition:

sudo howdy add

After this, Howdy started recognizing my face much better.

Final working values

device_path = /dev/video2
certainty = 3.5
timeout = 4
dark_threshold = 90
use_cnn = false

Notes:
Do not use i915.enable_psr=0 if your system is using the xe driver.
Check your actual driver first with lspci.
I did not need to change enable_dc or enable_fbc.
Disabling PSR may slightly reduce battery savings, but it fixed the visual glitch on my machine.
This was tested on one specific Dell Pro 14 Plus PB14250 system, so please verify your own hardware before applying it.

saluting_face

2 Likes

Hi and welcome. Great post.

@zorink @AZorin This is a great post and I am reminded that there have been similar posts with different solutions for different problems.
Would it not be possible to create sub-sections and tags as another Discourse forum I visit uses?

1 Like

I am wondering if this thread should be moved to "Tutorials" section?

The problem is, it is both :wink:

I think the same