[Bug 297583] HP Pavilion x360 brightness hotkeys do not work unless QWIK=1

[email protected]
Newsgroups gmane.os.freebsd.bugs
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=297583

            Bug ID: 297583
           Summary: HP Pavilion x360 brightness hotkeys do not work unless
                    QWIK=1
           Product: Base System
           Version: 15.1-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: [email protected]
          Reporter: [email protected]

On an HP Pavilion x360 Convertible 14-dh1xxx with BIOS F.18, the
physical brightness keys do not produce usable input events under:

FreeBSD FreeBSD 15.1-RELEASE FreeBSD 15.1-RELEASE
releng/15.1-n283562-96841ea08dcf GENERIC amd64

Backlight control works through /dev/backlight/backlight0, but loading
acpi_video.ko does not make the physical keys usable.

The relevant ACPI methods are _Q1C and _Q1D. With \_SB.QWIK=0, they use
a BIAN path that produces no usable event on this machine. With QWIK=1,
the firmware sends:

- Notify(\_SB.PCI0.GFX0.DD02, 0x86) for brightness up
- Notify(\_SB.PCI0.GFX0.DD02, 0x87) for brightness down

I fixed this locally with an out-of-tree kernel module that sets QWIK
to 1, handles these DD02 notifications, and emits
KEY_BRIGHTNESSUP/KEY_BRIGHTNESSDOWN evdev events. It checks the HP
SMBIOS vendor and the presence of QWIK and DD02, saves the original QWIK
value, and restores it when unloaded.

The physical brightness keys now work, including after reboot with the
module loaded at boot. This has only been tested on this laptop; other
HP models with the same ACPI layout may also be affected.

-- 
You are receiving this mail because:
You are the assignee for the bug.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.