blob: 02169ae874331045da76cb8ac64efb4fb1a3091e [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 {
9 Store (Match (BRIG, MEQ, Arg0, MTR, Zero, 2), Local0)
10 If (LEqual (Local0, Ones))
11 {
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 {
19 Store (1, BRCT)
20 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 {
40 Store (BRID (XBQC ()), Local0)
41 If (LNotEqual (Local0, 2))
42 {
43 Decrement (Local0)
44 }
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 {
58 Store (BRID (XBQC ()), Local0)
Felix Singer1eba1962021-12-30 02:09:31 +010059 If (LNotEqual (Local0, SizeOf(BRIG) - 1))
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010060 {
61 Increment (Local0)
62 }
Felix Singere55a7d12021-12-29 13:56:36 +010063 XBCM (DerefOf (BRIG[Local0]))
Vladimir Serbinenkodd2bc3f2014-10-31 09:16:31 +010064 }
65 }