Attachment 'acer-aspireone-zg5-acpidump.txt'
Download 1 /*
2 RSD PTR: OEM=INTEL, ACPI_Rev=2.0x (2)
3 XSDT=0x000000005f4fe120, length=36, cksum=45
4 */
5 /*
6 XSDT: Length=100, Revision=1, Checksum=183,
7 OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
8 Creator ID=, Creator Revision=0x1000013
9 Entries={ 0x000000005f4fc000, 0x000000005f4fd000, 0x000000005f4fb000, 0x000000005f4fa000, 0x000000005f4f9000, 0x000000005f4f8000, 0x000000005f4f1000, 0x000000005f4f0000 }
10 */
11 /*
12 FACP: Length=244, Revision=4, Checksum=255,
13 OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
14 Creator ID=MSFT, Creator Revision=0x1000013
15 FACS=0x5f488000, DSDT=0x5f4f2000
16 INT_MODEL=PIC
17 Preferred_PM_Profile=Unspecified (0)
18 SCI_INT=9
19 SMI_CMD=0xb2, ACPI_ENABLE=0xa0, ACPI_DISABLE=0xa1, S4BIOS_REQ=0x0
20 PSTATE_CNT=0x0
21 PM1a_EVT_BLK=0x400-0x403
22 PM1a_CNT_BLK=0x404-0x405
23 PM2_CNT_BLK=0x420-0x420
24 PM_TMR_BLK=0x408-0x40b
25 GPE0_BLK=0x428-0x42f
26 P_LVL2_LAT=101 us, P_LVL3_LAT=1001 us
27 FLUSH_SIZE=0, FLUSH_STRIDE=0
28 DUTY_OFFSET=1, DUTY_WIDTH=3
29 DAY_ALRM=13, MON_ALRM=0, CENTURY=0
30 IAPC_BOOT_ARCH={LEGACY_DEVICES,8042}
31 Flags={WBINVD,C1_SUPPORTED,SLEEP_BUTTON,S4_RTC_WAKE,RESET_REGISTER,PLATFORM_CLOCK}
32 RESET_REG=0xcf9:0[8] (IO), RESET_VALUE=0x6
33 X_FACS=0x000000005f488000, X_DSDT=0x000000005f4f2000
34 X_PM1a_EVT_BLK=0x00000000:0[0] (Memory)
35 X_PM1a_CNT_BLK=0x00000000:0[0] (Memory)
36 X_PM_TMR_BLK=0x00000000:0[0] (Memory)
37 */
38 /*
39 FACS: Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
40 Global_Lock=
41 Flags=
42 Version=1
43 */
44 /*
45 DSDT: Length=23813, Revision=1, Checksum=18,
46 OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
47 Creator ID=MSFT, Creator Revision=0x1000013
48 */
49 /*
50 SSDT: Length=1220, Revision=2, Checksum=203,
51 OEMID=PmRef, OEM Table ID=CpuPm, OEM Revision=0x3000,
52 Creator ID=INTL, Creator Revision=0x20051117
53 */
54 /*
55 HPET: Length=56, Revision=1, Checksum=180,
56 OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
57 Creator ID=MSFT, Creator Revision=0x1000013
58 HPET Number=0
59 ADDR=0xfed00000:0[0] (Memory) HW Rev=0x1
60 Comparators=2
61 Counter Size=1
62 Legacy IRQ routing capable={TRUE}
63 PCI Vendor ID=0x8086
64 Minimal Tick=128
65 Flags=0x00
66 */
67 /*
68 APIC: Length=104, Revision=2, Checksum=110,
69 OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
70 Creator ID=MSFT, Creator Revision=0x1000013
71 Local APIC ADDR=0xfee00000
72 Flags={PC-AT}
73
74 Type=Local APIC
75 ACPI CPU=1
76 Flags={ENABLED}
77 APIC ID=0
78
79 Type=Local APIC
80 ACPI CPU=2
81 Flags={ENABLED}
82 APIC ID=1
83
84 Type=IO APIC
85 APIC ID=4
86 INT BASE=0
87 ADDR=0x00000000fec00000
88
89 Type=INT Override
90 BUS=0
91 IRQ=0
92 INTR=2
93 Flags={Polarity=conforming, Trigger=conforming}
94
95 Type=INT Override
96 BUS=0
97 IRQ=9
98 INTR=9
99 Flags={Polarity=active-hi, Trigger=level}
100
101 Type=Local APIC NMI
102 ACPI CPU=1
103 LINT Pin=1
104 Flags={Polarity=active-hi, Trigger=edge}
105
106 Type=Local APIC NMI
107 ACPI CPU=2
108 LINT Pin=1
109 Flags={Polarity=active-hi, Trigger=edge}
110 */
111 /*
112 MCFG: Length=60, Revision=1, Checksum=220,
113 OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
114 Creator ID=MSFT, Creator Revision=0x1000013
115
116 Base Address=0x00000000e0000000
117 Segment Group=0x0000
118 Start Bus=0
119 End Bus=255
120 */
121 /*
122 ASF!: Length=165, Revision=32, Checksum=92,
123 OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
124 Creator ID=MSFT, Creator Revision=0x1000013
125 */
126 /*
127 SLIC: Length=384, Revision=1, Checksum=232,
128 OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
129 Creator ID=MSFT, Creator Revision=0x1000013
130 */
131 /*
132 BOOT: Length=40, Revision=1, Checksum=116,
133 OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
134 Creator ID=MSFT, Creator Revision=0x1000013
135 */
136 /*
137 * Intel ACPI Component Architecture
138 * AML/ASL+ Disassembler version 20160527-32
139 * Copyright (c) 2000 - 2016 Intel Corporation
140 *
141 * Disassembling to symbolic ASL+ operators
142 *
143 * Disassembly of /tmp/acpidump.6zPKsS/acpdump.din, Wed Dec 14 20:29:54 2016
144 *
145 * Original Table Header:
146 * Signature "DSDT"
147 * Length 0x000061A5 (24997)
148 * Revision 0x01 **** 32-bit table (V1), no 64-bit math support
149 * Checksum 0xB4
150 * OEM ID "INTEL "
151 * OEM Table ID "Napa "
152 * OEM Revision 0x00000001 (1)
153 * Compiler ID "MSFT"
154 * Compiler Version 0x01000013 (16777235)
155 */
156 DefinitionBlock ("", "DSDT", 1, "INTEL ", "Napa ", 0x00000001)
157 {
158 OperationRegion (PORT, SystemIO, 0x80, One)
159 Field (PORT, ByteAcc, NoLock, Preserve)
160 {
161 P80H, 8
162 }
163
164 OperationRegion (GPIO, SystemIO, 0x0500, 0x39)
165 Field (GPIO, ByteAcc, NoLock, Preserve)
166 {
167 Offset (0x2C),
168 Offset (0x2D),
169 , 1,
170 INV9, 1,
171 INVA, 1,
172 Offset (0x38),
173 , 1,
174 , 1,
175 CPEN, 1
176 }
177
178 OperationRegion (PMBA, SystemIO, 0x0400, 0x80)
179 Field (PMBA, ByteAcc, NoLock, Preserve)
180 {
181 Offset (0x28),
182 , 2,
183 SPST, 1,
184 Offset (0x29),
185 Offset (0x2A),
186 Offset (0x2B),
187 GP2B, 8,
188 Offset (0x42),
189 , 1,
190 GPEC, 1
191 }
192
193 OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000)
194 Field (RCRB, DWordAcc, Lock, Preserve)
195 {
196 Offset (0x1000),
197 Offset (0x3000),
198 Offset (0x3404),
199 HPAS, 2,
200 , 5,
201 HPAE, 1,
202 Offset (0x3418),
203 , 1,
204 PATD, 1,
205 SATD, 1,
206 SMBD, 1,
207 AZAD, 1,
208 A97D, 1,
209 Offset (0x341A),
210 RP1D, 1,
211 RP2D, 1,
212 RP3D, 1,
213 RP4D, 1
214 }
215
216 OperationRegion (MBOX, SystemMemory, 0x5F4BED90, 0x000000E8)
217 Field (MBOX, AnyAcc, NoLock, Preserve)
218 {
219 PCI1, 8,
220 PCI2, 8,
221 PCI3, 8,
222 PCI4, 8,
223 PCI5, 8,
224 PCI6, 8,
225 PCI7, 8,
226 PCI8, 8,
227 NLCK, 8,
228 ZIPE, 8,
229 COMA, 8,
230 CAIO, 8,
231 CAIP, 8,
232 CAMD, 8,
233 CADA, 8,
234 COMB, 8,
235 CBIO, 8,
236 CBIP, 8,
237 CBMD, 8,
238 CBDA, 8,
239 COMC, 8,
240 CCIO, 8,
241 CCIP, 8,
242 CCMD, 8,
243 CCDA, 8,
244 COMD, 8,
245 CDIO, 8,
246 CDIP, 8,
247 CDMD, 8,
248 CDDA, 8,
249 LPT1, 8,
250 L1IO, 8,
251 L1IP, 8,
252 L1MD, 8,
253 L1DA, 8,
254 LPT2, 8,
255 L2IO, 8,
256 L2IP, 8,
257 L2MD, 8,
258 L2DA, 8,
259 LPT3, 8,
260 L3IO, 8,
261 L3IP, 8,
262 L3MD, 8,
263 L3DA, 8,
264 FDDC, 8,
265 FDWP, 8,
266 HGMP, 8,
267 LGMP, 8,
268 MIDI, 8,
269 AZLA, 8,
270 AUDO, 8,
271 MODM, 8,
272 IDEC, 8,
273 PACT, 8,
274 SCFG, 8,
275 AIBT, 8,
276 AMOD, 8,
277 P0HP, 8,
278 P2HP, 8,
279 P0IL, 8,
280 P2IL, 8,
281 IDLY, 8,
282 PMTP, 8,
283 PMIO, 8,
284 PMBM, 8,
285 PMTM, 8,
286 PSTP, 8,
287 PSIO, 8,
288 PSBM, 8,
289 PSTM, 8,
290 SMTP, 8,
291 SMIO, 8,
292 SMBM, 8,
293 SMTM, 8,
294 SSTP, 8,
295 SSIO, 8,
296 SSBM, 8,
297 SSTM, 8,
298 IDE0, 8,
299 IDE1, 8,
300 IDE2, 8,
301 IDE3, 8,
302 IDE4, 8,
303 IDE5, 8,
304 IDE6, 8,
305 IDE7, 8,
306 PEGS, 8,
307 D2F1, 8,
308 IGMT, 8,
309 DTSZ, 8,
310 HIUB, 8,
311 LUBS, 8,
312 EDCG, 8,
313 SDFY, 8,
314 SDTC, 8,
315 SDRP, 8,
316 SDCL, 8,
317 SDRC, 8,
318 SDRE, 8,
319 FC2L, 8,
320 FC3L, 8,
321 FCS4, 8,
322 APIM, 8,
323 HPTS, 8,
324 HPTA, 8,
325 EMAS, 8,
326 MASF, 8,
327 ASFB, 8,
328 MBTX, 8,
329 XPRO, 8,
330 IDER, 8,
331 SOLE, 8,
332 EYLS, 8,
333 EYLH, 8,
334 TPMD, 8,
335 TPMO, 8,
336 TPMC, 8,
337 TPMM, 8,
338 TPCC, 8,
339 TPLC, 8,
340 TPLR, 32,
341 ISTC, 8,
342 TRML, 8,
343 TRON, 8,
344 NXMD, 8,
345 PCRR, 8,
346 C4EN, 8,
347 C43D, 8,
348 EMTT, 8,
349 PROH, 8,
350 DFSB, 8,
351 TUBM, 8,
352 TSTE, 8,
353 DAS3, 8,
354 WKPM, 8,
355 WKMD, 8,
356 WKS5, 8,
357 HOUR, 8,
358 MINS, 8,
359 SECS, 8,
360 DOFM, 8,
361 QKS4, 8,
362 POPU, 8,
363 POPD, 8,
364 NXFE, 8,
365 VTST, 8,
366 VTFE, 8,
367 S5FG, 8,
368 CSTS, 8,
369 ENCS, 8,
370 DEC4, 8,
371 HC4E, 8,
372 ENC6, 8,
373 CSTR, 8,
374 CMPE, 8,
375 DTSE, 8,
376 DTSC, 8,
377 QBOT, 8,
378 QEBT, 8,
379 PBOT, 8,
380 OSYS, 16,
381 PSW0, 8,
382 PSW1, 8,
383 D2DF, 8,
384 F12F, 8
385 }
386
387 OperationRegion (CMS1, SystemIO, 0x72, 0x02)
388 Field (CMS1, ByteAcc, NoLock, Preserve)
389 {
390 CMSI, 8,
391 CMSD, 8
392 }
393
394 Method (CMSW, 2, NotSerialized)
395 {
396 CMSI = Arg0
397 CMSD = Arg1
398 }
399
400 OperationRegion (IO_T, SystemIO, 0x0800, 0x10)
401 Field (IO_T, ByteAcc, NoLock, Preserve)
402 {
403 Offset (0x02),
404 Offset (0x04),
405 Offset (0x06),
406 Offset (0x08),
407 TRP0, 8,
408 Offset (0x0A),
409 Offset (0x0B),
410 Offset (0x0C),
411 Offset (0x0D),
412 Offset (0x0E),
413 Offset (0x0F),
414 Offset (0x10)
415 }
416
417 OperationRegion (IO_D, SystemIO, 0x0810, 0x08)
418 Field (IO_D, ByteAcc, NoLock, Preserve)
419 {
420 TRPD, 8
421 }
422
423 OperationRegion (NVST, SystemMemory, 0x5F4BEE78, 0x00000056)
424 Field (NVST, AnyAcc, Lock, Preserve)
425 {
426 SMIF, 8,
427 PRM0, 8,
428 PRM1, 8,
429 BRTL, 8,
430 TLST, 8,
431 IGDS, 8,
432 LCDA, 16,
433 CSTE, 16,
434 NSTE, 16,
435 CADL, 16,
436 PADL, 16,
437 LIDS, 8,
438 PWRS, 8,
439 BVAL, 32,
440 CMPF, 8,
441 CSTF, 8,
442 GTF0, 56,
443 GTF2, 56,
444 IDEM, 8,
445 DTS1, 8,
446 DTS2, 8,
447 DTSF, 8,
448 PPMF, 32,
449 DI00, 320
450 }
451
452 Scope (_PR)
453 {
454 Processor (CPU0, 0x01, 0x00000410, 0x06) {}
455 Processor (CPU1, 0x02, 0x00000410, 0x06) {}
456 }
457
458 Method (IHWM, 2, NotSerialized)
459 {
460 PRM0 = Arg0
461 DI00 = Arg1
462 APMC = 0xD1
463 Local0 = DI00 /* \DI00 */
464 Return (Local0)
465 }
466
467 OperationRegion (GSMI, SystemIO, 0xB2, 0x02)
468 Field (GSMI, ByteAcc, NoLock, Preserve)
469 {
470 APMC, 8,
471 APMD, 8
472 }
473
474 Name (ECON, Zero)
475 Name (CTYP, Zero)
476 Name (DSEN, One)
477 Name (PSTA, Zero)
478 Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep
479 {
480 If (Arg0 == 0x03)
481 {
482 P80H = 0x53
483 }
484
485 If (Arg0 == 0x04)
486 {
487 If (ECON)
488 {
489 \_SB.PCI0.LPC.EC0.FLS4 = One
490 }
491
492 P80H = 0x54
493 }
494
495 Return (Zero)
496 }
497
498 Method (_WAK, 1, NotSerialized) // _WAK: Wake
499 {
500 If (ECON)
501 {
502 \_SB.BAT1.UBIF ()
503 Notify (\_SB.BAT1, 0x80) // Status Change
504 Notify (\_SB.BAT1, 0x81) // Information Change
505 }
506
507 If (Arg0 == 0x03)
508 {
509 Notify (\_SB.PCI0.EXP1, Zero) // Bus Check
510 Notify (\_SB.PCI0.EXP4, Zero) // Bus Check
511 P80H = 0xE3
512 }
513
514 If (Arg0 == 0x04)
515 {
516 Notify (\_SB.PCI0.EXP1, Zero) // Bus Check
517 Notify (\_SB.PCI0.EXP4, Zero) // Bus Check
518 P80H = 0xE4
519 }
520
521 Return (Zero)
522 }
523
524 Name (_S0, Package (0x04) // _S0_: S0 System State
525 {
526 Zero,
527 Zero,
528 Zero,
529 Zero
530 })
531 If (DAS3 == One)
532 {
533 Name (_S3, Package (0x04) // _S3_: S3 System State
534 {
535 0x05,
536 0x05,
537 Zero,
538 Zero
539 })
540 }
541
542 Name (_S4, Package (0x04) // _S4_: S4 System State
543 {
544 0x06,
545 0x06,
546 Zero,
547 Zero
548 })
549 Name (_S5, Package (0x04) // _S5_: S5 System State
550 {
551 0x07,
552 0x07,
553 Zero,
554 Zero
555 })
556 Scope (_GPE)
557 {
558 Method (_L03, 0, NotSerialized) // _Lxx: Level-Triggered GPE
559 {
560 Notify (\_SB.PCI0.UHC1, 0x02) // Device Wake
561 }
562
563 Method (_L04, 0, NotSerialized) // _Lxx: Level-Triggered GPE
564 {
565 Notify (\_SB.PCI0.UHC2, 0x02) // Device Wake
566 }
567
568 Method (_L05, 0, NotSerialized) // _Lxx: Level-Triggered GPE
569 {
570 Notify (\_SB.PCI0.AZAL, 0x02) // Device Wake
571 Notify (\_SB.PCI0.MODM, 0x02) // Device Wake
572 }
573
574 Method (_L09, 0, NotSerialized) // _Lxx: Level-Triggered GPE
575 {
576 Notify (\_SB.PCI0.EXP1, 0x02) // Device Wake
577 Notify (\_SB.PCI0.EXP2, 0x02) // Device Wake
578 Notify (\_SB.PCI0.EXP3, 0x02) // Device Wake
579 Notify (\_SB.PCI0.EXP4, 0x02) // Device Wake
580 }
581
582 Method (_L0B, 0, NotSerialized) // _Lxx: Level-Triggered GPE
583 {
584 Notify (\_SB.PCI0.P32, 0x02) // Device Wake
585 }
586
587 Method (_L0C, 0, NotSerialized) // _Lxx: Level-Triggered GPE
588 {
589 Notify (\_SB.PCI0.UHC3, 0x02) // Device Wake
590 }
591
592 Method (_L0D, 0, NotSerialized) // _Lxx: Level-Triggered GPE
593 {
594 Notify (\_SB.PCI0.ECHI, 0x02) // Device Wake
595 }
596
597 Method (_L0E, 0, NotSerialized) // _Lxx: Level-Triggered GPE
598 {
599 Notify (\_SB.PCI0.UHC4, 0x02) // Device Wake
600 }
601
602 Method (_L19, 0, NotSerialized) // _Lxx: Level-Triggered GPE
603 {
604 Sleep (0x64)
605 If (\_SB.PCI0.EXP4.PDC4)
606 {
607 \_SB.PCI0.EXP4.PDC4 = One
608 \_SB.PCI0.EXP4.HPCS = One
609 If (\_SB.PCI0.EXP4.PDS4)
610 {
611 INV9 = Zero
612 APMD = 0x94
613 APMC = 0xB2
614 Sleep (0x64)
615 }
616 Else
617 {
618 INV9 = One
619 Sleep (0x64)
620 }
621
622 Notify (\_SB.PCI0.EXP4, Zero) // Bus Check
623 }
624 }
625
626 Method (_L1A, 0, NotSerialized) // _Lxx: Level-Triggered GPE
627 {
628 Sleep (0x64)
629 If (\_SB.PCI0.EXP1.PDC1)
630 {
631 \_SB.PCI0.EXP1.PDC1 = One
632 \_SB.PCI0.EXP1.HPCS = One
633 If (\_SB.PCI0.EXP1.PDS1)
634 {
635 INVA = Zero
636 APMD = 0x91
637 APMC = 0xB2
638 Sleep (0x64)
639 }
640 Else
641 {
642 INVA = One
643 Sleep (0x64)
644 }
645
646 Notify (\_SB.PCI0.EXP1, Zero) // Bus Check
647 }
648 }
649 }
650
651 Name (GPIC, Zero)
652 Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
653 {
654 GPIC = Arg0
655 }
656
657 Method (_INI, 0, NotSerialized) // _INI: Initialize
658 {
659 P80H = 0x12
660 If (CondRefOf (_OSI, Local0))
661 {
662 If (_OSI ("Linux"))
663 {
664 OSYS = 0x03E8
665 \_SB.PCI0.LPC.S4TM = 0x0A
666 \_SB.PCI0.EXP2.PXS2.LSMP = 0x43
667 \_SB.PCI0.EXP2.LL0S = One
668 \_SB.PCI0.EXP2.LLL1 = One
669 }
670 ElseIf (_OSI ("Windows 2006"))
671 {
672 OSYS = 0x07D6
673 \_SB.PCI0.LPC.S4TM = 0x06
674 \_SB.PCI0.EXP2.PXS2.LSMP = Zero
675 \_SB.PCI0.EXP2.LL0S = Zero
676 \_SB.PCI0.EXP2.LLL1 = Zero
677 }
678 Else
679 {
680 \_SB.PCI0.LPC.S4TM = 0x0A
681 \_SB.PCI0.EXP2.PXS2.LSMP = 0x43
682 \_SB.PCI0.EXP2.LL0S = One
683 \_SB.PCI0.EXP2.LLL1 = One
684 OSYS = 0x07D1
685 }
686 }
687 Else
688 {
689 \_SB.PCI0.LPC.S4TM = 0x0A
690 \_SB.PCI0.EXP2.PXS2.LSMP = 0x43
691 \_SB.PCI0.EXP2.LL0S = One
692 \_SB.PCI0.EXP2.LLL1 = One
693 OSYS = 0x07D0
694 }
695 }
696
697 Method (GETP, 1, Serialized)
698 {
699 If ((Arg0 & 0x09) == Zero)
700 {
701 Return (Ones)
702 }
703
704 If ((Arg0 & 0x09) == 0x08)
705 {
706 Return (0x0384)
707 }
708
709 Local0 = ((Arg0 & 0x0300) >> 0x08)
710 Local1 = ((Arg0 & 0x3000) >> 0x0C)
711 Return ((0x1E * (0x09 - (Local0 + Local1))))
712 }
713
714 Method (GDMA, 5, Serialized)
715 {
716 If (Arg0)
717 {
718 If (Arg1 && Arg4)
719 {
720 Return (0x14)
721 }
722
723 If (Arg2 && Arg4)
724 {
725 Return (((0x04 - Arg3) * 0x0F))
726 }
727
728 Return (((0x04 - Arg3) * 0x1E))
729 }
730
731 Return (Ones)
732 }
733
734 Method (GETT, 1, Serialized)
735 {
736 Return ((0x1E * (0x09 - (((Arg0 >> 0x02) & 0x03
737 ) + (Arg0 & 0x03)))))
738 }
739
740 Method (GETF, 3, Serialized)
741 {
742 Name (TMPF, Zero)
743 If (Arg0)
744 {
745 TMPF |= One
746 }
747
748 If (Arg2 & 0x02)
749 {
750 TMPF |= 0x02
751 }
752
753 If (Arg1)
754 {
755 TMPF |= 0x04
756 }
757
758 If (Arg2 & 0x20)
759 {
760 TMPF |= 0x08
761 }
762
763 If (Arg2 & 0x4000)
764 {
765 TMPF |= 0x10
766 }
767
768 Return (TMPF) /* \GETF.TMPF */
769 }
770
771 Method (SETP, 3, Serialized)
772 {
773 If (Arg0 > 0xF0)
774 {
775 Return (0x08)
776 }
777 Else
778 {
779 If (Arg1 & 0x02)
780 {
781 If ((Arg0 <= 0x78) && (Arg2 & 0x02))
782 {
783 Return (0x2301)
784 }
785
786 If ((Arg0 <= 0xB4) && (Arg2 & One))
787 {
788 Return (0x2101)
789 }
790 }
791
792 Return (0x1001)
793 }
794 }
795
796 Method (SDMA, 1, Serialized)
797 {
798 If (Arg0 <= 0x14)
799 {
800 Return (One)
801 }
802
803 If (Arg0 <= 0x1E)
804 {
805 Return (0x02)
806 }
807
808 If (Arg0 <= 0x2D)
809 {
810 Return (One)
811 }
812
813 If (Arg0 <= 0x3C)
814 {
815 Return (0x02)
816 }
817
818 If (Arg0 <= 0x5A)
819 {
820 Return (One)
821 }
822
823 Return (Zero)
824 }
825
826 Method (SETT, 3, Serialized)
827 {
828 If (Arg1 & 0x02)
829 {
830 If ((Arg0 <= 0x78) && (Arg2 & 0x02))
831 {
832 Return (0x0B)
833 }
834
835 If ((Arg0 <= 0xB4) && (Arg2 & One))
836 {
837 Return (0x09)
838 }
839 }
840
841 Return (0x04)
842 }
843
844 Scope (_SB)
845 {
846 Device (PWRB)
847 {
848 Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */) // _HID: Hardware ID
849 }
850
851 Device (LID0)
852 {
853 Name (_HID, EisaId ("PNP0C0D") /* Lid Device */) // _HID: Hardware ID
854 Method (_LID, 0, NotSerialized) // _LID: Lid Status
855 {
856 If (ECON)
857 {
858 If (^^PCI0.LPC.EC0.LID2 == Zero)
859 {
860 Return (One)
861 }
862 Else
863 {
864 Return (Zero)
865 }
866 }
867 Else
868 {
869 Return (One)
870 }
871 }
872 }
873
874 Device (SLPB)
875 {
876 Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */) // _HID: Hardware ID
877 }
878
879 Device (BAT1)
880 {
881 Name (CBTI, Zero)
882 Name (PBTI, Zero)
883 Name (BTIN, Zero)
884 Name (BTCH, Zero)
885 Name (BIFI, Zero)
886 Name (SEL0, Zero)
887 Name (BCRI, Zero)
888 Name (PBIF, Package (0x0D)
889 {
890 One,
891 0x1130,
892 0x1130,
893 One,
894 0x2B5C,
895 0x012C,
896 0x84,
897 0x20,
898 0x20,
899 "BAT1 ",
900 "11 ",
901 "11 ",
902 "11 "
903 })
904 Name (PBST, Package (0x04)
905 {
906 Zero,
907 Ones,
908 Ones,
909 0x2710
910 })
911 Name (ERRC, Zero)
912 Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID
913 Name (_UID, Zero) // _UID: Unique ID
914 Method (_STA, 0, NotSerialized) // _STA: Status
915 {
916 P80H = 0x11
917 If (BTIN)
918 {
919 Return (0x1F)
920 }
921 Else
922 {
923 Return (0x0F)
924 }
925 }
926
927 Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
928 {
929 P80H = 0x12
930 If (BIFI == Zero)
931 {
932 UBIF ()
933 BIFI = One
934 }
935
936 Return (PBIF) /* \_SB_.BAT1.PBIF */
937 }
938
939 Name (LFCC, 0x1130)
940 Method (UBIF, 0, NotSerialized)
941 {
942 If (ECON)
943 {
944 P80H = 0x13
945 Local0 = ^^PCI0.LPC.EC0.BTDC /* \_SB_.PCI0.LPC_.EC0_.BTDC */
946 Local1 = ^^PCI0.LPC.EC0.LFC2 /* \_SB_.PCI0.LPC_.EC0_.LFC2 */
947 Local2 = ^^PCI0.LPC.EC0.BTDV /* \_SB_.PCI0.LPC_.EC0_.BTDV */
948 Local3 = ^^PCI0.LPC.EC0.BTMD /* \_SB_.PCI0.LPC_.EC0_.BTMD */
949 Local4 = ^^PCI0.LPC.EC0.BTMN /* \_SB_.PCI0.LPC_.EC0_.BTMN */
950 Local5 = ^^PCI0.LPC.EC0.BTSN /* \_SB_.PCI0.LPC_.EC0_.BTSN */
951 Local6 = ^^PCI0.LPC.EC0.LION /* \_SB_.PCI0.LPC_.EC0_.LION */
952 PBIF [One] = Local0
953 PBIF [0x02] = Local1
954 PBIF [0x04] = Local2
955 LFCC = Local1
956 Local7 = (Local1 * 0x04)
957 Local7 /= 0x64
958 PBIF [0x06] = Local7
959 If (Local6)
960 {
961 PBIF [0x0B] = "NiMH"
962 }
963 Else
964 {
965 PBIF [0x0B] = "LION"
966 }
967
968 Local3 &= 0x0F
969 If (Local3 == One)
970 {
971 PBIF [0x09] = "UM08A31"
972 }
973 ElseIf (Local3 == 0x02)
974 {
975 PBIF [0x09] = "UM08A32"
976 }
977 ElseIf (Local3 == 0x03)
978 {
979 PBIF [0x09] = "UM08A51"
980 }
981 ElseIf (Local3 == 0x04)
982 {
983 PBIF [0x09] = "UM08A52"
984 }
985 ElseIf (Local3 == 0x05)
986 {
987 PBIF [0x09] = "UM08A71"
988 }
989 ElseIf (Local3 == 0x06)
990 {
991 PBIF [0x09] = "UM08A72"
992 }
993 ElseIf (Local3 == 0x07)
994 {
995 PBIF [0x09] = "UM08A73"
996 }
997 ElseIf (Local3 == 0x08)
998 {
999 PBIF [0x09] = "UM08A74"
1000 }
1001 ElseIf (Local3 == 0x09)
1002 {
1003 PBIF [0x09] = "UM08B51"
1004 }
1005 ElseIf (Local3 == 0x0A)
1006 {
1007 PBIF [0x09] = "UM08B71"
1008 }
1009 ElseIf (Local3 == 0x0B)
1010 {
1011 PBIF [0x09] = "UM08B72"
1012 }
1013 ElseIf (Local3 == 0x0C)
1014 {
1015 PBIF [0x09] = "UM08B73"
1016 }
1017 ElseIf (Local3 == 0x0D)
1018 {
1019 PBIF [0x09] = "UM08B74"
1020 }
1021 ElseIf (Local3 == 0x0E)
1022 {
1023 PBIF [0x09] = "UM08AC1"
1024 }
1025
1026 If (Local4 == 0x03)
1027 {
1028 PBIF [0x0C] = "SANYO"
1029 }
1030 ElseIf (Local4 == 0x04)
1031 {
1032 PBIF [0x0C] = "SONY"
1033 }
1034 ElseIf (Local4 == 0x05)
1035 {
1036 PBIF [0x0C] = "PANASONIC"
1037 }
1038 ElseIf (Local4 == 0x07)
1039 {
1040 PBIF [0x0C] = "SIMPLO"
1041 }
1042 ElseIf (Local4 == 0x08)
1043 {
1044 PBIF [0x0C] = "MOTOROLA"
1045 }
1046 ElseIf (Local4 == 0x09)
1047 {
1048 PBIF [0x0C] = "Celxpert"
1049 }
1050 Else
1051 {
1052 PBIF [0x0C] = "UNKNOWN"
1053 }
1054
1055 PBIF [0x0A] = ITOS (Local5)
1056 }
1057 }
1058
1059 Name (RCAP, Zero)
1060 Method (_BST, 0, NotSerialized) // _BST: Battery Status
1061 {
1062 P80H = 0x14
1063 If (BTIN == Zero)
1064 {
1065 PBST [Zero] = Zero
1066 PBST [One] = Ones
1067 PBST [0x02] = Ones
1068 PBST [0x03] = Ones
1069 Return (PBST) /* \_SB_.BAT1.PBST */
1070 }
1071
1072 If (ECON)
1073 {
1074 Local0 = ^^PCI0.LPC.EC0.MBTC /* \_SB_.PCI0.LPC_.EC0_.MBTC */
1075 Local1 = ^^PCI0.LPC.EC0.MBRM /* \_SB_.PCI0.LPC_.EC0_.MBRM */
1076 Local2 = ^^PCI0.LPC.EC0.MBVG /* \_SB_.PCI0.LPC_.EC0_.MBVG */
1077 Local3 = ^^PCI0.LPC.EC0.MCUR /* \_SB_.PCI0.LPC_.EC0_.MCUR */
1078 Local4 = ^^PCI0.LPC.EC0.BTST /* \_SB_.PCI0.LPC_.EC0_.BTST */
1079 Local5 = ^^PCI0.LPC.EC0.MBTF /* \_SB_.PCI0.LPC_.EC0_.MBTF */
1080 Local6 = ^^PCI0.LPC.EC0.ACDF /* \_SB_.PCI0.LPC_.EC0_.ACDF */
1081 If (Local6)
1082 {
1083 If (Local5 == One)
1084 {
1085 Local7 = Zero
1086 Local1 = LFCC /* \_SB_.BAT1.LFCC */
1087 }
1088 ElseIf (Local0 == One)
1089 {
1090 Local7 = 0x02
1091 }
1092 Else
1093 {
1094 Local7 = Zero
1095 }
1096 }
1097 ElseIf (Local4 && One)
1098 {
1099 Local7 = One
1100 }
1101 Else
1102 {
1103 Local7 = Zero
1104 }
1105
1106 Local4 &= 0x04
1107 If (Local4 == 0x04)
1108 {
1109 Local7 |= Local4
1110 }
1111
1112 PBST [Zero] = Local7
1113 If (!(Local1 & 0x8000))
1114 {
1115 PBST [0x02] = Local1
1116 }
1117
1118 If (!(Local2 & 0x8000))
1119 {
1120 PBST [0x03] = Local2
1121 }
1122
1123 If (Local3 && 0x8000)
1124 {
1125 If (Local3 != 0xFFFF)
1126 {
1127 Local3 = ~Local3
1128 Local3++
1129 Local3 &= 0xFFFF
1130 }
1131 }
1132
1133 PBST [One] = Local3
1134 }
1135
1136 Return (PBST) /* \_SB_.BAT1.PBST */
1137 }
1138
1139 Method (ITOS, 1, NotSerialized)
1140 {
1141 Local0 = ""
1142 Local1 = 0x04
1143 While (Local1)
1144 {
1145 Local1--
1146 Local4 = ((Arg0 >> (Local1 << 0x02)) & 0x0F)
1147 Local2 = DerefOf (CHAR [Local4])
1148 Concatenate (Local0, Local2, Local5)
1149 Local0 = Local5
1150 }
1151
1152 Return (Local0)
1153 }
1154
1155 Name (CHAR, Package (0x10)
1156 {
1157 "0",
1158 "1",
1159 "2",
1160 "3",
1161 "4",
1162 "5",
1163 "6",
1164 "7",
1165 "8",
1166 "9",
1167 "A",
1168 "B",
1169 "C",
1170 "D",
1171 "E",
1172 "F"
1173 })
1174 Method (BATS, 0, NotSerialized)
1175 {
1176 If (ECON)
1177 {
1178 P80H = 0x15
1179 Local0 = ^^PCI0.LPC.EC0.MBTS /* \_SB_.PCI0.LPC_.EC0_.MBTS */
1180 If (Local0 == One)
1181 {
1182 If (BTIN == Zero)
1183 {
1184 BTCH = One
1185 BIFI = Zero
1186 }
1187
1188 BTIN = One
1189 }
1190 Else
1191 {
1192 If (BTIN == One)
1193 {
1194 BTCH = One
1195 BIFI = Zero
1196 }
1197
1198 BTIN = Zero
1199 }
1200 }
1201 }
1202 }
1203
1204 Device (ACAD)
1205 {
1206 Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID
1207 Name (_PCL, Package (0x01) // _PCL: Power Consumer List
1208 {
1209 _SB
1210 })
1211 Name (ACST, Zero)
1212 Method (_PSR, 0, NotSerialized) // _PSR: Power Source
1213 {
1214 If (ECON)
1215 {
1216 P80H = 0x16
1217 ACST = ^^PCI0.LPC.EC0.ACDF /* \_SB_.PCI0.LPC_.EC0_.ACDF */
1218 }
1219 Else
1220 {
1221 ACST = One
1222 }
1223
1224 If (ACST)
1225 {
1226 Local0 = One
1227 ^^BAT1.BCRI = Zero
1228 }
1229 Else
1230 {
1231 Local0 = Zero
1232 }
1233
1234 Return (Local0)
1235 }
1236 }
1237
1238 Device (PCI0)
1239 {
1240 Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID
1241 Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID
1242 Name (_ADR, Zero) // _ADR: Address
1243 Method (_INI, 0, NotSerialized) // _INI: Initialize
1244 {
1245 P80H = 0x12
1246 If (CondRefOf (_OSI, Local0))
1247 {
1248 If (_OSI ("Linux"))
1249 {
1250 OSYS = 0x03E8
1251 ^LPC.S4TM = 0x0A
1252 ^EXP2.PXS2.LSMP = 0x43
1253 ^EXP2.LL0S = One
1254 ^EXP2.LLL1 = One
1255 }
1256 ElseIf (_OSI ("Windows 2006"))
1257 {
1258 OSYS = 0x07D6
1259 ^LPC.S4TM = 0x06
1260 ^EXP2.PXS2.LSMP = Zero
1261 ^EXP2.LL0S = Zero
1262 ^EXP2.LLL1 = Zero
1263 }
1264 Else
1265 {
1266 ^LPC.S4TM = 0x0A
1267 ^EXP2.PXS2.LSMP = 0x43
1268 ^EXP2.LL0S = One
1269 ^EXP2.LLL1 = One
1270 OSYS = 0x07D1
1271 }
1272 }
1273 Else
1274 {
1275 ^LPC.S4TM = 0x0A
1276 ^EXP2.PXS2.LSMP = 0x43
1277 ^EXP2.LL0S = One
1278 ^EXP2.LLL1 = One
1279 OSYS = 0x07D0
1280 }
1281 }
1282
1283 Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities
1284 {
1285 Local0 = Arg2
1286 Local1 = (Local0 * 0x04)
1287 Name (BUF1, Buffer (Local1) {})
1288 BUF1 = Arg3
1289 Local1 = Zero
1290 Local2 = Zero
1291 While (Local0)
1292 {
1293 Local2 = (Local1 * 0x04)
1294 CreateDWordField (BUF1, Local2, CAPB)
1295 If (Arg1)
1296 {
1297 If (Local1 == Zero)
1298 {
1299 CAPB &= 0xFFFFFFFC
1300 }
1301 }
1302 Else
1303 {
1304 }
1305
1306 Local1++
1307 Local0--
1308 }
1309
1310 Return (BUF1) /* \_SB_.PCI0._OSC.BUF1 */
1311 }
1312
1313 Name (_BBN, Zero) // _BBN: BIOS Bus Number
1314 OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
1315 Field (HBUS, DWordAcc, NoLock, Preserve)
1316 {
1317 Offset (0x50),
1318 , 4,
1319 PM0H, 2,
1320 Offset (0x51),
1321 PM1L, 2,
1322 , 2,
1323 PM1H, 2,
1324 Offset (0x52),
1325 PM2L, 2,
1326 , 2,
1327 PM2H, 2,
1328 Offset (0x53),
1329 PM3L, 2,
1330 , 2,
1331 PM3H, 2,
1332 Offset (0x54),
1333 PM4L, 2,
1334 , 2,
1335 PM4H, 2,
1336 Offset (0x55),
1337 PM5L, 2,
1338 , 2,
1339 PM5H, 2,
1340 Offset (0x56),
1341 PM6L, 2,
1342 , 2,
1343 PM6H, 2,
1344 Offset (0x57),
1345 , 7,
1346 HENA, 1,
1347 Offset (0x5C),
1348 , 3,
1349 TOUD, 5
1350 }
1351
1352 Name (BUF0, ResourceTemplate ()
1353 {
1354 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
1355 0x0000, // Granularity
1356 0x0000, // Range Minimum
1357 0x00FF, // Range Maximum
1358 0x0000, // Translation Offset
1359 0x0100, // Length
1360 0x00,, )
1361 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1362 0x00000000, // Granularity
1363 0x00000000, // Range Minimum
1364 0x00000CF7, // Range Maximum
1365 0x00000000, // Translation Offset
1366 0x00000CF8, // Length
1367 0x00,, , TypeStatic)
1368 IO (Decode16,
1369 0x0CF8, // Range Minimum
1370 0x0CF8, // Range Maximum
1371 0x01, // Alignment
1372 0x08, // Length
1373 )
1374 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1375 0x00000000, // Granularity
1376 0x00000D00, // Range Minimum
1377 0x0000FFFF, // Range Maximum
1378 0x00000000, // Translation Offset
1379 0x0000F300, // Length
1380 0x00,, , TypeStatic)
1381 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1382 0x00000000, // Granularity
1383 0x000A0000, // Range Minimum
1384 0x000BFFFF, // Range Maximum
1385 0x00000000, // Translation Offset
1386 0x00020000, // Length
1387 0x00,, , AddressRangeMemory, TypeStatic)
1388 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1389 0x00000000, // Granularity
1390 0x000C0000, // Range Minimum
1391 0x000C3FFF, // Range Maximum
1392 0x00000000, // Translation Offset
1393 0x00004000, // Length
1394 0x00,, _Y00, AddressRangeMemory, TypeStatic)
1395 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1396 0x00000000, // Granularity
1397 0x000C4000, // Range Minimum
1398 0x000C7FFF, // Range Maximum
1399 0x00000000, // Translation Offset
1400 0x00004000, // Length
1401 0x00,, _Y01, AddressRangeMemory, TypeStatic)
1402 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1403 0x00000000, // Granularity
1404 0x000C8000, // Range Minimum
1405 0x000CBFFF, // Range Maximum
1406 0x00000000, // Translation Offset
1407 0x00004000, // Length
1408 0x00,, _Y02, AddressRangeMemory, TypeStatic)
1409 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1410 0x00000000, // Granularity
1411 0x000CC000, // Range Minimum
1412 0x000CFFFF, // Range Maximum
1413 0x00000000, // Translation Offset
1414 0x00004000, // Length
1415 0x00,, _Y03, AddressRangeMemory, TypeStatic)
1416 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1417 0x00000000, // Granularity
1418 0x000D0000, // Range Minimum
1419 0x000D3FFF, // Range Maximum
1420 0x00000000, // Translation Offset
1421 0x00004000, // Length
1422 0x00,, _Y04, AddressRangeMemory, TypeStatic)
1423 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1424 0x00000000, // Granularity
1425 0x000D4000, // Range Minimum
1426 0x000D7FFF, // Range Maximum
1427 0x00000000, // Translation Offset
1428 0x00004000, // Length
1429 0x00,, _Y05, AddressRangeMemory, TypeStatic)
1430 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1431 0x00000000, // Granularity
1432 0x000D8000, // Range Minimum
1433 0x000DBFFF, // Range Maximum
1434 0x00000000, // Translation Offset
1435 0x00004000, // Length
1436 0x00,, _Y06, AddressRangeMemory, TypeStatic)
1437 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1438 0x00000000, // Granularity
1439 0x000DC000, // Range Minimum
1440 0x000DFFFF, // Range Maximum
1441 0x00000000, // Translation Offset
1442 0x00004000, // Length
1443 0x00,, _Y07, AddressRangeMemory, TypeStatic)
1444 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1445 0x00000000, // Granularity
1446 0x000E0000, // Range Minimum
1447 0x000E3FFF, // Range Maximum
1448 0x00000000, // Translation Offset
1449 0x00004000, // Length
1450 0x00,, _Y08, AddressRangeMemory, TypeStatic)
1451 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1452 0x00000000, // Granularity
1453 0x000E4000, // Range Minimum
1454 0x000E7FFF, // Range Maximum
1455 0x00000000, // Translation Offset
1456 0x00004000, // Length
1457 0x00,, _Y09, AddressRangeMemory, TypeStatic)
1458 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1459 0x00000000, // Granularity
1460 0x000E8000, // Range Minimum
1461 0x000EBFFF, // Range Maximum
1462 0x00000000, // Translation Offset
1463 0x00004000, // Length
1464 0x00,, _Y0A, AddressRangeMemory, TypeStatic)
1465 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1466 0x00000000, // Granularity
1467 0x000EC000, // Range Minimum
1468 0x000EFFFF, // Range Maximum
1469 0x00000000, // Translation Offset
1470 0x00004000, // Length
1471 0x00,, _Y0B, AddressRangeMemory, TypeStatic)
1472 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1473 0x00000000, // Granularity
1474 0x000F0000, // Range Minimum
1475 0x000FFFFF, // Range Maximum
1476 0x00000000, // Translation Offset
1477 0x00010000, // Length
1478 0x00,, _Y0C, AddressRangeMemory, TypeStatic)
1479 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1480 0x00000000, // Granularity
1481 0x00000000, // Range Minimum
1482 0xFEBFFFFF, // Range Maximum
1483 0x00000000, // Translation Offset
1484 0x00000000, // Length
1485 0x00,, _Y0D, AddressRangeMemory, TypeStatic)
1486 })
1487 Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
1488 {
1489 If (PM1L)
1490 {
1491 CreateDWordField (BUF0, \_SB.PCI0._Y00._LEN, C0LN) // _LEN: Length
1492 C0LN = Zero
1493 }
1494
1495 If (PM1L == One)
1496 {
1497 CreateBitField (BUF0, \_SB.PCI0._Y00._RW, C0RW) // _RW_: Read-Write Status
1498 C0RW = Zero
1499 }
1500
1501 If (PM1H)
1502 {
1503 CreateDWordField (BUF0, \_SB.PCI0._Y01._LEN, C4LN) // _LEN: Length
1504 C4LN = Zero
1505 }
1506
1507 If (PM1H == One)
1508 {
1509 CreateBitField (BUF0, \_SB.PCI0._Y01._RW, C4RW) // _RW_: Read-Write Status
1510 C4RW = Zero
1511 }
1512
1513 If (PM2L)
1514 {
1515 CreateDWordField (BUF0, \_SB.PCI0._Y02._LEN, C8LN) // _LEN: Length
1516 C8LN = Zero
1517 }
1518
1519 If (PM2L == One)
1520 {
1521 CreateBitField (BUF0, \_SB.PCI0._Y02._RW, C8RW) // _RW_: Read-Write Status
1522 C8RW = Zero
1523 }
1524
1525 If (PM2H)
1526 {
1527 CreateDWordField (BUF0, \_SB.PCI0._Y03._LEN, CCLN) // _LEN: Length
1528 CCLN = Zero
1529 }
1530
1531 If (PM2H == One)
1532 {
1533 CreateBitField (BUF0, \_SB.PCI0._Y03._RW, CCRW) // _RW_: Read-Write Status
1534 CCRW = Zero
1535 }
1536
1537 If (PM3L)
1538 {
1539 CreateDWordField (BUF0, \_SB.PCI0._Y04._LEN, D0LN) // _LEN: Length
1540 D0LN = Zero
1541 }
1542
1543 If (PM3L == One)
1544 {
1545 CreateBitField (BUF0, \_SB.PCI0._Y04._RW, D0RW) // _RW_: Read-Write Status
1546 D0RW = Zero
1547 }
1548
1549 If (PM3H)
1550 {
1551 CreateDWordField (BUF0, \_SB.PCI0._Y05._LEN, D4LN) // _LEN: Length
1552 D4LN = Zero
1553 }
1554
1555 If (PM3H == One)
1556 {
1557 CreateBitField (BUF0, \_SB.PCI0._Y05._RW, D4RW) // _RW_: Read-Write Status
1558 D4RW = Zero
1559 }
1560
1561 If (PM4L)
1562 {
1563 CreateDWordField (BUF0, \_SB.PCI0._Y06._LEN, D8LN) // _LEN: Length
1564 D8LN = Zero
1565 }
1566
1567 If (PM4L == One)
1568 {
1569 CreateBitField (BUF0, \_SB.PCI0._Y06._RW, D8RW) // _RW_: Read-Write Status
1570 D8RW = Zero
1571 }
1572
1573 If (PM4H)
1574 {
1575 CreateDWordField (BUF0, \_SB.PCI0._Y07._LEN, DCLN) // _LEN: Length
1576 DCLN = Zero
1577 }
1578
1579 If (PM4H == One)
1580 {
1581 CreateBitField (BUF0, \_SB.PCI0._Y07._RW, DCRW) // _RW_: Read-Write Status
1582 DCRW = Zero
1583 }
1584
1585 If (PM5L)
1586 {
1587 CreateDWordField (BUF0, \_SB.PCI0._Y08._LEN, E0LN) // _LEN: Length
1588 E0LN = Zero
1589 }
1590
1591 If (PM5L == One)
1592 {
1593 CreateBitField (BUF0, \_SB.PCI0._Y08._RW, E0RW) // _RW_: Read-Write Status
1594 E0RW = Zero
1595 }
1596
1597 If (PM5H)
1598 {
1599 CreateDWordField (BUF0, \_SB.PCI0._Y09._LEN, E4LN) // _LEN: Length
1600 E4LN = Zero
1601 }
1602
1603 If (PM5H == One)
1604 {
1605 CreateBitField (BUF0, \_SB.PCI0._Y09._RW, E4RW) // _RW_: Read-Write Status
1606 E4RW = Zero
1607 }
1608
1609 If (PM6L)
1610 {
1611 CreateDWordField (BUF0, \_SB.PCI0._Y0A._LEN, E8LN) // _LEN: Length
1612 E8LN = Zero
1613 }
1614
1615 If (PM6L == One)
1616 {
1617 CreateBitField (BUF0, \_SB.PCI0._Y0A._RW, E8RW) // _RW_: Read-Write Status
1618 E8RW = Zero
1619 }
1620
1621 If (PM6H)
1622 {
1623 CreateDWordField (BUF0, \_SB.PCI0._Y0B._LEN, ECLN) // _LEN: Length
1624 ECLN = Zero
1625 }
1626
1627 If (PM6H == One)
1628 {
1629 CreateBitField (BUF0, \_SB.PCI0._Y0B._RW, ECRW) // _RW_: Read-Write Status
1630 ECRW = Zero
1631 }
1632
1633 If (PM0H)
1634 {
1635 CreateDWordField (BUF0, \_SB.PCI0._Y0C._LEN, F0LN) // _LEN: Length
1636 F0LN = Zero
1637 }
1638
1639 If (PM0H == One)
1640 {
1641 CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, F0RW) // _RW_: Read-Write Status
1642 F0RW = Zero
1643 }
1644
1645 CreateDWordField (BUF0, \_SB.PCI0._Y0D._MIN, M1MN) // _MIN: Minimum Base Address
1646 CreateDWordField (BUF0, \_SB.PCI0._Y0D._MAX, M1MX) // _MAX: Maximum Base Address
1647 CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, M1LN) // _LEN: Length
1648 M1MN = (TOUD << 0x1B)
1649 M1LN = ((M1MX - M1MN) + One)
1650 Return (BUF0) /* \_SB_.PCI0.BUF0 */
1651 }
1652
1653 Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
1654 {
1655 If (GPIC == Zero)
1656 {
1657 Return (Package (0x0F)
1658 {
1659 Package (0x04)
1660 {
1661 0x0001FFFF,
1662 Zero,
1663 ^LPC.LNKA,
1664 Zero
1665 },
1666
1667 Package (0x04)
1668 {
1669 0x0002FFFF,
1670 Zero,
1671 ^LPC.LNKA,
1672 Zero
1673 },
1674
1675 Package (0x04)
1676 {
1677 0x001BFFFF,
1678 Zero,
1679 ^LPC.LNKG,
1680 Zero
1681 },
1682
1683 Package (0x04)
1684 {
1685 0x001CFFFF,
1686 Zero,
1687 ^LPC.LNKA,
1688 Zero
1689 },
1690
1691 Package (0x04)
1692 {
1693 0x001CFFFF,
1694 One,
1695 ^LPC.LNKB,
1696 Zero
1697 },
1698
1699 Package (0x04)
1700 {
1701 0x001CFFFF,
1702 0x02,
1703 ^LPC.LNKC,
1704 Zero
1705 },
1706
1707 Package (0x04)
1708 {
1709 0x001CFFFF,
1710 0x03,
1711 ^LPC.LNKD,
1712 Zero
1713 },
1714
1715 Package (0x04)
1716 {
1717 0x001DFFFF,
1718 Zero,
1719 ^LPC.LNKA,
1720 Zero
1721 },
1722
1723 Package (0x04)
1724 {
1725 0x001DFFFF,
1726 One,
1727 ^LPC.LNKB,
1728 Zero
1729 },
1730
1731 Package (0x04)
1732 {
1733 0x001DFFFF,
1734 0x02,
1735 ^LPC.LNKC,
1736 Zero
1737 },
1738
1739 Package (0x04)
1740 {
1741 0x001DFFFF,
1742 0x03,
1743 ^LPC.LNKD,
1744 Zero
1745 },
1746
1747 Package (0x04)
1748 {
1749 0x001EFFFF,
1750 Zero,
1751 ^LPC.LNKA,
1752 Zero
1753 },
1754
1755 Package (0x04)
1756 {
1757 0x001EFFFF,
1758 One,
1759 ^LPC.LNKB,
1760 Zero
1761 },
1762
1763 Package (0x04)
1764 {
1765 0x001FFFFF,
1766 Zero,
1767 ^LPC.LNKA,
1768 Zero
1769 },
1770
1771 Package (0x04)
1772 {
1773 0x001FFFFF,
1774 One,
1775 ^LPC.LNKB,
1776 Zero
1777 }
1778 })
1779 }
1780 Else
1781 {
1782 Return (Package (0x0F)
1783 {
1784 Package (0x04)
1785 {
1786 0x0001FFFF,
1787 Zero,
1788 Zero,
1789 0x10
1790 },
1791
1792 Package (0x04)
1793 {
1794 0x0002FFFF,
1795 Zero,
1796 Zero,
1797 0x10
1798 },
1799
1800 Package (0x04)
1801 {
1802 0x001BFFFF,
1803 Zero,
1804 Zero,
1805 0x10
1806 },
1807
1808 Package (0x04)
1809 {
1810 0x001CFFFF,
1811 Zero,
1812 Zero,
1813 0x10
1814 },
1815
1816 Package (0x04)
1817 {
1818 0x001CFFFF,
1819 One,
1820 Zero,
1821 0x11
1822 },
1823
1824 Package (0x04)
1825 {
1826 0x001CFFFF,
1827 0x02,
1828 Zero,
1829 0x12
1830 },
1831
1832 Package (0x04)
1833 {
1834 0x001CFFFF,
1835 0x03,
1836 Zero,
1837 0x13
1838 },
1839
1840 Package (0x04)
1841 {
1842 0x001DFFFF,
1843 Zero,
1844 Zero,
1845 0x10
1846 },
1847
1848 Package (0x04)
1849 {
1850 0x001DFFFF,
1851 One,
1852 Zero,
1853 0x11
1854 },
1855
1856 Package (0x04)
1857 {
1858 0x001DFFFF,
1859 0x02,
1860 Zero,
1861 0x12
1862 },
1863
1864 Package (0x04)
1865 {
1866 0x001DFFFF,
1867 0x03,
1868 Zero,
1869 0x13
1870 },
1871
1872 Package (0x04)
1873 {
1874 0x001EFFFF,
1875 Zero,
1876 Zero,
1877 0x10
1878 },
1879
1880 Package (0x04)
1881 {
1882 0x001EFFFF,
1883 One,
1884 Zero,
1885 0x11
1886 },
1887
1888 Package (0x04)
1889 {
1890 0x001FFFFF,
1891 Zero,
1892 Zero,
1893 0x10
1894 },
1895
1896 Package (0x04)
1897 {
1898 0x001FFFFF,
1899 One,
1900 Zero,
1901 0x11
1902 }
1903 })
1904 }
1905 }
1906
1907 Device (P32)
1908 {
1909 Name (_ADR, 0x001E0000) // _ADR: Address
1910 Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
1911 {
1912 If (WKPM == One)
1913 {
1914 Return (Package (0x02)
1915 {
1916 0x0B,
1917 0x04
1918 })
1919 }
1920 Else
1921 {
1922 Return (Package (0x02)
1923 {
1924 0x0B,
1925 Zero
1926 })
1927 }
1928 }
1929
1930 Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
1931 {
1932 If (GPIC == Zero)
1933 {
1934 Return (Package (0x09)
1935 {
1936 Package (0x04)
1937 {
1938 0x0002FFFF,
1939 Zero,
1940 ^^LPC.LNKC,
1941 Zero
1942 },
1943
1944 Package (0x04)
1945 {
1946 0x0002FFFF,
1947 One,
1948 ^^LPC.LNKD,
1949 Zero
1950 },
1951
1952 Package (0x04)
1953 {
1954 0x0002FFFF,
1955 0x02,
1956 ^^LPC.LNKB,
1957 Zero
1958 },
1959
1960 Package (0x04)
1961 {
1962 0x0002FFFF,
1963 0x03,
1964 ^^LPC.LNKA,
1965 Zero
1966 },
1967
1968 Package (0x04)
1969 {
1970 0x0003FFFF,
1971 Zero,
1972 ^^LPC.LNKD,
1973 Zero
1974 },
1975
1976 Package (0x04)
1977 {
1978 0x0003FFFF,
1979 One,
1980 ^^LPC.LNKC,
1981 Zero
1982 },
1983
1984 Package (0x04)
1985 {
1986 0x0003FFFF,
1987 0x02,
1988 ^^LPC.LNKF,
1989 Zero
1990 },
1991
1992 Package (0x04)
1993 {
1994 0x0003FFFF,
1995 0x03,
1996 ^^LPC.LNKG,
1997 Zero
1998 },
1999
2000 Package (0x04)
2001 {
2002 0x0008FFFF,
2003 Zero,
2004 ^^LPC.LNKE,
2005 Zero
2006 }
2007 })
2008 }
2009 Else
2010 {
2011 Return (Package (0x09)
2012 {
2013 Package (0x04)
2014 {
2015 0x0002FFFF,
2016 Zero,
2017 Zero,
2018 0x12
2019 },
2020
2021 Package (0x04)
2022 {
2023 0x0002FFFF,
2024 One,
2025 Zero,
2026 0x13
2027 },
2028
2029 Package (0x04)
2030 {
2031 0x0002FFFF,
2032 0x02,
2033 Zero,
2034 0x11
2035 },
2036
2037 Package (0x04)
2038 {
2039 0x0002FFFF,
2040 0x03,
2041 Zero,
2042 0x10
2043 },
2044
2045 Package (0x04)
2046 {
2047 0x0003FFFF,
2048 Zero,
2049 Zero,
2050 0x13
2051 },
2052
2053 Package (0x04)
2054 {
2055 0x0003FFFF,
2056 One,
2057 Zero,
2058 0x12
2059 },
2060
2061 Package (0x04)
2062 {
2063 0x0003FFFF,
2064 0x02,
2065 Zero,
2066 0x15
2067 },
2068
2069 Package (0x04)
2070 {
2071 0x0003FFFF,
2072 0x03,
2073 Zero,
2074 0x16
2075 },
2076
2077 Package (0x04)
2078 {
2079 0x0008FFFF,
2080 Zero,
2081 Zero,
2082 0x14
2083 }
2084 })
2085 }
2086 }
2087 }
2088
2089 Device (LPC)
2090 {
2091 Name (_ADR, 0x001F0000) // _ADR: Address
2092 OperationRegion (PRR0, PCI_Config, 0x60, 0x04)
2093 Field (PRR0, AnyAcc, NoLock, Preserve)
2094 {
2095 PIRA, 8,
2096 PIRB, 8,
2097 PIRC, 8,
2098 PIRD, 8
2099 }
2100
2101 OperationRegion (PRR1, PCI_Config, 0x68, 0x04)
2102 Field (PRR1, AnyAcc, NoLock, Preserve)
2103 {
2104 PIRE, 8,
2105 PIRF, 8,
2106 PIRG, 8,
2107 PIRH, 8
2108 }
2109
2110 OperationRegion (PRR2, PCI_Config, 0x80, 0x02)
2111 Field (PRR2, AnyAcc, NoLock, Preserve)
2112 {
2113 IODL, 8,
2114 IODH, 8
2115 }
2116
2117 OperationRegion (BRKE, PCI_Config, 0xAA, 0x02)
2118 Field (BRKE, AnyAcc, NoLock, Preserve)
2119 {
2120 S4TM, 8,
2121 PCEE, 8
2122 }
2123
2124 Device (LNKA)
2125 {
2126 Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
2127 Name (_UID, One) // _UID: Unique ID
2128 Method (_STA, 0, NotSerialized) // _STA: Status
2129 {
2130 If (PIRA & 0x80)
2131 {
2132 Return (0x09)
2133 }
2134 Else
2135 {
2136 Return (0x0B)
2137 }
2138 }
2139
2140 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2141 {
2142 PIRA |= 0x80
2143 }
2144
2145 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2146 {
2147 Name (BUF0, ResourceTemplate ()
2148 {
2149 IRQ (Level, ActiveLow, Shared, )
2150 {0}
2151 })
2152 CreateWordField (BUF0, One, IRQW)
2153 If (PIRA & 0x80)
2154 {
2155 Local0 = Zero
2156 }
2157 Else
2158 {
2159 Local0 = One
2160 }
2161
2162 IRQW = (Local0 << (PIRA & 0x0F))
2163 Return (BUF0) /* \_SB_.PCI0.LPC_.LNKA._CRS.BUF0 */
2164 }
2165
2166 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
2167 {
2168 IRQ (Level, ActiveLow, Shared, )
2169 {3,4,5,7,9,10,11,12}
2170 })
2171 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2172 {
2173 CreateWordField (Arg0, One, IRQW)
2174 FindSetRightBit (IRQW, Local0)
2175 If (IRQW != Zero)
2176 {
2177 Local0 &= 0x7F
2178 Local0--
2179 }
2180 Else
2181 {
2182 Local0 |= 0x80
2183 }
2184
2185 PIRA = Local0
2186 }
2187 }
2188
2189 Device (LNKB)
2190 {
2191 Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
2192 Name (_UID, 0x02) // _UID: Unique ID
2193 Method (_STA, 0, NotSerialized) // _STA: Status
2194 {
2195 If (PIRB & 0x80)
2196 {
2197 Return (0x09)
2198 }
2199 Else
2200 {
2201 Return (0x0B)
2202 }
2203 }
2204
2205 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2206 {
2207 PIRB |= 0x80
2208 }
2209
2210 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2211 {
2212 Name (BUF0, ResourceTemplate ()
2213 {
2214 IRQ (Level, ActiveLow, Shared, )
2215 {0}
2216 })
2217 CreateWordField (BUF0, One, IRQW)
2218 If (PIRB & 0x80)
2219 {
2220 Local0 = Zero
2221 }
2222 Else
2223 {
2224 Local0 = One
2225 }
2226
2227 IRQW = (Local0 << (PIRB & 0x0F))
2228 Return (BUF0) /* \_SB_.PCI0.LPC_.LNKB._CRS.BUF0 */
2229 }
2230
2231 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
2232 {
2233 IRQ (Level, ActiveLow, Shared, )
2234 {3,4,5,7,9,10,11,12}
2235 })
2236 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2237 {
2238 CreateWordField (Arg0, One, IRQW)
2239 FindSetRightBit (IRQW, Local0)
2240 If (IRQW != Zero)
2241 {
2242 Local0 &= 0x7F
2243 Local0--
2244 }
2245 Else
2246 {
2247 Local0 |= 0x80
2248 }
2249
2250 PIRB = Local0
2251 }
2252 }
2253
2254 Device (LNKC)
2255 {
2256 Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
2257 Name (_UID, 0x03) // _UID: Unique ID
2258 Method (_STA, 0, NotSerialized) // _STA: Status
2259 {
2260 If (PIRC & 0x80)
2261 {
2262 Return (0x09)
2263 }
2264 Else
2265 {
2266 Return (0x0B)
2267 }
2268 }
2269
2270 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2271 {
2272 PIRC |= 0x80
2273 }
2274
2275 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2276 {
2277 Name (BUF0, ResourceTemplate ()
2278 {
2279 IRQ (Level, ActiveLow, Shared, )
2280 {0}
2281 })
2282 CreateWordField (BUF0, One, IRQW)
2283 If (PIRC & 0x80)
2284 {
2285 Local0 = Zero
2286 }
2287 Else
2288 {
2289 Local0 = One
2290 }
2291
2292 IRQW = (Local0 << (PIRC & 0x0F))
2293 Return (BUF0) /* \_SB_.PCI0.LPC_.LNKC._CRS.BUF0 */
2294 }
2295
2296 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
2297 {
2298 IRQ (Level, ActiveLow, Shared, )
2299 {3,4,5,7,9,10,11,12}
2300 })
2301 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2302 {
2303 CreateWordField (Arg0, One, IRQW)
2304 FindSetRightBit (IRQW, Local0)
2305 If (IRQW != Zero)
2306 {
2307 Local0 &= 0x7F
2308 Local0--
2309 }
2310 Else
2311 {
2312 Local0 |= 0x80
2313 }
2314
2315 PIRC = Local0
2316 }
2317 }
2318
2319 Device (LNKD)
2320 {
2321 Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
2322 Name (_UID, 0x04) // _UID: Unique ID
2323 Method (_STA, 0, NotSerialized) // _STA: Status
2324 {
2325 If (PIRD & 0x80)
2326 {
2327 Return (0x09)
2328 }
2329 Else
2330 {
2331 Return (0x0B)
2332 }
2333 }
2334
2335 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2336 {
2337 PIRD |= 0x80
2338 }
2339
2340 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2341 {
2342 Name (BUF0, ResourceTemplate ()
2343 {
2344 IRQ (Level, ActiveLow, Shared, )
2345 {0}
2346 })
2347 CreateWordField (BUF0, One, IRQW)
2348 If (PIRD & 0x80)
2349 {
2350 Local0 = Zero
2351 }
2352 Else
2353 {
2354 Local0 = One
2355 }
2356
2357 IRQW = (Local0 << (PIRD & 0x0F))
2358 Return (BUF0) /* \_SB_.PCI0.LPC_.LNKD._CRS.BUF0 */
2359 }
2360
2361 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
2362 {
2363 IRQ (Level, ActiveLow, Shared, )
2364 {3,4,5,7,9,10,11,12}
2365 })
2366 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2367 {
2368 CreateWordField (Arg0, One, IRQW)
2369 FindSetRightBit (IRQW, Local0)
2370 If (IRQW != Zero)
2371 {
2372 Local0 &= 0x7F
2373 Local0--
2374 }
2375 Else
2376 {
2377 Local0 |= 0x80
2378 }
2379
2380 PIRD = Local0
2381 }
2382 }
2383
2384 Device (LNKE)
2385 {
2386 Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
2387 Name (_UID, 0x05) // _UID: Unique ID
2388 Method (_STA, 0, NotSerialized) // _STA: Status
2389 {
2390 If (PIRE & 0x80)
2391 {
2392 Return (0x09)
2393 }
2394 Else
2395 {
2396 Return (0x0B)
2397 }
2398 }
2399
2400 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2401 {
2402 PIRE |= 0x80
2403 }
2404
2405 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2406 {
2407 Name (BUF0, ResourceTemplate ()
2408 {
2409 IRQ (Level, ActiveLow, Shared, )
2410 {0}
2411 })
2412 CreateWordField (BUF0, One, IRQW)
2413 If (PIRE & 0x80)
2414 {
2415 Local0 = Zero
2416 }
2417 Else
2418 {
2419 Local0 = One
2420 }
2421
2422 IRQW = (Local0 << (PIRE & 0x0F))
2423 Return (BUF0) /* \_SB_.PCI0.LPC_.LNKE._CRS.BUF0 */
2424 }
2425
2426 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
2427 {
2428 IRQ (Level, ActiveLow, Shared, )
2429 {3,4,5,7,9,10,11,12}
2430 })
2431 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2432 {
2433 CreateWordField (Arg0, One, IRQW)
2434 FindSetRightBit (IRQW, Local0)
2435 If (IRQW != Zero)
2436 {
2437 Local0 &= 0x7F
2438 Local0--
2439 }
2440 Else
2441 {
2442 Local0 |= 0x80
2443 }
2444
2445 PIRE = Local0
2446 }
2447 }
2448
2449 Device (LNKF)
2450 {
2451 Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
2452 Name (_UID, 0x06) // _UID: Unique ID
2453 Method (_STA, 0, NotSerialized) // _STA: Status
2454 {
2455 If (PIRF & 0x80)
2456 {
2457 Return (0x09)
2458 }
2459 Else
2460 {
2461 Return (0x0B)
2462 }
2463 }
2464
2465 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2466 {
2467 PIRF |= 0x80
2468 }
2469
2470 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2471 {
2472 Name (BUF0, ResourceTemplate ()
2473 {
2474 IRQ (Level, ActiveLow, Shared, )
2475 {0}
2476 })
2477 CreateWordField (BUF0, One, IRQW)
2478 If (PIRF & 0x80)
2479 {
2480 Local0 = Zero
2481 }
2482 Else
2483 {
2484 Local0 = One
2485 }
2486
2487 IRQW = (Local0 << (PIRF & 0x0F))
2488 Return (BUF0) /* \_SB_.PCI0.LPC_.LNKF._CRS.BUF0 */
2489 }
2490
2491 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
2492 {
2493 IRQ (Level, ActiveLow, Shared, )
2494 {3,4,5,7,9,10,11,12}
2495 })
2496 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2497 {
2498 CreateWordField (Arg0, One, IRQW)
2499 FindSetRightBit (IRQW, Local0)
2500 If (IRQW != Zero)
2501 {
2502 Local0 &= 0x7F
2503 Local0--
2504 }
2505 Else
2506 {
2507 Local0 |= 0x80
2508 }
2509
2510 PIRF = Local0
2511 }
2512 }
2513
2514 Device (LNKG)
2515 {
2516 Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
2517 Name (_UID, 0x07) // _UID: Unique ID
2518 Method (_STA, 0, NotSerialized) // _STA: Status
2519 {
2520 If (PIRG & 0x80)
2521 {
2522 Return (0x09)
2523 }
2524 Else
2525 {
2526 Return (0x0B)
2527 }
2528 }
2529
2530 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2531 {
2532 PIRG |= 0x80
2533 }
2534
2535 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2536 {
2537 Name (BUF0, ResourceTemplate ()
2538 {
2539 IRQ (Level, ActiveLow, Shared, )
2540 {0}
2541 })
2542 CreateWordField (BUF0, One, IRQW)
2543 If (PIRG & 0x80)
2544 {
2545 Local0 = Zero
2546 }
2547 Else
2548 {
2549 Local0 = One
2550 }
2551
2552 IRQW = (Local0 << (PIRG & 0x0F))
2553 Return (BUF0) /* \_SB_.PCI0.LPC_.LNKG._CRS.BUF0 */
2554 }
2555
2556 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
2557 {
2558 IRQ (Level, ActiveLow, Shared, )
2559 {3,4,5,7,9,10,11,12}
2560 })
2561 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2562 {
2563 CreateWordField (Arg0, One, IRQW)
2564 FindSetRightBit (IRQW, Local0)
2565 If (IRQW != Zero)
2566 {
2567 Local0 &= 0x7F
2568 Local0--
2569 }
2570 Else
2571 {
2572 Local0 |= 0x80
2573 }
2574
2575 PIRG = Local0
2576 }
2577 }
2578
2579 Device (LNKH)
2580 {
2581 Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
2582 Name (_UID, 0x08) // _UID: Unique ID
2583 Method (_STA, 0, NotSerialized) // _STA: Status
2584 {
2585 If (PIRH & 0x80)
2586 {
2587 Return (0x09)
2588 }
2589 Else
2590 {
2591 Return (0x0B)
2592 }
2593 }
2594
2595 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2596 {
2597 PIRH |= 0x80
2598 }
2599
2600 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2601 {
2602 Name (BUF0, ResourceTemplate ()
2603 {
2604 IRQ (Level, ActiveLow, Shared, )
2605 {0}
2606 })
2607 CreateWordField (BUF0, One, IRQW)
2608 If (PIRH & 0x80)
2609 {
2610 Local0 = Zero
2611 }
2612 Else
2613 {
2614 Local0 = One
2615 }
2616
2617 IRQW = (Local0 << (PIRH & 0x0F))
2618 Return (BUF0) /* \_SB_.PCI0.LPC_.LNKH._CRS.BUF0 */
2619 }
2620
2621 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
2622 {
2623 IRQ (Level, ActiveLow, Shared, )
2624 {3,4,5,7,9,10,11,12}
2625 })
2626 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2627 {
2628 CreateWordField (Arg0, One, IRQW)
2629 FindSetRightBit (IRQW, Local0)
2630 If (IRQW != Zero)
2631 {
2632 Local0 &= 0x7F
2633 Local0--
2634 }
2635 Else
2636 {
2637 Local0 |= 0x80
2638 }
2639
2640 PIRH = Local0
2641 }
2642 }
2643
2644 Device (SYSR)
2645 {
2646 Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
2647 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
2648 {
2649 IO (Decode16,
2650 0x002E, // Range Minimum
2651 0x002E, // Range Maximum
2652 0x01, // Alignment
2653 0x02, // Length
2654 )
2655 IO (Decode16,
2656 0x0068, // Range Minimum
2657 0x0068, // Range Maximum
2658 0x01, // Alignment
2659 0x08, // Length
2660 )
2661 IO (Decode16,
2662 0x0200, // Range Minimum
2663 0x0200, // Range Maximum
2664 0x01, // Alignment
2665 0x10, // Length
2666 )
2667 IO (Decode16,
2668 0x164E, // Range Minimum
2669 0x164E, // Range Maximum
2670 0x01, // Alignment
2671 0x02, // Length
2672 )
2673 IO (Decode16,
2674 0x0061, // Range Minimum
2675 0x0061, // Range Maximum
2676 0x01, // Alignment
2677 0x01, // Length
2678 )
2679 IO (Decode16,
2680 0x0070, // Range Minimum
2681 0x0070, // Range Maximum
2682 0x01, // Alignment
2683 0x01, // Length
2684 )
2685 IO (Decode16,
2686 0x0080, // Range Minimum
2687 0x0080, // Range Maximum
2688 0x01, // Alignment
2689 0x01, // Length
2690 )
2691 IO (Decode16,
2692 0x0092, // Range Minimum
2693 0x0092, // Range Maximum
2694 0x01, // Alignment
2695 0x01, // Length
2696 )
2697 IO (Decode16,
2698 0x00B2, // Range Minimum
2699 0x00B2, // Range Maximum
2700 0x01, // Alignment
2701 0x02, // Length
2702 )
2703 IO (Decode16,
2704 0x0063, // Range Minimum
2705 0x0063, // Range Maximum
2706 0x01, // Alignment
2707 0x01, // Length
2708 )
2709 IO (Decode16,
2710 0x0065, // Range Minimum
2711 0x0065, // Range Maximum
2712 0x01, // Alignment
2713 0x01, // Length
2714 )
2715 IO (Decode16,
2716 0x0067, // Range Minimum
2717 0x0067, // Range Maximum
2718 0x01, // Alignment
2719 0x01, // Length
2720 )
2721 IO (Decode16,
2722 0x0600, // Range Minimum
2723 0x0600, // Range Maximum
2724 0x01, // Alignment
2725 0x10, // Length
2726 )
2727 IO (Decode16,
2728 0x0610, // Range Minimum
2729 0x0610, // Range Maximum
2730 0x01, // Alignment
2731 0x01, // Length
2732 )
2733 IO (Decode16,
2734 0x0800, // Range Minimum
2735 0x0800, // Range Maximum
2736 0x01, // Alignment
2737 0x10, // Length
2738 )
2739 IO (Decode16,
2740 0x0400, // Range Minimum
2741 0x0400, // Range Maximum
2742 0x01, // Alignment
2743 0x80, // Length
2744 )
2745 IO (Decode16,
2746 0x0500, // Range Minimum
2747 0x0500, // Range Maximum
2748 0x01, // Alignment
2749 0x40, // Length
2750 )
2751 Memory32Fixed (ReadWrite,
2752 0xE0000000, // Address Base
2753 0x10000000, // Address Length
2754 )
2755 Memory32Fixed (ReadWrite,
2756 0xFED1C000, // Address Base
2757 0x00004000, // Address Length
2758 )
2759 Memory32Fixed (ReadWrite,
2760 0xFED14000, // Address Base
2761 0x00004000, // Address Length
2762 )
2763 Memory32Fixed (ReadWrite,
2764 0xFED18000, // Address Base
2765 0x00001000, // Address Length
2766 )
2767 Memory32Fixed (ReadWrite,
2768 0xFED19000, // Address Base
2769 0x00001000, // Address Length
2770 )
2771 Memory32Fixed (ReadWrite,
2772 0xFEC00000, // Address Base
2773 0x00001000, // Address Length
2774 )
2775 Memory32Fixed (ReadWrite,
2776 0xFEE00000, // Address Base
2777 0x00001000, // Address Length
2778 )
2779 })
2780 }
2781
2782 Device (DMAC)
2783 {
2784 Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */) // _HID: Hardware ID
2785 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
2786 {
2787 IO (Decode16,
2788 0x0000, // Range Minimum
2789 0x0000, // Range Maximum
2790 0x01, // Alignment
2791 0x20, // Length
2792 )
2793 IO (Decode16,
2794 0x0081, // Range Minimum
2795 0x0081, // Range Maximum
2796 0x01, // Alignment
2797 0x11, // Length
2798 )
2799 IO (Decode16,
2800 0x0093, // Range Minimum
2801 0x0093, // Range Maximum
2802 0x01, // Alignment
2803 0x0D, // Length
2804 )
2805 IO (Decode16,
2806 0x00C0, // Range Minimum
2807 0x00C0, // Range Maximum
2808 0x01, // Alignment
2809 0x20, // Length
2810 )
2811 DMA (Compatibility, NotBusMaster, Transfer8_16, )
2812 {4}
2813 })
2814 }
2815
2816 Device (RTC)
2817 {
2818 Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID
2819 Name (BUF0, ResourceTemplate ()
2820 {
2821 IO (Decode16,
2822 0x0070, // Range Minimum
2823 0x0070, // Range Maximum
2824 0x01, // Alignment
2825 0x08, // Length
2826 )
2827 })
2828 Name (BUF1, ResourceTemplate ()
2829 {
2830 IO (Decode16,
2831 0x0070, // Range Minimum
2832 0x0070, // Range Maximum
2833 0x01, // Alignment
2834 0x08, // Length
2835 )
2836 IRQNoFlags ()
2837 {8}
2838 })
2839 Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
2840 {
2841 If (HPTS == One)
2842 {
2843 Return (BUF0) /* \_SB_.PCI0.LPC_.RTC_.BUF0 */
2844 }
2845 Else
2846 {
2847 Return (BUF1) /* \_SB_.PCI0.LPC_.RTC_.BUF1 */
2848 }
2849 }
2850 }
2851
2852 Device (HPET)
2853 {
2854 Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID
2855 Name (BUF0, ResourceTemplate ()
2856 {
2857 IRQNoFlags ()
2858 {0}
2859 IRQNoFlags ()
2860 {8}
2861 Memory32Fixed (ReadOnly,
2862 0xFED00000, // Address Base
2863 0x00000400, // Address Length
2864 _Y0E)
2865 })
2866 Method (_STA, 0, NotSerialized) // _STA: Status
2867 {
2868 If (OSYS >= 0x07D1)
2869 {
2870 If (HPTS == One)
2871 {
2872 Return (0x0F)
2873 }
2874 Else
2875 {
2876 Return (Zero)
2877 }
2878 }
2879 ElseIf (HPTS)
2880 {
2881 Return (0x0B)
2882 }
2883 Else
2884 {
2885 Return (Zero)
2886 }
2887 }
2888
2889 Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
2890 {
2891 If (HPTS == One)
2892 {
2893 CreateDWordField (BUF0, \_SB.PCI0.LPC.HPET._Y0E._BAS, HPT0) // _BAS: Base Address
2894 If (HPTA == One)
2895 {
2896 HPT0 = 0xFED01000
2897 }
2898
2899 If (HPTA == 0x02)
2900 {
2901 HPT0 = 0xFED02000
2902 }
2903
2904 If (HPTA == 0x03)
2905 {
2906 HPT0 = 0xFED03000
2907 }
2908 }
2909
2910 Return (BUF0) /* \_SB_.PCI0.LPC_.HPET.BUF0 */
2911 }
2912 }
2913
2914 Device (PIC)
2915 {
2916 Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID
2917 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
2918 {
2919 IO (Decode16,
2920 0x0020, // Range Minimum
2921 0x0020, // Range Maximum
2922 0x01, // Alignment
2923 0x02, // Length
2924 )
2925 IO (Decode16,
2926 0x0024, // Range Minimum
2927 0x0024, // Range Maximum
2928 0x01, // Alignment
2929 0x02, // Length
2930 )
2931 IO (Decode16,
2932 0x0028, // Range Minimum
2933 0x0028, // Range Maximum
2934 0x01, // Alignment
2935 0x02, // Length
2936 )
2937 IO (Decode16,
2938 0x002C, // Range Minimum
2939 0x002C, // Range Maximum
2940 0x01, // Alignment
2941 0x02, // Length
2942 )
2943 IO (Decode16,
2944 0x0030, // Range Minimum
2945 0x0030, // Range Maximum
2946 0x01, // Alignment
2947 0x02, // Length
2948 )
2949 IO (Decode16,
2950 0x0034, // Range Minimum
2951 0x0034, // Range Maximum
2952 0x01, // Alignment
2953 0x02, // Length
2954 )
2955 IO (Decode16,
2956 0x0038, // Range Minimum
2957 0x0038, // Range Maximum
2958 0x01, // Alignment
2959 0x02, // Length
2960 )
2961 IO (Decode16,
2962 0x003C, // Range Minimum
2963 0x003C, // Range Maximum
2964 0x01, // Alignment
2965 0x02, // Length
2966 )
2967 IO (Decode16,
2968 0x00A0, // Range Minimum
2969 0x00A0, // Range Maximum
2970 0x01, // Alignment
2971 0x02, // Length
2972 )
2973 IO (Decode16,
2974 0x00A4, // Range Minimum
2975 0x00A4, // Range Maximum
2976 0x01, // Alignment
2977 0x02, // Length
2978 )
2979 IO (Decode16,
2980 0x00A8, // Range Minimum
2981 0x00A8, // Range Maximum
2982 0x01, // Alignment
2983 0x02, // Length
2984 )
2985 IO (Decode16,
2986 0x00AC, // Range Minimum
2987 0x00AC, // Range Maximum
2988 0x01, // Alignment
2989 0x02, // Length
2990 )
2991 IO (Decode16,
2992 0x00B0, // Range Minimum
2993 0x00B0, // Range Maximum
2994 0x01, // Alignment
2995 0x02, // Length
2996 )
2997 IO (Decode16,
2998 0x00B4, // Range Minimum
2999 0x00B4, // Range Maximum
3000 0x01, // Alignment
3001 0x02, // Length
3002 )
3003 IO (Decode16,
3004 0x00B8, // Range Minimum
3005 0x00B8, // Range Maximum
3006 0x01, // Alignment
3007 0x02, // Length
3008 )
3009 IO (Decode16,
3010 0x00BC, // Range Minimum
3011 0x00BC, // Range Maximum
3012 0x01, // Alignment
3013 0x02, // Length
3014 )
3015 IO (Decode16,
3016 0x04D0, // Range Minimum
3017 0x04D0, // Range Maximum
3018 0x01, // Alignment
3019 0x02, // Length
3020 )
3021 IRQNoFlags ()
3022 {2}
3023 })
3024 }
3025
3026 Device (FPU)
3027 {
3028 Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */) // _HID: Hardware ID
3029 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
3030 {
3031 IO (Decode16,
3032 0x00F0, // Range Minimum
3033 0x00F0, // Range Maximum
3034 0x01, // Alignment
3035 0x01, // Length
3036 )
3037 IRQNoFlags ()
3038 {13}
3039 })
3040 }
3041
3042 Device (TIMR)
3043 {
3044 Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID
3045 Name (BUF0, ResourceTemplate ()
3046 {
3047 IO (Decode16,
3048 0x0040, // Range Minimum
3049 0x0040, // Range Maximum
3050 0x01, // Alignment
3051 0x04, // Length
3052 )
3053 IO (Decode16,
3054 0x0050, // Range Minimum
3055 0x0050, // Range Maximum
3056 0x10, // Alignment
3057 0x04, // Length
3058 )
3059 })
3060 Name (BUF1, ResourceTemplate ()
3061 {
3062 IO (Decode16,
3063 0x0040, // Range Minimum
3064 0x0040, // Range Maximum
3065 0x01, // Alignment
3066 0x04, // Length
3067 )
3068 IO (Decode16,
3069 0x0050, // Range Minimum
3070 0x0050, // Range Maximum
3071 0x10, // Alignment
3072 0x04, // Length
3073 )
3074 IRQNoFlags ()
3075 {0}
3076 })
3077 Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
3078 {
3079 If (HPTS)
3080 {
3081 Return (BUF0) /* \_SB_.PCI0.LPC_.TIMR.BUF0 */
3082 }
3083
3084 Return (BUF1) /* \_SB_.PCI0.LPC_.TIMR.BUF1 */
3085 }
3086 }
3087
3088 Device (FWHD)
3089 {
3090 Name (_HID, EisaId ("INT0800") /* Intel 82802 Firmware Hub Device */) // _HID: Hardware ID
3091 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
3092 {
3093 Memory32Fixed (ReadOnly,
3094 0xFF800000, // Address Base
3095 0x00800000, // Address Length
3096 )
3097 })
3098 }
3099
3100 Device (KBC)
3101 {
3102 Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID
3103 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
3104 {
3105 IO (Decode16,
3106 0x0060, // Range Minimum
3107 0x0060, // Range Maximum
3108 0x01, // Alignment
3109 0x01, // Length
3110 )
3111 IO (Decode16,
3112 0x0064, // Range Minimum
3113 0x0064, // Range Maximum
3114 0x01, // Alignment
3115 0x01, // Length
3116 )
3117 IRQ (Edge, ActiveHigh, Exclusive, )
3118 {1}
3119 })
3120 Method (_STA, 0, NotSerialized) // _STA: Status
3121 {
3122 Return (0x0F)
3123 }
3124 }
3125
3126 Device (MOUE)
3127 {
3128 Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID
3129 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
3130 {
3131 IRQ (Edge, ActiveHigh, Exclusive, )
3132 {12}
3133 })
3134 Method (_STA, 0, NotSerialized) // _STA: Status
3135 {
3136 Return (0x0F)
3137 }
3138 }
3139
3140 Device (EC0)
3141 {
3142 Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware ID
3143 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
3144 {
3145 IO (Decode16,
3146 0x0062, // Range Minimum
3147 0x0062, // Range Maximum
3148 0x00, // Alignment
3149 0x01, // Length
3150 )
3151 IO (Decode16,
3152 0x0066, // Range Minimum
3153 0x0066, // Range Maximum
3154 0x00, // Alignment
3155 0x01, // Length
3156 )
3157 })
3158 Name (_GPE, 0x17) // _GPE: General Purpose Events
3159 Name (SEL0, 0xF0)
3160 Name (BFLG, Zero)
3161 Method (_REG, 2, NotSerialized) // _REG: Region Availability
3162 {
3163 P80H = 0x17
3164 If (Arg0 == 0x03)
3165 {
3166 Local0 = Arg1
3167 If (Local0)
3168 {
3169 ECON = One
3170 }
3171 Else
3172 {
3173 ECON = Zero
3174 }
3175 }
3176
3177 If (ECON)
3178 {
3179 P80H = 0x18
3180 RG59 = 0x03
3181 CPLE = One
3182 }
3183 }
3184
3185 OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
3186 Field (ERAM, ByteAcc, NoLock, Preserve)
3187 {
3188 Offset (0x04),
3189 CMCM, 8,
3190 CMD1, 8,
3191 CMD2, 8,
3192 CMD3, 8,
3193 Offset (0x18),
3194 SMPR, 8,
3195 SMST, 8,
3196 SMAD, 8,
3197 SMCM, 8,
3198 SMD0, 256,
3199 BCNT, 8,
3200 SMAA, 8,
3201 BATD, 16,
3202 ACDF, 1,
3203 Offset (0x41),
3204 , 5,
3205 FLS4, 1,
3206 Offset (0x42),
3207 Offset (0x4C),
3208 ARCD, 1,
3209 , 3,
3210 DOCK, 1,
3211 LANC, 1,
3212 LID2, 1,
3213 CRTS, 1,
3214 Offset (0x51),
3215 BLVL, 8,
3216 Offset (0x53),
3217 DOFF, 8,
3218 Offset (0x58),
3219 CTMP, 8,
3220 RG59, 8,
3221 Offset (0x60),
3222 WLAN, 1,
3223 BLTH, 1,
3224 CPLE, 1,
3225 , 3,
3226 WLST, 1,
3227 BLTS, 1,
3228 , 2,
3229 ST3G, 1,
3230 MNST, 1,
3231 , 1,
3232 ED3G, 1,
3233 , 3,
3234 Offset (0x63),
3235 TJ85, 1,
3236 , 6,
3237 VGAF, 1,
3238 Offset (0x70),
3239 BTMD, 8,
3240 MBTS, 1,
3241 MBTF, 1,
3242 BATF, 1,
3243 , 3,
3244 MBDX, 1,
3245 MBAD, 1,
3246 MBTC, 1,
3247 , 2,
3248 LION, 1,
3249 Offset (0x77),
3250 BA1C, 8,
3251 MCYC, 16,
3252 MTMP, 16,
3253 MDAT, 16,
3254 MCUR, 16,
3255 MBRM, 16,
3256 MBVG, 16,
3257 MRTF, 16,
3258 MMER, 8,
3259 BA2C, 8,
3260 LFC2, 16,
3261 BTSN, 16,
3262 BTDC, 16,
3263 BTDV, 16,
3264 BTMN, 8,
3265 Offset (0x93),
3266 BTST, 8,
3267 Offset (0x9D),
3268 OSTP, 1,
3269 Offset (0xA0),
3270 ABMD, 8,
3271 ABTS, 1,
3272 ABFC, 1,
3273 , 4,
3274 ABDX, 1,
3275 ABAD, 1,
3276 ABCG, 1,
3277 , 2,
3278 ABTP, 1,
3279 Offset (0xA8),
3280 ACYC, 16,
3281 ATMP, 16,
3282 ADAT, 16,
3283 ABCR, 16,
3284 ABRM, 16,
3285 ABVG, 16,
3286 ARTF, 16,
3287 AMER, 8,
3288 Offset (0xB8),
3289 AFCC, 16,
3290 ABSN, 16,
3291 ABDC, 16,
3292 ABDV, 16,
3293 ABMN, 8,
3294 Offset (0xD0),
3295 EBPL, 1,
3296 Offset (0xD1),
3297 PWRE, 1,
3298 Offset (0xD2),
3299 , 6,
3300 VAUX, 1,
3301 Offset (0xD6),
3302 DBPL, 8,
3303 Offset (0xE0),
3304 DESP, 8,
3305 DTS3, 8,
3306 DE0L, 8,
3307 DE0H, 8,
3308 DE1L, 8,
3309 DE1H, 8,
3310 DE2L, 8,
3311 DE2H, 8,
3312 DE3L, 8,
3313 DE3H, 8,
3314 DE4L, 8,
3315 DE4H, 8
3316 }
3317
3318 Method (APOL, 1, NotSerialized)
3319 {
3320 P80H = 0x19
3321 DBPL = Arg0
3322 EBPL = One
3323 }
3324
3325 Method (CPOL, 1, NotSerialized)
3326 {
3327 P80H = 0x1A
3328 If (PSTA == Zero)
3329 {
3330 If (ECON != Zero)
3331 {
3332 APOL (Arg0)
3333 PSTA = One
3334 }
3335 }
3336 }
3337
3338 Method (_Q20, 0, NotSerialized) // _Qxx: EC Query
3339 {
3340 P80H = 0x20
3341 If (ECON)
3342 {
3343 If (SMST & 0x40)
3344 {
3345 Local0 = SMAA /* \_SB_.PCI0.LPC_.EC0_.SMAA */
3346 If (Local0 == 0x14)
3347 {
3348 SMST &= 0xBF
3349 Local1 = PWRE /* \_SB_.PCI0.LPC_.EC0_.PWRE */
3350 If (Local1)
3351 {
3352 PWRE = Zero
3353 BFLG = 0x12
3354 CPOL (One)
3355 }
3356 }
3357
3358 If (Local0 == 0x16)
3359 {
3360 SMST &= 0xBF
3361 ^^^^BAT1.BCRI = 0x04
3362 Notify (BAT1, 0x80) // Status Change
3363 }
3364 Else
3365 {
3366 ^^^^BAT1.BCRI = Zero
3367 }
3368 }
3369 }
3370 }
3371
3372 Method (_Q09, 0, NotSerialized) // _Qxx: EC Query
3373 {
3374 P80H = 0x09
3375 If (ECON)
3376 {
3377 P80H = 0x1B
3378 PSTA = Zero
3379 ^^^^BAT1.BATS ()
3380 Notify (ACAD, 0x80) // Status Change
3381 Sleep (0x01F4)
3382 Notify (BAT1, 0x80) // Status Change
3383 If (^^^^BAT1.BTCH)
3384 {
3385 P80H = 0x1C
3386 ^^^^BAT1.UBIF ()
3387 Notify (BAT1, 0x81) // Information Change
3388 ^^^^BAT1.BTCH = Zero
3389 }
3390 }
3391 }
3392
3393 Method (_Q9B, 0, NotSerialized) // _Qxx: EC Query
3394 {
3395 P80H = 0x9B
3396 Sleep (0x32)
3397 Notify (LID0, 0x80) // Status Change
3398 }
3399 }
3400 }
3401
3402 Device (UHC1)
3403 {
3404 Name (_ADR, 0x001D0000) // _ADR: Address
3405 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
3406 {
3407 0x03,
3408 0x03
3409 })
3410 OperationRegion (USBR, PCI_Config, 0xC4, One)
3411 Field (USBR, AnyAcc, NoLock, Preserve)
3412 {
3413 URES, 8
3414 }
3415
3416 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
3417 {
3418 If (Arg0 == Zero)
3419 {
3420 URES = Zero
3421 }
3422
3423 If (Arg0 == One)
3424 {
3425 URES = 0x03
3426 }
3427 }
3428 }
3429
3430 Device (UHC2)
3431 {
3432 Name (_ADR, 0x001D0001) // _ADR: Address
3433 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
3434 {
3435 0x04,
3436 0x03
3437 })
3438 OperationRegion (USBR, PCI_Config, 0xC4, One)
3439 Field (USBR, AnyAcc, NoLock, Preserve)
3440 {
3441 URES, 8
3442 }
3443
3444 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
3445 {
3446 If (Arg0 == Zero)
3447 {
3448 URES = Zero
3449 }
3450
3451 If (Arg0 == One)
3452 {
3453 URES = 0x03
3454 }
3455 }
3456 }
3457
3458 Device (UHC3)
3459 {
3460 Name (_ADR, 0x001D0002) // _ADR: Address
3461 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
3462 {
3463 0x0C,
3464 0x03
3465 })
3466 OperationRegion (USBR, PCI_Config, 0xC4, One)
3467 Field (USBR, AnyAcc, NoLock, Preserve)
3468 {
3469 URES, 8
3470 }
3471
3472 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
3473 {
3474 If (Arg0 == Zero)
3475 {
3476 URES = Zero
3477 }
3478
3479 If (Arg0 == One)
3480 {
3481 URES = 0x03
3482 }
3483 }
3484 }
3485
3486 Device (UHC4)
3487 {
3488 Name (_ADR, 0x001D0003) // _ADR: Address
3489 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
3490 {
3491 0x0E,
3492 0x03
3493 })
3494 OperationRegion (USBR, PCI_Config, 0xC4, One)
3495 Field (USBR, AnyAcc, NoLock, Preserve)
3496 {
3497 URES, 8
3498 }
3499
3500 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
3501 {
3502 If (Arg0 == Zero)
3503 {
3504 URES = Zero
3505 }
3506
3507 If (Arg0 == One)
3508 {
3509 URES = 0x03
3510 }
3511 }
3512 }
3513
3514 Device (ECHI)
3515 {
3516 Name (_ADR, 0x001D0007) // _ADR: Address
3517 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
3518 {
3519 0x0D,
3520 0x03
3521 })
3522 OperationRegion (USBR, PCI_Config, 0xC4, One)
3523 Field (USBR, AnyAcc, NoLock, Preserve)
3524 {
3525 URES, 8
3526 }
3527
3528 Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
3529 {
3530 If (Arg0 == Zero)
3531 {
3532 URES = Zero
3533 }
3534
3535 If (Arg0 == One)
3536 {
3537 URES = 0x03
3538 }
3539 }
3540 }
3541
3542 Device (EXP1)
3543 {
3544 Name (_ADR, 0x001C0000) // _ADR: Address
3545 OperationRegion (P1CS, PCI_Config, 0x40, 0x0100)
3546 Field (P1CS, AnyAcc, NoLock, Preserve)
3547 {
3548 Offset (0x10),
3549 , 4,
3550 LKD1, 1,
3551 Offset (0x1A),
3552 ABP1, 1,
3553 , 2,
3554 PDC1, 1,
3555 , 2,
3556 PDS1, 1,
3557 Offset (0x20),
3558 RID1, 16,
3559 PSP1, 1,
3560 PPP1, 1,
3561 Offset (0x9C),
3562 , 30,
3563 HPCS, 1,
3564 PMCS, 1
3565 }
3566
3567 Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
3568 {
3569 0x09,
3570 0x04
3571 })
3572 Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
3573 {
3574 If (GPIC == Zero)
3575 {
3576 Return (Package (0x04)
3577 {
3578 Package (0x04)
3579 {
3580 0xFFFF,
3581 Zero,
3582 ^^LPC.LNKA,
3583 Zero
3584 },
3585
3586 Package (0x04)
3587 {
3588 0xFFFF,
3589 One,
3590 ^^LPC.LNKB,
3591 Zero
3592 },
3593
3594 Package (0x04)
3595 {
3596 0xFFFF,
3597 0x02,
3598