blob: e89d6d65e2e0757083b55890e26058f903ebe2db [file] [log] [blame]
Nico Huber53ec8c52020-03-21 19:50:26 +01001/* SPDX-License-Identifier: GPL-2.0-only */
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +01002
3 External(LCD0, DeviceObj)
4
5 Name (BRCT, 0)
6
7 Method(BRID, 1, NotSerialized)
8 {
Felix Singer9df60d32022-12-26 09:43:07 +01009 Local0 = Match (BRIG, MEQ, Arg0, MTR, 0, 2)
Felix Singer60415432022-01-02 00:43:21 +010010 If (Local0 == Ones)
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010011 {
Felix Singer1eba1962021-12-30 02:09:31 +010012 Return (SizeOf(BRIG) - 1)
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010013 }
14 Return (Local0)
15 }
16
17 Method (XBCL, 0, NotSerialized)
18 {
Felix Singer52f46522022-12-12 02:25:37 +010019 BRCT = 1
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010020 Return (BRIG)
21 }
22
23 /* Display Output Switching */
24 Method (_DOS, 1)
25 {
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010026 }
27
Patrick Rudolph6838aae2018-07-29 10:53:01 +020028 /*
29 * Decrement display brightness.
30 *
31 * Using Notify is the right way. But Windows doesn't handle
32 * it well. So use both method in a way to avoid double action.
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010033 */
34 Method (DECB, 0, NotSerialized)
35 {
36 If (BRCT)
37 {
38 Notify (LCD0, 0x87)
39 } Else {
Felix Singer52f46522022-12-12 02:25:37 +010040 Local0 = BRID (XBQC ())
Felix Singer12250832022-01-02 02:45:44 +010041 If (Local0 != 2)
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010042 {
Felix Singer66e26302021-12-31 14:13:47 +010043 Local0--
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010044 }
Felix Singere55a7d12021-12-29 13:56:36 +010045 XBCM (DerefOf (BRIG[Local0]))
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010046 }
47 }
48
Patrick Rudolph6838aae2018-07-29 10:53:01 +020049 /*
50 * Increment display brightness.
51 */
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010052 Method (INCB, 0, NotSerialized)
53 {
54 If (BRCT)
55 {
56 Notify (LCD0, 0x86)
57 } Else {
Felix Singer52f46522022-12-12 02:25:37 +010058 Local0 = BRID (XBQC ())
Felix Singer12250832022-01-02 02:45:44 +010059 If (Local0 != SizeOf(BRIG) - 1)
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010060 {
Felix Singer42fcf5a2021-12-31 13:49:03 +010061 Local0++
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010062 }
Felix Singere55a7d12021-12-29 13:56:36 +010063 XBCM (DerefOf (BRIG[Local0]))
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010064 }
65 }