Attachment 'acpidump.txt'
Download
Toggle line numbers
1 /*
2 RSD PTR: OEM=LENOVO, ACPI_Rev=2.0x (2)
3 XSDT=0xbf6bd1b7, length=36, cksum=42
4 */
5 /*
6 XSDT: Length=156, Revision=1, Checksum=222,
7 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
8 Creator ID= LTP, Creator Revision=0x0
9 Entries={ 0xbf6bd300, 0xbf6bd4b4, 0xbf6cba38, 0xbf6cba8a, 0xbf6cbabc, 0xbf6cbb24, 0xbf6cbb60, 0xbf6cbb98, 0xbf6cbdf0, 0xbf6cbf66, 0xbf6cbf8e, 0xbf6e2697, 0xbf6e28f6, 0xbf6e299c, 0xbf6e2e93 }
10 */
11 /*
12 FACP: Length=244, Revision=3, Checksum=5,
13 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
14 Creator ID=LNVO, Creator Revision=0x1
15 FACS=0xbf6e4000, DSDT=0xbf6bd6db
16 INT_MODEL=PIC
17 Preferred_PM_Profile=Mobile (2)
18 SCI_INT=9
19 SMI_CMD=0xb2, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0
20 PSTATE_CNT=0xf3
21 PM1a_EVT_BLK=0x1000-0x1003
22 PM1a_CNT_BLK=0x1004-0x1005
23 PM2_CNT_BLK=0x1020-0x1020
24 PM_TMR_BLK=0x1008-0x100b
25 GPE0_BLK=0x1028-0x102f
26 CST_CNT=0x85
27 P_LVL2_LAT=1 us, P_LVL3_LAT=35 us
28 FLUSH_SIZE=0, FLUSH_STRIDE=0
29 DUTY_OFFSET=1, DUTY_WIDTH=3
30 DAY_ALRM=13, MON_ALRM=0, CENTURY=50
31 IAPC_BOOT_ARCH={8042,NO_ASPM}
32 Flags={WBINVD,C1_SUPPORTED,C2_MP_SUPPORTED,SLEEP_BUTTON,S4_RTC_WAKE,DOCKING_SUPPORTED,PCI_EXPRESS_WAKE,PLATFORM_CLOCK}
33 X_FACS=0xbf6e4000, X_DSDT=0xbf6bd6db
34 X_PM1a_EVT_BLK=0x1000:0[32] (IO)
35 X_PM1a_CNT_BLK=0x1004:0[16] (IO)
36 X_PM2_CNT_BLK=0x1020:0[8] (IO)
37 X_PM_TMR_BLK=0x1008:0[32] (IO)
38 X_GPE0_BLK=0x1028:0[32] (IO)
39 X_GPE1_BLK=0x102c:0[32] (IO)
40 */
41 /*
42 FACS: Length=64, HwSig=0x0000150a, Firm_Wake_Vec=0x00000000
43 Global_Lock=
44 Flags=
45 Version=1
46 */
47 /*
48 DSDT: Length=58205, Revision=1, Checksum=187,
49 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
50 Creator ID=MSFT, Creator Revision=0x3000000
51 */
52 /*
53 SSDT: Length=551, Revision=1, Checksum=215,
54 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
55 Creator ID=MSFT, Creator Revision=0x3000000
56 */
57 /*
58 ECDT: Length=82, Revision=1, Checksum=65,
59 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
60 Creator ID=LNVO, Creator Revision=0x1
61 EC_CONTROL=0x66:0[8] (IO)
62 EC_DATA=0x62:0[8] (IO)
63 UID=0, GPE_BIT=0x12
64 EC_ID=\_SB.PCI0.LPC.EC
65 */
66 /*
67 TCPA: Length=50, Revision=2, Checksum=224,
68 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
69 Creator ID=LNVO, Creator Revision=0x1
70 Class 0 Base Address 0xbf6d1a6a Length 65536
71
72 */
73 /*
74 APIC: Length=104, Revision=1, Checksum=78,
75 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
76 Creator ID=LNVO, Creator Revision=0x1
77 Local APIC ADDR=0xfee00000
78 Flags={PC-AT}
79
80 Type=Local APIC
81 ACPI CPU=0
82 Flags={ENABLED}
83 APIC ID=0
84
85 Type=Local APIC
86 ACPI CPU=1
87 Flags={ENABLED}
88 APIC ID=1
89
90 Type=IO APIC
91 APIC ID=1
92 INT BASE=0
93 ADDR=0x00000000fec00000
94
95 Type=INT Override
96 BUS=0
97 IRQ=0
98 INTR=2
99 Flags={Polarity=conforming, Trigger=conforming}
100
101 Type=INT Override
102 BUS=0
103 IRQ=9
104 INTR=9
105 Flags={Polarity=active-hi, Trigger=level}
106
107 Type=Local APIC NMI
108 ACPI CPU=0
109 LINT Pin=1
110 Flags={Polarity=active-hi, Trigger=edge}
111
112 Type=Local APIC NMI
113 ACPI CPU=1
114 LINT Pin=1
115 Flags={Polarity=active-hi, Trigger=edge}
116 */
117 /*
118 MCFG: Length=60, Revision=1, Checksum=100,
119 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
120 Creator ID=LNVO, Creator Revision=0x1
121
122 Base Address=0x00000000f0000000
123 Segment Group=0x0000
124 Start Bus=0
125 End Bus=63
126 */
127 /*
128 HPET: Length=56, Revision=1, Checksum=140,
129 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
130 Creator ID=LNVO, Creator Revision=0x1
131 HPET Number=0
132 ADDR=0xfed00000:0[0] (Memory) HW Rev=0x1
133 Comparators=2
134 Counter Size=1
135 Legacy IRQ routing capable={TRUE}
136 PCI Vendor ID=0x8086
137 Minimal Tick=128
138 Flags=0x00
139 */
140 /*
141 SLIC: Length=374, Revision=1, Checksum=21,
142 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
143 Creator ID=SLIC, Creator Revision=0x0
144 */
145 /*
146 SLAC: Length=374, Revision=1, Checksum=177,
147 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
148 Creator ID= LTP, Creator Revision=0x0
149 */
150 /*
151 BOOT: Length=40, Revision=1, Checksum=138,
152 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
153 Creator ID= LTP, Creator Revision=0x1
154 */
155 /*
156 ASF!: Length=114, Revision=16, Checksum=132,
157 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
158 Creator ID=PTL, Creator Revision=0x1
159 */
160 /*
161 SSDT: Length=607, Revision=1, Checksum=164,
162 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
163 Creator ID=INTL, Creator Revision=0x20050513
164 */
165 /*
166 SSDT: Length=166, Revision=1, Checksum=74,
167 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
168 Creator ID=INTL, Creator Revision=0x20050513
169 */
170 /*
171 SSDT: Length=1271, Revision=1, Checksum=90,
172 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
173 Creator ID=INTL, Creator Revision=0x20050513
174 */
175 /*
176 SSDT: Length=472, Revision=1, Checksum=235,
177 OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
178 Creator ID=INTL, Creator Revision=0x20050513
179 */
180 /*
181 * Intel ACPI Component Architecture
182 * AML Disassembler version 20130823-64
183 * Copyright (c) 2000 - 2013 Intel Corporation
184 *
185 * Disassembly of /tmp/acpidump.ZJtjg3, Sat Oct 4 16:08:02 2014
186 *
187 * Original Table Header:
188 * Signature "DSDT"
189 * Length 0x0000EEA4 (61092)
190 * Revision 0x01 **** 32-bit table (V1), no 64-bit math support
191 * Checksum 0xDE
192 * OEM ID "LENOVO"
193 * OEM Table ID "TP-7V "
194 * OEM Revision 0x00002220 (8736)
195 * Compiler ID "MSFT"
196 * Compiler Version 0x03000000 (50331648)
197 */
198 DefinitionBlock ("/tmp/acpidump.aml", "DSDT", 1, "LENOVO", "TP-7V ", 0x00002220)
199 {
200 /*
201 * iASL Warning: There were 1 external control methods found during
202 * disassembly, but additional ACPI tables to resolve these externals
203 * were not specified. This resulting disassembler output file may not
204 * compile because the disassembler did not know how many arguments
205 * to assign to these methods. To specify the tables needed to resolve
206 * external control method references, use the one of the following
207 * example iASL invocations:
208 * iasl -e <ssdt1.aml,ssdt2.aml...> -d <dsdt.aml>
209 * iasl -e <dsdt.aml,ssdt2.aml...> -d <ssdt1.aml>
210 */
211 External (_SB_.PCI0.SATA.SCND._STM, MethodObj) // Warning: Unresolved Method, guessing 3 arguments (may be incorrect, see warning above)
212
213 External (_PSS, IntObj)
214 External (_SB_.PCI0.SATA.SCND._ADR, IntObj)
215 External (_SB_.PCI0.SATA.SCND.MSTR)
216 External (_SB_.PCI0.SATA.SCND.MSTR._ADR, IntObj)
217 External (_SB_.PCI0.SATA.SCND.MSTR._GTF, IntObj)
218
219 OperationRegion (PORT, SystemIO, 0x80, 0x01)
220 Field (PORT, ByteAcc, NoLock, Preserve)
221 {
222 P80H, 8
223 }
224
225 Scope (\_PR)
226 {
227 Processor (CPU0, 0x00, 0x00001010, 0x06) {}
228 Processor (CPU1, 0x01, 0x00001010, 0x06) {}
229 }
230
231 OperationRegion (MNVS, SystemMemory, 0xBF6E4000, 0x1000)
232 Field (MNVS, DWordAcc, NoLock, Preserve)
233 {
234 Offset (0xF00),
235 GAPA, 32,
236 GAPL, 32,
237 DCKI, 32,
238 DCKS, 32,
239 VCDL, 1,
240 VCDC, 1,
241 VCDT, 1,
242 VCDD, 1,
243 VIGD, 1,
244 VCSS, 1,
245 VCDB, 1,
246 VCIN, 1,
247 VPDF, 1,
248 Offset (0xF12),
249 VLID, 4,
250 VVPO, 4,
251 BRLV, 4,
252 BRFQ, 2,
253 BRHB, 1,
254 BREV, 1,
255 CDFL, 8,
256 CDAH, 8,
257 PMOD, 2,
258 PDIR, 1,
259 PDMA, 1,
260 Offset (0xF17),
261 LFDC, 1,
262 Offset (0xF18),
263 C2NA, 1,
264 C3NA, 1,
265 C4NA, 1,
266 C6NA, 1,
267 Offset (0xF19),
268 SPEN, 1,
269 , 1,
270 , 1,
271 , 1,
272 MPEN, 1,
273 Offset (0xF1A),
274 OSPX, 1,
275 OSC4, 1,
276 OSSS, 1,
277 NHPS, 1,
278 NPME, 1,
279 Offset (0xF1B),
280 UOPT, 8,
281 BTID, 32,
282 LWST, 8,
283 LPST, 8,
284 TCRT, 16,
285 TPSV, 16,
286 TTC1, 16,
287 TTC2, 16,
288 TTSP, 16,
289 SRAH, 8,
290 SRHE, 8,
291 SRE0, 8,
292 SRE1, 8,
293 SRE2, 8,
294 SRE3, 8,
295 SRE4, 8,
296 SRE5, 8,
297 SRU0, 8,
298 SRU1, 8,
299 SRU2, 8,
300 SRU7, 8,
301 SRU3, 8,
302 SRU4, 8,
303 SRU8, 8,
304 SRPB, 8,
305 SRLP, 8,
306 SRSA, 8,
307 SRSM, 8,
308 CWAC, 1,
309 CWAS, 1,
310 CWUE, 1,
311 CWUS, 1,
312 Offset (0xF40),
313 CWAP, 16,
314 CWAT, 16,
315 DBGC, 1,
316 Offset (0xF45),
317 FS1L, 16,
318 FS1M, 16,
319 FS1H, 16,
320 FS2L, 16,
321 FS2M, 16,
322 FS2H, 16,
323 FS3L, 16,
324 FS3M, 16,
325 FS3H, 16,
326 TATC, 1,
327 , 6,
328 TATL, 1,
329 TATW, 8,
330 TNFT, 4,
331 TNTT, 4,
332 TDFA, 4,
333 TDTA, 4,
334 TDFD, 4,
335 TDTD, 4,
336 TCFA, 4,
337 TCTA, 4,
338 TCFD, 4,
339 TCTD, 4,
340 TSFT, 4,
341 TSTT, 4,
342 TIT0, 8,
343 TCR0, 16,
344 TPS0, 16,
345 TIT1, 8,
346 TCR1, 16,
347 TPS1, 16,
348 TIT2, 8,
349 TCR2, 16,
350 TPS2, 16,
351 TIF0, 8,
352 TIF1, 8,
353 TIF2, 8,
354 Offset (0xF75),
355 TCZ1, 8,
356 TCZ2, 8,
357 TCZ3, 8,
358 BTHI, 1,
359 Offset (0xF79),
360 HDIR, 1,
361 HDEH, 1,
362 HDSP, 1,
363 HDPP, 1,
364 HDUB, 1,
365 Offset (0xF7A),
366 TPMP, 1,
367 TPMS, 1,
368 Offset (0xF7B),
369 BIDE, 8,
370 , 1,
371 DTSE, 1,
372 Offset (0xF7D),
373 DTS0, 8,
374 DTS1, 8,
375 DT00, 1,
376 DT01, 1,
377 DT02, 1,
378 DT03, 1,
379 Offset (0xF80),
380 LIDB, 1,
381 C4WR, 1,
382 C4AC, 1,
383 Offset (0xF81),
384 PH01, 8,
385 PH02, 8,
386 PH03, 8,
387 PH04, 8,
388 PH05, 8,
389 PH06, 8,
390 PH07, 8,
391 PH08, 8,
392 PH09, 8,
393 PH0A, 8,
394 PH0B, 8,
395 IPAT, 4,
396 IPSC, 1,
397 IDMM, 1,
398 IDMS, 2,
399 HVCO, 3,
400 IF1E, 1,
401 ISSC, 1,
402 LIDS, 1,
403 IBIA, 2,
404 IBTT, 8,
405 ITVF, 4,
406 ITVM, 4,
407 TCG0, 1,
408 TCG1, 1,
409 Offset (0xF91),
410 SWGP, 8,
411 IPMS, 8,
412 IPMB, 120,
413 IPMR, 24,
414 IPMO, 24,
415 IPMA, 8,
416 ASLB, 32,
417 ASFT, 8,
418 Offset (0xFB0),
419 CHKC, 32,
420 CHKE, 32,
421 THRI, 8
422 }
423
424 Field (MNVS, ByteAcc, NoLock, Preserve)
425 {
426 Offset (0xE00),
427 DDC1, 1024,
428 Offset (0xF00)
429 }
430
431 Field (MNVS, ByteAcc, NoLock, Preserve)
432 {
433 Offset (0xE00),
434 DDC2, 2048
435 }
436
437 Scope (\_SB)
438 {
439 Method (_INI, 0, NotSerialized) // _INI: Initialize
440 {
441 If (LEqual (\SCMP (\_OS, "Microsoft Windows"), Zero))
442 {
443 Store (0x01, \W98F)
444 }
445 Else
446 {
447 If (CondRefOf (\_OSI, Local0))
448 {
449 If (\_OSI ("Windows 2001"))
450 {
451 Store (0x01, \WNTF)
452 Store (0x01, \WXPF)
453 Store (0x00, \WSPV)
454 }
455
456 If (\_OSI ("Windows 2001 SP1"))
457 {
458 Store (0x01, \WSPV)
459 }
460
461 If (\_OSI ("Windows 2001 SP2"))
462 {
463 Store (0x02, \WSPV)
464 }
465
466 If (\_OSI ("Windows 2006"))
467 {
468 Store (0x01, \WVIS)
469 }
470
471 If (\_OSI ("Linux"))
472 {
473 Store (0x01, \LNUX)
474 }
475
476 If (\_OSI ("FreeBSD"))
477 {
478 Store (0x01, \LNUX)
479 }
480 }
481 Else
482 {
483 If (LEqual (\SCMP (\_OS, "Microsoft Windows NT"), Zero))
484 {
485 Store (0x01, \WNTF)
486 }
487 Else
488 {
489 If (LEqual (\SCMP (\_OS, "Microsoft WindowsME: Millennium Edition"), Zero))
490 {
491 Store (0x01, \WMEF)
492 Store (0x01, \W98F)
493 }
494 }
495 }
496 }
497
498 If (LGreaterEqual (\_REV, 0x02))
499 {
500 Store (0x01, \H8DR)
501 }
502
503 Store (0x01, \OSIF)
504 If (LAnd (\WXPF, LGreaterEqual (\WSPV, 0x01)))
505 {
506 PPMS (0x02)
507 }
508
509 If (And (\RBEC (0x46), 0x10))
510 {
511 Store (0x00, \C4AC)
512 }
513 Else
514 {
515 Store (0x01, \C4AC)
516 }
517
518 If (\LNUX)
519 {
520 \_SB.PCI0.LPC.EC.SAUM (0x02)
521 \UCMS (0x1C)
522 }
523
524 Store (\SRAH, \_SB.PCI0.RID)
525 If (VIGD)
526 {
527 Store (\SRHE, \_SB.PCI0.VID.RID)
528 }
529 Else
530 {
531 Store (\SRHE, \_SB.PCI0.AGP.RID)
532 }
533
534 Store (\SRE0, \_SB.PCI0.EXP0.RID)
535 Store (\SRE1, \_SB.PCI0.EXP1.RID)
536 Store (\SRE2, \_SB.PCI0.EXP2.RID)
537 Store (\SRE3, \_SB.PCI0.EXP3.RID)
538 Store (\SRU0, \_SB.PCI0.USB0.RID)
539 Store (\SRU1, \_SB.PCI0.USB1.RID)
540 Store (\SRU3, \_SB.PCI0.USB3.RID)
541 Store (\SRU7, \_SB.PCI0.EHC0.RID)
542 Store (\SRU3, \_SB.PCI0.USB3.RID)
543 Store (\SRU4, \_SB.PCI0.USB4.RID)
544 Store (\SRU8, \_SB.PCI0.EHC1.RID)
545 Store (\SRPB, \_SB.PCI0.PCI1.RID)
546 Store (\SRLP, \_SB.PCI0.LPC.RID)
547 Store (\SRSA, \_SB.PCI0.IDE0.RID)
548 Store (\SRSA, \_SB.PCI0.SATA.RID)
549 Store (\SRSM, \_SB.PCI0.SMBU.RID)
550 }
551
552 Device (LNKA)
553 {
554 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
555 Name (_UID, 0x01) // _UID: Unique ID
556 Method (_STA, 0, NotSerialized) // _STA: Status
557 {
558 If (LNot (VPIR (\_SB.PCI0.LPC.PIRA)))
559 {
560 Return (0x09)
561 }
562 Else
563 {
564 Return (0x0B)
565 }
566 }
567
568 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
569 {
570 IRQ (Level, ActiveLow, Shared, )
571 {3,4,5,6,7,9,10,11}
572 })
573 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
574 {
575 Or (\_SB.PCI0.LPC.PIRA, 0x80, \_SB.PCI0.LPC.PIRA)
576 }
577
578 Name (BUFA, ResourceTemplate ()
579 {
580 IRQ (Level, ActiveLow, Shared, _Y00)
581 {}
582 })
583 CreateWordField (BUFA, \_SB.LNKA._Y00._INT, IRA1) // _INT: Interrupts
584 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
585 {
586 And (\_SB.PCI0.LPC.PIRA, 0x8F, Local0)
587 If (VPIR (Local0))
588 {
589 ShiftLeft (0x01, Local0, IRA1)
590 }
591 Else
592 {
593 Store (0x00, IRA1)
594 }
595
596 Return (BUFA)
597 }
598
599 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
600 {
601 CreateWordField (Arg0, 0x01, IRA2)
602 FindSetRightBit (IRA2, Local0)
603 And (\_SB.PCI0.LPC.PIRA, 0x70, Local1)
604 Or (Local1, Decrement (Local0), Local1)
605 Store (Local1, \_SB.PCI0.LPC.PIRA)
606 }
607 }
608
609 Device (LNKB)
610 {
611 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
612 Name (_UID, 0x02) // _UID: Unique ID
613 Method (_STA, 0, NotSerialized) // _STA: Status
614 {
615 If (LNot (VPIR (\_SB.PCI0.LPC.PIRB)))
616 {
617 Return (0x09)
618 }
619 Else
620 {
621 Return (0x0B)
622 }
623 }
624
625 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
626 {
627 IRQ (Level, ActiveLow, Shared, )
628 {3,4,5,6,7,9,10,11}
629 })
630 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
631 {
632 Or (\_SB.PCI0.LPC.PIRB, 0x80, \_SB.PCI0.LPC.PIRB)
633 }
634
635 Name (BUFB, ResourceTemplate ()
636 {
637 IRQ (Level, ActiveLow, Shared, _Y01)
638 {}
639 })
640 CreateWordField (BUFB, \_SB.LNKB._Y01._INT, IRB1) // _INT: Interrupts
641 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
642 {
643 And (\_SB.PCI0.LPC.PIRB, 0x8F, Local0)
644 If (VPIR (Local0))
645 {
646 ShiftLeft (0x01, Local0, IRB1)
647 }
648 Else
649 {
650 Store (0x00, IRB1)
651 }
652
653 Return (BUFB)
654 }
655
656 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
657 {
658 CreateWordField (Arg0, 0x01, IRB2)
659 FindSetRightBit (IRB2, Local0)
660 And (\_SB.PCI0.LPC.PIRB, 0x70, Local1)
661 Or (Local1, Decrement (Local0), Local1)
662 Store (Local1, \_SB.PCI0.LPC.PIRB)
663 }
664 }
665
666 Device (LNKC)
667 {
668 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
669 Name (_UID, 0x03) // _UID: Unique ID
670 Method (_STA, 0, NotSerialized) // _STA: Status
671 {
672 If (LNot (VPIR (\_SB.PCI0.LPC.PIRC)))
673 {
674 Return (0x09)
675 }
676 Else
677 {
678 Return (0x0B)
679 }
680 }
681
682 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
683 {
684 IRQ (Level, ActiveLow, Shared, )
685 {3,4,5,6,7,9,10,11}
686 })
687 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
688 {
689 Or (\_SB.PCI0.LPC.PIRC, 0x80, \_SB.PCI0.LPC.PIRC)
690 }
691
692 Name (BUFC, ResourceTemplate ()
693 {
694 IRQ (Level, ActiveLow, Shared, _Y02)
695 {}
696 })
697 CreateWordField (BUFC, \_SB.LNKC._Y02._INT, IRC1) // _INT: Interrupts
698 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
699 {
700 And (\_SB.PCI0.LPC.PIRC, 0x8F, Local0)
701 If (VPIR (Local0))
702 {
703 ShiftLeft (0x01, Local0, IRC1)
704 }
705 Else
706 {
707 Store (0x00, IRC1)
708 }
709
710 Return (BUFC)
711 }
712
713 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
714 {
715 CreateWordField (Arg0, 0x01, IRC2)
716 FindSetRightBit (IRC2, Local0)
717 And (\_SB.PCI0.LPC.PIRC, 0x70, Local1)
718 Or (Local1, Decrement (Local0), Local1)
719 Store (Local1, \_SB.PCI0.LPC.PIRC)
720 }
721 }
722
723 Device (LNKD)
724 {
725 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
726 Name (_UID, 0x04) // _UID: Unique ID
727 Method (_STA, 0, NotSerialized) // _STA: Status
728 {
729 If (LNot (VPIR (\_SB.PCI0.LPC.PIRD)))
730 {
731 Return (0x09)
732 }
733 Else
734 {
735 Return (0x0B)
736 }
737 }
738
739 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
740 {
741 IRQ (Level, ActiveLow, Shared, )
742 {3,4,5,6,7,9,10,11}
743 })
744 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
745 {
746 Or (\_SB.PCI0.LPC.PIRD, 0x80, \_SB.PCI0.LPC.PIRD)
747 }
748
749 Name (BUFD, ResourceTemplate ()
750 {
751 IRQ (Level, ActiveLow, Shared, _Y03)
752 {}
753 })
754 CreateWordField (BUFD, \_SB.LNKD._Y03._INT, IRD1) // _INT: Interrupts
755 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
756 {
757 And (\_SB.PCI0.LPC.PIRD, 0x8F, Local0)
758 If (VPIR (Local0))
759 {
760 ShiftLeft (0x01, Local0, IRD1)
761 }
762 Else
763 {
764 Store (0x00, IRD1)
765 }
766
767 Return (BUFD)
768 }
769
770 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
771 {
772 CreateWordField (Arg0, 0x01, IRD2)
773 FindSetRightBit (IRD2, Local0)
774 And (\_SB.PCI0.LPC.PIRD, 0x70, Local1)
775 Or (Local1, Decrement (Local0), Local1)
776 Store (Local1, \_SB.PCI0.LPC.PIRD)
777 }
778 }
779
780 Device (LNKE)
781 {
782 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
783 Name (_UID, 0x05) // _UID: Unique ID
784 Method (_STA, 0, NotSerialized) // _STA: Status
785 {
786 If (LNot (VPIR (\_SB.PCI0.LPC.PIRE)))
787 {
788 Return (0x09)
789 }
790 Else
791 {
792 Return (0x0B)
793 }
794 }
795
796 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
797 {
798 IRQ (Level, ActiveLow, Shared, )
799 {3,4,5,6,7,9,10,11}
800 })
801 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
802 {
803 Or (\_SB.PCI0.LPC.PIRE, 0x80, \_SB.PCI0.LPC.PIRE)
804 }
805
806 Name (BUFE, ResourceTemplate ()
807 {
808 IRQ (Level, ActiveLow, Shared, _Y04)
809 {}
810 })
811 CreateWordField (BUFE, \_SB.LNKE._Y04._INT, IRE1) // _INT: Interrupts
812 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
813 {
814 And (\_SB.PCI0.LPC.PIRE, 0x8F, Local0)
815 If (VPIR (Local0))
816 {
817 ShiftLeft (0x01, Local0, IRE1)
818 }
819 Else
820 {
821 Store (0x00, IRE1)
822 }
823
824 Return (BUFE)
825 }
826
827 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
828 {
829 CreateWordField (Arg0, 0x01, IRE2)
830 FindSetRightBit (IRE2, Local0)
831 And (\_SB.PCI0.LPC.PIRE, 0x70, Local1)
832 Or (Local1, Decrement (Local0), Local1)
833 Store (Local1, \_SB.PCI0.LPC.PIRE)
834 }
835 }
836
837 Device (LNKF)
838 {
839 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
840 Name (_UID, 0x06) // _UID: Unique ID
841 Method (_STA, 0, NotSerialized) // _STA: Status
842 {
843 If (LNot (VPIR (\_SB.PCI0.LPC.PIRF)))
844 {
845 Return (0x09)
846 }
847 Else
848 {
849 Return (0x0B)
850 }
851 }
852
853 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
854 {
855 IRQ (Level, ActiveLow, Shared, )
856 {3,4,5,6,7,9,10,11}
857 })
858 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
859 {
860 Or (\_SB.PCI0.LPC.PIRF, 0x80, \_SB.PCI0.LPC.PIRF)
861 }
862
863 Name (BUFF, ResourceTemplate ()
864 {
865 IRQ (Level, ActiveLow, Shared, _Y05)
866 {}
867 })
868 CreateWordField (BUFF, \_SB.LNKF._Y05._INT, IRF1) // _INT: Interrupts
869 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
870 {
871 And (\_SB.PCI0.LPC.PIRF, 0x8F, Local0)
872 If (VPIR (Local0))
873 {
874 ShiftLeft (0x01, Local0, IRF1)
875 }
876 Else
877 {
878 Store (0x00, IRF1)
879 }
880
881 Return (BUFF)
882 }
883
884 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
885 {
886 CreateWordField (Arg0, 0x01, IRF2)
887 FindSetRightBit (IRF2, Local0)
888 And (\_SB.PCI0.LPC.PIRF, 0x70, Local1)
889 Or (Local1, Decrement (Local0), Local1)
890 Store (Local1, \_SB.PCI0.LPC.PIRF)
891 }
892 }
893
894 Device (LNKG)
895 {
896 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
897 Name (_UID, 0x07) // _UID: Unique ID
898 Method (_STA, 0, NotSerialized) // _STA: Status
899 {
900 If (LNot (VPIR (\_SB.PCI0.LPC.PIRG)))
901 {
902 Return (0x09)
903 }
904 Else
905 {
906 Return (0x0B)
907 }
908 }
909
910 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
911 {
912 IRQ (Level, ActiveLow, Shared, )
913 {3,4,5,6,7,9,10,11}
914 })
915 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
916 {
917 Or (\_SB.PCI0.LPC.PIRG, 0x80, \_SB.PCI0.LPC.PIRG)
918 }
919
920 Name (BUFG, ResourceTemplate ()
921 {
922 IRQ (Level, ActiveLow, Shared, _Y06)
923 {}
924 })
925 CreateWordField (BUFG, \_SB.LNKG._Y06._INT, IRG1) // _INT: Interrupts
926 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
927 {
928 And (\_SB.PCI0.LPC.PIRG, 0x8F, Local0)
929 If (VPIR (Local0))
930 {
931 ShiftLeft (0x01, Local0, IRG1)
932 }
933 Else
934 {
935 Store (0x00, IRG1)
936 }
937
938 Return (BUFG)
939 }
940
941 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
942 {
943 CreateWordField (Arg0, 0x01, IRG2)
944 FindSetRightBit (IRG2, Local0)
945 And (\_SB.PCI0.LPC.PIRG, 0x70, Local1)
946 Or (Local1, Decrement (Local0), Local1)
947 Store (Local1, \_SB.PCI0.LPC.PIRG)
948 }
949 }
950
951 Device (LNKH)
952 {
953 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
954 Name (_UID, 0x08) // _UID: Unique ID
955 Method (_STA, 0, NotSerialized) // _STA: Status
956 {
957 If (LNot (VPIR (\_SB.PCI0.LPC.PIRH)))
958 {
959 Return (0x09)
960 }
961 Else
962 {
963 Return (0x0B)
964 }
965 }
966
967 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
968 {
969 IRQ (Level, ActiveLow, Shared, )
970 {3,4,5,6,7,9,10,11}
971 })
972 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
973 {
974 Or (\_SB.PCI0.LPC.PIRH, 0x80, \_SB.PCI0.LPC.PIRH)
975 }
976
977 Name (BUFH, ResourceTemplate ()
978 {
979 IRQ (Level, ActiveLow, Shared, _Y07)
980 {}
981 })
982 CreateWordField (BUFH, \_SB.LNKH._Y07._INT, IRH1) // _INT: Interrupts
983 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
984 {
985 And (\_SB.PCI0.LPC.PIRH, 0x8F, Local0)
986 If (VPIR (Local0))
987 {
988 ShiftLeft (0x01, Local0, IRH1)
989 }
990 Else
991 {
992 Store (0x00, IRH1)
993 }
994
995 Return (BUFH)
996 }
997
998 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
999 {
1000 CreateWordField (Arg0, 0x01, IRH2)
1001 FindSetRightBit (IRH2, Local0)
1002 And (\_SB.PCI0.LPC.PIRH, 0x70, Local1)
1003 Or (Local1, Decrement (Local0), Local1)
1004 Store (Local1, \_SB.PCI0.LPC.PIRH)
1005 }
1006 }
1007
1008 Method (VPIR, 1, NotSerialized)
1009 {
1010 Store (0x01, Local0)
1011 If (And (Arg0, 0x80))
1012 {
1013 Store (0x00, Local0)
1014 }
1015 Else
1016 {
1017 And (Arg0, 0x0F, Local1)
1018 If (LLess (Local1, 0x03))
1019 {
1020 Store (0x00, Local0)
1021 }
1022 Else
1023 {
1024 If (LOr (LEqual (Local1, 0x08), LEqual (Local1, 0x0D)))
1025 {
1026 Store (0x00, Local0)
1027 }
1028 }
1029 }
1030
1031 Return (Local0)
1032 }
1033
1034 Device (MEM)
1035 {
1036 Name (_HID, EisaId ("PNP0C01")) // _HID: Hardware ID
1037 Name (ME98, ResourceTemplate ()
1038 {
1039 Memory32Fixed (ReadWrite,
1040 0x00000000, // Address Base
1041 0x000A0000, // Address Length
1042 )
1043 Memory32Fixed (ReadOnly,
1044 0x000E0000, // Address Base
1045 0x00020000, // Address Length
1046 )
1047 Memory32Fixed (ReadWrite,
1048 0x00100000, // Address Base
1049 0x01EE0000, // Address Length
1050 _Y08)
1051 Memory32Fixed (ReadOnly,
1052 0xFEC00000, // Address Base
1053 0x00140000, // Address Length
1054 )
1055 Memory32Fixed (ReadOnly,
1056 0xFED4C000, // Address Base
1057 0x012B4000, // Address Length
1058 )
1059 })
1060 CreateDWordField (ME98, \_SB.MEM._Y08._BAS, MEB0) // _BAS: Base Address
1061 CreateDWordField (ME98, \_SB.MEM._Y08._LEN, MEL0) // _LEN: Length
1062 Name (MGAP, ResourceTemplate ()
1063 {
1064 Memory32Fixed (ReadOnly,
1065 0x00000000, // Address Base
1066 0x00000000, // Address Length
1067 _Y09)
1068 })
1069 CreateDWordField (MGAP, \_SB.MEM._Y09._BAS, MGPB) // _BAS: Base Address
1070 CreateDWordField (MGAP, \_SB.MEM._Y09._LEN, MGPL) // _LEN: Length
1071 Name (MEMS, ResourceTemplate ()
1072 {
1073 Memory32Fixed (ReadWrite,
1074 0x00000000, // Address Base
1075 0x000A0000, // Address Length
1076 )
1077 Memory32Fixed (ReadOnly,
1078 0x000C0000, // Address Base
1079 0x00000000, // Address Length
1080 _Y0A)
1081 Memory32Fixed (ReadOnly,
1082 0x000C4000, // Address Base
1083 0x00000000, // Address Length
1084 _Y0B)
1085 Memory32Fixed (ReadOnly,
1086 0x000C8000, // Address Base
1087 0x00000000, // Address Length
1088 _Y0C)
1089 Memory32Fixed (ReadOnly,
1090 0x000CC000, // Address Base
1091 0x00000000, // Address Length
1092 _Y0D)
1093 Memory32Fixed (ReadOnly,
1094 0x000D0000, // Address Base
1095 0x00000000, // Address Length
1096 _Y0E)
1097 Memory32Fixed (ReadOnly,
1098 0x000D4000, // Address Base
1099 0x00000000, // Address Length
1100 _Y0F)
1101 Memory32Fixed (ReadOnly,
1102 0x000D8000, // Address Base
1103 0x00000000, // Address Length
1104 _Y10)
1105 Memory32Fixed (ReadOnly,
1106 0x000DC000, // Address Base
1107 0x00000000, // Address Length
1108 _Y11)
1109 Memory32Fixed (ReadOnly,
1110 0x000E0000, // Address Base
1111 0x00000000, // Address Length
1112 _Y12)
1113 Memory32Fixed (ReadOnly,
1114 0x000E4000, // Address Base
1115 0x00000000, // Address Length
1116 _Y13)
1117 Memory32Fixed (ReadOnly,
1118 0x000E8000, // Address Base
1119 0x00000000, // Address Length
1120 _Y14)
1121 Memory32Fixed (ReadOnly,
1122 0x000EC000, // Address Base
1123 0x00000000, // Address Length
1124 _Y15)
1125 Memory32Fixed (ReadOnly,
1126 0x000F0000, // Address Base
1127 0x00010000, // Address Length
1128 )
1129 Memory32Fixed (ReadWrite,
1130 0x00100000, // Address Base
1131 0x01EE0000, // Address Length
1132 _Y16)
1133 Memory32Fixed (ReadOnly,
1134 0xFEC00000, // Address Base
1135 0x00140000, // Address Length
1136 _Y17)
1137 Memory32Fixed (ReadOnly,
1138 0xFED4C000, // Address Base
1139 0x012B4000, // Address Length
1140 _Y18)
1141 })
1142 CreateDWordField (MEMS, \_SB.MEM._Y0A._LEN, MC0L) // _LEN: Length
1143 CreateDWordField (MEMS, \_SB.MEM._Y0B._LEN, MC4L) // _LEN: Length
1144 CreateDWordField (MEMS, \_SB.MEM._Y0C._LEN, MC8L) // _LEN: Length
1145 CreateDWordField (MEMS, \_SB.MEM._Y0D._LEN, MCCL) // _LEN: Length
1146 CreateDWordField (MEMS, \_SB.MEM._Y0E._LEN, MD0L) // _LEN: Length
1147 CreateDWordField (MEMS, \_SB.MEM._Y0F._LEN, MD4L) // _LEN: Length
1148 CreateDWordField (MEMS, \_SB.MEM._Y10._LEN, MD8L) // _LEN: Length
1149 CreateDWordField (MEMS, \_SB.MEM._Y11._LEN, MDCL) // _LEN: Length
1150 CreateDWordField (MEMS, \_SB.MEM._Y12._LEN, ME0L) // _LEN: Length
1151 CreateDWordField (MEMS, \_SB.MEM._Y13._LEN, ME4L) // _LEN: Length
1152 CreateDWordField (MEMS, \_SB.MEM._Y14._LEN, ME8L) // _LEN: Length
1153 CreateDWordField (MEMS, \_SB.MEM._Y15._LEN, MECL) // _LEN: Length
1154 CreateBitField (MEMS, \_SB.MEM._Y0A._RW, MC0W) // _RW_: Read-Write Status
1155 CreateBitField (MEMS, \_SB.MEM._Y0B._RW, MC4W) // _RW_: Read-Write Status
1156 CreateBitField (MEMS, \_SB.MEM._Y0C._RW, MC8W) // _RW_: Read-Write Status
1157 CreateBitField (MEMS, \_SB.MEM._Y0D._RW, MCCW) // _RW_: Read-Write Status
1158 CreateBitField (MEMS, \_SB.MEM._Y0E._RW, MD0W) // _RW_: Read-Write Status
1159 CreateBitField (MEMS, \_SB.MEM._Y0F._RW, MD4W) // _RW_: Read-Write Status
1160 CreateBitField (MEMS, \_SB.MEM._Y10._RW, MD8W) // _RW_: Read-Write Status
1161 CreateBitField (MEMS, \_SB.MEM._Y11._RW, MDCW) // _RW_: Read-Write Status
1162 CreateBitField (MEMS, \_SB.MEM._Y12._RW, ME0W) // _RW_: Read-Write Status
1163 CreateBitField (MEMS, \_SB.MEM._Y13._RW, ME4W) // _RW_: Read-Write Status
1164 CreateBitField (MEMS, \_SB.MEM._Y14._RW, ME8W) // _RW_: Read-Write Status
1165 CreateBitField (MEMS, \_SB.MEM._Y15._RW, MECW) // _RW_: Read-Write Status
1166 CreateDWordField (MEMS, \_SB.MEM._Y16._BAS, MEB1) // _BAS: Base Address
1167 CreateDWordField (MEMS, \_SB.MEM._Y16._LEN, MEL1) // _LEN: Length
1168 CreateDWordField (MEMS, \_SB.MEM._Y17._LEN, MEL2) // _LEN: Length
1169 CreateDWordField (MEMS, \_SB.MEM._Y18._LEN, MEL3) // _LEN: Length
1170 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
1171 {
1172 If (\W98F)
1173 {
1174 Subtract (\MEMX, MEB0, MEL0)
1175 Store (\GAPA, MGPB)
1176 Store (\GAPL, MGPL)
1177 If (LAnd (MGPB, MGPL))
1178 {
1179 Subtract (SizeOf (ME98), 0x02, Local0)
1180 Name (MBF0, Buffer (Local0) {})
1181 Add (Local0, SizeOf (MGAP), Local0)
1182 Name (MBF1, Buffer (Local0) {})
1183 Store (ME98, MBF0)
1184 Concatenate (MBF0, MGAP, MBF1)
1185 If (LNotEqual (\_SB.PCI0.LPC.TPM._STA (), 0x0F))
1186 {
1187 Subtract (SizeOf (MBF1), 0x02, Local0)
1188 Name (MBF2, Buffer (Local0) {})
1189 Add (Local0, SizeOf (\_SB.PCI0.LPC.TPM._CRS), Local0)
1190 Name (MBF3, Buffer (Local0) {})
1191 Store (MBF1, MBF2)
1192 Concatenate (MBF2, \_SB.PCI0.LPC.TPM._CRS, MBF3)
1193 Return (MBF3)
1194 }
1195 Else
1196 {
1197 Return (MBF1)
1198 }
1199 }
1200 Else
1201 {
1202 If (LNotEqual (\_SB.PCI0.LPC.TPM._STA (), 0x0F))
1203 {
1204 Subtract (SizeOf (ME98), 0x02, Local0)
1205 Name (MBF4, Buffer (Local0) {})
1206 Add (Local0, SizeOf (\_SB.PCI0.LPC.TPM._CRS), Local0)
1207 Name (MBF5, Buffer (Local0) {})
1208 Store (ME98, MBF4)
1209 Concatenate (MBF4, \_SB.PCI0.LPC.TPM._CRS, MBF5)
1210 Return (MBF5)
1211 }
1212 Else
1213 {
1214 Return (ME98)
1215 }
1216 }
1217 }
1218
1219 And (\_SB.PCI0.PAM1, 0x03, Local0)
1220 If (Local0)
1221 {
1222 Store (0x4000, MC0L)
1223 If (And (Local0, 0x02))
1224 {
1225 Store (0x01, MC0W)
1226 }
1227 }
1228
1229 And (\_SB.PCI0.PAM1, 0x30, Local0)
1230 If (Local0)
1231 {
1232 Store (0x4000, MC4L)
1233 If (And (Local0, 0x20))
1234 {
1235 Store (0x01, MC4W)
1236 }
1237 }
1238
1239 And (\_SB.PCI0.PAM2, 0x03, Local0)
1240 If (Local0)
1241 {
1242 Store (0x4000, MC8L)
1243 If (And (Local0, 0x02))
1244 {
1245 Store (0x01, MC8W)
1246 }
1247 }
1248
1249 And (\_SB.PCI0.PAM2, 0x30, Local0)
1250 If (Local0)
1251 {
1252 Store (0x4000, MCCL)
1253 If (And (Local0, 0x20))
1254 {
1255 Store (0x01, MCCW)
1256 }
1257 }
1258
1259 And (\_SB.PCI0.PAM3, 0x03, Local0)
1260 If (Local0)
1261 {
1262 Store (0x4000, MD0L)
1263 If (And (Local0, 0x02))
1264 {
1265 Store (0x01, MD0W)
1266 }
1267 }
1268
1269 And (\_SB.PCI0.PAM3, 0x30, Local0)
1270 If (Local0)
1271 {
1272 Store (0x4000, MD4L)
1273 If (And (Local0, 0x20))
1274 {
1275 Store (0x01, MD4W)
1276 }
1277 }
1278
1279 And (\_SB.PCI0.PAM4, 0x03, Local0)
1280 If (Local0)
1281 {
1282 Store (0x4000, MD8L)
1283 If (And (Local0, 0x02))
1284 {
1285 Store (0x01, MD8W)
1286 }
1287 }
1288
1289 And (\_SB.PCI0.PAM4, 0x30, Local0)
1290 If (Local0)
1291 {
1292 Store (0x4000, MDCL)
1293 If (And (Local0, 0x20))
1294 {
1295 Store (0x01, MDCW)
1296 }
1297 }
1298
1299 And (\_SB.PCI0.PAM5, 0x03, Local0)
1300 If (Local0)
1301 {
1302 Store (0x4000, ME0L)
1303 If (And (Local0, 0x02))
1304 {
1305 Store (0x01, ME0W)
1306 }
1307 }
1308
1309 And (\_SB.PCI0.PAM5, 0x30, Local0)
1310 If (Local0)
1311 {
1312 Store (0x4000, ME4L)
1313 If (And (Local0, 0x20))
1314 {
1315 Store (0x01, ME4W)
1316 }
1317 }
1318
1319 And (\_SB.PCI0.PAM6, 0x03, Local0)
1320 If (Local0)
1321 {
1322 Store (0x4000, ME8L)
1323 If (And (Local0, 0x02))
1324 {
1325 Store (0x01, ME8W)
1326 }
1327 }
1328
1329 And (\_SB.PCI0.PAM6, 0x30, Local0)
1330 If (Local0)
1331 {
1332 Store (0x4000, MECL)
1333 If (And (Local0, 0x20))
1334 {
1335 Store (0x01, MECW)
1336 }
1337 }
1338
1339 Subtract (\MEMX, MEB1, MEL1)
1340 If (LNotEqual (\_SB.PCI0.LPC.TPM._STA (), 0x0F))
1341 {
1342 Store (0x01400000, MEL2)
1343 Store (0x00, MEL3)
1344 }
1345
1346 Return (MEMS)
1347 }
1348 }
1349
1350 Device (LID)
1351 {
1352 Name (_HID, EisaId ("PNP0C0D")) // _HID: Hardware ID
1353 Method (_LID, 0, NotSerialized) // _LID: Lid Status
1354 {
1355 If (\H8DR)
1356 {
1357 Return (\_SB.PCI0.LPC.EC.HPLD)
1358 }
1359 Else
1360 {
1361 If (And (\RBEC (0x46), 0x04))
1362 {
1363 Return (0x01)
1364 }
1365 Else
1366 {
1367 Return (0x00)
1368 }
1369 }
1370 }
1371
1372 Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
1373 {
1374 If (LAnd (\W98F, LNot (\WMEF)))
1375 {
1376 Return (Package (0x02)
1377 {
1378 0x18,
1379 0x04
1380 })
1381 }
1382 Else
1383 {
1384 Return (Package (0x02)
1385 {
1386 0x18,
1387 0x03
1388 })
1389 }
1390 }
1391
1392 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
1393 {
1394 If (\H8DR)
1395 {
1396 If (Arg0)
1397 {
1398 Store (0x01, \_SB.PCI0.LPC.EC.HWLO)
1399 }
1400 Else
1401 {
1402 Store (0x00, \_SB.PCI0.LPC.EC.HWLO)
1403 }
1404 }
1405 Else
1406 {
1407 If (Arg0)
1408 {
1409 \MBEC (0x32, 0xFF, 0x04)
1410 }
1411 Else
1412 {
1413 \MBEC (0x32, 0xFB, 0x00)
1414 }
1415 }
1416 }
1417 }
1418
1419 Device (SLPB)
1420 {
1421 Name (_HID, EisaId ("PNP0C0E")) // _HID: Hardware ID
1422 Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
1423 {
1424 If (LAnd (\W98F, LNot (\WMEF)))
1425 {
1426 Return (Package (0x02)
1427 {
1428 0x18,
1429 0x04
1430 })
1431 }
1432 Else
1433 {
1434 Return (Package (0x02)
1435 {
1436 0x18,
1437 0x03
1438 })
1439 }
1440 }
1441
1442 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
1443 {
1444 If (\H8DR)
1445 {
1446 If (Arg0)
1447 {
1448 Store (0x01, \_SB.PCI0.LPC.EC.HWFN)
1449 }
1450 Else
1451 {
1452 Store (0x00, \_SB.PCI0.LPC.EC.HWFN)
1453 }
1454 }
1455 Else
1456 {
1457 If (Arg0)
1458 {
1459 \MBEC (0x32, 0xFF, 0x10)
1460 }
1461 Else
1462 {
1463 \MBEC (0x32, 0xEF, 0x00)
1464 }
1465 }
1466 }
1467 }
1468
1469 Device (PCI0)
1470 {
1471 Device (LPC)
1472 {
1473 Name (_ADR, 0x001F0000) // _ADR: Address
1474 Name (_S3D, 0x03) // _S3D: S3 Device State
1475 Name (RID, 0x00)
1476 Device (SIO)
1477 {
1478 Name (_HID, EisaId ("PNP0C02")) // _HID: Hardware ID
1479 Name (_UID, 0x00) // _UID: Unique ID
1480 Name (SCRS, ResourceTemplate ()
1481 {
1482 IO (Decode16,
1483 0x0010, // Range Minimum
1484 0x0010, // Range Maximum
1485 0x01, // Alignment
1486 0x10, // Length
1487 )
1488 IO (Decode16,
1489 0x0090, // Range Minimum
1490 0x0090, // Range Maximum
1491 0x01, // Alignment
1492 0x10, // Length
1493 )
1494 IO (Decode16,
1495 0x0024, // Range Minimum
1496 0x0024, // Range Maximum
1497 0x01, // Alignment
1498 0x02, // Length
1499 )
1500 IO (Decode16,
1501 0x0028, // Range Minimum
1502 0x0028, // Range Maximum
1503 0x01, // Alignment
1504 0x02, // Length
1505 )
1506 IO (Decode16,
1507 0x002C, // Range Minimum
1508 0x002C, // Range Maximum
1509 0x01, // Alignment
1510 0x02, // Length
1511 )
1512 IO (Decode16,
1513 0x0030, // Range Minimum
1514 0x0030, // Range Maximum
1515 0x01, // Alignment
1516 0x02, // Length
1517 )
1518 IO (Decode16,
1519 0x0034, // Range Minimum
1520 0x0034, // Range Maximum
1521 0x01, // Alignment
1522 0x02, // Length
1523 )
1524 IO (Decode16,
1525 0x0038, // Range Minimum
1526 0x0038, // Range Maximum
1527 0x01, // Alignment
1528 0x02, // Length
1529 )
1530 IO (Decode16,
1531 0x003C, // Range Minimum
1532 0x003C, // Range Maximum
1533 0x01, // Alignment
1534 0x02, // Length
1535 )
1536 IO (Decode16,
1537 0x00A4, // Range Minimum
1538 0x00A4, // Range Maximum
1539 0x01, // Alignment
1540 0x02, // Length
1541 )
1542 IO (Decode16,
1543 0x00A8, // Range Minimum
1544 0x00A8, // Range Maximum
1545 0x01, // Alignment
1546 0x02, // Length
1547 )
1548 IO (Decode16,
1549 0x00AC, // Range Minimum
1550 0x00AC, // Range Maximum
1551 0x01, // Alignment
1552 0x02, // Length
1553 )
1554 IO (Decode16,
1555 0x00B0, // Range Minimum
1556 0x00B0, // Range Maximum
1557 0x01, // Alignment
1558 0x06, // Length
1559 )
1560 IO (Decode16,
1561 0x00B8, // Range Minimum
1562 0x00B8, // Range Maximum
1563 0x01, // Alignment
1564 0x02, // Length
1565 )
1566 IO (Decode16,
1567 0x00BC, // Range Minimum
1568 0x00BC, // Range Maximum
1569 0x01, // Alignment
1570 0x02, // Length
1571 )
1572 IO (Decode16,
1573 0x0050, // Range Minimum
1574 0x0050, // Range Maximum
1575 0x01, // Alignment
1576 0x04, // Length
1577 )
1578 IO (Decode16,
1579 0x0072, // Range Minimum
1580 0x0072, // Range Maximum
1581 0x01, // Alignment
1582 0x06, // Length
1583 )
1584 IO (Decode16,
1585 0x164E, // Range Minimum
1586 0x164E, // Range Maximum
1587 0x01, // Alignment
1588 0x02, // Length
1589 )
1590 IO (Decode16,
1591 0x002E, // Range Minimum
1592 0x002E, // Range Maximum
1593 0x01, // Alignment
1594 0x02, // Length
1595 )
1596 IO (Decode16,
1597 0x1000, // Range Minimum
1598 0x1000, // Range Maximum
1599 0x01, // Alignment
1600 0x80, // Length
1601 )
1602 IO (Decode16,
1603 0x1180, // Range Minimum
1604 0x1180, // Range Maximum
1605 0x01, // Alignment
1606 0x40, // Length
1607 )
1608 IO (Decode16,
1609 0x0800, // Range Minimum
1610 0x0800, // Range Maximum
1611 0x01, // Alignment
1612 0x10, // Length
1613 )
1614 IO (Decode16,
1615 0x15E0, // Range Minimum
1616 0x15E0, // Range Maximum
1617 0x01, // Alignment
1618 0x10, // Length
1619 )
1620 IO (Decode16,
1621 0x1600, // Range Minimum
1622 0x1600, // Range Maximum
1623 0x01, // Alignment
1624 0x60, // Length
1625 )
1626 Memory32Fixed (ReadWrite,
1627 0xF0000000, // Address Base
1628 0x04000000, // Address Length
1629 )
1630 Memory32Fixed (ReadWrite,
1631 0xFED1C000, // Address Base
1632 0x00004000, // Address Length
1633 )
1634 Memory32Fixed (ReadWrite,
1635 0xFED14000, // Address Base
1636 0x00004000, // Address Length
1637 )
1638 Memory32Fixed (ReadWrite,
1639 0xFED18000, // Address Base
1640 0x00001000, // Address Length
1641 )
1642 Memory32Fixed (ReadWrite,
1643 0xFED19000, // Address Base
1644 0x00001000, // Address Length
1645 )
1646 Memory32Fixed (ReadWrite,
1647 0xFED45000, // Address Base
1648 0x00007000, // Address Length
1649 )
1650 })
1651 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
1652 {
1653 If (LEqual (\_SB.PCI0.LPC.TPM._STA (), 0x0F))
1654 {
1655 Return (SCRS)
1656 }
1657 Else
1658 {
1659 Subtract (SizeOf (SCRS), 0x02, Local0)
1660 Name (BUF0, Buffer (Local0) {})
1661 Add (Local0, SizeOf (\_SB.PCI0.LPC.TPM._CRS), Local0)
1662 Name (BUF1, Buffer (Local0) {})
1663 Store (SCRS, BUF0)
1664 Concatenate (BUF0, \_SB.PCI0.LPC.TPM._CRS, BUF1)
1665 Return (BUF1)
1666 }
1667 }
1668 }
1669
1670 OperationRegion (LPCS, PCI_Config, 0x00, 0x0100)
1671 Field (LPCS, AnyAcc, NoLock, Preserve)
1672 {
1673 Offset (0x60),
1674 PIRA, 8,
1675 PIRB, 8,
1676 PIRC, 8,
1677 PIRD, 8,
1678 SERQ, 8,
1679 Offset (0x68),
1680 PIRE, 8,
1681 PIRF, 8,
1682 PIRG, 8,
1683 PIRH, 8,
1684 Offset (0x80),
1685 XU1A, 3,
1686 , 1,
1687 XU2A, 3,
1688 Offset (0x81),
1689 XPA, 2,
1690 , 2,
1691 XFA, 1,
1692 Offset (0x82),
1693 XU1E, 1,
1694 XU2E, 1,
1695 XPE, 1,
1696 XFE, 1,
1697 Offset (0x84),
1698 XG1E, 1,
1699 , 6,
1700 XG1A, 9,
1701 Offset (0x88),
1702 XG2E, 1,
1703 , 3,
1704 XG2A, 12,
1705 Offset (0xA0),
1706 , 2,
1707 CLKR, 1,
1708 GYEN, 1,
1709 , 3,
1710 C4C3, 1,
1711 , 2,
1712 EXPE, 1,
1713 Offset (0xA2)
1714 }
1715
1716 OperationRegion (LPIO, SystemIO, 0x1180, 0x40)
1717 Field (LPIO, DWordAcc, NoLock, Preserve)
1718 {
1719 GU00, 8,
1720 GU01, 8,
1721 GU02, 8,
1722 GU03, 8,
1723 GI00, 8,
1724 GI01, 8,
1725 GI02, 8,
1726 GI03, 8,
1727 Offset (0x0C),
1728 GL00, 8,
1729 GL01, 8,
1730 GL02, 8,
1731 GL03, 8,
1732 Offset (0x18),
1733 GB00, 8,
1734 GB01, 8,
1735 GB02, 8,
1736 GB03, 8,
1737 Offset (0x2C),
1738 GV00, 8,
1739 GV01, 8,
1740 GV02, 8,
1741 GV03, 8,
1742 GU04, 8,
1743 GU05, 8,
1744 GU06, 8,
1745 GU07, 8,
1746 GI04, 8,
1747 GI05, 8,
1748 GI06, 8,
1749 GI07, 8,
1750 GL04, 8,
1751 GL05, 8,
1752 GL06, 8,
1753 GL07, 8
1754 }
1755
1756 OperationRegion (PMIO, SystemIO, 0x1000, 0x80)
1757 Field (PMIO, AnyAcc, NoLock, Preserve)
1758 {
1759 Offset (0x42),
1760 , 1,
1761 SWGE, 1,
1762 Offset (0x64),
1763 , 9,
1764 SCIS, 1,
1765 Offset (0x66)
1766 }
1767
1768 Device (PIC)
1769 {
1770 Name (_HID, EisaId ("PNP0000")) // _HID: Hardware ID
1771 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
1772 {
1773 IO (Decode16,
1774 0x0020, // Range Minimum
1775 0x0020, // Range Maximum
1776 0x01, // Alignment
1777 0x02, // Length
1778 )
1779 IO (Decode16,
1780 0x00A0, // Range Minimum
1781 0x00A0, // Range Maximum
1782 0x01, // Alignment
1783 0x02, // Length
1784 )
1785 IO (Decode16,
1786 0x04D0, // Range Minimum
1787 0x04D0, // Range Maximum
1788 0x01, // Alignment
1789 0x02, // Length
1790 )
1791 IRQNoFlags ()
1792 {2}
1793 })
1794 }
1795
1796 Device (TIMR)
1797 {
1798 Name (_HID, EisaId ("PNP0100")) // _HID: Hardware ID
1799 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
1800 {
1801 IO (Decode16,
1802 0x0040, // Range Minimum
1803 0x0040, // Range Maximum
1804 0x01, // Alignment
1805 0x04, // Length
1806 )
1807 IRQNoFlags ()
1808 {0}
1809 })
1810 }
1811
1812 Device (HPET)
1813 {
1814 Name (_HID, EisaId ("PNP0103")) // _HID: Hardware ID
1815 Method (_STA, 0, NotSerialized) // _STA: Status
1816 {
1817 If (W98F)
1818 {
1819 Return (0x00)
1820 }
1821 Else
1822 {
1823 If (LAnd (\WNTF, LNot (\WXPF)))
1824 {
1825 Return (0x00)
1826 }
1827 Else
1828 {
1829 Return (0x0F)
1830 }
1831 }
1832
1833 Return (0x00)
1834 }
1835
1836 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
1837 {
1838 Memory32Fixed (ReadOnly,
1839 0xFED00000, // Address Base
1840 0x00000400, // Address Length
1841 )
1842 })
1843 }
1844
1845 Device (DMAC)
1846 {
1847 Name (_HID, EisaId ("PNP0200")) // _HID: Hardware ID
1848 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
1849 {
1850 IO (Decode16,
1851 0x0000, // Range Minimum
1852 0x0000, // Range Maximum
1853 0x01, // Alignment
1854 0x10, // Length
1855 )
1856 IO (Decode16,
1857 0x0080, // Range Minimum
1858 0x0080, // Range Maximum
1859 0x01, // Alignment
1860 0x10, // Length
1861 )
1862 IO (Decode16,
1863 0x00C0, // Range Minimum
1864 0x00C0, // Range Maximum
1865 0x01, // Alignment
1866 0x20, // Length
1867 )
1868 DMA (Compatibility, BusMaster, Transfer8_16, )
1869 {4}
1870 })
1871 }
1872
1873 Device (SPKR)
1874 {
1875 Name (_HID, EisaId ("PNP0800")) // _HID: Hardware ID
1876 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
1877 {
1878 IO (Decode16,
1879 0x0061, // Range Minimum
1880 0x0061, // Range Maximum
1881 0x01, // Alignment
1882 0x01, // Length
1883 )
1884 })
1885 }
1886
1887 Device (FPU)
1888 {
1889 Name (_HID, EisaId ("PNP0C04")) // _HID: Hardware ID
1890 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
1891 {
1892 IO (Decode16,
1893 0x00F0, // Range Minimum
1894 0x00F0, // Range Maximum
1895 0x01, // Alignment
1896 0x01, // Length
1897 )
1898 IRQNoFlags ()
1899 {13}
1900 })
1901 }
1902
1903 Device (RTC)
1904 {
1905 Name (_HID, EisaId ("PNP0B00")) // _HID: Hardware ID
1906 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
1907 {
1908 IO (Decode16,
1909 0x0070, // Range Minimum
1910 0x0070, // Range Maximum
1911 0x01, // Alignment
1912 0x02, // Length
1913 )
1914 IRQNoFlags ()
1915 {8}
1916 })
1917 }
1918
1919 Device (KBD)
1920 {
1921 Name (_HID, EisaId ("PNP0303")) // _HID: Hardware ID
1922 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
1923 {
1924 IO (Decode16,
1925 0x0060, // Range Minimum
1926 0x0060, // Range Maximum
1927 0x01, // Alignment
1928 0x01, // Length
1929 )
1930 IO (Decode16,
1931 0x0064, // Range Minimum
1932 0x0064, // Range Maximum
1933 0x01, // Alignment
1934 0x01, // Length
1935 )
1936 IRQNoFlags ()
1937 {1}
1938 })
1939 }
1940
1941 Device (MOU)
1942 {
1943 Name (_HID, EisaId ("IBM3780")) // _HID: Hardware ID
1944 Name (_CID, EisaId ("PNP0F13")) // _CID: Compatible ID
1945 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
1946 {
1947 IRQNoFlags ()
1948 {12}
1949 })
1950 }
1951
1952 OperationRegion (IMGA, SystemIO, 0x15E0, 0x10)
1953 Field (IMGA, ByteAcc, NoLock, Preserve)
1954 {
1955 Offset (0x01),
1956 Offset (0x02),
1957 Offset (0x03),
1958 WAKR, 16,
1959 Offset (0x0C),
1960 GAIX, 8,
1961 Offset (0x0E),
1962 GADT, 8,
1963 Offset (0x10)
1964 }
1965
1966 IndexField (GAIX, GADT, ByteAcc, NoLock, Preserve)
1967 {
1968 Offset (0x41),
1969 VAUX, 2,
1970 , 1,
1971 WOLE, 1,
1972 Offset (0x42),
1973 Offset (0x50),
1974 , 1,
1975 CBPW, 1,
1976 CBSL, 1,
1977 VDPW, 1,
1978 PDNE, 1,
1979 BLPL, 1,
1980 , 1,
1981 LEDS, 1,
1982 TP4R, 1,
1983 PADR, 1,
1984 BPAD, 1,
1985 , 1,
1986 , 1,
1987 PADD, 1,
1988 Offset (0x53),
1989 DLAN, 1,
1990 Offset (0x60),
1991 BUSC, 1,
1992 BUSD, 1,
1993 , 1,
1994 DSCI, 1,
1995 Offset (0x61),
1996 EPWG, 1,
1997 , 2,
1998 DSCS, 1,
1999 Offset (0x62),
2000 CSON, 1,
2001 URST, 1,
2002 Offset (0x70),
2003 GDR0, 1,
2004 GDR1, 1,
2005 GDR2, 1,
2006 Offset (0x71),
2007 GDT0, 1,
2008 GDT1, 1,
2009 GDT2, 1,
2010 Offset (0xC2),
2011 GAID, 8
2012 }
2013
2014 OperationRegion (NCFG, SystemIO, 0x2E, 0x02)
2015 Field (NCFG, ByteAcc, NoLock, Preserve)
2016 {
2017 INDX, 8,
2018 DATA, 8
2019 }
2020
2021 IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
2022 {
2023 Offset (0x07),
2024 LDN, 8,
2025 Offset (0x20),
2026 SIOD, 8,
2027 Offset (0x22),
2028 SCF2, 8,
2029 Offset (0x24),
2030 SCF4, 8,
2031 , 2,
2032 PPSE, 1,
2033 , 4,
2034 PNF, 1,
2035 FDCD, 1,
2036 PPD, 1,
2037 SP2D, 1,
2038 SP1D, 1,
2039 , 1,
2040 GPSR, 2,
2041 Offset (0x27),
2042 SRID, 8,
2043 Offset (0x29),
2044 SCF9, 8,
2045 Offset (0x2B),
2046 Offset (0x30),
2047 LDA, 1,
2048 Offset (0x31),
2049 Offset (0x60),
2050 IOHI, 8,
2051 IOLW, 8,
2052 Offset (0x70),
2053 IRQN, 4,
2054 IRQW, 1,
2055 Offset (0x71),
2056 IRQT, 1,
2057 IRQL, 1,
2058 Offset (0x72),
2059 Offset (0x74),
2060 DMA0, 3,
2061 Offset (0x75),
2062 DMA1, 3,
2063 Offset (0x76)
2064 }
2065
2066 IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
2067 {
2068 Offset (0xF0),
2069 PTRS, 1,
2070 PPMC, 1,
2071 , 2,
2072 PERA, 1,
2073 PMDS, 3
2074 }
2075
2076 IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
2077 {
2078 Offset (0xF0),
2079 STRS, 1,
2080 SPMC, 1,
2081 SBSY, 1,
2082 , 4,
2083 SBSE, 1
2084 }
2085
2086 IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
2087 {
2088 Offset (0xF0),
2089 GPPS, 8,
2090 GPPC, 8,
2091 GPER, 8
2092 }
2093
2094 OperationRegion (CFGS, SystemIO, 0x164E, 0x02)
2095 Field (CFGS, ByteAcc, NoLock, Preserve)
2096 {
2097 NDXS, 8,
2098 ATAS, 8
2099 }
2100
2101 IndexField (NDXS, ATAS, ByteAcc, NoLock, Preserve)
2102 {
2103 Offset (0x07),
2104 LDNS, 8,
2105 Offset (0x20),
2106 Offset (0x21),
2107 Offset (0x22),
2108 Offset (0x23),
2109 Offset (0x24),
2110 Offset (0x25),
2111 , 2,
2112 PSES, 1,
2113 , 4,
2114 PNFS, 1,
2115 DCDS, 1,
2116 PPDS, 1,
2117 SP2S, 1,
2118 SP1S, 1,
2119 , 1,
2120 PSRS, 2,
2121 Offset (0x27),
2122 RIDS, 8,
2123 Offset (0x29),
2124 CCSS, 2,
2125 CCES, 1,
2126 MCSS, 1,
2127 MESS, 1,
2128 Offset (0x2A),
2129 Offset (0x2B),
2130 Offset (0x30),
2131 LDAS, 1,
2132 Offset (0x31),
2133 Offset (0x60),
2134 OHIS, 8,
2135 OLWS, 8,
2136 Offset (0x70),
2137 RQNS, 4,
2138 RQWS, 1,
2139 Offset (0x71),
2140 RQTS, 1,
2141 RQLS, 1,
2142 Offset (0x72),
2143 Offset (0x74),
2144 MA0S, 3,
2145 Offset (0x75),
2146 MA1S, 3,
2147 Offset (0x76)
2148 }
2149
2150 IndexField (NDXS, ATAS, ByteAcc, NoLock, Preserve)
2151 {
2152 Offset (0xF0),
2153 TRSS, 1,
2154 PMCS, 1,
2155 BSYS, 1,
2156 , 4,
2157 SESS, 1
2158 }
2159
2160 OperationRegion (NSDL, SystemIO, 0x164C, 0x01)
2161 Field (NSDL, ByteAcc, NoLock, Preserve)
2162 {
2163 DLPC, 8
2164 }
2165
2166 OperationRegion (NSIO, SystemIO, 0x1680, 0x0C)
2167 Field (NSIO, ByteAcc, NoLock, Preserve)
2168 {
2169 DRST, 1,
2170 DLPD, 1,
2171 ULRT, 1,
2172 ULPD, 1,
2173 Offset (0x01),
2174 , 4,
2175 DKI0, 1,
2176 Offset (0x02),
2177 Offset (0x09),
2178 DKI1, 1,
2179 DKI2, 1
2180 }
2181
2182 OperationRegion (DSIO, SystemIO, 0x1620, 0x0C)
2183 Field (DSIO, ByteAcc, NoLock, Preserve)
2184 {
2185 , 1,
2186 DUSB, 1,
2187 Offset (0x01),
2188 BAHD, 1,
2189 BAAT, 1,
2190 Offset (0x02),
2191 GER0, 8,
2192 ES00, 1,
2193 ES01, 1,
2194 , 5,
2195 ES07, 1,
2196 , 6,
2197 GO16, 1,
2198 Offset (0x05),
2199 Offset (0x07),
2200 ES10, 1,
2201 Offset (0x08),
2202 UBPW, 1,
2203 UHPW, 1,
2204 Offset (0x09),
2205 BPRS, 1,
2206 UPRS, 1
2207 }
2208
2209 Scope (\_SB.PCI0.LPC)
2210 {
2211 Device (DURT)
2212 {
2213 Name (_UID, 0x01) // _UID: Unique ID
2214 Method (_STA, 0, NotSerialized) // _STA: Status
2215 {
2216 If (HDSP)
2217 {
2218 Return (0x00)
2219 }
2220
2221 If (LEqual (\_SB.GDCK._STA (), 0x00))
2222 {
2223 Return (0x00)
2224 }
2225 Else
2226 {
2227 If (XU1E)
2228 {
2229 Return (0x0F)
2230 }
2231 Else
2232 {
2233 Return (0x0D)
2234 }
2235 }
2236 }
2237
2238 Name (_HID, EisaId ("PNP0501")) // _HID: Hardware ID
2239 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
2240 {
2241 0x18,
2242 0x03
2243 })
2244 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
2245 {
2246 If (\H8DR)
2247 {
2248 If (Arg0)
2249 {
2250 Store (0x01, \_SB.PCI0.LPC.EC.HWRI)
2251 }
2252 Else
2253 {
2254 Store (0x00, \_SB.PCI0.LPC.EC.HWRI)
2255 }
2256 }
2257 Else
2258 {
2259 If (Arg0)
2260 {
2261 \MBEC (0x32, 0xFF, 0x40)
2262 }
2263 Else
2264 {
2265 \MBEC (0x32, 0xBF, 0x00)
2266 }
2267 }
2268 }
2269
2270 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2271 {
2272 Store (0x00, XU1E)
2273 Store (0x03, LDN)
2274 Store (0x00, IRQN)
2275 Store (0x00, LDA)
2276 Store (0x01, SP1D)
2277 }
2278
2279 Name (U1BF, ResourceTemplate ()
2280 {
2281 IO (Decode16,
2282 0x0000, // Range Minimum
2283 0x0000, // Range Maximum
2284 0x01, // Alignment
2285 0x08, // Length
2286 _Y19)
2287 IRQNoFlags (_Y1A)
2288 {}
2289 })
2290 CreateWordField (U1BF, \_SB.PCI0.LPC.DURT._Y19._MIN, U1MN) // _MIN: Minimum Base Address
2291 CreateWordField (U1BF, \_SB.PCI0.LPC.DURT._Y19._MAX, U1MX) // _MAX: Maximum Base Address
2292 CreateWordField (U1BF, \_SB.PCI0.LPC.DURT._Y1A._INT, U1IQ) // _INT: Interrupts
2293 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2294 {
2295 Store (0x03, LDN)
2296 Or (ShiftLeft (IOHI, 0x08), IOLW, Local0)
2297 Store (Local0, U1MN)
2298 Store (Local0, U1MX)
2299 Store (IRQN, Local0)
2300 If (Local0)
2301 {
2302 ShiftLeft (0x01, IRQN, U1IQ)
2303 }
2304 Else
2305 {
2306 Store (0x00, U1IQ)
2307 }
2308
2309 Return (U1BF)
2310 }
2311
2312 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
2313 {
2314 StartDependentFn (0x00, 0x00)
2315 {
2316 IO (Decode16,
2317 0x03F8, // Range Minimum
2318 0x03F8, // Range Maximum
2319 0x01, // Alignment
2320 0x08, // Length
2321 )
2322 IRQNoFlags ()
2323 {4}
2324 }
2325 StartDependentFn (0x01, 0x00)
2326 {
2327 IO (Decode16,
2328 0x02F8, // Range Minimum
2329 0x02F8, // Range Maximum
2330 0x01, // Alignment
2331 0x08, // Length
2332 )
2333 IRQNoFlags ()
2334 {3}
2335 }
2336 StartDependentFn (0x01, 0x00)
2337 {
2338 IO (Decode16,
2339 0x03E8, // Range Minimum
2340 0x03E8, // Range Maximum
2341 0x01, // Alignment
2342 0x08, // Length
2343 )
2344 IRQNoFlags ()
2345 {4}
2346 }
2347 StartDependentFn (0x01, 0x00)
2348 {
2349 IO (Decode16,
2350 0x02E8, // Range Minimum
2351 0x02E8, // Range Maximum
2352 0x01, // Alignment
2353 0x08, // Length
2354 )
2355 IRQNoFlags ()
2356 {3}
2357 }
2358 StartDependentFn (0x02, 0x00)
2359 {
2360 IO (Decode16,
2361 0x03F8, // Range Minimum
2362 0x03F8, // Range Maximum
2363 0x01, // Alignment
2364 0x08, // Length
2365 )
2366 IRQNoFlags ()
2367 {3,5,7}
2368 }
2369 StartDependentFn (0x02, 0x00)
2370 {
2371 IO (Decode16,
2372 0x02F8, // Range Minimum
2373 0x02F8, // Range Maximum
2374 0x01, // Alignment
2375 0x08, // Length
2376 )
2377 IRQNoFlags ()
2378 {4,5,7}
2379 }
2380 StartDependentFn (0x02, 0x00)
2381 {
2382 IO (Decode16,
2383 0x03E8, // Range Minimum
2384 0x03E8, // Range Maximum
2385 0x01, // Alignment
2386 0x08, // Length
2387 )
2388 IRQNoFlags ()
2389 {3,5,7}
2390 }
2391 StartDependentFn (0x02, 0x00)
2392 {
2393 IO (Decode16,
2394 0x02E8, // Range Minimum
2395 0x02E8, // Range Maximum
2396 0x01, // Alignment
2397 0x08, // Length
2398 )
2399 IRQNoFlags ()
2400 {4,5,7}
2401 }
2402 EndDependentFn ()
2403 })
2404 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2405 {
2406 CreateByteField (Arg0, 0x02, RUIL)
2407 CreateByteField (Arg0, 0x03, RUIH)
2408 CreateWordField (Arg0, 0x02, RUIO)
2409 CreateWordField (Arg0, 0x09, RUIQ)
2410 Store (0x03, LDN)
2411 Store (0x00, LDA)
2412 Store (RUIL, IOLW)
2413 Store (RUIH, IOHI)
2414 If (RUIQ)
2415 {
2416 FindSetRightBit (RUIQ, Local0)
2417 Store (Decrement (Local0), IRQN)
2418 }
2419 Else
2420 {
2421 Store (0x00, IRQN)
2422 }
2423
2424 Store (0x00, SP1D)
2425 Store (0x01, LDA)
2426 If (LEqual (RUIO, 0x03F8))
2427 {
2428 Store (0x00, XU1A)
2429 }
2430 Else
2431 {
2432 If (LEqual (RUIO, 0x02F8))
2433 {
2434 Store (0x01, XU1A)
2435 }
2436 Else
2437 {
2438 If (LEqual (RUIO, 0x03E8))
2439 {
2440 Store (0x07, XU1A)
2441 }
2442 Else
2443 {
2444 If (LEqual (RUIO, 0x02E8))
2445 {
2446 Store (0x05, XU1A)
2447 }
2448 Else
2449 {
2450 Fatal (0x02, 0x90020000, 0x01B8)
2451 }
2452 }
2453 }
2454 }
2455
2456 Store (0x01, XU1E)
2457 }
2458
2459 Method (_PSC, 0, NotSerialized) // _PSC: Power State Current
2460 {
2461 Store (0x03, LDN)
2462 If (LDA)
2463 {
2464 Return (0x00)
2465 }
2466 Else
2467 {
2468 Return (0x03)
2469 }
2470 }
2471
2472 Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
2473 {
2474 }
2475
2476 Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
2477 {
2478 }
2479 }
2480
2481 Device (DLPT)
2482 {
2483 Name (_UID, 0x01) // _UID: Unique ID
2484 Method (_STA, 0, NotSerialized) // _STA: Status
2485 {
2486 If (HDPP)
2487 {
2488 Return (0x00)
2489 }
2490
2491 If (LEqual (\_SB.GDCK._STA (), 0x00))
2492 {
2493 Return (0x00)
2494 }
2495 Else
2496 {
2497 If (LNotEqual (\PMOD, 0x03))
2498 {
2499 If (XPE)
2500 {
2501 Return (0x0F)
2502 }
2503 Else
2504 {
2505 Return (0x0D)
2506 }
2507 }
2508 Else
2509 {
2510 Return (0x00)
2511 }
2512 }
2513 }
2514
2515 Name (_HID, EisaId ("PNP0400")) // _HID: Hardware ID
2516 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2517 {
2518 Store (0x00, XPE)
2519 Store (0x01, LDN)
2520 Store (0x00, IRQN)
2521 Store (0x00, LDA)
2522 Store (0x01, PPD)
2523 }
2524
2525 Name (PPBF, ResourceTemplate ()
2526 {
2527 IO (Decode16,
2528 0x0000, // Range Minimum
2529 0x0000, // Range Maximum
2530 0x01, // Alignment
2531 0x00, // Length
2532 _Y1B)
2533 IRQNoFlags (_Y1C)
2534 {}
2535 })
2536 CreateWordField (PPBF, \_SB.PCI0.LPC.DLPT._Y1B._MIN, LPN0) // _MIN: Minimum Base Address
2537 CreateWordField (PPBF, \_SB.PCI0.LPC.DLPT._Y1B._MAX, LPX0) // _MAX: Maximum Base Address
2538 CreateByteField (PPBF, \_SB.PCI0.LPC.DLPT._Y1B._LEN, LPL0) // _LEN: Length
2539 CreateWordField (PPBF, \_SB.PCI0.LPC.DLPT._Y1C._INT, LPIQ) // _INT: Interrupts
2540 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2541 {
2542 If (LEqual (\PMOD, 0x03))
2543 {
2544 Return (PPBF)
2545 }
2546
2547 Store (0x01, LDN)
2548 Or (ShiftLeft (IOHI, 0x08), IOLW, Local0)
2549 Store (Local0, LPN0)
2550 Store (Local0, LPX0)
2551 If (LEqual (Local0, 0x03BC))
2552 {
2553 Store (0x03, LPL0)
2554 }
2555 Else
2556 {
2557 Store (0x08, LPL0)
2558 }
2559
2560 Store (IRQN, Local0)
2561 If (Local0)
2562 {
2563 ShiftLeft (0x01, IRQN, LPIQ)
2564 }
2565 Else
2566 {
2567 Store (0x00, LPIQ)
2568 }
2569
2570 Return (PPBF)
2571 }
2572
2573 Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
2574 {
2575 If (\PMOD)
2576 {
2577 Return (PEPP)
2578 }
2579 Else
2580 {
2581 Return (PLPT)
2582 }
2583 }
2584
2585 Name (PLPT, ResourceTemplate ()
2586 {
2587 StartDependentFnNoPri ()
2588 {
2589 IO (Decode16,
2590 0x03BC, // Range Minimum
2591 0x03BC, // Range Maximum
2592 0x01, // Alignment
2593 0x03, // Length
2594 )
2595 IRQNoFlags ()
2596 {7}
2597 }
2598 StartDependentFnNoPri ()
2599 {
2600 IO (Decode16,
2601 0x0378, // Range Minimum
2602 0x0378, // Range Maximum
2603 0x01, // Alignment
2604 0x08, // Length
2605 )
2606 IRQNoFlags ()
2607 {7}
2608 }
2609 StartDependentFnNoPri ()
2610 {
2611 IO (Decode16,
2612 0x0278, // Range Minimum
2613 0x0278, // Range Maximum
2614 0x01, // Alignment
2615 0x08, // Length
2616 )
2617 IRQNoFlags ()
2618 {5}
2619 }
2620 StartDependentFnNoPri ()
2621 {
2622 IO (Decode16,
2623 0x03BC, // Range Minimum
2624 0x03BC, // Range Maximum
2625 0x01, // Alignment
2626 0x03, // Length
2627 )
2628 IRQNoFlags ()
2629 {5}
2630 }
2631 StartDependentFnNoPri ()
2632 {
2633 IO (Decode16,
2634 0x0378, // Range Minimum
2635 0x0378, // Range Maximum
2636 0x01, // Alignment
2637 0x08, // Length
2638 )
2639 IRQNoFlags ()
2640 {5}
2641 }
2642 StartDependentFnNoPri ()
2643 {
2644 IO (Decode16,
2645 0x0278, // Range Minimum
2646 0x0278, // Range Maximum
2647 0x01, // Alignment
2648 0x08, // Length
2649 )
2650 IRQNoFlags ()
2651 {7}
2652 }
2653 EndDependentFn ()
2654 })
2655 Name (PEPP, ResourceTemplate ()
2656 {
2657 StartDependentFnNoPri ()
2658 {
2659 IO (Decode16,
2660 0x0378, // Range Minimum
2661 0x0378, // Range Maximum
2662 0x01, // Alignment
2663 0x08, // Length
2664 )
2665 IRQNoFlags ()
2666 {7}
2667 }
2668 StartDependentFnNoPri ()
2669 {
2670 IO (Decode16,
2671 0x0278, // Range Minimum
2672 0x0278, // Range Maximum
2673 0x01, // Alignment
2674 0x08, // Length
2675 )
2676 IRQNoFlags ()
2677 {5}
2678 }
2679 StartDependentFnNoPri ()
2680 {
2681 IO (Decode16,
2682 0x0378, // Range Minimum
2683 0x0378, // Range Maximum
2684 0x01, // Alignment
2685 0x08, // Length
2686 )
2687 IRQNoFlags ()
2688 {5}
2689 }
2690 StartDependentFnNoPri ()
2691 {
2692 IO (Decode16,
2693 0x0278, // Range Minimum
2694 0x0278, // Range Maximum
2695 0x01, // Alignment
2696 0x08, // Length
2697 )
2698 IRQNoFlags ()
2699 {7}
2700 }
2701 EndDependentFn ()
2702 })
2703 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2704 {
2705 CreateByteField (Arg0, 0x02, RLIL)
2706 CreateByteField (Arg0, 0x03, RLIH)
2707 CreateWordField (Arg0, 0x02, RLIO)
2708 CreateWordField (Arg0, 0x09, RLIQ)
2709 Store (0x01, LDN)
2710 Store (0x00, LDA)
2711 Store (RLIL, IOLW)
2712 Store (RLIH, IOHI)
2713 If (RLIQ)
2714 {
2715 FindSetRightBit (RLIQ, Local0)
2716 Store (Decrement (Local0), IRQN)
2717 }
2718 Else
2719 {
2720 Store (0x00, IRQN)
2721 }
2722
2723 If (LEqual (\PMOD, 0x00))
2724 {
2725 If (\PDIR)
2726 {
2727 Store (0x01, PMDS)
2728 }
2729 Else
2730 {
2731 Store (0x00, PMDS)
2732 }
2733 }
2734 Else
2735 {
2736 If (LEqual (\PMOD, 0x01))
2737 {
2738 Store (0x02, PMDS)
2739 }
2740 Else
2741 {
2742 Store (0x03, PMDS)
2743 }
2744 }
2745
2746 Store (0x00, PPD)
2747 Store (0x01, LDA)
2748 If (LEqual (RLIO, 0x0378))
2749 {
2750 Store (0x00, XPA)
2751 }
2752 Else
2753 {
2754 If (LEqual (RLIO, 0x0278))
2755 {
2756 Store (0x01, XPA)
2757 }
2758 Else
2759 {
2760 If (LEqual (RLIO, 0x03BC))
2761 {
2762 Store (0x02, XPA)
2763 }
2764 Else
2765 {
2766 Fatal (0x02, 0x90020000, 0x01D1)
2767 }
2768 }
2769 }
2770
2771 Store (0x01, XPE)
2772 }
2773
2774 Method (_PSC, 0, NotSerialized) // _PSC: Power State Current
2775 {
2776 Store (0x01, LDN)
2777 If (LDA)
2778 {
2779 Return (0x00)
2780 }
2781 Else
2782 {
2783 Return (0x03)
2784 }
2785 }
2786
2787 Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
2788 {
2789 Store (0x01, LDN)
2790 Store (0x01, LDA)
2791 }
2792
2793 Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
2794 {
2795 Store (0x01, LDN)
2796 Store (0x00, LDA)
2797 }
2798 }
2799
2800 Device (DECP)
2801 {
2802 Name (_UID, 0x01) // _UID: Unique ID
2803 Method (_STA, 0, NotSerialized) // _STA: Status
2804 {
2805 If (LEqual (\_SB.GDCK._STA (), 0x00))
2806 {
2807 Return (0x00)
2808 }
2809 Else
2810 {
2811 If (LEqual (\PMOD, 0x03))
2812 {
2813 If (XPE)
2814 {
2815 Return (0x0F)
2816 }
2817 Else
2818 {
2819 Return (0x0D)
2820 }
2821 }
2822 Else
2823 {
2824 Return (0x00)
2825 }
2826 }
2827 }
2828
2829 Name (_HID, EisaId ("PNP0401")) // _HID: Hardware ID
2830 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2831 {
2832 Store (0x00, XPE)
2833 Store (0x01, LDN)
2834 Store (0x00, IRQN)
2835 Store (0x00, LDA)
2836 Store (0x01, PPD)
2837 }
2838
2839 Name (EPBF, ResourceTemplate ()
2840 {
2841 IO (Decode16,
2842 0x0000, // Range Minimum
2843 0x0000, // Range Maximum
2844 0x01, // Alignment
2845 0x00, // Length
2846 _Y1D)
2847 IO (Decode16,
2848 0x0000, // Range Minimum
2849 0x0000, // Range Maximum
2850 0x01, // Alignment
2851 0x00, // Length
2852 _Y1E)
2853 IRQNoFlags (_Y1F)
2854 {}
2855 DMA (Compatibility, NotBusMaster, Transfer8, _Y20)
2856 {}
2857 })
2858 CreateWordField (EPBF, \_SB.PCI0.LPC.DECP._Y1D._MIN, ECN0) // _MIN: Minimum Base Address
2859 CreateWordField (EPBF, \_SB.PCI0.LPC.DECP._Y1D._MAX, ECX0) // _MAX: Maximum Base Address
2860 CreateByteField (EPBF, \_SB.PCI0.LPC.DECP._Y1D._LEN, ECL0) // _LEN: Length
2861 CreateWordField (EPBF, \_SB.PCI0.LPC.DECP._Y1E._MIN, ECN1) // _MIN: Minimum Base Address
2862 CreateWordField (EPBF, \_SB.PCI0.LPC.DECP._Y1E._MAX, ECX1) // _MAX: Maximum Base Address
2863 CreateByteField (EPBF, \_SB.PCI0.LPC.DECP._Y1E._LEN, ECL1) // _LEN: Length
2864 CreateWordField (EPBF, \_SB.PCI0.LPC.DECP._Y1F._INT, ECIQ) // _INT: Interrupts
2865 CreateWordField (EPBF, \_SB.PCI0.LPC.DECP._Y20._DMA, ECDQ) // _DMA: Direct Memory Access
2866 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2867 {
2868 If (LNotEqual (\PMOD, 0x03))
2869 {
2870 Return (EPBF)
2871 }
2872
2873 Store (0x01, LDN)
2874 Or (ShiftLeft (IOHI, 0x08), IOLW, Local0)
2875 Store (Local0, ECN0)
2876 Store (Local0, ECX0)
2877 Add (Local0, 0x0400, ECN1)
2878 Add (Local0, 0x0400, ECX1)
2879 If (LEqual (Local0, 0x03BC))
2880 {
2881 Store (0x03, ECL0)
2882 Store (0x03, ECL1)
2883 }
2884 Else
2885 {
2886 Store (0x08, ECL0)
2887 Store (0x08, ECL1)
2888 }
2889
2890 Store (IRQN, Local0)
2891 If (Local0)
2892 {
2893 ShiftLeft (0x01, IRQN, ECIQ)
2894 }
2895 Else
2896 {
2897 Store (0x00, ECIQ)
2898 }
2899
2900 Store (DMA0, Local0)
2901 If (LLess (Local0, 0x04))
2902 {
2903 ShiftLeft (0x01, Local0, ECDQ)
2904 }
2905 Else
2906 {
2907 Store (0x00, ECDQ)
2908 }
2909
2910 Return (EPBF)
2911 }
2912
2913 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
2914 {
2915 StartDependentFnNoPri ()
2916 {
2917 IO (Decode16,
2918 0x0378, // Range Minimum
2919 0x0378, // Range Maximum
2920 0x01, // Alignment
2921 0x08, // Length
2922 )
2923 IO (Decode16,
2924 0x0778, // Range Minimum
2925 0x0778, // Range Maximum
2926 0x01, // Alignment
2927 0x08, // Length
2928 )
2929 IRQNoFlags ()
2930 {7}
2931 DMA (Compatibility, NotBusMaster, Transfer8, )
2932 {0,1,3}
2933 }
2934 StartDependentFnNoPri ()
2935 {
2936 IO (Decode16,
2937 0x0278, // Range Minimum
2938 0x0278, // Range Maximum
2939 0x01, // Alignment
2940 0x08, // Length
2941 )
2942 IO (Decode16,
2943 0x0678, // Range Minimum
2944 0x0678, // Range Maximum
2945 0x01, // Alignment
2946 0x08, // Length
2947 )
2948 IRQNoFlags ()
2949 {5}
2950 DMA (Compatibility, NotBusMaster, Transfer8, )
2951 {0,1,3}
2952 }
2953 StartDependentFnNoPri ()
2954 {
2955 IO (Decode16,
2956 0x03BC, // Range Minimum
2957 0x03BC, // Range Maximum
2958 0x01, // Alignment
2959 0x03, // Length
2960 )
2961 IO (Decode16,
2962 0x07BC, // Range Minimum
2963 0x07BC, // Range Maximum
2964 0x01, // Alignment
2965 0x03, // Length
2966 )
2967 IRQNoFlags ()
2968 {7}
2969 DMA (Compatibility, NotBusMaster, Transfer8, )
2970 {0,1,3}
2971 }
2972 StartDependentFnNoPri ()
2973 {
2974 IO (Decode16,
2975 0x0378, // Range Minimum
2976 0x0378, // Range Maximum
2977 0x01, // Alignment
2978 0x08, // Length
2979 )
2980 IO (Decode16,
2981 0x0778, // Range Minimum
2982 0x0778, // Range Maximum
2983 0x01, // Alignment
2984 0x08, // Length
2985 )
2986 IRQNoFlags ()
2987 {5}
2988 DMA (Compatibility, NotBusMaster, Transfer8, )
2989 {0,1,3}
2990 }
2991 StartDependentFnNoPri ()
2992 {
2993 IO (Decode16,
2994 0x0278, // Range Minimum
2995 0x0278, // Range Maximum
2996 0x01, // Alignment
2997 0x08, // Length
2998 )
2999 IO (Decode16,
3000 0x0678, // Range Minimum
3001 0x0678, // Range Maximum
3002 0x01, // Alignment
3003 0x08, // Length
3004 )
3005 IRQNoFlags ()
3006 {7}
3007 DMA (Compatibility, NotBusMaster, Transfer8, )
3008 {0,1,3}
3009 }
3010 StartDependentFnNoPri ()
3011 {
3012 IO (Decode16,
3013 0x03BC, // Range Minimum
3014 0x03BC, // Range Maximum
3015 0x01, // Alignment
3016 0x03, // Length
3017 )
3018 IO (Decode16,
3019 0x07BC, // Range Minimum
3020 0x07BC, // Range Maximum
3021 0x01, // Alignment
3022 0x03, // Length
3023 )
3024 IRQNoFlags ()
3025 {5}
3026 DMA (Compatibility, NotBusMaster, Transfer8, )
3027 {0,1,3}
3028 }
3029 EndDependentFn ()
3030 })
3031 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
3032 {
3033 CreateByteField (Arg0, 0x02, RLIL)
3034 CreateByteField (Arg0, 0x03, RLIH)
3035 CreateWordField (Arg0, 0x02, RLIO)
3036 CreateWordField (Arg0, 0x11, RLIQ)
3037 CreateByteField (Arg0, 0x14, RLDQ)
3038 Store (0x01, LDN)
3039 Store (0x00, LDA)
3040 Store (0x07, PMDS)
3041 Store (0x01, PERA)
3042 Store (RLIL, IOLW)
3043 Store (RLIH, IOHI)
3044 If (RLIQ)
3045 {
3046 FindSetRightBit (RLIQ, Local0)
3047 Store (Decrement (Local0), IRQN)
3048 }
3049 Else
3050 {
3051 Store (0x00, IRQN)
3052 }
3053
3054 If (And (RLDQ, 0x0F))
3055 {
3056 FindSetRightBit (RLDQ, Local0)
3057 Store (Decrement (Local0), DMA0)
3058 }
3059 Else
3060 {
3061 Store (0x04, DMA0)
3062 }
3063
3064 Store (0x00, PPD)
3065 Store (0x01, LDA)
3066 If (LEqual (RLIO, 0x0378))
3067 {
3068 Store (0x00, XPA)
3069 }
3070 Else
3071 {
3072 If (LEqual (RLIO, 0x0278))
3073 {
3074 Store (0x01, XPA)
3075 }
3076 Else
3077 {
3078 If (LEqual (RLIO, 0x03BC))
3079 {
3080 Store (0x02, XPA)
3081 }
3082 Else
3083 {
3084 Fatal (0x02, 0x90020000, 0x01A2)
3085 }
3086 }
3087 }
3088
3089 Store (0x01, XPE)
3090 }
3091
3092 Method (_PSC, 0, NotSerialized) // _PSC: Power State Current
3093 {
3094 Store (0x01, LDN)
3095 If (LDA)
3096 {
3097 Return (0x00)
3098 }
3099 Else
3100 {
3101 Return (0x03)
3102 }
3103 }
3104
3105 Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
3106 {
3107 Store (0x01, LDN)
3108 Store (0x01, LDA)
3109 }
3110
3111 Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
3112 {
3113 Store (0x01, LDN)
3114 Store (0x00, LDA)
3115 }
3116 }
3117 }
3118
3119 Scope (\_SB.PCI0.LPC.DURT)
3120 {
3121 Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
3122 }
3123
3124 Scope (\_SB.PCI0.LPC.DLPT)
3125 {
3126 Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
3127 }
3128
3129 Scope (\_SB.PCI0.LPC.DECP)
3130 {
3131 Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
3132 }
3133
3134 Scope (\_SB.PCI0.LPC)
3135 {
3136 Method (LCON, 1, NotSerialized)
3137 {
3138 If (Arg0)
3139 {
3140 If (EPWG)
3141 {
3142 Store (0x01, DLPD)
3143 Store (0x07, DLPC)
3144 While (LNot (And (0x08, DLPC)))
3145 {
3146 Sleep (0x01)
3147 }
3148
3149 Store (0x01, DRST)
3150 If (LNotEqual (SIOD, 0xFF))
3151 {
3152 Or (SCF9, 0xA0, SCF9)
3153 While (LNot (And (0x10, SCF9)))
3154 {
3155 Sleep (0x01)
3156 }
3157
3158 Or (SCF2, 0xEB, SCF2)
3159 Store (0x07, LDN)
3160 And (0x1620, 0xFF, Local0)
3161 Store (Local0, IOLW)
3162 ShiftRight (0x1620, 0x08, Local0)
3163 And (Local0, 0xFF, IOHI)
3164 Store (0x01, LDA)
3165 Store (0x01, GPPS)
3166 Store (0x03, GPPC)
3167 Store (0x02, GPPS)
3168 Store (0x03, GPPC)
3169 Store (0x00, DUSB)
3170 }
3171 }
3172 }
3173 Else
3174 {
3175 Store (0x01, DUSB)
3176 Store (0x00, DRST)
3177 Store (0x00, DLPD)
3178 Store (0x00, DLPC)
3179 }
3180 }
3181
3182 Method (LLCN, 1, NotSerialized)
3183 {
3184 If (Arg0)
3185 {
3186 Store (0x00, ULRT)
3187 Store (0x01, ULPD)
3188 Store (0x07, DLPC)
3189 While (LNot (And (0x08, DLPC)))
3190 {
3191 Sleep (0x01)
3192 }
3193
3194 Store (0x01, ULRT)
3195 If (LNotEqual (SIOD, 0xFF))
3196 {
3197 Or (SCF9, 0xA0, SCF9)
3198 While (LNot (And (0x10, SCF9)))
3199 {
3200 Sleep (0x01)
3201 }
3202
3203 Or (SCF2, 0xEB, SCF2)
3204 }
3205 }
3206 Else
3207 {
3208 Store (0x00, ULRT)
3209 Store (0x00, ULPD)
3210 Store (0x00, DLPC)
3211 }
3212 }
3213 }
3214
3215 Device (TPM)
3216 {
3217 Name (_HID, EisaId ("ATM1200")) // _HID: Hardware ID
3218 Name (_CID, EisaId ("PNP0C31")) // _CID: Compatible ID
3219 Method (_STA, 0, NotSerialized) // _STA: Status
3220 {
3221 If (And (\TPMP, 0x01))
3222 {
3223 Store (0x0F, Local0)
3224 }
3225 Else
3226 {
3227 Store (0x00, Local0)
3228 }
3229
3230 Return (Local0)
3231 }
3232
3233 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
3234 {
3235 Memory32Fixed (ReadWrite,
3236 0xFED40000, // Address Base
3237 0x00005000, // Address Length
3238 )
3239 })
3240 Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method
3241 {
3242 Name (TMPB, Buffer (0x02)
3243 {
3244 0x00, 0x00
3245 })
3246 CreateByteField (TMPB, 0x00, LPCT)
3247 CreateByteField (TMPB, 0x01, SSUM)
3248 Name (LRSP, 0x00)
3249 Name (PPRC, 0x00)
3250 Name (RQS1, Package (0x02)
3251 {
3252 0x0C,
3253 0x0D
3254 })
3255 Name (PTOP, Package (0x02)
3256 {
3257 0x00,
3258 0x00
3259 })
3260 Name (RTOP, Package (0x03)
3261 {
3262 0x00,
3263 0x00,
3264 0x00
3265 })
3266 CreateDWordField (Arg0, 0x00, IID0)
3267 CreateDWordField (Arg0, 0x04, IID1)
3268 CreateDWordField (Arg0, 0x08, IID2)
3269 CreateDWordField (Arg0, 0x0C, IID3)
3270 Name (UID0, Buffer (0x10)
3271 {
3272 /* 0000 */ 0xA6, 0xFA, 0xDD, 0x3D, 0x1B, 0x36, 0xB4, 0x4E,
3273 /* 0008 */ 0xA4, 0x24, 0x8D, 0x10, 0x08, 0x9D, 0x16, 0x53
3274 })
3275 CreateDWordField (UID0, 0x00, EID0)
3276 CreateDWordField (UID0, 0x04, EID1)
3277 CreateDWordField (UID0, 0x08, EID2)
3278 CreateDWordField (UID0, 0x0C, EID3)
3279 If (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (
3280 LEqual (IID2, EID2), LEqual (IID3, EID3))))
3281 {
3282 If (LEqual (Arg2, 0x00))
3283 {
3284 Return (Buffer (0x01)
3285 {
3286 0x3F
3287 })
3288 }
3289
3290 If (LEqual (Arg2, 0x01))
3291 {
3292 Return ("1.0")
3293 }
3294
3295 If (LEqual (Arg2, 0x02))
3296 {
3297 Store (0x00, PPRC)
3298 TPHY (0x00)
3299 Store (\PH02, LPCT)
3300 If (LPCT)
3301 {
3302 Store (0x00, SSUM)
3303 Add (SSUM, \PH01, SSUM)
3304 Add (SSUM, \PH02, SSUM)
3305 Add (SSUM, \PH03, SSUM)
3306 Add (SSUM, \PH04, SSUM)
3307 Add (SSUM, \PH05, SSUM)
3308 Add (SSUM, \PH06, SSUM)
3309 Add (SSUM, \PH07, SSUM)
3310 Add (SSUM, \PH08, SSUM)
3311 Add (SSUM, \PH09, SSUM)
3312 Add (SSUM, \PH0A, SSUM)
3313 Add (SSUM, \PH0B, SSUM)
3314 If (SSUM)
3315 {
3316 Store (0x02, PPRC)
3317 }
3318 Else
3319 {
3320 Store (DerefOf (Index (Arg3, 0x00)), \PH04)
3321 Store (Match (RQS1, MEQ, \PH04, MTR, 0x00, 0x00), Local0)
3322 If (LNotEqual (Local0, Ones))
3323 {
3324 Store (0x01, PPRC)
3325 }
3326 Else
3327 {
3328 Store (0x00, \PH03)
3329 Store (0x00, SSUM)
3330 Add (SSUM, \PH01, SSUM)
3331 Add (SSUM, \PH02, SSUM)
3332 Add (SSUM, \PH03, SSUM)
3333 Add (SSUM, \PH04, SSUM)
3334 Add (SSUM, \PH05, SSUM)
3335 Add (SSUM, \PH06, SSUM)
3336 Add (SSUM, \PH07, SSUM)
3337 Add (SSUM, \PH08, SSUM)
3338 Add (SSUM, \PH09, SSUM)
3339 Add (SSUM, \PH0A, SSUM)
3340 Add (SSUM, \PH0B, SSUM)
3341 Subtract (0x00, SSUM, \PH03)
3342 TPHY (0x01)
3343 }
3344 }
3345 }
3346 Else
3347 {
3348 Store (0x02, PPRC)
3349 }
3350
3351 Return (PPRC)
3352 }
3353
3354 If (LEqual (Arg2, 0x03))
3355 {
3356 TPHY (0x00)
3357 Store (\PH04, Index (PTOP, 0x01))
3358 Return (PTOP)
3359 }
3360
3361 If (LEqual (Arg2, 0x04))
3362 {
3363 Return (0x01)
3364 }
3365
3366 If (LEqual (Arg2, 0x05))
3367 {
3368 TPHY (0x00)
3369 Store (\PH07, Local0)
3370 Store (\PH06, LRSP)
3371 Store (Or (ShiftLeft (Local0, 0x08, Local0), LRSP), LRSP)
3372 If (LAnd (LEqual (\PH06, 0xF0), LEqual (\PH07, 0xFF)))
3373 {
3374 Store (0xFFFFFFF0, LRSP)
3375 }
3376 Else
3377 {
3378 If (LAnd (LEqual (\PH06, 0xF1), LEqual (\PH07, 0xFF)))
3379 {
3380 Store (0xFFFFFFF1, LRSP)
3381 }
3382 }
3383
3384 Store (LRSP, Index (RTOP, 0x02))
3385 Store (\PH05, Index (RTOP, 0x01))
3386 Return (RTOP)
3387 }
3388
3389 If (LEqual (Arg2, 0x06))
3390 {
3391 Return (0x02)
3392 }
3393 }
3394
3395 Name (UID1, Buffer (0x10)
3396 {
3397 /* 0000 */ 0xED, 0x54, 0x60, 0x37, 0x13, 0xCC, 0x75, 0x46,
3398 /* 0008 */ 0x90, 0x1C, 0x47, 0x56, 0xD7, 0xF2, 0xD4, 0x5D
3399 })
3400 CreateDWordField (UID1, 0x00, EID4)
3401 CreateDWordField (UID1, 0x04, EID5)
3402 CreateDWordField (UID1, 0x08, EID6)
3403 CreateDWordField (UID1, 0x0C, EID7)
3404 If (LAnd (LAnd (LEqual (IID0, EID4), LEqual (IID1, EID5)), LAnd (
3405 LEqual (IID2, EID6), LEqual (IID3, EID7))))
3406 {
3407 Store (Arg2, Debug)
3408 Store (Arg3, Debug)
3409 If (LEqual (Arg2, 0x00))
3410 {
3411 Return (Buffer (0x01)
3412 {
3413 0x01
3414 })
3415 }
3416
3417 If (LEqual (Arg2, 0x01))
3418 {
3419 If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x00))
3420 {
3421 Store (0x00, \TCG0)
3422 Store (0x01, \TCG1)
3423 }
3424
3425 If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x01))
3426 {
3427 Store (0x01, \TCG0)
3428 Store (0x01, \TCG1)
3429 }
3430
3431 Return (0x00)
3432 }
3433
3434 Return (0x01)
3435 }
3436
3437 Return (Buffer (0x01)
3438 {
3439 0x00
3440 })
3441 }
3442 }
3443
3444 OperationRegion (TSES, SystemMemory, 0xFFE80000, 0x0200)
3445 Field (TSES, ByteAcc, NoLock, Preserve)
3446 {
3447 Offset (0x0C),
3448 TSCM, 8,
3449 Offset (0x5D),
3450 TCT0, 8,
3451 TCT1, 8,
3452 TCT2, 8,
3453 Offset (0x6A),
3454 TMT0, 8,
3455 Offset (0x74),
3456 TMT1, 8,
3457 Offset (0x7E),
3458 TMT2, 8,
3459 Offset (0x174),
3460 TLD0, 8,
3461 TLD1, 8,
3462 TLD2, 8,
3463 TLDL, 24,
3464 TLDB, 24,
3465 TLDS, 16,
3466 TSB0, 8,
3467 TSB1, 8,
3468 TSB2, 8,
3469 TSBL, 8,
3470 TSBB, 72,
3471 TSBF, 16,
3472 TSBC, 16,
3473 Offset (0x1C4),
3474 TSIM, 8
3475 }
3476
3477 Field (TSES, ByteAcc, NoLock, Preserve)
3478 {
3479 Offset (0x5D),
3480 TCTA, 280
3481 }
3482
3483 Field (TSES, ByteAcc, NoLock, Preserve)
3484 {
3485 Offset (0x174),
3486 TCTL, 88
3487 }
3488
3489 Field (TSES, ByteAcc, NoLock, Preserve)
3490 {
3491 Offset (0x17F),
3492 TCTB, 136
3493 }
3494
3495 Method (TCSZ, 2, NotSerialized)
3496 {
3497 If (LNotEqual (TSCM, 0x12))
3498 {
3499 If (LEqual (0x01, Arg0))
3500 {
3501 Store (Arg1, TCZ1)
3502 }
3503 Else
3504 {
3505 If (LEqual (0x02, Arg0))
3506 {
3507 Store (Arg1, TCZ2)
3508 }
3509 Else
3510 {
3511 If (LEqual (0x03, Arg0))
3512 {
3513 Store (Arg1, TCZ3)
3514 }
3515 }
3516 }
3517 }
3518 }
3519
3520 Method (TCST, 2, NotSerialized)
3521 {
3522 If (LNotEqual (TSCM, 0x12))
3523 {
3524 Store (0x00, Local0)
3525 If (LEqual (0x01, Arg0))
3526 {
3527 If (LGreater (Arg1, TMT0))
3528 {
3529 Store (0x04, TSIM)
3530 Store (Arg1, TMT0)
3531 Store (0x01, Local0)
3532 }
3533 }
3534 Else
3535 {
3536 If (LEqual (0x02, Arg0))
3537 {
3538 If (LGreater (Arg1, TMT1))
3539 {
3540 Store (0x04, TSIM)
3541 Store (Arg1, TMT1)
3542 Store (0x01, Local0)
3543 }
3544 }
3545 Else
3546 {
3547 If (LEqual (0x03, Arg0))
3548 {
3549 If (LGreater (Arg1, TMT2))
3550 {
3551 Store (0x04, TSIM)
3552 Store (Arg1, TMT2)
3553 Store (0x01, Local0)
3554 }
3555 }
3556 }
3557 }
3558
3559 If (Local0)
3560 {
3561 Store (0x00, TCT2)
3562 Name (TCTC, Buffer (0x23) {})
3563 Store (TCTA, TCTC)
3564 Store (0x22, Local3)
3565 Store (0x00, Local1)
3566 While (Local3)
3567 {
3568 Store (DerefOf (Index (TCTC, Local3)), Local2)
3569 Add (Local1, Local2, Local1)
3570 Decrement (Local3)
3571 }
3572
3573 Store (Not (Local1), Local2)
3574 Increment (Local2)
3575 And (Local2, 0xFF, Local1)
3576 Store (Local1, TCT2)
3577 Store (0xFE, TSIM)
3578 }
3579 }
3580 }
3581
3582 Method (TCBS, 4, NotSerialized)
3583 {
3584 If (LNotEqual (TSCM, 0x12))
3585 {
3586 If (LEqual (And (Arg0, 0x07), 0x00))
3587 {
3588 Store (0x12, TSIM)
3589 Store (Arg0, TSBL)
3590 Store (Arg1, TSBB)
3591 Store (Arg2, TSBF)
3592 Store (Arg3, TSBC)
3593 Store (0x00, TSB2)
3594 Name (TCTD, Buffer (0x23) {})
3595 Store (TCTB, TCTD)
3596 Store (0x10, Local0)
3597 Store (0x00, Local1)
3598 While (Local0)
3599 {
3600 Store (DerefOf (Index (TCTD, Local0)), Local2)
3601 Add (Local1, Local2, Local1)
3602 Decrement (Local0)
3603 }
3604
3605 Store (Not (Local1), Local2)
3606 Increment (Local2)
3607 And (Local2, 0xFF, Local1)
3608 Store (Local1, TSB2)
3609 Store (0xFE, TSIM)
3610 }
3611 }
3612 }
3613
3614 Method (TSCL, 2, NotSerialized)
3615 {
3616 If (LNotEqual (TSCM, 0x12))
3617 {
3618 Store (0x15, TSIM)
3619 Add (TLDS, Arg1, TLDS)
3620 Store (0x00, TLD2)
3621 Name (TLDD, Buffer (0x0B) {})
3622 Store (TCTL, TLDD)
3623 Store (0x0A, Local0)
3624 Store (0x00, Local1)
3625 While (Local0)
3626 {
3627 Store (DerefOf (Index (TLDD, Local0)), Local2)
3628 Add (Local1, Local2, Local1)
3629 Decrement (Local0)
3630 }
3631
3632 Store (Not (Local1), Local2)
3633 Increment (Local2)
3634 And (Local2, 0xFF, Local1)
3635 Store (Local1, TLD2)
3636 Store (0xFE, TSIM)
3637 }
3638 }
3639
3640 Device (EC)
3641 {
3642 Name (_HID, EisaId ("PNP0C09")) // _HID: Hardware ID
3643 Name (_UID, 0x00) // _UID: Unique ID
3644 Name (_GPE, 0x12) // _GPE: General Purpose Events
3645 Method (_REG, 2, NotSerialized) // _REG: Region Availability
3646 {
3647 If (LEqual (Arg0, 0x03))
3648 {
3649 Store (Arg1, \H8DR)
3650 }
3651 }
3652
3653 OperationRegion (ECOR, EmbeddedControl, 0x00, 0x0100)
3654 Field (ECOR, ByteAcc, NoLock, Preserve)
3655 {
3656 HDBM, 1,
3657 , 1,
3658 , 1,
3659 HFNE, 1,
3660 , 1,
3661 , 1,
3662 HLDM, 1,
3663 Offset (0x01),
3664 , 1,
3665 BTCM, 1,
3666 , 1,
3667 , 1,
3668 , 1,
3669 HBPR, 1,
3670 BTPC, 1,
3671 Offset (0x02),
3672 SLIS, 1,
3673 Offset (0x03),
3674 , 1,
3675 HETE, 1,
3676 , 3,
3677 HAUM, 2,
3678 Offset (0x05),
3679 HSPA, 1,
3680 Offset (0x06),
3681 HSUN, 8,
3682 HSRP, 8,
3683 Offset (0x0C),
3684 HLCL, 8,
3685 Offset (0x0E),
3686 HFNS, 2,
3687 Offset (0x0F),
3688 , 4,
3689 HAAA, 3,
3690 Offset (0x10),
3691 HAM0, 8,
3692 HAM1, 8,
3693 HAM2, 8,
3694 HAM3, 8,
3695 HAM4, 8,
3696 HAM5, 8,
3697 HAM6, 8,
3698 HAM7, 8,
3699 HAM8, 8,
3700 HAM9, 8,
3701 HAMA, 8,
3702 HAMB, 8,
3703 HAMC, 8,
3704 HAMD, 8,
3705 HAME, 8,
3706 HAMF, 8,
3707 HT00, 1,
3708 HT01, 1,
3709 HT02, 1,
3710 HT03, 1,
3711 HT10, 1,
3712 HT11, 1,
3713 HT12, 1,
3714 HT13, 1,
3715 Offset (0x23),
3716 HANT, 8,
3717 Offset (0x26),
3718 , 1,
3719 , 1,
3720 HANA, 2,
3721 , 1,
3722 , 1,
3723 Offset (0x2A),
3724 HATR, 8,
3725 HT0H, 8,
3726 HT0L, 8,
3727 HT1H, 8,
3728 HT1L, 8,
3729 HFSP, 8,
3730 , 6,
3731 HMUT, 1,
3732 Offset (0x31),
3733 HBRV, 8,
3734 HWPM, 1,
3735 HWLB, 1,
3736 HWLO, 1,
3737 HWDK, 1,
3738 HWFN, 1,
3739 HWBT, 1,
3740 HWRI, 1,
3741 HWBU, 1,
3742 HWLU, 1,
3743 Offset (0x34),
3744 , 7,
3745 HPLO, 1,
3746 Offset (0x36),
3747 Offset (0x38),
3748 HB0S, 7,
3749 HB0A, 1,
3750 HB1S, 7,
3751 HB1A, 1,
3752 HCMU, 1,
3753 , 2,
3754 OVRQ, 1,
3755 DCBD, 1,
3756 DCWL, 1,
3757 DCWW, 1,
3758 HB1I, 1,
3759 , 1,
3760 KBLT, 1,
3761 BTPW, 1,
3762 BTDT, 1,
3763 HUBS, 1,
3764 BDPW, 1,
3765 BDDT, 1,
3766 HUBB, 1,
3767 Offset (0x46),
3768 , 1,
3769 BTWK, 1,
3770 HPLD, 1,
3771 , 1,
3772 HPAC, 1,
3773 BTST, 1,
3774 Offset (0x47),
3775 HPBU, 1,
3776 , 1,
3777 HBID, 4,
3778 , 1,
3779 HPNF, 1,
3780 , 1,
3781 GSTS, 1,
3782 , 2,
3783 HLBU, 1,
3784 BDST, 1,
3785 HCBL, 1,
3786 Offset (0x4E),
3787 HWAK, 16,
3788 HMPR, 8,
3789 HMST, 5,
3790 , 2,
3791 HMDN, 1,
3792 HMAD, 8,
3793 HMCM, 8,
3794 Offset (0x74),
3795 HMBC, 8,
3796 Offset (0x78),
3797 TMP0, 8,
3798 TMP1, 8,
3799 TMP2, 8,
3800 TMP3, 8,
3801 TMP4, 8,
3802 TMP5, 8,
3803 TMP6, 8,
3804 TMP7, 8,
3805 Offset (0x81),
3806 HIID, 8,
3807 Offset (0x83),
3808 HFNI, 8,
3809 Offset (0x88),
3810 HDEC, 8,
3811 HDEO, 8,
3812 Offset (0x8D),
3813 HDAA, 3,
3814 HDAB, 3,
3815 HDAC, 2,
3816 Offset (0xB0),
3817 HDEN, 32,
3818 HDEP, 32,
3819 HDEM, 8,
3820 HDES, 8,
3821 Offset (0xC8),
3822 ATMX, 8,
3823 HWAT, 8,
3824 Offset (0xCE),
3825 HBCS, 2,
3826 , 2,
3827 Offset (0xED),
3828 , 4,
3829 HDDD, 1
3830 }
3831
3832 Method (_INI, 0, NotSerialized) // _INI: Initialize
3833 {
3834 If (\H8DR)
3835 {
3836 Store (0x00, HSPA)
3837 }
3838 Else
3839 {
3840 \MBEC (0x05, 0xFE, 0x00)
3841 }
3842
3843 BINI ()
3844 \_SB.PCI0.LPC.EC.HKEY.WGIN ()
3845 }
3846
3847 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
3848 {
3849 IO (Decode16,
3850 0x0062, // Range Minimum
3851 0x0062, // Range Maximum
3852 0x01, // Alignment
3853 0x01, // Length
3854 )
3855 IO (Decode16,
3856 0x0066, // Range Minimum
3857 0x0066, // Range Maximum
3858 0x01, // Alignment
3859 0x01, // Length
3860 )
3861 })
3862 Method (LED, 2, NotSerialized)
3863 {
3864 Or (Arg0, Arg1, Local0)
3865 If (\H8DR)
3866 {
3867 Store (Local0, HLCL)
3868 }
3869 Else
3870 {
3871 \WBEC (0x0C, Local0)
3872 }
3873 }
3874
3875 Name (BAON, 0x00)
3876 Name (WBON, 0x00)
3877 Method (BEEP, 1, NotSerialized)
3878 {
3879 If (LEqual (Arg0, 0x05))
3880 {
3881 Store (0x00, WBON)
3882 }
3883
3884 Store (WBON, Local2)
3885 If (BAON)
3886 {
3887 If (LEqual (Arg0, 0x00))
3888 {
3889 Store (0x00, BAON)
3890 If (WBON)
3891 {
3892 Store (0x03, Local0)
3893 Store (0x08, Local1)
3894 }
3895 Else
3896 {
3897 Store (0x00, Local0)
3898 Store (0x00, Local1)
3899 }
3900 }
3901 Else
3902 {
3903 Store (0xFF, Local0)
3904 Store (0xFF, Local1)
3905 If (LEqual (Arg0, 0x11))
3906 {
3907 Store (0x00, WBON)
3908 }
3909
3910 If (LEqual (Arg0, 0x10))
3911 {
3912 Store (0x01, WBON)
3913 }
3914 }
3915 }
3916 Else
3917 {
3918 Store (Arg0, Local0)
3919 Store (0xFF, Local1)
3920 If (LEqual (Arg0, 0x0F))
3921 {
3922 Store (Arg0, Local0)
3923 Store (0x08, Local1)
3924 Store (0x01, BAON)
3925 }
3926
3927 If (LEqual (Arg0, 0x11))
3928 {
3929 Store (0x00, Local0)
3930 Store (0x00, Local1)
3931 Store (0x00, WBON)
3932 }
3933
3934 If (LEqual (Arg0, 0x10))
3935 {
3936 Store (0x03, Local0)
3937 Store (0x08, Local1)
3938 Store (0x01, WBON)
3939 }
3940 }
3941
3942 If (LEqual (Arg0, 0x03))
3943 {
3944 Store (0x00, WBON)
3945 If (Local2)
3946 {
3947 Store (0x07, Local0)
3948 If (LOr (LEqual (\SPS, 0x03), LEqual (\SPS, 0x04)))
3949 {
3950 Store (0x00, Local2)
3951 Store (0xFF, Local0)
3952 Store (0xFF, Local1)
3953 }
3954 }
3955 }
3956
3957 If (LEqual (Arg0, 0x07))
3958 {
3959 If (Local2)
3960 {
3961 Store (0x00, Local2)
3962 Store (0xFF, Local0)
3963 Store (0xFF, Local1)
3964 }
3965 }
3966
3967 If (LAnd (\H8DR, LNot (\W98F)))
3968 {
3969 If (LAnd (Local2, LNot (WBON)))
3970 {
3971 Store (0x00, HSRP)
3972 Store (0x00, HSUN)
3973 Sleep (0x64)
3974 }
3975
3976 If (LNotEqual (Local1, 0xFF))
3977 {
3978 Store (Local1, HSRP)
3979 }
3980
3981 If (LNotEqual (Local0, 0xFF))
3982 {
3983 Store (Local0, HSUN)
3984 }
3985 }
3986 Else
3987 {
3988 If (LAnd (Local2, LNot (WBON)))
3989 {
3990 \WBEC (0x07, 0x00)
3991 \WBEC (0x06, 0x00)
3992 Sleep (0x64)
3993 }
3994
3995 If (LNotEqual (Local1, 0xFF))
3996 {
3997 \WBEC (0x07, Local1)
3998 }
3999
4000 If (LNotEqual (Local0, 0xFF))
4001 {
4002 \WBEC (0x06, Local0)
4003 }
4004 }
4005
4006 If (LEqual (Arg0, 0x03)) {}
4007 If (LEqual (Arg0, 0x07))
4008 {
4009 Sleep (0x01F4)
4010 }
4011 }
4012
4013 Method (EVNT, 1, NotSerialized)
4014 {
4015 If (\H8DR)
4016 {
4017 If (Arg0)
4018 {
4019 Or (HAM7, 0x01, HAM7)
4020 Or (HAM5, 0x04, HAM5)
4021 }
4022 Else
4023 {
4024 And (HAM7, 0xFE, HAM7)
4025 And (HAM5, 0xFB, HAM5)
4026 }
4027 }
4028 Else
4029 {
4030 If (Arg0)
4031 {
4032 \MBEC (0x17, 0xFF, 0x01)
4033 \MBEC (0x15, 0xFF, 0x04)
4034 If (\W98F)
4035 {
4036 \WBEC (0x18, 0xFF)
4037 }
4038 }
4039 Else
4040 {
4041 \MBEC (0x17, 0xFE, 0x00)
4042 \MBEC (0x15, 0xFB, 0x00)
4043 If (\W98F)
4044 {
4045 \WBEC (0x18, 0x00)
4046 }
4047 }
4048 }
4049 }
4050
4051 Method (PNST, 1, NotSerialized)
4052 {
4053 If (LAnd (Arg0, BSTA (0x02)))
4054 {
4055 If (LAnd (\H8DR, LNot (\W98F)))
4056 {
4057 Store (0x01, HBPR)
4058 Store (0x01, HUBB)
4059 }
4060 Else
4061 {
4062 \MBEC (0x01, 0xFF, 0x20)
4063 \MBEC (0x3B, 0xFF, 0x80)
4064 }
4065 }
4066 Else
4067 {
4068 If (LAnd (\H8DR, LNot (\W98F)))
4069 {
4070 Store (0x00, HBPR)
4071 Store (0x00, HUBB)
4072 }
4073 Else
4074 {
4075 \MBEC (0x01, 0xDF, 0x00)
4076 \MBEC (0x3B, 0x7F, 0x00)
4077 }
4078 }
4079 }
4080
4081 PowerResource (PUBS, 0x03, 0x0000)
4082 {
4083 Method (_STA, 0, NotSerialized) // _STA: Status
4084 {
4085 If (\H8DR)
4086 {
4087 Store (HUBS, Local0)
4088 }
4089 Else
4090 {
4091 And (\RBEC (0x3B), 0x10, Local0)
4092 }
4093
4094 If (Local0)
4095 {
4096 Return (0x01)
4097 }
4098 Else
4099 {
4100 Return (0x00)
4101 }
4102 }
4103
4104 Method (_ON, 0, NotSerialized) // _ON_: Power On
4105 {
4106 If (\H8DR)
4107 {
4108 Store (0x01, HUBS)
4109 }
4110 Else
4111 {
4112 \MBEC (0x3B, 0xFF, 0x10)
4113 }
4114 }
4115
4116 Method (_OFF, 0, NotSerialized) // _OFF: Power Off
4117 {
4118 If (\H8DR)
4119 {
4120 Store (0x00, HUBS)
4121 }
4122 Else
4123 {
4124 \MBEC (0x3B, 0xEF, 0x00)
4125 }
4126 }
4127 }
4128
4129 Method (LPMD, 0, NotSerialized)
4130 {
4131 Store (0x00, Local0)
4132 Store (0x00, Local1)
4133 Store (0x00, Local2)
4134 If (\H8DR)
4135 {
4136 If (HPAC)
4137 {
4138 If (HPLO)
4139 {
4140 Store (\LPST, Local0)
4141 }
4142 Else
4143 {
4144 If (LLess (HWAT, 0x5A))
4145 {
4146 If (HB0A)
4147 {
4148 If (LOr (And (HB0S, 0x10), LLess (And (HB0S, 0x0F
4149 ), 0x02)))
4150 {
4151 Store (0x01, Local1)
4152 }
4153 }
4154 Else
4155 {
4156 Store (0x01, Local1)
4157 }
4158
4159 If (HB1A)
4160 {
4161 If (LOr (And (HB1S, 0x10), LLess (And (HB1S, 0x0F
4162 ), 0x02)))
4163 {
4164 Store (0x01, Local2)
4165 }
4166 }
4167 Else
4168 {
4169 Store (0x01, Local2)
4170 }
4171
4172 If (LAnd (Local1, Local2))
4173 {
4174 Store (\LPST, Local0)
4175 }
4176 }
4177 }
4178 }
4179 }
4180 Else
4181 {
4182 If (And (\RBEC (0x46), 0x10))
4183 {
4184 If (And (\RBEC (0x34), 0x80))
4185 {
4186 Store (\LPST, Local0)
4187 }
4188 Else
4189 {
4190 If (LLess (\RBEC (0xC9), 0x5A))
4191 {
4192 Store (\RBEC (0x38), Local3)
4193 If (And (Local3, 0x80))
4194 {
4195 If (LOr (And (Local3, 0x10), LLess (And (Local3, 0x0F
4196 ), 0x02)))
4197 {
4198 Store (0x01, Local1)
4199 }
4200 }
4201 Else
4202 {
4203 Store (0x01, Local2)
4204 }
4205
4206 Store (\RBEC (0x39), Local3)
4207 If (And (Local3, 0x80))
4208 {
4209 If (LOr (And (Local3, 0x10), LLess (And (Local3, 0x0F
4210 ), 0x02)))
4211 {
4212 Store (0x01, Local1)
4213 }
4214 }
4215 Else
4216 {
4217 Store (0x01, Local2)
4218 }
4219
4220 If (LAnd (Local1, Local2))
4221 {
4222 Store (\LPST, Local0)
4223 }
4224 }
4225 }
4226 }
4227 }
4228
4229 Return (Local0)
4230 }
4231
4232 Method (CLPM, 0, NotSerialized)
4233 {
4234 If (\SPEN)
4235 {
4236 If (\OSPX)
4237 {
4238 Notify (\_PR.CPU0, 0x80)
4239 If (\MPEN)
4240 {
4241 Notify (\_PR.CPU1, 0x80)
4242 }
4243 }
4244 Else
4245 {
4246 Store (LPMD (), Local0)
4247 If (Local0)
4248 {
4249 \STEP (0x04)
4250 }
4251 Else
4252 {
4253 \STEP (0x05)
4254 }
4255 }
4256 }
4257 }
4258
4259 Mutex (MCPU, 0x07)
4260 Method (_Q10, 0, NotSerialized) // _Qxx: EC Query
4261 {
4262 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x01))
4263 {
4264 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1001)
4265 }
4266 }
4267
4268 Method (_Q11, 0, NotSerialized) // _Qxx: EC Query
4269 {
4270 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x02))
4271 {
4272 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1002)
4273 }
4274 Else
4275 {
4276 Noop
4277 }
4278 }
4279
4280 Method (_Q12, 0, NotSerialized) // _Qxx: EC Query
4281 {
4282 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1003)
4283 }
4284
4285 Method (_Q13, 0, NotSerialized) // _Qxx: EC Query
4286 {
4287 If (\_SB.PCI0.LPC.EC.HKEY.DHKC)
4288 {
4289 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1004)
4290 }
4291 Else
4292 {
4293 Notify (\_SB.SLPB, 0x80)
4294 }
4295 }
4296
4297 Method (_Q64, 0, NotSerialized) // _Qxx: EC Query
4298 {
4299 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x10))
4300 {
4301 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1005)
4302 }
4303 }
4304
4305 Method (_Q65, 0, NotSerialized) // _Qxx: EC Query
4306 {
4307 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x20))
4308 {
4309 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1006)
4310 }
4311 }
4312
4313 Method (_Q16, 0, NotSerialized) // _Qxx: EC Query
4314 {
4315 If (\VPDF)
4316 {
4317 Store (0x00, \VPDF)
4318 If (VIGD)
4319 {
4320 \_SB.PCI0.VID.VSPD ()
4321 }
4322 }
4323 Else
4324 {
4325 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x40))
4326 {
4327 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1007)
4328 }
4329 Else
4330 {
4331 If (VIGD)
4332 {
4333 \_SB.PCI0.VID.VSWT ()
4334 }
4335 Else
4336 {
4337 \_SB.PCI0.AGP.VID.VSWT ()
4338 }
4339 }
4340 }
4341 }
4342
4343 Method (_Q17, 0, NotSerialized) // _Qxx: EC Query
4344 {
4345 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x80))
4346 {
4347 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1008)
4348 }
4349 Else
4350 {
4351 If (LNot (\WNTF))
4352 {
4353 VEXP ()
4354 }
4355 }
4356 }
4357
4358 Method (_Q18, 0, NotSerialized) // _Qxx: EC Query
4359 {
4360 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x0100))
4361 {
4362 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1009)
4363 }
4364
4365 Noop
4366 }
4367
4368 Method (_Q66, 0, NotSerialized) // _Qxx: EC Query
4369 {
4370 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x0200))
4371 {
4372 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100A)
4373 }
4374 }
4375
4376 Method (_Q1A, 0, NotSerialized) // _Qxx: EC Query
4377 {
4378 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x0400))
4379 {
4380 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100B)
4381 }
4382 }
4383
4384 Method (_Q1B, 0, NotSerialized) // _Qxx: EC Query
4385 {
4386 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100C)
4387 }
4388
4389 Method (_Q62, 0, NotSerialized) // _Qxx: EC Query
4390 {
4391 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x1000))
4392 {
4393 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100D)
4394 }
4395 }
4396
4397 Method (_Q60, 0, NotSerialized) // _Qxx: EC Query
4398 {
4399 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x2000))
4400 {
4401 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100E)
4402 }
4403 }
4404
4405 Method (_Q61, 0, NotSerialized) // _Qxx: EC Query
4406 {
4407 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x4000))
4408 {
4409 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100F)
4410 }
4411 }
4412
4413 Method (_Q1F, 0, NotSerialized) // _Qxx: EC Query
4414 {
4415 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00020000))
4416 {
4417 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1012)
4418 }
4419
4420 \UCMS (0x0E)
4421 }
4422
4423 Method (_Q67, 0, NotSerialized) // _Qxx: EC Query
4424 {
4425 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00040000))
4426 {
4427 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1013)
4428 }
4429 }
4430
4431 Method (_Q26, 0, NotSerialized) // _Qxx: EC Query
4432 {
4433 If (VIGD)
4434 {
4435 If (\WVIS)
4436 {
4437 \VBTD ()
4438 }
4439
4440 \_SB.PCI0.LPC.EC.BRNS ()
4441 }
4442 Else
4443 {
4444 \UCMS (0x12)
4445 }
4446
4447 Sleep (0x01F4)
4448 Notify (AC, 0x80)
4449 Notify (\_TZ.THM0, 0x80)
4450 Notify (\_TZ.THM1, 0x80)
4451 If (\WXPF)
4452 {
4453 Acquire (MCPU, 0xFFFF)
4454 }
4455
4456 If (LNot (\_SB.PCI0.LPC.EC.HKEY.DHC4))
4457 {
4458 Store (0x00, \C4AC)
4459 }
4460
4461 If (\SPEN)
4462 {
4463 If (\OSPX)
4464 {
4465 Notify (\_PR.CPU0, 0x80)
4466 If (\MPEN)
4467 {
4468 Notify (\_PR.CPU1, 0x80)
4469 }
4470 }
4471 Else
4472 {
4473 \STEP (0x00)
4474 }
4475 }
4476
4477 If (\WXPF)
4478 {
4479 Sleep (0x64)
4480 }
4481
4482 If (\OSC4)
4483 {
4484 Notify (\_PR.CPU0, 0x81)
4485 If (\MPEN)
4486 {
4487 Notify (\_PR.CPU1, 0x81)
4488 }
4489 }
4490
4491 If (\WXPF)
4492 {
4493 Release (MCPU)
4494 }
4495
4496 If (LAnd (LNot (\WXPF), \WNTF))
4497 {
4498 If (LNot (\C4AC))
4499 {
4500 Store (0x00, \_SB.PCI0.LPC.C4C3)
4501 }
4502 }
4503
4504 ATMC ()
4505 }
4506
4507 Method (_Q27, 0, NotSerialized) // _Qxx: EC Query
4508 {
4509 If (VIGD)
4510 {
4511 If (\WVIS)
4512 {
4513 \VBTD ()
4514 }
4515
4516 \_SB.PCI0.LPC.EC.BRNS ()
4517 \_SB.PCI0.VID.VDSP ()
4518 }
4519 Else
4520 {
4521 \UCMS (0x12)
4522 }
4523
4524 Sleep (0x01F4)
4525 Notify (AC, 0x80)
4526 Notify (\_TZ.THM0, 0x80)
4527 Notify (\_TZ.THM1, 0x80)
4528 If (\WXPF)
4529 {
4530 Acquire (MCPU, 0xFFFF)
4531 }
4532
4533 If (LNot (\_SB.PCI0.LPC.EC.HKEY.DHC4))
4534 {
4535 Store (0x01, \C4AC)
4536 }
4537
4538 If (\SPEN)
4539 {
4540 If (\OSPX)
4541 {
4542 Notify (\_PR.CPU0, 0x80)
4543 If (\MPEN)
4544 {
4545 Notify (\_PR.CPU1, 0x80)
4546 }
4547 }
4548 Else
4549 {
4550 \STEP (0x01)
4551 }
4552 }
4553
4554 If (\WXPF)
4555 {
4556 Sleep (0x64)
4557 }
4558
4559 If (\OSC4)
4560 {
4561 Notify (\_PR.CPU0, 0x81)
4562 If (\MPEN)
4563 {
4564 Notify (\_PR.CPU1, 0x81)
4565 }
4566 }
4567
4568 If (\WXPF)
4569 {
4570 Release (MCPU)
4571 }
4572
4573 If (LAnd (LNot (\WXPF), \WNTF))
4574 {
4575 If (LNot (\_SB.PCI0.LPC.EC.HKEY.CKC4 (0x00)))
4576 {
4577 Store (0x01, \_SB.PCI0.LPC.C4C3)
4578 }
4579 }
4580
4581 ATMC ()
4582 If (LOr (LEqual (\_SB.GDCK.GDID (), 0x4C004D24), LEqual (\_SB.GDCK.GDID (), 0x44004D24)))
4583 {
4584 Notify (\_SB.GDCK, 0x01)
4585 }
4586 }
4587
4588 Method (_Q2A, 0, NotSerialized) // _Qxx: EC Query
4589 {
4590 If (VIGD)
4591 {
4592 \_SB.PCI0.VID.GLIS (0x01)
4593 }
4594
4595 If (VIGD)
4596 {
4597 \_SB.PCI0.VID.VLOC (0x01)
4598 }
4599 Else
4600 {
4601 \_SB.PCI0.AGP.VID.VLOC (0x01)
4602 }
4603
4604 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x5002)
4605 Notify (\_SB.LID, 0x80)
4606 }
4607
4608 Method (_Q2B, 0, NotSerialized) // _Qxx: EC Query
4609 {
4610 If (VIGD)
4611 {
4612 \_SB.PCI0.VID.GLIS (0x00)
4613 }
4614
4615 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x5001)
4616 \UCMS (0x0D)
4617 Notify (\_SB.LID, 0x80)
4618 }
4619
4620 Method (_Q3D, 0, NotSerialized) // _Qxx: EC Query
4621 {
4622 }
4623
4624 Method (_Q48, 0, NotSerialized) // _Qxx: EC Query
4625 {
4626 If (\SPEN)
4627 {
4628 If (\OSPX)
4629 {
4630 Notify (\_PR.CPU0, 0x80)
4631 If (\MPEN)
4632 {
4633 Notify (\_PR.CPU1, 0x80)
4634 }
4635 }
4636 Else
4637 {
4638 \STEP (0x04)
4639 }
4640 }
4641 }
4642
4643 Method (_Q49, 0, NotSerialized) // _Qxx: EC Query
4644 {
4645 If (\SPEN)
4646 {
4647 If (\OSPX)
4648 {
4649 Notify (\_PR.CPU0, 0x80)
4650 If (\MPEN)
4651 {
4652 Notify (\_PR.CPU1, 0x80)
4653 }
4654 }
4655 Else
4656 {
4657 \STEP (0x05)
4658 }
4659 }
4660 }
4661
4662 Method (_Q7F, 0, NotSerialized) // _Qxx: EC Query
4663 {
4664 Fatal (0x01, 0x80010000, 0x035A)
4665 }
4666
4667 Method (_Q4E, 0, NotSerialized) // _Qxx: EC Query
4668 {
4669 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6011)
4670 }
4671
4672 Method (_Q4F, 0, NotSerialized) // _Qxx: EC Query
4673 {
4674 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6012)
4675 }
4676
4677 Method (_Q75, 0, NotSerialized) // _Qxx: EC Query
4678 {
4679 \_SB.PCI0.LPC.EC.TATR ()
4680 }
4681
4682 Method (_Q46, 0, NotSerialized) // _Qxx: EC Query
4683 {
4684 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6012)
4685 }
4686
4687 Method (_Q22, 0, NotSerialized) // _Qxx: EC Query
4688 {
4689 CLPM ()
4690 If (HB0A)
4691 {
4692 Notify (BAT0, 0x80)
4693 }
4694
4695 If (LAnd (^BAT1.B1ST, ^BAT1.XB1S))
4696 {
4697 Notify (BAT1, 0x80)
4698 }
4699
4700 If (LAnd (^BAT2.B2ST, ^BAT2.XB2S))
4701 {
4702 Notify (BAT2, 0x80)
4703 }
4704 }
4705
4706 Method (_Q4A, 0, NotSerialized) // _Qxx: EC Query
4707 {
4708 CLPM ()
4709 Notify (BAT0, 0x81)
4710 }
4711
4712 Method (_Q4B, 0, NotSerialized) // _Qxx: EC Query
4713 {
4714 Notify (BAT0, 0x80)
4715 }
4716
4717 Method (_Q4C, 0, NotSerialized) // _Qxx: EC Query
4718 {
4719 CLPM ()
4720 If (LOr (LEqual (BDEV, 0x10), LEqual (HBCS, 0x02)))
4721 {
4722 _Q38 ()
4723 Store (0x00, HB1I)
4724 }
4725 Else
4726 {
4727 If (^BAT2.XB2S)
4728 {
4729 Notify (BAT2, 0x81)
4730 }
4731 Else
4732 {
4733 If (HB1A)
4734 {
4735 Store (0x01, ^BAT2.XB2S)
4736 Notify (BAT2, 0x01)
4737 }
4738 }
4739 }
4740 }
4741
4742 Method (_Q4D, 0, NotSerialized) // _Qxx: EC Query
4743 {
4744 If (LAnd (^BAT1.B1ST, ^BAT1.XB1S))
4745 {
4746 Notify (BAT1, 0x80)
4747 }
4748
4749 If (LAnd (^BAT2.B2ST, ^BAT2.XB2S))
4750 {
4751 Notify (BAT2, 0x80)
4752 }
4753 }
4754
4755 Method (_Q24, 0, NotSerialized) // _Qxx: EC Query
4756 {
4757 CLPM ()
4758 Notify (BAT0, 0x80)
4759 }
4760
4761 Method (_Q25, 0, NotSerialized) // _Qxx: EC Query
4762 {
4763 If (LAnd (^BAT1.B1ST, ^BAT1.XB1S))
4764 {
4765 CLPM ()
4766 Notify (BAT1, 0x80)
4767 }
4768
4769 If (LAnd (^BAT2.B2ST, ^BAT2.XB2S))
4770 {
4771 Notify (BAT2, 0x80)
4772 }
4773 }
4774
4775 Field (ECOR, ByteAcc, NoLock, Preserve)
4776 {
4777 Offset (0xA0),
4778 SBRC, 16,
4779 SBFC, 16,
4780 SBAE, 16,
4781 SBRS, 16,
4782 SBAC, 16,
4783 SBVO, 16,
4784 SBAF, 16,
4785 SBBS, 16
4786 }
4787
4788 Field (ECOR, ByteAcc, NoLock, Preserve)
4789 {
4790 Offset (0xA0),
4791 , 15,
4792 SBCM, 1,
4793 SBMD, 16,
4794 SBCC, 16
4795 }
4796
4797 Field (ECOR, ByteAcc, NoLock, Preserve)
4798 {
4799 Offset (0xA0),
4800 SBDC, 16,
4801 SBDV, 16,
4802 SBOM, 16,
4803 SBSI, 16,
4804 SBDT, 16,
4805 SBSN, 16
4806 }
4807
4808 Field (ECOR, ByteAcc, NoLock, Preserve)
4809 {
4810 Offset (0xA0),
4811 SBCH, 32
4812 }
4813
4814 Field (ECOR, ByteAcc, NoLock, Preserve)
4815 {
4816 Offset (0xA0),
4817 SBMN, 128
4818 }
4819
4820 Field (ECOR, ByteAcc, NoLock, Preserve)
4821 {
4822 Offset (0xA0),
4823 SBDN, 128
4824 }
4825
4826 Mutex (BATM, 0x07)
4827 Method (GBIF, 3, NotSerialized)
4828 {
4829 Acquire (BATM, 0xFFFF)
4830 If (Arg2)
4831 {
4832 Or (Arg0, 0x01, HIID)
4833 Store (SBCM, Local7)
4834 XOr (Local7, 0x01, Index (Arg1, 0x00))
4835 Store (Arg0, HIID)
4836 If (Local7)
4837 {
4838 Multiply (SBFC, 0x0A, Local1)
4839 }
4840 Else
4841 {
4842 Store (SBFC, Local1)
4843 }
4844
4845 Store (Local1, Index (Arg1, 0x02))
4846 Or (Arg0, 0x02, HIID)
4847 If (Local7)
4848 {
4849 Multiply (SBDC, 0x0A, Local0)
4850 }
4851 Else
4852 {
4853 Store (SBDC, Local0)
4854 }
4855
4856 Store (Local0, Index (Arg1, 0x01))
4857 Divide (Local1, 0x14, Local2, Index (Arg1, 0x05))
4858 If (Local7)
4859 {
4860 Store (0xC8, Index (Arg1, 0x06))
4861 }
4862 Else
4863 {
4864 If (SBDV)
4865 {
4866 Divide (0x00030D40, SBDV, Local2, Index (Arg1, 0x06))
4867 }
4868 Else
4869 {
4870 Store (0x00, Index (Arg1, 0x06))
4871 }
4872 }
4873
4874 Store (SBDV, Index (Arg1, 0x04))
4875 Store (SBSN, Local0)
4876 Name (SERN, Buffer (0x06)
4877 {
4878 " "
4879 })
4880 Store (0x04, Local2)
4881 While (Local0)
4882 {
4883 Divide (Local0, 0x0A, Local1, Local0)
4884 Add (Local1, 0x30, Index (SERN, Local2))
4885 Decrement (Local2)
4886 }
4887
4888 Store (SERN, Index (Arg1, 0x0A))
4889 Or (Arg0, 0x06, HIID)
4890 Store (SBDN, Index (Arg1, 0x09))
4891 Or (Arg0, 0x04, HIID)
4892 Name (BTYP, Buffer (0x05)
4893 {
4894 0x00, 0x00, 0x00, 0x00, 0x00
4895 })
4896 Store (SBCH, BTYP)
4897 Store (BTYP, Index (Arg1, 0x0B))
4898 Or (Arg0, 0x05, HIID)
4899 Store (SBMN, Index (Arg1, 0x0C))
4900 }
4901 Else
4902 {
4903 Store (0xFFFFFFFF, Index (Arg1, 0x01))
4904 Store (0x00, Index (Arg1, 0x05))
4905 Store (0x00, Index (Arg1, 0x06))
4906 Store (0xFFFFFFFF, Index (Arg1, 0x02))
4907 }
4908
4909 Release (BATM)
4910 Return (Arg1)
4911 }
4912
4913 Method (GBST, 4, NotSerialized)
4914 {
4915 Acquire (BATM, 0xFFFF)
4916 If (And (Arg1, 0x20))
4917 {
4918 Store (0x02, Local0)
4919 }
4920 Else
4921 {
4922 If (And (Arg1, 0x40))
4923 {
4924 Store (0x01, Local0)
4925 }
4926 Else
4927 {
4928 Store (0x00, Local0)
4929 }
4930 }
4931
4932 If (And (Arg1, 0x0F)) {}
4933 Else
4934 {
4935 Or (Local0, 0x04, Local0)
4936 }
4937
4938 If (LEqual (And (Arg1, 0x0F), 0x0F))
4939 {
4940 Store (0x04, Local0)
4941 Store (0x00, Local1)
4942 Store (0x00, Local2)
4943 Store (0x00, Local3)
4944 }
4945 Else
4946 {
4947 Store (Arg0, HIID)
4948 Store (SBVO, Local3)
4949 If (Arg2)
4950 {
4951 Multiply (SBRC, 0x0A, Local2)
4952 }
4953 Else
4954 {
4955 Store (SBRC, Local2)
4956 }
4957
4958 Store (SBAC, Local1)
4959 If (LGreaterEqual (Local1, 0x8000))
4960 {
4961 If (And (Local0, 0x01))
4962 {
4963 Subtract (0x00010000, Local1, Local1)
4964 }
4965 Else
4966 {
4967 Store (0x00, Local1)
4968 }
4969 }
4970 Else
4971 {
4972 If (LNot (And (Local0, 0x02)))
4973 {
4974 Store (0x00, Local1)
4975 }
4976 }
4977
4978 If (Arg2)
4979 {
4980 Multiply (Local3, Local1, Local1)
4981 Divide (Local1, 0x03E8, Local7, Local1)
4982 }
4983 }
4984
4985 Store (Local0, Index (Arg3, 0x00))
4986 Store (Local1, Index (Arg3, 0x01))
4987 Store (Local2, Index (Arg3, 0x02))
4988 Store (Local3, Index (Arg3, 0x03))
4989 Release (BATM)
4990 Return (Arg3)
4991 }
4992
4993 Device (BAT0)
4994 {
4995 Name (_HID, EisaId ("PNP0C0A")) // _HID: Hardware ID
4996 Name (_UID, 0x00) // _UID: Unique ID
4997 Name (_PCL, Package (0x01) // _PCL: Power Consumer List
4998 {
4999 \_SB
5000 })
5001 Name (B0ST, 0x00)
5002 Name (BT0I, Package (0x0D)
5003 {
5004 0x00,
5005 0xFFFFFFFF,
5006 0xFFFFFFFF,
5007 0x01,
5008 0x2A30,
5009 0x00,
5010 0x00,
5011 0x01,
5012 0x01,
5013 "",
5014 "",
5015 "",
5016 ""
5017 })
5018 Name (BT0P, Package (0x04) {})
5019 Method (_STA, 0, NotSerialized) // _STA: Status
5020 {
5021 If (\H8DR)
5022 {
5023 Store (HB0A, B0ST)
5024 }
5025 Else
5026 {
5027 If (And (\RBEC (0x38), 0x80))
5028 {
5029 Store (0x01, B0ST)
5030 }
5031 Else
5032 {
5033 Store (0x00, B0ST)
5034 }
5035 }
5036
5037 If (B0ST)
5038 {
5039 Return (0x1F)
5040 }
5041 Else
5042 {
5043 Return (0x0F)
5044 }
5045 }
5046
5047 Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
5048 {
5049 Store (0x00, Local7)
5050 Store (0x0A, Local6)
5051 While (LAnd (LNot (Local7), Local6))
5052 {
5053 If (HB0A)
5054 {
5055 If (LEqual (And (HB0S, 0x0F), 0x0F))
5056 {
5057 Sleep (0x03E8)
5058 Decrement (Local6)
5059 }
5060 Else
5061 {
5062 Store (0x01, Local7)
5063 }
5064 }
5065 Else
5066 {
5067 Store (0x00, Local6)
5068 }
5069 }
5070
5071 Return (GBIF (0x00, BT0I, Local7))
5072 }
5073
5074 Method (_BST, 0, NotSerialized) // _BST: Battery Status
5075 {
5076 XOr (DerefOf (Index (BT0I, 0x00)), 0x01, Local0)
5077 Return (GBST (0x00, HB0S, Local0, BT0P))
5078 }
5079
5080 Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point
5081 {
5082 And (HAM4, 0xEF, HAM4)
5083 If (Arg0)
5084 {
5085 Store (Arg0, Local1)
5086 If (LNot (DerefOf (Index (BT0I, 0x00))))
5087 {
5088 Divide (Local1, 0x0A, Local0, Local1)
5089 }
5090
5091 And (Local1, 0xFF, HT0L)
5092 And (ShiftRight (Local1, 0x08), 0xFF, HT0H)
5093 Or (HAM4, 0x10, HAM4)
5094 }
5095 }
5096 }
5097
5098 Device (BAT1)
5099 {
5100 Name (_HID, EisaId ("PNP0C0A")) // _HID: Hardware ID
5101 Name (_UID, 0x02) // _UID: Unique ID
5102 Name (_PCL, Package (0x01) // _PCL: Power Consumer List
5103 {
5104 \_SB
5105 })
5106 Name (B1ST, 0x00)
5107 Name (XB1S, 0x01)
5108 Name (BT1I, Package (0x0D)
5109 {
5110 0x00,
5111 0xFFFFFFFF,
5112 0xFFFFFFFF,
5113 0x01,
5114 0x2A30,
5115 0x00,
5116 0x00,
5117 0x01,
5118 0x01,
5119 "",
5120 "",
5121 "",
5122 ""
5123 })
5124 Name (BT1P, Package (0x04)
5125 {
5126 0x00,
5127 0x00,
5128 0x00,
5129 0x00
5130 })
5131 Method (_STA, 0, NotSerialized) // _STA: Status
5132 {
5133 If (\H8DR)
5134 {
5135 If (LAnd (\WNTF, And (HBCS, 0x02)))
5136 {
5137 Store (HB1A, B1ST)
5138 }
5139 }
5140 Else
5141 {
5142 If (LAnd (\WNTF, And (\RBEC (0xCE), 0x02)))
5143 {
5144 If (And (\RBEC (0x39), 0x80))
5145 {
5146 Store (0x01, B1ST)
5147 }
5148 Else
5149 {
5150 Store (0x00, B1ST)
5151 }
5152 }
5153 }
5154
5155 If (B1ST)
5156 {
5157 If (XB1S)
5158 {
5159 Return (0x1F)
5160 }
5161 Else
5162 {
5163 If (\WNTF)
5164 {
5165 Return (0x00)
5166 }
5167 Else
5168 {
5169 Return (0x1F)
5170 }
5171 }
5172 }
5173 Else
5174 {
5175 If (\WNTF)
5176 {
5177 Return (0x00)
5178 }
5179 Else
5180 {
5181 Return (0x0F)
5182 }
5183 }
5184 }
5185
5186 Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
5187 {
5188 If (LNot (B1ST))
5189 {
5190 Return (BT1I)
5191 }
5192
5193 Store (0x00, Local7)
5194 Store (0x0A, Local6)
5195 While (LAnd (LNot (Local7), Local6))
5196 {
5197 If (HB1A)
5198 {
5199 If (LEqual (And (HB1S, 0x0F), 0x0F))
5200 {
5201 Sleep (0x03E8)
5202 Decrement (Local6)
5203 }
5204 Else
5205 {
5206 Store (0x01, Local7)
5207 }
5208 }
5209 Else
5210 {
5211 Store (0x00, Local6)
5212 }
5213 }
5214
5215 Return (GBIF (0x10, BT1I, Local7))
5216 }
5217
5218 Method (_BST, 0, NotSerialized) // _BST: Battery Status
5219 {
5220 If (LNot (B1ST))
5221 {
5222 Return (BT1P)
5223 }
5224
5225 XOr (DerefOf (Index (BT1I, 0x00)), 0x01, Local0)
5226 Return (GBST (0x10, HB1S, Local0, BT1P))
5227 }
5228
5229 Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point
5230 {
5231 If (B1ST)
5232 {
5233 And (HAM4, 0xDF, HAM4)
5234 If (Arg0)
5235 {
5236 Store (Arg0, Local1)
5237 If (LNot (DerefOf (Index (BT1I, 0x00))))
5238 {
5239 Divide (Local1, 0x0A, Local0, Local1)
5240 }
5241
5242 And (Local1, 0xFF, HT1L)
5243 And (ShiftRight (Local1, 0x08), 0xFF, HT1H)
5244 Or (HAM4, 0x20, HAM4)
5245 }
5246 }
5247 }
5248 }
5249
5250 Device (BAT2)
5251 {
5252 Name (_HID, EisaId ("PNP0C0A")) // _HID: Hardware ID
5253 Name (_UID, 0x01) // _UID: Unique ID
5254 Name (_PCL, Package (0x01) // _PCL: Power Consumer List
5255 {
5256 \_SB
5257 })
5258 Name (B2ST, 0x00)
5259 Name (XB2S, 0x01)
5260 Name (IFLG, 0x00)
5261 Name (BT2I, Package (0x0D)
5262 {
5263 0x00,
5264 0xFFFFFFFF,
5265 0xFFFFFFFF,
5266 0x01,
5267 0x2A30,
5268 0x00,
5269 0x00,
5270 0x01,
5271 0x01,
5272 "",
5273 "",
5274 "",
5275 ""
5276 })
5277 Name (BT2P, Package (0x04)
5278 {
5279 0x00,
5280 0x00,
5281 0x00,
5282 0x00
5283 })
5284 Method (_INI, 0, NotSerialized) // _INI: Initialize
5285 {
5286 If (LEqual (\_SB.PCI0.LPC.EC.GSID (), 0x03))
5287 {
5288 Store (0x00, XB2S)
5289 }
5290 Else
5291 {
5292 If (\WNTF)
5293 {
5294 If (\H8DR)
5295 {
5296 Store (HB1A, Local0)
5297 }
5298 Else
5299 {
5300 And (\RBEC (0x39), 0x80, Local0)
5301 }
5302
5303 If (LNot (Local0))
5304 {
5305 Store (0x00, XB2S)
5306 }
5307 }
5308 }
5309
5310 Store (0x01, IFLG)
5311 }
5312
5313 Method (_STA, 0, NotSerialized) // _STA: Status
5314 {
5315 If (LNot (IFLG))
5316 {
5317 _INI ()
5318 }
5319
5320 If (\H8DR)
5321 {
5322 If (LAnd (\WNTF, And (HBCS, 0x02)))
5323 {
5324 Store (0x00, B2ST)
5325 }
5326 Else
5327 {
5328 Store (HB1A, B2ST)
5329 }
5330 }
5331 Else
5332 {
5333 If (LAnd (\WNTF, And (\RBEC (0xCE), 0x02)))
5334 {
5335 Store (0x00, B2ST)
5336 }
5337 Else
5338 {
5339 If (And (\RBEC (0xCE), 0x01))
5340 {
5341 Store (0x01, B2ST)
5342 }
5343 Else
5344 {
5345 Store (0x00, B2ST)
5346 }
5347 }
5348 }
5349
5350 If (B2ST)
5351 {
5352 If (XB2S)
5353 {
5354 Return (0x1F)
5355 }
5356 Else
5357 {
5358 Return (0x00)
5359 }
5360 }
5361 Else
5362 {
5363 If (XB2S)
5364 {
5365 Return (0x0F)
5366 }
5367 Else
5368 {
5369 Return (0x00)
5370 }
5371 }
5372 }
5373
5374 Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
5375 {
5376 If (LNot (B2ST))
5377 {
5378 Return (BT2I)
5379 }
5380
5381 Store (0x00, Local7)
5382 Store (0x0A, Local6)
5383 While (LAnd (LNot (Local7), Local6))
5384 {
5385 If (HB1A)
5386 {
5387 If (LEqual (And (HB1S, 0x0F), 0x0F))
5388 {
5389 Sleep (0x03E8)
5390 Decrement (Local6)
5391 }
5392 Else
5393 {
5394 Store (0x01, Local7)
5395 }
5396 }
5397 Else
5398 {
5399 Store (0x00, Local6)
5400 }
5401 }
5402
5403 Return (GBIF (0x10, BT2I, Local7))
5404 }
5405
5406 Method (_BST, 0, NotSerialized) // _BST: Battery Status
5407 {
5408 If (LNot (B2ST))
5409 {
5410 Return (BT2P)
5411 }
5412
5413 XOr (DerefOf (Index (BT2I, 0x00)), 0x01, Local0)
5414 Return (GBST (0x10, HB1S, Local0, BT2P))
5415 }
5416
5417 Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point
5418 {
5419 If (B2ST)
5420 {
5421 And (HAM4, 0xDF, HAM4)
5422 If (Arg0)
5423 {
5424 Store (Arg0, Local1)
5425 If (LNot (DerefOf (Index (BT2I, 0x00))))
5426 {
5427 Divide (Local1, 0x0A, Local0, Local1)
5428 }
5429
5430 And (Local1, 0xFF, HT1L)
5431 And (ShiftRight (Local1, 0x08), 0xFF, HT1H)
5432 Or (HAM4, 0x20, HAM4)
5433 }
5434 }
5435 }
5436 }
5437
5438 Device (AC)
5439 {
5440 Name (_HID, "ACPI0003") // _HID: Hardware ID
5441 Name (_UID, 0x00) // _UID: Unique ID
5442 Name (_PCL, Package (0x01) // _PCL: Power Consumer List
5443 {
5444 \_SB
5445 })
5446 Method (_PSR, 0, NotSerialized) // _PSR: Power Source
5447 {
5448 Return (HPAC)
5449 }
5450
5451 Method (_STA, 0, NotSerialized) // _STA: Status
5452 {
5453 Return (0x0F)
5454 }
5455 }
5456
5457 Device (HKEY)
5458 {
5459 Name (_HID, EisaId ("IBM0068")) // _HID: Hardware ID
5460 Method (_STA, 0, NotSerialized) // _STA: Status
5461 {
5462 Return (0x0F)
5463 }
5464
5465 Method (MHKV, 0, NotSerialized)
5466 {
5467 Return (0x0100)
5468 }
5469
5470 Name (DHKC, 0x00)
5471 Name (DHKB, 0x01)
5472 Mutex (XDHK, 0x07)
5473 Name (DHKH, 0x00)
5474 Name (DHKW, 0x00)
5475 Name (DHKS, 0x00)
5476 Name (DHKD, 0x00)
5477 Name (DHKN, 0x080C)
5478 Name (DHKT, 0x00)
5479 Name (DHWW, 0x00)
5480 Name (DHC4, 0x00)
5481 Method (MHKA, 0, NotSerialized)
5482 {
5483 Return (0x00FFFFFF)
5484 }
5485
5486 Method (MHKN, 0, NotSerialized)
5487 {
5488 Return (DHKN)
5489 }
5490
5491 Method (MHKK, 1, NotSerialized)
5492 {
5493 If (DHKC)
5494 {
5495 Return (And (DHKN, Arg0))
5496 }
5497 Else
5498 {
5499 Return (Zero)
5500 }
5501 }
5502
5503 Method (MHKM, 2, NotSerialized)
5504 {
5505 Acquire (XDHK, 0xFFFF)
5506 If (LGreater (Arg0, 0x20))
5507 {
5508 Noop
5509 }
5510 Else
5511 {
5512 ShiftLeft (One, Decrement (Arg0), Local0)
5513 If (And (Local0, 0x00FFFFFF))
5514 {
5515 If (Arg1)
5516 {
5517 Or (Local0, DHKN, DHKN)
5518 }
5519 Else
5520 {
5521 And (DHKN, XOr (Local0, 0xFFFFFFFF), DHKN)
5522 }
5523 }
5524 Else
5525 {
5526 Noop
5527 }
5528 }
5529
5530 Release (XDHK)
5531 }
5532
5533 Method (MHKS, 0, NotSerialized)
5534 {
5535 Notify (\_SB.SLPB, 0x80)
5536 }
5537
5538 Method (MHKC, 1, NotSerialized)
5539 {
5540 Store (Arg0, DHKC)
5541 }
5542
5543 Method (MHKP, 0, NotSerialized)
5544 {
5545 Acquire (XDHK, 0xFFFF)
5546 If (DHWW)
5547 {
5548 Store (DHWW, Local1)
5549 Store (Zero, DHWW)
5550 }
5551 Else
5552 {
5553 If (DHKW)
5554 {
5555 Store (DHKW, Local1)
5556 Store (Zero, DHKW)
5557 }
5558 Else
5559 {
5560 If (DHKD)
5561 {
5562 Store (DHKD, Local1)
5563 Store (Zero, DHKD)
5564 }
5565 Else
5566 {
5567 If (DHKS)
5568 {
5569 Store (DHKS, Local1)
5570 Store (Zero, DHKS)
5571 }
5572 Else
5573 {
5574 If (DHKT)
5575 {
5576 Store (DHKT, Local1)
5577 Store (Zero, DHKT)
5578 }
5579 Else
5580 {
5581 Store (DHKH, Local1)
5582 Store (Zero, DHKH)
5583 }
5584 }
5585 }
5586 }
5587 }
5588
5589 Release (XDHK)
5590 Return (Local1)
5591 }
5592
5593 Method (MHKE, 1, NotSerialized)
5594 {
5595 Store (Arg0, DHKB)
5596 Acquire (XDHK, 0xFFFF)
5597 Store (Zero, DHKH)
5598 Store (Zero, DHKW)
5599 Store (Zero, DHKS)
5600 Store (Zero, DHKD)
5601 Store (Zero, DHKT)
5602 Store (Zero, DHWW)
5603 Release (XDHK)
5604 }
5605
5606 Method (MHKQ, 1, NotSerialized)
5607 {
5608 If (DHKB)
5609 {
5610 If (DHKC)
5611 {
5612 Acquire (XDHK, 0xFFFF)
5613 If (LLess (Arg0, 0x1000)) {}
5614 Else
5615 {
5616 If (LLess (Arg0, 0x2000))
5617 {
5618 Store (Arg0, DHKH)
5619 }
5620 Else
5621 {
5622 If (LLess (Arg0, 0x3000))
5623 {
5624 Store (Arg0, DHKW)
5625 }
5626 Else
5627 {
5628 If (LLess (Arg0, 0x4000))
5629 {
5630 Store (Arg0, DHKS)
5631 }
5632 Else
5633 {
5634 If (LLess (Arg0, 0x5000))
5635 {
5636 Store (Arg0, DHKD)
5637 }
5638 Else
5639 {
5640 If (LLess (Arg0, 0x6000))
5641 {
5642 Store (Arg0, DHKH)
5643 }
5644 Else
5645 {
5646 If (LLess (Arg0, 0x7000))
5647 {
5648 Store (Arg0, DHKT)
5649 }
5650 Else
5651 {
5652 If (LLess (Arg0, 0x8000))
5653 {
5654 Store (Arg0, DHWW)
5655 }
5656 Else
5657 {
5658 }
5659 }
5660 }
5661 }
5662 }
5663 }
5664 }
5665 }
5666
5667 Release (XDHK)
5668 Notify (HKEY, 0x80)
5669 }
5670 Else
5671 {
5672 If (LEqual (Arg0, 0x1004))
5673 {
5674 Notify (\_SB.SLPB, 0x80)
5675 }
5676 }
5677 }
5678 }
5679
5680 Method (MHKB, 1, NotSerialized)
5681 {
5682 If (LEqual (Arg0, 0x00))
5683 {
5684 \_SB.PCI0.LPC.EC.BEEP (0x11)
5685 Store (0x00, \LIDB)
5686 }
5687 Else
5688 {
5689 If (LEqual (Arg0, 0x01))
5690 {
5691 \_SB.PCI0.LPC.EC.BEEP (0x10)
5692 Store (0x01, \LIDB)
5693 }
5694 Else
5695 {
5696 }
5697 }
5698 }
5699
5700 Method (MHKD, 0, NotSerialized)
5701 {
5702 If (VIGD)
5703 {
5704 \_SB.PCI0.VID.VLOC (0x00)
5705 }
5706 Else
5707 {
5708 \_SB.PCI0.AGP.VID.VLOC (0x00)
5709 }
5710 }
5711
5712 Method (MHQC, 1, NotSerialized)
5713 {
5714 If (\WNTF)
5715 {
5716 If (LEqual (Arg0, 0x00))
5717 {
5718 Return (\CWAC)
5719 }
5720 Else
5721 {
5722 If (LEqual (Arg0, 0x01))
5723 {
5724 Return (\CWAP)
5725 }
5726 Else
5727 {
5728 If (LEqual (Arg0, 0x02))
5729 {
5730 Return (\CWAT)
5731 }
5732 Else
5733 {
5734 Noop
5735 }
5736 }
5737 }
5738 }
5739 Else
5740 {
5741 Noop
5742 }
5743
5744 Return (0x00)
5745 }
5746
5747 Method (MHGC, 0, NotSerialized)
5748 {
5749 If (\WNTF)
5750 {
5751 Acquire (XDHK, 0xFFFF)
5752 If (CKC4 (0x00))
5753 {
5754 Store (0x03, Local0)
5755 }
5756 Else
5757 {
5758 Store (0x04, Local0)
5759 }
5760
5761 Release (XDHK)
5762 Return (Local0)
5763 }
5764 Else
5765 {
5766 Noop
5767 }
5768
5769 Return (0x00)
5770 }
5771
5772 Method (MHSC, 1, NotSerialized)
5773 {
5774 If (LAnd (\CWAC, \WNTF))
5775 {
5776 Acquire (XDHK, 0xFFFF)
5777 If (\OSC4)
5778 {
5779 If (LEqual (Arg0, 0x03))
5780 {
5781 If (LNot (\CWAS))
5782 {
5783 Notify (\_PR.CPU0, 0x81)
5784 If (\MPEN)
5785 {
5786 Notify (\_PR.CPU1, 0x81)
5787 }
5788
5789 Store (0x01, \CWAS)
5790 }
5791 }
5792 Else
5793 {
5794 If (LEqual (Arg0, 0x04))
5795 {
5796 If (\CWAS)
5797 {
5798 Notify (\_PR.CPU0, 0x81)
5799 If (\MPEN)
5800 {
5801 Notify (\_PR.CPU1, 0x81)
5802 }
5803
5804 Store (0x00, \CWAS)
5805 }
5806 }
5807 Else
5808 {
5809 Noop
5810 }
5811 }
5812 }
5813 Else
5814 {
5815 If (LEqual (Arg0, 0x03))
5816 {
5817 If (LNot (\CWAS))
5818 {
5819 Store (0x00, \_SB.PCI0.LPC.C4C3)
5820 Store (0x01, \CWAS)
5821 }
5822 }
5823 Else
5824 {
5825 If (LEqual (Arg0, 0x04))
5826 {
5827 If (\CWAS)
5828 {
5829 Store (0x00, \CWAS)
5830 If (LNot (CKC4 (0x00)))
5831 {
5832 Store (0x01, \_SB.PCI0.LPC.C4C3)
5833 }
5834 }
5835 }
5836 Else
5837 {
5838 Noop
5839 }
5840 }
5841 }
5842
5843 Release (XDHK)
5844 }
5845 Else
5846 {
5847 Noop
5848 }
5849 }
5850
5851 Method (CKC4, 1, NotSerialized)
5852 {
5853 Store (0x00, Local0)
5854 If (DHC4)
5855 {
5856 If (\C4WR)
5857 {
5858 If (LNot (\C4AC))
5859 {
5860 Or (Local0, 0x01, Local0)
5861 }
5862 }
5863 }
5864 Else
5865 {
5866 If (\_SB.PCI0.LPC.EC.AC._PSR ())
5867 {
5868 Or (Local0, 0x01, Local0)
5869 }
5870 }
5871
5872 If (\C4NA)
5873 {
5874 Or (Local0, 0x02, Local0)
5875 }
5876
5877 If (LAnd (\CWAC, \CWAS))
5878 {
5879 Or (Local0, 0x04, Local0)
5880 }
5881
5882 If (LAnd (\CWUE, \CWUS))
5883 {
5884 Or (Local0, 0x08, Local0)
5885 }
5886
5887 And (Local0, Not (Arg0), Local0)
5888 Return (Local0)
5889 }
5890
5891 Method (MHQE, 0, NotSerialized)
5892 {
5893 Return (\C4WR)
5894 }
5895
5896 Method (MHGE, 0, NotSerialized)
5897 {
5898 Store (0x01, DHC4)
5899 If (LAnd (\C4WR, \C4AC))
5900 {
5901 Return (0x04)
5902 }
5903
5904 Return (0x03)
5905 }
5906
5907 Method (MHSE, 1, NotSerialized)
5908 {
5909 If (\C4WR)
5910 {
5911 Store (0x01, DHC4)
5912 Store (\C4AC, Local0)
5913 If (LEqual (Arg0, 0x03))
5914 {
5915 Store (0x00, \C4AC)
5916 If (XOr (Local0, \C4AC))
5917 {
5918 If (\OSC4)
5919 {
5920 Notify (\_PR.CPU0, 0x81)
5921 If (\MPEN)
5922 {
5923 Notify (\_PR.CPU1, 0x81)
5924 }
5925 }
5926 Else
5927 {
5928 Store (0x00, \_SB.PCI0.LPC.C4C3)
5929 }
5930 }
5931 }
5932 Else
5933 {
5934 If (LEqual (Arg0, 0x04))
5935 {
5936 Store (0x01, \C4AC)
5937 If (XOr (Local0, \C4AC))
5938 {
5939 If (\OSC4)
5940 {
5941 Notify (\_PR.CPU0, 0x81)
5942 If (\MPEN)
5943 {
5944 Notify (\_PR.CPU1, 0x81)
5945 }
5946 }
5947 Else
5948 {
5949 If (LNot (CKC4 (0x00)))
5950 {
5951 Store (0x01, \_SB.PCI0.LPC.C4C3)
5952 }
5953 }
5954 }
5955 }
5956 }
5957 }
5958 }
5959 }
5960
5961 Scope (\_SB.PCI0.LPC.EC.HKEY)
5962 {
5963 Method (TDSC, 1, NotSerialized)
5964 {
5965 Store (0x01, Local0)
5966 While (Local0)
5967 {
5968 Store (\_SB.PCI0.LPC.EC.HANT, Local0)
5969 }
5970
5971 Store (Arg0, \_SB.PCI0.LPC.EC.HANT)
5972 If (LEqual (Arg0, 0x21))
5973 {
5974 \ATCC (0x00)
5975 }
5976 }
5977
5978 Method (TDSS, 1, NotSerialized)
5979 {
5980 \ATCC (Arg0)
5981 }
5982
5983 Method (TDSG, 1, NotSerialized)
5984 {
5985 And (Arg0, 0xFF, Local0)
5986 Store (Local0, \_SB.PCI0.LPC.EC.HDAA)
5987 ShiftRight (Arg0, 0x08, Local0)
5988 And (Local0, 0xFF, Local1)
5989 Store (Local1, \_SB.PCI0.LPC.EC.HDAB)
5990 ShiftRight (Arg0, 0x10, Local0)
5991 And (Local0, 0xFF, Local1)
5992 Store (Local1, \_SB.PCI0.LPC.EC.HDAC)
5993 ShiftRight (Arg0, 0x18, Local0)
5994 And (Local0, 0xFF, Local1)
5995 Store (Local1, \_SB.PCI0.LPC.EC.HANA)
5996 }
5997
5998 Method (TDGC, 0, NotSerialized)
5999 {
6000 Store (\_SB.PCI0.LPC.EC.HDDD, Local0)
6001 Return (Local0)
6002 }
6003
6004 Method (TDGS, 0, NotSerialized)
6005 {
6006 Store (\_SB.PCI0.LPC.EC.HAAA, Local0)
6007 Return (Local0)
6008 }
6009 }
6010
6011 Field (ECOR, ByteAcc, Lock, Preserve)
6012 {
6013 Offset (0x54),
6014 HSD0, 8,
6015 HSD1, 8,
6016 HSD2, 8
6017 }
6018
6019 Field (ECOR, ByteAcc, Lock, Preserve)
6020 {
6021 Offset (0x56),
6022 HSDL, 16
6023 }
6024
6025 Field (ECOR, ByteAcc, Lock, Preserve)
6026 {
6027 Offset (0x56),
6028 HSDB, 72,
6029 HSDF, 16,
6030 HSDC, 16
6031 }
6032
6033 Mutex (I2CM, 0x07)
6034 Method (CHKS, 0, NotSerialized)
6035 {
6036 Store (0x03E8, Local0)
6037 While (HMPR)
6038 {
6039 Sleep (0x01)
6040 Decrement (Local0)
6041 If (LNot (Local0))
6042 {
6043 Return (0x8080)
6044 }
6045 }
6046
6047 If (HMDN)
6048 {
6049 If (HMST)
6050 {
6051 Return (Or (0x8000, HMST))
6052 }
6053 Else
6054 {
6055 Return (Zero)
6056 }
6057 }
6058 Else
6059 {
6060 Return (0x8081)
6061 }
6062 }
6063
6064 Method (I2RT, 0, NotSerialized)
6065 {
6066 Store (0x02, HMAD)
6067 Store (0x21, HMCM)
6068 Store (0x0B, HMPR)
6069 Return (CHKS ())
6070 }
6071
6072 Method (I2NT, 1, NotSerialized)
6073 {
6074 Store (0x02, HMAD)
6075 Store (0x22, HMCM)
6076 Store (Arg0, HSD0)
6077 Store (0x06, HMPR)
6078 Return (CHKS ())
6079 }
6080
6081 Method (TATR, 0, NotSerialized)
6082 {
6083 If (\H8DR)
6084 {
6085 Acquire (I2CM, 0xFFFF)
6086 I2RT ()
6087 Store (HSD0, Local0)
6088 If (LEqual (Local0, 0x20))
6089 {
6090 \_SB.PCI0.LPC.TCSZ (HSD1, HSD2)
6091 I2NT (Local0)
6092 }
6093 Else
6094 {
6095 If (LEqual (Local0, 0x21))
6096 {
6097 \_SB.PCI0.LPC.TCST (HSD1, HSD2)
6098 I2NT (Local0)
6099 }
6100 Else
6101 {
6102 If (LEqual (Local0, 0x22))
6103 {
6104 Name (TSDC, Buffer (0x09)
6105 {
6106 " "
6107 })
6108 Store (HSDB, TSDC)
6109 \_SB.PCI0.LPC.TCBS (HSD1, TSDC, HSDF, HSDC)
6110 I2NT (Local0)
6111 }
6112 Else
6113 {
6114 If (LEqual (Local0, 0x23))
6115 {
6116 \_SB.PCI0.LPC.TSCL (HSD1, HSDL)
6117 I2NT (Local0)
6118 }
6119 }
6120 }
6121 }
6122
6123 Release (I2CM)
6124 }
6125 }
6126
6127 Method (TATE, 0, NotSerialized)
6128 {
6129 Store (0x01, HETE)
6130 }
6131
6132 Scope (\_SB.PCI0.LPC.EC.HKEY)
6133 {
6134 Name (INDV, 0x00)
6135 Method (MHQI, 0, NotSerialized)
6136 {
6137 If (And (\IPMS, 0x01))
6138 {
6139 Or (INDV, 0x01, INDV)
6140 }
6141
6142 If (And (\IPMS, 0x02))
6143 {
6144 Or (INDV, 0x02, INDV)
6145 }
6146
6147 If (And (\IPMS, 0x04))
6148 {
6149 Or (INDV, 0x0100, INDV)
6150 }
6151
6152 If (And (\IPMS, 0x08))
6153 {
6154 Or (INDV, 0x0200, INDV)
6155 }
6156
6157 Return (INDV)
6158 }
6159
6160 Method (MHGI, 1, NotSerialized)
6161 {
6162 Name (RETB, Buffer (0x10) {})
6163 CreateByteField (RETB, 0x00, MHGS)
6164 ShiftLeft (0x01, Arg0, Local0)
6165 If (And (INDV, Local0))
6166 {
6167 If (LEqual (Arg0, 0x00))
6168 {
6169 CreateField (RETB, 0x08, 0x78, BRBU)
6170 Store (\IPMB, BRBU)
6171 Store (0x10, MHGS)
6172 }
6173 Else
6174 {
6175 If (LEqual (Arg0, 0x01))
6176 {
6177 CreateField (RETB, 0x08, 0x18, RRBU)
6178 Store (\IPMR, RRBU)
6179 Store (0x04, MHGS)
6180 }
6181 Else
6182 {
6183 If (LEqual (Arg0, 0x08))
6184 {
6185 CreateField (RETB, 0x10, 0x18, ODBU)
6186 CreateByteField (RETB, 0x01, MHGZ)
6187 Store (\IPMO, ODBU)
6188 If (LAnd (LEqual (^^BSTS, 0x00), LEqual (^^BDEV, 0x0B)))
6189 {
6190 Or (0x01, MHGZ, MHGZ)
6191 Or (0x02, MHGZ, MHGZ)
6192 }
6193
6194 Store (0x05, MHGS)
6195 }
6196 Else
6197 {
6198 If (LEqual (Arg0, 0x09))
6199 {
6200 CreateField (RETB, 0x10, 0x08, AUBU)
6201 Store (\IPMA, AUBU)
6202 Store (0x01, Index (RETB, 0x01))
6203 Store (0x03, MHGS)
6204 }
6205 }
6206 }
6207 }
6208 }
6209
6210 Return (RETB)
6211 }
6212
6213 Method (MHSI, 2, NotSerialized)
6214 {
6215 ShiftLeft (0x01, Arg0, Local0)
6216 If (And (INDV, Local0))
6217 {
6218 If (LEqual (Arg0, 0x08))
6219 {
6220 If (Arg1)
6221 {
6222 If (And (\_SB.PCI0.LPC.EC.SFLG, 0x0400))
6223 {
6224 If (\H8DR)
6225 {
6226 Store (^^HPBU, Local1)
6227 }
6228 Else
6229 {
6230 And (\RBEC (0x47), 0x01, Local1)
6231 }
6232
6233 If (LNot (Local1))
6234 {
6235 Store (^^BGID (0x00), ^^BDEV)
6236 ^^NBIN (Local1)
6237 }
6238 }
6239 }
6240 }
6241 }
6242 }
6243 }
6244 }
6245 }
6246
6247 Name (_ADR, 0x00) // _ADR: Address
6248 Name (_S3D, 0x02) // _S3D: S3 Device State
6249 Name (RID, 0x00)
6250 Name (LRRT, Package (0x16)
6251 {
6252 Package (0x04)
6253 {
6254 0x0001FFFF,
6255 0x00,
6256 \_SB.LNKA,
6257 0x00
6258 },
6259
6260 Package (0x04)
6261 {
6262 0x0002FFFF,
6263 0x00,
6264 \_SB.LNKA,
6265 0x00
6266 },
6267
6268 Package (0x04)
6269 {
6270 0x0003FFFF,
6271 0x00,
6272 \_SB.LNKA,
6273 0x00
6274 },
6275
6276 Package (0x04)
6277 {
6278 0x0003FFFF,
6279 0x01,
6280 \_SB.LNKB,
6281 0x00
6282 },
6283
6284 Package (0x04)
6285 {
6286 0x0003FFFF,
6287 0x02,
6288 \_SB.LNKC,
6289 0x00
6290 },
6291
6292 Package (0x04)
6293 {
6294 0x0003FFFF,
6295 0x03,
6296 \_SB.LNKD,
6297 0x00
6298 },
6299
6300 Package (0x04)
6301 {
6302 0x0019FFFF,
6303 0x00,
6304 \_SB.LNKE,
6305 0x00
6306 },
6307
6308 Package (0x04)
6309 {
6310 0x001AFFFF,
6311 0x00,
6312 \_SB.LNKE,
6313 0x00
6314 },
6315
6316 Package (0x04)
6317 {
6318 0x001AFFFF,
6319 0x01,
6320 \_SB.LNKF,
6321 0x00
6322 },
6323
6324 Package (0x04)
6325 {
6326 0x001AFFFF,
6327 0x02,
6328 \_SB.LNKG,
6329 0x00
6330 },
6331
6332 Package (0x04)
6333 {
6334 0x001BFFFF,
6335 0x01,
6336 \_SB.LNKB,
6337 0x00
6338 },
6339
6340 Package (0x04)
6341 {
6342 0x001CFFFF,
6343 0x00,
6344 \_SB.LNKE,
6345 0x00
6346 },
6347
6348 Package (0x04)
6349 {
6350 0x001CFFFF,
6351 0x01,
6352 \_SB.LNKF,
6353 0x00
6354 },
6355
6356 Package (0x04)
6357 {
6358 0x001CFFFF,
6359 0x02,
6360 \_SB.LNKG,
6361 0x00
6362 },
6363
6364 Package (0x04)
6365 {
6366 0x001CFFFF,
6367 0x03,
6368 \_SB.LNKH,
6369 0x00
6370 },
6371
6372 Package (0x04)
6373 {
6374 0x001DFFFF,
6375 0x00,
6376 \_SB.LNKA,
6377 0x00
6378 },
6379
6380 Package (0x04)
6381 {
6382 0x001DFFFF,
6383 0x01,
6384 \_SB.LNKB,
6385 0x00
6386 },
6387
6388 Package (0x04)
6389 {
6390 0x001DFFFF,
6391 0x02,
6392 \_SB.LNKC,
6393 0x00
6394 },
6395
6396 Package (0x04)
6397 {
6398 0x001DFFFF,
6399 0x03,
6400 \_SB.LNKD,
6401 0x00
6402 },
6403
6404 Package (0x04)
6405 {
6406 0x001FFFFF,
6407 0x00,
6408 \_SB.LNKH,
6409 0x00
6410 },
6411
6412 Package (0x04)
6413 {
6414 0x001FFFFF,
6415 0x02,
6416 \_SB.LNKA,
6417 0x00
6418 },
6419
6420 Package (0x04)
6421 {
6422 0x001FFFFF,
6423 0x01,
6424 \_SB.LNKA,
6425 0x00
6426 }
6427 })
6428 Name (ARRT, Package (0x16)
6429 {
6430 Package (0x04)
6431 {
6432 0x0001FFFF,
6433 0x00,
6434 0x00,
6435 0x10
6436 },
6437
6438 Package (0x04)
6439 {
6440 0x0002FFFF,
6441 0x00,
6442 0x00,
6443 0x10
6444 },
6445
6446 Package (0x04)
6447 {
6448 0x0003FFFF,
6449 0x00,
6450 0x00,
6451 0x10
6452 },
6453
6454 Package (0x04)
6455 {
6456 0x0003FFFF,
6457 0x01,
6458 0x00,
6459 0x11
6460 },
6461
6462 Package (0x04)
6463 {
6464 0x0003FFFF,
6465 0x02,
6466 0x00,
6467 0x12
6468 },
6469
6470 Package (0x04)
6471 {
6472 0x0003FFFF,
6473 0x03,
6474 0x00,
6475 0x13
6476 },
6477
6478 Package (0x04)
6479 {
6480 0x0019FFFF,
6481 0x00,
6482 0x00,
6483 0x14
6484 },
6485
6486 Package (0x04)
6487 {
6488 0x001AFFFF,
6489 0x00,
6490 0x00,
6491 0x14
6492 },
6493
6494 Package (0x04)
6495 {
6496 0x001AFFFF,
6497 0x01,
6498 0x00,
6499 0x15
6500 },
6501
6502 Package (0x04)
6503 {
6504 0x001AFFFF,
6505 0x02,
6506 0x00,
6507 0x16
6508 },
6509
6510 Package (0x04)
6511 {
6512 0x001BFFFF,
6513 0x01,
6514 0x00,
6515 0x11
6516 },
6517
6518 Package (0x04)
6519 {
6520 0x001CFFFF,
6521 0x00,
6522 0x00,
6523 0x14
6524 },
6525
6526 Package (0x04)
6527 {
6528 0x001CFFFF,
6529 0x01,
6530 0x00,
6531 0x15
6532 },
6533
6534 Package (0x04)
6535 {
6536 0x001CFFFF,
6537 0x02,
6538 0x00,
6539 0x16
6540 },
6541
6542 Package (0x04)
6543 {
6544 0x001CFFFF,
6545 0x03,
6546 0x00,
6547 0x17
6548 },
6549
6550 Package (0x04)
6551 {
6552 0x001DFFFF,
6553 0x00,
6554 0x00,
6555 0x10
6556 },
6557
6558 Package (0x04)
6559 {
6560 0x001DFFFF,
6561 0x01,
6562 0x00,
6563 0x11
6564 },
6565
6566 Package (0x04)
6567 {
6568 0x001DFFFF,
6569 0x02,
6570 0x00,
6571 0x12
6572 },
6573
6574 Package (0x04)
6575 {
6576 0x001DFFFF,
6577 0x03,
6578 0x00,
6579 0x13
6580 },
6581
6582 Package (0x04)
6583 {
6584 0x001FFFFF,
6585 0x00,
6586 0x00,
6587 0x17
6588 },
6589
6590 Package (0x04)
6591 {
6592 0x001FFFFF,
6593 0x02,
6594 0x00,
6595 0x10
6596 },
6597
6598 Package (0x04)
6599 {
6600 0x001FFFFF,
6601 0x01,
6602 0x00,
6603 0x10
6604 }
6605 })
6606 Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
6607 {
6608 If (\GPIC)
6609 {
6610 Return (ARRT)
6611 }
6612 Else
6613 {
6614 Return (LRRT)
6615 }
6616 }
6617
6618 Name (_HID, EisaId ("PNP0A08")) // _HID: Hardware ID
6619 Name (_CID, EisaId ("PNP0A03")) // _CID: Compatible ID
6620 Name (_BBN, 0x00) // _BBN: BIOS Bus Number
6621 OperationRegion (MHCS, PCI_Config, 0x00, 0x0100)
6622 Field (MHCS, DWordAcc, NoLock, Preserve)
6623 {
6624 Offset (0x90),
6625 PAM0, 8,
6626 PAM1, 8,
6627 PAM2, 8,
6628 PAM3, 8,
6629 PAM4, 8,
6630 PAM5, 8,
6631 PAM6, 8,
6632 Offset (0xB0),
6633 , 4,
6634 TOUD, 12
6635 }
6636
6637 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
6638 {
6639 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
6640 0x0000, // Granularity
6641 0x0000, // Range Minimum
6642 0x00FF, // Range Maximum
6643 0x0000, // Translation Offset
6644 0x0100, // Length
6645 ,, )
6646 IO (Decode16,
6647 0x0CF8, // Range Minimum
6648 0x0CF8, // Range Maximum
6649 0x01, // Alignment
6650 0x08, // Length
6651 )
6652 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
6653 0x0000, // Granularity
6654 0x0000, // Range Minimum
6655 0x0CF7, // Range Maximum
6656 0x0000, // Translation Offset
6657 0x0CF8, // Length
6658 ,, , TypeStatic)
6659 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
6660 0x0000, // Granularity
6661 0x0D00, // Range Minimum
6662 0xFFFF, // Range Maximum
6663 0x0000, // Translation Offset
6664 0xF300, // Length
6665 ,, , TypeStatic)
6666 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6667 0x00000000, // Granularity
6668 0x000A0000, // Range Minimum
6669 0x000BFFFF, // Range Maximum
6670 0x00000000, // Translation Offset
6671 0x00020000, // Length
6672 ,, , AddressRangeMemory, TypeStatic)
6673 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6674 0x00000000, // Granularity
6675 0x000C0000, // Range Minimum
6676 0x000C3FFF, // Range Maximum
6677 0x00000000, // Translation Offset
6678 0x00004000, // Length
6679 ,, _Y21, AddressRangeMemory, TypeStatic)
6680 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6681 0x00000000, // Granularity
6682 0x000C4000, // Range Minimum
6683 0x000C7FFF, // Range Maximum
6684 0x00000000, // Translation Offset
6685 0x00004000, // Length
6686 ,, _Y22, AddressRangeMemory, TypeStatic)
6687 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6688 0x00000000, // Granularity
6689 0x000C8000, // Range Minimum
6690 0x000CBFFF, // Range Maximum
6691 0x00000000, // Translation Offset
6692 0x00004000, // Length
6693 ,, _Y23, AddressRangeMemory, TypeStatic)
6694 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6695 0x00000000, // Granularity
6696 0x000CC000, // Range Minimum
6697 0x000CFFFF, // Range Maximum
6698 0x00000000, // Translation Offset
6699 0x00004000, // Length
6700 ,, _Y24, AddressRangeMemory, TypeStatic)
6701 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6702 0x00000000, // Granularity
6703 0x000D0000, // Range Minimum
6704 0x000D3FFF, // Range Maximum
6705 0x00000000, // Translation Offset
6706 0x00004000, // Length
6707 ,, _Y25, AddressRangeMemory, TypeStatic)
6708 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6709 0x00000000, // Granularity
6710 0x000D4000, // Range Minimum
6711 0x000D7FFF, // Range Maximum
6712 0x00000000, // Translation Offset
6713 0x00004000, // Length
6714 ,, _Y26, AddressRangeMemory, TypeStatic)
6715 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6716 0x00000000, // Granularity
6717 0x000D8000, // Range Minimum
6718 0x000DBFFF, // Range Maximum
6719 0x00000000, // Translation Offset
6720 0x00004000, // Length
6721 ,, _Y27, AddressRangeMemory, TypeStatic)
6722 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6723 0x00000000, // Granularity
6724 0x000DC000, // Range Minimum
6725 0x000DFFFF, // Range Maximum
6726 0x00000000, // Translation Offset
6727 0x00004000, // Length
6728 ,, _Y28, AddressRangeMemory, TypeStatic)
6729 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6730 0x00000000, // Granularity
6731 0x000E0000, // Range Minimum
6732 0x000E3FFF, // Range Maximum
6733 0x00000000, // Translation Offset
6734 0x00004000, // Length
6735 ,, _Y29, AddressRangeMemory, TypeStatic)
6736 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6737 0x00000000, // Granularity
6738 0x000E4000, // Range Minimum
6739 0x000E7FFF, // Range Maximum
6740 0x00000000, // Translation Offset
6741 0x00004000, // Length
6742 ,, _Y2A, AddressRangeMemory, TypeStatic)
6743 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6744 0x00000000, // Granularity
6745 0x000E8000, // Range Minimum
6746 0x000EBFFF, // Range Maximum
6747 0x00000000, // Translation Offset
6748 0x00004000, // Length
6749 ,, _Y2B, AddressRangeMemory, TypeStatic)
6750 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6751 0x00000000, // Granularity
6752 0x000EC000, // Range Minimum
6753 0x000EFFFF, // Range Maximum
6754 0x00000000, // Translation Offset
6755 0x00004000, // Length
6756 ,, _Y2C, AddressRangeMemory, TypeStatic)
6757 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6758 0x00000000, // Granularity
6759 0x00100000, // Range Minimum
6760 0xFEBFFFFF, // Range Maximum
6761 0x00000000, // Translation Offset
6762 0xFEB00000, // Length
6763 ,, _Y2D, AddressRangeMemory, TypeStatic)
6764 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6765 0x00000000, // Granularity
6766 0xFED40000, // Range Minimum
6767 0xFED4BFFF, // Range Maximum
6768 0x00000000, // Translation Offset
6769 0x0000C000, // Length
6770 ,, _Y2E, AddressRangeMemory, TypeStatic)
6771 })
6772 CreateDWordField (_CRS, \_SB.PCI0._Y21._LEN, C0LN) // _LEN: Length
6773 CreateDWordField (_CRS, \_SB.PCI0._Y22._LEN, C4LN) // _LEN: Length
6774 CreateDWordField (_CRS, \_SB.PCI0._Y23._LEN, C8LN) // _LEN: Length
6775 CreateDWordField (_CRS, \_SB.PCI0._Y24._LEN, CCLN) // _LEN: Length
6776 CreateDWordField (_CRS, \_SB.PCI0._Y25._LEN, D0LN) // _LEN: Length
6777 CreateDWordField (_CRS, \_SB.PCI0._Y26._LEN, D4LN) // _LEN: Length
6778 CreateDWordField (_CRS, \_SB.PCI0._Y27._LEN, D8LN) // _LEN: Length
6779 CreateDWordField (_CRS, \_SB.PCI0._Y28._LEN, DCLN) // _LEN: Length
6780 CreateDWordField (_CRS, \_SB.PCI0._Y29._LEN, E0LN) // _LEN: Length
6781 CreateDWordField (_CRS, \_SB.PCI0._Y2A._LEN, E4LN) // _LEN: Length
6782 CreateDWordField (_CRS, \_SB.PCI0._Y2B._LEN, E8LN) // _LEN: Length
6783 CreateDWordField (_CRS, \_SB.PCI0._Y2C._LEN, ECLN) // _LEN: Length
6784 CreateDWordField (_CRS, \_SB.PCI0._Y2D._MIN, XXMN) // _MIN: Minimum Base Address
6785 CreateDWordField (_CRS, \_SB.PCI0._Y2D._MAX, XXMX) // _MAX: Maximum Base Address
6786 CreateDWordField (_CRS, \_SB.PCI0._Y2D._LEN, XXLN) // _LEN: Length
6787 CreateDWordField (_CRS, \_SB.PCI0._Y2E._MIN, F4MN) // _MIN: Minimum Base Address
6788 CreateDWordField (_CRS, \_SB.PCI0._Y2E._MAX, F4MX) // _MAX: Maximum Base Address
6789 CreateDWordField (_CRS, \_SB.PCI0._Y2E._LEN, F4LN) // _LEN: Length
6790 Method (_INI, 0, Serialized) // _INI: Initialize
6791 {
6792 If (LNot (\OSIF))
6793 {
6794 \_SB._INI ()
6795 }
6796
6797 ShiftLeft (TOUD, 0x14, Local0)
6798 Store (Local0, \MEMX)
6799 Store (Local0, XXMN)
6800 Add (Subtract (XXMX, XXMN), 0x01, XXLN)
6801 If (LNotEqual (And (\TPMP, 0x01), 0x01))
6802 {
6803 Store (0x00, F4LN)
6804 }
6805
6806 If (And (PAM1, 0x03))
6807 {
6808 Store (0x00, C0LN)
6809 }
6810
6811 If (And (PAM1, 0x30))
6812 {
6813 Store (0x00, C4LN)
6814 }
6815
6816 If (And (PAM2, 0x03))
6817 {
6818 Store (0x00, C8LN)
6819 }
6820
6821 If (And (PAM2, 0x30))
6822 {
6823 Store (0x00, CCLN)
6824 }
6825
6826 If (And (PAM3, 0x03))
6827 {
6828 Store (0x00, D0LN)
6829 }
6830
6831 If (And (PAM3, 0x30))
6832 {
6833 Store (0x00, D4LN)
6834 }
6835
6836 If (And (PAM4, 0x03))
6837 {
6838 Store (0x00, D8LN)
6839 }
6840
6841 If (And (PAM4, 0x30))
6842 {
6843 Store (0x00, DCLN)
6844 }
6845
6846 If (And (PAM5, 0x03))
6847 {
6848 Store (0x00, E0LN)
6849 }
6850
6851 If (And (PAM5, 0x30))
6852 {
6853 Store (0x00, E4LN)
6854 }
6855
6856 If (And (PAM6, 0x03))
6857 {
6858 Store (0x00, E8LN)
6859 }
6860
6861 If (And (PAM6, 0x30))
6862 {
6863 Store (0x00, ECLN)
6864 }
6865 }
6866
6867 Name (SUPP, 0x00)
6868 Name (CTRL, 0x00)
6869 Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities
6870 {
6871 CreateDWordField (Arg3, 0x00, CDW1)
6872 CreateDWordField (Arg3, 0x04, CDW2)
6873 CreateDWordField (Arg3, 0x08, CDW3)
6874 CreateDWordField (Arg0, 0x00, IID0)
6875 CreateDWordField (Arg0, 0x04, IID1)
6876 CreateDWordField (Arg0, 0x08, IID2)
6877 CreateDWordField (Arg0, 0x0C, IID3)
6878 Name (UID0, Buffer (0x10)
6879 {
6880 /* 0000 */ 0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40,
6881 /* 0008 */ 0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
6882 })
6883 CreateDWordField (UID0, 0x00, EID0)
6884 CreateDWordField (UID0, 0x04, EID1)
6885 CreateDWordField (UID0, 0x08, EID2)
6886 CreateDWordField (UID0, 0x0C, EID3)
6887 If (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (
6888 LEqual (IID2, EID2), LEqual (IID3, EID3))))
6889 {
6890 Store (CDW2, SUPP)
6891 Store (CDW3, CTRL)
6892 And (CTRL, 0x1D, CTRL)
6893 If (Not (And (CDW1, 0x01)))
6894 {
6895 If (And (CTRL, 0x01))
6896 {
6897 If (LNot (\VIGD))
6898 {
6899 Store (0x00, \_SB.PCI0.AGP.HPGP)
6900 Store (0x00, \_SB.PCI0.AGP.GMGP)
6901 }
6902
6903 Store (0x00, \_SB.PCI0.EXP3.HPCE)
6904 Store (0x01, \_SB.PCI0.EXP3.HPCS)
6905 Store (0x01, \_SB.PCI0.EXP3.ABP)
6906 Store (0x01, \_SB.PCI0.EXP3.PDS)
6907 Store (0x01, \NHPS)
6908 }
6909
6910 If (And (CTRL, 0x04))
6911 {
6912 If (LNot (\VIGD))
6913 {
6914 Store (0x00, \_SB.PCI0.AGP.PMGP)
6915 Store (0x00, \_SB.PCI0.AGP.GMGP)
6916 }
6917
6918 Store (0x00, \_SB.PCI0.EXP3.PMCE)
6919 Store (0x01, \_SB.PCI0.EXP3.PMCS)
6920 Store (0x00, \_SB.PCI0.LPC.EXPE)
6921 Store (0x01, \NPME)
6922 }
6923 }
6924
6925 If (LNotEqual (Arg1, 0x01))
6926 {
6927 Or (CDW1, 0x0A, CDW1)
6928 }
6929
6930 If (LNotEqual (CDW3, CTRL))
6931 {
6932 Or (CDW1, 0x10, CDW1)
6933 }
6934
6935 Store (CTRL, CDW3)
6936 }
6937 Else
6938 {
6939 Or (CDW1, 0x06, CDW1)
6940 }
6941
6942 Return (Arg3)
6943 }
6944
6945 Mutex (MDGS, 0x07)
6946 Name (VDEE, 0x01)
6947 Name (VDDA, Buffer (0x02) {})
6948 CreateBitField (VDDA, 0x00, VUPC)
6949 CreateBitField (VDDA, 0x01, VQDL)
6950 CreateBitField (VDDA, 0x02, VQDC)
6951 CreateBitField (VDDA, 0x03, VQDT)
6952 CreateBitField (VDDA, 0x04, VQDD)
6953 CreateBitField (VDDA, 0x05, VSDL)
6954 CreateBitField (VDDA, 0x06, VSDC)
6955 CreateBitField (VDDA, 0x07, VSDT)
6956 CreateBitField (VDDA, 0x08, VSDD)
6957 CreateBitField (VDDA, 0x0A, MSWT)
6958 CreateBitField (VDDA, 0x0B, VWST)
6959 Name (VDPU, 0x00)
6960 Device (VID)
6961 {
6962 Name (_ADR, 0x00020000) // _ADR: Address
6963 Name (RID, 0x00)
6964 OperationRegion (VPCG, PCI_Config, 0x00, 0x0100)
6965 Field (VPCG, DWordAcc, NoLock, Preserve)
6966 {
6967 Offset (0xD4),
6968 VPWR, 8
6969 }
6970
6971 Name (_S3D, 0x03) // _S3D: S3 Device State
6972 Method (_INI, 0, NotSerialized) // _INI: Initialize
6973 {
6974 \VUPS (0x02)
6975 Store (\VCDL, VQDL)
6976 Store (\VCDC, VQDC)
6977 Store (\VCDT, VQDT)
6978 Store (\VCDD, VQDD)
6979 }
6980
6981 Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
6982 {
6983 Noop
6984 }
6985
6986 Method (_PS1, 0, NotSerialized) // _PS1: Power State 1
6987 {
6988 Noop
6989 }
6990
6991 Method (_PS2, 0, NotSerialized) // _PS2: Power State 2
6992 {
6993 Noop
6994 }
6995
6996 Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
6997 {
6998 Noop
6999 }
7000
7001 Method (VSWT, 0, NotSerialized)
7002 {
7003 If (\WVIS)
7004 {
7005 Store (\VEVT (0x07), Local0)
7006 }
7007 Else
7008 {
7009 Store (\VEVT (0x05), Local0)
7010 }
7011
7012 And (0x0F, Local0, Local1)
7013 If (DSFS)
7014 {
7015 If (LEqual (Local1, 0x03))
7016 {
7017 Store (0x01, Local1)
7018 }
7019 }
7020
7021 If (Local1)
7022 {
7023 ASWT (Local1, 0x01)
7024 GHDS (0x00)
7025 }
7026 }
7027
7028 Method (VLOC, 1, NotSerialized)
7029 {
7030 If (LEqual (Arg0, \_SB.LID._LID ()))
7031 {
7032 \VSLD (Arg0)
7033 If (LEqual (VPWR, 0x00))
7034 {
7035 If (Arg0)
7036 {
7037 Store (\VEVT (0x01), Local0)
7038 }
7039 Else
7040 {
7041 Store (\VEVT (0x02), Local0)
7042 If (EXTD)
7043 {
7044 Store (0x00, Local0)
7045 }
7046 }
7047
7048 And (0x0F, Local0, Local1)
7049 If (Local1)
7050 {
7051 ASWT (Local1, 0x00)
7052 Store (Arg0, CLID)
7053 GNOT (0x02, 0x00)
7054 }
7055 }
7056 }
7057 }
7058
7059 Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching
7060 {
7061 And (Arg0, 0x03, Arg0)
7062 If (LEqual (Arg0, 0x02))
7063 {
7064 Store (0x14, Local0)
7065 While (Local0)
7066 {
7067 Decrement (Local0)
7068 Acquire (MDGS, 0xFFFF)
7069 If (LEqual (0x00, MSWT))
7070 {
7071 Store (0x01, MSWT)
7072 Store (0x00, Local0)
7073 Store (Arg0, VDEE)
7074 }
7075
7076 Release (MDGS)
7077 Sleep (0xC8)
7078 }
7079 }
7080 Else
7081 {
7082 Acquire (MDGS, 0xFFFF)
7083 If (LEqual (VDEE, 0x02))
7084 {
7085 Store (0x00, MSWT)
7086 }
7087
7088 If (LGreater (Arg0, 0x02))
7089 {
7090 Store (0x01, VDEE)
7091 }
7092 Else
7093 {
7094 Store (Arg0, VDEE)
7095 }
7096
7097 Release (MDGS)
7098 }
7099 }
7100
7101 Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices
7102 {
7103 Return (Package (0x03)
7104 {
7105 0x0100,
7106 0x0300,
7107 0x0400
7108 })
7109 }
7110
7111 Method (ASWT, 2, NotSerialized)
7112 {
7113 If (LEqual (0x01, VDEE))
7114 {
7115 And (0x01, Arg1, Local1)
7116 \VSDS (Arg0, Local1)
7117 }
7118 Else
7119 {
7120 Store (0x14, Local0)
7121 While (Local0)
7122 {
7123 Decrement (Local0)
7124 Acquire (MDGS, 0xFFFF)
7125 If (LEqual (0x00, MSWT))
7126 {
7127 Store (0x00, Local0)
7128 If (And (0x01, Arg1))
7129 {
7130 Store (0x01, VUPC)
7131 }
7132 Else
7133 {
7134 Store (0x00, VUPC)
7135 }
7136
7137 If (And (0x01, Arg0))
7138 {
7139 Store (0x01, VQDL)
7140 }
7141 Else
7142 {
7143 Store (0x00, VQDL)
7144 }
7145
7146 If (And (0x02, Arg0))
7147 {
7148 Store (0x01, VQDC)
7149 }
7150 Else
7151 {
7152 Store (0x00, VQDC)
7153 }
7154
7155 If (And (0x08, Arg0))
7156 {
7157 Store (0x01, VQDD)
7158 }
7159 Else
7160 {
7161 Store (0x00, VQDD)
7162 }
7163 }
7164
7165 Release (MDGS)
7166 Sleep (0xC8)
7167 }
7168 }
7169 }
7170
7171 Method (VDSW, 1, NotSerialized)
7172 {
7173 If (LEqual (VPWR, 0x00))
7174 {
7175 If (Arg0)
7176 {
7177 Store (0x00, VDPU)
7178 Store (\VEVT (0x03), Local0)
7179 And (0x0F, Local0, Local1)
7180 If (Local1)
7181 {
7182 ASWT (Local1, 0x00)
7183 GDCK (Arg0)
7184 }
7185 }
7186 Else
7187 {
7188 Store (0x01, VDPU)
7189 Store (\VEVT (0x04), Local0)
7190 ASWT (0x01, 0x00)
7191 GDCK (Arg0)
7192 }
7193 }
7194 }
7195
7196 Method (VDSP, 0, NotSerialized)
7197 {
7198 If (LEqual (VPWR, 0x00))
7199 {
7200 If (LEqual (VDPU, 0x01))
7201 {
7202 Store (0x00, VDPU)
7203 If (\_SB.LID._LID ())
7204 {
7205 ASWT (0x01, 0x00)
7206 GLID (0x01)
7207 }
7208 }
7209 }
7210 }
7211
7212 Method (VSPD, 0, NotSerialized)
7213 {
7214 Store (\VEVT (0x06), Local0)
7215 And (0x0F, Local0, Local1)
7216 If (Local1)
7217 {
7218 ASWT (Local1, 0x01)
7219 GHDS (0x00)
7220 }
7221 }
7222
7223 Device (LCD0)
7224 {
7225 Name (_ADR, 0x0400) // _ADR: Address
7226 Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
7227 {
7228 \VUPS (0x00)
7229 If (\VCDL)
7230 {
7231 Return (0x1F)
7232 }
7233 Else
7234 {
7235 Return (0x1D)
7236 }
7237 }
7238
7239 Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
7240 {
7241 Return (VQDL)
7242 }
7243
7244 Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
7245 {
7246 And (Arg0, 0x01, VSDL)
7247 If (And (Arg0, 0x80000000))
7248 {
7249 If (And (Arg0, 0x40000000))
7250 {
7251 DSWT (0x02)
7252 }
7253 Else
7254 {
7255 DSWT (0x01)
7256 }
7257 }
7258 }
7259 }
7260
7261 Device (CRT0)
7262 {
7263 Name (_ADR, 0x0100) // _ADR: Address
7264 Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
7265 {
7266 \VUPS (0x01)
7267 If (\VCSS)
7268 {
7269 If (\VCDC)
7270 {
7271 Return (0x1F)
7272 }
7273 Else
7274 {
7275 Return (0x1D)
7276 }
7277 }
7278 Else
7279 {
7280 If (\VCDC)
7281 {
7282 Return (0x0F)
7283 }
7284 Else
7285 {
7286 Return (0x0D)
7287 }
7288 }
7289 }
7290
7291 Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
7292 {
7293 Return (VQDC)
7294 }
7295
7296 Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
7297 {
7298 And (Arg0, 0x01, VSDC)
7299 If (And (Arg0, 0x80000000))
7300 {
7301 If (And (Arg0, 0x40000000))
7302 {
7303 DSWT (0x02)
7304 }
7305 Else
7306 {
7307 DSWT (0x01)
7308 }
7309 }
7310 }
7311 }
7312
7313 Device (DVI0)
7314 {
7315 Name (_ADR, 0x0300) // _ADR: Address
7316 Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
7317 {
7318 \VUPS (0x00)
7319 If (\VCDD)
7320 {
7321 Return (0x1F)
7322 }
7323 Else
7324 {
7325 Return (0x1D)
7326 }
7327 }
7328
7329 Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
7330 {
7331 Return (VQDD)
7332 }
7333
7334 Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
7335 {
7336 And (Arg0, 0x01, VSDD)
7337 If (And (Arg0, 0x80000000))
7338 {
7339 If (And (Arg0, 0x40000000))
7340 {
7341 DSWT (0x02)
7342 }
7343 Else
7344 {
7345 DSWT (0x01)
7346 }
7347 }
7348 }
7349 }
7350
7351 Method (DSWT, 1, NotSerialized)
7352 {
7353 If (VSDL)
7354 {
7355 Store (0x01, Local0)
7356 }
7357 Else
7358 {
7359 Store (0x00, Local0)
7360 }
7361
7362 If (VSDC)
7363 {
7364 Or (0x02, Local0, Local0)
7365 }
7366
7367 If (VSDD)
7368 {
7369 Or (0x08, Local0, Local0)
7370 }
7371
7372 If (Local0)
7373 {
7374 If (VUPC)
7375 {
7376 \VSDS (Local0, Arg0)
7377 }
7378 }
7379 Else
7380 {
7381 Noop
7382 }
7383 }
7384
7385 OperationRegion (IGDP, PCI_Config, 0x40, 0xC0)
7386 Field (IGDP, AnyAcc, NoLock, Preserve)
7387 {
7388 Offset (0x12),
7389 , 1,
7390 GIVD, 1,
7391 , 2,
7392 GUMA, 3,
7393 Offset (0x14),
7394 , 4,
7395 GMFN, 1,
7396 Offset (0x18),
7397 Offset (0xA4),
7398 ASLE, 8,
7399 Offset (0xA8),
7400 GSSE, 1,
7401 GSSB, 14,
7402 GSES, 1,
7403 Offset (0xB0),
7404 Offset (0xB1),
7405 CDVL, 5,
7406 Offset (0xB2),
7407 Offset (0xB5),
7408 LBPC, 8,
7409 Offset (0xBC),
7410 ASLS, 32
7411 }
7412
7413 OperationRegion (IGDM, SystemMemory, \ASLB, 0x2000)
7414 Field (IGDM, AnyAcc, NoLock, Preserve)
7415 {
7416 SIGN, 128,
7417 SIZE, 32,
7418 OVER, 32,
7419 SVER, 256,
7420 VVER, 128,
7421 GVER, 128,
7422 MBOX, 32,
7423 Offset (0x100),
7424 DRDY, 32,
7425 CSTS, 32,
7426 CEVT, 32,
7427 Offset (0x120),
7428 DIDL, 32,
7429 DDL2, 32,
7430 DDL3, 32,
7431 DDL4, 32,
7432 DDL5, 32,
7433 DDL6, 32,
7434 DDL7, 32,
7435 DDL8, 32,
7436 CPDL, 32,
7437 CPL2, 32,
7438 CPL3, 32,
7439 CPL4, 32,
7440 CPL5, 32,
7441 CPL6, 32,
7442 CPL7, 32,
7443 CPL8, 32,
7444 CADL, 32,
7445 CAL2, 32,
7446 CAL3, 32,
7447 CAL4, 32,
7448 CAL5, 32,
7449 CAL6, 32,
7450 CAL7, 32,
7451 CAL8, 32,
7452 NADL, 32,
7453 NDL2, 32,
7454 NDL3, 32,
7455 NDL4, 32,
7456 NDL5, 32,
7457 NDL6, 32,
7458 NDL7, 32,
7459 NDL8, 32,
7460 ASLP, 32,
7461 TIDX, 32,
7462 CHPD, 32,
7463 CLID, 32,
7464 CDCK, 32,
7465 SXSW, 32,
7466 EVTS, 32,
7467 CNOT, 32,
7468 NRDY, 32,
7469 Offset (0x200),
7470 SCIE, 1,
7471 GEFC, 4,
7472 GXFC, 3,
7473 GESF, 8,
7474 Offset (0x204),
7475 PARM, 32,
7476 DSLP, 32,
7477 Offset (0x300),
7478 ARDY, 32,
7479 ASLC, 32,
7480 TCHE, 32,
7481 ALSI, 32,
7482 BCLP, 32,
7483 PFIT, 32,
7484 CBLV, 32,
7485 BCLM, 320,
7486 CPFM, 32,
7487 EPFM, 32,
7488 Offset (0x400),
7489 GVD1, 57344
7490 }
7491
7492 Name (DBTB, Package (0x15)
7493 {
7494 0x00,
7495 0x07,
7496 0x38,
7497 0x01C0,
7498 0x0E00,
7499 0x3F,
7500 0x01C7,
7501 0x0E07,
7502 0x01F8,
7503 0x0E38,
7504 0x0FC0,
7505 0x00,
7506 0x00,
7507 0x00,
7508 0x00,
7509 0x00,
7510 0x7000,
7511 0x7007,
7512 0x7038,
7513 0x71C0,
7514 0x7E00
7515 })
7516 Name (DBTC, Package (0x15)
7517 {
7518 0x00,
7519 0x02,
7520 0x01,
7521 0x08,
7522 0x00,
7523 0x03,
7524 0x0A,
7525 0x00,
7526 0x09,
7527 0x00,
7528 0x00,
7529 0x00,
7530 0x00,
7531 0x00,
7532 0x00,
7533 0x00,
7534 0x04,
7535 0x06,
7536 0x05,
7537 0x0C,
7538 0x00
7539 })
7540 Name (CDCT, Package (0x03)
7541 {
7542 Package (0x03)
7543 {
7544 0xC8,
7545 0x0140,
7546 0x0190
7547 },
7548
7549 Package (0x03)
7550 {
7551 0xC8,
7552 0x014D,
7553 0x0190
7554 },
7555
7556 Package (0x03)
7557 {
7558 0xDE,
7559 0x014D,
7560 0x017D
7561 }
7562 })
7563 Name (SUCC, 0x01)
7564 Name (NVLD, 0x02)
7565 Name (CRIT, 0x04)
7566 Name (NCRT, 0x06)
7567 Method (OPRN, 0, Serialized)
7568 {
7569 If (LEqual (GEFC, 0x04))
7570 {
7571 Store (GBDA (), GXFC)
7572 }
7573
7574 If (LEqual (GEFC, 0x06))
7575 {
7576 Store (SBCB (), GXFC)
7577 }
7578
7579 Store (0x00, GEFC)
7580 Store (0x01, \_SB.PCI0.LPC.SCIS)
7581 Store (0x00, GSSE)
7582 Store (0x00, SCIE)
7583 Return (Zero)
7584 }
7585
7586 Method (GBDA, 0, Serialized)
7587 {
7588 If (LEqual (GESF, 0x00))
7589 {
7590 Store (0x0279, PARM)
7591 Store (Zero, GESF)
7592 Return (SUCC)
7593 }
7594
7595 If (LEqual (GESF, 0x01))
7596 {
7597 Store (0x00010672, PARM)
7598 Store (Zero, GESF)
7599 Return (SUCC)
7600 }
7601
7602 If (LEqual (GESF, 0x04))
7603 {
7604 And (PARM, 0xEFFF0000, PARM)
7605 And (PARM, ShiftLeft (DerefOf (Index (DBTB, IBTT)), 0x10),
7606 PARM)
7607 Or (IBTT, PARM, PARM)
7608 Store (Zero, GESF)
7609 Return (SUCC)
7610 }
7611
7612 If (LEqual (GESF, 0x05))
7613 {
7614 If (\_SB.LID._LID ())
7615 {
7616 Store (0x01, LIDS)
7617 }
7618 Else
7619 {
7620 Store (0x00, LIDS)
7621 }
7622
7623 Store (IPSC, PARM)
7624 Add (PARM, 0x01, PARM)
7625 Add (PARM, 0x0300, PARM)
7626 Add (PARM, 0x00010000, PARM)
7627 Or (PARM, ShiftLeft (LIDS, 0x10), PARM)
7628 Or (PARM, ShiftLeft (IBIA, 0x14), PARM)
7629 Store (Zero, GESF)
7630 Return (SUCC)
7631 }
7632
7633 If (LEqual (GESF, 0x06))
7634 {
7635 Store (ITVF, PARM)
7636 Or (PARM, ShiftLeft (ITVM, 0x04), PARM)
7637 Store (Zero, GESF)
7638 Return (SUCC)
7639 }
7640
7641 If (LEqual (GESF, 0x07))
7642 {
7643 Store (GIVD, PARM)
7644 XOr (PARM, 0x01, PARM)
7645 Or (PARM, ShiftLeft (GMFN, 0x01), PARM)
7646 Or (PARM, ShiftLeft (0x02, 0x0B), PARM)
7647 If (IDMM)
7648 {
7649 Or (PARM, ShiftLeft (IDMS, 0x11), PARM)
7650 }
7651 Else
7652 {
7653 Or (PARM, ShiftLeft (IDMS, 0x0D), PARM)
7654 }
7655
7656 Or (ShiftLeft (DerefOf (Index (DerefOf (Index (CDCT, HVCO)), Subtract (
7657 CDVL, 0x01))), 0x15), PARM, PARM)
7658 Store (0x01, GESF)
7659 Return (SUCC)
7660 }
7661
7662 If (LEqual (GESF, 0x0A))
7663 {
7664 Store (0x00, PARM)
7665 If (ISSC)
7666 {
7667 Or (PARM, ISSC, PARM)
7668 Or (PARM, 0x00640000, PARM)
7669 }
7670
7671 Store (0x00, GESF)
7672 Return (SUCC)
7673 }
7674
7675 Store (Zero, GESF)
7676 Return (CRIT)
7677 }
7678
7679 Name (DSFS, 0x00)
7680 Name (EXTD, 0x00)
7681 Method (SBCB, 0, Serialized)
7682 {
7683 If (LEqual (GESF, 0x00))
7684 {
7685 Store (0x8339, PARM)
7686 Store (Zero, GESF)
7687 Return (SUCC)
7688 }
7689
7690 If (LEqual (GESF, 0x01))
7691 {
7692 Store (Zero, GESF)
7693 Store (Zero, PARM)
7694 Return (SUCC)
7695 }
7696
7697 If (LEqual (GESF, 0x03))
7698 {
7699 Store (Zero, GESF)
7700 Store (Zero, PARM)
7701 Return (SUCC)
7702 }
7703
7704 If (LEqual (GESF, 0x04))
7705 {
7706 And (PARM, 0xFFFF, PARM)
7707 If (LGreater (PARM, 0x13))
7708 {
7709 Store (0x00, DSFS)
7710 }
7711 Else
7712 {
7713 Store (0x01, DSFS)
7714 }
7715
7716 Store (Zero, GESF)
7717 Store (Zero, PARM)
7718 Return (SUCC)
7719 }
7720
7721 If (LEqual (GESF, 0x05))
7722 {
7723 Store (Zero, GESF)
7724 Store (Zero, PARM)
7725 Return (SUCC)
7726 }
7727
7728 If (LEqual (GESF, 0x06))
7729 {
7730 Store (And (PARM, 0x0F), ITVF)
7731 Store (ShiftRight (And (PARM, 0xF0), 0x04), ITVM)
7732 \UCMS (0x19)
7733 Store (Zero, GESF)
7734 Store (Zero, PARM)
7735 Return (SUCC)
7736 }
7737
7738 If (LEqual (GESF, 0x07))
7739 {
7740 Store (Zero, GESF)
7741 Store (Zero, PARM)
7742 Return (SUCC)
7743 }
7744
7745 If (LEqual (GESF, 0x08))
7746 {
7747 Store (Zero, GESF)
7748 Store (Zero, PARM)
7749 Return (SUCC)
7750 }
7751
7752 If (LEqual (GESF, 0x09))
7753 {
7754 And (PARM, 0x80000000, EXTD)
7755 And (PARM, 0xFF, Local0)
7756 If (LLessEqual (Local0, 0x14))
7757 {
7758 Store (DerefOf (Index (DBTC, Local0)), IBTT)
7759 }
7760 Else
7761 {
7762 Store (0x00, IBTT)
7763 }
7764
7765 If (IBTT)
7766 {
7767 \UCMS (0x17)
7768 }
7769
7770 And (PARM, 0xFF, IBTT)
7771 Store (Zero, GESF)
7772 Store (Zero, PARM)
7773 Return (SUCC)
7774 }
7775
7776 If (LEqual (GESF, 0x0A))
7777 {
7778 Store (Subtract (And (PARM, 0x03), 0x01), IPSC)
7779 \UCMS (0x1A)
7780 If (And (ShiftRight (PARM, 0x08), 0xFF))
7781 {
7782 And (ShiftRight (PARM, 0x08), 0xFF, IPAT)
7783 Decrement (IPAT)
7784 }
7785
7786 And (ShiftRight (PARM, 0x14), 0x07, IBIA)
7787 Store (Zero, GESF)
7788 Store (Zero, PARM)
7789 Return (SUCC)
7790 }
7791
7792 If (LEqual (GESF, 0x0B))
7793 {
7794 And (ShiftRight (PARM, 0x01), 0x01, IF1E)
7795 If (And (PARM, ShiftLeft (0x0F, 0x0D)))
7796 {
7797 And (ShiftRight (PARM, 0x0D), 0x0F, IDMS)
7798 Store (0x00, IDMM)
7799 }
7800 Else
7801 {
7802 And (ShiftRight (PARM, 0x11), 0x0F, IDMS)
7803 Store (0x01, IDMM)
7804 }
7805
7806 Store (Zero, GESF)
7807 Store (Zero, PARM)
7808 Return (SUCC)
7809 }
7810
7811 If (LEqual (GESF, 0x10))
7812 {
7813 And (PARM, 0x01, PARM)
7814 XOr (PARM, 0x01, PARM)
7815 Store (PARM, DSFS)
7816 Store (Zero, GESF)
7817 Store (Zero, PARM)
7818 Return (SUCC)
7819 }
7820
7821 If (LEqual (GESF, 0x11))
7822 {
7823 Store (ShiftLeft (LIDS, 0x08), PARM)
7824 Add (PARM, 0x0100, PARM)
7825 Store (Zero, GESF)
7826 Return (SUCC)
7827 }
7828
7829 If (LEqual (GESF, 0x12))
7830 {
7831 If (And (PARM, 0x01))
7832 {
7833 If (LEqual (ShiftRight (PARM, 0x01), 0x01))
7834 {
7835 Store (0x01, ISSC)
7836 }
7837 Else
7838 {
7839 Store (Zero, GESF)
7840 Return (CRIT)
7841 }
7842 }
7843 Else
7844 {
7845 Store (0x00, ISSC)
7846 }
7847
7848 Store (Zero, GESF)
7849 Store (Zero, PARM)
7850 Return (SUCC)
7851 }
7852
7853 If (LEqual (GESF, 0x13))
7854 {
7855 Store (Zero, GESF)
7856 Store (Zero, PARM)
7857 Return (SUCC)
7858 }
7859
7860 Store (Zero, GESF)
7861 Return (SUCC)
7862 }
7863
7864 Method (PDRD, 0, NotSerialized)
7865 {
7866 If (LNot (DRDY))
7867 {
7868 Sleep (ASLP)
7869 }
7870
7871 Return (LNot (DRDY))
7872 }
7873
7874 Method (PSTS, 0, NotSerialized)
7875 {
7876 If (LGreater (CSTS, 0x02))
7877 {
7878 Sleep (ASLP)
7879 }
7880
7881 Return (LEqual (CSTS, 0x03))
7882 }
7883
7884 Method (GNOT, 2, NotSerialized)
7885 {
7886 If (PDRD ())
7887 {
7888 Return (0x01)
7889 }
7890
7891 If (PSTS ())
7892 {
7893 Return (0x01)
7894 }
7895
7896 Store (Arg0, CEVT)
7897 Store (0x03, CSTS)
7898 If (LAnd (LEqual (CHPD, 0x00), LEqual (Arg1, 0x00)))
7899 {
7900 If (LNotEqual (Arg0, 0x01))
7901 {
7902 If (LAnd (\WXPF, LNot (\WVIS)))
7903 {
7904 Notify (\_SB.PCI0, Arg1)
7905 }
7906 Else
7907 {
7908 Notify (\_SB.PCI0.VID, Arg1)
7909 }
7910 }
7911 }
7912
7913 Notify (\_SB.PCI0.VID, 0x80)
7914 If (LNot (PSTS ()))
7915 {
7916 Store (0x00, CEVT)
7917 }
7918
7919 Return (0x00)
7920 }
7921
7922 Method (GHDS, 1, NotSerialized)
7923 {
7924 Store (Arg0, TIDX)
7925 Return (GNOT (0x01, 0x00))
7926 }
7927
7928 Method (GLID, 1, NotSerialized)
7929 {
7930 Store (Arg0, CLID)
7931 Return (GNOT (0x02, 0x00))
7932 }
7933
7934 Method (GLIS, 1, NotSerialized)
7935 {
7936 Store (Arg0, CLID)
7937 Return (0x00)
7938 }
7939
7940 Method (GDCK, 1, NotSerialized)
7941 {
7942 Store (Arg0, CDCK)
7943 Return (GNOT (0x04, 0x80))
7944 }
7945
7946 Method (GDCS, 1, NotSerialized)
7947 {
7948 Store (Arg0, CDCK)
7949 }
7950
7951 Method (PARD, 0, NotSerialized)
7952 {
7953 If (LNot (ARDY))
7954 {
7955 Sleep (ASLP)
7956 }
7957
7958 Return (LNot (ARDY))
7959 }
7960
7961 Method (AINT, 2, NotSerialized)
7962 {
7963 If (LNot (And (TCHE, ShiftLeft (0x01, Arg0))))
7964 {
7965 Return (0x01)
7966 }
7967
7968 If (PARD ())
7969 {
7970 Return (0x01)
7971 }
7972
7973 If (LEqual (Arg0, 0x02))
7974 {
7975 XOr (PFIT, 0x07, PFIT)
7976 Or (PFIT, 0x80000000, PFIT)
7977 Store (0x04, ASLC)
7978 }
7979 Else
7980 {
7981 If (LEqual (Arg0, 0x01))
7982 {
7983 Store (Arg1, BCLP)
7984 Or (BCLP, 0x80000000, BCLP)
7985 Store (0x02, ASLC)
7986 }
7987 Else
7988 {
7989 If (LEqual (Arg0, 0x00))
7990 {
7991 Store (Arg1, ALSI)
7992 Store (0x01, ASLC)
7993 }
7994 Else
7995 {
7996 Return (0x01)
7997 }
7998 }
7999 }
8000
8001 Store (0x00, LBPC)
8002 Return (0x00)
8003 }
8004 }
8005
8006 Device (AGP)
8007 {
8008 Name (_ADR, 0x00010000) // _ADR: Address
8009 Name (_S3D, 0x03) // _S3D: S3 Device State
8010 Name (RID, 0x00)
8011 Name (LART, Package (0x02)
8012 {
8013 Package (0x04)
8014 {
8015 0xFFFF,
8016 0x00,
8017 \_SB.LNKA,
8018 0x00
8019 },
8020
8021 Package (0x04)
8022 {
8023 0xFFFF,
8024 0x01,
8025 \_SB.LNKB,
8026 0x00
8027 }
8028 })
8029 Name (AART, Package (0x02)
8030 {
8031 Package (0x04)
8032 {
8033 0xFFFF,
8034 0x00,
8035 0x00,
8036 0x10
8037 },
8038
8039 Package (0x04)
8040 {
8041 0xFFFF,
8042 0x01,
8043 0x00,
8044 0x11
8045 }
8046 })
8047 Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
8048 {
8049 If (\GPIC)
8050 {
8051 Return (AART)
8052 }
8053 Else
8054 {
8055 Return (LART)
8056 }
8057 }
8058
8059 Mutex (MDGS, 0x07)
8060 Name (VDEE, 0x01)
8061 Name (VDDA, Buffer (0x02) {})
8062 CreateBitField (VDDA, 0x00, VUPC)
8063 CreateBitField (VDDA, 0x01, VQDL)
8064 CreateBitField (VDDA, 0x02, VQDC)
8065 CreateBitField (VDDA, 0x03, VQDT)
8066 CreateBitField (VDDA, 0x04, VQDD)
8067 CreateBitField (VDDA, 0x05, VSDL)
8068 CreateBitField (VDDA, 0x06, VSDC)
8069 CreateBitField (VDDA, 0x07, VSDT)
8070 CreateBitField (VDDA, 0x08, VSDD)
8071 CreateBitField (VDDA, 0x0A, MSWT)
8072 CreateBitField (VDDA, 0x0B, VWST)
8073 Device (VID)
8074 {
8075 Name (_ADR, 0x00) // _ADR: Address
8076 OperationRegion (VPCG, PCI_Config, 0x00, 0x0100)
8077 Field (VPCG, DWordAcc, NoLock, Preserve)
8078 {
8079 Offset (0x64),
8080 VPWR, 8
8081 }
8082
8083 Name (_S3D, 0x03) // _S3D: S3 Device State
8084 Method (_INI, 0, NotSerialized) // _INI: Initialize
8085 {
8086 \VUPS (0x02)
8087 Store (\VCDL, VQDL)
8088 Store (\VCDC, VQDC)
8089 Store (\VCDT, VQDT)
8090 Store (\VCDD, VQDD)
8091 }
8092
8093 Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
8094 {
8095 Noop
8096 }
8097
8098 Method (_PS1, 0, NotSerialized) // _PS1: Power State 1
8099 {
8100 Noop
8101 }
8102
8103 Method (_PS2, 0, NotSerialized) // _PS2: Power State 2
8104 {
8105 Noop
8106 }
8107
8108 Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
8109 {
8110 Noop
8111 }
8112
8113 Method (VSWT, 0, NotSerialized)
8114 {
8115 If (\WVIS)
8116 {
8117 Store (\VEVT (0x07), Local0)
8118 }
8119 Else
8120 {
8121 Store (\VEVT (0x05), Local0)
8122 }
8123
8124 And (0x0F, Local0, Local1)
8125 If (Local1)
8126 {
8127 ASWT (Local1, 0x01)
8128 }
8129 }
8130
8131 Method (VLOC, 1, NotSerialized)
8132 {
8133 If (LEqual (Arg0, \_SB.LID._LID ()))
8134 {
8135 \VSLD (Arg0)
8136 If (LEqual (VPWR, 0x00))
8137 {
8138 If (Arg0)
8139 {
8140 Store (\VEVT (0x01), Local0)
8141 }
8142 Else
8143 {
8144 Store (\VEVT (0x02), Local0)
8145 }
8146
8147 And (0x0F, Local0, Local1)
8148 If (Local1)
8149 {
8150 ASWT (Local1, 0x00)
8151 }
8152 }
8153 }
8154 }
8155
8156 Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching
8157 {
8158 If (LEqual (Arg0, 0x02))
8159 {
8160 Store (0x14, Local0)
8161 While (Local0)
8162 {
8163 Decrement (Local0)
8164 Acquire (MDGS, 0xFFFF)
8165 If (LEqual (0x00, MSWT))
8166 {
8167 Store (0x01, MSWT)
8168 Store (0x00, Local0)
8169 Store (Arg0, VDEE)
8170 }
8171
8172 Release (MDGS)
8173 Sleep (0xC8)
8174 }
8175 }
8176 Else
8177 {
8178 Acquire (MDGS, 0xFFFF)
8179 If (LEqual (VDEE, 0x02))
8180 {
8181 Store (0x00, MSWT)
8182 }
8183
8184 If (LGreater (Arg0, 0x02))
8185 {
8186 Store (0x01, VDEE)
8187 }
8188 Else
8189 {
8190 Store (Arg0, VDEE)
8191 }
8192
8193 Release (MDGS)
8194 }
8195 }
8196
8197 Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices
8198 {
8199 Return (Package (0x03)
8200 {
8201 0x0100,
8202 0x0210,
8203 0x0110
8204 })
8205 }
8206
8207 Method (ASWT, 2, NotSerialized)
8208 {
8209 If (LEqual (0x01, VDEE))
8210 {
8211 And (0x01, Arg1, Local1)
8212 \VSDS (Arg0, Local1)
8213 }
8214 Else
8215 {
8216 Store (0x14, Local0)
8217 While (Local0)
8218 {
8219 Decrement (Local0)
8220 Acquire (MDGS, 0xFFFF)
8221 If (LEqual (0x00, MSWT))
8222 {
8223 Store (0x00, Local0)
8224 If (And (0x01, Arg1))
8225 {
8226 Store (0x01, VUPC)
8227 }
8228 Else
8229 {
8230 Store (0x00, VUPC)
8231 }
8232
8233 If (And (0x01, Arg0))
8234 {
8235 Store (0x01, VQDL)
8236 }
8237 Else
8238 {
8239 Store (0x00, VQDL)
8240 }
8241
8242 If (And (0x02, Arg0))
8243 {
8244 Store (0x01, VQDC)
8245 }
8246 Else
8247 {
8248 Store (0x00, VQDC)
8249 }
8250
8251 If (And (0x08, Arg0))
8252 {
8253 Store (0x01, VQDD)
8254 }
8255 Else
8256 {
8257 Store (0x00, VQDD)
8258 }
8259 }
8260
8261 Release (MDGS)
8262 Sleep (0xC8)
8263 }
8264
8265 If (And (0x02, Arg1))
8266 {
8267 Notify (VID, 0x81)
8268 }
8269 Else
8270 {
8271 Notify (VID, 0x80)
8272 }
8273 }
8274 }
8275
8276 Method (VDSW, 1, NotSerialized)
8277 {
8278 If (LEqual (VPWR, 0x00))
8279 {
8280 If (Arg0)
8281 {
8282 Store (\VEVT (0x03), Local0)
8283 }
8284 Else
8285 {
8286 Store (\VEVT (0x04), Local0)
8287 }
8288
8289 And (0x0F, Local0, Local1)
8290 If (Local1)
8291 {
8292 ASWT (Local1, 0x00)
8293 }
8294 }
8295 }
8296
8297 Device (LCD0)
8298 {
8299 Name (_ADR, 0x0110) // _ADR: Address
8300 Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
8301 {
8302 \VUPS (0x00)
8303 If (\VCDL)
8304 {
8305 Return (0x1F)
8306 }
8307 Else
8308 {
8309 Return (0x1D)
8310 }
8311 }
8312
8313 Method (_DDC, 1, NotSerialized) // _DDC: Display Data Current
8314 {
8315 \VDDC ()
8316 If (LEqual (Arg0, 0x01))
8317 {
8318 Return (\DDC1)
8319 }
8320 Else
8321 {
8322 If (LEqual (Arg0, 0x02))
8323 {
8324 Return (\DDC2)
8325 }
8326 Else
8327 {
8328 Return (0x00)
8329 }
8330 }
8331 }
8332
8333 Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
8334 {
8335 Return (VQDL)
8336 }
8337
8338 Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
8339 {
8340 And (Arg0, 0x01, VSDL)
8341 If (And (Arg0, 0x80000000))
8342 {
8343 If (And (Arg0, 0x40000000))
8344 {
8345 DSWT (0x02)
8346 }
8347 Else
8348 {
8349 DSWT (0x01)
8350 }
8351 }
8352 }
8353 }
8354
8355 Device (CRT0)
8356 {
8357 Name (_ADR, 0x0100) // _ADR: Address
8358 Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
8359 {
8360 \VUPS (0x01)
8361 If (\VCSS)
8362 {
8363 If (\VCDC)
8364 {
8365 Return (0x1F)
8366 }
8367 Else
8368 {
8369 Return (0x1D)
8370 }
8371 }
8372 Else
8373 {
8374 If (\VCDC)
8375 {
8376 Return (0x0F)
8377 }
8378 Else
8379 {
8380 Return (0x0D)
8381 }
8382 }
8383 }
8384
8385 Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
8386 {
8387 Return (VQDC)
8388 }
8389
8390 Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
8391 {
8392 And (Arg0, 0x01, VSDC)
8393 If (And (Arg0, 0x80000000))
8394 {
8395 If (And (Arg0, 0x40000000))
8396 {
8397 DSWT (0x02)
8398 }
8399 Else
8400 {
8401 DSWT (0x01)
8402 }
8403 }
8404 }
8405 }
8406
8407 Device (DVI0)
8408 {
8409 Name (_ADR, 0x0210) // _ADR: Address
8410 Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
8411 {
8412 \VUPS (0x00)
8413 If (\VCDD)
8414 {
8415 Return (0x1F)
8416 }
8417 Else
8418 {
8419 Return (0x1D)
8420 }
8421 }
8422
8423 Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
8424 {
8425 Return (VQDD)
8426 }
8427
8428 Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
8429 {
8430 And (Arg0, 0x01, VSDD)
8431 If (And (Arg0, 0x80000000))
8432 {
8433 If (And (Arg0, 0x40000000))
8434 {
8435 DSWT (0x02)
8436 }
8437 Else
8438 {
8439 DSWT (0x01)
8440 }
8441 }
8442 }
8443 }
8444
8445 Method (DSWT, 1, NotSerialized)
8446 {
8447 If (VSDL)
8448 {
8449 Store (0x01, Local0)
8450 }
8451 Else
8452 {
8453 Store (0x00, Local0)
8454 }
8455
8456 If (VSDC)
8457 {
8458 Or (0x02, Local0, Local0)
8459 }
8460
8461 If (VSDD)
8462 {
8463 Or (0x08, Local0, Local0)
8464 }
8465
8466 If (Local0)
8467 {
8468 If (VUPC)
8469 {
8470 \VSDS (Local0, Arg0)
8471 }
8472 }
8473 Else
8474 {
8475 Noop
8476 }
8477 }
8478 }
8479
8480 OperationRegion (PEGC, PCI_Config, 0x00, 0x0100)
8481 Field (PEGC, DWordAcc, NoLock, Preserve)
8482 {
8483 Offset (0xEC),
8484 GMGP, 1,
8485 HPGP, 1,
8486 PMGP, 1
8487 }
8488 }
8489
8490 Device (IGBE)
8491 {
8492 Name (_ADR, 0x00190000) // _ADR: Address
8493 Name (_S3D, 0x03) // _S3D: S3 Device State
8494 Name (RID, 0x00)
8495 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
8496 {
8497 0x0D,
8498 0x04
8499 })
8500 Method (_INI, 0, NotSerialized) // _INI: Initialize
8501 {
8502 ABWA (0x00)
8503 }
8504
8505 Method (ABWA, 1, NotSerialized)
8506 {
8507 Store (\ACBS (Arg0), Local0)
8508 }
8509 }
8510
8511 Device (EXP0)
8512 {
8513 Name (_ADR, 0x001C0000) // _ADR: Address
8514 Name (RID, 0x00)
8515 OperationRegion (P0CS, PCI_Config, 0x00, 0x0100)
8516 Field (P0CS, DWordAcc, NoLock, Preserve)
8517 {
8518 Offset (0x60),
8519 RID0, 16,
8520 PSP0, 1,
8521 PPP0, 1
8522 }
8523
8524 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
8525 {
8526 0x09,
8527 0x04
8528 })
8529 Name (LPRT, Package (0x04)
8530 {
8531 Package (0x04)
8532 {
8533 0xFFFF,
8534 0x00,
8535 \_SB.LNKA,
8536 0x00
8537 },
8538
8539 Package (0x04)
8540 {
8541 0xFFFF,
8542 0x01,
8543 \_SB.LNKB,
8544 0x00
8545 },
8546
8547 Package (0x04)
8548 {
8549 0xFFFF,
8550 0x02,
8551 \_SB.LNKC,
8552 0x00
8553 },
8554
8555 Package (0x04)
8556 {
8557 0xFFFF,
8558 0x03,
8559 \_SB.LNKD,
8560 0x00
8561 }
8562 })
8563 Name (APRT, Package (0x04)
8564 {
8565 Package (0x04)
8566 {
8567 0xFFFF,
8568 0x00,
8569 0x00,
8570 0x10
8571 },
8572
8573 Package (0x04)
8574 {
8575 0xFFFF,
8576 0x01,
8577 0x00,
8578 0x11
8579 },
8580
8581 Package (0x04)
8582 {
8583 0xFFFF,
8584 0x02,
8585 0x00,
8586 0x12
8587 },
8588
8589 Package (0x04)
8590 {
8591 0xFFFF,
8592 0x03,
8593 0x00,
8594 0x13
8595 }
8596 })
8597 Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
8598 {
8599 If (\GPIC)
8600 {
8601 Return (APRT)
8602 }
8603 Else
8604 {
8605 Return (LPRT)
8606 }
8607 }
8608 }
8609
8610 Device (EXP1)
8611 {
8612 Name (_ADR, 0x001C0001) // _ADR: Address
8613 Name (RID, 0x00)
8614 OperationRegion (P1CS, PCI_Config, 0x00, 0x0100)
8615 Field (P1CS, DWordAcc, NoLock, Preserve)
8616 {
8617 Offset (0x60),
8618 RID1, 16,
8619 PSP1, 1,
8620 PPP1, 1
8621 }
8622
8623 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
8624 {
8625 0x09,
8626 0x04
8627 })
8628 Name (LPRT, Package (0x04)
8629 {
8630 Package (0x04)
8631 {
8632 0xFFFF,
8633 0x00,
8634 \_SB.LNKB,
8635 0x00
8636 },
8637
8638 Package (0x04)
8639 {
8640 0xFFFF,
8641 0x01,
8642 \_SB.LNKC,
8643 0x00
8644 },
8645
8646 Package (0x04)
8647 {
8648 0xFFFF,
8649 0x02,
8650 \_SB.LNKD,
8651 0x00
8652 },
8653
8654 Package (0x04)
8655 {
8656 0xFFFF,
8657 0x03,
8658 \_SB.LNKA,
8659 0x00
8660 }
8661 })
8662 Name (APRT, Package (0x04)
8663 {
8664 Package (0x04)
8665 {
8666 0xFFFF,
8667 0x00,
8668 0x00,
8669 0x11
8670 },
8671
8672 Package (0x04)
8673 {
8674 0xFFFF,
8675 0x01,
8676 0x00,
8677 0x12
8678 },
8679
8680 Package (0x04)
8681 {
8682 0xFFFF,
8683 0x02,
8684 0x00,
8685 0x13
8686 },
8687
8688 Package (0x04)
8689 {
8690 0xFFFF,
8691 0x03,
8692 0x00,
8693 0x10
8694 }
8695 })
8696 Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
8697 {
8698 If (\GPIC)
8699 {
8700 Return (APRT)
8701 }
8702 Else
8703 {
8704 Return (LPRT)
8705 }
8706 }
8707 }
8708
8709 Device (EXP2)
8710 {
8711 Name (_ADR, 0x001C0002) // _ADR: Address
8712 Name (RID, 0x00)
8713 OperationRegion (P2CS, PCI_Config, 0x00, 0x0100)
8714 Field (P2CS, DWordAcc, NoLock, Preserve)
8715 {
8716 Offset (0x60),
8717 RID2, 16,
8718 PSP2, 1,
8719 PPP2, 1
8720 }
8721
8722 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
8723 {
8724 0x09,
8725 0x04
8726 })
8727 Name (LPRT, Package (0x04)
8728 {
8729 Package (0x04)
8730 {
8731 0xFFFF,
8732 0x00,
8733 \_SB.LNKC,
8734 0x00
8735 },
8736
8737 Package (0x04)
8738 {
8739 0xFFFF,
8740 0x01,
8741 \_SB.LNKD,
8742 0x00
8743 },
8744
8745 Package (0x04)
8746 {
8747 0xFFFF,
8748 0x02,
8749 \_SB.LNKA,
8750 0x00
8751 },
8752
8753 Package (0x04)
8754 {
8755 0xFFFF,
8756 0x03,
8757 \_SB.LNKB,
8758 0x00
8759 }
8760 })
8761 Name (APRT, Package (0x04)
8762 {
8763 Package (0x04)
8764 {
8765 0xFFFF,
8766 0x00,
8767 0x00,
8768 0x12
8769 },
8770
8771 Package (0x04)
8772 {
8773 0xFFFF,
8774 0x01,
8775 0x00,
8776 0x13
8777 },
8778
8779 Package (0x04)
8780 {
8781 0xFFFF,
8782 0x02,
8783 0x00,
8784 0x10
8785 },
8786
8787 Package (0x04)
8788 {
8789 0xFFFF,
8790 0x03,
8791 0x00,
8792 0x11
8793 }
8794 })
8795 Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
8796 {
8797 If (\GPIC)
8798 {
8799 Return (APRT)
8800 }
8801 Else
8802 {
8803 Return (LPRT)
8804 }
8805 }
8806 }
8807
8808 Device (EXP3)
8809 {
8810 Name (_ADR, 0x001C0003) // _ADR: Address
8811 Name (RID, 0x00)
8812 Name (XCPF, 0x00)
8813 OperationRegion (P3CS, PCI_Config, 0x00, 0x0100)
8814 Field (P3CS, DWordAcc, NoLock, Preserve)
8815 {
8816 Offset (0x5A),
8817 ABP, 1,
8818 , 2,
8819 PDC, 1,
8820 , 2,
8821 PDS, 1,
8822 Offset (0x5B),
8823 Offset (0x60),
8824 RID3, 16,
8825 PSP3, 1,
8826 PPP3, 1,
8827 Offset (0xDB),
8828 , 6,
8829 HPCE, 1,
8830 PMCE, 1,
8831 Offset (0xDF),
8832 , 6,
8833 HPCS, 1,
8834 PMCS, 1
8835 }
8836
8837 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
8838 {
8839 0x09,
8840 0x04
8841 })
8842 Name (LPRT, Package (0x04)
8843 {
8844 Package (0x04)
8845 {
8846 0xFFFF,
8847 0x00,
8848 \_SB.LNKD,
8849 0x00
8850 },
8851
8852 Package (0x04)
8853 {
8854 0xFFFF,
8855 0x01,
8856 \_SB.LNKA,
8857 0x00
8858 },
8859
8860 Package (0x04)
8861 {
8862 0xFFFF,
8863 0x02,
8864 \_SB.LNKB,
8865 0x00
8866 },
8867
8868 Package (0x04)
8869 {
8870 0xFFFF,
8871 0x03,
8872 \_SB.LNKC,
8873 0x00
8874 }
8875 })
8876 Name (APRT, Package (0x04)
8877 {
8878 Package (0x04)
8879 {
8880 0xFFFF,
8881 0x00,
8882 0x00,
8883 0x13
8884 },
8885
8886 Package (0x04)
8887 {
8888 0xFFFF,
8889 0x01,
8890 0x00,
8891 0x10
8892 },
8893
8894 Package (0x04)
8895 {
8896 0xFFFF,
8897 0x02,
8898 0x00,
8899 0x11
8900 },
8901
8902 Package (0x04)
8903 {
8904 0xFFFF,
8905 0x03,
8906 0x00,
8907 0x12
8908 }
8909 })
8910 Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
8911 {
8912 If (\GPIC)
8913 {
8914 Return (APRT)
8915 }
8916 Else
8917 {
8918 Return (LPRT)
8919 }
8920 }
8921
8922 Device (EXUP)
8923 {
8924 Name (_ADR, 0x00) // _ADR: Address
8925 Method (_RMV, 0, NotSerialized) // _RMV: Removal Status
8926 {
8927 Return (0x01)
8928 }
8929 }
8930 }
8931
8932 Device (EXP4)
8933 {
8934 Name (_ADR, 0x001C0004) // _ADR: Address
8935 Name (RID, 0x00)
8936 OperationRegion (P4CS, PCI_Config, 0x00, 0x0100)
8937 Field (P4CS, DWordAcc, NoLock, Preserve)
8938 {
8939 Offset (0x60),
8940 RID4, 16,
8941 PSP4, 1,
8942 PPP4, 1,
8943 Offset (0xDF),
8944 , 6,
8945 HPS4, 1,
8946 PMS4, 1
8947 }
8948
8949 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
8950 {
8951 0x09,
8952 0x04
8953 })
8954 Name (LPRT, Package (0x04)
8955 {
8956 Package (0x04)
8957 {
8958 0xFFFF,
8959 0x00,
8960 \_SB.LNKA,
8961 0x00
8962 },
8963
8964 Package (0x04)
8965 {
8966 0xFFFF,
8967 0x01,
8968 \_SB.LNKB,
8969 0x00
8970 },
8971
8972 Package (0x04)
8973 {
8974 0xFFFF,
8975 0x02,
8976 \_SB.LNKC,
8977 0x00
8978 },
8979
8980 Package (0x04)
8981 {
8982 0xFFFF,
8983 0x03,
8984 \_SB.LNKD,
8985 0x00
8986 }
8987 })
8988 Name (APRT, Package (0x04)
8989 {
8990 Package (0x04)
8991 {
8992 0xFFFF,
8993 0x00,
8994 0x00,
8995 0x10
8996 },
8997
8998 Package (0x04)
8999 {
9000 0xFFFF,
9001 0x01,
9002 0x00,
9003 0x11
9004 },
9005
9006 Package (0x04)
9007 {
9008 0xFFFF,
9009 0x02,
9010 0x00,
9011 0x12
9012 },
9013
9014 Package (0x04)
9015 {
9016 0xFFFF,
9017 0x03,
9018 0x00,
9019 0x13
9020 }
9021 })
9022 Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
9023 {
9024 If (\GPIC)
9025 {
9026 Return (APRT)
9027 }
9028 Else
9029 {
9030 Return (LPRT)
9031 }
9032 }
9033
9034 Device (EXPD)
9035 {
9036 Name (_ADR, 0x00) // _ADR: Address
9037 }
9038 }
9039
9040 Device (PCI1)
9041 {
9042 Name (_ADR, 0x001E0000) // _ADR: Address
9043 Name (_S3D, 0x02) // _S3D: S3 Device State
9044 Name (RID, 0x00)
9045 Name (LPRT, Package (0x08)
9046 {
9047 Package (0x04)
9048 {
9049 0xFFFF,
9050 0x00,
9051 \_SB.LNKA,
9052 0x00
9053 },
9054
9055 Package (0x04)
9056 {
9057 0xFFFF,
9058 0x01,
9059 \_SB.LNKB,
9060 0x00
9061 },
9062
9063 Package (0x04)
9064 {
9065 0xFFFF,
9066 0x02,
9067 \_SB.LNKC,
9068 0x00
9069 },
9070
9071 Package (0x04)
9072 {
9073 0xFFFF,
9074 0x03,
9075 \_SB.LNKD,
9076 0x00
9077 },
9078
9079 Package (0x04)
9080 {
9081 0x0001FFFF,
9082 0x00,
9083 \_SB.LNKA,
9084 0x00
9085 },
9086
9087 Package (0x04)
9088 {
9089 0x0002FFFF,
9090 0x00,
9091 \_SB.LNKF,
9092 0x00
9093 },
9094
9095 Package (0x04)
9096 {
9097 0x0002FFFF,
9098 0x01,
9099 \_SB.LNKG,
9100 0x00
9101 },
9102
9103 Package (0x04)
9104 {
9105 0x0008FFFF,
9106 0x00,
9107 \_SB.LNKE,
9108 0x00
9109 }
9110 })
9111 Name (APRT, Package (0x08)
9112 {
9113 Package (0x04)
9114 {
9115 0xFFFF,
9116 0x00,
9117 0x00,
9118 0x10
9119 },
9120
9121 Package (0x04)
9122 {
9123 0xFFFF,
9124 0x01,
9125 0x00,
9126 0x11
9127 },
9128
9129 Package (0x04)
9130 {
9131 0xFFFF,
9132 0x02,
9133 0x00,
9134 0x12
9135 },
9136
9137 Package (0x04)
9138 {
9139 0xFFFF,
9140 0x03,
9141 0x00,
9142 0x13
9143 },
9144
9145 Package (0x04)
9146 {
9147 0x0001FFFF,
9148 0x00,
9149 0x00,
9150 0x10
9151 },
9152
9153 Package (0x04)
9154 {
9155 0x0002FFFF,
9156 0x00,
9157 0x00,
9158 0x15
9159 },
9160
9161 Package (0x04)
9162 {
9163 0x0002FFFF,
9164 0x01,
9165 0x00,
9166 0x16
9167 },
9168
9169 Package (0x04)
9170 {
9171 0x0008FFFF,
9172 0x00,
9173 0x00,
9174 0x14
9175 }
9176 })
9177 Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
9178 {
9179 If (\GPIC)
9180 {
9181 Return (APRT)
9182 }
9183 Else
9184 {
9185 Return (LPRT)
9186 }
9187 }
9188
9189 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
9190 {
9191 0x0B,
9192 0x04
9193 })
9194 Device (CDBS)
9195 {
9196 Name (_ADR, 0x00) // _ADR: Address
9197 Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
9198 {
9199 If (\WMEF)
9200 {
9201 Return (0x02)
9202 }
9203
9204 Return (0x03)
9205 }
9206
9207 Name (_SUN, 0x01) // _SUN: Slot User Number
9208 }
9209 }
9210
9211 Device (IDE0)
9212 {
9213 Name (_ADR, 0x001F0001) // _ADR: Address
9214 Name (_S3D, 0x03) // _S3D: S3 Device State
9215 Name (RID, 0x00)
9216 OperationRegion (IDCS, PCI_Config, 0x00, 0x0100)
9217 Field (IDCS, DWordAcc, NoLock, Preserve)
9218 {
9219 Offset (0x40),
9220 PFT0, 1,
9221 PIE0, 1,
9222 PPE0, 1,
9223 PDT0, 1,
9224 PFT1, 1,
9225 PIE1, 1,
9226 PPE1, 1,
9227 PDT1, 1,
9228 PRC0, 2,
9229 , 2,
9230 PIS0, 2,
9231 PSIE, 1,
9232 PIDE, 1,
9233 SFT0, 1,
9234 SIE0, 1,
9235 SPE0, 1,
9236 SDT0, 1,
9237 SFT1, 1,
9238 SIE1, 1,
9239 SPE1, 1,
9240 SDT1, 1,
9241 SRC0, 2,
9242 , 2,
9243 SIS0, 2,
9244 SSIE, 1,
9245 SIDE, 1,
9246 PRC1, 2,
9247 PIS1, 2,
9248 SRC1, 2,
9249 SIS1, 2,
9250 Offset (0x48),
9251 PSD0, 1,
9252 PSD1, 1,
9253 SSD0, 1,
9254 SSD1, 1,
9255 Offset (0x4A),
9256 PCT0, 2,
9257 , 2,
9258 PCT1, 2,
9259 Offset (0x4B),
9260 SCT0, 2,
9261 , 2,
9262 SCT1, 2,
9263 Offset (0x4C),
9264 Offset (0x54),
9265 PCB0, 1,
9266 PCB1, 1,
9267 SCB0, 1,
9268 SCB1, 1,
9269 PCR0, 1,
9270 PCR1, 1,
9271 SCR0, 1,
9272 SCR1, 1,
9273 , 2,
9274 WRPP, 1,
9275 , 1,
9276 FPB0, 1,
9277 FPB1, 1,
9278 FSB0, 1,
9279 FSB1, 1,
9280 PSIG, 2,
9281 SSIG, 2
9282 }
9283
9284 Field (IDCS, DWordAcc, NoLock, Preserve)
9285 {
9286 Offset (0x40),
9287 PTI0, 4,
9288 PTI1, 4,
9289 Offset (0x42),
9290 STI0, 4,
9291 STI1, 4
9292 }
9293
9294 Method (GPCT, 4, NotSerialized)
9295 {
9296 If (LNot (Or (Arg0, Arg1)))
9297 {
9298 Return (0x00)
9299 }
9300
9301 If (LAnd (LNot (Arg0), Arg1))
9302 {
9303 Return (0x0384)
9304 }
9305
9306 Return (Multiply (Subtract (0x09, Add (Arg2, Arg3)), 0x1E
9307 ))
9308 }
9309
9310 Method (GDCT, 4, NotSerialized)
9311 {
9312 If (LNot (Arg0))
9313 {
9314 Return (0x00)
9315 }
9316
9317 If (Arg1)
9318 {
9319 Return (0x14)
9320 }
9321
9322 If (Arg2)
9323 {
9324 Return (Multiply (Subtract (0x04, Arg3), 0x0F))
9325 }
9326
9327 Return (Multiply (Subtract (0x04, Arg3), 0x1E))
9328 }
9329
9330 Method (MTIM, 2, NotSerialized)
9331 {
9332 Store (0x00, Local0)
9333 If (Arg0)
9334 {
9335 Or (Local0, 0x01, Local0)
9336 }
9337
9338 If (LGreaterEqual (Arg0, 0x02))
9339 {
9340 Or (Local0, 0x02, Local0)
9341 }
9342
9343 If (LNot (Arg1))
9344 {
9345 Or (Local0, 0x04, Local0)
9346 }
9347
9348 If (LNot (Arg0))
9349 {
9350 Or (Local0, 0x08, Local0)
9351 }
9352
9353 Return (Local0)
9354 }
9355
9356 Method (MISP, 1, NotSerialized)
9357 {
9358 If (LNot (Arg0))
9359 {
9360 Return (0x00)
9361 }
9362
9363 If (LLessEqual (Arg0, 0x02))
9364 {
9365 Return (0x01)
9366 }
9367
9368 Return (0x02)
9369 }
9370
9371 Method (MRCT, 1, NotSerialized)
9372 {
9373 If (LLessEqual (Arg0, 0x02))
9374 {
9375 Return (0x00)
9376 }
9377
9378 If (LEqual (Arg0, 0x03))
9379 {
9380 Return (0x01)
9381 }
9382
9383 Return (0x03)
9384 }
9385
9386 Device (PRIM)
9387 {
9388 Name (_ADR, 0x00) // _ADR: Address
9389 Name (BGTM, Buffer (0x14) {})
9390 CreateDWordField (BGTM, 0x00, GTP0)
9391 CreateDWordField (BGTM, 0x04, GTD0)
9392 CreateDWordField (BGTM, 0x08, GTP1)
9393 CreateDWordField (BGTM, 0x0C, GTD1)
9394 CreateDWordField (BGTM, 0x10, GTMF)
9395 Name (BPI0, 0x00)
9396 Name (BDM0, 0x00)
9397 Name (BPI1, 0x00)
9398 Name (BDM1, 0x00)
9399 Name (DRE0, 0x00)
9400 Name (DRE1, 0x00)
9401 Name (DIP0, 0x00)
9402 Name (DIP1, 0x00)
9403 Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode
9404 {
9405 Store (GPCT (PFT0, PDT0, PIS0, PRC0), GTP0)
9406 Store (GDCT (PSD0, FPB0, PCB0, PCT0), GTD0)
9407 If (LNot (GTD0))
9408 {
9409 Store (GTP0, GTD0)
9410 }
9411
9412 If (PSIE)
9413 {
9414 Store (GPCT (PFT1, PDT1, PIS1, PRC1), GTP1)
9415 Store (GDCT (PSD1, FPB1, PCB1, PCT1), GTD1)
9416 If (LNot (GTD1))
9417 {
9418 Store (GTP1, GTD1)
9419 }
9420 }
9421 Else
9422 {
9423 Store (0x00, GTP1)
9424 Store (0x00, GTD1)
9425 }
9426
9427 Store (0x00, GTMF)
9428 If (PSD0)
9429 {
9430 Or (GTMF, 0x01, GTMF)
9431 }
9432
9433 If (LNot (GTP0))
9434 {
9435 Or (GTMF, 0x01, GTMF)
9436 Store (0x78, GTP0)
9437 Store (0x14, GTD0)
9438 }
9439
9440 If (PIE0)
9441 {
9442 Or (GTMF, 0x02, GTMF)
9443 }
9444
9445 If (PSD1)
9446 {
9447 Or (GTMF, 0x04, GTMF)
9448 }
9449
9450 If (PIE1)
9451 {
9452 Or (GTMF, 0x08, GTMF)
9453 }
9454
9455 Or (GTMF, 0x10, GTMF)
9456 Return (BGTM)
9457 }
9458
9459 Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode
9460 {
9461 CreateDWordField (Arg0, 0x00, STP0)
9462 CreateDWordField (Arg0, 0x04, STD0)
9463 CreateDWordField (Arg0, 0x08, STP1)
9464 CreateDWordField (Arg0, 0x0C, STD1)
9465 CreateDWordField (Arg0, 0x10, STMF)
9466 Store (0x00, DRE0)
9467 Store (0x00, DIP0)
9468 If (LEqual (SizeOf (Arg1), 0x0200))
9469 {
9470 CreateWordField (Arg1, 0x00, M000)
9471 CreateWordField (Arg1, 0x62, M049)
9472 CreateWordField (Arg1, 0x66, M051)
9473 CreateWordField (Arg1, 0x6A, M053)
9474 CreateWordField (Arg1, 0x7C, M062)
9475 CreateWordField (Arg1, 0x7E, M063)
9476 CreateWordField (Arg1, 0x80, M064)
9477 CreateWordField (Arg1, 0x82, M065)
9478 CreateWordField (Arg1, 0x88, M068)
9479 CreateWordField (Arg1, 0x9C, M078)
9480 CreateWordField (Arg1, 0xAC, M086)
9481 CreateWordField (Arg1, 0xB0, M088)
9482 CreateWordField (Arg1, 0xEE, M119)
9483 CreateWordField (Arg1, 0x0128, M148)
9484 If (LEqual (And (M148, 0xC000), 0x4000))
9485 {
9486 If (And (M148, 0x04))
9487 {
9488 Store (0x01, DRE0)
9489 }
9490 }
9491
9492 If (And (M086, 0x8000))
9493 {
9494 If (And (M119, 0x01))
9495 {
9496 Store (0x01, DRE0)
9497 }
9498 }
9499
9500 If (\W98F)
9501 {
9502 Store (\UUDM (M053, M088), STD0)
9503 If (STD0)
9504 {
9505 Or (STMF, 0x01, STMF)
9506 }
9507 Else
9508 {
9509 And (STMF, 0xFE, STMF)
9510 }
9511
9512 Store (\UMDM (M053, M063, M062, M065), STP0)
9513 If (LNot (STP0))
9514 {
9515 Store (\UPIO (M053, M064, M051, M068), STP0)
9516 }
9517
9518 If (And (M049, 0x0800))
9519 {
9520 Or (STMF, 0x02, STMF)
9521 }
9522 Else
9523 {
9524 And (STMF, 0xFD, STMF)
9525 }
9526 }
9527
9528 Store (\DPIO (STP0, And (STMF, 0x02)), Local0)
9529 Store (\DUDM (STD0, And (STMF, 0x01)), Local1)
9530 If (LGreaterEqual (\_SB.PCI0.LPC.EC.BGID (0x00), 0x0C))
9531 {
9532 Store (0x00, Local0)
9533 Store (0xFF, Local1)
9534 }
9535
9536 Store (MTIM (Local0, And (M000, 0x8000)), PTI0)
9537 Store (MISP (Local0), PIS0)
9538 Store (MRCT (Local0), PRC0)
9539 If (LEqual (Local1, 0xFF))
9540 {
9541 Store (0x00, PSD0)
9542 }
9543 Else
9544 {
9545 Store (0x01, PSD0)
9546 If (LLessEqual (Local1, 0x02))
9547 {
9548 Store (Local1, PCT0)
9549 }
9550 Else
9551 {
9552 If (And (Local1, 0x01))
9553 {
9554 Store (0x01, PCT0)
9555 }
9556 Else
9557 {
9558 Store (0x02, PCT0)
9559 }
9560 }
9561
9562 If (LGreaterEqual (Local1, 0x03))
9563 {
9564 Store (0x01, PCB0)
9565 }
9566 Else
9567 {
9568 Store (0x00, PCB0)
9569 }
9570
9571 If (LEqual (Local1, 0x05))
9572 {
9573 Store (0x01, FPB0)
9574 }
9575 Else
9576 {
9577 Store (0x00, FPB0)
9578 }
9579
9580 Store (0x01, PCR0)
9581 }
9582
9583 Store (\FDMA (Local0, Local1), BDM0)
9584 Store (\FPIO (Local0), BPI0)
9585 }
9586
9587 If (LEqual (SizeOf (Arg2), 0x0200))
9588 {
9589 CreateWordField (Arg2, 0x00, S000)
9590 CreateWordField (Arg2, 0x62, S049)
9591 CreateWordField (Arg2, 0x66, S051)
9592 CreateWordField (Arg2, 0x6A, S053)
9593 CreateWordField (Arg2, 0x7C, S062)
9594 CreateWordField (Arg2, 0x7E, S063)
9595 CreateWordField (Arg2, 0x80, S064)
9596 CreateWordField (Arg2, 0x82, S065)
9597 CreateWordField (Arg2, 0x88, S068)
9598 CreateWordField (Arg2, 0xB0, S088)
9599 If (\W98F)
9600 {
9601 Store (\UUDM (S053, S088), STD1)
9602 If (STD1)
9603 {
9604 Or (STMF, 0x04, STMF)
9605 }
9606 Else
9607 {
9608 And (STMF, 0xFB, STMF)
9609 }
9610
9611 Store (\UMDM (S053, S063, S062, S065), STP1)
9612 If (LNot (STP1))
9613 {
9614 Store (\UPIO (S053, S064, S051, S068), STP1)
9615 }
9616
9617 If (And (S049, 0x0800))
9618 {
9619 Or (STMF, 0x08, STMF)
9620 }
9621 Else
9622 {
9623 And (STMF, 0xF7, STMF)
9624 }
9625 }
9626
9627 Store (\DPIO (STP1, And (STMF, 0x08)), Local0)
9628 Store (\DUDM (STD1, And (STMF, 0x04)), Local1)
9629 If (STP1)
9630 {
9631 Store (MTIM (Local0, And (S000, 0x8000)), PTI1)
9632 If (And (STMF, 0x10))
9633 {
9634 Store (MISP (Local0), PIS1)
9635 Store (MRCT (Local0), PRC1)
9636 Store (0x01, PSIE)
9637 }
9638 }
9639 Else
9640 {
9641 Store (0x00, PTI1)
9642 Store (0x00, PSIE)
9643 }
9644
9645 If (LEqual (Local1, 0xFF))
9646 {
9647 Store (0x00, PSD1)
9648 }
9649 Else
9650 {
9651 Store (0x01, PSD1)
9652 If (LLessEqual (Local1, 0x02))
9653 {
9654 Store (Local1, PCT1)
9655 }
9656 Else
9657 {
9658 If (And (Local1, 0x01))
9659 {
9660 Store (0x01, PCT1)
9661 }
9662 Else
9663 {
9664 Store (0x02, PCT1)
9665 }
9666 }
9667
9668 If (LGreaterEqual (Local1, 0x03))
9669 {
9670 Store (0x01, PCB1)
9671 }
9672 Else
9673 {
9674 Store (0x00, PCB1)
9675 }
9676
9677 If (LEqual (Local1, 0x05))
9678 {
9679 Store (0x01, FPB1)
9680 }
9681 Else
9682 {
9683 Store (0x00, FPB1)
9684 }
9685
9686 Store (0x01, PCR1)
9687 }
9688
9689 Store (\FDMA (Local0, Local1), BDM1)
9690 Store (\FPIO (Local0), BPI1)
9691 }
9692 }
9693
9694 Device (MSTR)
9695 {
9696 Name (_ADR, 0x00) // _ADR: Address
9697 Name (HDTF, Buffer (0x1C)
9698 {
9699 /* 0000 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
9700 /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00,
9701 /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00,
9702 /* 0018 */ 0x00, 0x00, 0xA0, 0xEF
9703 })
9704 CreateByteField (HDTF, 0x0F, HDMA)
9705 CreateByteField (HDTF, 0x16, HPIO)
9706 CreateByteField (HDTF, 0x0D, HFLC)
9707 Name (ERTF, Buffer (0x23)
9708 {
9709 /* 0000 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
9710 /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00,
9711 /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00,
9712 /* 0018 */ 0x00, 0x00, 0xA0, 0xEF, 0x5F, 0x00, 0x00, 0x00,
9713 /* 0020 */ 0x00, 0xA0, 0xEF
9714 })
9715 CreateByteField (ERTF, 0x0F, EDMA)
9716 CreateByteField (ERTF, 0x16, EPIO)
9717 CreateByteField (ERTF, 0x0D, EFLC)
9718 Name (HPTF, Buffer (0x23)
9719 {
9720 /* 0000 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
9721 /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00,
9722 /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00,
9723 /* 0018 */ 0x00, 0x00, 0xA0, 0xEF, 0x10, 0x03, 0x00, 0x00,
9724 /* 0020 */ 0x00, 0xA0, 0xEF
9725 })
9726 CreateByteField (HPTF, 0x0F, PDMA)
9727 CreateByteField (HPTF, 0x16, PPIO)
9728 CreateByteField (HPTF, 0x0D, PFLC)
9729 Name (HXTF, Buffer (0x2A)
9730 {
9731 /* 0000 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
9732 /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00,
9733 /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00,
9734 /* 0018 */ 0x00, 0x00, 0xA0, 0xEF, 0x5F, 0x00, 0x00, 0x00,
9735 /* 0020 */ 0x00, 0xA0, 0xEF, 0x10, 0x03, 0x00, 0x00, 0x00,
9736 /* 0028 */ 0xA0, 0xEF
9737 })
9738 CreateByteField (HXTF, 0x0F, XDMA)
9739 CreateByteField (HXTF, 0x16, XPIO)
9740 CreateByteField (HXTF, 0x0D, XFLC)
9741 Name (IDTF, Buffer (0x0E)
9742 {
9743 /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03,
9744 /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
9745 })
9746 CreateByteField (IDTF, 0x01, IDMA)
9747 CreateByteField (IDTF, 0x08, IPIO)
9748 Name (DDTF, Buffer (0x1C)
9749 {
9750 /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03,
9751 /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 0x00,
9752 /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00,
9753 /* 0018 */ 0x00, 0x00, 0xA0, 0xE3
9754 })
9755 CreateByteField (DDTF, 0x01, DDMA)
9756 CreateByteField (DDTF, 0x08, DPIO)
9757 CreateByteField (DDTF, 0x0F, DTAT)
9758 CreateByteField (DDTF, 0x16, DTFT)
9759 Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
9760 {
9761 Store (\_SB.PCI0.LPC.EC.BGID (0x00), Local0)
9762 If (\OSSS)
9763 {
9764 Store (0xE1, HFLC)
9765 Store (0xE1, EFLC)
9766 Store (0xE1, PFLC)
9767 Store (0xE1, XFLC)
9768 }
9769
9770 If (LEqual (Local0, 0x06))
9771 {
9772 If (^^DRE0)
9773 {
9774 If (^^DIP0)
9775 {
9776 Store (^^BDM0, XDMA)
9777 Store (^^BPI0, XPIO)
9778 Return (HXTF)
9779 }
9780 Else
9781 {
9782 Store (^^BDM0, EDMA)
9783 Store (^^BPI0, EPIO)
9784 Return (ERTF)
9785 }
9786 }
9787
9788 If (^^DIP0)
9789 {
9790 Store (^^BDM0, PDMA)
9791 Store (^^BPI0, PPIO)
9792 Return (HPTF)
9793 }
9794
9795 Store (^^BDM0, HDMA)
9796 Store (^^BPI0, HPIO)
9797 Return (HDTF)
9798 }
9799
9800 Store (Zero, Local1)
9801 If (LEqual (Local0, 0x03))
9802 {
9803 Store (One, Local1)
9804 }
9805
9806 If (LEqual (Local0, 0x0A))
9807 {
9808 Store (One, Local1)
9809 }
9810
9811 If (LEqual (Local0, 0x0B))
9812 {
9813 Store (One, Local1)
9814 }
9815
9816 If (Local1)
9817 {
9818 Store (\CDFL, DTFT)
9819 Store (\CDAH, DTAT)
9820 Store (^^BDM0, DDMA)
9821 Store (^^BPI0, DPIO)
9822 Return (DDTF)
9823 }
9824 Else
9825 {
9826 Store (^^BDM0, IDMA)
9827 Store (^^BPI0, IPIO)
9828 Return (IDTF)
9829 }
9830 }
9831
9832 Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
9833 {
9834 \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
9835 }
9836
9837 Method (_STA, 0, NotSerialized) // _STA: Status
9838 {
9839 If (\_SB.PCI0.LPC.EC.BSTA (0x01))
9840 {
9841 Return (0x0F)
9842 }
9843 Else
9844 {
9845 Return (0x00)
9846 }
9847 }
9848 }
9849 }
9850 }
9851
9852 Device (SATA)
9853 {
9854 Name (_ADR, 0x001F0002) // _ADR: Address
9855 Name (_S3D, 0x03) // _S3D: S3 Device State
9856 Name (RID, 0x00)
9857 OperationRegion (IDCS, PCI_Config, 0x00, 0x0100)
9858 Field (IDCS, DWordAcc, NoLock, Preserve)
9859 {
9860 Offset (0x40),
9861 PFT0, 1,
9862 PIE0, 1,
9863 PPE0, 1,
9864 PDT0, 1,
9865 PFT1, 1,
9866 PIE1, 1,
9867 PPE1, 1,
9868 PDT1, 1,
9869 PRC0, 2,
9870 , 2,
9871 PIS0, 2,
9872 PSIE, 1,
9873 PIDE, 1,
9874 SFT0, 1,
9875 SIE0, 1,
9876 SPE0, 1,
9877 SDT0, 1,
9878 SFT1, 1,
9879 SIE1, 1,
9880 SPE1, 1,
9881 SDT1, 1,
9882 SRC0, 2,
9883 , 2,
9884 SIS0, 2,
9885 SSIE, 1,
9886 SIDE, 1,
9887 PRC1, 2,
9888 PIS1, 2,
9889 SRC1, 2,
9890 SIS1, 2,
9891 Offset (0x48),
9892 PSD0, 1,
9893 PSD1, 1,
9894 SSD0, 1,
9895 SSD1, 1,
9896 Offset (0x4A),
9897 PCT0, 2,
9898 , 2,
9899 PCT1, 2,
9900 Offset (0x4B),
9901 SCT0, 2,
9902 , 2,
9903 SCT1, 2,
9904 Offset (0x4C),
9905 Offset (0x54),
9906 PCB0, 1,
9907 PCB1, 1,
9908 SCB0, 1,
9909 SCB1, 1,
9910 PCR0, 1,
9911 PCR1, 1,
9912 SCR0, 1,
9913 SCR1, 1,
9914 , 2,
9915 WRPP, 1,
9916 , 1,
9917 FPB0, 1,
9918 FPB1, 1,
9919 FSB0, 1,
9920 FSB1, 1,
9921 PSIG, 2,
9922 SSIG, 2
9923 }
9924
9925 Field (IDCS, DWordAcc, NoLock, Preserve)
9926 {
9927 Offset (0x40),
9928 PTI0, 4,
9929 PTI1, 4,
9930 Offset (0x42),
9931 STI0, 4,
9932 STI1, 4
9933 }
9934
9935 Method (GPCT, 4, NotSerialized)
9936 {
9937 If (LNot (Or (Arg0, Arg1)))
9938 {
9939 Return (0x00)
9940 }
9941
9942 If (LAnd (LNot (Arg0), Arg1))
9943 {
9944 Return (0x0384)
9945 }
9946
9947 Return (Multiply (Subtract (0x09, Add (Arg2, Arg3)), 0x1E
9948 ))
9949 }
9950
9951 Method (GDCT, 4, NotSerialized)
9952 {
9953 If (LNot (Arg0))
9954 {
9955 Return (0x00)
9956 }
9957
9958 If (Arg1)
9959 {
9960 Return (0x14)
9961 }
9962
9963 If (Arg2)
9964 {
9965 Return (Multiply (Subtract (0x04, Arg3), 0x0F))
9966 }
9967
9968 Return (Multiply (Subtract (0x04, Arg3), 0x1E))
9969 }
9970
9971 Method (MTIM, 2, NotSerialized)
9972 {
9973 Store (0x00, Local0)
9974 If (Arg0)
9975 {
9976 Or (Local0, 0x01, Local0)
9977 }
9978
9979 If (LGreaterEqual (Arg0, 0x02))
9980 {
9981 Or (Local0, 0x02, Local0)
9982 }
9983
9984 If (LNot (Arg1))
9985 {
9986 Or (Local0, 0x04, Local0)
9987 }
9988
9989 If (LNot (Arg0))
9990 {
9991 Or (Local0, 0x08, Local0)
9992 }
9993
9994 Return (Local0)
9995 }
9996
9997 Method (MISP, 1, NotSerialized)
9998 {
9999 If (LNot (Arg0))
10000 {
10001 Return (0x00)
10002 }
10003
10004 If (LLessEqual (Arg0, 0x02))
10005 {
10006 Return (0x01)
10007 }
10008
10009 Return (0x02)
10010 }
10011
10012 Method (MRCT, 1, NotSerialized)
10013 {
10014 If (LLessEqual (Arg0, 0x02))
10015 {
10016 Return (0x00)
10017 }
10018
10019 If (LEqual (Arg0, 0x03))
10020 {
10021 Return (0x01)
10022 }
10023
10024 Return (0x03)
10025 }
10026 }
10027
10028 Device (SMBU)
10029 {
10030 Name (_ADR, 0x001F0003) // _ADR: Address
10031 Name (_S3D, 0x03) // _S3D: S3 Device State
10032 Name (RID, 0x00)
10033 }
10034
10035 Device (USB0)
10036 {
10037 Name (_ADR, 0x001D0000) // _ADR: Address
10038 Name (_S3D, 0x02) // _S3D: S3 Device State
10039 Name (RID, 0x00)
10040 OperationRegion (U0CS, PCI_Config, 0xC4, 0x04)
10041 Field (U0CS, DWordAcc, NoLock, Preserve)
10042 {
10043 U0EN, 2,
10044 Offset (0x04)
10045 }
10046
10047 Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
10048 {
10049 \_SB.PCI0.LPC.EC.PUBS
10050 })
10051 Name (_PR1, Package (0x01) // _PR1: Power Resources for D1
10052 {
10053 \_SB.PCI0.LPC.EC.PUBS
10054 })
10055 Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
10056 {
10057 \_SB.PCI0.LPC.EC.PUBS
10058 })
10059 Name (_PRW, Package (0x03) // _PRW: Power Resources for Wake
10060 {
10061 0x03,
10062 0x03,
10063 \_SB.PCI0.LPC.EC.PUBS
10064 })
10065 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
10066 {
10067 If (Arg0)
10068 {
10069 Store (0x03, U0EN)
10070 }
10071 Else
10072 {
10073 Store (0x00, U0EN)
10074 }
10075
10076 \_SB.PCI0.LPC.EC.PNST (Arg0)
10077 }
10078 }
10079
10080 Device (USB1)
10081 {
10082 Name (_ADR, 0x001D0001) // _ADR: Address
10083 Name (_S3D, 0x02) // _S3D: S3 Device State
10084 Name (RID, 0x00)
10085 OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
10086 Field (U1CS, DWordAcc, NoLock, Preserve)
10087 {
10088 U1EN, 2,
10089 Offset (0x04)
10090 }
10091
10092 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
10093 {
10094 0x04,
10095 0x03
10096 })
10097 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
10098 {
10099 If (Arg0)
10100 {
10101 Store (0x03, U1EN)
10102 }
10103 Else
10104 {
10105 Store (0x00, U1EN)
10106 }
10107 }
10108
10109 Device (URTH)
10110 {
10111 Name (_ADR, 0x00) // _ADR: Address
10112 Device (UPEX)
10113 {
10114 Name (_ADR, 0x02) // _ADR: Address
10115 }
10116 }
10117 }
10118
10119 Device (USB2)
10120 {
10121 Name (_ADR, 0x001D0002) // _ADR: Address
10122 Name (_S3D, 0x02) // _S3D: S3 Device State
10123 Name (RID, 0x00)
10124 OperationRegion (U2CS, PCI_Config, 0xC4, 0x04)
10125 Field (U2CS, DWordAcc, NoLock, Preserve)
10126 {
10127 U2EN, 2,
10128 Offset (0x04)
10129 }
10130
10131 Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
10132 {
10133 \_SB.PCI0.LPC.EC.PUBS
10134 })
10135 Name (_PR1, Package (0x01) // _PR1: Power Resources for D1
10136 {
10137 \_SB.PCI0.LPC.EC.PUBS
10138 })
10139 Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
10140 {
10141 \_SB.PCI0.LPC.EC.PUBS
10142 })
10143 Name (_PRW, Package (0x03) // _PRW: Power Resources for Wake
10144 {
10145 0x0C,
10146 0x03,
10147 \_SB.PCI0.LPC.EC.PUBS
10148 })
10149 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
10150 {
10151 If (Arg0)
10152 {
10153 Store (0x03, U2EN)
10154 }
10155 Else
10156 {
10157 Store (0x00, U2EN)
10158 }
10159 }
10160 }
10161
10162 Device (USB3)
10163 {
10164 Name (_ADR, 0x001A0000) // _ADR: Address
10165 Name (_S3D, 0x02) // _S3D: S3 Device State
10166 Name (RID, 0x00)
10167 OperationRegion (U3CS, PCI_Config, 0xC4, 0x04)
10168 Field (U3CS, DWordAcc, NoLock, Preserve)
10169 {
10170 U3EN, 2,
10171 Offset (0x04)
10172 }
10173
10174 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
10175 {
10176 0x0E,
10177 0x03
10178 })
10179 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
10180 {
10181 If (Arg0)
10182 {
10183 Store (0x03, U3EN)
10184 }
10185 Else
10186 {
10187 Store (0x00, U3EN)
10188 }
10189 }
10190 }
10191
10192 Device (USB4)
10193 {
10194 Name (_ADR, 0x001A0001) // _ADR: Address
10195 Name (_S3D, 0x02) // _S3D: S3 Device State
10196 Name (RID, 0x00)
10197 OperationRegion (U4CS, PCI_Config, 0xC4, 0x04)
10198 Field (U4CS, DWordAcc, NoLock, Preserve)
10199 {
10200 U4EN, 2,
10201 Offset (0x04)
10202 }
10203
10204 Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
10205 {
10206 \_SB.PCI0.LPC.EC.PUBS
10207 })
10208 Name (_PR1, Package (0x01) // _PR1: Power Resources for D1
10209 {
10210 \_SB.PCI0.LPC.EC.PUBS
10211 })
10212 Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
10213 {
10214 \_SB.PCI0.LPC.EC.PUBS
10215 })
10216 Name (_PRW, Package (0x03) // _PRW: Power Resources for Wake
10217 {
10218 0x05,
10219 0x03,
10220 \_SB.PCI0.LPC.EC.PUBS
10221 })
10222 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
10223 {
10224 If (Arg0)
10225 {
10226 Store (0x03, U4EN)
10227 }
10228 Else
10229 {
10230 Store (0x00, U4EN)
10231 }
10232 }
10233
10234 Device (URTH)
10235 {
10236 Name (_ADR, 0x00) // _ADR: Address
10237 Device (UPDK)
10238 {
10239 Name (_ADR, 0x02) // _ADR: Address
10240 }
10241 }
10242 }
10243
10244 Device (EHC0)
10245 {
10246 Name (_ADR, 0x001D0007) // _ADR: Address
10247 Name (_S3D, 0x03) // _S3D: S3 Device State
10248 Name (RID, 0x00)
10249 OperationRegion (U7CS, PCI_Config, 0x60, 0x04)
10250 Field (U7CS, DWordAcc, NoLock, Preserve)
10251 {
10252 Offset (0x02),
10253 PWKI, 1,
10254 PWUC, 6,
10255 Offset (0x04)
10256 }
10257
10258 Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
10259 {
10260 \_SB.PCI0.LPC.EC.PUBS
10261 })
10262 Name (_PR1, Package (0x01) // _PR1: Power Resources for D1
10263 {
10264 \_SB.PCI0.LPC.EC.PUBS
10265 })
10266 Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
10267 {
10268 \_SB.PCI0.LPC.EC.PUBS
10269 })
10270 Method (_INI, 0, NotSerialized) // _INI: Initialize
10271 {
10272 Store (0x01, PWKI)
10273 Store (0x0F, PWUC)
10274 }
10275
10276 Name (_PRW, Package (0x03) // _PRW: Power Resources for Wake
10277 {
10278 0x0D,
10279 0x03,
10280 \_SB.PCI0.LPC.EC.PUBS
10281 })
10282 Device (URTH)
10283 {
10284 Name (_ADR, 0x00) // _ADR: Address
10285 Device (UPEX)
10286 {
10287 Name (_ADR, 0x04) // _ADR: Address
10288 }
10289 }
10290 }
10291
10292 Device (EHC1)
10293 {
10294 Name (_ADR, 0x001A0007) // _ADR: Address
10295 Name (_S3D, 0x03) // _S3D: S3 Device State
10296 Name (RID, 0x00)
10297 OperationRegion (U8CS, PCI_Config, 0x60, 0x04)
10298 Field (U8CS, DWordAcc, NoLock, Preserve)
10299 {
10300 Offset (0x02),
10301 PWKI, 1,
10302 PWUC, 4,
10303 Offset (0x04)
10304 }
10305
10306 Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
10307 {
10308 \_SB.PCI0.LPC.EC.PUBS
10309 })
10310 Name (_PR1, Package (0x01) // _PR1: Power Resources for D1
10311 {
10312 \_SB.PCI0.LPC.EC.PUBS
10313 })
10314 Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
10315 {
10316 \_SB.PCI0.LPC.EC.PUBS
10317 })
10318 Method (_INI, 0, NotSerialized) // _INI: Initialize
10319 {
10320 Store (0x01, PWKI)
10321 Store (0x0F, PWUC)
10322 }
10323
10324 Name (_PRW, Package (0x03) // _PRW: Power Resources for Wake
10325 {
10326 0x0D,
10327 0x03,
10328 \_SB.PCI0.LPC.EC.PUBS
10329 })
10330 Device (URTH)
10331 {
10332 Name (_ADR, 0x00) // _ADR: Address
10333 Device (UPDK)
10334 {
10335 Name (_ADR, 0x04) // _ADR: Address
10336 }
10337 }
10338 }
10339
10340 Device (HDEF)
10341 {
10342 Name (_ADR, 0x001B0000) // _ADR: Address
10343 Name (_S3D, 0x03) // _S3D: S3 Device State
10344 Name (RID, 0x00)
10345 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
10346 {
10347 0x0D,
10348 0x04
10349 })
10350 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
10351 {
10352 Noop
10353 }
10354 }
10355 }
10356
10357 Scope (\_SB.PCI0.LPC.EC)
10358 {
10359 Name (BDEV, 0xFF)
10360 Name (BSTS, 0x00)
10361 Name (BHKE, 0x00)
10362 Name (BXCN, 0x00)
10363 Method (_Q2C, 0, NotSerialized) // _Qxx: EC Query
10364 {
10365 If (And (SFLG, 0x0400))
10366 {
10367 If (LEqual (BSTS, 0x00))
10368 {
10369 Store (BGID (0x00), BDEV)
10370 If (BXCN)
10371 {
10372 NXRE (BDEV)
10373 }
10374 Else
10375 {
10376 NBRE (BDEV)
10377 }
10378 }
10379 }
10380 }
10381
10382 Method (_Q2D, 0, NotSerialized) // _Qxx: EC Query
10383 {
10384 If (And (SFLG, 0x0400))
10385 {
10386 Store (BGID (0x00), BDEV)
10387 If (BXCN)
10388 {
10389 NXRC (BDEV)
10390 }
10391 Else
10392 {
10393 NBIN (BDEV)
10394 }
10395 }
10396 }
10397
10398 Method (_Q38, 0, NotSerialized) // _Qxx: EC Query
10399 {
10400 If (And (SFLG, 0x0400))
10401 {
10402 Store (BGID (0x00), Local0)
10403 If (LNotEqual (Local0, BDEV))
10404 {
10405 If (LEqual (Local0, 0x0F))
10406 {
10407 BDIS ()
10408 If (BXCN)
10409 {
10410 Store (BDEV, Local0)
10411 Store (0x0F, BDEV)
10412 NXEJ (Local0)
10413 }
10414 Else
10415 {
10416 NBEJ (BDEV)
10417 Store (Local0, BDEV)
10418 }
10419 }
10420 Else
10421 {
10422 If (HPBU)
10423 {
10424 If (BXCN)
10425 {
10426 Store (Local0, BDEV)
10427 NXIN (Local0)
10428 }
10429 }
10430 Else
10431 {
10432 Store (Local0, BDEV)
10433 If (BXCN)
10434 {
10435 NXRC (Local0)
10436 }
10437 Else
10438 {
10439 NBIN (Local0)
10440 }
10441 }
10442 }
10443 }
10444 }
10445 }
10446
10447 Method (NBRE, 1, NotSerialized)
10448 {
10449 If (LLess (Arg0, 0x0C))
10450 {
10451 If (LEqual (\BIDE, 0x03))
10452 {
10453 Notify (\_SB.PCI0.SATA.SCND.MSTR, 0x03)
10454 }
10455 Else
10456 {
10457 Notify (\_SB.PCI0.IDE0.PRIM.MSTR, 0x03)
10458 }
10459 }
10460
10461 If (LEqual (Arg0, 0x10))
10462 {
10463 If (LOr (HPAC, HB0A))
10464 {
10465 If (\WNTF)
10466 {
10467 Notify (\_SB.PCI0.LPC.EC.BAT1, 0x03)
10468 }
10469 }
10470 Else
10471 {
10472 LED (0x04, 0xC0)
10473 BEEP (0x0F)
10474 Store (0x02, BSTS)
10475 }
10476 }
10477 }
10478
10479 Method (NBEJ, 1, NotSerialized)
10480 {
10481 If (LEqual (BSTS, 0x00))
10482 {
10483 If (LLess (Arg0, 0x0C))
10484 {
10485 If (LEqual (\BIDE, 0x03))
10486 {
10487 Notify (\_SB.PCI0.SATA.SCND.MSTR, 0x01)
10488 }
10489 Else
10490 {
10491 Notify (\_SB.PCI0.IDE0.PRIM.MSTR, 0x01)
10492 }
10493 }
10494
10495 If (LEqual (Arg0, 0x10))
10496 {
10497 If (\WNTF)
10498 {
10499 Notify (\_SB.PCI0.LPC.EC.BAT1, 0x01)
10500 }
10501 Else
10502 {
10503 Notify (\_SB.PCI0.LPC.EC.BAT1, 0x81)
10504 }
10505 }
10506 }
10507
10508 LED (0x04, 0x00)
10509 BEEP (0x00)
10510 Store (0x00, BSTS)
10511 }
10512
10513 Method (NBIN, 1, NotSerialized)
10514 {
10515 If (LLess (Arg0, 0x0C))
10516 {
10517 If (LEqual (Arg0, 0x06))
10518 {
10519 BEN (0x02)
10520 }
10521 Else
10522 {
10523 BEN (0x01)
10524 }
10525
10526 LED (0x04, 0x80)
10527 If (LEqual (\BIDE, 0x03))
10528 {
10529 Notify (\_SB.PCI0.SATA.SCND.MSTR, 0x01)
10530 }
10531 Else
10532 {
10533 Notify (\_SB.PCI0.IDE0.PRIM.MSTR, 0x01)
10534 }
10535 }
10536
10537 If (LEqual (Arg0, 0x10))
10538 {
10539 LED (0x04, 0x80)
10540 If (\WNTF)
10541 {
10542 Store (0x01, \_SB.PCI0.LPC.EC.BAT1.XB1S)
10543 Notify (\_SB.PCI0.LPC.EC.BAT1, 0x01)
10544 }
10545 Else
10546 {
10547 Notify (\_SB.PCI0.LPC.EC.BAT1, 0x81)
10548 }
10549 }
10550
10551 BEEP (0x00)
10552 Store (0x00, BSTS)
10553 }
10554
10555 Method (BSCN, 0, NotSerialized)
10556 {
10557 If (LNot (HPBU))
10558 {
10559 Store (BGID (0x00), Local0)
10560 Store (Local0, BDEV)
10561 If (LLess (Local0, 0x0C))
10562 {
10563 If (LEqual (Local0, 0x06))
10564 {
10565 BEN (0x02)
10566 }
10567 Else
10568 {
10569 BEN (0x01)
10570 }
10571
10572 LED (0x04, 0x80)
10573 }
10574
10575 If (LEqual (Local0, 0x0E))
10576 {
10577 BEN (0x00)
10578 LED (0x04, 0x80)
10579 }
10580
10581 If (LEqual (Local0, 0x10))
10582 {
10583 LED (0x04, 0x80)
10584 Store (0x01, \_SB.PCI0.LPC.EC.BAT1.XB1S)
10585 }
10586
10587 BEEP (0x00)
10588 Store (0x00, BSTS)
10589 }
10590 }
10591
10592 Method (BEJ0, 1, NotSerialized)
10593 {
10594 If (Arg0)
10595 {
10596 BDIS ()
10597 LED (0x04, 0x00)
10598 \BHDP (0x01, 0x00)
10599 Store (0x0F, BDEV)
10600 Store (0x01, BSTS)
10601 If (BHKE)
10602 {
10603 Store (0x00, BHKE)
10604 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x3003)
10605 }
10606 }
10607 Else
10608 {
10609 LED (0x04, 0x80)
10610 Store (0x00, BSTS)
10611 }
10612 }
10613
10614 Method (BEJ3, 1, NotSerialized)
10615 {
10616 If (Arg0)
10617 {
10618 BDIS ()
10619 Store (0x01, BSTS)
10620 }
10621 Else
10622 {
10623 Store (0x00, BSTS)
10624 }
10625 }
10626
10627 Method (BPTS, 1, NotSerialized)
10628 {
10629 Store (0x01, HDBM)
10630 If (LNotEqual (BSTS, 0x00))
10631 {
10632 Store (0x0F, BDEV)
10633 Store (0x00, BSTS)
10634 }
10635
10636 Store (0x00, BHKE)
10637 Store (0x01, Local0)
10638 If (LNotEqual (BDEV, 0x0F))
10639 {
10640 If (LAnd (LNot (\LFDC), LEqual (BDEV, 0x0D)))
10641 {
10642 Store (0x00, Local0)
10643 }
10644 }
10645 Else
10646 {
10647 Store (0x00, Local0)
10648 }
10649
10650 If (LGreaterEqual (Arg0, 0x04))
10651 {
10652 Store (0x00, Local0)
10653 }
10654
10655 If (Local0)
10656 {
10657 BUWK (0x01)
10658 }
10659 Else
10660 {
10661 LED (0x04, 0x00)
10662 BUWK (0x00)
10663 }
10664 }
10665
10666 Method (BWAK, 1, NotSerialized)
10667 {
10668 BUWK (0x00)
10669 Store (BGID (0x00), Local0)
10670 If (LEqual (BSTS, 0x00))
10671 {
10672 If (LOr (\_SB.PCI0.LPC.EC.BAT2.XB2S, LEqual (HBCS, 0x02))) {}
10673 Else
10674 {
10675 If (HB1A)
10676 {
10677 Store (0x01, \_SB.PCI0.LPC.EC.BAT2.XB2S)
10678 Notify (\_SB.PCI0.LPC.EC.BAT2, 0x01)
10679 }
10680 }
10681
10682 If (And (SFLG, 0x0400))
10683 {
10684 If (LEqual (BSTS, 0x00))
10685 {
10686 If (LNotEqual (Local0, BDEV))
10687 {
10688 If (LNotEqual (Local0, 0x10))
10689 {
10690 Store (0x00, \_SB.PCI0.LPC.EC.BAT1.XB1S)
10691 }
10692
10693 If (BXCN)
10694 {
10695 Store (Local0, BDEV)
10696 NXRC (Local0)
10697 }
10698 Else
10699 {
10700 NBEJ (BDEV)
10701 Store (Local0, BDEV)
10702 NBIN (Local0)
10703 }
10704 }
10705 Else
10706 {
10707 If (LOr (\LFDC, LNotEqual (BDEV, 0x0D)))
10708 {
10709 If (LNotEqual (Local0, 0x0F))
10710 {
10711 LED (0x04, 0x80)
10712 If (HPBU)
10713 {
10714 Or (ShiftLeft (Arg0, 0x08), 0x2005, BHKE)
10715 \_SB.PCI0.LPC.EC.HKEY.MHKQ (BHKE)
10716 If (LLessEqual (Arg0, 0x02)) {}
10717 Else
10718 {
10719 If (BXCN)
10720 {
10721 NXRE (Local0)
10722 }
10723 Else
10724 {
10725 NBRE (Local0)
10726 }
10727 }
10728 }
10729 }
10730 }
10731 }
10732 }
10733 }
10734 }
10735 }
10736
10737 Method (BDIS, 0, NotSerialized)
10738 {
10739 If (\_SB.PCI0.LPC.BPRS)
10740 {
10741 If (LEqual (\BIDE, 0x03))
10742 {
10743 Store (0x00, \_SB.PCI0.SATA.SIE0)
10744 Store (0x00, \_SB.PCI0.SATA.STI0)
10745 Store (0x00, \_SB.PCI0.LPC.URST)
10746 Stall (0x0F)
10747 Store (0x01, \_SB.PCI0.SATA.SSIG)
10748 }
10749 Else
10750 {
10751 Store (0x00, \_SB.PCI0.IDE0.PIE0)
10752 Store (0x00, \_SB.PCI0.IDE0.PTI0)
10753 Store (0x00, \_SB.PCI0.LPC.URST)
10754 Stall (0x0F)
10755 Store (0x01, \_SB.PCI0.IDE0.PSIG)
10756 }
10757
10758 Store (0x00, \_SB.PCI0.LPC.UBPW)
10759 }
10760 }
10761
10762 Method (BEN, 1, NotSerialized)
10763 {
10764 Store (0x00, \_SB.PCI0.LPC.URST)
10765 Store (0x01, \_SB.PCI0.LPC.UBPW)
10766 Sleep (0x0F)
10767 If (Arg0)
10768 {
10769 If (LEqual (\BIDE, 0x03))
10770 {
10771 Store (0x00, \_SB.PCI0.SATA.SSIG)
10772 Store (0x01, \_SB.PCI0.SATA.SIDE)
10773 }
10774 Else
10775 {
10776 Store (0x00, \_SB.PCI0.IDE0.PSIG)
10777 Store (0x01, \_SB.PCI0.IDE0.PIDE)
10778 }
10779
10780 Stall (0x2D)
10781 Store (0x01, \_SB.PCI0.LPC.URST)
10782 If (LNot (\WVIS))
10783 {
10784 If (LEqual (Arg0, 0x02))
10785 {
10786 Sleep (0x07D0)
10787 }
10788 Else
10789 {
10790 Sleep (0x0190)
10791 }
10792 }
10793 }
10794
10795 If (\WVIS)
10796 {
10797 Store (0x3C, Local0)
10798 Store (0x00, Local1)
10799 If (LEqual (\BIDE, 0x03))
10800 {
10801 Store (0x01, Local1)
10802 }
10803
10804 While (Local0)
10805 {
10806 Sleep (0x01F4)
10807 If (HSWA (Local1))
10808 {
10809 Break
10810 }
10811
10812 Decrement (Local0)
10813 }
10814 }
10815 }
10816
10817 Method (BSTA, 1, NotSerialized)
10818 {
10819 If (LNot (\_SB.PCI0.LPC.BPRS))
10820 {
10821 Return (0x00)
10822 }
10823
10824 BINI ()
10825 If (LEqual (Arg0, 0x00))
10826 {
10827 Return (LEqual (BDEV, 0x0D))
10828 }
10829
10830 If (LEqual (Arg0, 0x01))
10831 {
10832 Return (LLess (BDEV, 0x0C))
10833 }
10834
10835 If (LEqual (Arg0, 0x02))
10836 {
10837 Return (LEqual (BDEV, 0x0E))
10838 }
10839
10840 Return (0x00)
10841 }
10842
10843 Method (BUWK, 1, NotSerialized)
10844 {
10845 If (\H8DR)
10846 {
10847 If (Arg0)
10848 {
10849 Store (0x01, \_SB.PCI0.LPC.EC.HWBU)
10850 }
10851 Else
10852 {
10853 Store (0x00, \_SB.PCI0.LPC.EC.HWBU)
10854 }
10855 }
10856 Else
10857 {
10858 If (Arg0)
10859 {
10860 \MBEC (0x32, 0xFF, 0x80)
10861 }
10862 Else
10863 {
10864 \MBEC (0x32, 0x7F, 0x00)
10865 }
10866 }
10867 }
10868
10869 Method (BINI, 0, NotSerialized)
10870 {
10871 If (LEqual (BDEV, 0xFF))
10872 {
10873 Store (BGID (0x00), BDEV)
10874 }
10875 }
10876
10877 Method (BGID, 1, NotSerialized)
10878 {
10879 Store (0x0F, Local0)
10880 If (Arg0)
10881 {
10882 Store (0xFF, Local0)
10883 }
10884 Else
10885 {
10886 If (LEqual (\_SB.PCI0.LPC.EC.GSID (), 0x03))
10887 {
10888 Store (BAID (), Local0)
10889 }
10890
10891 If (LEqual (Local0, 0x0F))
10892 {
10893 If (\H8DR)
10894 {
10895 If (LEqual (HBCS, 0x02))
10896 {
10897 Store (0x10, Local0)
10898 }
10899 }
10900 Else
10901 {
10902 If (And (\RBEC (0xCE), 0x02))
10903 {
10904 Store (0x10, Local0)
10905 }
10906 }
10907 }
10908 }
10909
10910 If (LAnd (\HDUB, LLess (Local0, 0x0C)))
10911 {
10912 Store (0x0F, Local0)
10913 }
10914
10915 Return (Local0)
10916 }
10917
10918 Method (BAID, 0, NotSerialized)
10919 {
10920 If (LAnd (LEqual (BAHD, 0x00), LEqual (BAAT, 0x00)))
10921 {
10922 Return (0x0B)
10923 }
10924 Else
10925 {
10926 If (LAnd (LEqual (BAHD, 0x01), LEqual (BAAT, 0x00)))
10927 {
10928 Return (0x06)
10929 }
10930 Else
10931 {
10932 Return (0x0F)
10933 }
10934 }
10935 }
10936
10937 Method (NXRE, 1, NotSerialized)
10938 {
10939 If (LEqual (Arg0, 0x0F))
10940 {
10941 LED (0x04, 0x00)
10942 Store (0x00, BSTS)
10943 }
10944
10945 If (LLess (Arg0, 0x0C))
10946 {
10947 LED (0x04, 0xC0)
10948 Notify (\_SB.SWAP, 0x83)
10949 }
10950
10951 If (LEqual (Arg0, 0x0E))
10952 {
10953 LED (0x04, 0xC0)
10954 Notify (\_SB.SWAP, 0x83)
10955 }
10956
10957 If (LEqual (Arg0, 0x10))
10958 {
10959 If (LOr (HPAC, HB0A))
10960 {
10961 LED (0x04, 0xC0)
10962 Notify (\_SB.SWAP, 0x83)
10963 }
10964 Else
10965 {
10966 LED (0x04, 0xC0)
10967 BEEP (0x0F)
10968 Store (0x02, BSTS)
10969 }
10970 }
10971 }
10972
10973 Method (NXRC, 1, NotSerialized)
10974 {
10975 If (LLess (Arg0, 0x0C))
10976 {
10977 LED (0x04, 0x80)
10978 If (LEqual (Arg0, 0x06))
10979 {
10980 BEN (0x02)
10981 }
10982 Else
10983 {
10984 BEN (0x01)
10985 }
10986
10987 Notify (\_SB.SWAP, 0x80)
10988 }
10989
10990 If (LEqual (Arg0, 0x0E))
10991 {
10992 LED (0x04, 0x80)
10993 BEN (0x00)
10994 Notify (\_SB.SWAP, 0x80)
10995 }
10996
10997 If (LEqual (Arg0, 0x10))
10998 {
10999 Notify (\_SB.PCI0.LPC.EC.BAT1, 0x81)
11000 LED (0x04, 0x80)
11001 Notify (\_SB.SWAP, 0x80)
11002 }
11003
11004 BEEP (0x00)
11005 Store (0x00, BSTS)
11006 }
11007
11008 Method (NXEJ, 1, NotSerialized)
11009 {
11010 If (LEqual (Arg0, 0x10))
11011 {
11012 Notify (\_SB.PCI0.LPC.EC.BAT1, 0x81)
11013 }
11014
11015 Notify (\_SB.SWAP, 0x82)
11016 LED (0x04, 0x00)
11017 BEEP (0x00)
11018 Store (0x00, BSTS)
11019 }
11020
11021 Method (NXIN, 1, NotSerialized)
11022 {
11023 Notify (\_SB.SWAP, 0x81)
11024 }
11025 }
11026
11027 Scope (\_SB.PCI0.LPC.EC.BAT1)
11028 {
11029 Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
11030 {
11031 Store (0x00, B1ST)
11032 Store (0x00, XB1S)
11033 \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
11034 }
11035 }
11036
11037 Scope (\_SB)
11038 {
11039 Device (SWAP)
11040 {
11041 Name (_HID, EisaId ("IBM0069")) // _HID: Hardware ID
11042 Method (_STA, 0, NotSerialized) // _STA: Status
11043 {
11044 If (\WMEF)
11045 {
11046 Return (0x0F)
11047 }
11048 Else
11049 {
11050 Return (0x00)
11051 }
11052 }
11053
11054 Method (XCNN, 1, NotSerialized)
11055 {
11056 Store (Arg0, \_SB.PCI0.LPC.EC.BXCN)
11057 Return (0x09)
11058 }
11059
11060 Method (XSWP, 0, NotSerialized)
11061 {
11062 Return (0x01)
11063 }
11064
11065 Method (XEJ0, 1, NotSerialized)
11066 {
11067 \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
11068 }
11069
11070 Method (XEJ3, 1, NotSerialized)
11071 {
11072 \_SB.PCI0.LPC.EC.BEJ3 (Arg0)
11073 }
11074
11075 Method (XDID, 0, NotSerialized)
11076 {
11077 Name (XPCK, Package (0x06)
11078 {
11079 0x00,
11080 0x00,
11081 0xFFFFFFFF,
11082 0xFFFFFFFF,
11083 0xFFFFFFFF,
11084 0x00
11085 })
11086 Store (\_SB.PCI0.LPC.EC.BDEV, Local0)
11087 Store (Local0, Index (XPCK, 0x00))
11088 If (LLess (Local0, 0x0C))
11089 {
11090 If (LEqual (\BIDE, 0x03))
11091 {
11092 Store (\_SB.PCI0.SATA._ADR, Index (XPCK, 0x02))
11093 Store (\_SB.PCI0.SATA.SCND._ADR, Index (XPCK, 0x03))
11094 Store (\_SB.PCI0.SATA.SCND.MSTR._ADR, Index (XPCK, 0x04))
11095 }
11096 Else
11097 {
11098 Store (\_SB.PCI0.IDE0._ADR, Index (XPCK, 0x02))
11099 Store (\_SB.PCI0.IDE0.PRIM._ADR, Index (XPCK, 0x03))
11100 Store (\_SB.PCI0.IDE0.PRIM.MSTR._ADR, Index (XPCK, 0x04))
11101 }
11102 }
11103
11104 If (LEqual (Local0, 0x10))
11105 {
11106 Store (\_SB.PCI0.LPC.EC.BAT1._HID, Index (XPCK, 0x02))
11107 Store (\_SB.PCI0.LPC.EC.BAT1._UID, Index (XPCK, 0x04))
11108 }
11109
11110 Store (XOr (\_SB.PCI0.LPC.BPRS, 0x00), Index (XPCK, 0x05))
11111 Return (XPCK)
11112 }
11113
11114 Method (XSTM, 1, NotSerialized)
11115 {
11116 Name (XDMY, Buffer (0x14) {})
11117 If (LEqual (\BIDE, 0x03))
11118 {
11119 \_SB.PCI0.SATA.SCND._STM (XDMY, Arg0, 0x00)
11120 }
11121 Else
11122 {
11123 \_SB.PCI0.IDE0.PRIM._STM (XDMY, Arg0, 0x00)
11124 }
11125 }
11126
11127 Method (XGTF, 0, NotSerialized)
11128 {
11129 If (LEqual (\BIDE, 0x03))
11130 {
11131 Return (\_SB.PCI0.SATA.SCND.MSTR._GTF)
11132 }
11133 Else
11134 {
11135 Return (\_SB.PCI0.IDE0.PRIM.MSTR._GTF ())
11136 }
11137 }
11138 }
11139 }
11140
11141 Scope (\_SB)
11142 {
11143 Device (GDCK)
11144 {
11145 Name (_HID, EisaId ("IBM0079")) // _HID: Hardware ID
11146 Name (_CID, EisaId ("PNP0C15")) // _CID: Compatible ID
11147 Name (DOID, 0xFFFFFFFF)
11148 Name (DIDB, 0xFFFFFFFF)
11149 Name (FLAG, 0x00)
11150 Name (WUCT, 0x00)
11151 Name (DHKE, 0x00)
11152 Event (DEVT)
11153 Method (DSTA, 0, NotSerialized)
11154 {
11155 UDCK ()
11156 UDKT ()
11157 If (LOr (LEqual (GDID (), 0x4C004D24), LEqual (GDID (), 0x44004D24)))
11158 {
11159 Store (0x0F, Local0)
11160 }
11161 Else
11162 {
11163 If (LNot (\W98F))
11164 {
11165 Store (0x00, Local0)
11166 }
11167 Else
11168 {
11169 Store (0x0C, Local0)
11170 }
11171 }
11172
11173 Return (Local0)
11174 }
11175
11176 Method (DPTS, 1, NotSerialized)
11177 {
11178 If (LAnd (LGreaterEqual (Arg0, 0x01), LLessEqual (Arg0, 0x04)))
11179 {
11180 Store (0x00, DHKE)
11181 If (DFLG (0x02, 0x02))
11182 {
11183 Store (0x00, DOID)
11184 DFLG (0x01, 0x02)
11185 }
11186
11187 If (LOr (LEqual (GDID (), 0x4C004D24), LEqual (GDID (), 0x44004D24)))
11188 {
11189 \_SB.PCI0.LPC.EC.DDWK (0x01)
11190 }
11191
11192 Store (GDID (), DIDB)
11193 DFLG (0x00, 0x0100)
11194 }
11195 }
11196
11197 Name (DDTM, 0x00)
11198 Method (DWAK, 1, NotSerialized)
11199 {
11200 Store (0xFFFFFFFF, DOID)
11201 If (LAnd (LGreaterEqual (Arg0, 0x01), LLessEqual (Arg0, 0x04)))
11202 {
11203 Store (0x00, DDTM)
11204 If (LOr (LEqual (DIDB, 0x4C004D24), LEqual (DIDB, 0x44004D24)))
11205 {
11206 Store (0x01, DDTM)
11207 }
11208
11209 If (DDTM)
11210 {
11211 Store (0x00, DDTM)
11212 If (LEqual (GDID (), 0x4C004D24))
11213 {
11214 Store (0x01, DDTM)
11215 }
11216
11217 If (LEqual (GDID (), 0x44004D24))
11218 {
11219 Store (0x01, DDTM)
11220 }
11221
11222 If (DDTM)
11223 {
11224 If (LEqual (Arg0, 0x04))
11225 {
11226 If (And (\_SB.PCI0.LPC.WAKR, 0x08))
11227 {
11228 DGPE ()
11229 }
11230 }
11231
11232 ShiftLeft (Arg0, 0x08, DHKE)
11233 If (LNot (DFLG (0x02, 0x08))) {}
11234 }
11235 Else
11236 {
11237 Store (0x01, \_SB.PCI0.LPC.BUSD)
11238 \_SB.PCI0.LPC.EC.DATT (0x00, 0x01)
11239 \_SB.PCI0.LPC.EC.DATT (0x01, 0x00)
11240 Notify (\_SB.GDCK, 0x00)
11241 \DHDP (0x00)
11242 }
11243 }
11244 Else
11245 {
11246 Store (0x00, DDTM)
11247 If (LEqual (GDID (), 0x4C004D24))
11248 {
11249 Store (0x01, DDTM)
11250 }
11251
11252 If (LEqual (GDID (), 0x44004D24))
11253 {
11254 Store (0x01, DDTM)
11255 }
11256
11257 If (DDTM)
11258 {
11259 WDCK ()
11260 }
11261 Else
11262 {
11263 Noop
11264 }
11265 }
11266
11267 DFLG (0x01, 0x0100)
11268 DFLG (0x01, 0x02)
11269 DFLG (0x01, 0x10)
11270 DFLG (0x01, 0x20)
11271 Store (0x01, \_SB.PCI0.LPC.DSCI)
11272 }
11273 }
11274
11275 Method (DGPE, 0, NotSerialized)
11276 {
11277 DFLG (0x00, 0x08)
11278 }
11279
11280 Method (DDCK, 1, NotSerialized)
11281 {
11282 If (Arg0)
11283 {
11284 \_SB.PCI0.LPC.EC.LED (0x08, 0x00)
11285 \_SB.PCI0.LPC.EC.LED (0x09, 0x80)
11286 \_SB.PCI0.LPC.LCON (0x01)
11287 BCON (0x01)
11288 \_SB.PCI0.LPC.EC.DATT (0x00, 0x00)
11289 \_SB.PCI0.LPC.EC.DATT (0x01, 0x01)
11290 }
11291 Else
11292 {
11293 \_SB.PCI0.LPC.EC.LED (0x08, 0x80)
11294 \_SB.PCI0.LPC.EC.LED (0x09, 0xC0)
11295 DFLG (0x00, 0x02)
11296 \DHDP (0x00)
11297 BCON (0x00)
11298 \_SB.PCI0.LPC.LCON (0x00)
11299 \_SB.PCI0.LPC.EC.DATT (0x00, 0x01)
11300 \_SB.PCI0.LPC.EC.DATT (0x01, 0x00)
11301 }
11302
11303 Return (0x01)
11304 }
11305
11306 Method (DEJ0, 1, NotSerialized)
11307 {
11308 If (Arg0)
11309 {
11310 Store (0x00, DOID)
11311 UDKI ()
11312 }
11313
11314 DFLG (0x01, 0x02)
11315 \_SB.PCI0.LPC.EC.LED (0x08, 0x00)
11316 \_SB.PCI0.LPC.EC.LED (0x09, 0x00)
11317 }
11318
11319 Method (DEJ3, 1, NotSerialized)
11320 {
11321 If (Arg0)
11322 {
11323 DFLG (0x00, 0x10)
11324 If (LEqual (\SPS, 0x03))
11325 {
11326 PDE3 ()
11327 }
11328 }
11329 }
11330
11331 Method (DEJ4, 1, NotSerialized)
11332 {
11333 If (Arg0)
11334 {
11335 DFLG (0x00, 0x20)
11336 }
11337 }
11338
11339 Method (PDE3, 0, NotSerialized)
11340 {
11341 Noop
11342 }
11343
11344 Name (HIDE, 0x00)
11345 Method (WDCK, 0, NotSerialized)
11346 {
11347 If (LOr (DFLG (0x02, 0x10), DFLG (0x02, 0x20)))
11348 {
11349 DDCK (0x01)
11350 If (\W98F)
11351 {
11352 DFLG (0x00, 0x0200)
11353 Store (0x05, HIDE)
11354 }
11355 }
11356 Else
11357 {
11358 Notify (\_SB.GDCK, 0x00)
11359 }
11360 }
11361
11362 Method (UDCK, 0, NotSerialized)
11363 {
11364 If (DFLG (0x02, 0x08))
11365 {
11366 If (LNot (DFLG (0x02, 0x0100)))
11367 {
11368 \_SB.PCI0.LPC.EC.LED (0x08, 0x80)
11369 \_SB.PCI0.LPC.EC.LED (0x09, 0xC0)
11370 Or (DHKE, 0x2004, DHKE)
11371 If (LEqual (\UOPT, 0x00))
11372 {
11373 \_SB.PCI0.LPC.EC.HKEY.MHKQ (DHKE)
11374 }
11375
11376 If (\W98F)
11377 {
11378 Notify (\_SB.GDCK, 0x01)
11379 }
11380 Else
11381 {
11382 Notify (\_SB.GDCK, 0x03)
11383 }
11384
11385 DFLG (0x01, 0x08)
11386 }
11387 }
11388 }
11389
11390 Method (UDKI, 0, NotSerialized)
11391 {
11392 If (\WNTF)
11393 {
11394 Store (0x01, WUCT)
11395 }
11396 Else
11397 {
11398 Store (0x05, WUCT)
11399 }
11400 }
11401
11402 Method (UDKT, 0, NotSerialized)
11403 {
11404 If (And (DHKE, 0x2004))
11405 {
11406 If (LEqual (GDID (), 0x00))
11407 {
11408 If (LNot (Decrement (WUCT)))
11409 {
11410 Store (0x00, DHKE)
11411 If (LEqual (\UOPT, 0x00))
11412 {
11413 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x4003)
11414 }
11415 }
11416 }
11417 }
11418 }
11419
11420 Method (GDID, 0, NotSerialized)
11421 {
11422 If (LEqual (DOID, 0xFFFFFFFF))
11423 {
11424 Store (0xFFFFFFFF, \_SB.GDCK.G_ID)
11425 Store (RDID (), DOID)
11426 }
11427
11428 Return (DOID)
11429 }
11430
11431 Method (RDID, 0, NotSerialized)
11432 {
11433 Store (0x00, Local0)
11434 If (\_SB.PCI0.LPC.EPWG)
11435 {
11436 If (LEqual (\_SB.GDCK.GGID (), 0x00))
11437 {
11438 If (\H8DR)
11439 {
11440 If (\_SB.PCI0.LPC.EC.EEPR ())
11441 {
11442 Store (\_SB.PCI0.LPC.EC.HDEP, Local0)
11443 }
11444 Else
11445 {
11446 Store (0x4C004D24, Local0)
11447 }
11448 }
11449 Else
11450 {
11451 Store (\DCKI, Local0)
11452 }
11453 }
11454
11455 If (LEqual (\_SB.GDCK.GGID (), 0x01))
11456 {
11457 Store (0x44004D24, Local0)
11458 }
11459
11460 If (LEqual (\_SB.GDCK.GGID (), 0x03))
11461 {
11462 Store (0x0200AE30, Local0)
11463 }
11464 }
11465
11466 Return (Local0)
11467 }
11468
11469 Method (RDSR, 0, NotSerialized)
11470 {
11471 Store (0x00, Local0)
11472 If (LNotEqual (GDID (), 0x00))
11473 {
11474 If (LEqual (\_SB.GDCK.GGID (), 0x00))
11475 {
11476 If (\H8DR)
11477 {
11478 If (\_SB.PCI0.LPC.EC.EEPR ())
11479 {
11480 Store (\_SB.PCI0.LPC.EC.HDEN, Local0)
11481 }
11482 }
11483 Else
11484 {
11485 Store (\DCKS, Local0)
11486 }
11487 }
11488
11489 If (LEqual (\_SB.GDCK.GGID (), 0x01))
11490 {
11491 Store (0x00, Local0)
11492 }
11493 }
11494
11495 Return (Local0)
11496 }
11497
11498 Method (BCON, 1, NotSerialized)
11499 {
11500 Store (\_SB.PCI0.LPC.EC.DATT (0x00, 0x02), Local0)
11501 \_SB.PCI0.LPC.EC.DATT (0x00, 0x01)
11502 Or (\_SB.PCI0.LPC.SERQ, 0x40, \_SB.PCI0.LPC.SERQ)
11503 And (\_SB.PCI0.LPC.SERQ, 0x7F, \_SB.PCI0.LPC.SERQ)
11504 Store (\_SB.PCI0.LPC.CLKR, Local1)
11505 If (Arg0)
11506 {
11507 Store (0x00, \_SB.PCI0.LPC.CLKR)
11508 Store (0x01, \_SB.PCI0.LPC.BUSC)
11509 }
11510 Else
11511 {
11512 Store (0x01, \_SB.PCI0.LPC.BUSD)
11513 }
11514
11515 Store (Local1, \_SB.PCI0.LPC.CLKR)
11516 Or (\_SB.PCI0.LPC.SERQ, 0xC0, \_SB.PCI0.LPC.SERQ)
11517 And (\_SB.PCI0.LPC.SERQ, 0xBF, \_SB.PCI0.LPC.SERQ)
11518 If (LEqual (Local0, 0x00))
11519 {
11520 \_SB.PCI0.LPC.EC.DATT (0x00, 0x00)
11521 }
11522 }
11523
11524 Method (DFLG, 2, NotSerialized)
11525 {
11526 If (LEqual (Arg0, 0x00))
11527 {
11528 Or (FLAG, Arg1, FLAG)
11529 }
11530
11531 If (LEqual (Arg0, 0x01))
11532 {
11533 And (FLAG, Not (Arg1), FLAG)
11534 }
11535
11536 If (And (FLAG, Arg1))
11537 {
11538 Return (0x01)
11539 }
11540 Else
11541 {
11542 Return (0x00)
11543 }
11544 }
11545
11546 Scope (\_SB.PCI0.LPC.EC)
11547 {
11548 Method (_Q37, 0, NotSerialized) // _Qxx: EC Query
11549 {
11550 If (\_SB.PCI0.LPC.EPWG)
11551 {
11552 Store (0x07D0, Local0)
11553 Sleep (0x64)
11554 Store (0xFFFFFFFF, \_SB.GDCK.G_ID)
11555 While (LAnd (LEqual (\_SB.GDCK.GGID (), 0x07), Local0))
11556 {
11557 Sleep (0x01)
11558 Store (0xFFFFFFFF, \_SB.GDCK.G_ID)
11559 Decrement (Local0)
11560 }
11561
11562 Store (0xFFFFFFFF, \_SB.GDCK.DOID)
11563 If (LOr (LEqual (\_SB.GDCK.GDID (), 0x4C004D24), LEqual (\_SB.GDCK.GDID (), 0x44004D24)))
11564 {
11565 If (HPAC)
11566 {
11567 Store (0x00, \_SB.PCI0.LPC.DRST)
11568 Notify (\_SB.GDCK, 0x00)
11569 }
11570 }
11571 }
11572 }
11573
11574 Method (EEPR, 0, NotSerialized)
11575 {
11576 Store (0x00, Local0)
11577 If (\H8DR)
11578 {
11579 Store (0x00, HDEO)
11580 Store (0x0A, HDEC)
11581 While (LNot (And (HDEC, 0xC0)))
11582 {
11583 Sleep (0x01)
11584 }
11585
11586 If (LNot (And (HDEC, 0x40)))
11587 {
11588 Store (0x00, Local1)
11589 Store (HDEN, Local2)
11590 Store (0x04, Local3)
11591 While (Local3)
11592 {
11593 Add (Local1, And (Local2, 0xFF), Local1)
11594 ShiftRight (Local2, 0x08, Local2)
11595 Decrement (Local3)
11596 }
11597
11598 Store (HDEP, Local2)
11599 Store (0x04, Local3)
11600 While (Local3)
11601 {
11602 Add (Local1, And (Local2, 0xFF), Local1)
11603 ShiftRight (Local2, 0x08, Local2)
11604 Decrement (Local3)
11605 }
11606
11607 Add (Local1, HDEM, Local1)
11608 Add (Local1, HDES, Local1)
11609 If (LNot (And (Local1, 0xFF)))
11610 {
11611 Store (0x01, Local0)
11612 }
11613 }
11614 }
11615
11616 Return (Local0)
11617 }
11618 }
11619
11620 Method (_STA, 0, NotSerialized) // _STA: Status
11621 {
11622 Store (GGID (), Local0)
11623 If (LNot (\W98F))
11624 {
11625 Store (0x00, Local1)
11626 }
11627 Else
11628 {
11629 Store (0x0C, Local1)
11630 }
11631
11632 If (LEqual (Local0, 0x03))
11633 {
11634 Store (\_SB.PCI0.LPC.EC.SSTA (), Local1)
11635 }
11636
11637 Return (Local1)
11638 }
11639
11640 Method (_INI, 0, NotSerialized) // _INI: Initialize
11641 {
11642 \_SB.PCI0.LPC.EC.SINI ()
11643 \_SB.PCI0.LPC.EC.DATT (0x02, 0x01)
11644 If (LEqual (GGID (), 0x07))
11645 {
11646 \_SB.PCI0.LPC.EC.DATT (0x01, 0x00)
11647 \_SB.PCI0.LPC.EC.DATT (0x00, 0x01)
11648 }
11649 Else
11650 {
11651 \_SB.PCI0.LPC.EC.DATT (0x01, 0x01)
11652 \_SB.PCI0.LPC.EC.DATT (0x00, 0x00)
11653 }
11654
11655 \_SB.PCI0.LPC.EC.DDWK (0x00)
11656 Store (0x01, \_SB.PCI0.LPC.DSCI)
11657 }
11658
11659 Method (_DCK, 1, NotSerialized) // _DCK: Dock Present
11660 {
11661 Store (0x00, Local0)
11662 If (LEqual (GGID (), 0x03))
11663 {
11664 Store (\_SB.PCI0.LPC.EC.SDCK (Arg0), Local0)
11665 }
11666
11667 If (\VIGD)
11668 {
11669 \_SB.PCI0.VID.VDSW (Arg0)
11670 }
11671
11672 Return (Local0)
11673 }
11674
11675 Name (UDOP, 0x00)
11676 Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
11677 {
11678 If (LEqual (GGID (), 0x03))
11679 {
11680 \_SB.PCI0.LPC.EC.SEJ0 (Arg0)
11681 }
11682 }
11683
11684 Method (XEJ3, 1, NotSerialized)
11685 {
11686 If (LEqual (GGID (), 0x03))
11687 {
11688 \_SB.PCI0.LPC.EC.SEJ3 (Arg0)
11689 }
11690 }
11691
11692 Method (_EJ4, 1, NotSerialized) // _EJx: Eject Device
11693 {
11694 If (LEqual (GGID (), 0x03))
11695 {
11696 \_SB.PCI0.LPC.EC.SEJ4 (Arg0)
11697 }
11698 }
11699
11700 Method (PEJ3, 0, NotSerialized)
11701 {
11702 If (LEqual (GGID (), 0x03))
11703 {
11704 \_SB.PCI0.LPC.EC.PSE3 ()
11705 }
11706 }
11707
11708 Method (_BDN, 0, NotSerialized) // _BDN: BIOS Dock Name
11709 {
11710 Store (0x00, Local0)
11711 If (LEqual (GGID (), 0x03))
11712 {
11713 Store (\_SB.PCI0.LPC.EC.SLBN (), Local0)
11714 }
11715
11716 Return (Local0)
11717 }
11718
11719 Method (_UID, 0, NotSerialized) // _UID: Unique ID
11720 {
11721 Store (0x00, Local0)
11722 If (LEqual (GGID (), 0x03))
11723 {
11724 Store (\_SB.PCI0.LPC.EC.SLUD (), Local0)
11725 }
11726
11727 Return (Local0)
11728 }
11729
11730 Method (GPTS, 1, NotSerialized)
11731 {
11732 \_SB.PCI0.LPC.EC.SPTS (Arg0)
11733 }
11734
11735 Method (GWAK, 1, NotSerialized)
11736 {
11737 \_SB.PCI0.LPC.EC.SWAK (Arg0)
11738 \_SB.PCI0.LPC.EC.DDWK (0x00)
11739 }
11740
11741 Method (GGPE, 0, NotSerialized)
11742 {
11743 If (LEqual (GGID (), 0x03))
11744 {
11745 \_SB.PCI0.LPC.EC.SGPE ()
11746 }
11747 }
11748
11749 Name (G_ID, 0xFFFFFFFF)
11750 Method (GGID, 0, NotSerialized)
11751 {
11752 Store (G_ID, Local0)
11753 If (LEqual (Local0, 0xFFFFFFFF))
11754 {
11755 Store (\_SB.PCI0.LPC.DKI0, Local0)
11756 Store (\_SB.PCI0.LPC.DKI1, Local1)
11757 Store (\_SB.PCI0.LPC.GL03, Local2)
11758 And (Local2, 0x01, Local2)
11759 Or (Local0, ShiftLeft (Local1, 0x01), Local0)
11760 Or (Local0, ShiftLeft (Local2, 0x02), Local0)
11761 Store (Local0, G_ID)
11762 }
11763
11764 Return (Local0)
11765 }
11766 }
11767 }
11768
11769 Scope (\_SB.PCI0.LPC.EC)
11770 {
11771 Method (_Q50, 0, NotSerialized) // _Qxx: EC Query
11772 {
11773 Store (\_SB.GDCK.GGID (), Local0)
11774 If (LNotEqual (Local0, 0x07))
11775 {
11776 \_SB.PCI0.LPC.EC.LED (0x08, 0x80)
11777 If (LEqual (ES07, 0x01))
11778 {
11779 \_SB.PCI0.LPC.EC.LED (0x09, 0xC0)
11780 If (LEqual (Local0, 0x03))
11781 {
11782 \_SB.PCI0.LPC.EC.SPEJ ()
11783 }
11784
11785 If (\W98F)
11786 {
11787 Notify (\_SB.GDCK, 0x01)
11788 }
11789 Else
11790 {
11791 Notify (\_SB.GDCK, 0x03)
11792 }
11793
11794 Store (0x01, ES07)
11795 }
11796
11797 If (LEqual (ES01, 0x01))
11798 {
11799 If (LNot (HPBU))
11800 {
11801 If (And (SFLG, 0x0400))
11802 {
11803 Store (BGID (0x00), BDEV)
11804 If (BXCN)
11805 {
11806 NXRC (BDEV)
11807 }
11808 Else
11809 {
11810 NBIN (BDEV)
11811 }
11812 }
11813 }
11814
11815 Store (One, ES01)
11816 }
11817
11818 If (LEqual (ES10, 0x01))
11819 {
11820 Store (0x01, ES10)
11821 }
11822 }
11823 }
11824
11825 Method (_Q58, 0, NotSerialized) // _Qxx: EC Query
11826 {
11827 Store (0xFFFFFFFF, \_SB.GDCK.G_ID)
11828 Store (0xFFFFFFFF, \_SB.PCI0.LPC.EC.SLID)
11829 Store (\_SB.GDCK.GGID (), Local0)
11830 If (LEqual (Local0, 0x03))
11831 {
11832 ASSI (0x00)
11833 Sleep (0x64)
11834 If (LNotEqual (\_SB.PCI0.LPC.SIOD, 0xFF))
11835 {
11836 Notify (\_SB.GDCK, 0x00)
11837 }
11838 }
11839
11840 \_SB.PCI0.IGBE.ABWA (0x00)
11841 }
11842
11843 Method (GUSB, 1, NotSerialized)
11844 {
11845 ShiftLeft (Arg0, 0x02, Local0)
11846 If (\H8DR)
11847 {
11848 Store (Arg0, UHPW)
11849 Store (Arg0, SLIS)
11850 }
11851 Else
11852 {
11853 Store (Arg0, UHPW)
11854 \MBEC (0x03, 0xFB, Local0)
11855 }
11856 }
11857
11858 Method (DATT, 2, NotSerialized)
11859 {
11860 Store (0x00, Local0)
11861 If (LEqual (Arg0, 0x00))
11862 {
11863 If (LEqual (Arg1, 0x01))
11864 {
11865 If (\H8DR)
11866 {
11867 Or (HAM6, 0x80, HAM6)
11868 }
11869 Else
11870 {
11871 \MBEC (0x16, 0xFF, 0x80)
11872 }
11873
11874 Store (0x01, Local0)
11875 }
11876
11877 If (LEqual (Arg1, 0x00))
11878 {
11879 If (\H8DR)
11880 {
11881 And (HAM6, 0x7F, HAM6)
11882 }
11883 Else
11884 {
11885 \MBEC (0x16, 0x7F, 0x00)
11886 }
11887 }
11888
11889 If (LEqual (Arg1, 0x02))
11890 {
11891 If (\H8DR)
11892 {
11893 If (And (HAM6, 0x80))
11894 {
11895 Store (0x01, Local0)
11896 }
11897 }
11898 Else
11899 {
11900 If (And (\RBEC (0x16), 0x80))
11901 {
11902 Store (0x01, Local0)
11903 }
11904 }
11905 }
11906 }
11907
11908 If (LEqual (Arg0, 0x01))
11909 {
11910 If (LEqual (Arg1, 0x01))
11911 {
11912 If (\H8DR)
11913 {
11914 Or (HAMA, 0x01, HAMA)
11915 }
11916 Else
11917 {
11918 \MBEC (0x1A, 0xFF, 0x01)
11919 }
11920
11921 Store (0x01, Local0)
11922 }
11923
11924 If (LEqual (Arg1, 0x00))
11925 {
11926 If (\H8DR)
11927 {
11928 And (HAMA, 0xFE, HAMA)
11929 }
11930 Else
11931 {
11932 \MBEC (0x1A, 0xFE, 0x00)
11933 }
11934 }
11935
11936 If (LEqual (Arg1, 0x02))
11937 {
11938 If (\H8DR)
11939 {
11940 If (And (HAMA, 0x01))
11941 {
11942 Store (0x01, Local0)
11943 }
11944 }
11945 Else
11946 {
11947 If (And (\RBEC (0x1A), 0x01))
11948 {
11949 Store (0x01, Local0)
11950 }
11951 }
11952 }
11953 }
11954
11955 If (LEqual (Arg0, 0x02))
11956 {
11957 If (LEqual (Arg1, 0x01))
11958 {
11959 If (\H8DR)
11960 {
11961 Or (HAMB, 0x01, HAMB)
11962 }
11963 Else
11964 {
11965 \MBEC (0x1B, 0xFF, 0x01)
11966 }
11967
11968 Store (0x01, Local0)
11969 }
11970
11971 If (LEqual (Arg1, 0x00))
11972 {
11973 If (\H8DR)
11974 {
11975 And (HAMB, 0xFE, HAMB)
11976 }
11977 Else
11978 {
11979 \MBEC (0x1B, 0xFE, 0x00)
11980 }
11981 }
11982
11983 If (LEqual (Arg1, 0x02))
11984 {
11985 If (\H8DR)
11986 {
11987 If (And (HAMB, 0x01))
11988 {
11989 Store (0x01, Local0)
11990 }
11991 }
11992 Else
11993 {
11994 If (And (\RBEC (0x1B), 0x01))
11995 {
11996 Store (0x01, Local0)
11997 }
11998 }
11999 }
12000 }
12001
12002 Return (Local0)
12003 }
12004
12005 Method (DDWK, 1, NotSerialized)
12006 {
12007 Store (0x00, Local0)
12008 If (LEqual (Arg0, 0x01))
12009 {
12010 If (\H8DR)
12011 {
12012 Store (One, HWDK)
12013 }
12014 Else
12015 {
12016 \MBEC (0x32, 0xFF, 0x08)
12017 }
12018
12019 Store (0x01, Local0)
12020 }
12021
12022 If (LEqual (Arg0, 0x00))
12023 {
12024 If (\H8DR)
12025 {
12026 Store (Zero, HWDK)
12027 }
12028 Else
12029 {
12030 \MBEC (0x32, 0xF7, 0x00)
12031 }
12032 }
12033
12034 If (LEqual (Arg0, 0x02))
12035 {
12036 If (\H8DR)
12037 {
12038 If (HWDK)
12039 {
12040 Store (0x01, Local0)
12041 }
12042 }
12043 Else
12044 {
12045 If (And (\RBEC (0x32), 0x08))
12046 {
12047 Store (0x01, Local0)
12048 }
12049 }
12050 }
12051
12052 Return (Local0)
12053 }
12054 }
12055
12056 Scope (\_SB.PCI0.LPC.EC)
12057 {
12058 Name (SLID, 0xFFFFFFFF)
12059 Name (SIDB, 0xFFFFFFFF)
12060 Name (SFLG, 0x00)
12061 Name (SUCT, 0x00)
12062 Name (SHKE, 0x00)
12063 Name (IFLG, 0x00)
12064 Method (SLBN, 0, NotSerialized)
12065 {
12066 Return (0x03)
12067 }
12068
12069 Method (SLUD, 0, NotSerialized)
12070 {
12071 Return (0x00)
12072 }
12073
12074 Method (SSTA, 0, NotSerialized)
12075 {
12076 SUDK ()
12077 SUDT ()
12078 If (LEqual (GSID (), 0x03))
12079 {
12080 Store (0x0F, Local0)
12081 }
12082 Else
12083 {
12084 If (LNot (\W98F))
12085 {
12086 Store (0x00, Local0)
12087 }
12088 Else
12089 {
12090 Store (0x0C, Local0)
12091 }
12092 }
12093
12094 If (\W98F)
12095 {
12096 Store (HIDS (Local0), Local0)
12097 }
12098
12099 Return (Local0)
12100 }
12101
12102 Method (SINI, 0, NotSerialized)
12103 {
12104 If (LEqual (GSID (), 0x03))
12105 {
12106 If (LNot (IFLG))
12107 {
12108 Store (0x01, ES07)
12109 }
12110
12111 Or (SFLG, 0x0400, SFLG)
12112 }
12113 Else
12114 {
12115 And (SFLG, Not (0x0400), SFLG)
12116 }
12117
12118 Store (0x01, IFLG)
12119 }
12120
12121 Method (SPTS, 1, NotSerialized)
12122 {
12123 If (LAnd (LGreaterEqual (Arg0, 0x01), LLessEqual (Arg0, 0x04)))
12124 {
12125 Store (0x00, SHKE)
12126 Store (0x00, SIDB)
12127 Store (Zero, \_SB.PCI0.LPC.GO16)
12128 If (LEqual (Arg0, 0x03))
12129 {
12130 Store (0x80, \_SB.PCI0.LPC.GER0)
12131 }
12132
12133 If (And (SFLG, 0x02))
12134 {
12135 Store (0x00, SLID)
12136 And (SFLG, Not (0x02), SFLG)
12137 }
12138
12139 If (LEqual (GSID (), 0x03))
12140 {
12141 If (LEqual (Arg0, 0x03))
12142 {
12143 \_SB.PCI0.LPC.EC.DDWK (0x01)
12144 }
12145
12146 Store (0x03, SIDB)
12147 }
12148
12149 Or (SFLG, 0x0100, SFLG)
12150 }
12151 }
12152
12153 Method (SWAK, 1, NotSerialized)
12154 {
12155 Store (0xFFFFFFFF, SLID)
12156 If (LAnd (LGreaterEqual (Arg0, 0x01), LLessEqual (Arg0, 0x04)))
12157 {
12158 If (LEqual (SIDB, 0x03))
12159 {
12160 If (LEqual (GSID (), 0x03))
12161 {
12162 LED (0x03, 0x80)
12163 ShiftLeft (Arg0, 0x08, SHKE)
12164 If (LEqual (Arg0, 0x03))
12165 {
12166 Store (One, \_SB.PCI0.LPC.GO16)
12167 Store (0x82, \_SB.PCI0.LPC.GER0)
12168 }
12169
12170 If (LEqual (Arg0, 0x04))
12171 {
12172 Store (0x01, ES07)
12173 }
12174 }
12175 Else
12176 {
12177 GUSB (0x00)
12178 Notify (\_SB.GDCK, 0x00)
12179 And (SFLG, Not (0x0400), SFLG)
12180 }
12181 }
12182 Else
12183 {
12184 If (LEqual (GSID (), 0x03))
12185 {
12186 ASSI (0x00)
12187 Sleep (0x64)
12188 If (LNotEqual (\_SB.PCI0.LPC.SIOD, 0xFF))
12189 {
12190 WSDK ()
12191 }
12192 }
12193 Else
12194 {
12195 Noop
12196 }
12197 }
12198
12199 Store (THRI, Local1)
12200 Store (0xF0, Local2)
12201 Store (Or (Local2, Local1), ATMX)
12202 Sleep (0x64)
12203 And (SFLG, Not (0x0100), SFLG)
12204 And (SFLG, Not (0x02), SFLG)
12205 And (SFLG, Not (0x10), SFLG)
12206 And (SFLG, Not (0x20), SFLG)
12207 }
12208
12209 Store (0x00, HB1I)
12210 }
12211
12212 Method (SGPE, 0, NotSerialized)
12213 {
12214 Or (SFLG, 0x08, SFLG)
12215 }
12216
12217 Method (SDCK, 1, NotSerialized)
12218 {
12219 If (\H8DR)
12220 {
12221 If (Arg0)
12222 {
12223 Sleep (0x64)
12224 If (LNot (BXCN))
12225 {
12226 BSCN ()
12227 }
12228
12229 \_SB.PCI0.LPC.EC.DATT (0x01, 0x01)
12230 Store (0x00, HB1I)
12231 Or (SFLG, 0x0400, SFLG)
12232 }
12233 Else
12234 {
12235 Or (SFLG, 0x02, SFLG)
12236 GUSB (0x00)
12237 Store (0x01, HB1I)
12238 If (\WNTF)
12239 {
12240 Store (0x00, \_SB.PCI0.LPC.EC.BAT1.B1ST)
12241 Store (0x00, \_SB.PCI0.LPC.EC.BAT1.XB1S)
12242 Store (0x00, \_SB.PCI0.LPC.EC.BAT2.B2ST)
12243 Store (0x00, \_SB.PCI0.LPC.EC.BAT2.XB2S)
12244 }
12245
12246 BEJ0 (0x01)
12247 If (BXCN)
12248 {
12249 Notify (\_SB.SWAP, 0x82)
12250 }
12251
12252 \_SB.PCI0.LPC.EC.DATT (0x01, 0x00)
12253 And (SFLG, Not (0x0400), SFLG)
12254 }
12255 }
12256
12257 Return (0x01)
12258 }
12259
12260 Method (SEJ0, 1, NotSerialized)
12261 {
12262 Store (0x00, SLID)
12263 If (Arg0)
12264 {
12265 ASSI (0x01)
12266 }
12267
12268 LED (0x03, 0x00)
12269 SUDI ()
12270 And (SFLG, Not (0x02), SFLG)
12271 }
12272
12273 Method (SEJ3, 1, NotSerialized)
12274 {
12275 Or (SFLG, 0x10, SFLG)
12276 If (LEqual (\SPS, 0x03))
12277 {
12278 PSE3 ()
12279 }
12280 }
12281
12282 Method (SEJ4, 1, NotSerialized)
12283 {
12284 Or (SFLG, 0x20, SFLG)
12285 }
12286
12287 Method (PSE3, 0, NotSerialized)
12288 {
12289 If (And (SFLG, 0x10))
12290 {
12291 LED (0x03, 0x00)
12292 }
12293 }
12294
12295 Name (SHDE, 0x00)
12296 Method (WSDK, 0, NotSerialized)
12297 {
12298 If (And (SFLG, Or (0x10, 0x20)))
12299 {
12300 SDCK (0x01)
12301 If (\W98F)
12302 {
12303 Or (SFLG, 0x0200, SFLG)
12304 Store (0x05, SHDE)
12305 }
12306 }
12307 Else
12308 {
12309 Notify (\_SB.GDCK, 0x00)
12310 }
12311 }
12312
12313 Method (HIDS, 1, NotSerialized)
12314 {
12315 Store (Arg0, Local0)
12316 If (And (SFLG, 0x0200))
12317 {
12318 If (LEqual (Arg0, 0x0F))
12319 {
12320 If (\W98F)
12321 {
12322 Store (0x0C, Local0)
12323 }
12324
12325 Decrement (SHDE)
12326 If (LNot (SHDE))
12327 {
12328 And (SFLG, Not (0x0200), SFLG)
12329 Notify (\_SB.GDCK, 0x00)
12330 }
12331 }
12332 Else
12333 {
12334 And (SFLG, Not (0x0200), SFLG)
12335 }
12336 }
12337
12338 Return (Local0)
12339 }
12340
12341 Method (SUDK, 0, NotSerialized)
12342 {
12343 If (And (SFLG, 0x08))
12344 {
12345 If (LNot (And (SFLG, 0x0100)))
12346 {
12347 Or (SHKE, 0x2004, SHKE)
12348 If (LEqual (\UOPT, 0x00))
12349 {
12350 \_SB.PCI0.LPC.EC.HKEY.MHKQ (SHKE)
12351 }
12352
12353 If (\W98F)
12354 {
12355 Notify (\_SB.GDCK, 0x01)
12356 }
12357 Else
12358 {
12359 Notify (\_SB.GDCK, 0x03)
12360 }
12361
12362 And (SFLG, Not (0x08), SFLG)
12363 }
12364 }
12365 }
12366
12367 Method (SUDI, 0, NotSerialized)
12368 {
12369 If (\WNTF)
12370 {
12371 Store (0x01, SUCT)
12372 }
12373 Else
12374 {
12375 Store (0x05, SUCT)
12376 }
12377 }
12378
12379 Method (SUDT, 0, NotSerialized)
12380 {
12381 If (And (SHKE, 0x2004))
12382 {
12383 If (LEqual (GSID (), 0x00))
12384 {
12385 If (LNot (Decrement (SUCT)))
12386 {
12387 Store (0x00, SHKE)
12388 If (LEqual (\UOPT, 0x00))
12389 {
12390 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x4003)
12391 }
12392 }
12393 }
12394 }
12395 }
12396
12397 Method (GSID, 0, NotSerialized)
12398 {
12399 If (LEqual (SLID, 0xFFFFFFFF))
12400 {
12401 Store (0xFFFFFFFF, \_SB.GDCK.G_ID)
12402 If (LEqual (\_SB.GDCK.GGID (), 0x03))
12403 {
12404 Store (0x03, SLID)
12405 }
12406 Else
12407 {
12408 Store (0x00, SLID)
12409 }
12410 }
12411
12412 Return (SLID)
12413 }
12414
12415 Method (SPEJ, 0, NotSerialized)
12416 {
12417 LED (0x03, 0x00)
12418 Sleep (0xC8)
12419 LED (0x03, 0x80)
12420 Sleep (0xC8)
12421 LED (0x03, 0x00)
12422 Sleep (0xC8)
12423 LED (0x03, 0x80)
12424 Sleep (0xC8)
12425 LED (0x03, 0x00)
12426 Sleep (0xC8)
12427 LED (0x03, 0x80)
12428 }
12429 }
12430
12431 Scope (\_SB.PCI0.LPC.EC)
12432 {
12433 Method (RPTS, 1, NotSerialized)
12434 {
12435 Noop
12436 }
12437
12438 Method (RWAK, 1, NotSerialized)
12439 {
12440 }
12441 }
12442
12443 Scope (\_SB.PCI0.LPC.EC)
12444 {
12445 Method (_Q43, 0, NotSerialized) // _Qxx: EC Query
12446 {
12447 \UCMS (0x18)
12448 }
12449
12450 Method (SAUM, 1, NotSerialized)
12451 {
12452 If (LGreater (Arg0, 0x03))
12453 {
12454 Noop
12455 }
12456 Else
12457 {
12458 If (\H8DR)
12459 {
12460 Store (Arg0, HAUM)
12461 }
12462 Else
12463 {
12464 \MBEC (0x03, 0x9F, ShiftLeft (Arg0, 0x05))
12465 }
12466 }
12467 }
12468 }
12469
12470 Scope (\_SB.PCI0.LPC.EC)
12471 {
12472 Name (BRTB, Package (0x02)
12473 {
12474 Package (0x10)
12475 {
12476 0x27,
12477 0x36,
12478 0x48,
12479 0x56,
12480 0x64,
12481 0x70,
12482 0x7C,
12483 0x87,
12484 0x93,
12485 0x9F,
12486 0xAB,
12487 0xBA,
12488 0xC9,
12489 0xD9,
12490 0xEE,
12491 0xFF
12492 },
12493
12494 Package (0x10)
12495 {
12496 0x27,
12497 0x34,
12498 0x3E,
12499 0x48,
12500 0x52,
12501 0x5B,
12502 0x64,
12503 0x6D,
12504 0x77,
12505 0x7F,
12506 0x88,
12507 0x90,
12508 0x98,
12509 0xA0,
12510 0xA9,
12511 0xB2
12512 }
12513 })
12514 Name (BRTF, 0x01)
12515 Method (_Q14, 0, NotSerialized) // _Qxx: EC Query
12516 {
12517 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x8000))
12518 {
12519 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1010)
12520 }
12521
12522 If (\NBCF)
12523 {
12524 If (\VIGD)
12525 {
12526 Notify (\_SB.PCI0.VID.LCD0, 0x86)
12527 }
12528 Else
12529 {
12530 Notify (\_SB.PCI0.AGP.VID.LCD0, 0x86)
12531 }
12532 }
12533 Else
12534 {
12535 If (\VIGD)
12536 {
12537 Store (\UCMS (0x15), \BRLV)
12538 Store (\BRLV, Local0)
12539 If (LNotEqual (Local0, 0x0F))
12540 {
12541 Increment (Local0)
12542 Store (Local0, \BRLV)
12543 }
12544
12545 \_SB.PCI0.LPC.EC.BRNS ()
12546 \UCMS (0x16)
12547 }
12548 Else
12549 {
12550 \UCMS (0x04)
12551 }
12552 }
12553 }
12554
12555 Method (_Q15, 0, NotSerialized) // _Qxx: EC Query
12556 {
12557 If (\VCDB)
12558 {
12559 Store (0x00, \VCDB)
12560 Store (\UCMS (0x15), \BRLV)
12561 \_SB.PCI0.LPC.EC.BRNS ()
12562 \UCMS (0x16)
12563 Return (0x00)
12564 }
12565
12566 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00010000))
12567 {
12568 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1011)
12569 }
12570
12571 If (\NBCF)
12572 {
12573 If (\VIGD)
12574 {
12575 Notify (\_SB.PCI0.VID.LCD0, 0x87)
12576 }
12577 Else
12578 {
12579 Notify (\_SB.PCI0.AGP.VID.LCD0, 0x87)
12580 }
12581 }
12582 Else
12583 {
12584 If (\VIGD)
12585 {
12586 Store (\UCMS (0x15), \BRLV)
12587 Store (\BRLV, Local0)
12588 If (Local0)
12589 {
12590 Decrement (Local0)
12591 Store (Local0, \BRLV)
12592 }
12593
12594 \_SB.PCI0.LPC.EC.BRNS ()
12595 \UCMS (0x16)
12596 }
12597 Else
12598 {
12599 \UCMS (0x05)
12600 }
12601 }
12602 }
12603
12604 Method (BRNS, 0, NotSerialized)
12605 {
12606 Store (\BRLV, Local0)
12607 Store (0x00, Local1)
12608 If (\BRHB)
12609 {
12610 If (LNot (\_SB.PCI0.LPC.EC.AC._PSR ()))
12611 {
12612 Store (0x01, Local1)
12613 }
12614 }
12615
12616 Store (DerefOf (Index (DerefOf (Index (BRTB, Local1)), Local0)),
12617 Local2)
12618 \_SB.PCI0.VID.AINT (0x01, Local2)
12619 }
12620
12621 Method (BRTO, 1, NotSerialized)
12622 {
12623 If (BRTF)
12624 {
12625 Store (Arg0, Local0)
12626 While (LGreater (Local0, 0x01))
12627 {
12628 If (LEqual (\BRFQ, 0x01))
12629 {
12630 Sleep (0x64)
12631 Decrement (Local0)
12632 }
12633 Else
12634 {
12635 If (LEqual (\BRFQ, 0x03))
12636 {
12637 Sleep (0x64)
12638 Decrement (Local0)
12639 }
12640 Else
12641 {
12642 Store (0x00, Local0)
12643 }
12644 }
12645 }
12646 }
12647 }
12648
12649 Method (BRTT, 0, NotSerialized)
12650 {
12651 If (\VIGD)
12652 {
12653 Store (\BRLV, Local0)
12654 If (LEqual (Local0, 0x00))
12655 {
12656 If (LNotEqual (\BRFQ, 0x02))
12657 {
12658 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x080C))
12659 {
12660 Store (0x01, \BRFQ)
12661 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x5010)
12662 }
12663 }
12664 }
12665 Else
12666 {
12667 If (LNotEqual (\BRFQ, 0x00))
12668 {
12669 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x080C))
12670 {
12671 Store (0x03, \BRFQ)
12672 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x5010)
12673 }
12674 }
12675 }
12676 }
12677 }
12678 }
12679
12680 Scope (\_SB.PCI0.LPC.EC)
12681 {
12682 Method (_Q19, 0, NotSerialized) // _Qxx: EC Query
12683 {
12684 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00800000))
12685 {
12686 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1018)
12687 }
12688
12689 \UCMS (0x03)
12690 }
12691 }
12692
12693 Scope (\_SB.PCI0.LPC.EC)
12694 {
12695 Method (_Q63, 0, NotSerialized) // _Qxx: EC Query
12696 {
12697 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00080000))
12698 {
12699 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1014)
12700 }
12701
12702 \UCMS (0x0B)
12703 }
12704 }
12705
12706 Scope (\_SB.PCI0.LPC.EC)
12707 {
12708 Method (_Q70, 0, NotSerialized) // _Qxx: EC Query
12709 {
12710 FNST ()
12711 }
12712
12713 Method (_Q72, 0, NotSerialized) // _Qxx: EC Query
12714 {
12715 FNST ()
12716 }
12717
12718 Method (_Q73, 0, NotSerialized) // _Qxx: EC Query
12719 {
12720 FNST ()
12721 }
12722
12723 Method (FNST, 0, NotSerialized)
12724 {
12725 If (\H8DR)
12726 {
12727 Store (HFNS, Local0)
12728 Store (HFNE, Local1)
12729 }
12730 Else
12731 {
12732 And (\RBEC (0x0E), 0x03, Local0)
12733 And (\RBEC (0x00), 0x08, Local1)
12734 }
12735
12736 If (Local1)
12737 {
12738 If (LEqual (Local0, 0x00))
12739 {
12740 \UCMS (0x11)
12741 }
12742
12743 If (LEqual (Local0, 0x01))
12744 {
12745 \UCMS (0x0F)
12746 }
12747
12748 If (LEqual (Local0, 0x02))
12749 {
12750 \UCMS (0x10)
12751 }
12752 }
12753 }
12754 }
12755
12756 Scope (\_SB.PCI0.LPC.EC.HKEY)
12757 {
12758 Name (WGFL, 0x00)
12759 Method (WLSW, 0, NotSerialized)
12760 {
12761 Return (\_SB.PCI0.LPC.EC.GSTS)
12762 }
12763
12764 Method (GWAN, 0, NotSerialized)
12765 {
12766 Store (0x00, Local0)
12767 If (And (WGFL, 0x01))
12768 {
12769 Or (Local0, 0x01, Local0)
12770 }
12771
12772 If (And (WGFL, 0x08))
12773 {
12774 Return (Local0)
12775 }
12776
12777 If (WPWS ())
12778 {
12779 Or (Local0, 0x02, Local0)
12780 }
12781
12782 If (And (WGFL, 0x04))
12783 {
12784 Or (Local0, 0x04, Local0)
12785 }
12786
12787 Return (Local0)
12788 }
12789
12790 Method (SWAN, 1, NotSerialized)
12791 {
12792 If (And (Arg0, 0x02))
12793 {
12794 WPWC (0x01)
12795 }
12796 Else
12797 {
12798 WPWC (0x00)
12799 }
12800
12801 If (And (Arg0, 0x04))
12802 {
12803 Or (WGFL, 0x04, WGFL)
12804 \WGSV (0x02)
12805 }
12806 Else
12807 {
12808 And (WGFL, Not (0x04), WGFL)
12809 \WGSV (0x03)
12810 }
12811 }
12812
12813 Method (GBDC, 0, NotSerialized)
12814 {
12815 Store (0x00, Local0)
12816 If (And (WGFL, 0x10))
12817 {
12818 Or (Local0, 0x01, Local0)
12819 }
12820
12821 If (And (WGFL, 0x80))
12822 {
12823 Return (Local0)
12824 }
12825
12826 If (BPWS ())
12827 {
12828 Or (Local0, 0x02, Local0)
12829 }
12830
12831 If (And (WGFL, 0x40))
12832 {
12833 Or (Local0, 0x04, Local0)
12834 }
12835
12836 Return (Local0)
12837 }
12838
12839 Method (SBDC, 1, NotSerialized)
12840 {
12841 If (And (Arg0, 0x02))
12842 {
12843 BPWC (0x01)
12844 }
12845 Else
12846 {
12847 BPWC (0x00)
12848 }
12849
12850 If (And (Arg0, 0x04))
12851 {
12852 Or (WGFL, 0x40, WGFL)
12853 \BLTH (0x02)
12854 }
12855 Else
12856 {
12857 And (WGFL, Not (0x40), WGFL)
12858 \BLTH (0x03)
12859 }
12860 }
12861
12862 Method (WPWS, 0, NotSerialized)
12863 {
12864 If (\H8DR)
12865 {
12866 Store (\_SB.PCI0.LPC.EC.DCWW, Local0)
12867 }
12868 Else
12869 {
12870 Store (ShiftRight (And (\RBEC (0x3A), 0x40), 0x06), Local0)
12871 }
12872
12873 Return (Local0)
12874 }
12875
12876 Method (WTGL, 0, NotSerialized)
12877 {
12878 If (And (WGFL, 0x01))
12879 {
12880 WPWC (LNot (WPWS ()))
12881 }
12882 }
12883
12884 Method (WPWC, 1, NotSerialized)
12885 {
12886 If (LAnd (Arg0, LAnd (And (WGFL, 0x01), LNot (And (
12887 WGFL, 0x08)))))
12888 {
12889 If (\H8DR)
12890 {
12891 Store (One, \_SB.PCI0.LPC.EC.DCWW)
12892 }
12893 Else
12894 {
12895 \MBEC (0x3A, 0xFF, 0x40)
12896 }
12897
12898 Or (WGFL, 0x02, WGFL)
12899 }
12900 Else
12901 {
12902 If (\H8DR)
12903 {
12904 Store (Zero, \_SB.PCI0.LPC.EC.DCWW)
12905 }
12906 Else
12907 {
12908 \MBEC (0x3A, 0xBF, 0x00)
12909 }
12910
12911 And (WGFL, Not (0x02), WGFL)
12912 }
12913 }
12914
12915 Method (BPWS, 0, NotSerialized)
12916 {
12917 If (\H8DR)
12918 {
12919 Store (\_SB.PCI0.LPC.EC.DCBD, Local0)
12920 }
12921 Else
12922 {
12923 Store (ShiftRight (And (\RBEC (0x3A), 0x10), 0x04), Local0)
12924 }
12925
12926 Return (Local0)
12927 }
12928
12929 Method (BTGL, 0, NotSerialized)
12930 {
12931 If (And (WGFL, 0x10))
12932 {
12933 BPWC (LNot (BPWS ()))
12934 }
12935 }
12936
12937 Method (BPWC, 1, NotSerialized)
12938 {
12939 If (LAnd (Arg0, LAnd (And (WGFL, 0x10), LNot (And (
12940 WGFL, 0x80)))))
12941 {
12942 If (\H8DR)
12943 {
12944 Store (One, \_SB.PCI0.LPC.EC.DCBD)
12945 }
12946 Else
12947 {
12948 \MBEC (0x3A, 0xFF, 0x10)
12949 }
12950
12951 Or (WGFL, 0x20, WGFL)
12952 }
12953 Else
12954 {
12955 If (\H8DR)
12956 {
12957 Store (Zero, \_SB.PCI0.LPC.EC.DCBD)
12958 }
12959 Else
12960 {
12961 \MBEC (0x3A, 0xEF, 0x00)
12962 }
12963
12964 And (WGFL, Not (0x20), WGFL)
12965 }
12966 }
12967
12968 Method (WGIN, 0, NotSerialized)
12969 {
12970 Store (0x00, WGFL)
12971 Store (\WGSV (0x01), WGFL)
12972 If (WPWS ())
12973 {
12974 Or (WGFL, 0x02, WGFL)
12975 }
12976
12977 If (BPWS ())
12978 {
12979 Or (WGFL, 0x20, WGFL)
12980 }
12981 }
12982
12983 Method (WGPS, 1, NotSerialized)
12984 {
12985 If (LGreaterEqual (Arg0, 0x04))
12986 {
12987 \BLTH (0x05)
12988 }
12989
12990 If (LNot (And (WGFL, 0x04)))
12991 {
12992 WPWC (0x00)
12993 }
12994
12995 If (LNot (And (WGFL, 0x40)))
12996 {
12997 BPWC (0x00)
12998 }
12999 }
13000
13001 Method (WGWK, 1, NotSerialized)
13002 {
13003 If (And (WGFL, 0x20))
13004 {
13005 BPWC (0x01)
13006 }
13007
13008 If (And (WGFL, 0x02))
13009 {
13010 WPWC (0x01)
13011 }
13012 }
13013 }
13014
13015 Scope (\_SB.PCI0.LPC.EC)
13016 {
13017 Method (_Q41, 0, NotSerialized) // _Qxx: EC Query
13018 {
13019 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x7000)
13020 }
13021 }
13022 }
13023
13024 Scope (\_SB.PCI0.IDE0.PRIM)
13025 {
13026 Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
13027 }
13028
13029 Scope (\_SB.PCI0.LPC.EC.BAT1)
13030 {
13031 Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
13032 }
13033
13034 Scope (\_SB.PCI0.USB4.URTH.UPDK)
13035 {
13036 Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
13037 }
13038
13039 Scope (\_SB.PCI0.EHC1.URTH.UPDK)
13040 {
13041 Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
13042 }
13043
13044 Name (\_S0, Package (0x04) // _S0_: S0 System State
13045 {
13046 0x00,
13047 0x00,
13048 0x00,
13049 0x00
13050 })
13051 Name (\_S3, Package (0x04) // _S3_: S3 System State
13052 {
13053 0x05,
13054 0x05,
13055 0x00,
13056 0x00
13057 })
13058 Name (\_S4, Package (0x04) // _S4_: S4 System State
13059 {
13060 0x06,
13061 0x06,
13062 0x00,
13063 0x00
13064 })
13065 Name (\_S5, Package (0x04) // _S5_: S5 System State
13066 {
13067 0x07,
13068 0x07,
13069 0x00,
13070 0x00
13071 })
13072 Method (\_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep
13073 {
13074 Store (0x01, Local0)
13075 If (LEqual (Arg0, \SPS))
13076 {
13077 Store (0x00, Local0)
13078 }
13079
13080 If (LOr (LEqual (Arg0, 0x00), LGreaterEqual (Arg0, 0x06)))
13081 {
13082 Store (0x00, Local0)
13083 }
13084
13085 If (Local0)
13086 {
13087 Store (Arg0, \SPS)
13088 \_SB.PCI0.LPC.EC.HKEY.MHKE (0x00)
13089 If (\_SB.PCI0.LPC.EC.KBLT)
13090 {
13091 \UCMS (0x0D)
13092 }
13093
13094 If (LEqual (Arg0, 0x01))
13095 {
13096 Store (\_SB.PCI0.LPC.EC.HFNI, \FNID)
13097 Store (0x00, \_SB.PCI0.LPC.EC.HFNI)
13098 Store (0x00, \_SB.PCI0.LPC.EC.HFSP)
13099 }
13100
13101 If (LEqual (Arg0, 0x03))
13102 {
13103 \VVPD (0x03)
13104 \TRAP ()
13105 Store (\_SB.PCI0.LPC.EC.AC._PSR (), \ACST)
13106 }
13107
13108 If (LEqual (Arg0, 0x04))
13109 {
13110 \_SB.SLPB._PSW (0x00)
13111 If (\SPEN)
13112 {
13113 \STEP (0x07)
13114 }
13115
13116 \TRAP ()
13117 }
13118
13119 If (LEqual (Arg0, 0x05))
13120 {
13121 \TRAP ()
13122 }
13123
13124 \_SB.PCI0.LPC.EC.BPTS (Arg0)
13125 If (LGreaterEqual (Arg0, 0x04))
13126 {
13127 Store (0x00, \_SB.PCI0.LPC.EC.HWLB)
13128 }
13129 Else
13130 {
13131 Store (0x01, \_SB.PCI0.LPC.EC.HWLB)
13132 }
13133
13134 If (LNotEqual (Arg0, 0x05))
13135 {
13136 Store (0x01, \_SB.PCI0.LPC.EC.HCMU)
13137 \_SB.GDCK.GPTS (Arg0)
13138 If (\W98F)
13139 {
13140 \CBRI ()
13141 }
13142 }
13143
13144 \_SB.PCI0.LPC.EC.HKEY.WGPS (Arg0)
13145 }
13146 }
13147
13148 Name (WAKI, Package (0x02)
13149 {
13150 0x00,
13151 0x00
13152 })
13153 Method (\_WAK, 1, NotSerialized) // _WAK: Wake
13154 {
13155 If (LOr (LEqual (Arg0, 0x00), LGreaterEqual (Arg0, 0x05)))
13156 {
13157 Return (WAKI)
13158 }
13159
13160 Store (0x00, \SPS)
13161 Store (0x00, \_SB.PCI0.LPC.EC.HCMU)
13162 Store (0x80, \_SB.PCI0.LPC.EC.HFSP)
13163 \_SB.PCI0.LPC.EC.EVNT (0x01)
13164 \_SB.PCI0.LPC.EC.HKEY.MHKE (0x01)
13165 \_SB.PCI0.LPC.EC.FNST ()
13166 \UCMS (0x0D)
13167 Store (0x00, \LIDB)
13168 \_SB.PCI0.IGBE.ABWA (0x00)
13169 If (LEqual (Arg0, 0x01))
13170 {
13171 Store (\_SB.PCI0.LPC.EC.HFNI, \FNID)
13172 }
13173
13174 If (LEqual (Arg0, 0x03))
13175 {
13176 THRM (0x00)
13177 If (LNot (\_SB.PCI0.LPC.EC.HKEY.DHC4))
13178 {
13179 If (\_SB.PCI0.LPC.EC.AC._PSR ())
13180 {
13181 Store (0x00, \C4AC)
13182 }
13183 Else
13184 {
13185 Store (0x01, \C4AC)
13186 }
13187 }
13188
13189 If (\OSC4)
13190 {
13191 Store (0x00, \_SB.PCI0.LPC.C4C3)
13192 Notify (\_PR.CPU0, 0x81)
13193 If (\MPEN)
13194 {
13195 Notify (\_PR.CPU1, 0x81)
13196 }
13197 }
13198 Else
13199 {
13200 If (\WNTF)
13201 {
13202 If (\_SB.PCI0.LPC.EC.HKEY.CKC4 (0x00))
13203 {
13204 Store (0x00, \_SB.PCI0.LPC.C4C3)
13205 }
13206 Else
13207 {
13208 Store (0x01, \_SB.PCI0.LPC.C4C3)
13209 }
13210 }
13211 }
13212
13213 If (LNotEqual (\ACST, \_SB.PCI0.LPC.EC.AC._PSR ()))
13214 {
13215 \_SB.PCI0.LPC.EC.ATMC ()
13216 }
13217
13218 If (LAnd (\WXPF, LGreaterEqual (\WSPV, 0x01)))
13219 {
13220 PPMS (0x02)
13221 }
13222
13223 If (LAnd (And (\CFGD, 0x01000000), LAnd (\WXPF, LLessEqual (
13224 \WSPV, 0x01))))
13225 {
13226 If (And (\CFGD, 0xF0))
13227 {
13228 PPMS (0x00)
13229 }
13230 }
13231
13232 If (\VIGD)
13233 {
13234 \_SB.PCI0.VID.GLIS (\_SB.LID._LID ())
13235 Store (\_SB.GDCK.GGID (), Local0)
13236 If (LOr (LEqual (Local0, 0x00), LEqual (Local0, 0x01)))
13237 {
13238 \_SB.PCI0.VID.GDCS (0x01)
13239 }
13240 Else
13241 {
13242 \_SB.PCI0.VID.GDCS (0x00)
13243 }
13244
13245 If (\WVIS)
13246 {
13247 \VBTD ()
13248 }
13249 }
13250 }
13251
13252 If (LEqual (Arg0, 0x04))
13253 {
13254 \NVSS (0x00)
13255 If (DTSE)
13256 {
13257 THRM (0x02)
13258 }
13259
13260 If (\W98F)
13261 {
13262 Notify (\_SB.SLPB, 0x02)
13263 }
13264
13265 If (\WMEF)
13266 {
13267 \_SB.PCI0.LPC.EC.BEEP (0x05)
13268 }
13269
13270 If (LNot (\W98F))
13271 {
13272 Store (0x00, \_SB.PCI0.LPC.EC.HSPA)
13273 }
13274
13275 If (LNot (\_SB.PCI0.LPC.EC.HKEY.DHC4))
13276 {
13277 If (\_SB.PCI0.LPC.EC.AC._PSR ())
13278 {
13279 Store (0x00, \C4AC)
13280 }
13281 Else
13282 {
13283 Store (0x01, \C4AC)
13284 }
13285 }
13286
13287 If (\OSC4)
13288 {
13289 Notify (\_PR.CPU0, 0x81)
13290 If (\MPEN)
13291 {
13292 Notify (\_PR.CPU1, 0x81)
13293 }
13294 }
13295 Else
13296 {
13297 If (\WNTF)
13298 {
13299 If (\_SB.PCI0.LPC.EC.HKEY.CKC4 (0x00))
13300 {
13301 Store (0x00, \_SB.PCI0.LPC.C4C3)
13302 }
13303 Else
13304 {
13305 Store (0x01, \_SB.PCI0.LPC.C4C3)
13306 }
13307 }
13308 }
13309
13310 If (\SPEN)
13311 {
13312 \STEP (0x08)
13313 }
13314
13315 \_SB.PCI0.LPC.EC.ATMC ()
13316 If (LAnd (And (\CFGD, 0x01000000), LAnd (\WXPF, LLessEqual (
13317 \WSPV, 0x01))))
13318 {
13319 If (And (\CFGD, 0xF0))
13320 {
13321 PPMS (0x00)
13322 }
13323 }
13324 }
13325
13326 If (XOr (\_SB.PCI0.EXP3.PDS, \_SB.PCI0.EXP3.XCPF))
13327 {
13328 If (\_SB.PCI0.EXP3.PDS)
13329 {
13330 Store (0x01, \_SB.PCI0.EXP3.XCPF)
13331 }
13332 Else
13333 {
13334 Store (0x00, \_SB.PCI0.EXP3.XCPF)
13335 }
13336
13337 Notify (\_SB.PCI0.EXP3, 0x00)
13338 }
13339
13340 \_SB.GDCK.GWAK (Arg0)
13341 If (LEqual (\_SB.PCI0.LPC.EC.GSID (), 0x03))
13342 {
13343 \_SB.PCI0.LPC.EC.BWAK (Arg0)
13344 }
13345
13346 \_SB.PCI0.LPC.EC.HKEY.WGWK (Arg0)
13347 Notify (\_TZ.THM0, 0x80)
13348 Notify (\_TZ.THM1, 0x80)
13349 \VSLD (\_SB.LID._LID ())
13350 If (\VIGD)
13351 {
13352 \_SB.PCI0.VID.GLIS (\_SB.LID._LID ())
13353 }
13354
13355 If (LAnd (\W98F, LNot (\WMEF)))
13356 {
13357 Notify (\_SB.PCI0.USB0, 0x00)
13358 Notify (\_SB.PCI0.USB1, 0x00)
13359 }
13360
13361 If (LLess (Arg0, 0x04))
13362 {
13363 If (And (\RRBF, 0x02))
13364 {
13365 ShiftLeft (Arg0, 0x08, Local0)
13366 Store (Or (0x2013, Local0), Local0)
13367 \_SB.PCI0.LPC.EC.HKEY.MHKQ (Local0)
13368 }
13369 }
13370
13371 If (LEqual (Arg0, 0x04))
13372 {
13373 Store (0x00, Local0)
13374 Store (\CSUM (0x00), Local1)
13375 If (LNotEqual (Local1, \CHKC))
13376 {
13377 Store (0x01, Local0)
13378 Store (Local1, \CHKC)
13379 }
13380
13381 Store (\CSUM (0x01), Local1)
13382 If (LNotEqual (Local1, \CHKE))
13383 {
13384 Store (0x01, Local0)
13385 Store (Local1, \CHKE)
13386 }
13387
13388 If (Local0)
13389 {
13390 Notify (\_SB, 0x00)
13391 }
13392 }
13393
13394 Store (Zero, \RRBF)
13395 Return (WAKI)
13396 }
13397
13398 Scope (\_SI)
13399 {
13400 Method (_SST, 1, NotSerialized) // _SST: System Status
13401 {
13402 If (LEqual (Arg0, 0x00))
13403 {
13404 \_SB.PCI0.LPC.EC.LED (0x00, 0x00)
13405 \_SB.PCI0.LPC.EC.LED (0x07, 0x00)
13406 }
13407
13408 If (LEqual (Arg0, 0x01))
13409 {
13410 If (LOr (\SPS, \WNTF))
13411 {
13412 \_SB.PCI0.LPC.EC.BEEP (0x05)
13413 }
13414
13415 \_SB.PCI0.LPC.EC.LED (0x00, 0x80)
13416 \_SB.PCI0.LPC.EC.LED (0x07, 0x00)
13417 }
13418
13419 If (LEqual (Arg0, 0x02))
13420 {
13421 \_SB.PCI0.LPC.EC.LED (0x00, 0x80)
13422 \_SB.PCI0.LPC.EC.LED (0x07, 0xC0)
13423 }
13424
13425 If (LEqual (Arg0, 0x03))
13426 {
13427 If (LGreater (\SPS, 0x03))
13428 {
13429 \_SB.PCI0.LPC.EC.BEEP (0x07)
13430 }
13431 Else
13432 {
13433 If (LEqual (\SPS, 0x03))
13434 {
13435 \_SB.PCI0.LPC.EC.BEEP (0x03)
13436 \_SB.GDCK.PEJ3 ()
13437 }
13438 Else
13439 {
13440 \_SB.PCI0.LPC.EC.BEEP (0x04)
13441 }
13442 }
13443
13444 If (LEqual (\SPS, 0x03)) {}
13445 Else
13446 {
13447 \_SB.PCI0.LPC.EC.LED (0x00, 0x80)
13448 }
13449
13450 \_SB.PCI0.LPC.EC.LED (0x07, 0xC0)
13451 }
13452
13453 If (LEqual (Arg0, 0x04))
13454 {
13455 \_SB.PCI0.LPC.EC.BEEP (0x03)
13456 \_SB.PCI0.LPC.EC.LED (0x07, 0xC0)
13457 }
13458 }
13459 }
13460
13461 Scope (\_GPE)
13462 {
13463 Method (_L18, 0, NotSerialized) // _Lxx: Level-Triggered GPE
13464 {
13465 Store (\_SB.PCI0.LPC.EC.HWAK, Local0)
13466 Store (Local0, \RRBF)
13467 Sleep (0x0A)
13468 If (And (Local0, 0x02)) {}
13469 If (And (Local0, 0x04))
13470 {
13471 If (\W98F)
13472 {
13473 Notify (\_SB.SLPB, 0x02)
13474 }
13475 Else
13476 {
13477 Notify (\_SB.LID, 0x02)
13478 }
13479 }
13480
13481 If (And (Local0, 0x10))
13482 {
13483 And (Local0, 0xF7, Local0)
13484 Notify (\_SB.SLPB, 0x02)
13485 }
13486
13487 If (And (Local0, 0x08))
13488 {
13489 \_SB.GDCK.GGPE ()
13490 Notify (\_SB.SLPB, 0x02)
13491 }
13492
13493 If (And (Local0, 0x10))
13494 {
13495 Notify (\_SB.SLPB, 0x02)
13496 }
13497
13498 If (And (Local0, 0x40)) {}
13499 If (And (Local0, 0x80))
13500 {
13501 Notify (\_SB.SLPB, 0x02)
13502 }
13503 }
13504
13505 Method (_L09, 0, NotSerialized) // _Lxx: Level-Triggered GPE
13506 {
13507 If (\_SB.PCI0.EXP0.PSP0)
13508 {
13509 Store (0x01, \_SB.PCI0.EXP0.PSP0)
13510 Notify (\_SB.PCI0.EXP0, 0x02)
13511 }
13512
13513 If (\_SB.PCI0.EXP1.PSP1)
13514 {
13515 Store (0x01, \_SB.PCI0.EXP1.PSP1)
13516 Notify (\_SB.PCI0.EXP1, 0x02)
13517 }
13518
13519 If (\_SB.PCI0.EXP2.PSP2)
13520 {
13521 Store (0x01, \_SB.PCI0.EXP2.PSP2)
13522 Notify (\_SB.PCI0.EXP2, 0x02)
13523 }
13524
13525 If (\_SB.PCI0.EXP3.PSP3)
13526 {
13527 Store (0x01, \_SB.PCI0.EXP3.PSP3)
13528 Store (0x01, \_SB.PCI0.EXP3.PMCS)
13529 Notify (\_SB.PCI0.EXP3, 0x02)
13530 }
13531
13532 If (\_SB.PCI0.EXP4.PSP4)
13533 {
13534 Store (0x01, \_SB.PCI0.EXP4.PSP4)
13535 Store (0x01, \_SB.PCI0.EXP4.PMS4)
13536 Notify (\_SB.PCI0.EXP4, 0x02)
13537 }
13538 }
13539
13540 Method (_L01, 0, NotSerialized) // _Lxx: Level-Triggered GPE
13541 {
13542 If (\_SB.PCI0.EXP3.HPCS)
13543 {
13544 Store (0x01, \_SB.PCI0.EXP3.HPCS)
13545 If (\_SB.PCI0.EXP3.ABP)
13546 {
13547 Store (0x01, \_SB.PCI0.EXP3.ABP)
13548 }
13549
13550 If (\_SB.PCI0.EXP3.PDC)
13551 {
13552 Store (0x01, \_SB.PCI0.EXP3.PDC)
13553 Store (0x00, \_SB.PCI0.EXP3.XCPF)
13554 Notify (\_SB.PCI0.EXP3, 0x00)
13555 If (\_SB.PCI0.EXP3.PDS)
13556 {
13557 Store (0x01, \_SB.PCI0.EXP3.XCPF)
13558 Sleep (0x64)
13559 Notify (\_SB.PCI0.EXP3.EXUP, 0x01)
13560 }
13561 }
13562 }
13563 }
13564
13565 Method (_L02, 0, NotSerialized) // _Lxx: Level-Triggered GPE
13566 {
13567 Store (0x00, \_SB.PCI0.LPC.SWGE)
13568 If (And (\SWGP, 0x01))
13569 {
13570 And (\SWGP, Not (0x01), \SWGP)
13571 If (\_SB.PCI0.LPC.EC.HKEY.DHKC)
13572 {
13573 If (DT02)
13574 {
13575 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6022)
13576 }
13577 }
13578
13579 Notify (\_TZ.THM1, 0x80)
13580 If (\SPEN)
13581 {
13582 If (\OSPX)
13583 {
13584 Notify (\_PR.CPU0, 0x80)
13585 If (\MPEN)
13586 {
13587 Notify (\_PR.CPU1, 0x80)
13588 }
13589 }
13590 Else
13591 {
13592 If (DT00)
13593 {
13594 \STEP (0x09)
13595 }
13596 Else
13597 {
13598 \STEP (0x0A)
13599 }
13600 }
13601 }
13602 }
13603
13604 If (LAnd (\CWUE, And (\SWGP, 0x02)))
13605 {
13606 And (\SWGP, Not (0x02), \SWGP)
13607 If (\OSC4)
13608 {
13609 Notify (\_PR.CPU0, 0x81)
13610 If (\MPEN)
13611 {
13612 Notify (\_PR.CPU1, 0x81)
13613 }
13614 }
13615 Else
13616 {
13617 If (\_SB.PCI0.LPC.EC.HKEY.CKC4 (0x00))
13618 {
13619 Store (0x00, \_SB.PCI0.LPC.C4C3)
13620 }
13621 Else
13622 {
13623 Store (0x01, \_SB.PCI0.LPC.C4C3)
13624 }
13625 }
13626 }
13627 }
13628
13629 Method (_L06, 0, NotSerialized) // _Lxx: Level-Triggered GPE
13630 {
13631 If (\_SB.PCI0.VID.GSSE)
13632 {
13633 \_SB.PCI0.VID.OPRN ()
13634 }
13635 Else
13636 {
13637 Store (0x01, \_SB.PCI0.LPC.SCIS)
13638 }
13639 }
13640 }
13641
13642 Scope (\_SB.PCI0.LPC.EC.HKEY)
13643 {
13644 Method (MHQT, 1, NotSerialized)
13645 {
13646 If (LAnd (\WNTF, \TATC))
13647 {
13648 If (LEqual (Arg0, 0x00))
13649 {
13650 Store (\TATC, Local0)
13651 Return (Local0)
13652 }
13653 Else
13654 {
13655 If (LEqual (Arg0, 0x01))
13656 {
13657 Store (\TDFA, Local0)
13658 Add (Local0, ShiftLeft (\TDTA, 0x04), Local0)
13659 Add (Local0, ShiftLeft (\TDFD, 0x08), Local0)
13660 Add (Local0, ShiftLeft (\TDTD, 0x0C), Local0)
13661 Add (Local0, ShiftLeft (\TNFT, 0x10), Local0)
13662 Add (Local0, ShiftLeft (\TNTT, 0x14), Local0)
13663 Return (Local0)
13664 }
13665 Else
13666 {
13667 If (LEqual (Arg0, 0x02))
13668 {
13669 Store (\TCFA, Local0)
13670 Add (Local0, ShiftLeft (\TCTA, 0x04), Local0)
13671 Add (Local0, ShiftLeft (\TCFD, 0x08), Local0)
13672 Add (Local0, ShiftLeft (\TCTD, 0x0C), Local0)
13673 Return (Local0)
13674 }
13675 Else
13676 {
13677 If (LEqual (Arg0, 0x03)) {}
13678 Else
13679 {
13680 If (LEqual (Arg0, 0x04))
13681 {
13682 Store (\TATW, Local0)
13683 Return (Local0)
13684 }
13685 Else
13686 {
13687 Noop
13688 }
13689 }
13690 }
13691 }
13692 }
13693 }
13694
13695 Return (0x00)
13696 }
13697
13698 Method (MHAT, 1, NotSerialized)
13699 {
13700 If (LAnd (\WNTF, \TATC))
13701 {
13702 Store (And (Arg0, 0xFF), Local0)
13703 If (LNot (ATMV (Local0)))
13704 {
13705 Return (0x00)
13706 }
13707
13708 Store (And (ShiftRight (Arg0, 0x08), 0xFF), Local0)
13709 If (LNot (ATMV (Local0)))
13710 {
13711 Return (0x00)
13712 }
13713
13714 Store (And (Arg0, 0x0F), \TCFA)
13715 Store (And (ShiftRight (Arg0, 0x04), 0x0F), \TCTA)
13716 Store (And (ShiftRight (Arg0, 0x08), 0x0F), \TCFD)
13717 Store (And (ShiftRight (Arg0, 0x0C), 0x0F), \TCTD)
13718 ATMC ()
13719 Return (0x01)
13720 }
13721
13722 Return (0x00)
13723 }
13724
13725 Method (MHGT, 1, NotSerialized)
13726 {
13727 If (LAnd (\WNTF, \TATC))
13728 {
13729 Store (ShiftLeft (\TSFT, 0x10), Local0)
13730 Add (Local0, ShiftLeft (\TSTT, 0x14), Local0)
13731 Store (And (Arg0, 0xFF), Local1)
13732 If (LNot (ATMV (Local1)))
13733 {
13734 Return (0xFFFF)
13735 }
13736
13737 Store (And (Arg0, 0x0F), Local1)
13738 If (LEqual (Local1, 0x00))
13739 {
13740 Add (Local0, \TIF0, Local0)
13741 }
13742 Else
13743 {
13744 If (LEqual (Local1, 0x01))
13745 {
13746 Add (Local0, \TIF1, Local0)
13747 }
13748 Else
13749 {
13750 If (LEqual (Local1, 0x02))
13751 {
13752 Add (Local0, \TIF2, Local0)
13753 }
13754 Else
13755 {
13756 Add (Local0, 0xFF, Local0)
13757 }
13758 }
13759 }
13760
13761 Store (And (ShiftRight (Arg0, 0x04), 0x0F), Local1)
13762 If (LEqual (Local1, 0x00))
13763 {
13764 Add (Local0, ShiftLeft (\TIT0, 0x08), Local0)
13765 }
13766 Else
13767 {
13768 If (LEqual (Local1, 0x01))
13769 {
13770 Add (Local0, ShiftLeft (\TIT1, 0x08), Local0)
13771 }
13772 Else
13773 {
13774 If (LEqual (Local1, 0x02))
13775 {
13776 Add (Local0, ShiftLeft (\TIT2, 0x08), Local0)
13777 }
13778 Else
13779 {
13780 Add (Local0, ShiftLeft (0xFF, 0x08), Local0)
13781 }
13782 }
13783 }
13784
13785 Return (Local0)
13786 }
13787
13788 Return (0x00)
13789 }
13790
13791 Method (ATMV, 1, NotSerialized)
13792 {
13793 Store (And (Arg0, 0x0F), Local1)
13794 Store (\TNFT, Local0)
13795 If (LGreaterEqual (Local1, Local0))
13796 {
13797 Return (0x00)
13798 }
13799
13800 Store (And (ShiftRight (Arg0, 0x04), 0x0F), Local2)
13801 Store (\TNTT, Local0)
13802 If (LGreaterEqual (Local2, Local0))
13803 {
13804 Return (0x00)
13805 }
13806
13807 If (\TATL)
13808 {
13809 If (XOr (Local1, Local2))
13810 {
13811 Return (0x00)
13812 }
13813 }
13814
13815 Return (0x01)
13816 }
13817 }
13818
13819 Scope (\_SB.PCI0.LPC.EC)
13820 {
13821 Method (ATMC, 0, NotSerialized)
13822 {
13823 If (LAnd (\WNTF, \TATC))
13824 {
13825 If (HPAC)
13826 {
13827 Store (\TCFA, Local0)
13828 Store (\TCTA, Local1)
13829 Store (Or (ShiftLeft (Local1, 0x04), Local0), ATMX)
13830 If (LEqual (\TCTA, 0x00))
13831 {
13832 Store (\TCR0, \TCRT)
13833 Store (\TPS0, \TPSV)
13834 }
13835 Else
13836 {
13837 If (LEqual (\TCTA, 0x01))
13838 {
13839 Store (\TCR1, \TCRT)
13840 Store (\TPS1, \TPSV)
13841 }
13842 Else
13843 {
13844 }
13845 }
13846 }
13847 Else
13848 {
13849 Store (\TCFD, Local0)
13850 Store (\TCTD, Local1)
13851 Store (Or (ShiftLeft (Local1, 0x04), Local0), ATMX)
13852 If (LEqual (\TCTD, 0x00))
13853 {
13854 Store (\TCR0, \TCRT)
13855 Store (\TPS0, \TPSV)
13856 }
13857 Else
13858 {
13859 If (LEqual (\TCTD, 0x01))
13860 {
13861 Store (\TCR1, \TCRT)
13862 Store (\TPS1, \TPSV)
13863 }
13864 Else
13865 {
13866 }
13867 }
13868 }
13869
13870 Notify (\_TZ.THM0, 0x81)
13871 THRM (0x01)
13872 }
13873 }
13874 }
13875
13876 Scope (\_TZ)
13877 {
13878 ThermalZone (THM0)
13879 {
13880 Method (_CRT, 0, NotSerialized) // _CRT: Critical Temperature
13881 {
13882 Return (C2K (0x7F))
13883 }
13884
13885 Method (_TMP, 0, NotSerialized) // _TMP: Temperature
13886 {
13887 If (\H8DR)
13888 {
13889 Store (\_SB.PCI0.LPC.EC.TMP0, Local0)
13890 Store (\_SB.PCI0.LPC.EC.HT12, Local1)
13891 Store (\_SB.PCI0.LPC.EC.HT13, Local2)
13892 }
13893 Else
13894 {
13895 Store (\RBEC (0x78), Local0)
13896 Store (And (\RBEC (0x20), 0x40), Local1)
13897 Store (And (\RBEC (0x20), 0x80), Local2)
13898 }
13899
13900 If (Local2)
13901 {
13902 Return (C2K (0x80))
13903 }
13904
13905 If (LNot (\_SB.PCI0.LPC.EC.HKEY.DHKC))
13906 {
13907 If (Local1)
13908 {
13909 Return (C2K (0x80))
13910 }
13911 }
13912
13913 Return (C2K (Local0))
13914 }
13915 }
13916
13917 ThermalZone (THM1)
13918 {
13919 Method (_PSL, 0, NotSerialized) // _PSL: Passive List
13920 {
13921 If (\MPEN)
13922 {
13923 Return (Package (0x02)
13924 {
13925 \_PR.CPU0,
13926 \_PR.CPU1
13927 })
13928 }
13929
13930 Return (Package (0x01)
13931 {
13932 \_PR.CPU0
13933 })
13934 }
13935
13936 Method (_CRT, 0, NotSerialized) // _CRT: Critical Temperature
13937 {
13938 Return (\TCRT)
13939 }
13940
13941 Method (_PSV, 0, NotSerialized) // _PSV: Passive Temperature
13942 {
13943 Return (\TPSV)
13944 }
13945
13946 Method (_TC1, 0, NotSerialized) // _TC1: Thermal Constant 1
13947 {
13948 Return (\TTC1)
13949 }
13950
13951 Method (_TC2, 0, NotSerialized) // _TC2: Thermal Constant 2
13952 {
13953 Return (\TTC2)
13954 }
13955
13956 Method (_TSP, 0, NotSerialized) // _TSP: Thermal Sampling Period
13957 {
13958 Return (\TTSP)
13959 }
13960
13961 Method (_TMP, 0, NotSerialized) // _TMP: Temperature
13962 {
13963 If (\DTSE)
13964 {
13965 THRM (0x02)
13966 Store (DTS1, Local0)
13967 If (LGreaterEqual (DTS0, DTS1))
13968 {
13969 Store (DTS0, Local0)
13970 }
13971
13972 If (LNot (\_SB.PCI0.LPC.EC.HKEY.DHKC))
13973 {
13974 If (DT02)
13975 {
13976 Add (\TCRT, 0x01, Local0)
13977 Return (Local0)
13978 }
13979 }
13980
13981 Return (C2K (Local0))
13982 }
13983 Else
13984 {
13985 Return (\_TZ.THM0._TMP ())
13986 }
13987 }
13988 }
13989
13990 Method (C2K, 1, NotSerialized)
13991 {
13992 Add (Multiply (Arg0, 0x0A), 0x0AAC, Local0)
13993 If (LLessEqual (Local0, 0x0AAC))
13994 {
13995 Store (0x0BB8, Local0)
13996 }
13997
13998 If (LGreater (Local0, 0x0FAC))
13999 {
14000 Store (0x0BB8, Local0)
14001 }
14002
14003 Return (Local0)
14004 }
14005 }
14006
14007 Scope (\_SB.PCI0.LPC.EC)
14008 {
14009 Method (_Q40, 0, NotSerialized) // _Qxx: EC Query
14010 {
14011 Notify (\_TZ.THM0, 0x80)
14012 If (\H8DR)
14013 {
14014 Store (\_SB.PCI0.LPC.EC.HT11, Local0)
14015 Store (\_SB.PCI0.LPC.EC.HT12, Local1)
14016 }
14017 Else
14018 {
14019 Store (And (\RBEC (0x20), 0x20), Local0)
14020 Store (And (\RBEC (0x20), 0x40), Local1)
14021 }
14022
14023 If (\_SB.PCI0.LPC.EC.HKEY.DHKC)
14024 {
14025 If (Local1)
14026 {
14027 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6022)
14028 }
14029 }
14030
14031 If (VIGD)
14032 {
14033 Noop
14034 }
14035 Else
14036 {
14037 \VTHR ()
14038 }
14039
14040 If (\SPEN)
14041 {
14042 If (\OSPX)
14043 {
14044 Notify (\_PR.CPU0, 0x80)
14045 If (\MPEN)
14046 {
14047 Notify (\_PR.CPU1, 0x80)
14048 }
14049 }
14050 Else
14051 {
14052 If (LOr (\_SB.PCI0.LPC.EC.HT00, \_SB.PCI0.LPC.EC.HT10))
14053 {
14054 \STEP (0x09)
14055 }
14056 Else
14057 {
14058 \STEP (0x0A)
14059 }
14060 }
14061 }
14062 }
14063 }
14064
14065 Name (GPIC, 0x00)
14066 Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
14067 {
14068 Store (Arg0, \GPIC)
14069 }
14070
14071 OperationRegion (SMI0, SystemIO, 0xB2, 0x01)
14072 Field (SMI0, ByteAcc, NoLock, Preserve)
14073 {
14074 APMC, 8
14075 }
14076
14077 Field (MNVS, AnyAcc, NoLock, Preserve)
14078 {
14079 Offset (0xFC0),
14080 CMD, 8,
14081 ERR, 32,
14082 PAR0, 32,
14083 PAR1, 32,
14084 PAR2, 32,
14085 PAR3, 32
14086 }
14087
14088 Mutex (MSMI, 0x07)
14089 Method (SMI, 5, NotSerialized)
14090 {
14091 Acquire (MSMI, 0xFFFF)
14092 Store (Arg0, CMD)
14093 Store (Arg1, PAR0)
14094 Store (Arg2, PAR1)
14095 Store (Arg3, PAR2)
14096 Store (Arg4, PAR3)
14097 Store (0xF5, APMC)
14098 While (LEqual (ERR, 0x01))
14099 {
14100 Sleep (0x64)
14101 Store (0xF5, APMC)
14102 }
14103
14104 Store (PAR0, Local0)
14105 Release (MSMI)
14106 Return (Local0)
14107 }
14108
14109 Method (RPCI, 1, NotSerialized)
14110 {
14111 Return (SMI (0x00, 0x00, Arg0, 0x00, 0x00))
14112 }
14113
14114 Method (WPCI, 2, NotSerialized)
14115 {
14116 SMI (0x00, 0x01, Arg0, Arg1, 0x00)
14117 }
14118
14119 Method (MPCI, 3, NotSerialized)
14120 {
14121 SMI (0x00, 0x02, Arg0, Arg1, Arg2)
14122 }
14123
14124 Method (RBEC, 1, NotSerialized)
14125 {
14126 Return (SMI (0x00, 0x03, Arg0, 0x00, 0x00))
14127 }
14128
14129 Method (WBEC, 2, NotSerialized)
14130 {
14131 SMI (0x00, 0x04, Arg0, Arg1, 0x00)
14132 }
14133
14134 Method (MBEC, 3, NotSerialized)
14135 {
14136 SMI (0x00, 0x05, Arg0, Arg1, Arg2)
14137 }
14138
14139 Method (RISA, 1, NotSerialized)
14140 {
14141 Return (SMI (0x00, 0x06, Arg0, 0x00, 0x00))
14142 }
14143
14144 Method (WISA, 2, NotSerialized)
14145 {
14146 SMI (0x00, 0x07, Arg0, Arg1, 0x00)
14147 }
14148
14149 Method (MISA, 3, NotSerialized)
14150 {
14151 SMI (0x00, 0x08, Arg0, Arg1, Arg2)
14152 }
14153
14154 Method (VEXP, 0, NotSerialized)
14155 {
14156 SMI (0x01, 0x00, 0x00, 0x00, 0x00)
14157 }
14158
14159 Method (VUPS, 1, NotSerialized)
14160 {
14161 SMI (0x01, 0x01, Arg0, 0x00, 0x00)
14162 }
14163
14164 Method (VSDS, 2, NotSerialized)
14165 {
14166 SMI (0x01, 0x02, Arg0, Arg1, 0x00)
14167 }
14168
14169 Method (VDDC, 0, NotSerialized)
14170 {
14171 SMI (0x01, 0x03, 0x00, 0x00, 0x00)
14172 }
14173
14174 Method (VVPD, 1, NotSerialized)
14175 {
14176 SMI (0x01, 0x04, Arg0, 0x00, 0x00)
14177 }
14178
14179 Method (VNRS, 1, NotSerialized)
14180 {
14181 SMI (0x01, 0x05, Arg0, 0x00, 0x00)
14182 }
14183
14184 Method (GLPW, 0, NotSerialized)
14185 {
14186 Return (SMI (0x01, 0x06, 0x00, 0x00, 0x00))
14187 }
14188
14189 Method (VSLD, 1, NotSerialized)
14190 {
14191 SMI (0x01, 0x07, Arg0, 0x00, 0x00)
14192 }
14193
14194 Method (VEVT, 1, NotSerialized)
14195 {
14196 Return (SMI (0x01, 0x08, Arg0, 0x00, 0x00))
14197 }
14198
14199 Method (VTHR, 0, NotSerialized)
14200 {
14201 Return (SMI (0x01, 0x09, 0x00, 0x00, 0x00))
14202 }
14203
14204 Method (VBRC, 1, NotSerialized)
14205 {
14206 SMI (0x01, 0x0A, Arg0, 0x00, 0x00)
14207 }
14208
14209 Method (VBRG, 0, NotSerialized)
14210 {
14211 Return (SMI (0x01, 0x0E, 0x00, 0x00, 0x00))
14212 }
14213
14214 Method (VBTD, 0, NotSerialized)
14215 {
14216 Return (SMI (0x01, 0x0F, 0x00, 0x00, 0x00))
14217 }
14218
14219 Method (UCMS, 1, NotSerialized)
14220 {
14221 Return (SMI (0x02, Arg0, 0x00, 0x00, 0x00))
14222 }
14223
14224 Method (BHDP, 2, NotSerialized)
14225 {
14226 Return (SMI (0x03, 0x00, Arg0, Arg1, 0x00))
14227 }
14228
14229 Method (DHDP, 1, NotSerialized)
14230 {
14231 Return (SMI (0x03, 0x01, Arg0, 0x00, 0x00))
14232 }
14233
14234 Method (STEP, 1, NotSerialized)
14235 {
14236 SMI (0x04, Arg0, 0x00, 0x00, 0x00)
14237 }
14238
14239 Method (TRAP, 0, NotSerialized)
14240 {
14241 SMI (0x05, 0x00, 0x00, 0x00, 0x00)
14242 }
14243
14244 Method (CBRI, 0, NotSerialized)
14245 {
14246 SMI (0x05, 0x01, 0x00, 0x00, 0x00)
14247 }
14248
14249 Method (ASSI, 1, NotSerialized)
14250 {
14251 SMI (0x05, 0x05, Arg0, 0x00, 0x00)
14252 }
14253
14254 Method (HSWA, 1, NotSerialized)
14255 {
14256 If (LLessEqual (Arg0, 0x01))
14257 {
14258 Return (SMI (0x05, 0x04, Arg0, 0x00, 0x00))
14259 }
14260 Else
14261 {
14262 Return (0x01)
14263 }
14264 }
14265
14266 Method (ACBS, 1, NotSerialized)
14267 {
14268 Return (SMI (0x05, 0x06, Arg0, 0x00, 0x00))
14269 }
14270
14271 Method (BLTH, 1, NotSerialized)
14272 {
14273 Return (SMI (0x06, Arg0, 0x00, 0x00, 0x00))
14274 }
14275
14276 Method (FISP, 0, NotSerialized)
14277 {
14278 SMI (0x07, 0x00, 0x00, 0x00, 0x00)
14279 }
14280
14281 Method (ATCC, 1, NotSerialized)
14282 {
14283 SMI (0x08, Arg0, 0x00, 0x00, 0x00)
14284 }
14285
14286 Method (WGSV, 1, NotSerialized)
14287 {
14288 Return (SMI (0x09, Arg0, 0x00, 0x00, 0x00))
14289 }
14290
14291 Method (THRM, 1, NotSerialized)
14292 {
14293 Return (SMI (0x0A, Arg0, 0x00, 0x00, 0x00))
14294 }
14295
14296 Method (PPMS, 1, NotSerialized)
14297 {
14298 Return (SMI (0x0B, Arg0, 0x00, 0x00, 0x00))
14299 }
14300
14301 Method (TPHY, 1, NotSerialized)
14302 {
14303 SMI (0x0C, Arg0, 0x00, 0x00, 0x00)
14304 }
14305
14306 Method (CSUM, 1, NotSerialized)
14307 {
14308 Return (SMI (0x0E, Arg0, 0x00, 0x00, 0x00))
14309 }
14310
14311 Method (NVSS, 1, NotSerialized)
14312 {
14313 Return (SMI (0x0F, Arg0, 0x00, 0x00, 0x00))
14314 }
14315
14316 Method (DPIO, 2, NotSerialized)
14317 {
14318 If (LNot (Arg0))
14319 {
14320 Return (0x00)
14321 }
14322
14323 If (LGreater (Arg0, 0xF0))
14324 {
14325 Return (0x00)
14326 }
14327
14328 If (LGreater (Arg0, 0xB4))
14329 {
14330 If (Arg1)
14331 {
14332 Return (0x02)
14333 }
14334 Else
14335 {
14336 Return (0x01)
14337 }
14338 }
14339
14340 If (LGreater (Arg0, 0x78))
14341 {
14342 Return (0x03)
14343 }
14344
14345 Return (0x04)
14346 }
14347
14348 Method (DUDM, 2, NotSerialized)
14349 {
14350 If (LNot (Arg1))
14351 {
14352 Return (0xFF)
14353 }
14354
14355 If (LGreater (Arg0, 0x5A))
14356 {
14357 Return (0x00)
14358 }
14359
14360 If (LGreater (Arg0, 0x3C))
14361 {
14362 Return (0x01)
14363 }
14364
14365 If (LGreater (Arg0, 0x2D))
14366 {
14367 Return (0x02)
14368 }
14369
14370 If (LGreater (Arg0, 0x1E))
14371 {
14372 Return (0x03)
14373 }
14374
14375 If (LGreater (Arg0, 0x14))
14376 {
14377 Return (0x04)
14378 }
14379
14380 Return (0x05)
14381 }
14382
14383 Method (DMDM, 2, NotSerialized)
14384 {
14385 If (Arg1)
14386 {
14387 Return (0x00)
14388 }
14389
14390 If (LNot (Arg0))
14391 {
14392 Return (0x00)
14393 }
14394
14395 If (LGreater (Arg0, 0x96))
14396 {
14397 Return (0x01)
14398 }
14399
14400 If (LGreater (Arg0, 0x78))
14401 {
14402 Return (0x02)
14403 }
14404
14405 Return (0x03)
14406 }
14407
14408 Method (UUDM, 2, NotSerialized)
14409 {
14410 If (LNot (And (Arg0, 0x04)))
14411 {
14412 Return (0x00)
14413 }
14414
14415 If (And (Arg1, 0x20))
14416 {
14417 Return (0x14)
14418 }
14419
14420 If (And (Arg1, 0x10))
14421 {
14422 Return (0x1E)
14423 }
14424
14425 If (And (Arg1, 0x08))
14426 {
14427 Return (0x2D)
14428 }
14429
14430 If (And (Arg1, 0x04))
14431 {
14432 Return (0x3C)
14433 }
14434
14435 If (And (Arg1, 0x02))
14436 {
14437 Return (0x5A)
14438 }
14439
14440 If (And (Arg1, 0x01))
14441 {
14442 Return (0x78)
14443 }
14444
14445 Return (0x00)
14446 }
14447
14448 Method (UMDM, 4, NotSerialized)
14449 {
14450 If (LNot (And (Arg0, 0x02)))
14451 {
14452 Return (0x00)
14453 }
14454
14455 If (And (Arg1, 0x04))
14456 {
14457 Return (Arg3)
14458 }
14459
14460 If (And (Arg1, 0x02))
14461 {
14462 If (LLessEqual (Arg3, 0x78))
14463 {
14464 Return (0xB4)
14465 }
14466 Else
14467 {
14468 Return (Arg3)
14469 }
14470 }
14471
14472 If (And (Arg2, 0x04))
14473 {
14474 If (LLessEqual (Arg3, 0xB4))
14475 {
14476 Return (0xF0)
14477 }
14478 Else
14479 {
14480 Return (Arg3)
14481 }
14482 }
14483
14484 Return (0x00)
14485 }
14486
14487 Method (UPIO, 4, NotSerialized)
14488 {
14489 If (LNot (And (Arg0, 0x02)))
14490 {
14491 If (LEqual (Arg2, 0x02))
14492 {
14493 Return (0xF0)
14494 }
14495 Else
14496 {
14497 Return (0x0384)
14498 }
14499 }
14500
14501 If (And (Arg1, 0x02))
14502 {
14503 Return (Arg3)
14504 }
14505
14506 If (And (Arg1, 0x01))
14507 {
14508 If (LLessEqual (Arg3, 0x78))
14509 {
14510 Return (0xB4)
14511 }
14512 Else
14513 {
14514 Return (Arg3)
14515 }
14516 }
14517
14518 If (LEqual (Arg2, 0x02))
14519 {
14520 Return (0xF0)
14521 }
14522 Else
14523 {
14524 Return (0x0384)
14525 }
14526 }
14527
14528 Method (FDMA, 2, NotSerialized)
14529 {
14530 If (LNotEqual (Arg1, 0xFF))
14531 {
14532 Return (Or (Arg1, 0x40))
14533 }
14534
14535 If (LGreaterEqual (Arg0, 0x03))
14536 {
14537 Return (Or (Subtract (Arg0, 0x02), 0x20))
14538 }
14539
14540 If (Arg0)
14541 {
14542 Return (0x12)
14543 }
14544
14545 Return (0x00)
14546 }
14547
14548 Method (FPIO, 1, NotSerialized)
14549 {
14550 If (LGreaterEqual (Arg0, 0x03))
14551 {
14552 Return (Or (Arg0, 0x08))
14553 }
14554
14555 If (LEqual (Arg0, 0x01))
14556 {
14557 Return (0x01)
14558 }
14559
14560 Return (0x00)
14561 }
14562
14563 Method (SCMP, 2, NotSerialized)
14564 {
14565 Store (SizeOf (Arg0), Local0)
14566 If (LNotEqual (Local0, SizeOf (Arg1)))
14567 {
14568 Return (One)
14569 }
14570
14571 Increment (Local0)
14572 Name (STR1, Buffer (Local0) {})
14573 Name (STR2, Buffer (Local0) {})
14574 Store (Arg0, STR1)
14575 Store (Arg1, STR2)
14576 Store (Zero, Local1)
14577 While (LLess (Local1, Local0))
14578 {
14579 Store (DerefOf (Index (STR1, Local1)), Local2)
14580 Store (DerefOf (Index (STR2, Local1)), Local3)
14581 If (LNotEqual (Local2, Local3))
14582 {
14583 Return (One)
14584 }
14585
14586 Increment (Local1)
14587 }
14588
14589 Return (Zero)
14590 }
14591
14592 Name (SPS, 0x00)
14593 Name (OSIF, 0x00)
14594 Name (W98F, 0x00)
14595 Name (WNTF, 0x00)
14596 Name (WMEF, 0x00)
14597 Name (WXPF, 0x00)
14598 Name (WVIS, 0x00)
14599 Name (WSPV, 0x00)
14600 Name (LNUX, 0x00)
14601 Name (H8DR, 0x00)
14602 Name (MEMX, 0x00)
14603 Name (ACST, 0x00)
14604 Name (FNID, 0x00)
14605 Name (RRBF, 0x00)
14606 Name (NBCF, 0x00)
14607 Scope (\)
14608 {
14609 Method (KOU2, 0, NotSerialized)
14610 {
14611 Stall (0x64)
14612 }
14613 }
14614
14615 Scope (\_SB.PCI0.VID.LCD0)
14616 {
14617 Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels
14618 {
14619 Store (0x01, \NBCF)
14620 Return (Package (0x12)
14621 {
14622 0x64,
14623 0x64,
14624 0x14,
14625 0x19,
14626 0x1E,
14627 0x23,
14628 0x28,
14629 0x2D,
14630 0x32,
14631 0x37,
14632 0x3C,
14633 0x41,
14634 0x46,
14635 0x4B,
14636 0x50,
14637 0x55,
14638 0x5A,
14639 0x64
14640 })
14641 }
14642
14643 Name (BCLP, Package (0x10)
14644 {
14645 0x14,
14646 0x19,
14647 0x1E,
14648 0x23,
14649 0x28,
14650 0x2D,
14651 0x32,
14652 0x37,
14653 0x3C,
14654 0x41,
14655 0x46,
14656 0x4B,
14657 0x50,
14658 0x55,
14659 0x5A,
14660 0x64
14661 })
14662 Name (BCLL, Package (0x10)
14663 {
14664 0x00,
14665 0x01,
14666 0x02,
14667 0x03,
14668 0x04,
14669 0x05,
14670 0x06,
14671 0x07,
14672 0x08,
14673 0x09,
14674 0x0A,
14675 0x0B,
14676 0x0C,
14677 0x0D,
14678 0x0E,
14679 0x0F
14680 })
14681 Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method
14682 {
14683 Store (Match (BCLP, MEQ, Arg0, MTR, 0x00, 0x00), Local0)
14684 If (LNotEqual (Local0, Ones))
14685 {
14686 Store (DerefOf (Index (BCLL, Local0)), \BRLV)
14687 \_SB.PCI0.LPC.EC.BRNS ()
14688 \UCMS (0x16)
14689 }
14690 }
14691
14692 Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current
14693 {
14694 Store (\BRLV, Local0)
14695 If (LLessEqual (Local0, 0x0F))
14696 {
14697 Return (DerefOf (Index (BCLP, Local0)))
14698 }
14699 Else
14700 {
14701 Return (Zero)
14702 }
14703 }
14704 }
14705
14706 Scope (\_SB.PCI0.AGP.VID.LCD0)
14707 {
14708 Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels
14709 {
14710 Store (0x01, NBCF)
14711 Return (Package (0x12)
14712 {
14713 0x64,
14714 0x64,
14715 0x14,
14716 0x19,
14717 0x1E,
14718 0x23,
14719 0x28,
14720 0x2D,
14721 0x32,
14722 0x37,
14723 0x3C,
14724 0x41,
14725 0x46,
14726 0x4B,
14727 0x50,
14728 0x55,
14729 0x5A,
14730 0x64
14731 })
14732 }
14733
14734 Name (BCLP, Package (0x10)
14735 {
14736 0x14,
14737 0x19,
14738 0x1E,
14739 0x23,
14740 0x28,
14741 0x2D,
14742 0x32,
14743 0x37,
14744 0x3C,
14745 0x41,
14746 0x46,
14747 0x4B,
14748 0x50,
14749 0x55,
14750 0x5A,
14751 0x64
14752 })
14753 Name (BCLL, Package (0x10)
14754 {
14755 0x00,
14756 0x01,
14757 0x02,
14758 0x03,
14759 0x04,
14760 0x05,
14761 0x06,
14762 0x07,
14763 0x08,
14764 0x09,
14765 0x0A,
14766 0x0B,
14767 0x0C,
14768 0x0D,
14769 0x0E,
14770 0x0F
14771 })
14772 Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method
14773 {
14774 Store (Match (BCLP, MEQ, Arg0, MTR, 0x00, 0x00), Local0)
14775 If (LNotEqual (Local0, Ones))
14776 {
14777 Store (DerefOf (Index (BCLL, Local0)), Local1)
14778 \VBRC (Local1)
14779 }
14780 }
14781
14782 Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current
14783 {
14784 Store (\VBRG (), Local0)
14785 If (LLessEqual (Local0, 0x0F))
14786 {
14787 Return (DerefOf (Index (BCLP, Local0)))
14788 }
14789 Else
14790 {
14791 Return (Zero)
14792 }
14793 }
14794 }
14795
14796 Scope (\_PR.CPU0)
14797 {
14798 Name (_TPC, 0x00) // _TPC: Throttling Present Capabilities
14799 Method (_PTC, 0, NotSerialized) // _PTC: Processor Throttling Control
14800 {
14801 If (And (PDC0, 0x04))
14802 {
14803 Return (Package (0x02)
14804 {
14805 ResourceTemplate ()
14806 {
14807 Register (FFixedHW,
14808 0x00, // Bit Width
14809 0x00, // Bit Offset
14810 0x0000000000000000, // Address
14811 ,)
14812 },
14813
14814 ResourceTemplate ()
14815 {
14816 Register (FFixedHW,
14817 0x00, // Bit Width
14818 0x00, // Bit Offset
14819 0x0000000000000000, // Address
14820 ,)
14821 }
14822 })
14823 }
14824
14825 Return (Package (0x02)
14826 {
14827 ResourceTemplate ()
14828 {
14829 Register (SystemIO,
14830 0x04, // Bit Width
14831 0x01, // Bit Offset
14832 0x0000000000001010, // Address
14833 ,)
14834 },
14835
14836 ResourceTemplate ()
14837 {
14838 Register (SystemIO,
14839 0x04, // Bit Width
14840 0x01, // Bit Offset
14841 0x0000000000001010, // Address
14842 ,)
14843 }
14844 })
14845 }
14846
14847 Name (TSSI, Package (0x08)
14848 {
14849 Package (0x05)
14850 {
14851 0x64,
14852 0x03E8,
14853 0x00,
14854 0x00,
14855 0x00
14856 },
14857
14858 Package (0x05)
14859 {
14860 0x58,
14861 0x036B,
14862 0x00,
14863 0x0F,
14864 0x00
14865 },
14866
14867 Package (0x05)
14868 {
14869 0x4B,
14870 0x02EE,
14871 0x00,
14872 0x0E,
14873 0x00
14874 },
14875
14876 Package (0x05)
14877 {
14878 0x3F,
14879 0x0271,
14880 0x00,
14881 0x0D,
14882 0x00
14883 },
14884
14885 Package (0x05)
14886 {
14887 0x32,
14888 0x01F4,
14889 0x00,
14890 0x0C,
14891 0x00
14892 },
14893
14894 Package (0x05)
14895 {
14896 0x26,
14897 0x0177,
14898 0x00,
14899 0x0B,
14900 0x00
14901 },
14902
14903 Package (0x05)
14904 {
14905 0x19,
14906 0xFA,
14907 0x00,
14908 0x0A,
14909 0x00
14910 },
14911
14912 Package (0x05)
14913 {
14914 0x0D,
14915 0x7D,
14916 0x00,
14917 0x09,
14918 0x00
14919 }
14920 })
14921 Name (TSSM, Package (0x08)
14922 {
14923 Package (0x05)
14924 {
14925 0x64,
14926 0x03E8,
14927 0x00,
14928 0x00,
14929 0x00
14930 },
14931
14932 Package (0x05)
14933 {
14934 0x58,
14935 0x036B,
14936 0x00,
14937 0x1E,
14938 0x00
14939 },
14940
14941 Package (0x05)
14942 {
14943 0x4B,
14944 0x02EE,
14945 0x00,
14946 0x1C,
14947 0x00
14948 },
14949
14950 Package (0x05)
14951 {
14952 0x3F,
14953 0x0271,
14954 0x00,
14955 0x1A,
14956 0x00
14957 },
14958
14959 Package (0x05)
14960 {
14961 0x32,
14962 0x01F4,
14963 0x00,
14964 0x18,
14965 0x00
14966 },
14967
14968 Package (0x05)
14969 {
14970 0x26,
14971 0x0177,
14972 0x00,
14973 0x16,
14974 0x00
14975 },
14976
14977 Package (0x05)
14978 {
14979 0x19,
14980 0xFA,
14981 0x00,
14982 0x14,
14983 0x00
14984 },
14985
14986 Package (0x05)
14987 {
14988 0x0D,
14989 0x7D,
14990 0x00,
14991 0x12,
14992 0x00
14993 }
14994 })
14995 Name (TSSF, 0x00)
14996 Method (_TSS, 0, NotSerialized) // _TSS: Throttling Supported States
14997 {
14998 If (LAnd (LNot (TSSF), CondRefOf (_PSS)))
14999 {
15000 Store (_PSS, Local0)
15001 Store (SizeOf (Local0), Local1)
15002 Decrement (Local1)
15003 Store (DerefOf (Index (DerefOf (Index (Local0, Local1)), 0x01)),
15004 Local2)
15005 Store (0x00, Local3)
15006 While (LLess (Local3, SizeOf (TSSI)))
15007 {
15008 Store (Divide (Multiply (Local2, Subtract (0x08, Local3)), 0x08,
15009 ), Local4)
15010 Store (Local4, Index (DerefOf (Index (TSSI, Local3)), 0x01))
15011 Store (Local4, Index (DerefOf (Index (TSSM, Local3)), 0x01))
15012 Increment (Local3)
15013 }
15014
15015 Store (Ones, TSSF)
15016 }
15017
15018 If (And (PDC0, 0x04))
15019 {
15020 Return (TSSM)
15021 }
15022
15023 Return (TSSI)
15024 }
15025
15026 Method (_TSD, 0, NotSerialized) // _TSD: Throttling State Dependencies
15027 {
15028 If (LAnd (And (CFGD, 0x01000000), LNot (And (PDC0, 0x04
15029 ))))
15030 {
15031 Return (Package (0x01)
15032 {
15033 Package (0x05)
15034 {
15035 0x05,
15036 0x00,
15037 0x00,
15038 0xFD,
15039 0x02
15040 }
15041 })
15042 }
15043
15044 Return (Package (0x01)
15045 {
15046 Package (0x05)
15047 {
15048 0x05,
15049 0x00,
15050 0x00,
15051 0xFC,
15052 0x01
15053 }
15054 })
15055 }
15056 }
15057
15058 Scope (\_PR.CPU1)
15059 {
15060 Name (_TPC, 0x00) // _TPC: Throttling Present Capabilities
15061 Method (_PTC, 0, NotSerialized) // _PTC: Processor Throttling Control
15062 {
15063 Return (\_PR.CPU0._PTC ())
15064 }
15065
15066 Method (_TSS, 0, NotSerialized) // _TSS: Throttling Supported States
15067 {
15068 Return (\_PR.CPU0._TSS ())
15069 }
15070
15071 Method (_TSD, 0, NotSerialized) // _TSD: Throttling State Dependencies
15072 {
15073 If (LAnd (And (CFGD, 0x01000000), LNot (And (PDC1, 0x04
15074 ))))
15075 {
15076 Return (Package (0x01)
15077 {
15078 Package (0x05)
15079 {
15080 0x05,
15081 0x00,
15082 0x00,
15083 0xFD,
15084 0x02
15085 }
15086 })
15087 }
15088
15089 Return (Package (0x01)
15090 {
15091 Package (0x05)
15092 {
15093 0x05,
15094 0x00,
15095 0x01,
15096 0xFC,
15097 0x01
15098 }
15099 })
15100 }
15101 }
15102
15103 Scope (\)
15104 {
15105 Name (SSDT, Package (0x0C)
15106 {
15107 "CPU0IST ",
15108 0xBF6E1B32,
15109 0x00000282,
15110 "CPU1IST ",
15111 0xBF6E1A6A,
15112 0x000000C8,
15113 "CPU0CST ",
15114 0xBF6E1E39,
15115 0x0000085E,
15116 "CPU1CST ",
15117 0xBF6E1DB4,
15118 0x00000085
15119 })
15120 Name (CFGD, 0x113F69F7)
15121 Name (\PDC0, 0x80000000)
15122 Name (\PDC1, 0x80000000)
15123 Name (\SDTL, 0x00)
15124 }
15125
15126 Scope (\_PR.CPU0)
15127 {
15128 Name (HI0, 0x00)
15129 Name (HC0, 0x00)
15130 Method (_PDC, 1, NotSerialized) // _PDC: Processor Driver Capabilities
15131 {
15132 CreateDWordField (Arg0, 0x00, REVS)
15133 CreateDWordField (Arg0, 0x04, SIZE)
15134 Store (SizeOf (Arg0), Local0)
15135 Store (Subtract (Local0, 0x08), Local1)
15136 CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
15137 Name (STS0, Buffer (0x04)
15138 {
15139 0x00, 0x00, 0x00, 0x00
15140 })
15141 Concatenate (STS0, TEMP, Local2)
15142 _OSC (Buffer (0x10)
15143 {
15144 /* 0000 */ 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
15145 /* 0008 */ 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
15146 }, REVS, SIZE, Local2)
15147 }
15148
15149 Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities
15150 {
15151 CreateDWordField (Arg3, 0x00, STS0)
15152 CreateDWordField (Arg3, 0x04, CAP0)
15153 CreateDWordField (Arg0, 0x00, IID0)
15154 CreateDWordField (Arg0, 0x04, IID1)
15155 CreateDWordField (Arg0, 0x08, IID2)
15156 CreateDWordField (Arg0, 0x0C, IID3)
15157 Name (UID0, Buffer (0x10)
15158 {
15159 /* 0000 */ 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
15160 /* 0008 */ 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
15161 })
15162 CreateDWordField (UID0, 0x00, EID0)
15163 CreateDWordField (UID0, 0x04, EID1)
15164 CreateDWordField (UID0, 0x08, EID2)
15165 CreateDWordField (UID0, 0x0C, EID3)
15166 If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)),
15167 LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
15168 {
15169 Store (0x06, STS0)
15170 Return (Arg3)
15171 }
15172
15173 If (LNotEqual (Arg1, 0x01))
15174 {
15175 Store (0x0A, STS0)
15176 Return (Arg3)
15177 }
15178
15179 Or (And (PDC0, 0x7FFFFFFF), CAP0, PDC0)
15180 If (And (CFGD, 0x01))
15181 {
15182 If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (PDC0,
15183 0x09), 0x09)), LNot (And (SDTL, 0x01))))
15184 {
15185 Or (SDTL, 0x01, SDTL)
15186 OperationRegion (IST0, SystemMemory, DerefOf (Index (SSDT, 0x01)), DerefOf (Index (SSDT, 0x02
15187 )))
15188 Load (IST0, HI0)
15189 }
15190 }
15191
15192 If (And (CFGD, 0xF0))
15193 {
15194 If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC0, 0x18
15195 )), LNot (And (SDTL, 0x02))))
15196 {
15197 Or (SDTL, 0x02, SDTL)
15198 OperationRegion (CST0, SystemMemory, DerefOf (Index (SSDT, 0x07)), DerefOf (Index (SSDT, 0x08
15199 )))
15200 Load (CST0, HC0)
15201 }
15202 }
15203
15204 Return (Arg3)
15205 }
15206 }
15207
15208 Scope (\_PR.CPU1)
15209 {
15210 Name (HI1, 0x00)
15211 Name (HC1, 0x00)
15212 Method (_PDC, 1, NotSerialized) // _PDC: Processor Driver Capabilities
15213 {
15214 CreateDWordField (Arg0, 0x00, REVS)
15215 CreateDWordField (Arg0, 0x04, SIZE)
15216 Store (SizeOf (Arg0), Local0)
15217 Store (Subtract (Local0, 0x08), Local1)
15218 CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
15219 Name (STS1, Buffer (0x04)
15220 {
15221 0x00, 0x00, 0x00, 0x00
15222 })
15223 Concatenate (STS1, TEMP, Local2)
15224 _OSC (Buffer (0x10)
15225 {
15226 /* 0000 */ 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
15227 /* 0008 */ 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
15228 }, REVS, SIZE, Local2)
15229 }
15230
15231 Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities
15232 {
15233 CreateDWordField (Arg3, 0x00, STS1)
15234 CreateDWordField (Arg3, 0x04, CAP1)
15235 CreateDWordField (Arg0, 0x00, IID0)
15236 CreateDWordField (Arg0, 0x04, IID1)
15237 CreateDWordField (Arg0, 0x08, IID2)
15238 CreateDWordField (Arg0, 0x0C, IID3)
15239 Name (UID1, Buffer (0x10)
15240 {
15241 /* 0000 */ 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
15242 /* 0008 */ 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
15243 })
15244 CreateDWordField (UID1, 0x00, EID0)
15245 CreateDWordField (UID1, 0x04, EID1)
15246 CreateDWordField (UID1, 0x08, EID2)
15247 CreateDWordField (UID1, 0x0C, EID3)
15248 If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)),
15249 LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
15250 {
15251 Store (0x06, STS1)
15252 Return (Arg3)
15253 }
15254
15255 If (LNotEqual (Arg1, 0x01))
15256 {
15257 Store (0x0A, STS1)
15258 Return (Arg3)
15259 }
15260
15261 Or (And (PDC1, 0x7FFFFFFF), CAP1, PDC1)
15262 If (And (CFGD, 0x01))
15263 {
15264 If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (PDC1,
15265 0x09), 0x09)), LNot (And (SDTL, 0x10))))
15266 {
15267 Or (SDTL, 0x10, SDTL)
15268 OperationRegion (IST1, SystemMemory, DerefOf (Index (SSDT, 0x04)), DerefOf (Index (SSDT, 0x05
15269 )))
15270 Load (IST1, HI1)
15271 }
15272 }
15273
15274 If (And (CFGD, 0xF0))
15275 {
15276 If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC1, 0x18
15277 )), LNot (And (SDTL, 0x20))))
15278 {
15279 Or (SDTL, 0x20, SDTL)
15280 OperationRegion (CST1, SystemMemory, DerefOf (Index (SSDT, 0x0A)), DerefOf (Index (SSDT, 0x0B
15281 )))
15282 Load (CST1, HC1)
15283 }
15284 }
15285
15286 Return (Arg3)
15287 }
15288
15289 Method (_INI, 0, NotSerialized) // _INI: Initialize
15290 {
15291 If (\DTSE)
15292 {
15293 THRM (0x00)
15294 }
15295
15296 If (LAnd (\WXPF, LLessEqual (\WSPV, 0x01)))
15297 {
15298 PPMS (0x00)
15299 }
15300 }
15301 }
15302
15303 Scope (\_SB.PCI0.SATA)
15304 {
15305 Device (PRT0)
15306 {
15307 Name (DRE0, 0x00)
15308 Name (DIP0, 0x00)
15309 Name (HDTF, Buffer (0x0E)
15310 {
15311 /* 0000 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
15312 /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
15313 })
15314 CreateByteField (HDTF, 0x0D, HFLC)
15315 Name (ERTF, Buffer (0x15)
15316 {
15317 /* 0000 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
15318 /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x5F, 0x00,
15319 /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xEF
15320 })
15321 CreateByteField (ERTF, 0x0D, EFLC)
15322 Name (HPTF, Buffer (0x15)
15323 {
15324 /* 0000 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
15325 /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x10, 0x03,
15326 /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xEF
15327 })
15328 CreateByteField (HPTF, 0x0D, PFLC)
15329 Name (HXTF, Buffer (0x1C)
15330 {
15331 /* 0000 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
15332 /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x5F, 0x00,
15333 /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x10, 0x03, 0x00,
15334 /* 0018 */ 0x00, 0x00, 0xA0, 0xEF
15335 })
15336 CreateByteField (HXTF, 0x0D, XFLC)
15337 Name (_ADR, 0xFFFF) // _ADR: Address
15338 Method (_SDD, 1, NotSerialized) // _SDD: Set Device Data
15339 {
15340 Store (0x00, DRE0)
15341 Store (0x00, DIP0)
15342 If (LEqual (SizeOf (Arg0), 0x0200))
15343 {
15344 CreateWordField (Arg0, 0x9C, M078)
15345 CreateWordField (Arg0, 0xAC, M086)
15346 CreateWordField (Arg0, 0xEE, M119)
15347 CreateWordField (Arg0, 0x0128, M148)
15348 If (LEqual (And (M148, 0xC000), 0x4000))
15349 {
15350 If (And (M148, 0x04))
15351 {
15352 Store (0x01, DRE0)
15353 }
15354 }
15355
15356 If (And (M086, 0x8000))
15357 {
15358 If (And (M119, 0x01))
15359 {
15360 Store (0x01, DRE0)
15361 }
15362 }
15363
15364 If (And (M078, 0x08))
15365 {
15366 Store (0x01, DIP0)
15367 }
15368 }
15369 }
15370
15371 Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
15372 {
15373 If (\OSSS)
15374 {
15375 Store (0xE1, XFLC)
15376 Store (0xE1, EFLC)
15377 Store (0xE1, HFLC)
15378 Store (0xE1, PFLC)
15379 }
15380
15381 If (DRE0)
15382 {
15383 If (DIP0)
15384 {
15385 Return (HXTF)
15386 }
15387 Else
15388 {
15389 Return (ERTF)
15390 }
15391 }
15392
15393 If (DIP0)
15394 {
15395 Return (HPTF)
15396 }
15397
15398 Return (HDTF)
15399 }
15400 }
15401 }
15402 }
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.