Backlight regression on Clevo P751DM2-G


the backlight control is still broken on my Clevo P751DM2-G machine, even with 515.76. It does feature an nVidia 1070 Mobile directly attached to an AU Optronics display (i.e., no hybrid mode).

Backlight control is working fine on Windows and even on Linux before the nVidia module loads. Once the nVidia module has been initialized (by starting X), it’s stuck on full brightness.

acpidump and nvidia-bug-report output attached.

acpidump (726.8 KB)
nvidia-bug-report.log.gz (379.0 KB)

Please post the output of
ls -l /sys/class/backlight

lrwxrwxrwx 1 root root 0 Sep 27 18:43 nvidia_0 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/nvidia_0

Merely the nvidia_0 node, as you would expect for such a setup.

Still an issue with 525.60.13. Getting pretty old.

This said, there now is a new node in sysfs, even though I haven’t used any different kernel parameters (although I did upgrade to Linux 6.1.1). Both nodes are symlinks to the same directory, though, so technically one of those is redundant. But that’s probably a bugfix for desktops that prefer acpi_video0 and have no notion of the proprietary nvidia_0 node.

ls -l /sys/class/backlight
total 0
lrwxrwxrwx 1 root root 0 Dec 26 06:39 acpi_video0 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0
lrwxrwxrwx 1 root root 0 Dec 26 06:39 nvidia_0 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/nvidia_0

Kernel parameters, not anything very unusual:

BOOT_IMAGE=/vmlinuz-6.1.1 root=UUID=6e77d2d7-fd5b-4017-8735-1342b0d695e3 ro resume=UUID=f9d8be29-deb8-4040-a506-015669411051 ro verbose nosplash test_suspend=ram memtest=5 rootwait zswap.enabled=1

Neither acpi_video0/brightness nor nvidia_0/brightness change anything still, though.

Still an issue with 545.29.02. Again, graphics card directly hooked up to the panel/display, NO hybrid setup.

Just for fun, I’ve also tested 535.129.03. No change, also broken.

I’m attaching the file created by and an ACPI dump again, for good measure.

This has been broken for three years. Do I have to wait another three years for this to be fixed?

The acpi_video0 node is gone now, current content:

ionic@apgunner/tmp/nvidia%  sudo ls -lr /sys/class/backlight/    
total 0
lrwxrwxrwx 1 root root 0 Nov 10 19:39 nvidia_0 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/nvidia_0
[0 running job(s)] {history#13208}  19:41:39 23-11-10
ionic@apgunner/tmp/nvidia%  sudo ls -lr /sys/class/backlight/nvidia_0/
total 0
-rw-r--r-- 1 root root 4096 Nov 10 19:41 uevent
-r--r--r-- 1 root root 4096 Nov 10 19:41 type
lrwxrwxrwx 1 root root    0 Nov 10 19:41 subsystem -> ../../../../../../class/backlight
-r--r--r-- 1 root root 4096 Nov 10 19:41 scale
drwxr-xr-x 2 root root    0 Nov 10 19:41 power
-r--r--r-- 1 root root 4096 Nov 10 19:41 max_brightness
lrwxrwxrwx 1 root root    0 Nov 10 19:41 device -> ../../../0000:01:00.0
-rw-r--r-- 1 root root 4096 Nov 10 18:02 brightness
-rw-r--r-- 1 root root 4096 Nov 10 18:02 bl_power
-r--r--r-- 1 root root 4096 Nov 10 19:41 actual_brightness
ionic@apgunner/tmp/nvidia%  sudo nvidia-settings -n -a BacklightBrightness=30

ERROR: Error assigning value 30 to attribute 'BacklightBrightness' (apgunner:0[dpy:1]) as specified in assignment 'BacklightBrightness=30'
       (Unknown Error)
root@apgunner/tmp/nvidia#  cat /sys/class/backlight/nvidia_0/{,actual_,max_}brightness
[0 running job(s)] {history#11443}  19:45:19 23-11-10
root@apgunner/tmp/nvidia#  echo 20 > /sys/class/backlight/nvidia_0/brightness 
echo: write error: invalid argument
[0 running job(s)] {history#11443}  19:45:38 23-11-10
root@apgunner/tmp/nvidia#  cat /sys/class/backlight/nvidia_0/{,actual_,max_}brightness

And, again, changing the brightness works fine BEFORE the nVidia driver initializes the card (e.g., up until X is started). Afterwards, it’s stuck on maximum brightness and it has been like this for three years now.

nvidia-bug-report.log.gz (1.0 MB)
acpidump.gz (45.7 KB)

Just for the records, what was the last known working driver version, if any?

The last known good/working branch was 460. It broke with 465 and stayed like that ever since.

Already tried to disable the backlight handler in nvidia-modeset.c using user patches in /etc/portage/patches?

I did, back in the day, to no avail. Even wrote a custom patch to re-implement the EnableBacklightHandler option that was lost with 495 (or around that time anyway) in order to keep the driver from touching the backlight stuff, but also to no avail.

The issue seems to be that the driver initializes or sets something within the card that breaks backlight control even if the handler is disabled - and that it doesn’t handle brightness changes correctly any longer, of course.

Alas, updated to 550.78.

Some version within the 550 series fixed the invalid argument issue (including the error when setting BacklightBrightness via nvidia-settings), but changing values still doesn’t have any visible effect.

nvidia-bug-report.log.gz (734.7 KB)