Ticket #567: dsdt_AWRDACPI.dsl

File dsdt_AWRDACPI.dsl, 145.6 KB (added by Lars Erdmann, 13 years ago)
Line 
1/*
2 * Intel ACPI Component Architecture
3 * AML Disassembler version 20120816-32 [Sep 6 2012]
4 * Copyright (c) 2000 - 2012 Intel Corporation
5 *
6 * Disassembly of (null), Sun Nov 25 08:33:30 2012
7 *
8 * Original Table Header:
9 * Signature "DSDT"
10 * Length 0x000038BB (14523)
11 * Revision 0x01 **** 32-bit table (V1), no 64-bit math support
12 * Checksum 0x39
13 * OEM ID "AWARD "
14 * OEM Table ID "AWRDACPI"
15 * OEM Revision 0x00001000 (4096)
16 * Compiler ID "MSFT"
17 * Compiler Version 0x0100000D (16777229)
18 */
19
20DefinitionBlock ("DSDT.aml", "DSDT", 1, "AWARD ", "AWRDACPI", 0x00001000)
21{
22 Scope (\_PR)
23 {
24 Processor (\_PR.CPU0, 0x00, 0x00000000, 0x00) {}
25 }
26
27 Name (\_S0, Package (0x04) // _S0_: S0 System State
28 {
29 0x00,
30 0x00,
31 0x00,
32 0x00
33 })
34 Name (\_S3, Package (0x04) // _S3_: S3 System State
35 {
36 0x03,
37 0x01,
38 0x01,
39 0x01
40 })
41 Name (\_S4, Package (0x04) // _S4_: S4 System State
42 {
43 0x04,
44 0x04,
45 0x04,
46 0x04
47 })
48 Name (\_S5, Package (0x04) // _S5_: S5 System State
49 {
50 0x05,
51 0x05,
52 0x05,
53 0x05
54 })
55 OperationRegion (\DEBG, SystemIO, 0x80, 0x01)
56 Field (\DEBG, ByteAcc, NoLock, Preserve)
57 {
58 DBG1, 8
59 }
60
61 OperationRegion (\P01, SystemIO, 0x1001, 0x01)
62 Field (\P01, ByteAcc, NoLock, Preserve)
63 {
64 P1, 8
65 }
66
67 OperationRegion (PR48, SystemIO, 0x1048, 0x01)
68 Field (PR48, ByteAcc, NoLock, Preserve)
69 {
70 P48, 8
71 }
72
73 OperationRegion (\PR49, SystemIO, 0x1049, 0x01)
74 Field (\PR49, ByteAcc, NoLock, Preserve)
75 {
76 P49, 8
77 }
78
79 OperationRegion (\TRAP, SystemIO, 0x1050, 0x02)
80 Field (\TRAP, WordAcc, NoLock, Preserve)
81 {
82 TRA0, 16
83 }
84
85 OperationRegion (EXTM, SystemMemory, 0x000FF830, 0x10)
86 Field (EXTM, WordAcc, NoLock, Preserve)
87 {
88 ROM1, 16,
89 RMS1, 16,
90 ROM2, 16,
91 RMS2, 16,
92 ROM3, 16,
93 RMS3, 16,
94 AMEM, 32
95 }
96
97 OperationRegion (\PR20, SystemIO, 0x1020, 0x02)
98 Field (\PR20, WordAcc, NoLock, Preserve)
99 {
100 P20, 16
101 }
102
103 OperationRegion (\PR22, SystemIO, 0x1022, 0x02)
104 Field (\PR22, WordAcc, NoLock, Preserve)
105 {
106 P22, 16
107 }
108
109 OperationRegion (\PR30, SystemIO, 0x1030, 0x02)
110 Field (\PR30, WordAcc, NoLock, Preserve)
111 {
112 P30, 16
113 }
114
115 OperationRegion (\PR40, SystemIO, 0x1040, 0x01)
116 Field (\PR40, ByteAcc, NoLock, Preserve)
117 {
118 P40, 8
119 }
120
121 OperationRegion (\PR42, SystemIO, 0x1042, 0x01)
122 Field (\PR42, ByteAcc, NoLock, Preserve)
123 {
124 P42, 8
125 }
126
127 OperationRegion (\PR62, SystemIO, 0x1062, 0x02)
128 Field (\PR62, ByteAcc, NoLock, Preserve)
129 {
130 P62, 16
131 }
132
133 OperationRegion (\CGPO, SystemIO, 0x103A, 0x03)
134 Field (\CGPO, ByteAcc, NoLock, Preserve)
135 {
136 GP00, 1,
137 GP01, 1,
138 GP02, 1,
139 GP03, 1,
140 GP04, 1,
141 GP05, 1,
142 GP06, 1,
143 GP07, 1,
144 GP08, 1,
145 GP09, 1,
146 GP0A, 1,
147 GP0B, 1,
148 GP0C, 1,
149 GP0D, 1,
150 GP0E, 1,
151 GP0F, 1
152 }
153
154 Scope (\)
155 {
156 Name (PICF, 0x00)
157 Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
158 {
159 Store (Arg0, PICF)
160 }
161 }
162
163 Name (OSFL, 0x01)
164 Method (STRC, 2, NotSerialized)
165 {
166 If (LNotEqual (SizeOf (Arg0), SizeOf (Arg1)))
167 {
168 Return (0x00)
169 }
170
171 Add (SizeOf (Arg0), 0x01, Local0)
172 Name (BUF0, Buffer (Local0) {})
173 Name (BUF1, Buffer (Local0) {})
174 Store (Arg0, BUF0)
175 Store (Arg1, BUF1)
176 While (Local0)
177 {
178 Decrement (Local0)
179 If (LNotEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (
180 BUF1, Local0))))
181 {
182 Return (Zero)
183 }
184 }
185
186 Return (One)
187 }
188
189 OperationRegion (RTCM, SystemIO, 0x70, 0x02)
190 Field (RTCM, ByteAcc, NoLock, Preserve)
191 {
192 CMIN, 8,
193 CMDA, 8
194 }
195
196 IndexField (CMIN, CMDA, ByteAcc, NoLock, Preserve)
197 {
198 Offset (0x0F),
199 SHUT, 8
200 }
201
202 OperationRegion (INFO, SystemMemory, 0x000FF840, 0x01)
203 Field (INFO, ByteAcc, NoLock, Preserve)
204 {
205 KBDI, 1,
206 RTCW, 1,
207 PS2F, 1,
208 IRFL, 2,
209 DISE, 1,
210 SSHU, 1
211 }
212
213 OperationRegion (BEEP, SystemIO, 0x61, 0x01)
214 Field (BEEP, ByteAcc, NoLock, Preserve)
215 {
216 S1B, 8
217 }
218
219 OperationRegion (CONT, SystemIO, 0x40, 0x04)
220 Field (CONT, ByteAcc, NoLock, Preserve)
221 {
222 CNT0, 8,
223 CNT1, 8,
224 CNT2, 8,
225 CTRL, 8
226 }
227
228 Method (SPKR, 1, NotSerialized)
229 {
230 Store (S1B, Local0)
231 Store (0xB6, CTRL)
232 Store (0x55, CNT2)
233 Store (0x03, CNT2)
234 Store (Arg0, Local2)
235 While (LGreater (Local2, 0x00))
236 {
237 Or (S1B, 0x03, S1B)
238 Store (0x5FFF, Local3)
239 While (LGreater (Local3, 0x00))
240 {
241 Decrement (Local3)
242 }
243
244 And (S1B, 0xFC, S1B)
245 Store (0x0EFF, Local3)
246 While (LGreater (Local3, 0x00))
247 {
248 Decrement (Local3)
249 }
250
251 Decrement (Local2)
252 }
253
254 Store (Local0, S1B)
255 }
256
257 Method (\_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep
258 {
259 Store (0xFF, P1)
260 If (LEqual (Arg0, 0x03))
261 {
262 Store (Arg0, P48)
263 }
264
265 Or (P62, 0x40, P62)
266 Store (0xFFFF, P20)
267 Store (0xFFFF, P30)
268 Or (Arg0, 0xF0, DBG1)
269 }
270
271 Method (\_WAK, 1, NotSerialized) // _WAK: Wake
272 {
273 If (LEqual (Arg0, 0x04))
274 {
275 If (LEqual (OSFL, 0x00))
276 {
277 Store (0x58, P48)
278 }
279
280 If (LEqual (OSFL, 0x02))
281 {
282 Store (0x57, P48)
283 }
284
285 If (LEqual (OSFL, 0x01))
286 {
287 Store (0x56, P48)
288 }
289 }
290
291 If (LGreaterEqual (Arg0, 0x03))
292 {
293 Notify (\_SB.PCI0.USB0, 0x00)
294 Notify (\_SB.PCI0.USB1, 0x00)
295 Notify (\_SB.PCI0.USB0, 0x01)
296 Notify (\_SB.PCI0.USB1, 0x01)
297 }
298
299 Store (0xFF, DBG1)
300 Notify (\_SB.PCI0.UAR1, 0x00)
301 And (P62, 0xFFBF, P62)
302 Store (P40, Local0)
303 Store (Local0, P40)
304 If (LEqual (OSFL, 0x01))
305 {
306 Notify (\_SB.PWRB, 0x02)
307 }
308 Else
309 {
310 If (LEqual (Arg0, 0x01))
311 {
312 And (P1, 0x04, Local0)
313 If (LEqual (Local0, 0x00))
314 {
315 Notify (\_SB.PWRB, 0x02)
316 }
317 }
318
319 If (LEqual (Arg0, 0x03))
320 {
321 If (LEqual (RTCW, Zero))
322 {
323 Notify (\_SB.PWRB, 0x02)
324 }
325 }
326 }
327 }
328
329 Scope (\_SI)
330 {
331 Method (_MSG, 1, NotSerialized) // _MSG: Message
332 {
333 Store (Local0, Local0)
334 }
335
336 Method (_SST, 1, NotSerialized) // _SST: System Status
337 {
338 Store (Local0, Local0)
339 }
340 }
341
342 Scope (\_GPE)
343 {
344 Method (_L13, 0, NotSerialized) // _Lxx: Level-Triggered GPE
345 {
346 Notify (\_SB.FUTS, 0x80)
347 }
348
349 Method (_L0E, 0, NotSerialized) // _Lxx: Level-Triggered GPE
350 {
351 Notify (\_SB.PCI0.USB0, 0x02)
352 }
353
354 Method (_L04, 0, NotSerialized) // _Lxx: Level-Triggered GPE
355 {
356 Notify (\_SB.PCI0.USB1, 0x02)
357 }
358
359 Method (_L07, 0, NotSerialized) // _Lxx: Level-Triggered GPE
360 {
361 Notify (\_SB.PCI0.USB2, 0x02)
362 }
363
364 Method (_L06, 0, NotSerialized) // _Lxx: Level-Triggered GPE
365 {
366 Notify (\_SB.PCI0.USB3, 0x02)
367 }
368
369 Method (_L05, 0, NotSerialized) // _Lxx: Level-Triggered GPE
370 {
371 Notify (\_SB.PCI0.AMR0, 0x02)
372 }
373
374 Method (_L08, 0, NotSerialized) // _Lxx: Level-Triggered GPE
375 {
376 Notify (\_SB.PCI0.UAR1, 0x00)
377 }
378
379 Method (_L0F, 0, NotSerialized) // _Lxx: Level-Triggered GPE
380 {
381 Notify (\_SB.PCI0.PS2K, 0x00)
382 }
383
384 Method (_L0D, 0, NotSerialized) // _Lxx: Level-Triggered GPE
385 {
386 Notify (\_SB.PCI0.PS2M, 0x00)
387 }
388
389 Method (_L0B, 0, NotSerialized) // _Lxx: Level-Triggered GPE
390 {
391 Notify (\_SB.PCI0, 0x02)
392 Notify (\_SB.PCI0.PCI1, 0x02)
393 Notify (\_SB.PCI0.PCI2, 0x02)
394 Notify (\_SB.PCI0.PCI3, 0x02)
395 Notify (\_SB.PCI0.PCI4, 0x02)
396 }
397
398 Method (_L0C, 0, NotSerialized) // _Lxx: Level-Triggered GPE
399 {
400 Notify (\_SB.PCI0.MAC0, 0x02)
401 }
402 }
403
404 Scope (\_SB)
405 {
406 Device (PWRB)
407 {
408 Name (_HID, EisaId ("PNP0C0C")) // _HID: Hardware ID
409 Method (_STA, 0, NotSerialized) // _STA: Status
410 {
411 Return (0x0B)
412 }
413 }
414
415 Device (FUTS)
416 {
417 Name (_HID, EisaId ("PNP0C0E")) // _HID: Hardware ID
418 Method (_STA, 0, NotSerialized) // _STA: Status
419 {
420 Return (0x0B)
421 }
422 }
423
424 Device (MEM)
425 {
426 Name (_HID, EisaId ("PNP0C01")) // _HID: Hardware ID
427 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
428 {
429 Name (BUF0, ResourceTemplate ()
430 {
431 Memory32Fixed (ReadWrite,
432 0x000F0000, // Address Base
433 0x00004000, // Address Length
434 _Y00)
435 Memory32Fixed (ReadWrite,
436 0x000F4000, // Address Base
437 0x00004000, // Address Length
438 _Y01)
439 Memory32Fixed (ReadWrite,
440 0x000F8000, // Address Base
441 0x00004000, // Address Length
442 _Y02)
443 Memory32Fixed (ReadWrite,
444 0x000FC000, // Address Base
445 0x00004000, // Address Length
446 _Y03)
447 Memory32Fixed (ReadWrite,
448 0xFFFF0000, // Address Base
449 0x00010000, // Address Length
450 )
451 Memory32Fixed (ReadWrite,
452 0xFFEE0000, // Address Base
453 0x00020000, // Address Length
454 )
455 Memory32Fixed (ReadWrite,
456 0xFFFE0000, // Address Base
457 0x00010000, // Address Length
458 )
459 Memory32Fixed (ReadWrite,
460 0xFEC00000, // Address Base
461 0x00100000, // Address Length
462 )
463 Memory32Fixed (ReadWrite,
464 0xFEE00000, // Address Base
465 0x00100000, // Address Length
466 )
467 })
468 CreateDWordField (BUF0, \_SB.MEM._CRS._Y00._BAS, RMA1) // _BAS: Base Address
469 CreateDWordField (BUF0, \_SB.MEM._CRS._Y00._LEN, RSS1) // _LEN: Length
470 CreateDWordField (BUF0, \_SB.MEM._CRS._Y01._BAS, RMA2) // _BAS: Base Address
471 CreateDWordField (BUF0, \_SB.MEM._CRS._Y01._LEN, RSS2) // _LEN: Length
472 CreateDWordField (BUF0, \_SB.MEM._CRS._Y02._BAS, RMA3) // _BAS: Base Address
473 CreateDWordField (BUF0, \_SB.MEM._CRS._Y02._LEN, RSS3) // _LEN: Length
474 CreateDWordField (BUF0, \_SB.MEM._CRS._Y03._BAS, RMA4) // _BAS: Base Address
475 CreateDWordField (BUF0, \_SB.MEM._CRS._Y03._LEN, RSS4) // _LEN: Length
476 If (LNotEqual (ROM1, Zero))
477 {
478 Store (RMA1, RMA2)
479 ShiftLeft (ROM1, 0x08, Local0)
480 Store (Local0, RMA1)
481 ShiftLeft (RMS1, 0x08, Local0)
482 Store (Local0, RSS1)
483 Store (0x8000, RSS2)
484 }
485
486 If (LNotEqual (ROM2, Zero))
487 {
488 Store (RMA2, RMA3)
489 ShiftLeft (ROM2, 0x08, Local0)
490 Store (Local0, RMA2)
491 ShiftLeft (RMS2, 0x08, Local0)
492 Store (Local0, RSS2)
493 Store (0xC000, RSS3)
494 }
495
496 If (LNotEqual (ROM3, Zero))
497 {
498 Store (RMA3, RMA4)
499 ShiftLeft (ROM3, 0x08, Local0)
500 Store (Local0, RMA3)
501 ShiftLeft (RMS3, 0x08, Local0)
502 Store (Local0, RSS3)
503 Store (0x00010000, RSS4)
504 }
505
506 Return (BUF0)
507 }
508 }
509
510 Device (PCI0)
511 {
512 Name (_HID, EisaId ("PNP0A03")) // _HID: Hardware ID
513 Name (_ADR, 0x00) // _ADR: Address
514 Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
515 {
516 If (LEqual (OSFL, 0x02))
517 {
518 Return (0x02)
519 }
520 Else
521 {
522 Return (0x03)
523 }
524 }
525
526 Device (IDEC)
527 {
528 Name (_ADR, 0x00020005) // _ADR: Address
529 Name (IO5T, Package (0x03)
530 {
531 Package (0x07)
532 {
533 0x78,
534 0xB4,
535 0x014A,
536 0x0186,
537 0x0258,
538 0x78,
539 0x96
540 },
541
542 Package (0x07)
543 {
544 0x06,
545 0x07,
546 0x1C,
547 0x1C,
548 0x1C,
549 0x06,
550 0x07
551 },
552
553 Package (0x07)
554 {
555 0x04,
556 0x09,
557 0x03,
558 0x09,
559 0x1E,
560 0x04,
561 0x06
562 }
563 })
564 Name (IO6T, Package (0x03)
565 {
566 Package (0x07)
567 {
568 0x78,
569 0xB4,
570 0x014A,
571 0x0186,
572 0x0258,
573 0x78,
574 0xB4
575 },
576
577 Package (0x07)
578 {
579 0x09,
580 0x0A,
581 0x26,
582 0x26,
583 0x26,
584 0x09,
585 0x0A
586 },
587
588 Package (0x07)
589 {
590 0x05,
591 0x0C,
592 0x04,
593 0x0C,
594 0x28,
595 0x05,
596 0x0C
597 }
598 })
599 Name (UM5T, Package (0x06)
600 {
601 0x0B,
602 0x07,
603 0x05,
604 0x04,
605 0x02,
606 0x01
607 })
608 Name (UM6T, Package (0x07)
609 {
610 0x0F,
611 0x0A,
612 0x07,
613 0x05,
614 0x03,
615 0x02,
616 0x01
617 })
618 Name (PIO5, Package (0x05)
619 {
620 0x3A,
621 0x25,
622 0x1F,
623 0x10,
624 0x0A
625 })
626 Name (PIO6, Package (0x05)
627 {
628 0x4E,
629 0x32,
630 0x2A,
631 0x16,
632 0x0E
633 })
634 Name (CRCT, Package (0x07)
635 {
636 0x06,
637 0x04,
638 0x03,
639 0x01,
640 0x01,
641 0x01,
642 0x01
643 })
644 Name (INTT, Package (0x05)
645 {
646 0x02,
647 0x02,
648 0x02,
649 0x04,
650 0x06
651 })
652 Name (DMAT, Package (0x05)
653 {
654 0x00,
655 0x01,
656 0x01,
657 0x01,
658 0x02
659 })
660 Name (RMFL, 0x01)
661 OperationRegion (CF40, PCI_Config, 0x40, 0x18)
662 Field (CF40, WordAcc, NoLock, Preserve)
663 {
664 , 1,
665 IOR0, 1,
666 UDM0, 1,
667 UM60, 1,
668 UCT0, 4,
669 CRC0, 4,
670 INI0, 4,
671 ATT0, 6,
672 Offset (0x03),
673 RCT0, 6,
674 Offset (0x04),
675 , 1,
676 IOR1, 1,
677 UDM1, 1,
678 UM61, 1,
679 UCT1, 4,
680 CRC1, 4,
681 INI1, 4,
682 ATT1, 6,
683 Offset (0x07),
684 RCT1, 6,
685 Offset (0x08),
686 , 1,
687 IOR2, 1,
688 UDM2, 1,
689 UM62, 1,
690 UCT2, 4,
691 CRC2, 4,
692 INI2, 4,
693 ATT2, 6,
694 Offset (0x0B),
695 RCT2, 6,
696 Offset (0x0C),
697 , 1,
698 IOR3, 1,
699 UDM3, 1,
700 UM63, 1,
701 UCT3, 4,
702 CRC3, 4,
703 INI3, 4,
704 ATT3, 6,
705 Offset (0x0F),
706 RCT3, 6,
707 Offset (0x10),
708 , 1,
709 CHE0, 1,
710 Offset (0x12),
711 , 1,
712 CHE1, 1,
713 Offset (0x14),
714 , 30,
715 REMP, 1,
716 Offset (0x18)
717 }
718
719 Name (IDEP, Buffer (0x14) {})
720 CreateDWordField (IDEP, 0x00, GTM0)
721 CreateDWordField (IDEP, 0x04, GTM1)
722 CreateDWordField (IDEP, 0x08, GTM2)
723 CreateDWordField (IDEP, 0x0C, GTM3)
724 CreateDWordField (IDEP, 0x10, GTM4)
725 Device (IDE0)
726 {
727 Name (_ADR, 0x00) // _ADR: Address
728 Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode
729 {
730 Store (0xFFFFFFFF, Local0)
731 Store (0xFFFFFFFF, Local1)
732 Store (0xFFFFFFFF, Local2)
733 Store (0xFFFFFFFF, Local3)
734 Store (0x10, Local4)
735 Store (REMP, RMFL)
736 Store (0x00, REMP)
737 If (CHE0)
738 {
739 If (LNotEqual (ATT0, 0x00))
740 {
741 Add (RCT0, 0x01, Local5)
742 Add (ATT0, 0x01, Local6)
743 Add (Local5, Local6, Local5)
744 Multiply (UM60, 0x05, Local6)
745 Subtract (0x14, Local6, Local7)
746 Multiply (Local5, Local7, Local0)
747 ShiftRight (Local0, 0x01, Local0)
748 If (LLessEqual (Local0, 0xB4))
749 {
750 Store (Local0, Local1)
751 }
752
753 If (IOR0)
754 {
755 Or (Local4, 0x02, Local4)
756 }
757
758 If (UDM0)
759 {
760 Add (UCT0, 0x01, Local5)
761 Multiply (Local5, Local7, Local6)
762 ShiftRight (Local6, 0x01, Local1)
763 Or (Local4, 0x01, Local4)
764 }
765 }
766
767 If (LNotEqual (ATT1, 0x00))
768 {
769 Add (RCT1, 0x01, Local5)
770 Add (ATT1, 0x01, Local6)
771 Add (Local5, Local6, Local5)
772 Multiply (UM61, 0x05, Local6)
773 Subtract (0x14, Local6, Local7)
774 Multiply (Local5, Local7, Local2)
775 ShiftRight (Local2, 0x01, Local2)
776 If (LLessEqual (Local2, 0xB4))
777 {
778 Store (Local2, Local3)
779 }
780
781 If (IOR1)
782 {
783 Or (Local4, 0x08, Local4)
784 }
785
786 If (UDM1)
787 {
788 Add (UCT1, 0x01, Local5)
789 Multiply (Local5, Local7, Local6)
790 ShiftRight (Local6, 0x01, Local3)
791 Or (Local4, 0x04, Local4)
792 }
793 }
794 }
795
796 Store (RMFL, REMP)
797 Store (Local0, GTM0)
798 Store (Local1, GTM1)
799 Store (Local2, GTM2)
800 Store (Local3, GTM3)
801 Store (Local4, GTM4)
802 Return (IDEP)
803 }
804
805 Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode
806 {
807 Store (Arg0, IDEP)
808 Store (GTM0, Local0)
809 Store (GTM1, Local1)
810 Store (GTM2, Local2)
811 Store (GTM3, Local3)
812 Store (GTM4, Local4)
813 Store (REMP, RMFL)
814 Store (0x00, REMP)
815 If (LAnd (LNotEqual (Local1, 0xFFFFFFFF), LNotEqual (Local1, 0x00)))
816 {
817 If (And (Local4, 0x01))
818 {
819 Store (0x01, UDM0)
820 If (LLess (Local1, 0x14))
821 {
822 Store (0x01, UM60)
823 Store (0x01, UCT0)
824 }
825 Else
826 {
827 Store (0x00, UM60)
828 Divide (Local1, 0x0A, Local6, Local5)
829 Decrement (Local5)
830 Store (Local5, UCT0)
831 Store (Match (UM5T, MEQ, Local5, MTR, 0x00, 0x00), Local5)
832 Store (DerefOf (Index (CRCT, Local5)), CRC0)
833 }
834 }
835 }
836
837 If (LAnd (LNotEqual (Local0, 0xFFFFFFFF), LNotEqual (Local0, 0x00)))
838 {
839 If (UM60)
840 {
841 Store (Match (DerefOf (Index (IO6T, 0x00)), MEQ, Local0, MTR,
842 0x00, 0x00), Local6)
843 Store (DerefOf (Index (DerefOf (Index (IO6T, 0x01)), Local6)),
844 ATT0)
845 Store (DerefOf (Index (DerefOf (Index (IO6T, 0x02)), Local6)),
846 RCT0)
847 }
848 Else
849 {
850 Store (Match (DerefOf (Index (IO5T, 0x00)), MEQ, Local0, MTR,
851 0x00, 0x00), Local6)
852 Store (DerefOf (Index (DerefOf (Index (IO5T, 0x01)), Local6)),
853 ATT0)
854 Store (DerefOf (Index (DerefOf (Index (IO5T, 0x02)), Local6)),
855 RCT0)
856 Store (DerefOf (Index (INTT, Local6)), INI0)
857 }
858 }
859
860 If (LAnd (LNotEqual (Local3, 0xFFFFFFFF), LNotEqual (Local3, 0x00)))
861 {
862 If (And (Local4, 0x04))
863 {
864 Store (0x01, UDM1)
865 If (LLess (Local3, 0x14))
866 {
867 Store (0x01, UM61)
868 Store (0x01, UCT1)
869 }
870 Else
871 {
872 Store (0x00, UM61)
873 Divide (Local3, 0x0A, Local6, Local5)
874 Decrement (Local5)
875 Store (Local5, UCT1)
876 Store (Match (UM5T, MEQ, Local5, MTR, 0x00, 0x00), Local5)
877 Store (DerefOf (Index (CRCT, Local5)), CRC1)
878 }
879 }
880 }
881
882 If (LAnd (LNotEqual (Local2, 0xFFFFFFFF), LNotEqual (Local2, 0x00)))
883 {
884 If (UM61)
885 {
886 Store (Match (DerefOf (Index (IO6T, 0x00)), MEQ, Local2, MTR,
887 0x00, 0x00), Local6)
888 Store (DerefOf (Index (DerefOf (Index (IO6T, 0x01)), Local6)),
889 ATT1)
890 Store (DerefOf (Index (DerefOf (Index (IO6T, 0x02)), Local6)),
891 RCT1)
892 }
893 Else
894 {
895 Store (Match (DerefOf (Index (IO5T, 0x00)), MEQ, Local2, MTR,
896 0x00, 0x00), Local6)
897 Store (DerefOf (Index (DerefOf (Index (IO5T, 0x01)), Local6)),
898 ATT1)
899 Store (DerefOf (Index (DerefOf (Index (IO5T, 0x02)), Local6)),
900 RCT1)
901 Store (DerefOf (Index (INTT, Local6)), INI1)
902 }
903 }
904
905 Store (RMFL, REMP)
906 }
907
908 Device (DRV0)
909 {
910 Name (_ADR, 0x00) // _ADR: Address
911 Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
912 {
913 Store (Buffer (0x07)
914 {
915 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
916 }, Local6)
917 Store (Buffer (0x07)
918 {
919 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
920 }, Local7)
921 CreateByteField (Local6, 0x01, MODE)
922 CreateByteField (Local7, 0x01, UMOD)
923 Store (REMP, RMFL)
924 Store (0x00, REMP)
925 If (LNotEqual (ATT0, 0x00))
926 {
927 Add (ATT0, RCT0, Local5)
928 If (UM60)
929 {
930 Store (Match (PIO6, MEQ, Local5, MTR, 0x00, 0x00), MODE)
931 }
932 Else
933 {
934 Store (Match (PIO5, MEQ, Local5, MTR, 0x00, 0x00), MODE)
935 }
936
937 If (UDM0)
938 {
939 If (UM60)
940 {
941 Store (Match (UM6T, MEQ, UCT0, MTR, 0x00, 0x00), UMOD)
942 }
943 Else
944 {
945 Store (Match (UM5T, MEQ, UCT0, MTR, 0x00, 0x00), UMOD)
946 }
947
948 Or (UMOD, 0x40, UMOD)
949 }
950 Else
951 {
952 Store (DerefOf (Index (DMAT, MODE)), UMOD)
953 Or (UMOD, 0x20, UMOD)
954 }
955
956 Or (MODE, 0x08, MODE)
957 }
958
959 Store (RMFL, REMP)
960 Concatenate (Local6, Local7, Local5)
961 Concatenate (Local5, Buffer (0x07)
962 {
963 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
964 }, Local0)
965 Return (Local0)
966 }
967 }
968
969 Device (DRV1)
970 {
971 Name (_ADR, 0x01) // _ADR: Address
972 Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
973 {
974 Store (Buffer (0x07)
975 {
976 0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
977 }, Local6)
978 Store (Buffer (0x07)
979 {
980 0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
981 }, Local7)
982 CreateByteField (Local6, 0x01, MODE)
983 CreateByteField (Local7, 0x01, UMOD)
984 Store (REMP, RMFL)
985 Store (0x00, REMP)
986 If (LNotEqual (ATT1, 0x00))
987 {
988 Add (ATT1, RCT1, Local5)
989 If (UM61)
990 {
991 Store (Match (PIO6, MEQ, Local5, MTR, 0x00, 0x00), MODE)
992 }
993 Else
994 {
995 Store (Match (PIO5, MEQ, Local5, MTR, 0x00, 0x00), MODE)
996 }
997
998 If (UDM1)
999 {
1000 If (UM61)
1001 {
1002 Store (Match (UM6T, MEQ, UCT1, MTR, 0x00, 0x00), UMOD)
1003 }
1004 Else
1005 {
1006 Store (Match (UM5T, MEQ, UCT1, MTR, 0x00, 0x00), UMOD)
1007 }
1008
1009 Or (UMOD, 0x40, UMOD)
1010 }
1011 Else
1012 {
1013 Store (DerefOf (Index (DMAT, MODE)), UMOD)
1014 Or (UMOD, 0x20, UMOD)
1015 }
1016
1017 Or (MODE, 0x08, MODE)
1018 }
1019
1020 Store (RMFL, REMP)
1021 Concatenate (Local6, Local7, Local5)
1022 Concatenate (Local5, Buffer (0x07)
1023 {
1024 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
1025 }, Local0)
1026 Return (Local0)
1027 }
1028 }
1029 }
1030
1031 Device (IDE1)
1032 {
1033 Name (_ADR, 0x01) // _ADR: Address
1034 Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode
1035 {
1036 Store (0xFFFFFFFF, Local0)
1037 Store (0xFFFFFFFF, Local1)
1038 Store (0xFFFFFFFF, Local2)
1039 Store (0xFFFFFFFF, Local3)
1040 Store (0x10, Local4)
1041 Store (REMP, RMFL)
1042 Store (0x00, REMP)
1043 If (CHE1)
1044 {
1045 If (LNotEqual (ATT2, 0x00))
1046 {
1047 Add (RCT2, 0x01, Local5)
1048 Add (ATT2, 0x01, Local6)
1049 Add (Local5, Local6, Local5)
1050 Multiply (UM62, 0x05, Local6)
1051 Subtract (0x14, Local6, Local7)
1052 Multiply (Local5, Local7, Local0)
1053 ShiftRight (Local0, 0x01, Local0)
1054 If (LLessEqual (Local0, 0xB4))
1055 {
1056 Store (Local0, Local1)
1057 }
1058
1059 If (IOR2)
1060 {
1061 Or (Local4, 0x02, Local4)
1062 }
1063
1064 If (UDM2)
1065 {
1066 Add (UCT2, 0x01, Local5)
1067 Multiply (Local5, Local7, Local6)
1068 ShiftRight (Local6, 0x01, Local1)
1069 Or (Local4, 0x01, Local4)
1070 }
1071 }
1072
1073 If (LNotEqual (ATT3, 0x00))
1074 {
1075 Add (RCT3, 0x01, Local5)
1076 Add (ATT3, 0x01, Local6)
1077 Add (Local5, Local6, Local5)
1078 Multiply (UM63, 0x05, Local6)
1079 Subtract (0x14, Local6, Local7)
1080 Multiply (Local5, Local7, Local2)
1081 ShiftRight (Local2, 0x01, Local2)
1082 If (LLessEqual (Local2, 0xB4))
1083 {
1084 Store (Local2, Local3)
1085 }
1086
1087 If (IOR3)
1088 {
1089 Or (Local4, 0x08, Local4)
1090 }
1091
1092 If (UDM3)
1093 {
1094 Add (UCT3, 0x01, Local5)
1095 Multiply (Local5, Local7, Local6)
1096 ShiftRight (Local6, 0x01, Local3)
1097 Or (Local4, 0x04, Local4)
1098 }
1099 }
1100 }
1101
1102 Store (RMFL, REMP)
1103 Store (Local0, GTM0)
1104 Store (Local1, GTM1)
1105 Store (Local2, GTM2)
1106 Store (Local3, GTM3)
1107 Store (Local4, GTM4)
1108 Return (IDEP)
1109 }
1110
1111 Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode
1112 {
1113 Store (Arg0, IDEP)
1114 Store (GTM0, Local0)
1115 Store (GTM1, Local1)
1116 Store (GTM2, Local2)
1117 Store (GTM3, Local3)
1118 Store (GTM4, Local4)
1119 Store (REMP, RMFL)
1120 Store (0x00, REMP)
1121 If (LAnd (LNotEqual (Local1, 0xFFFFFFFF), LNotEqual (Local1, 0x00)))
1122 {
1123 If (And (Local4, 0x01))
1124 {
1125 Store (0x01, UDM2)
1126 If (LLess (Local1, 0x14))
1127 {
1128 Store (0x01, UM62)
1129 Store (0x01, UCT2)
1130 }
1131 Else
1132 {
1133 Store (0x00, UM62)
1134 Divide (Local1, 0x0A, Local6, Local5)
1135 Decrement (Local5)
1136 Store (Local5, UCT2)
1137 Store (Match (UM5T, MEQ, Local5, MTR, 0x00, 0x00), Local5)
1138 Store (DerefOf (Index (CRCT, Local5)), CRC2)
1139 }
1140 }
1141 }
1142
1143 If (LAnd (LNotEqual (Local0, 0xFFFFFFFF), LNotEqual (Local0, 0x00)))
1144 {
1145 If (UM62)
1146 {
1147 Store (Match (DerefOf (Index (IO6T, 0x00)), MEQ, Local0, MTR,
1148 0x00, 0x00), Local6)
1149 Store (DerefOf (Index (DerefOf (Index (IO6T, 0x01)), Local6)),
1150 ATT2)
1151 Store (DerefOf (Index (DerefOf (Index (IO6T, 0x02)), Local6)),
1152 RCT2)
1153 }
1154 Else
1155 {
1156 Store (Match (DerefOf (Index (IO5T, 0x00)), MEQ, Local0, MTR,
1157 0x00, 0x00), Local6)
1158 Store (DerefOf (Index (DerefOf (Index (IO5T, 0x01)), Local6)),
1159 ATT2)
1160 Store (DerefOf (Index (DerefOf (Index (IO5T, 0x02)), Local6)),
1161 RCT2)
1162 Store (DerefOf (Index (INTT, Local6)), INI2)
1163 }
1164 }
1165
1166 If (LAnd (LNotEqual (Local3, 0xFFFFFFFF), LNotEqual (Local3, 0x00)))
1167 {
1168 If (And (Local4, 0x04))
1169 {
1170 Store (0x01, UDM3)
1171 If (LLess (Local3, 0x14))
1172 {
1173 Store (0x01, UM63)
1174 Store (0x01, UCT3)
1175 }
1176 Else
1177 {
1178 Store (0x00, UM63)
1179 Divide (Local3, 0x0A, Local6, Local5)
1180 Decrement (Local5)
1181 Store (Local5, UCT3)
1182 Store (Match (UM5T, MEQ, Local5, MTR, 0x00, 0x00), Local5)
1183 Store (DerefOf (Index (CRCT, Local5)), CRC3)
1184 }
1185 }
1186 }
1187
1188 If (LAnd (LNotEqual (Local2, 0xFFFFFFFF), LNotEqual (Local2, 0x00)))
1189 {
1190 If (UM63)
1191 {
1192 Store (Match (DerefOf (Index (IO6T, 0x00)), MEQ, Local2, MTR,
1193 0x00, 0x00), Local6)
1194 Store (DerefOf (Index (DerefOf (Index (IO6T, 0x01)), Local6)),
1195 ATT3)
1196 Store (DerefOf (Index (DerefOf (Index (IO6T, 0x02)), Local6)),
1197 RCT3)
1198 }
1199 Else
1200 {
1201 Store (Match (DerefOf (Index (IO5T, 0x00)), MEQ, Local2, MTR,
1202 0x00, 0x00), Local6)
1203 Store (DerefOf (Index (DerefOf (Index (IO5T, 0x01)), Local6)),
1204 ATT3)
1205 Store (DerefOf (Index (DerefOf (Index (IO5T, 0x02)), Local6)),
1206 RCT3)
1207 Store (DerefOf (Index (INTT, Local6)), INI3)
1208 }
1209 }
1210
1211 Store (RMFL, REMP)
1212 }
1213
1214 Device (DRV0)
1215 {
1216 Name (_ADR, 0x00) // _ADR: Address
1217 Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
1218 {
1219 Store (Buffer (0x07)
1220 {
1221 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
1222 }, Local6)
1223 Store (Buffer (0x07)
1224 {
1225 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
1226 }, Local7)
1227 CreateByteField (Local6, 0x01, MODE)
1228 CreateByteField (Local7, 0x01, UMOD)
1229 Store (REMP, RMFL)
1230 Store (0x00, REMP)
1231 If (LNotEqual (ATT2, 0x00))
1232 {
1233 Add (ATT2, RCT2, Local5)
1234 If (UM62)
1235 {
1236 Store (Match (PIO6, MEQ, Local5, MTR, 0x00, 0x00), MODE)
1237 }
1238 Else
1239 {
1240 Store (Match (PIO5, MEQ, Local5, MTR, 0x00, 0x00), MODE)
1241 }
1242
1243 If (UDM2)
1244 {
1245 If (UM62)
1246 {
1247 Store (Match (UM6T, MEQ, UCT2, MTR, 0x00, 0x00), UMOD)
1248 }
1249 Else
1250 {
1251 Store (Match (UM5T, MEQ, UCT2, MTR, 0x00, 0x00), UMOD)
1252 }
1253
1254 Or (UMOD, 0x40, UMOD)
1255 }
1256 Else
1257 {
1258 Store (DerefOf (Index (DMAT, MODE)), UMOD)
1259 Or (UMOD, 0x20, UMOD)
1260 }
1261
1262 Or (MODE, 0x08, MODE)
1263 }
1264
1265 Store (RMFL, REMP)
1266 Concatenate (Local6, Local7, Local5)
1267 Concatenate (Local5, Buffer (0x07)
1268 {
1269 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
1270 }, Local0)
1271 Return (Local0)
1272 }
1273 }
1274
1275 Device (DRV1)
1276 {
1277 Name (_ADR, 0x01) // _ADR: Address
1278 Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
1279 {
1280 Store (Buffer (0x07)
1281 {
1282 0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
1283 }, Local6)
1284 Store (Buffer (0x07)
1285 {
1286 0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
1287 }, Local7)
1288 CreateByteField (Local6, 0x01, MODE)
1289 CreateByteField (Local7, 0x01, UMOD)
1290 Store (REMP, RMFL)
1291 Store (0x00, REMP)
1292 If (LNotEqual (ATT3, 0x00))
1293 {
1294 Add (ATT3, RCT3, Local5)
1295 If (UM63)
1296 {
1297 Store (Match (PIO6, MEQ, Local5, MTR, 0x00, 0x00), MODE)
1298 }
1299 Else
1300 {
1301 Store (Match (PIO5, MEQ, Local5, MTR, 0x00, 0x00), MODE)
1302 }
1303
1304 If (UDM3)
1305 {
1306 If (UM63)
1307 {
1308 Store (Match (UM6T, MEQ, UCT3, MTR, 0x00, 0x00), UMOD)
1309 }
1310 Else
1311 {
1312 Store (Match (UM5T, MEQ, UCT3, MTR, 0x00, 0x00), UMOD)
1313 }
1314
1315 Or (UMOD, 0x40, UMOD)
1316 }
1317 Else
1318 {
1319 Store (DerefOf (Index (DMAT, MODE)), UMOD)
1320 Or (UMOD, 0x20, UMOD)
1321 }
1322
1323 Or (MODE, 0x08, MODE)
1324 }
1325
1326 Store (RMFL, REMP)
1327 Concatenate (Local6, Local7, Local5)
1328 Concatenate (Local5, Buffer (0x07)
1329 {
1330 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
1331 }, Local0)
1332 Return (Local0)
1333 }
1334 }
1335 }
1336 }
1337
1338 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
1339 {
1340 Name (BUF0, ResourceTemplate ()
1341 {
1342 WordBusNumber (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode,
1343 0x0000, // Granularity
1344 0x0000, // Range Minimum
1345 0x00FF, // Range Maximum
1346 0x0000, // Translation Offset
1347 0x0100, // Length
1348 ,, )
1349 IO (Decode16,
1350 0x0CF8, // Range Minimum
1351 0x0CF8, // Range Maximum
1352 0x01, // Alignment
1353 0x08, // Length
1354 )
1355 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1356 0x0000, // Granularity
1357 0x0000, // Range Minimum
1358 0x047F, // Range Maximum
1359 0x0000, // Translation Offset
1360 0x0480, // Length
1361 ,, , TypeStatic)
1362 IO (Decode16,
1363 0x0480, // Range Minimum
1364 0x0480, // Range Maximum
1365 0x01, // Alignment
1366 0x10, // Length
1367 )
1368 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1369 0x0000, // Granularity
1370 0x0490, // Range Minimum
1371 0x0CF7, // Range Maximum
1372 0x0000, // Translation Offset
1373 0x0868, // Length
1374 ,, , TypeStatic)
1375 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1376 0x0000, // Granularity
1377 0x0D00, // Range Minimum
1378 0x0FFF, // Range Maximum
1379 0x0000, // Translation Offset
1380 0x0300, // Length
1381 ,, , TypeStatic)
1382 IO (Decode16,
1383 0x1000, // Range Minimum
1384 0x1000, // Range Maximum
1385 0x01, // Alignment
1386 0xC0, // Length
1387 )
1388 IO (Decode16,
1389 0x10C0, // Range Minimum
1390 0x10C0, // Range Maximum
1391 0x01, // Alignment
1392 0x40, // Length
1393 )
1394 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1395 0x0000, // Granularity
1396 0x1100, // Range Minimum
1397 0xFFFF, // Range Maximum
1398 0x0000, // Translation Offset
1399 0xEF00, // Length
1400 ,, , TypeStatic)
1401 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1402 0x00000000, // Granularity
1403 0x000A0000, // Range Minimum
1404 0x000BFFFF, // Range Maximum
1405 0x00000000, // Translation Offset
1406 0x00020000, // Length
1407 ,, , AddressRangeMemory, TypeStatic)
1408 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1409 0x00000000, // Granularity
1410 0x00100000, // Range Minimum
1411 0xFEBFFFFF, // Range Maximum
1412 0x00000000, // Translation Offset
1413 0xFFF00000, // Length
1414 ,, _Y04, AddressRangeMemory, TypeStatic)
1415 })
1416 CreateDWordField (BUF0, \_SB.PCI0._CRS._Y04._MIN, TCMM) // _MIN: Minimum Base Address
1417 CreateDWordField (BUF0, \_SB.PCI0._CRS._Y04._LEN, TOMM) // _LEN: Length
1418 Add (AMEM, 0x00010000, TCMM)
1419 Subtract (0xFEC00000, TCMM, TOMM)
1420 Return (BUF0)
1421 }
1422
1423 Name (PICM, Package (0x1E)
1424 {
1425 Package (0x04)
1426 {
1427 0x0006FFFF,
1428 0x00,
1429 \_SB.PCI0.LNKB,
1430 0x00
1431 },
1432
1433 Package (0x04)
1434 {
1435 0x0006FFFF,
1436 0x01,
1437 \_SB.PCI0.LNKC,
1438 0x00
1439 },
1440
1441 Package (0x04)
1442 {
1443 0x0006FFFF,
1444 0x02,
1445 \_SB.PCI0.LNKD,
1446 0x00
1447 },
1448
1449 Package (0x04)
1450 {
1451 0x0006FFFF,
1452 0x03,
1453 \_SB.PCI0.LNKA,
1454 0x00
1455 },
1456
1457 Package (0x04)
1458 {
1459 0x0007FFFF,
1460 0x00,
1461 \_SB.PCI0.LNKC,
1462 0x00
1463 },
1464
1465 Package (0x04)
1466 {
1467 0x0007FFFF,
1468 0x01,
1469 \_SB.PCI0.LNKD,
1470 0x00
1471 },
1472
1473 Package (0x04)
1474 {
1475 0x0007FFFF,
1476 0x02,
1477 \_SB.PCI0.LNKA,
1478 0x00
1479 },
1480
1481 Package (0x04)
1482 {
1483 0x0007FFFF,
1484 0x03,
1485 \_SB.PCI0.LNKB,
1486 0x00
1487 },
1488
1489 Package (0x04)
1490 {
1491 0x0008FFFF,
1492 0x00,
1493 \_SB.PCI0.LNKD,
1494 0x00
1495 },
1496
1497 Package (0x04)
1498 {
1499 0x0008FFFF,
1500 0x01,
1501 \_SB.PCI0.LNKA,
1502 0x00
1503 },
1504
1505 Package (0x04)
1506 {
1507 0x0008FFFF,
1508 0x02,
1509 \_SB.PCI0.LNKB,
1510 0x00
1511 },
1512
1513 Package (0x04)
1514 {
1515 0x0008FFFF,
1516 0x03,
1517 \_SB.PCI0.LNKC,
1518 0x00
1519 },
1520
1521 Package (0x04)
1522 {
1523 0x000AFFFF,
1524 0x00,
1525 \_SB.PCI0.LNKB,
1526 0x00
1527 },
1528
1529 Package (0x04)
1530 {
1531 0x000AFFFF,
1532 0x01,
1533 \_SB.PCI0.LNKC,
1534 0x00
1535 },
1536
1537 Package (0x04)
1538 {
1539 0x000AFFFF,
1540 0x02,
1541 \_SB.PCI0.LNKD,
1542 0x00
1543 },
1544
1545 Package (0x04)
1546 {
1547 0x000AFFFF,
1548 0x03,
1549 \_SB.PCI0.LNKA,
1550 0x00
1551 },
1552
1553 Package (0x04)
1554 {
1555 0x0002FFFF,
1556 0x00,
1557 \_SB.PCI0.LNKA,
1558 0x00
1559 },
1560
1561 Package (0x04)
1562 {
1563 0x0002FFFF,
1564 0x01,
1565 \_SB.PCI0.LNKB,
1566 0x00
1567 },
1568
1569 Package (0x04)
1570 {
1571 0x0002FFFF,
1572 0x02,
1573 \_SB.PCI0.LNKC,
1574 0x00
1575 },
1576
1577 Package (0x04)
1578 {
1579 0x0002FFFF,
1580 0x03,
1581 \_SB.PCI0.LNKD,
1582 0x00
1583 },
1584
1585 Package (0x04)
1586 {
1587 0x0003FFFF,
1588 0x00,
1589 \_SB.PCI0.LNKE,
1590 0x00
1591 },
1592
1593 Package (0x04)
1594 {
1595 0x0003FFFF,
1596 0x01,
1597 \_SB.PCI0.LNKF,
1598 0x00
1599 },
1600
1601 Package (0x04)
1602 {
1603 0x0003FFFF,
1604 0x02,
1605 \_SB.PCI0.LNKG,
1606 0x00
1607 },
1608
1609 Package (0x04)
1610 {
1611 0x0003FFFF,
1612 0x03,
1613 \_SB.PCI0.LNKH,
1614 0x00
1615 },
1616
1617 Package (0x04)
1618 {
1619 0x0004FFFF,
1620 0x00,
1621 \_SB.PCI0.LNKD,
1622 0x00
1623 },
1624
1625 Package (0x04)
1626 {
1627 0x0004FFFF,
1628 0x01,
1629 \_SB.PCI0.LNKA,
1630 0x00
1631 },
1632
1633 Package (0x04)
1634 {
1635 0x0004FFFF,
1636 0x02,
1637 \_SB.PCI0.LNKB,
1638 0x00
1639 },
1640
1641 Package (0x04)
1642 {
1643 0x0004FFFF,
1644 0x03,
1645 \_SB.PCI0.LNKC,
1646 0x00
1647 },
1648
1649 Package (0x04)
1650 {
1651 0x0001FFFF,
1652 0x00,
1653 \_SB.PCI0.LNKA,
1654 0x00
1655 },
1656
1657 Package (0x04)
1658 {
1659 0x0001FFFF,
1660 0x01,
1661 \_SB.PCI0.LNKB,
1662 0x00
1663 }
1664 })
1665 Name (APIC, Package (0x1E)
1666 {
1667 Package (0x04)
1668 {
1669 0x0006FFFF,
1670 0x00,
1671 0x00,
1672 0x11
1673 },
1674
1675 Package (0x04)
1676 {
1677 0x0006FFFF,
1678 0x01,
1679 0x00,
1680 0x12
1681 },
1682
1683 Package (0x04)
1684 {
1685 0x0006FFFF,
1686 0x02,
1687 0x00,
1688 0x13
1689 },
1690
1691 Package (0x04)
1692 {
1693 0x0006FFFF,
1694 0x03,
1695 0x00,
1696 0x10
1697 },
1698
1699 Package (0x04)
1700 {
1701 0x0007FFFF,
1702 0x00,
1703 0x00,
1704 0x12
1705 },
1706
1707 Package (0x04)
1708 {
1709 0x0007FFFF,
1710 0x01,
1711 0x00,
1712 0x13
1713 },
1714
1715 Package (0x04)
1716 {
1717 0x0007FFFF,
1718 0x02,
1719 0x00,
1720 0x10
1721 },
1722
1723 Package (0x04)
1724 {
1725 0x0007FFFF,
1726 0x03,
1727 0x00,
1728 0x11
1729 },
1730
1731 Package (0x04)
1732 {
1733 0x0008FFFF,
1734 0x00,
1735 0x00,
1736 0x13
1737 },
1738
1739 Package (0x04)
1740 {
1741 0x0008FFFF,
1742 0x01,
1743 0x00,
1744 0x10
1745 },
1746
1747 Package (0x04)
1748 {
1749 0x0008FFFF,
1750 0x02,
1751 0x00,
1752 0x11
1753 },
1754
1755 Package (0x04)
1756 {
1757 0x0008FFFF,
1758 0x03,
1759 0x00,
1760 0x12
1761 },
1762
1763 Package (0x04)
1764 {
1765 0x000AFFFF,
1766 0x00,
1767 0x00,
1768 0x11
1769 },
1770
1771 Package (0x04)
1772 {
1773 0x000AFFFF,
1774 0x01,
1775 0x00,
1776 0x12
1777 },
1778
1779 Package (0x04)
1780 {
1781 0x000AFFFF,
1782 0x02,
1783 0x00,
1784 0x13
1785 },
1786
1787 Package (0x04)
1788 {
1789 0x000AFFFF,
1790 0x03,
1791 0x00,
1792 0x10
1793 },
1794
1795 Package (0x04)
1796 {
1797 0x0002FFFF,
1798 0x00,
1799 0x00,
1800 0x10
1801 },
1802
1803 Package (0x04)
1804 {
1805 0x0002FFFF,
1806 0x01,
1807 0x00,
1808 0x11
1809 },
1810
1811 Package (0x04)
1812 {
1813 0x0002FFFF,
1814 0x02,
1815 0x00,
1816 0x12
1817 },
1818
1819 Package (0x04)
1820 {
1821 0x0002FFFF,
1822 0x03,
1823 0x00,
1824 0x13
1825 },
1826
1827 Package (0x04)
1828 {
1829 0x0003FFFF,
1830 0x00,
1831 0x00,
1832 0x14
1833 },
1834
1835 Package (0x04)
1836 {
1837 0x0003FFFF,
1838 0x01,
1839 0x00,
1840 0x15
1841 },
1842
1843 Package (0x04)
1844 {
1845 0x0003FFFF,
1846 0x02,
1847 0x00,
1848 0x16
1849 },
1850
1851 Package (0x04)
1852 {
1853 0x0003FFFF,
1854 0x03,
1855 0x00,
1856 0x17
1857 },
1858
1859 Package (0x04)
1860 {
1861 0x0004FFFF,
1862 0x00,
1863 0x00,
1864 0x13
1865 },
1866
1867 Package (0x04)
1868 {
1869 0x0004FFFF,
1870 0x01,
1871 0x00,
1872 0x10
1873 },
1874
1875 Package (0x04)
1876 {
1877 0x0004FFFF,
1878 0x02,
1879 0x00,
1880 0x11
1881 },
1882
1883 Package (0x04)
1884 {
1885 0x0004FFFF,
1886 0x03,
1887 0x00,
1888 0x12
1889 },
1890
1891 Package (0x04)
1892 {
1893 0x0001FFFF,
1894 0x00,
1895 0x00,
1896 0x10
1897 },
1898
1899 Package (0x04)
1900 {
1901 0x0001FFFF,
1902 0x01,
1903 0x00,
1904 0x11
1905 }
1906 })
1907 Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
1908 {
1909 If (LNot (PICF))
1910 {
1911 Return (PICM)
1912 }
1913 Else
1914 {
1915 Return (APIC)
1916 }
1917 }
1918
1919 Device (PCI1)
1920 {
1921 Name (_BBN, 0x00) // _BBN: BIOS Bus Number
1922 Name (_ADR, 0x0006FFFF) // _ADR: Address
1923 }
1924
1925 Device (PCI2)
1926 {
1927 Name (_BBN, 0x00) // _BBN: BIOS Bus Number
1928 Name (_ADR, 0x0007FFFF) // _ADR: Address
1929 }
1930
1931 Device (PCI3)
1932 {
1933 Name (_BBN, 0x00) // _BBN: BIOS Bus Number
1934 Name (_ADR, 0x0008FFFF) // _ADR: Address
1935 }
1936
1937 Device (PCI4)
1938 {
1939 Name (_BBN, 0x00) // _BBN: BIOS Bus Number
1940 Name (_ADR, 0x000AFFFF) // _ADR: Address
1941 }
1942
1943 Device (S962)
1944 {
1945 Name (_ADR, 0x00020000) // _ADR: Address
1946 OperationRegion (PIRQ, PCI_Config, 0x41, 0x04)
1947 Scope (\)
1948 {
1949 Field (\_SB.PCI0.S962.PIRQ, ByteAcc, NoLock, Preserve)
1950 {
1951 PIRA, 8,
1952 PIRB, 8,
1953 PIRC, 8,
1954 PIRD, 8
1955 }
1956 }
1957
1958 OperationRegion (PIR2, PCI_Config, 0x60, 0x04)
1959 Scope (\)
1960 {
1961 Field (\_SB.PCI0.S962.PIR2, ByteAcc, NoLock, Preserve)
1962 {
1963 PIRE, 8,
1964 PIRF, 8,
1965 PIRG, 8,
1966 PIRH, 8
1967 }
1968 }
1969
1970 OperationRegion (APCE, PCI_Config, 0x48, 0x01)
1971 Scope (\)
1972 {
1973 Field (\_SB.PCI0.S962.APCE, ByteAcc, NoLock, Preserve)
1974 {
1975 APC0, 8
1976 }
1977 }
1978
1979 OperationRegion (VERG, PCI_Config, 0xF0, 0x01)
1980 Scope (\)
1981 {
1982 Field (\_SB.PCI0.S962.VERG, ByteAcc, NoLock, Preserve)
1983 {
1984 SBVR, 8
1985 }
1986 }
1987
1988 OperationRegion (PS2M, PCI_Config, 0x47, 0x01)
1989 Scope (\)
1990 {
1991 Field (\_SB.PCI0.S962.PS2M, ByteAcc, NoLock, Preserve)
1992 {
1993 PS2S, 8
1994 }
1995 }
1996 }
1997
1998 Scope (\)
1999 {
2000 Method (DISD, 1, NotSerialized)
2001 {
2002 }
2003
2004 Method (CKIO, 2, NotSerialized)
2005 {
2006 }
2007
2008 Method (SLDM, 2, NotSerialized)
2009 {
2010 }
2011 }
2012
2013 Device (USB0)
2014 {
2015 Name (_ADR, 0x00030000) // _ADR: Address
2016 Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
2017 {
2018 If (LEqual (OSFL, 0x02))
2019 {
2020 Return (0x02)
2021 }
2022 Else
2023 {
2024 Return (0x03)
2025 }
2026 }
2027 }
2028
2029 Device (USB1)
2030 {
2031 Name (_ADR, 0x00030001) // _ADR: Address
2032 Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
2033 {
2034 If (LEqual (OSFL, 0x02))
2035 {
2036 Return (0x02)
2037 }
2038 Else
2039 {
2040 Return (0x03)
2041 }
2042 }
2043 }
2044
2045 Device (USB2)
2046 {
2047 Name (_ADR, 0x00030002) // _ADR: Address
2048 Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
2049 {
2050 If (LEqual (OSFL, 0x02))
2051 {
2052 Return (0x02)
2053 }
2054 Else
2055 {
2056 Return (0x03)
2057 }
2058 }
2059 }
2060
2061 Device (USB3)
2062 {
2063 Name (_ADR, 0x00030003) // _ADR: Address
2064 Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
2065 {
2066 If (LEqual (OSFL, 0x02))
2067 {
2068 Return (0x02)
2069 }
2070 Else
2071 {
2072 Return (0x03)
2073 }
2074 }
2075 }
2076
2077 Device (MAC0)
2078 {
2079 Name (_ADR, 0x00040000) // _ADR: Address
2080 }
2081
2082 Device (AUD0)
2083 {
2084 Name (_ADR, 0x00020007) // _ADR: Address
2085 }
2086
2087 Device (AMR0)
2088 {
2089 Name (_ADR, 0x00020006) // _ADR: Address
2090 }
2091
2092 Name (BUFA, ResourceTemplate ()
2093 {
2094 IRQ (Level, ActiveLow, Shared, )
2095 {3,4,5,6,7,9,10,11,12,14,15}
2096 })
2097 Name (BUFB, ResourceTemplate ()
2098 {
2099 IRQ (Level, ActiveLow, Shared, _Y05)
2100 {}
2101 })
2102 CreateWordField (BUFB, \_SB.PCI0._Y05._INT, IRQV) // _INT: Interrupts
2103 Device (LNKA)
2104 {
2105 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
2106 Name (_UID, 0x01) // _UID: Unique ID
2107 Method (_STA, 0, NotSerialized) // _STA: Status
2108 {
2109 And (PIRA, 0x80, Local0)
2110 If (LEqual (Local0, 0x80))
2111 {
2112 Return (0x09)
2113 }
2114 Else
2115 {
2116 Return (0x0B)
2117 }
2118 }
2119
2120 Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
2121 {
2122 Return (BUFA)
2123 }
2124
2125 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2126 {
2127 Or (PIRA, 0x80, PIRA)
2128 }
2129
2130 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2131 {
2132 And (PIRA, 0x0F, Local0)
2133 ShiftLeft (0x01, Local0, IRQV)
2134 Return (BUFB)
2135 }
2136
2137 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2138 {
2139 CreateWordField (Arg0, 0x01, IRQ1)
2140 FindSetRightBit (IRQ1, Local0)
2141 Decrement (Local0)
2142 Store (Local0, PIRA)
2143 }
2144 }
2145
2146 Device (LNKB)
2147 {
2148 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
2149 Name (_UID, 0x02) // _UID: Unique ID
2150 Method (_STA, 0, NotSerialized) // _STA: Status
2151 {
2152 And (PIRB, 0x80, Local0)
2153 If (LEqual (Local0, 0x80))
2154 {
2155 Return (0x09)
2156 }
2157 Else
2158 {
2159 Return (0x0B)
2160 }
2161 }
2162
2163 Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
2164 {
2165 Return (BUFA)
2166 }
2167
2168 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2169 {
2170 Or (PIRB, 0x80, PIRB)
2171 }
2172
2173 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2174 {
2175 And (PIRB, 0x0F, Local0)
2176 ShiftLeft (0x01, Local0, IRQV)
2177 Return (BUFB)
2178 }
2179
2180 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2181 {
2182 CreateWordField (Arg0, 0x01, IRQ1)
2183 FindSetRightBit (IRQ1, Local0)
2184 Decrement (Local0)
2185 Store (Local0, PIRB)
2186 }
2187 }
2188
2189 Device (LNKC)
2190 {
2191 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
2192 Name (_UID, 0x03) // _UID: Unique ID
2193 Method (_STA, 0, NotSerialized) // _STA: Status
2194 {
2195 And (PIRC, 0x80, Local0)
2196 If (LEqual (Local0, 0x80))
2197 {
2198 Return (0x09)
2199 }
2200 Else
2201 {
2202 Return (0x0B)
2203 }
2204 }
2205
2206 Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
2207 {
2208 Return (BUFA)
2209 }
2210
2211 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2212 {
2213 Or (PIRC, 0x80, PIRC)
2214 }
2215
2216 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2217 {
2218 And (PIRC, 0x0F, Local0)
2219 ShiftLeft (0x01, Local0, IRQV)
2220 Return (BUFB)
2221 }
2222
2223 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2224 {
2225 CreateWordField (Arg0, 0x01, IRQ1)
2226 FindSetRightBit (IRQ1, Local0)
2227 Decrement (Local0)
2228 Store (Local0, PIRC)
2229 }
2230 }
2231
2232 Device (LNKD)
2233 {
2234 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
2235 Name (_UID, 0x04) // _UID: Unique ID
2236 Method (_STA, 0, NotSerialized) // _STA: Status
2237 {
2238 And (PIRD, 0x80, Local0)
2239 If (LEqual (Local0, 0x80))
2240 {
2241 Return (0x09)
2242 }
2243 Else
2244 {
2245 Return (0x0B)
2246 }
2247 }
2248
2249 Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
2250 {
2251 Return (BUFA)
2252 }
2253
2254 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2255 {
2256 Or (PIRD, 0x80, PIRD)
2257 }
2258
2259 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2260 {
2261 And (PIRD, 0x0F, Local0)
2262 ShiftLeft (0x01, Local0, IRQV)
2263 Return (BUFB)
2264 }
2265
2266 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2267 {
2268 CreateWordField (Arg0, 0x01, IRQ1)
2269 FindSetRightBit (IRQ1, Local0)
2270 Decrement (Local0)
2271 Store (Local0, PIRD)
2272 }
2273 }
2274
2275 Device (LNKE)
2276 {
2277 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
2278 Name (_UID, 0x05) // _UID: Unique ID
2279 Method (_STA, 0, NotSerialized) // _STA: Status
2280 {
2281 And (PIRE, 0x80, Local0)
2282 If (LEqual (Local0, 0x80))
2283 {
2284 Return (0x09)
2285 }
2286 Else
2287 {
2288 Return (0x0B)
2289 }
2290 }
2291
2292 Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
2293 {
2294 Return (BUFA)
2295 }
2296
2297 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2298 {
2299 Or (PIRE, 0x80, PIRE)
2300 }
2301
2302 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2303 {
2304 And (PIRE, 0x0F, Local0)
2305 ShiftLeft (0x01, Local0, IRQV)
2306 Return (BUFB)
2307 }
2308
2309 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2310 {
2311 CreateWordField (Arg0, 0x01, IRQ1)
2312 FindSetRightBit (IRQ1, Local0)
2313 Decrement (Local0)
2314 Store (Local0, PIRE)
2315 }
2316 }
2317
2318 Device (LNKF)
2319 {
2320 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
2321 Name (_UID, 0x06) // _UID: Unique ID
2322 Method (_STA, 0, NotSerialized) // _STA: Status
2323 {
2324 And (PIRF, 0x80, Local0)
2325 If (LEqual (Local0, 0x80))
2326 {
2327 Return (0x09)
2328 }
2329 Else
2330 {
2331 Return (0x0B)
2332 }
2333 }
2334
2335 Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
2336 {
2337 Return (BUFA)
2338 }
2339
2340 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2341 {
2342 Or (PIRF, 0x80, PIRF)
2343 }
2344
2345 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2346 {
2347 And (PIRF, 0x0F, Local0)
2348 ShiftLeft (0x01, Local0, IRQV)
2349 Return (BUFB)
2350 }
2351
2352 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2353 {
2354 CreateWordField (Arg0, 0x01, IRQ1)
2355 FindSetRightBit (IRQ1, Local0)
2356 Decrement (Local0)
2357 Store (Local0, PIRF)
2358 }
2359 }
2360
2361 Device (LNKG)
2362 {
2363 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
2364 Name (_UID, 0x07) // _UID: Unique ID
2365 Method (_STA, 0, NotSerialized) // _STA: Status
2366 {
2367 And (PIRG, 0x80, Local0)
2368 If (LEqual (Local0, 0x80))
2369 {
2370 Return (0x09)
2371 }
2372 Else
2373 {
2374 Return (0x0B)
2375 }
2376 }
2377
2378 Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
2379 {
2380 Return (BUFA)
2381 }
2382
2383 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2384 {
2385 Or (PIRG, 0x80, PIRG)
2386 }
2387
2388 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2389 {
2390 And (PIRG, 0x0F, Local0)
2391 ShiftLeft (0x01, Local0, IRQV)
2392 Return (BUFB)
2393 }
2394
2395 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2396 {
2397 CreateWordField (Arg0, 0x01, IRQ1)
2398 FindSetRightBit (IRQ1, Local0)
2399 Decrement (Local0)
2400 Store (Local0, PIRG)
2401 }
2402 }
2403
2404 Device (LNKH)
2405 {
2406 Name (_HID, EisaId ("PNP0C0F")) // _HID: Hardware ID
2407 Name (_UID, 0x08) // _UID: Unique ID
2408 Method (_STA, 0, NotSerialized) // _STA: Status
2409 {
2410 And (PIRH, 0x80, Local0)
2411 If (LEqual (Local0, 0x80))
2412 {
2413 Return (0x09)
2414 }
2415 Else
2416 {
2417 Return (0x0B)
2418 }
2419 }
2420
2421 Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
2422 {
2423 Return (BUFA)
2424 }
2425
2426 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2427 {
2428 Or (PIRH, 0x80, PIRH)
2429 }
2430
2431 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2432 {
2433 And (PIRH, 0x0F, Local0)
2434 ShiftLeft (0x01, Local0, IRQV)
2435 Return (BUFB)
2436 }
2437
2438 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2439 {
2440 CreateWordField (Arg0, 0x01, IRQ1)
2441 FindSetRightBit (IRQ1, Local0)
2442 Decrement (Local0)
2443 Store (Local0, PIRH)
2444 }
2445 }
2446
2447 OperationRegion (\SCPP, SystemIO, 0x1048, 0x01)
2448 Field (\SCPP, ByteAcc, NoLock, Preserve)
2449 {
2450 SMIP, 8
2451 }
2452
2453 Method (\_SB.PCI0._INI, 0, NotSerialized) // _INI: Initialize
2454 {
2455 If (STRC (\_OS, "Microsoft Windows")) {}
2456 Else
2457 {
2458 If (STRC (\_OS, "Microsoft Windows NT"))
2459 {
2460 Store (0x58, SMIP)
2461 Store (0x00, OSFL)
2462 }
2463 Else
2464 {
2465 Store (0x02, OSFL)
2466 }
2467 }
2468 }
2469
2470 Device (SYSR)
2471 {
2472 Name (_HID, EisaId ("PNP0C02")) // _HID: Hardware ID
2473 Name (_UID, 0x01) // _UID: Unique ID
2474 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
2475 {
2476 IO (Decode16,
2477 0x0010, // Range Minimum
2478 0x0010, // Range Maximum
2479 0x01, // Alignment
2480 0x10, // Length
2481 )
2482 IO (Decode16,
2483 0x0022, // Range Minimum
2484 0x0022, // Range Maximum
2485 0x01, // Alignment
2486 0x1E, // Length
2487 )
2488 IO (Decode16,
2489 0x0044, // Range Minimum
2490 0x0044, // Range Maximum
2491 0x01, // Alignment
2492 0x1C, // Length
2493 )
2494 IO (Decode16,
2495 0x0062, // Range Minimum
2496 0x0062, // Range Maximum
2497 0x01, // Alignment
2498 0x02, // Length
2499 )
2500 IO (Decode16,
2501 0x0065, // Range Minimum
2502 0x0065, // Range Maximum
2503 0x01, // Alignment
2504 0x0B, // Length
2505 )
2506 IO (Decode16,
2507 0x0074, // Range Minimum
2508 0x0074, // Range Maximum
2509 0x01, // Alignment
2510 0x0C, // Length
2511 )
2512 IO (Decode16,
2513 0x0091, // Range Minimum
2514 0x0091, // Range Maximum
2515 0x01, // Alignment
2516 0x03, // Length
2517 )
2518 IO (Decode16,
2519 0x00A2, // Range Minimum
2520 0x00A2, // Range Maximum
2521 0x01, // Alignment
2522 0x1E, // Length
2523 )
2524 IO (Decode16,
2525 0x00E0, // Range Minimum
2526 0x00E0, // Range Maximum
2527 0x01, // Alignment
2528 0x10, // Length
2529 )
2530 IO (Decode16,
2531 0x04D0, // Range Minimum
2532 0x04D0, // Range Maximum
2533 0x01, // Alignment
2534 0x02, // Length
2535 )
2536 IO (Decode16,
2537 0x0294, // Range Minimum
2538 0x0294, // Range Maximum
2539 0x01, // Alignment
2540 0x04, // Length
2541 )
2542 })
2543 }
2544
2545 Device (PIC)
2546 {
2547 Name (_HID, EisaId ("PNP0000")) // _HID: Hardware ID
2548 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
2549 {
2550 IO (Decode16,
2551 0x0020, // Range Minimum
2552 0x0020, // Range Maximum
2553 0x01, // Alignment
2554 0x02, // Length
2555 )
2556 IO (Decode16,
2557 0x00A0, // Range Minimum
2558 0x00A0, // Range Maximum
2559 0x01, // Alignment
2560 0x02, // Length
2561 )
2562 IRQNoFlags ()
2563 {2}
2564 })
2565 }
2566
2567 Device (DMA1)
2568 {
2569 Name (_HID, EisaId ("PNP0200")) // _HID: Hardware ID
2570 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
2571 {
2572 DMA (Compatibility, BusMaster, Transfer8, )
2573 {4}
2574 IO (Decode16,
2575 0x0000, // Range Minimum
2576 0x0000, // Range Maximum
2577 0x01, // Alignment
2578 0x10, // Length
2579 )
2580 IO (Decode16,
2581 0x0080, // Range Minimum
2582 0x0080, // Range Maximum
2583 0x01, // Alignment
2584 0x11, // Length
2585 )
2586 IO (Decode16,
2587 0x0094, // Range Minimum
2588 0x0094, // Range Maximum
2589 0x01, // Alignment
2590 0x0C, // Length
2591 )
2592 IO (Decode16,
2593 0x00C0, // Range Minimum
2594 0x00C0, // Range Maximum
2595 0x01, // Alignment
2596 0x20, // Length
2597 )
2598 })
2599 }
2600
2601 Device (TMR)
2602 {
2603 Name (_HID, EisaId ("PNP0100")) // _HID: Hardware ID
2604 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
2605 {
2606 IO (Decode16,
2607 0x0040, // Range Minimum
2608 0x0040, // Range Maximum
2609 0x01, // Alignment
2610 0x04, // Length
2611 )
2612 IRQNoFlags ()
2613 {0}
2614 })
2615 }
2616
2617 Device (RTC)
2618 {
2619 Name (_HID, EisaId ("PNP0B00")) // _HID: Hardware ID
2620 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
2621 {
2622 IO (Decode16,
2623 0x0070, // Range Minimum
2624 0x0070, // Range Maximum
2625 0x04, // Alignment
2626 0x04, // Length
2627 )
2628 IRQNoFlags ()
2629 {8}
2630 })
2631 }
2632
2633 Device (SPKR)
2634 {
2635 Name (_HID, EisaId ("PNP0800")) // _HID: Hardware ID
2636 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
2637 {
2638 IO (Decode16,
2639 0x0061, // Range Minimum
2640 0x0061, // Range Maximum
2641 0x01, // Alignment
2642 0x01, // Length
2643 )
2644 })
2645 }
2646
2647 Device (COPR)
2648 {
2649 Name (_HID, EisaId ("PNP0C04")) // _HID: Hardware ID
2650 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
2651 {
2652 IO (Decode16,
2653 0x00F0, // Range Minimum
2654 0x00F0, // Range Maximum
2655 0x01, // Alignment
2656 0x10, // Length
2657 )
2658 IRQNoFlags ()
2659 {13}
2660 })
2661 }
2662
2663 Scope (\)
2664 {
2665 OperationRegion (WIN1, SystemIO, 0x2E, 0x02)
2666 Field (WIN1, ByteAcc, NoLock, Preserve)
2667 {
2668 INDP, 8,
2669 DATA, 8
2670 }
2671
2672 IndexField (INDP, DATA, ByteAcc, NoLock, Preserve)
2673 {
2674 Offset (0x02),
2675 CFG, 8,
2676 Offset (0x07),
2677 LDN, 8,
2678 Offset (0x20),
2679 IDHI, 8,
2680 IDLO, 8,
2681 POWC, 8,
2682 Offset (0x29),
2683 CR29, 8,
2684 Offset (0x30),
2685 ACTR, 8,
2686 Offset (0x60),
2687 IOAH, 8,
2688 IOAL, 8,
2689 IO2H, 8,
2690 IO2L, 8,
2691 Offset (0x70),
2692 INTR, 8,
2693 Offset (0x72),
2694 INT1, 8,
2695 Offset (0x74),
2696 DMCH, 8,
2697 Offset (0xC0),
2698 GP40, 8,
2699 Offset (0xF0),
2700 CRF0, 8,
2701 CRF1, 8,
2702 CRF2, 8,
2703 CRF3, 8,
2704 CRF4, 8,
2705 CRF5, 8,
2706 CRF6, 8,
2707 CRF7, 8,
2708 CRF8, 8
2709 }
2710
2711 Method (ENFG, 0, NotSerialized)
2712 {
2713 Store (0x87, INDP)
2714 Store (0x87, INDP)
2715 }
2716
2717 Method (EXFG, 0, NotSerialized)
2718 {
2719 Store (0xAA, INDP)
2720 }
2721 }
2722
2723 Device (FDC0)
2724 {
2725 Name (_HID, EisaId ("PNP0700")) // _HID: Hardware ID
2726 Method (_STA, 0, NotSerialized) // _STA: Status
2727 {
2728 ENFG ()
2729 Store (Zero, LDN)
2730 If (ACTR)
2731 {
2732 EXFG ()
2733 Return (0x0F)
2734 }
2735 Else
2736 {
2737 If (LOr (IOAH, IOAL))
2738 {
2739 EXFG ()
2740 Return (0x0D)
2741 }
2742 Else
2743 {
2744 EXFG ()
2745 Return (0x00)
2746 }
2747 }
2748 }
2749
2750 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2751 {
2752 ENFG ()
2753 Store (0x00, LDN)
2754 Store (Zero, ACTR)
2755 SLDM (DMCH, 0x04)
2756 EXFG ()
2757 DISD (0x03)
2758 }
2759
2760 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2761 {
2762 Name (BUF0, ResourceTemplate ()
2763 {
2764 IO (Decode16,
2765 0x03F2, // Range Minimum
2766 0x03F2, // Range Maximum
2767 0x01, // Alignment
2768 0x04, // Length
2769 _Y06)
2770 IO (Decode16,
2771 0x03F7, // Range Minimum
2772 0x03F7, // Range Maximum
2773 0x01, // Alignment
2774 0x01, // Length
2775 )
2776 IRQNoFlags ()
2777 {6}
2778 DMA (Compatibility, NotBusMaster, Transfer8, )
2779 {2}
2780 })
2781 CreateByteField (BUF0, \_SB.PCI0.FDC0._CRS._Y06._MIN, IOLO) // _MIN: Minimum Base Address
2782 CreateByteField (BUF0, 0x03, IOHI)
2783 CreateByteField (BUF0, \_SB.PCI0.FDC0._CRS._Y06._MAX, IORL) // _MAX: Maximum Base Address
2784 CreateByteField (BUF0, 0x05, IORH)
2785 ENFG ()
2786 EXFG ()
2787 Return (BUF0)
2788 }
2789
2790 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
2791 {
2792 StartDependentFnNoPri ()
2793 {
2794 IO (Decode16,
2795 0x03F2, // Range Minimum
2796 0x03F2, // Range Maximum
2797 0x01, // Alignment
2798 0x04, // Length
2799 )
2800 IO (Decode16,
2801 0x03F7, // Range Minimum
2802 0x03F7, // Range Maximum
2803 0x01, // Alignment
2804 0x01, // Length
2805 )
2806 IRQNoFlags ()
2807 {6}
2808 DMA (Compatibility, NotBusMaster, Transfer8, )
2809 {2}
2810 }
2811 EndDependentFn ()
2812 })
2813 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2814 {
2815 CreateByteField (Arg0, 0x02, IOLO)
2816 CreateByteField (Arg0, 0x03, IOHI)
2817 CreateWordField (Arg0, 0x02, IOAD)
2818 CreateWordField (Arg0, 0x19, IRQL)
2819 CreateByteField (Arg0, 0x1C, DMAV)
2820 ENFG ()
2821 Store (Zero, LDN)
2822 Store (One, ACTR)
2823 SLDM (DMCH, DMCH)
2824 EXFG ()
2825 CKIO (IOAD, 0x03)
2826 }
2827 }
2828
2829 Device (UAR1)
2830 {
2831 Name (_HID, EisaId ("PNP0501")) // _HID: Hardware ID
2832 Name (_UID, 0x01) // _UID: Unique ID
2833 Method (_STA, 0, NotSerialized) // _STA: Status
2834 {
2835 ENFG ()
2836 Store (0x02, LDN)
2837 If (ACTR)
2838 {
2839 EXFG ()
2840 Return (0x0F)
2841 }
2842 Else
2843 {
2844 If (LOr (IOAH, IOAL))
2845 {
2846 EXFG ()
2847 Return (0x0D)
2848 }
2849 Else
2850 {
2851 EXFG ()
2852 Return (0x00)
2853 }
2854 }
2855
2856 EXFG ()
2857 }
2858
2859 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
2860 {
2861 ENFG ()
2862 Store (0x02, LDN)
2863 Store (Zero, ACTR)
2864 EXFG ()
2865 DISD (0x00)
2866 }
2867
2868 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
2869 {
2870 Name (BUF1, ResourceTemplate ()
2871 {
2872 IO (Decode16,
2873 0x0000, // Range Minimum
2874 0x0000, // Range Maximum
2875 0x01, // Alignment
2876 0x08, // Length
2877 _Y07)
2878 IRQNoFlags (_Y08)
2879 {}
2880 })
2881 CreateByteField (BUF1, \_SB.PCI0.UAR1._CRS._Y07._MIN, IOLO) // _MIN: Minimum Base Address
2882 CreateByteField (BUF1, 0x03, IOHI)
2883 CreateByteField (BUF1, \_SB.PCI0.UAR1._CRS._Y07._MAX, IORL) // _MAX: Maximum Base Address
2884 CreateByteField (BUF1, 0x05, IORH)
2885 CreateWordField (BUF1, \_SB.PCI0.UAR1._CRS._Y08._INT, IRQW) // _INT: Interrupts
2886 ENFG ()
2887 Store (0x02, LDN)
2888 Store (IOAL, IOLO)
2889 Store (IOAL, IORL)
2890 Store (IOAH, IOHI)
2891 Store (IOAH, IORH)
2892 Store (One, Local0)
2893 ShiftLeft (Local0, INTR, IRQW)
2894 EXFG ()
2895 Return (BUF1)
2896 }
2897
2898 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
2899 {
2900 StartDependentFnNoPri ()
2901 {
2902 IO (Decode16,
2903 0x03F8, // Range Minimum
2904 0x03F8, // Range Maximum
2905 0x01, // Alignment
2906 0x08, // Length
2907 )
2908 IRQNoFlags ()
2909 {3,4,5,7,9,10,11,12}
2910 }
2911 StartDependentFnNoPri ()
2912 {
2913 IO (Decode16,
2914 0x02F8, // Range Minimum
2915 0x02F8, // Range Maximum
2916 0x01, // Alignment
2917 0x08, // Length
2918 )
2919 IRQNoFlags ()
2920 {3,4,5,7,9,10,11,12}
2921 }
2922 StartDependentFnNoPri ()
2923 {
2924 IO (Decode16,
2925 0x03E8, // Range Minimum
2926 0x03E8, // Range Maximum
2927 0x01, // Alignment
2928 0x08, // Length
2929 )
2930 IRQNoFlags ()
2931 {3,4,5,7,9,10,11,12}
2932 }
2933 StartDependentFnNoPri ()
2934 {
2935 IO (Decode16,
2936 0x02E8, // Range Minimum
2937 0x02E8, // Range Maximum
2938 0x01, // Alignment
2939 0x08, // Length
2940 )
2941 IRQNoFlags ()
2942 {3,4,5,7,9,10,11,12}
2943 }
2944 EndDependentFn ()
2945 })
2946 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
2947 {
2948 CreateByteField (Arg0, 0x02, IOLO)
2949 CreateByteField (Arg0, 0x03, IOHI)
2950 CreateWordField (Arg0, 0x02, IOAD)
2951 CreateWordField (Arg0, 0x09, IRQW)
2952 ENFG ()
2953 Store (0x02, LDN)
2954 Store (One, ACTR)
2955 Store (IOLO, IOAL)
2956 Store (IOHI, IOAH)
2957 FindSetRightBit (IRQW, Local0)
2958 Subtract (Local0, 0x01, INTR)
2959 EXFG ()
2960 CKIO (IOAD, 0x00)
2961 }
2962 }
2963
2964 Device (LPT1)
2965 {
2966 Name (_HID, EisaId ("PNP0400")) // _HID: Hardware ID
2967 Method (_STA, 0, NotSerialized) // _STA: Status
2968 {
2969 ENFG ()
2970 Store (0x01, LDN)
2971 And (CRF0, 0x02, Local0)
2972 If (LNotEqual (Local0, 0x02))
2973 {
2974 If (ACTR)
2975 {
2976 EXFG ()
2977 Return (0x0F)
2978 }
2979 Else
2980 {
2981 If (LOr (IOAH, IOAL))
2982 {
2983 EXFG ()
2984 Return (0x0D)
2985 }
2986 Else
2987 {
2988 EXFG ()
2989 Return (0x00)
2990 }
2991 }
2992 }
2993 Else
2994 {
2995 EXFG ()
2996 Return (0x00)
2997 }
2998 }
2999
3000 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
3001 {
3002 ENFG ()
3003 Store (0x01, LDN)
3004 Store (Zero, ACTR)
3005 EXFG ()
3006 DISD (0x02)
3007 }
3008
3009 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
3010 {
3011 Name (BUF5, ResourceTemplate ()
3012 {
3013 IO (Decode16,
3014 0x0000, // Range Minimum
3015 0x0000, // Range Maximum
3016 0x01, // Alignment
3017 0x08, // Length
3018 _Y09)
3019 IO (Decode16,
3020 0x0000, // Range Minimum
3021 0x0000, // Range Maximum
3022 0x01, // Alignment
3023 0x04, // Length
3024 _Y0A)
3025 IRQNoFlags (_Y0B)
3026 {}
3027 })
3028 CreateByteField (BUF5, \_SB.PCI0.LPT1._CRS._Y09._MIN, IOLO) // _MIN: Minimum Base Address
3029 CreateByteField (BUF5, 0x03, IOHI)
3030 CreateByteField (BUF5, \_SB.PCI0.LPT1._CRS._Y09._MAX, IORL) // _MAX: Maximum Base Address
3031 CreateByteField (BUF5, 0x05, IORH)
3032 CreateByteField (BUF5, \_SB.PCI0.LPT1._CRS._Y09._LEN, IOLE) // _LEN: Length
3033 CreateByteField (BUF5, \_SB.PCI0.LPT1._CRS._Y0A._MIN, IO21) // _MIN: Minimum Base Address
3034 CreateByteField (BUF5, 0x0B, IO22)
3035 CreateByteField (BUF5, \_SB.PCI0.LPT1._CRS._Y0A._MAX, IO23) // _MAX: Maximum Base Address
3036 CreateByteField (BUF5, 0x0D, IO24)
3037 CreateWordField (BUF5, \_SB.PCI0.LPT1._CRS._Y0B._INT, IRQW) // _INT: Interrupts
3038 ENFG ()
3039 Store (0x01, LDN)
3040 Store (IOAL, IOLO)
3041 Store (IOLO, IORL)
3042 Store (IOAH, IOHI)
3043 Store (IOHI, IORH)
3044 Store (IOAL, IO21)
3045 Store (IOAL, IO23)
3046 Add (IOAH, 0x04, IO22)
3047 Add (IOAH, 0x04, IO24)
3048 If (LEqual (IOLO, 0xBC))
3049 {
3050 Store (0x04, IOLE)
3051 }
3052 Else
3053 {
3054 Store (0x08, IOLE)
3055 }
3056
3057 Store (One, Local0)
3058 Store (INTR, Local5)
3059 ShiftLeft (Local0, Local5, IRQW)
3060 Store (One, ACTR)
3061 EXFG ()
3062 Return (BUF5)
3063 }
3064
3065 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
3066 {
3067 StartDependentFnNoPri ()
3068 {
3069 IO (Decode16,
3070 0x0378, // Range Minimum
3071 0x0378, // Range Maximum
3072 0x01, // Alignment
3073 0x08, // Length
3074 )
3075 IO (Decode16,
3076 0x0778, // Range Minimum
3077 0x0778, // Range Maximum
3078 0x01, // Alignment
3079 0x04, // Length
3080 )
3081 IRQNoFlags ()
3082 {3,4,5,7,9,10,11,12}
3083 }
3084 StartDependentFnNoPri ()
3085 {
3086 IO (Decode16,
3087 0x0278, // Range Minimum
3088 0x0278, // Range Maximum
3089 0x01, // Alignment
3090 0x08, // Length
3091 )
3092 IO (Decode16,
3093 0x0678, // Range Minimum
3094 0x0678, // Range Maximum
3095 0x01, // Alignment
3096 0x04, // Length
3097 )
3098 IRQNoFlags ()
3099 {3,4,5,7,9,10,11,12}
3100 }
3101 StartDependentFnNoPri ()
3102 {
3103 IO (Decode16,
3104 0x03BC, // Range Minimum
3105 0x03BC, // Range Maximum
3106 0x01, // Alignment
3107 0x04, // Length
3108 )
3109 IO (Decode16,
3110 0x03BC, // Range Minimum
3111 0x03BC, // Range Maximum
3112 0x01, // Alignment
3113 0x04, // Length
3114 )
3115 IRQNoFlags ()
3116 {3,4,5,7,9,10,11,12}
3117 }
3118 EndDependentFn ()
3119 })
3120 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
3121 {
3122 CreateByteField (Arg0, 0x02, IOLO)
3123 CreateByteField (Arg0, 0x03, IOHI)
3124 CreateWordField (Arg0, 0x02, IOAD)
3125 CreateByteField (Arg0, 0x04, IORL)
3126 CreateByteField (Arg0, 0x05, IORH)
3127 CreateWordField (Arg0, 0x11, IRQW)
3128 ENFG ()
3129 Store (0x01, LDN)
3130 Store (One, ACTR)
3131 Store (IOLO, IOAL)
3132 Store (IOHI, IOAH)
3133 FindSetLeftBit (IRQW, Local0)
3134 Subtract (Local0, 0x01, Local0)
3135 Store (Local0, INTR)
3136 EXFG ()
3137 CKIO (IOAD, 0x02)
3138 }
3139 }
3140
3141 Device (ECP1)
3142 {
3143 Name (_HID, EisaId ("PNP0401")) // _HID: Hardware ID
3144 Method (_STA, 0, NotSerialized) // _STA: Status
3145 {
3146 ENFG ()
3147 Store (0x01, LDN)
3148 And (CRF0, 0x02, Local0)
3149 If (LEqual (Local0, 0x02))
3150 {
3151 If (ACTR)
3152 {
3153 EXFG ()
3154 Return (0x0F)
3155 }
3156 Else
3157 {
3158 If (LOr (IOAH, IOAL))
3159 {
3160 EXFG ()
3161 Return (0x0D)
3162 }
3163 Else
3164 {
3165 EXFG ()
3166 Return (0x00)
3167 }
3168 }
3169 }
3170 Else
3171 {
3172 EXFG ()
3173 Return (0x00)
3174 }
3175 }
3176
3177 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
3178 {
3179 ENFG ()
3180 Store (0x01, LDN)
3181 Store (Zero, ACTR)
3182 SLDM (DMCH, 0x04)
3183 EXFG ()
3184 DISD (0x02)
3185 }
3186
3187 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
3188 {
3189 Name (BUF6, ResourceTemplate ()
3190 {
3191 IO (Decode16,
3192 0x0000, // Range Minimum
3193 0x0000, // Range Maximum
3194 0x01, // Alignment
3195 0x08, // Length
3196 _Y0C)
3197 IO (Decode16,
3198 0x0000, // Range Minimum
3199 0x0000, // Range Maximum
3200 0x01, // Alignment
3201 0x04, // Length
3202 _Y0D)
3203 IRQNoFlags (_Y0E)
3204 {}
3205 DMA (Compatibility, NotBusMaster, Transfer8, _Y0F)
3206 {}
3207 })
3208 CreateByteField (BUF6, \_SB.PCI0.ECP1._CRS._Y0C._MIN, IOLO) // _MIN: Minimum Base Address
3209 CreateByteField (BUF6, 0x03, IOHI)
3210 CreateByteField (BUF6, \_SB.PCI0.ECP1._CRS._Y0C._MAX, IORL) // _MAX: Maximum Base Address
3211 CreateByteField (BUF6, 0x05, IORH)
3212 CreateByteField (BUF6, \_SB.PCI0.ECP1._CRS._Y0C._LEN, IOLE) // _LEN: Length
3213 CreateByteField (BUF6, \_SB.PCI0.ECP1._CRS._Y0D._MIN, IOEL) // _MIN: Minimum Base Address
3214 CreateByteField (BUF6, 0x0B, IOEH)
3215 CreateByteField (BUF6, \_SB.PCI0.ECP1._CRS._Y0D._MAX, IOML) // _MAX: Maximum Base Address
3216 CreateByteField (BUF6, 0x0D, IOMH)
3217 CreateWordField (BUF6, \_SB.PCI0.ECP1._CRS._Y0E._INT, IRQW) // _INT: Interrupts
3218 CreateByteField (BUF6, \_SB.PCI0.ECP1._CRS._Y0F._DMA, DMAC) // _DMA: Direct Memory Access
3219 ENFG ()
3220 Store (0x01, LDN)
3221 Store (One, ACTR)
3222 Store (IOAL, Local2)
3223 Store (Local2, IOLO)
3224 Store (IOAH, Local3)
3225 Store (Local3, IOHI)
3226 Or (Local3, 0x04, Local3)
3227 Store (Local3, IOEH)
3228 Store (Local3, IOMH)
3229 Store (IOLO, IORL)
3230 Store (IOLO, IOEL)
3231 Store (IOLO, IOML)
3232 Store (IOHI, IORH)
3233 If (LEqual (IOLO, 0xBC))
3234 {
3235 Store (0x04, IOLE)
3236 }
3237 Else
3238 {
3239 Store (0x08, IOLE)
3240 }
3241
3242 Store (One, Local0)
3243 Store (INTR, Local5)
3244 ShiftLeft (Local0, Local5, IRQW)
3245 Store (One, Local0)
3246 Store (DMCH, Local5)
3247 ShiftLeft (Local0, Local5, DMAC)
3248 EXFG ()
3249 Return (BUF6)
3250 }
3251
3252 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
3253 {
3254 StartDependentFnNoPri ()
3255 {
3256 IO (Decode16,
3257 0x0378, // Range Minimum
3258 0x0378, // Range Maximum
3259 0x01, // Alignment
3260 0x08, // Length
3261 )
3262 IO (Decode16,
3263 0x0778, // Range Minimum
3264 0x0778, // Range Maximum
3265 0x01, // Alignment
3266 0x04, // Length
3267 )
3268 IRQNoFlags ()
3269 {3,4,5,7,9,10,11,12}
3270 DMA (Compatibility, NotBusMaster, Transfer8, )
3271 {0,1,3}
3272 }
3273 StartDependentFnNoPri ()
3274 {
3275 IO (Decode16,
3276 0x0278, // Range Minimum
3277 0x0278, // Range Maximum
3278 0x01, // Alignment
3279 0x08, // Length
3280 )
3281 IO (Decode16,
3282 0x0678, // Range Minimum
3283 0x0678, // Range Maximum
3284 0x01, // Alignment
3285 0x04, // Length
3286 )
3287 IRQNoFlags ()
3288 {3,4,5,7,9,10,11,12}
3289 DMA (Compatibility, NotBusMaster, Transfer8, )
3290 {0,1,3}
3291 }
3292 StartDependentFnNoPri ()
3293 {
3294 IO (Decode16,
3295 0x03BC, // Range Minimum
3296 0x03BC, // Range Maximum
3297 0x01, // Alignment
3298 0x04, // Length
3299 )
3300 IO (Decode16,
3301 0x07BC, // Range Minimum
3302 0x07BC, // Range Maximum
3303 0x01, // Alignment
3304 0x04, // Length
3305 )
3306 IRQNoFlags ()
3307 {3,4,5,7,9,10,11,12}
3308 DMA (Compatibility, NotBusMaster, Transfer8, )
3309 {0,1,3}
3310 }
3311 EndDependentFn ()
3312 })
3313 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
3314 {
3315 CreateByteField (Arg0, 0x02, IOLO)
3316 CreateByteField (Arg0, 0x03, IOHI)
3317 CreateWordField (Arg0, 0x02, IOAD)
3318 CreateWordField (Arg0, 0x11, IRQW)
3319 CreateByteField (Arg0, 0x14, DMAC)
3320 ENFG ()
3321 Store (0x01, LDN)
3322 Store (One, ACTR)
3323 Store (IOLO, IOAL)
3324 Store (IOHI, IOAH)
3325 FindSetLeftBit (IRQW, Local0)
3326 Subtract (Local0, 0x01, Local0)
3327 Store (Local0, INTR)
3328 FindSetLeftBit (DMAC, Local1)
3329 Store (DMCH, Local0)
3330 Subtract (Local1, 0x01, DMCH)
3331 SLDM (Local0, DMCH)
3332 EXFG ()
3333 CKIO (IOAD, 0x02)
3334 }
3335 }
3336
3337 OperationRegion (KBCT, SystemIO, 0x60, 0x05)
3338 Field (KBCT, ByteAcc, NoLock, Preserve)
3339 {
3340 P060, 8,
3341 Offset (0x04),
3342 P064, 8
3343 }
3344
3345 Device (PS2M)
3346 {
3347 Name (_HID, EisaId ("PNP0F13")) // _HID: Hardware ID
3348 Method (_STA, 0, NotSerialized) // _STA: Status
3349 {
3350 If (LEqual (PS2F, 0x00))
3351 {
3352 Return (0x0F)
3353 }
3354 Else
3355 {
3356 Return (0x00)
3357 }
3358 }
3359
3360 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
3361 {
3362 Name (BUF1, ResourceTemplate ()
3363 {
3364 IRQNoFlags ()
3365 {12}
3366 })
3367 Name (BUF2, ResourceTemplate ()
3368 {
3369 IO (Decode16,
3370 0x0060, // Range Minimum
3371 0x0060, // Range Maximum
3372 0x01, // Alignment
3373 0x01, // Length
3374 )
3375 IO (Decode16,
3376 0x0064, // Range Minimum
3377 0x0064, // Range Maximum
3378 0x01, // Alignment
3379 0x01, // Length
3380 )
3381 IRQNoFlags ()
3382 {12}
3383 })
3384 If (LEqual (KBDI, 0x01))
3385 {
3386 If (LEqual (OSFL, 0x02))
3387 {
3388 Return (BUF1)
3389 }
3390
3391 If (LEqual (OSFL, 0x01))
3392 {
3393 Return (BUF1)
3394 }
3395 Else
3396 {
3397 Return (BUF2)
3398 }
3399 }
3400 Else
3401 {
3402 Return (BUF1)
3403 }
3404 }
3405 }
3406
3407 Device (PS2K)
3408 {
3409 Name (_HID, EisaId ("PNP0303")) // _HID: Hardware ID
3410 Name (_CID, EisaId ("PNP030B")) // _CID: Compatible ID
3411 Method (_STA, 0, NotSerialized) // _STA: Status
3412 {
3413 If (LEqual (KBDI, 0x01))
3414 {
3415 Return (0x00)
3416 }
3417 Else
3418 {
3419 Return (0x0F)
3420 }
3421 }
3422
3423 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
3424 {
3425 IO (Decode16,
3426 0x0060, // Range Minimum
3427 0x0060, // Range Maximum
3428 0x01, // Alignment
3429 0x01, // Length
3430 )
3431 IO (Decode16,
3432 0x0064, // Range Minimum
3433 0x0064, // Range Maximum
3434 0x01, // Alignment
3435 0x01, // Length
3436 )
3437 IRQNoFlags ()
3438 {1}
3439 })
3440 }
3441
3442 Device (PSMR)
3443 {
3444 Name (_HID, EisaId ("PNP0C02")) // _HID: Hardware ID
3445 Name (_UID, 0x03) // _UID: Unique ID
3446 Method (_STA, 0, NotSerialized) // _STA: Status
3447 {
3448 If (LEqual (KBDI, 0x00))
3449 {
3450 Return (0x00)
3451 }
3452
3453 If (LEqual (PS2F, 0x00))
3454 {
3455 If (LEqual (OSFL, 0x02))
3456 {
3457 Return (0x0F)
3458 }
3459
3460 If (LEqual (OSFL, 0x01))
3461 {
3462 Return (0x0F)
3463 }
3464
3465 Return (0x00)
3466 }
3467
3468 Return (0x0F)
3469 }
3470
3471 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
3472 {
3473 IO (Decode16,
3474 0x0060, // Range Minimum
3475 0x0060, // Range Maximum
3476 0x01, // Alignment
3477 0x01, // Length
3478 )
3479 IO (Decode16,
3480 0x0064, // Range Minimum
3481 0x0064, // Range Maximum
3482 0x01, // Alignment
3483 0x01, // Length
3484 )
3485 })
3486 }
3487
3488 Device (GAME)
3489 {
3490 Name (_HID, EisaId ("PNPB02F")) // _HID: Hardware ID
3491 Method (_STA, 0, NotSerialized) // _STA: Status
3492 {
3493 ENFG ()
3494 Store (0x07, LDN)
3495 If (LEqual (ACTR, 0x01))
3496 {
3497 EXFG ()
3498 Return (0x0F)
3499 }
3500 Else
3501 {
3502 If (LNotEqual (IOAH, 0x00))
3503 {
3504 EXFG ()
3505 Return (0x0D)
3506 }
3507 Else
3508 {
3509 EXFG ()
3510 Return (0x00)
3511 }
3512 }
3513 }
3514
3515 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
3516 {
3517 ENFG ()
3518 Store (0x07, LDN)
3519 Store (0x00, ACTR)
3520 EXFG ()
3521 DISD (0x04)
3522 }
3523
3524 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
3525 {
3526 Name (BUF1, ResourceTemplate ()
3527 {
3528 IO (Decode16,
3529 0x0000, // Range Minimum
3530 0x0000, // Range Maximum
3531 0x01, // Alignment
3532 0x07, // Length
3533 _Y10)
3534 IO (Decode16,
3535 0x0000, // Range Minimum
3536 0x0000, // Range Maximum
3537 0x01, // Alignment
3538 0x01, // Length
3539 _Y11)
3540 })
3541 CreateByteField (BUF1, \_SB.PCI0.GAME._CRS._Y10._MIN, IOLO) // _MIN: Minimum Base Address
3542 CreateByteField (BUF1, 0x03, IOHI)
3543 CreateByteField (BUF1, \_SB.PCI0.GAME._CRS._Y10._MAX, IORL) // _MAX: Maximum Base Address
3544 CreateByteField (BUF1, 0x05, IORH)
3545 CreateByteField (BUF1, \_SB.PCI0.GAME._CRS._Y11._MIN, IO21) // _MIN: Minimum Base Address
3546 CreateByteField (BUF1, 0x0B, IO22)
3547 CreateByteField (BUF1, \_SB.PCI0.GAME._CRS._Y11._MAX, IO23) // _MAX: Maximum Base Address
3548 CreateByteField (BUF1, 0x0D, IO24)
3549 ENFG ()
3550 Store (0x07, LDN)
3551 Store (IOAL, IOLO)
3552 Store (IOAL, IORL)
3553 Store (IOAH, IOHI)
3554 Store (IOAH, IORH)
3555 Subtract (IOAL, 0x01, IO21)
3556 Subtract (IOAL, 0x01, IO23)
3557 Store (IOAH, IO22)
3558 Store (IOAH, IO24)
3559 EXFG ()
3560 Return (BUF1)
3561 }
3562
3563 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
3564 {
3565 StartDependentFnNoPri ()
3566 {
3567 IO (Decode16,
3568 0x0201, // Range Minimum
3569 0x0201, // Range Maximum
3570 0x01, // Alignment
3571 0x07, // Length
3572 )
3573 IO (Decode16,
3574 0x0200, // Range Minimum
3575 0x0200, // Range Maximum
3576 0x01, // Alignment
3577 0x01, // Length
3578 )
3579 }
3580 StartDependentFnNoPri ()
3581 {
3582 IO (Decode16,
3583 0x0209, // Range Minimum
3584 0x0209, // Range Maximum
3585 0x01, // Alignment
3586 0x07, // Length
3587 )
3588 IO (Decode16,
3589 0x0208, // Range Minimum
3590 0x0208, // Range Maximum
3591 0x01, // Alignment
3592 0x01, // Length
3593 )
3594 }
3595 EndDependentFn ()
3596 })
3597 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
3598 {
3599 CreateByteField (Arg0, 0x02, IOLO)
3600 CreateByteField (Arg0, 0x03, IOHI)
3601 CreateWordField (Arg0, 0x02, IOAD)
3602 ENFG ()
3603 Store (0x07, LDN)
3604 Store (0x01, ACTR)
3605 Store (IOLO, IOAL)
3606 Store (IOHI, IOAH)
3607 EXFG ()
3608 CKIO (IOAD, 0x04)
3609 }
3610 }
3611
3612 Device (MIDI)
3613 {
3614 Name (_HID, EisaId ("PNPB006")) // _HID: Hardware ID
3615 OperationRegion (MID1, SystemIO, 0x0290, 0x02)
3616 Field (MID1, ByteAcc, NoLock, Preserve)
3617 {
3618 MD1, 8,
3619 ST1, 8
3620 }
3621
3622 OperationRegion (MID2, SystemIO, 0x0300, 0x02)
3623 Field (MID2, ByteAcc, NoLock, Preserve)
3624 {
3625 MD2, 8,
3626 ST2, 8
3627 }
3628
3629 OperationRegion (MID3, SystemIO, 0x0330, 0x02)
3630 Field (MID3, ByteAcc, NoLock, Preserve)
3631 {
3632 MD3, 8,
3633 ST3, 8
3634 }
3635
3636 Method (_STA, 0, NotSerialized) // _STA: Status
3637 {
3638 ENFG ()
3639 Store (0x08, LDN)
3640 If (LEqual (ACTR, 0x01))
3641 {
3642 EXFG ()
3643 Return (0x0F)
3644 }
3645 Else
3646 {
3647 If (LNotEqual (IOAH, 0x00))
3648 {
3649 EXFG ()
3650 Return (0x0D)
3651 }
3652 Else
3653 {
3654 EXFG ()
3655 Return (0x00)
3656 }
3657 }
3658 }
3659
3660 Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
3661 {
3662 ENFG ()
3663 Store (0x08, LDN)
3664 Store (0x00, ACTR)
3665 EXFG ()
3666 DISD (0x05)
3667 }
3668
3669 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
3670 {
3671 Name (BUF1, ResourceTemplate ()
3672 {
3673 IO (Decode16,
3674 0x0000, // Range Minimum
3675 0x0000, // Range Maximum
3676 0x01, // Alignment
3677 0x02, // Length
3678 _Y12)
3679 IRQNoFlags (_Y13)
3680 {}
3681 })
3682 CreateByteField (BUF1, \_SB.PCI0.MIDI._CRS._Y12._MIN, IOLO) // _MIN: Minimum Base Address
3683 CreateByteField (BUF1, 0x03, IOHI)
3684 CreateByteField (BUF1, \_SB.PCI0.MIDI._CRS._Y12._MAX, IORL) // _MAX: Maximum Base Address
3685 CreateByteField (BUF1, 0x05, IORH)
3686 CreateWordField (BUF1, \_SB.PCI0.MIDI._CRS._Y13._INT, IRQW) // _INT: Interrupts
3687 ENFG ()
3688 Store (0x08, LDN)
3689 Store (IOAL, IOLO)
3690 Store (IOAL, IORL)
3691 Store (IOAH, IOHI)
3692 Store (IOAH, IORH)
3693 Store (One, Local0)
3694 ShiftLeft (Local0, INTR, IRQW)
3695 EXFG ()
3696 Return (BUF1)
3697 }
3698
3699 Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
3700 {
3701 StartDependentFnNoPri ()
3702 {
3703 IO (Decode16,
3704 0x0330, // Range Minimum
3705 0x0330, // Range Maximum
3706 0x01, // Alignment
3707 0x02, // Length
3708 )
3709 IRQNoFlags ()
3710 {3,4,5,7,9,10,11,12}
3711 }
3712 StartDependentFnNoPri ()
3713 {
3714 IO (Decode16,
3715 0x0300, // Range Minimum
3716 0x0300, // Range Maximum
3717 0x01, // Alignment
3718 0x02, // Length
3719 )
3720 IRQNoFlags ()
3721 {3,4,5,7,9,10,11,12}
3722 }
3723 StartDependentFnNoPri ()
3724 {
3725 IO (Decode16,
3726 0x0290, // Range Minimum
3727 0x0290, // Range Maximum
3728 0x01, // Alignment
3729 0x02, // Length
3730 )
3731 IRQNoFlags ()
3732 {3,4,5,7,9,10,11,12}
3733 }
3734 EndDependentFn ()
3735 })
3736 Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
3737 {
3738 CreateByteField (Arg0, 0x02, IOLO)
3739 CreateByteField (Arg0, 0x03, IOHI)
3740 CreateWordField (Arg0, 0x02, IOAD)
3741 CreateWordField (Arg0, 0x09, IRQW)
3742 ENFG ()
3743 Store (0x08, LDN)
3744 Store (0x01, ACTR)
3745 Store (IOLO, IOAL)
3746 Store (IOHI, IOAH)
3747 FindSetLeftBit (IRQW, Local0)
3748 Subtract (Local0, 0x01, Local0)
3749 Store (Local0, INTR)
3750 EXFG ()
3751 CKIO (IOAD, 0x05)
3752 If (LEqual (IOAD, 0x0290))
3753 {
3754 And (ST1, 0x40, Local0)
3755 While (LEqual (Local0, 0x40))
3756 {
3757 Store (MD1, Local0)
3758 And (ST1, 0x40, Local0)
3759 }
3760 }
3761 Else
3762 {
3763 If (LEqual (IOAD, 0x0300))
3764 {
3765 And (ST2, 0x40, Local0)
3766 While (LEqual (Local0, 0x40))
3767 {
3768 Store (MD2, Local0)
3769 And (ST2, 0x40, Local0)
3770 }
3771 }
3772 Else
3773 {
3774 And (ST3, 0x40, Local0)
3775 While (LEqual (Local0, 0x40))
3776 {
3777 Store (MD3, Local0)
3778 And (ST3, 0x40, Local0)
3779 }
3780 }
3781 }
3782 }
3783 }
3784
3785 Method (\_SB.PCI0._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
3786 {
3787 Return (Package (0x02)
3788 {
3789 0x0B,
3790 0x05
3791 })
3792 }
3793
3794 Method (\_SB.PCI0.UAR1._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
3795 {
3796 Return (Package (0x02)
3797 {
3798 0x08,
3799 0x05
3800 })
3801 }
3802
3803 Method (\_SB.FUTS._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
3804 {
3805 Return (Package (0x02)
3806 {
3807 0x13,
3808 0x04
3809 })
3810 }
3811
3812 Method (\_SB.PCI0.USB0._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
3813 {
3814 If (LEqual (OSFL, 0x00))
3815 {
3816 Return (Package (0x02)
3817 {
3818 0x0E,
3819 0x03
3820 })
3821 }
3822
3823 If (LEqual (OSFL, 0x01))
3824 {
3825 Return (Package (0x02)
3826 {
3827 0x0E,
3828 0x05
3829 })
3830 }
3831
3832 If (LEqual (OSFL, 0x02))
3833 {
3834 Return (Package (0x02)
3835 {
3836 0x0E,
3837 0x05
3838 })
3839 }
3840 }
3841
3842 Method (\_SB.PCI0.USB1._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
3843 {
3844 If (LEqual (OSFL, 0x00))
3845 {
3846 Return (Package (0x02)
3847 {
3848 0x04,
3849 0x03
3850 })
3851 }
3852
3853 If (LEqual (OSFL, 0x01))
3854 {
3855 Return (Package (0x02)
3856 {
3857 0x04,
3858 0x05
3859 })
3860 }
3861
3862 If (LEqual (OSFL, 0x02))
3863 {
3864 Return (Package (0x02)
3865 {
3866 0x04,
3867 0x05
3868 })
3869 }
3870 }
3871
3872 Method (\_SB.PCI0.USB2._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
3873 {
3874 If (LEqual (OSFL, 0x00))
3875 {
3876 Return (Package (0x02)
3877 {
3878 0x07,
3879 0x03
3880 })
3881 }
3882
3883 If (LEqual (OSFL, 0x01))
3884 {
3885 Return (Package (0x02)
3886 {
3887 0x07,
3888 0x05
3889 })
3890 }
3891
3892 If (LEqual (OSFL, 0x02))
3893 {
3894 Return (Package (0x02)
3895 {
3896 0x07,
3897 0x05
3898 })
3899 }
3900 }
3901
3902 Method (\_SB.PCI0.USB3._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
3903 {
3904 If (LEqual (OSFL, 0x00))
3905 {
3906 Return (Package (0x02)
3907 {
3908 0x06,
3909 0x03
3910 })
3911 }
3912
3913 If (LEqual (OSFL, 0x01))
3914 {
3915 Return (Package (0x02)
3916 {
3917 0x06,
3918 0x05
3919 })
3920 }
3921
3922 If (LEqual (OSFL, 0x02))
3923 {
3924 Return (Package (0x02)
3925 {
3926 0x06,
3927 0x05
3928 })
3929 }
3930 }
3931
3932 Method (\_SB.PCI0.MAC0._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
3933 {
3934 Return (Package (0x02)
3935 {
3936 0x0C,
3937 0x05
3938 })
3939 }
3940
3941 Method (\_SB.PCI0.AMR0._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
3942 {
3943 Return (Package (0x02)
3944 {
3945 0x05,
3946 0x04
3947 })
3948 }
3949
3950 Method (\_SB.PCI0.PS2M._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
3951 {
3952 Return (Package (0x02)
3953 {
3954 0x0D,
3955 0x05
3956 })
3957 }
3958
3959 Method (\_SB.PCI0.PS2K._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
3960 {
3961 Return (Package (0x02)
3962 {
3963 0x0F,
3964 0x04
3965 })
3966 }
3967 }
3968 }
3969
3970 OperationRegion (TEMM, SystemMemory, 0x000FF810, 0x0C)
3971 Field (TEMM, WordAcc, NoLock, Preserve)
3972 {
3973 TP1H, 16,
3974 TP1L, 16,
3975 TP2H, 16,
3976 TP2L, 16,
3977 TRPC, 16,
3978 SENF, 16
3979 }
3980
3981 Name (TVAR, Buffer (0x05)
3982 {
3983 0x00, 0x00, 0x00, 0x00, 0x00
3984 })
3985 CreateByteField (TVAR, 0x00, PLCY)
3986 CreateWordField (TVAR, 0x01, CTOS)
3987 CreateWordField (TVAR, 0x03, CTHY)
3988 Name (TBUF, Buffer (0x04)
3989 {
3990 0x00, 0x00, 0x00, 0x00
3991 })
3992 CreateByteField (TBUF, 0x00, DB00)
3993 CreateByteField (TBUF, 0x01, DB01)
3994 CreateWordField (TBUF, 0x00, DW00)
3995 CreateWordField (TBUF, 0x02, DW01)
3996 CreateDWordField (TBUF, 0x00, DATD)
3997 OperationRegion (IP, SystemIO, 0x0295, 0x02)
3998 Field (IP, ByteAcc, NoLock, Preserve)
3999 {
4000 INDS, 8,
4001 DATS, 8
4002 }
4003
4004 Method (SCFG, 1, NotSerialized)
4005 {
4006 SBYT (0x40, Arg0)
4007 }
4008
4009 Method (STOS, 3, NotSerialized)
4010 {
4011 Store (GBYT (0x4E), Local0)
4012 Or (Local0, 0x01, Local1)
4013 SBYT (0x4E, Local1)
4014 SBYT (0x55, Arg1)
4015 SBYT (0x56, Arg0)
4016 SBYT (0x4E, Local0)
4017 }
4018
4019 Method (STHY, 3, NotSerialized)
4020 {
4021 Store (GBYT (0x4E), Local0)
4022 Or (Local0, 0x01, Local1)
4023 SBYT (0x4E, Local1)
4024 SBYT (0x53, Arg1)
4025 SBYT (0x54, Arg0)
4026 SBYT (0x4E, Local0)
4027 }
4028
4029 Method (RTMP, 0, NotSerialized)
4030 {
4031 Store (GBYT (0x4E), Local0)
4032 Or (Local0, 0x01, Local1)
4033 SBYT (0x4E, Local1)
4034 Store (GBYT (0x50), Local1)
4035 Store (GBYT (0x51), Local2)
4036 ShiftLeft (Local1, 0x08, Local1)
4037 Or (Local1, Local2, Local3)
4038 ShiftRight (Local3, 0x07, Local3)
4039 ShiftLeft (Local3, 0x02, Local1)
4040 Add (Local3, Local1, Local3)
4041 Add (Local3, 0x0AAC, Local3)
4042 If (LGreater (Local3, 0x0E8A))
4043 {
4044 Store (0x0AAC, Local3)
4045 }
4046
4047 SBYT (0x4E, Local0)
4048 Return (Local3)
4049 }
4050
4051 Method (SBYT, 2, NotSerialized)
4052 {
4053 Store (Arg0, INDS)
4054 Store (Arg1, DATS)
4055 }
4056
4057 Method (GBYT, 1, NotSerialized)
4058 {
4059 Store (Arg0, INDS)
4060 Store (DATS, Local7)
4061 Return (Local7)
4062 }
4063
4064 Method (SFAN, 1, NotSerialized)
4065 {
4066 SBYT (0x01, Arg0)
4067 SBYT (0x02, Arg0)
4068 }
4069
4070 Scope (\_TZ)
4071 {
4072 Device (FAN)
4073 {
4074 Name (_HID, EisaId ("PNP0C0B")) // _HID: Hardware ID
4075 Method (_INI, 0, NotSerialized) // _INI: Initialize
4076 {
4077 Store (TP1H, CTOS)
4078 Store (TP1L, CTHY)
4079 }
4080 }
4081
4082 ThermalZone (THRM)
4083 {
4084 Name (_AL0, Package (0x01) // _ALx: Active List
4085 {
4086 FAN
4087 })
4088 Method (_AC0, 0, NotSerialized) // _ACx: Active Cooling
4089 {
4090 If (Or (PLCY, PLCY, Local7))
4091 {
4092 Return (TP2H)
4093 }
4094 Else
4095 {
4096 Return (TP1H)
4097 }
4098 }
4099
4100 Name (_PSL, Package (0x01) // _PSL: Passive List
4101 {
4102 \_PR.CPU0
4103 })
4104 Name (_TSP, 0x3C) // _TSP: Thermal Sampling Period
4105 Name (_TC1, 0x04) // _TC1: Thermal Constant 1
4106 Name (_TC2, 0x03) // _TC2: Thermal Constant 2
4107 Method (_PSV, 0, NotSerialized) // _PSV: Passive Temperature
4108 {
4109 If (Or (PLCY, PLCY, Local7))
4110 {
4111 Return (TP1H)
4112 }
4113 Else
4114 {
4115 Return (TP2H)
4116 }
4117 }
4118
4119 Method (_CRT, 0, NotSerialized) // _CRT: Critical Temperature
4120 {
4121 Return (TRPC)
4122 }
4123
4124 Method (_TMP, 0, NotSerialized) // _TMP: Temperature
4125 {
4126 And (SENF, 0x01, Local6)
4127 If (LEqual (Local6, 0x01))
4128 {
4129 Return (RTMP ())
4130 }
4131 Else
4132 {
4133 Return (0x0B86)
4134 }
4135 }
4136
4137 Method (_SCP, 1, NotSerialized) // _SCP: Set Cooling Policy
4138 {
4139 If (Arg0)
4140 {
4141 Store (One, PLCY)
4142 }
4143 Else
4144 {
4145 Store (Zero, PLCY)
4146 }
4147
4148 Notify (\_TZ.THRM, 0x81)
4149 }
4150
4151 Method (STMP, 2, NotSerialized)
4152 {
4153 Store (Arg1, DW00)
4154 If (Arg0)
4155 {
4156 STHY (DB00, DB01, DW00)
4157 }
4158 Else
4159 {
4160 STOS (DB00, DB01, DW00)
4161 }
4162 }
4163 }
4164 }
4165}
4166