Automatic handling of brightness keys based on ACPI Specification, Appendix B: Video Extensions.
Requires Lilu 1.2.0 or newer.
-brkeysdbg
to enable debug printing (available in DEBUG binaries).Typically no DSDT patches are required. Please remove old _Qxx
to XQxx
ones.
On some models, may be required add ACPI patch _OSI to XOSI
and SSDT-XOSI
.
Method (_Q14, 0, NotSerialized)
{
If (^HKEY.MHKK (0x8000))
{
^HKEY.MHKQ (0x1010) // Vendor-specific event: TP_HKEY_EV_BRGHT_UP
}
If (NBCF) // Whether
{
If (VIGD)
{
Notify (^^^VID.LCD0, 0x86) // Send 0x86 "Increase Brightness" to integrated graphics
}
Else
{
Notify (^^^PEG.VID.LCD0, 0x86) // Send 0x86 "Increase Brightness" to discrete graphics
}
}
Else
{
Local0 = BRLV // Local variable to store current brightness level
If ((Local0 != 0x0F))
{
Local0++
BRLV = Local0
}
If (VIGD)
{
UCMS (0x16) // SMI access for integrated graphics
BRNS ()
}
Else
{
VBRC (Local0) // SMI access for discrete graphics
}
^HKEY.MHKQ (0x6050) // Vendor-specific event: TP_HKEY_EV_BACKLIGHT_CHANGED
}
}
When NBCF
is set to zero by default, the method will not notify graphics devices and try to adjust brightness directly. To override that, set NBCF = 0x01
in SSDT hotpatch, or just replace its declaration using a simple patch.
For DSDT compiled with older iasl, replace Name (NBCF, 0x00)
to Name (NBCF, 0x01)
:
Find: 08 4E424346 0A 00
// NameOp "NBCF" BytePrefix "00"
Repl: 08 4E424346 0A 01
// NameOp "NBCF" BytePrefix "01"
For DSDT compiled with newer iasl, replace Name (NBCF, Zero)
to Name (NBCF, One)
:
Find: 08 4E424346 00
// NameOp "NBCF" ZeroOp
Repl: 08 4E424346 01
// NameOp "NBCF" OneOp
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。