Conversation
The LG OLED panel in the XPS 14/16 takes brightness over DPCD AUX, but xe follows the VBT and drives PWM, so intel_backlight writes succeed while the panel ignores them. Add xe.enable_dpcd_backlight=1 through a Limine drop-in, gated on omarchy-hw-dell-xps-oled, the same way the ASUS Panther Lake fix does, plus a migration that rebuilds the boot image for existing installs. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
On the Dell XPS 14 (DA14260) with the LG OLED panel, the brightness keys move the OSD but the panel never changes.
intel_backlightsysfs writes succeed and read back, so the Omarchy side is fine; the panel just isn't listening to that knob. The xe driver takes the backlight type from the VBT (PWM) while the OLED panel wants DPCD AUX. The kernel says so at boot:This is the same failure
install/hardware/asus/fix-asus-ptl-display-backlight.shalready fixes for the ExpertBook B9406 and Zenbook UX5406AA (#5435, #5620), and the same one #10463 reports on the Lenovo Yoga Pro 7. The ASUS leaf is gated to those two models, so it never runs on a Dell.omarchy-hw-dell-xps-oledalready matches this machine, but nothing uses it since the PSR workaround was retired in a70b05e.Solution
install/hardware/dell-xps-oled-display-backlight.sh: writes/etc/limine-entry-tool.d/dell-xps-oled-display-backlight.confwithxe.enable_dpcd_backlight=1, gated onomarchy-hw-dell-xps-oled. Mirrors the ASUS leaf; the drop-in path takes anOMARCHY_DELL_XPS_OLED_BACKLIGHT_CONFoverride for tests, likefix-nouveau-cursor.shandsnapper.shdo.install/hardware/all.sh: runs it next to the other Dell leaf.migrations/1788886195.sh: for existing installs, sources the leaf, runslimine-mkinitcpio, and setsreboot-required. Skips cleanly on machines withoutlimine-mkinitcpio, since the drop-in does nothing without it. No completion marker: a second user running it before the reboot repeats an identical rebuild, which is harmless.test/shell.d/dell-xps-oled-display-backlight-test.sh: covers theall.shwiring, the leaf writing and no-oping, idempotence, and the migration's rebuild, reboot flag, no-op, and missing-tool paths.Value
1lets the driver pick between the Intel HDR and VESA AUX interfaces, matching the ASUS fix. The kernel's own suggestion of3forces the Intel HDR interface;1was enough here.Interaction with #10549
That PR tightens
omarchy-hw-dell-xps-oledto the 2880x1800 and 3200x2000 OLED modes because the EDID manufacturer check alone also matches the 1920x1200 LG IPS SKU. This leaf inherits whichever matcher lands. With the current matcher the drop-in would also be written on an IPS XPS; at value1the driver only takes the AUX path when the panel advertises it, so the IPS panel should keep working over PWM, but I have no IPS unit to confirm that on. I'd rather not duplicate the mode check here; the matcher is the right place for it.Testing
limine-update, rebooted./proc/cmdlinecarries the parameter and F7/F8 now change the panel../test/all: 234 of 237 shell test files pass, including the new one. The three that fail here fail onquattrotoo and do not touch anything in this diff:snapper-test.shwants anomarchy-isocheckout,locate-test.shreads/usr/bin/updatedbas text and hits a binary on this machine, andconfig-test.shwanted anomarchy-pkgscheckout and passes once one is present.limine-mkinitcpioguard from the migration, each fails the corresponding assertion.🤖 Generated with Claude Code