Ticket #398: dsdt_AWRDACPI.dsl

File dsdt_AWRDACPI.dsl, 139.4 KB (added by LarsErdmann, 15 years ago)

DSDT File (.dsl file)

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