Ticket #138: dsdt_awrdacpi.dsl

File dsdt_awrdacpi.dsl, 144.5 KB (added by Chuck McKinnis, 17 years ago)

iasl -d

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