Index | Thread | Search

From:
Caspar Schutijser <caspar@schutijser.com>
Subject:
Re: acpithinkpad: don't unmask brightness events on version 2 machines
To:
Jonathan Matthew <jonathan@d14n.org>
Cc:
tech@openbsd.org
Date:
Wed, 21 May 2025 20:27:18 +0200

Download raw body.

Thread
On Mon, May 19, 2025 at 06:43:23PM +1000, Jonathan Matthew wrote:
> On my X13 gen 1, the screen brightness down button sets the screen to
> minimum brightness, which is not very pleasant.  This turns out to be
> because both acpithinkpad(4) and acpivout(4) are processing these events,
> even though this is a 'version 2' machine where acpithinkpad declines to
> take control of screen brightness.
> 
> The diff below resolves this by only unmasking the brightness up/down
> events on version 1 machines.  Without these events unmasked, only
> acpivout is trying to apply screen brightness changes, and everything
> works properly.
> 
> Has anyone seen this problem on other thinkpads?  Could this change
> cause problems anywhere else?

I have the same problem on my ThinkPad P51 (dmesg below). Your diff
fixes it; thanks. I also tried it on older ThinkPad T530 and changing
the brightness still works as expected there.

Caspar


OpenBSD 7.7-current (GENERIC.MP) #666: Wed May 21 00:12:25 MDT 2025
    deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 16870858752 (16089MB)
