Ticket #398: dsdt_AWRDACPI.2.dsl

File dsdt_AWRDACPI.2.dsl, 139.9 KB (added by Lars Erdmann, 14 years ago)

Modified DSDT table to assign Name _BBN to "PCI0" device

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