avail mem = 16332853248 (15576MB)
random: good seed from bootblocks
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 3.0 @ 0x6f06e000 (66 entries)
bios0: vendor LENOVO version "N1UET41W (1.15 )" date 10/20/2017
bios0: LENOVO 20HJS14M00
efi0 at bios0: UEFI 2.5
efi0: Lenovo rev 0x1150
acpi0 at bios0: ACPI 5.0
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP UEFI SSDT SSDT SSDT ECDT HPET APIC MCFG SSDT
BOOT BATB SSDT SSDT SSDT WSMT SSDT SSDT DBGP DBG2 MSDM SSDT SSDT
ASF! FPDT UEFI
acpi0: wakeup devices PEG0(S4) PEG1(S4) PEGP(S4) PEG2(S4) PEGP(S4)
GLAN(S4) XHC_(S3) XDCI(S4) HDAS(S4) RP01(S4) RP02(S4) RP04(S4)
RP05(S4) RP06(S4) RP07(S4) RP08(S4) [...]
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpiec0 at acpi0
acpihpet0 at acpi0: 23999999 Hz
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz, 2693.73 MHz,
06-9e-09, patch 000000f8
cpu0: cpuid 1
edx=bfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
ecx=77fafbbf<SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND>
cpu0: cpuid 6 eax=27f7<SENSOR,ARAT> ecx=9<EFFFREQ>
cpu0: cpuid 7.0
ebx=29c67af<FSGSBASE,TSC_ADJUST,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT>
edx=bc002e00<SRBDS_CTRL,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD>
cpu0: cpuid a vers=4, gp=8, gpwidth=48, ff=3, ffwidth=48
cpu0: cpuid d.1 eax=f<XSAVEOPT,XSAVEC,XGETBV1,XSAVES>
cpu0: cpuid 80000001 edx=2c100800<NXE,PAGE1GB,RDTSCP,LONG>
ecx=121<LAHF,ABM,3DNOWP>
cpu0: cpuid 80000007 edx=100<ITSC>
cpu0: msr 10a=a000c04<RSBA,MISC_PKG_CT,ENERGY_FILT,GDS_CTRL,RFDS_NO>
cpu0: MELTDOWN
cpu0: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache,
256KB 64b/line 4-way L2 cache, 6MB 64b/line 12-way L3 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 24MHz
cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4.1.1.1, IBE
cpu1 at mainbus0: apid 2 (application processor)
cpu1: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz, 2693.73 MHz,
06-9e-09, patch 000000f8
cpu1: smt 0, core 1, package 0
cpu2 at mainbus0: apid 4 (application processor)
cpu2: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz, 2693.73 MHz,
06-9e-09, patch 000000f8
cpu2: smt 0, core 2, package 0
cpu3 at mainbus0: apid 6 (application processor)
cpu3: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz, 2693.73 MHz,
06-9e-09, patch 000000f8
cpu3: smt 0, core 3, package 0
ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 120 pins
acpimcfg0 at acpi0
acpimcfg0: addr 0xf0000000, bus 0-127
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 1 (PEG0)
acpiprt2 at acpi0: bus -1 (PEG1)
acpiprt3 at acpi0: bus -1 (PEG2)
acpiprt4 at acpi0: bus 3 (RP01)
acpiprt5 at acpi0: bus -1 (RP02)
acpiprt6 at acpi0: bus 4 (RP03)
acpiprt7 at acpi0: bus -1 (RP04)
acpiprt8 at acpi0: bus 5 (RP05)
acpiprt9 at acpi0: bus -1 (RP06)
acpiprt10 at acpi0: bus -1 (RP07)
acpiprt11 at acpi0: bus -1 (RP08)
acpiprt12 at acpi0: bus 62 (RP09)
acpiprt13 at acpi0: bus -1 (RP10)
acpiprt14 at acpi0: bus -1 (RP11)
acpiprt15 at acpi0: bus -1 (RP12)
acpiprt16 at acpi0: bus 63 (RP13)
acpiprt17 at acpi0: bus -1 (RP14)
acpiprt18 at acpi0: bus -1 (RP15)
acpiprt19 at acpi0: bus -1 (RP16)
acpiprt20 at acpi0: bus -1 (RP17)
acpiprt21 at acpi0: bus -1 (RP18)
acpiprt22 at acpi0: bus -1 (RP19)
acpiprt23 at acpi0: bus -1 (RP20)
acpiprt24 at acpi0: bus -1 (RP21)
acpiprt25 at acpi0: bus -1 (RP22)
acpiprt26 at acpi0: bus -1 (RP23)
acpiprt27 at acpi0: bus -1 (RP24)
acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000
acpithinkpad0 at acpi0: version 2.0
acpiac0 at acpi0: AC unit online
acpibat0 at acpi0: BAT0 model "00NY493" serial  1218 type LiP oem
"SMP"
acpicmos0 at acpi0
"LEN0071" at acpi0 not configured
"LEN005F" at acpi0 not configured
pchgpio0 at acpi0 GPI0 addr 0xfdaf0000/0x10000 0xfdae0000/0x10000
0xfdac0000/0x10000 irq 14, 224 pins
"INT0E0C" at acpi0 not configured
acpibtn0 at acpi0: SLPB(wakeup)
"PNP0C14" at acpi0 not configured
acpibtn1 at acpi0: LID_(wakeup)
"PNP0C14" at acpi0 not configured
"PNP0C14" at acpi0 not configured
"PNP0C14" at acpi0 not configured
acpicpu0 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151
mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu1 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151
mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu2 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151
mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu3 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151
mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpipwrres0 at acpi0: PG00, resource for PEG0
acpipwrres1 at acpi0: PG01, resource for PEG1
acpipwrres2 at acpi0: PG02, resource for PEG2
acpipwrres3 at acpi0: PUBS, resource for XHC_
acpipwrres4 at acpi0: WRST
acpipwrres5 at acpi0: WRST
acpitz0 at acpi0
acpitz0: critical temperature is 128 degC
acpivideo0 at acpi0: GFX0
acpivout0 at acpivideo0: DD1F
cpu0: using VERW MDS workaround (except on vmm entry)
cpu0: Enhanced SpeedStep 2693 MHz: speeds: 2801, 2800, 2700, 2500,
2400, 2200, 2100, 1900, 1700, 1600, 1500, 1400, 1200, 1100, 900, 800
MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel Xeon E3-1200 v6/7 Host" rev
0x05
ppb0 at pci0 dev 1 function 0 "Intel Core 6G PCIE" rev 0x05: msi
pci1 at ppb0 bus 1
"NVIDIA Quadro M1200" rev 0xa2 at pci1 dev 0 function 0 not
configured
inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics 630" rev 0x04
drm0 at inteldrm0
inteldrm0: msi, KABYLAKE, gen 9
"Intel Core GMM" rev 0x00 at pci0 dev 8 function 0 not configured
xhci0 at pci0 dev 20 function 0 "Intel 100 Series xHCI" rev 0x31:
msi, xHCI 1.0
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev
3.00/1.00 addr 1
pchtemp0 at pci0 dev 20 function 2 "Intel 100 Series Thermal" rev
0x31
dwiic0 at pci0 dev 21 function 0 "Intel 100 Series I2C" rev 0x31:
apic 2 int 16
iic0 at dwiic0
"Intel 100 Series MEI" rev 0x31 at pci0 dev 22 function 0 not
configured
ppb1 at pci0 dev 28 function 0 "Intel 100 Series PCIE" rev 0xf1: msi
pci2 at ppb1 bus 3
ppb2 at pci0 dev 28 function 2 "Intel 100 Series PCIE" rev 0xf1: msi
pci3 at ppb2 bus 4
iwm0 at pci3 dev 0 function 0 "Intel Dual Band Wireless-AC 8265" rev
0x78, msi
ppb3 at pci0 dev 28 function 4 "Intel 100 Series PCIE" rev 0xf1: msi
pci4 at ppb3 bus 5
ppb4 at pci0 dev 29 function 0 "Intel 100 Series PCIE" rev 0xf1: msi
pci5 at ppb4 bus 62
nvme0 at pci5 dev 0 function 0 "Samsung SM961/PM961" rev 0x00: msix,
NVMe 1.2
nvme0: SAMSUNG MZVLW256HEHP-000L7, firmware 4L7QCXB7, serial
XXXXXXXXXXXXX
scsibus1 at nvme0: 2 targets, initiator 0
sd0 at scsibus1 targ 1 lun 0: <NVMe, SAMSUNG MZVLW256, 4L7Q>
sd0: 244198MB, 512 bytes/sector, 500118192 sectors
ppb5 at pci0 dev 29 function 4 "Intel 100 Series PCIE" rev 0xf1: msi
pci6 at ppb5 bus 63
rtsx0 at pci6 dev 0 function 0 "Realtek RTS525A Card Reader" rev
0x01: msi
sdmmc0 at rtsx0: 4-bit, dma
pcib0 at pci0 dev 31 function 0 "Intel CM238 LPC" rev 0x31
"Intel 100 Series PMC" rev 0x31 at pci0 dev 31 function 2 not
configured
azalia0 at pci0 dev 31 function 3 "Intel 100 Series HD Audio" rev
0x31: msi
azalia0: codecs: Realtek ALC298, Intel/0x280b, using Realtek ALC298
audio0 at azalia0
ichiic0 at pci0 dev 31 function 4 "Intel 100 Series SMBus" rev 0x31:
apic 2 int 16
iic1 at ichiic0
em0 at pci0 dev 31 function 6 "Intel I219-V" rev 0x31: msi, address
54:e1:ad:xx:xx:xx
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard
pms0 at pckbc0 (aux slot)
wsmouse0 at pms0 mux 0
wsmouse1 at pms0 mux 0
pms0: Synaptics touchpad, firmware 8.2, 0x1e2b1 0x940300 0x334d40
0xf406a3 0x2e800
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
vmm0 at mainbus0: VMX/EPT
efifb at mainbus0 not configured
uvideo0 at uhub0 port 8 configuration 1 interface 0
"8SSC20F27019L1GZ75K209X Integrated Camera" rev 2.00/0.13 addr 2
video0 at uvideo0
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
sd1 at scsibus3 targ 1 lun 0: <OPENBSD, SR CRYPTO, 006>
sd1: 92953MB, 512 bytes/sector, 190367871 sectors
root on sd1a (072205d719f5f9ca.a) swap on sd1b dump on sd1b
inteldrm0: 1920x1080, 32bpp
wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation), using
wskbd0
wsdisplay0: screen 1-5 added (std, vt100 emulation)
iwm0: hw rev 0x230, fw ver 36.ca7b901d.0, address bc:a8:a6:xx:xx:xx
drm:pid90714:intel_vblank_evade *ERROR* [drm] *ERROR* Potential
atomic update failure on pipe A