Ticket #184: dsdt_A0498000.dsl

File dsdt_A0498000.dsl, 157.3 KB (added by Chuck McKinnis, 16 years ago)
Line 
1/*
2 * Intel ACPI Component Architecture
3 * AML Disassembler version 20050902
4 *
5 * Disassembly of , Sun Jan 13 11:51:39 2008
6 */
7DefinitionBlock ("DSDT.aml", "DSDT", 1, "A0498", "A0498000", 0)
8{
9    Name (DP80, 0x80)
10    Name (DP90, 0x90)
11    Name (SPIO, 0x2E)
12    Name (IOPB, 0x0C00)
13    Name (IOPL, 0x10)
14    Name (IOEB, 0x0D00)
15    Name (IOEL, 0x10)
16    Name (IOGB, 0x0A20)
17    Name (IOGL, 0x10)
18    Name (IODB, 0x0A30)
19    Name (IODL, 0x10)
20    Name (IO1B, 0x0A20)
21    Name (IO1L, 0x08)
22    Name (IO3B, 0x0D00)
23    Name (IO3L, 0x80)
24    Name (APIC, One)
25    Name (PMBS, 0x0800)
26    Name (PMLN, 0x80)
27    Name (PM28, 0x0828)
28    Name (PM5C, 0x085C)
29    Name (GPBS, Zero)
30    Name (GPLN, Zero)
31    Name (SMBS, 0x0400)
32    Name (SMBL, 0x20)
33    Name (SUSW, 0x10)
34    Name (PIHH, Zero)
35    Name (PCIB, 0xE0000000)
36    Name (PCIL, 0x10000000)
37    OperationRegion (BIOS, SystemMemory, 0x3FFBE064, 0xFF)
38    Field (BIOS, ByteAcc, NoLock, Preserve)
39    {
40        SS1,    1,
41        SS2,    1,
42        SS3,    1,
43        SS4,    1,
44        Offset (0x01),
45        IOST,   16,
46        TOPM,   32,
47        ROMS,   32,
48        MG1B,   32,
49        MG1L,   32,
50        MG2B,   32,
51        MG2L,   32,
52        Offset (0x1C),
53        DMAX,   8,
54        HPTA,   32,
55        CPB0,   32,
56        CPB1,   32,
57        CPB2,   32,
58        CPB3,   32,
59        ASSB,   8,
60        AOTB,   8,
61        AAXB,   32,
62        SMIF,   8,
63        DTSE,   8,
64        DTS1,   8,
65        DTS2,   8,
66        MPEN,   8
67    }
68
69    Method (RRIO, 4, NotSerialized)
70    {
71        Store ("RRIO", Debug)
72    }
73
74    Method (RDMA, 3, NotSerialized)
75    {
76        Store ("rDMA", Debug)
77    }
78
79    Name (PICM, Zero)
80    Method (_PIC, 1, NotSerialized)
81    {
82        If (Arg0)
83        {
84            Store (0xAA, DBG8)
85        }
86        Else
87        {
88            Store (0xAC, DBG8)
89        }
90
91        Store (Arg0, PICM)
92    }
93
94    Name (OSVR, Ones)
95    Method (OSFL, 0, NotSerialized)
96    {
97        If (LNot (LEqual (OSVR, Ones)))
98        {
99            Return (OSVR)
100        }
101
102        If (LEqual (PICM, Zero))
103        {
104            Store (0xAC, DBG8)
105        }
106
107        Store (One, OSVR)
108        If (CondRefOf (_OSI, Local1))
109        {
110            If (_OSI ("Windows 2001"))
111            {
112                Store (Zero, OSVR)
113            }
114        }
115        Else
116        {
117            If (MCTH (_OS, "Microsoft Windows NT"))
118            {
119                Store (0x04, OSVR)
120            }
121            Else
122            {
123                If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
124                {
125                    Store (0x02, OSVR)
126                }
127
128                If (MCTH (_OS, "Linux"))
129                {
130                    Store (0x03, OSVR)
131                }
132            }
133        }
134
135        Return (OSVR)
136    }
137
138    Method (MCTH, 2, NotSerialized)
139    {
140        If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
141        {
142            Return (Zero)
143        }
144
145        Add (SizeOf (Arg0), One, Local0)
146        Name (BUF0, Buffer (Local0) {})
147        Name (BUF1, Buffer (Local0) {})
148        Store (Arg0, BUF0)
149        Store (Arg1, BUF1)
150        While (Local0)
151        {
152            Decrement (Local0)
153            If (LNot (LEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1, Local0)))))
154            {
155                Return (Zero)
156            }
157        }
158
159        Return (One)
160    }
161
162    Name (PRWP, Package (0x02)
163    {
164        Zero,
165        Zero
166    })
167    Method (GPRW, 2, NotSerialized)
168    {
169        Store (Arg0, Index (PRWP, Zero))
170        Store (ShiftLeft (SS1, One), Local0)
171        Or (Local0, ShiftLeft (SS2, 0x02), Local0)
172        Or (Local0, ShiftLeft (SS3, 0x03), Local0)
173        Or (Local0, ShiftLeft (SS4, 0x04), Local0)
174        If (And (ShiftLeft (One, Arg1), Local0))
175        {
176            Store (Arg1, Index (PRWP, One))
177        }
178        Else
179        {
180            ShiftRight (Local0, One, Local0)
181            If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
182            {
183                FindSetLeftBit (Local0, Index (PRWP, One))
184            }
185            Else
186            {
187                FindSetRightBit (Local0, Index (PRWP, One))
188            }
189        }
190
191        Return (PRWP)
192    }
193
194    Name (WAKP, Package (0x02)
195    {
196        Zero,
197        Zero
198    })
199    OperationRegion (DEB0, SystemIO, DP80, One)
200    Field (DEB0, ByteAcc, NoLock, Preserve)
201    {
202        DBG8,   8
203    }
204
205    OperationRegion (DEB1, SystemIO, DP90, 0x02)
206    Field (DEB1, WordAcc, NoLock, Preserve)
207    {
208        DBG9,   16
209    }
210
211    Scope (_PR)
212    {
213        Processor (P001, 0x01, 0x00000810, 0x06) {}
214        Processor (P002, 0x02, 0x00000000, 0x00) {}
215        Alias (P001, CPU1)
216        Alias (P002, CPU2)
217    }
218
219    Scope (_SB)
220    {
221        Name (PR00, Package (0x15)
222        {
223            Package (0x04)
224            {
225                0x0001FFFF,
226                Zero,
227                LNKA,
228                Zero
229            },
230
231            Package (0x04)
232            {
233                0x0001FFFF,
234                One,
235                LNKB,
236                Zero
237            },
238
239            Package (0x04)
240            {
241                0x0001FFFF,
242                0x02,
243                LNKC,
244                Zero
245            },
246
247            Package (0x04)
248            {
249                0x0001FFFF,
250                0x03,
251                LNKD,
252                Zero
253            },
254
255            Package (0x04)
256            {
257                0x0002FFFF,
258                Zero,
259                LNKH,
260                Zero
261            },
262
263            Package (0x04)
264            {
265                0x0002FFFF,
266                One,
267                LNKH,
268                Zero
269            },
270
271            Package (0x04)
272            {
273                0x0002FFFF,
274                0x02,
275                LNKH,
276                Zero
277            },
278
279            Package (0x04)
280            {
281                0x0002FFFF,
282                0x03,
283                LNKH,
284                Zero
285            },
286
287            Package (0x04)
288            {
289                0x0003FFFF,
290                Zero,
291                LNKH,
292                Zero
293            },
294
295            Package (0x04)
296            {
297                0x0003FFFF,
298                One,
299                LNKH,
300                Zero
301            },
302
303            Package (0x04)
304            {
305                0x0003FFFF,
306                0x02,
307                LNKH,
308                Zero
309            },
310
311            Package (0x04)
312            {
313                0x0003FFFF,
314                0x03,
315                LNKH,
316                Zero
317            },
318
319            Package (0x04)
320            {
321                0x000FFFFF,
322                One,
323                LNKB,
324                Zero
325            },
326
327            Package (0x04)
328            {
329                0x0013FFFF,
330                Zero,
331                LNKD,
332                Zero
333            },
334
335            Package (0x04)
336            {
337                0x0013FFFF,
338                One,
339                LNKD,
340                Zero
341            },
342
343            Package (0x04)
344            {
345                0x0013FFFF,
346                0x02,
347                LNKD,
348                Zero
349            },
350
351            Package (0x04)
352            {
353                0x0013FFFF,
354                0x03,
355                LNKD,
356                Zero
357            },
358
359            Package (0x04)
360            {
361                0x0010FFFF,
362                Zero,
363                LNKA,
364                Zero
365            },
366
367            Package (0x04)
368            {
369                0x0010FFFF,
370                One,
371                LNKB,
372                Zero
373            },
374
375            Package (0x04)
376            {
377                0x0010FFFF,
378                0x02,
379                LNKC,
380                Zero
381            },
382
383            Package (0x04)
384            {
385                0x0010FFFF,
386                0x03,
387                LNKD,
388                Zero
389            }
390        })
391        Name (AR00, Package (0x15)
392        {
393            Package (0x04)
394            {
395                0x0001FFFF,
396                Zero,
397                Zero,
398                0x10
399            },
400
401            Package (0x04)
402            {
403                0x0001FFFF,
404                One,
405                Zero,
406                0x11
407            },
408
409            Package (0x04)
410            {
411                0x0001FFFF,
412                0x02,
413                Zero,
414                0x12
415            },
416
417            Package (0x04)
418            {
419                0x0001FFFF,
420                0x03,
421                Zero,
422                0x13
423            },
424
425            Package (0x04)
426            {
427                0x0002FFFF,
428                Zero,
429                Zero,
430                0x1B
431            },
432
433            Package (0x04)
434            {
435                0x0002FFFF,
436                One,
437                Zero,
438                0x1B
439            },
440
441            Package (0x04)
442            {
443                0x0002FFFF,
444                0x02,
445                Zero,
446                0x1B
447            },
448
449            Package (0x04)
450            {
451                0x0002FFFF,
452                0x03,
453                Zero,
454                0x1B
455            },
456
457            Package (0x04)
458            {
459                0x0003FFFF,
460                Zero,
461                Zero,
462                0x1F
463            },
464
465            Package (0x04)
466            {
467                0x0003FFFF,
468                One,
469                Zero,
470                0x23
471            },
472
473            Package (0x04)
474            {
475                0x0003FFFF,
476                0x02,
477                Zero,
478                0x27
479            },
480
481            Package (0x04)
482            {
483                0x0003FFFF,
484                0x03,
485                Zero,
486                0x2B
487            },
488
489            Package (0x04)
490            {
491                0x000FFFFF,
492                One,
493                Zero,
494                0x15
495            },
496
497            Package (0x04)
498            {
499                0x0013FFFF,
500                Zero,
501                Zero,
502                0x14
503            },
504
505            Package (0x04)
506            {
507                0x0013FFFF,
508                One,
509                Zero,
510                0x14
511            },
512
513            Package (0x04)
514            {
515                0x0013FFFF,
516                0x02,
517                Zero,
518                0x14
519            },
520
521            Package (0x04)
522            {
523                0x0013FFFF,
524                0x03,
525                Zero,
526                0x14
527            },
528
529            Package (0x04)
530            {
531                0x0010FFFF,
532                Zero,
533                Zero,
534                0x14
535            },
536
537            Package (0x04)
538            {
539                0x0010FFFF,
540                One,
541                Zero,
542                0x16
543            },
544
545            Package (0x04)
546            {
547                0x0010FFFF,
548                0x02,
549                Zero,
550                0x15
551            },
552
553            Package (0x04)
554            {
555                0x0010FFFF,
556                0x03,
557                Zero,
558                0x17
559            }
560        })
561        Name (PR01, Package (0x04)
562        {
563            Package (0x04)
564            {
565                0xFFFF,
566                Zero,
567                LNKA,
568                Zero
569            },
570
571            Package (0x04)
572            {
573                0xFFFF,
574                One,
575                LNKB,
576                Zero
577            },
578
579            Package (0x04)
580            {
581                0xFFFF,
582                0x02,
583                LNKC,
584                Zero
585            },
586
587            Package (0x04)
588            {
589                0xFFFF,
590                0x03,
591                LNKD,
592                Zero
593            }
594        })
595        Name (AR01, Package (0x04)
596        {
597            Package (0x04)
598            {
599                0xFFFF,
600                Zero,
601                Zero,
602                0x10
603            },
604
605            Package (0x04)
606            {
607                0xFFFF,
608                One,
609                Zero,
610                0x11
611            },
612
613            Package (0x04)
614            {
615                0xFFFF,
616                0x02,
617                Zero,
618                0x12
619            },
620
621            Package (0x04)
622            {
623                0xFFFF,
624                0x03,
625                Zero,
626                0x13
627            }
628        })
629        Name (PR02, Package (0x04)
630        {
631            Package (0x04)
632            {
633                0xFFFF,
634                Zero,
635                LNKH,
636                Zero
637            },
638
639            Package (0x04)
640            {
641                0xFFFF,
642                One,
643                LNKH,
644                Zero
645            },
646
647            Package (0x04)
648            {
649                0xFFFF,
650                0x02,
651                LNKH,
652                Zero
653            },
654
655            Package (0x04)
656            {
657                0xFFFF,
658                0x03,
659                LNKH,
660                Zero
661            }
662        })
663        Name (AR02, Package (0x04)
664        {
665            Package (0x04)
666            {
667                0xFFFF,
668                Zero,
669                Zero,
670                0x18
671            },
672
673            Package (0x04)
674            {
675                0xFFFF,
676                One,
677                Zero,
678                0x19
679            },
680
681            Package (0x04)
682            {
683                0xFFFF,
684                0x02,
685                Zero,
686                0x1A
687            },
688
689            Package (0x04)
690            {
691                0xFFFF,
692                0x03,
693                Zero,
694                0x1B
695            }
696        })
697        Name (PR03, Package (0x04)
698        {
699            Package (0x04)
700            {
701                0xFFFF,
702                Zero,
703                LNKH,
704                Zero
705            },
706
707            Package (0x04)
708            {
709                0xFFFF,
710                One,
711                LNKH,
712                Zero
713            },
714
715            Package (0x04)
716            {
717                0xFFFF,
718                0x02,
719                LNKH,
720                Zero
721            },
722
723            Package (0x04)
724            {
725                0xFFFF,
726                0x03,
727                LNKH,
728                Zero
729            }
730        })
731        Name (AR03, Package (0x04)
732        {
733            Package (0x04)
734            {
735                0xFFFF,
736                Zero,
737                Zero,
738                0x1C
739            },
740
741            Package (0x04)
742            {
743                0xFFFF,
744                One,
745                Zero,
746                0x1D
747            },
748
749            Package (0x04)
750            {
751                0xFFFF,
752                0x02,
753                Zero,
754                0x1E
755            },
756
757            Package (0x04)
758            {
759                0xFFFF,
760                0x03,
761                Zero,
762                0x1F
763            }
764        })
765        Name (PR04, Package (0x04)
766        {
767            Package (0x04)
768            {
769                0xFFFF,
770                Zero,
771                LNKH,
772                Zero
773            },
774
775            Package (0x04)
776            {
777                0xFFFF,
778                One,
779                LNKH,
780                Zero
781            },
782
783            Package (0x04)
784            {
785                0xFFFF,
786                0x02,
787                LNKH,
788                Zero
789            },
790
791            Package (0x04)
792            {
793                0xFFFF,
794                0x03,
795                LNKH,
796                Zero
797            }
798        })
799        Name (AR04, Package (0x04)
800        {
801            Package (0x04)
802            {
803                0xFFFF,
804                Zero,
805                Zero,
806                0x20
807            },
808
809            Package (0x04)
810            {
811                0xFFFF,
812                One,
813                Zero,
814                0x21
815            },
816
817            Package (0x04)
818            {
819                0xFFFF,
820                0x02,
821                Zero,
822                0x22
823            },
824
825            Package (0x04)
826            {
827                0xFFFF,
828                0x03,
829                Zero,
830                0x23
831            }
832        })
833        Name (PR05, Package (0x04)
834        {
835            Package (0x04)
836            {
837                0xFFFF,
838                Zero,
839                LNKH,
840                Zero
841            },
842
843            Package (0x04)
844            {
845                0xFFFF,
846                One,
847                LNKH,
848                Zero
849            },
850
851            Package (0x04)
852            {
853                0xFFFF,
854                0x02,
855                LNKH,
856                Zero
857            },
858
859            Package (0x04)
860            {
861                0xFFFF,
862                0x03,
863                LNKH,
864                Zero
865            }
866        })
867        Name (AR05, Package (0x04)
868        {
869            Package (0x04)
870            {
871                0xFFFF,
872                Zero,
873                Zero,
874                0x24
875            },
876
877            Package (0x04)
878            {
879                0xFFFF,
880                One,
881                Zero,
882                0x25
883            },
884
885            Package (0x04)
886            {
887                0xFFFF,
888                0x02,
889                Zero,
890                0x26
891            },
892
893            Package (0x04)
894            {
895                0xFFFF,
896                0x03,
897                Zero,
898                0x27
899            }
900        })
901        Name (PR06, Package (0x04)
902        {
903            Package (0x04)
904            {
905                0xFFFF,
906                Zero,
907                LNKH,
908                Zero
909            },
910
911            Package (0x04)
912            {
913                0xFFFF,
914                One,
915                LNKH,
916                Zero
917            },
918
919            Package (0x04)
920            {
921                0xFFFF,
922                0x02,
923                LNKH,
924                Zero
925            },
926
927            Package (0x04)
928            {
929                0xFFFF,
930                0x03,
931                LNKH,
932                Zero
933            }
934        })
935        Name (AR06, Package (0x04)
936        {
937            Package (0x04)
938            {
939                0xFFFF,
940                Zero,
941                Zero,
942                0x28
943            },
944
945            Package (0x04)
946            {
947                0xFFFF,
948                One,
949                Zero,
950                0x29
951            },
952
953            Package (0x04)
954            {
955                0xFFFF,
956                0x02,
957                Zero,
958                0x2A
959            },
960
961            Package (0x04)
962            {
963                0xFFFF,
964                0x03,
965                Zero,
966                0x2B
967            }
968        })
969        Name (PR09, Package (0x01)
970        {
971            Package (0x04)
972            {
973                0x0001FFFF,
974                Zero,
975                LNKB,
976                Zero
977            }
978        })
979        Name (AR09, Package (0x01)
980        {
981            Package (0x04)
982            {
983                0x0001FFFF,
984                Zero,
985                Zero,
986                0x11
987            }
988        })
989        Name (PR0A, Package (0x10)
990        {
991            Package (0x04)
992            {
993                0x0006FFFF,
994                Zero,
995                LNKA,
996                Zero
997            },
998
999            Package (0x04)
1000            {
1001                0x0006FFFF,
1002                One,
1003                LNKB,
1004                Zero
1005            },
1006
1007            Package (0x04)
1008            {
1009                0x0006FFFF,
1010                0x02,
1011                LNKC,
1012                Zero
1013            },
1014
1015            Package (0x04)
1016            {
1017                0x0006FFFF,
1018                0x03,
1019                LNKD,
1020                Zero
1021            },
1022
1023            Package (0x04)
1024            {
1025                0x0007FFFF,
1026                Zero,
1027                LNKB,
1028                Zero
1029            },
1030
1031            Package (0x04)
1032            {
1033                0x0007FFFF,
1034                One,
1035                LNKC,
1036                Zero
1037            },
1038
1039            Package (0x04)
1040            {
1041                0x0007FFFF,
1042                0x02,
1043                LNKD,
1044                Zero
1045            },
1046
1047            Package (0x04)
1048            {
1049                0x0007FFFF,
1050                0x03,
1051                LNKA,
1052                Zero
1053            },
1054
1055            Package (0x04)
1056            {
1057                0x0008FFFF,
1058                Zero,
1059                LNKC,
1060                Zero
1061            },
1062
1063            Package (0x04)
1064            {
1065                0x0008FFFF,
1066                One,
1067                LNKD,
1068                Zero
1069            },
1070
1071            Package (0x04)
1072            {
1073                0x0008FFFF,
1074                0x02,
1075                LNKA,
1076                Zero
1077            },
1078
1079            Package (0x04)
1080            {
1081                0x0008FFFF,
1082                0x03,
1083                LNKB,
1084                Zero
1085            },
1086
1087            Package (0x04)
1088            {
1089                0x0009FFFF,
1090                Zero,
1091                LNKD,
1092                Zero
1093            },
1094
1095            Package (0x04)
1096            {
1097                0x0009FFFF,
1098                One,
1099                LNKA,
1100                Zero
1101            },
1102
1103            Package (0x04)
1104            {
1105                0x0009FFFF,
1106                0x02,
1107                LNKB,
1108                Zero
1109            },
1110
1111            Package (0x04)
1112            {
1113                0x0009FFFF,
1114                0x03,
1115                LNKC,
1116                Zero
1117            }
1118        })
1119        Name (AR0A, Package (0x10)
1120        {
1121            Package (0x04)
1122            {
1123                0x0006FFFF,
1124                Zero,
1125                Zero,
1126                0x10
1127            },
1128
1129            Package (0x04)
1130            {
1131                0x0006FFFF,
1132                One,
1133                Zero,
1134                0x11
1135            },
1136
1137            Package (0x04)
1138            {
1139                0x0006FFFF,
1140                0x02,
1141                Zero,
1142                0x12
1143            },
1144
1145            Package (0x04)
1146            {
1147                0x0006FFFF,
1148                0x03,
1149                Zero,
1150                0x13
1151            },
1152
1153            Package (0x04)
1154            {
1155                0x0007FFFF,
1156                Zero,
1157                Zero,
1158                0x11
1159            },
1160
1161            Package (0x04)
1162            {
1163                0x0007FFFF,
1164                One,
1165                Zero,
1166                0x12
1167            },
1168
1169            Package (0x04)
1170            {
1171                0x0007FFFF,
1172                0x02,
1173                Zero,
1174                0x13
1175            },
1176
1177            Package (0x04)
1178            {
1179                0x0007FFFF,
1180                0x03,
1181                Zero,
1182                0x10
1183            },
1184
1185            Package (0x04)
1186            {
1187                0x0008FFFF,
1188                Zero,
1189                Zero,
1190                0x12
1191            },
1192
1193            Package (0x04)
1194            {
1195                0x0008FFFF,
1196                One,
1197                Zero,
1198                0x13
1199            },
1200
1201            Package (0x04)
1202            {
1203                0x0008FFFF,
1204                0x02,
1205                Zero,
1206                0x10
1207            },
1208
1209            Package (0x04)
1210            {
1211                0x0008FFFF,
1212                0x03,
1213                Zero,
1214                0x11
1215            },
1216
1217            Package (0x04)
1218            {
1219                0x0009FFFF,
1220                Zero,
1221                Zero,
1222                0x13
1223            },
1224
1225            Package (0x04)
1226            {
1227                0x0009FFFF,
1228                One,
1229                Zero,
1230                0x10
1231            },
1232
1233            Package (0x04)
1234            {
1235                0x0009FFFF,
1236                0x02,
1237                Zero,
1238                0x11
1239            },
1240
1241            Package (0x04)
1242            {
1243                0x0009FFFF,
1244                0x03,
1245                Zero,
1246                0x12
1247            }
1248        })
1249        Name (PRSA, ResourceTemplate ()
1250        {
1251            IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11,12,14,15}
1252        })
1253        Alias (PRSA, PRSB)
1254        Alias (PRSA, PRSC)
1255        Alias (PRSA, PRSD)
1256        Alias (PRSA, PRSE)
1257        Alias (PRSA, PRSF)
1258        Alias (PRSA, PRSG)
1259        Alias (PRSA, PRSH)
1260        Device (PCI0)
1261        {
1262            Name (_HID, EisaId ("PNP0A03"))
1263            Name (_ADR, 0x00180000)
1264            Method (BN00, 0, NotSerialized)
1265            {
1266                Return (Zero)
1267            }
1268
1269            Method (_BBN, 0, NotSerialized)
1270            {
1271                Return (BN00 ())
1272            }
1273
1274            Name (_UID, Zero)
1275            Method (_PRT, 0, NotSerialized)
1276            {
1277                If (PICM)
1278                {
1279                    Return (AR00)
1280                }
1281
1282                Return (PR00)
1283            }
1284
1285            Method (_PRW, 0, NotSerialized)
1286            {
1287                Return (GPRW (0x05, 0x04))
1288            }
1289
1290            Method (_S3D, 0, NotSerialized)
1291            {
1292                If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
1293                {
1294                    Return (0x02)
1295                }
1296                Else
1297                {
1298                    Return (0x03)
1299                }
1300            }
1301
1302            Method (NPTS, 1, NotSerialized)
1303            {
1304            }
1305
1306            Method (NWAK, 1, NotSerialized)
1307            {
1308            }
1309
1310            Device (VIAN)
1311            {
1312                Name (_ADR, Zero)
1313            }
1314
1315            Device (NBF1)
1316            {
1317                Name (_ADR, One)
1318            }
1319
1320            Device (NBF2)
1321            {
1322                Name (_ADR, 0x02)
1323            }
1324
1325            Device (NBF3)
1326            {
1327                Name (_ADR, 0x03)
1328            }
1329
1330            Device (NBF4)
1331            {
1332                Name (_ADR, 0x04)
1333            }
1334
1335            Device (NBF5)
1336            {
1337                Name (_ADR, 0x05)
1338            }
1339
1340            Device (NBF6)
1341            {
1342                Name (_ADR, 0x06)
1343            }
1344
1345            Device (NBF7)
1346            {
1347                Name (_ADR, 0x07)
1348            }
1349
1350            Device (P0P1)
1351            {
1352                Name (_ADR, 0x00010000)
1353                Method (_PRT, 0, NotSerialized)
1354                {
1355                    If (PICM)
1356                    {
1357                        Return (AR01)
1358                    }
1359
1360                    Return (PR01)
1361                }
1362            }
1363
1364            Device (NBPG)
1365            {
1366                Name (_ADR, 0x00020000)
1367                Method (_PRT, 0, NotSerialized)
1368                {
1369                    If (PICM)
1370                    {
1371                        Return (AR02)
1372                    }
1373
1374                    Return (PR02)
1375                }
1376            }
1377
1378            Device (NBP0)
1379            {
1380                Name (_ADR, 0x00030000)
1381                Method (_PRT, 0, NotSerialized)
1382                {
1383                    If (PICM)
1384                    {
1385                        Return (AR03)
1386                    }
1387
1388                    Return (PR03)
1389                }
1390            }
1391
1392            Device (NBP1)
1393            {
1394                Name (_ADR, 0x00030001)
1395                Method (_PRT, 0, NotSerialized)
1396                {
1397                    If (PICM)
1398                    {
1399                        Return (AR04)
1400                    }
1401
1402                    Return (PR04)
1403                }
1404            }
1405
1406            Device (NBP2)
1407            {
1408                Name (_ADR, 0x00030002)
1409                Method (_PRT, 0, NotSerialized)
1410                {
1411                    If (PICM)
1412                    {
1413                        Return (AR05)
1414                    }
1415
1416                    Return (PR05)
1417                }
1418            }
1419
1420            Device (NBP3)
1421            {
1422                Name (_ADR, 0x00030003)
1423                Method (_PRT, 0, NotSerialized)
1424                {
1425                    If (PICM)
1426                    {
1427                        Return (AR06)
1428                    }
1429
1430                    Return (PR06)
1431                }
1432            }
1433
1434            Device (SATA)
1435            {
1436                Name (_ADR, 0x000F0000)
1437                Name (REGF, One)
1438                Name (TIM0, Package (0x04)
1439                {
1440                    Package (0x05)
1441                    {
1442                        0x78,
1443                        0xB4,
1444                        0xF0,
1445                        0x017F,
1446                        0x0258
1447                    },
1448
1449                    Package (0x05)
1450                    {
1451                        0x20,
1452                        0x22,
1453                        0x33,
1454                        0x47,
1455                        0x5D
1456                    },
1457
1458                    Package (0x07)
1459                    {
1460                        0x78,
1461                        0x50,
1462                        0x3C,
1463                        0x2D,
1464                        0x1E,
1465                        0x14,
1466                        0x0F
1467                    },
1468
1469                    Package (0x0F)
1470                    {
1471                        0x06,
1472                        0x05,
1473                        0x04,
1474                        0x04,
1475                        0x03,
1476                        0x03,
1477                        0x02,
1478                        0x02,
1479                        One,
1480                        One,
1481                        One,
1482                        One,
1483                        One,
1484                        One,
1485                        Zero
1486                    }
1487                })
1488                Name (TMD0, Buffer (0x14) {})
1489                CreateDWordField (TMD0, Zero, PIO0)
1490                CreateDWordField (TMD0, 0x04, DMA0)
1491                CreateDWordField (TMD0, 0x08, PIO1)
1492                CreateDWordField (TMD0, 0x0C, DMA1)
1493                CreateDWordField (TMD0, 0x10, CHNF)
1494                Name (PMPT, 0x20)
1495                Name (PMUE, 0x07)
1496                Name (PMUT, Zero)
1497                Name (PSPT, 0x20)
1498                Name (PSUE, 0x07)
1499                Name (PSUT, Zero)
1500                Name (SMPT, 0x20)
1501                Name (SMUE, 0x07)
1502                Name (SMUT, Zero)
1503                Name (SSPT, 0x20)
1504                Name (SSUE, 0x07)
1505                Name (SSUT, Zero)
1506                OperationRegion (SAPR, PCI_Config, Zero, 0x3C)
1507                Field (SAPR, ByteAcc, NoLock, Preserve)
1508                {
1509                    VID,    16,
1510                    DID,    16,
1511                    CMD,    3,
1512                    Offset (0x0A),
1513                    SCC,    8
1514                }
1515
1516                Method (_REG, 2, NotSerialized)
1517                {
1518                    If (LEqual (Arg0, 0x02))
1519                    {
1520                        Store (Arg1, REGF)
1521                    }
1522                }
1523
1524                Method (_STA, 0, NotSerialized)
1525                {
1526                    If (LEqual (CMD, Zero))
1527                    {
1528                        Return (0x0D)
1529                    }
1530                    Else
1531                    {
1532                        Return (0x0F)
1533                    }
1534                }
1535
1536                Device (CHN0)
1537                {
1538                    Name (_ADR, Zero)
1539                    Method (_STA, 0, NotSerialized)
1540                    {
1541                        If (LEqual (SCC, One))
1542                        {
1543                            Return (0x0F)
1544                        }
1545                        Else
1546                        {
1547                            Return (Zero)
1548                        }
1549                    }
1550
1551                    Method (_GTM, 0, NotSerialized)
1552                    {
1553                        FZHD ()
1554                        Return (GTM (PMPT, PMUE, PMUT, PSPT, PSUE, PSUT))
1555                    }
1556
1557                    Method (_STM, 3, NotSerialized)
1558                    {
1559                    }
1560
1561                    Device (DRV0)
1562                    {
1563                        Name (_ADR, Zero)
1564                        Method (_GTF, 0, NotSerialized)
1565                        {
1566                            Return (Zero)
1567                        }
1568                    }
1569
1570                    Device (DRV1)
1571                    {
1572                        Name (_ADR, One)
1573                        Method (_GTF, 0, NotSerialized)
1574                        {
1575                            Return (Zero)
1576                        }
1577                    }
1578                }
1579
1580                Device (CHN1)
1581                {
1582                    Name (_ADR, One)
1583                    Method (_STA, 0, NotSerialized)
1584                    {
1585                        If (LEqual (SCC, One))
1586                        {
1587                            Return (0x0F)
1588                        }
1589                        Else
1590                        {
1591                            Return (Zero)
1592                        }
1593                    }
1594
1595                    Method (_GTM, 0, NotSerialized)
1596                    {
1597                        FZHD ()
1598                        Return (GTM (SMPT, SMUE, SMUT, SSPT, SSUE, SSUT))
1599                    }
1600
1601                    Method (_STM, 3, NotSerialized)
1602                    {
1603                    }
1604
1605                    Device (DRV0)
1606                    {
1607                        Name (_ADR, Zero)
1608                        Method (_GTF, 0, NotSerialized)
1609                        {
1610                            Return (Zero)
1611                        }
1612                    }
1613
1614                    Device (DRV1)
1615                    {
1616                        Name (_ADR, One)
1617                        Method (_GTF, 0, NotSerialized)
1618                        {
1619                            Return (Zero)
1620                        }
1621                    }
1622                }
1623
1624                Method (GTM, 6, Serialized)
1625                {
1626                    Store (Ones, PIO0)
1627                    Store (Ones, PIO1)
1628                    Store (Ones, DMA0)
1629                    Store (Ones, DMA1)
1630                    Store (0x10, CHNF)
1631                    If (REGF) {}
1632                    Else
1633                    {
1634                        Return (TMD0)
1635                    }
1636
1637                    Store (Match (DerefOf (Index (TIM0, One)), MEQ, Arg0, MTR, Zero, Zero), Local6)
1638                    Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)), Local7)
1639                    Store (Local7, DMA0)
1640                    Store (Local7, PIO0)
1641                    Store (Match (DerefOf (Index (TIM0, One)), MEQ, Arg3, MTR, Zero, Zero), Local6)
1642                    Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)), Local7)
1643                    Store (Local7, DMA1)
1644                    Store (Local7, PIO1)
1645                    If (Arg1)
1646                    {
1647                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Arg2)), Local5)
1648                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local5)), DMA0)
1649                        Or (CHNF, One, CHNF)
1650                    }
1651
1652                    If (Arg4)
1653                    {
1654                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Arg5)), Local5)
1655                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local5)), DMA1)
1656                        Or (CHNF, 0x04, CHNF)
1657                    }
1658
1659                    Return (TMD0)
1660                }
1661            }
1662
1663            Device (PATA)
1664            {
1665                Name (_ADR, 0x000F0001)
1666                Name (REGF, One)
1667                Method (_REG, 2, NotSerialized)
1668                {
1669                    If (LEqual (Arg0, 0x02))
1670                    {
1671                        Store (Arg1, REGF)
1672                    }
1673                }
1674
1675                Name (TIM0, Package (0x08)
1676                {
1677                    Package (0x05)
1678                    {
1679                        0x3C,
1680                        0x78,
1681                        0xB4,
1682                        0xF0,
1683                        0x0384
1684                    },
1685
1686                    Package (0x05)
1687                    {
1688                        0x11,
1689                        0x20,
1690                        0x31,
1691                        0x65,
1692                        0xA8
1693                    },
1694
1695                    Package (0x10)
1696                    {
1697                        0x06,
1698                        0x05,
1699                        0x04,
1700                        0x04,
1701                        0x03,
1702                        0x03,
1703                        0x02,
1704                        0x02,
1705                        One,
1706                        One,
1707                        One,
1708                        One,
1709                        One,
1710                        One,
1711                        Zero,
1712                        Zero
1713                    },
1714
1715                    Package (0x07)
1716                    {
1717                        0x78,
1718                        0x5A,
1719                        0x3C,
1720                        0x2D,
1721                        0x1E,
1722                        0x14,
1723                        0x0F
1724                    },
1725
1726                    Package (0x07)
1727                    {
1728                        0x0E,
1729                        0x08,
1730                        0x06,
1731                        0x04,
1732                        0x02,
1733                        One,
1734                        Zero
1735                    },
1736
1737                    Package (0x07)
1738                    {
1739                        Zero,
1740                        Zero,
1741                        Zero,
1742                        One,
1743                        One,
1744                        One,
1745                        One
1746                    },
1747
1748                    Package (0x05)
1749                    {
1750                        0x05,
1751                        0x04,
1752                        0x03,
1753                        0x02,
1754                        Zero
1755                    },
1756
1757                    Package (0x04)
1758                    {
1759                        0x02,
1760                        One,
1761                        Zero,
1762                        Zero
1763                    }
1764                })
1765                Name (TMD0, Buffer (0x14) {})
1766                CreateDWordField (TMD0, Zero, PIO0)
1767                CreateDWordField (TMD0, 0x04, DMA0)
1768                CreateDWordField (TMD0, 0x08, PIO1)
1769                CreateDWordField (TMD0, 0x0C, DMA1)
1770                CreateDWordField (TMD0, 0x10, CHNF)
1771                OperationRegion (CFG2, PCI_Config, 0x40, 0x20)
1772                Field (CFG2, DWordAcc, NoLock, Preserve)
1773                {
1774                    Offset (0x08),
1775                    SSPT,   8,
1776                    SMPT,   8,
1777                    PSPT,   8,
1778                    PMPT,   8,
1779                    Offset (0x10),
1780                    SSUT,   4,
1781                    SSCR,   1,
1782                    SSUE,   3,
1783                    SMUT,   4,
1784                    SMCR,   1,
1785                    SMUE,   3,
1786                    PSUT,   4,
1787                    PSCR,   1,
1788                    PSUE,   3,
1789                    PMUT,   4,
1790                    PMCR,   1,
1791                    PMUE,   3
1792                }
1793
1794                Name (GMPT, Zero)
1795                Name (GMUE, Zero)
1796                Name (GMUT, Zero)
1797                Name (GMCR, Zero)
1798                Name (GSPT, Zero)
1799                Name (GSUE, Zero)
1800                Name (GSUT, Zero)
1801                Name (GSCR, Zero)
1802                Device (CHN0)
1803                {
1804                    Name (_ADR, Zero)
1805                    Method (_GTM, 0, NotSerialized)
1806                    {
1807                        FZHD ()
1808                        ShiftLeft (PSCR, One, Local1)
1809                        Or (PMCR, Local1, Local0)
1810                        Return (GTM (PMPT, PMUE, PMUT, PSPT, PSUE, PSUT, Local0))
1811                    }
1812
1813                    Method (_STM, 3, NotSerialized)
1814                    {
1815                        Store (Arg0, Debug)
1816                        Store (Arg0, TMD0)
1817                        Store (PMPT, GMPT)
1818                        Store (PMUE, GMUE)
1819                        Store (PMUT, GMUT)
1820                        Store (PMCR, GMCR)
1821                        Store (PSPT, GSPT)
1822                        Store (PSUE, GSUE)
1823                        Store (PSUT, GSUT)
1824                        Store (PSCR, GSCR)
1825                        STM ()
1826                        Store (GMPT, PMPT)
1827                        Store (GMUE, PMUE)
1828                        Store (GMUT, PMUT)
1829                        Store (GMCR, PMCR)
1830                        Store (GSPT, PSPT)
1831                        Store (GSUE, PSUE)
1832                        Store (GSUT, PSUT)
1833                        Store (GSCR, PSCR)
1834                        Store (GTF (Zero, Arg1), ATA0)
1835                        Store (GTF (One, Arg2), ATA1)
1836                    }
1837
1838                    Device (DRV0)
1839                    {
1840                        Name (_ADR, Zero)
1841                        Method (_GTF, 0, NotSerialized)
1842                        {
1843                            Return (RATA (ATA0))
1844                        }
1845                    }
1846
1847                    Device (DRV1)
1848                    {
1849                        Name (_ADR, One)
1850                        Method (_GTF, 0, NotSerialized)
1851                        {
1852                            Return (RATA (ATA1))
1853                        }
1854                    }
1855                }
1856
1857                Device (CHN1)
1858                {
1859                    Name (_ADR, One)
1860                    Method (_GTM, 0, NotSerialized)
1861                    {
1862                        FZHD ()
1863                        ShiftLeft (SSCR, One, Local1)
1864                        Or (SMCR, Local1, Local0)
1865                        Return (GTM (SMPT, SMUE, SMUT, SSPT, SSUE, SSUT, Local0))
1866                    }
1867
1868                    Method (_STM, 3, NotSerialized)
1869                    {
1870                        Store (Arg0, Debug)
1871                        Store (Arg0, TMD0)
1872                        Store (SMPT, GMPT)
1873                        Store (SMUE, GMUE)
1874                        Store (SMUT, GMUT)
1875                        Store (SMCR, GMCR)
1876                        Store (SSPT, GSPT)
1877                        Store (SSUE, GSUE)
1878                        Store (SSUT, GSUT)
1879                        Store (SSCR, GSCR)
1880                        STM ()
1881                        Store (GMPT, SMPT)
1882                        Store (GMUE, SMUE)
1883                        Store (GMUT, SMUT)
1884                        Store (GMCR, SMCR)
1885                        Store (GSPT, SSPT)
1886                        Store (GSUE, SSUE)
1887                        Store (GSUT, SSUT)
1888                        Store (GSCR, SSCR)
1889                        Store (GTF (Zero, Arg1), ATA2)
1890                        Store (GTF (One, Arg2), ATA3)
1891                    }
1892
1893                    Device (DRV0)
1894                    {
1895                        Name (_ADR, Zero)
1896                        Method (_GTF, 0, NotSerialized)
1897                        {
1898                            Return (RATA (ATA2))
1899                        }
1900                    }
1901
1902                    Device (DRV1)
1903                    {
1904                        Name (_ADR, One)
1905                        Method (_GTF, 0, NotSerialized)
1906                        {
1907                            Return (RATA (ATA3))
1908                        }
1909                    }
1910                }
1911
1912                Method (GTM, 7, Serialized)
1913                {
1914                    Store (Ones, PIO0)
1915                    Store (Ones, PIO1)
1916                    Store (Ones, DMA0)
1917                    Store (Ones, DMA1)
1918                    Store (0x10, CHNF)
1919                    If (REGF) {}
1920                    Else
1921                    {
1922                        Return (TMD0)
1923                    }
1924
1925                    Store (Match (DerefOf (Index (TIM0, One)), MEQ, Arg0, MTR, Zero, Zero), Local6)
1926                    Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)), Local7)
1927                    Store (Local7, DMA0)
1928                    Store (Local7, PIO0)
1929                    Store (Match (DerefOf (Index (TIM0, One)), MEQ, Arg3, MTR, Zero, Zero), Local6)
1930                    Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)), Local7)
1931                    Store (Local7, DMA1)
1932                    Store (Local7, PIO1)
1933                    If (Arg1)
1934                    {
1935                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Arg2)), Local5)
1936                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA0)
1937                        Or (CHNF, One, CHNF)
1938                    }
1939
1940                    If (Arg4)
1941                    {
1942                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Arg5)), Local5)
1943                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA1)
1944                        Or (CHNF, 0x04, CHNF)
1945                    }
1946
1947                    Store (TMD0, Debug)
1948                    Return (TMD0)
1949                }
1950
1951                Method (STM, 0, Serialized)
1952                {
1953                    If (REGF)
1954                    {
1955                        Store (Zero, GMUE)
1956                        Store (0x07, GMUT)
1957                        Store (Zero, GSUE)
1958                        Store (0x07, GSUT)
1959                        If (And (CHNF, One))
1960                        {
1961                            Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR, Zero, Zero), Local0)
1962                            If (LGreater (Local0, 0x06))
1963                            {
1964                                Store (0x06, Local0)
1965                            }
1966
1967                            Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GMUT)
1968                            Or (GMUE, 0x07, GMUE)
1969                        }
1970                        Else
1971                        {
1972                            If (Or (LEqual (PIO0, Ones), LEqual (PIO0, Zero)))
1973                            {
1974                                If (And (LLess (DMA0, Ones), LGreater (DMA0, Zero)))
1975                                {
1976                                    Store (DMA0, PIO0)
1977                                }
1978                            }
1979                        }
1980
1981                        If (And (CHNF, 0x04))
1982                        {
1983                            Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR, Zero, Zero), Local0)
1984                            If (LGreater (Local0, 0x06))
1985                            {
1986                                Store (0x06, Local0)
1987                            }
1988
1989                            Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GSUT)
1990                            Or (GSUE, 0x07, GSUE)
1991                        }
1992                        Else
1993                        {
1994                            If (Or (LEqual (PIO1, Ones), LEqual (PIO1, Zero)))
1995                            {
1996                                If (And (LLess (DMA1, Ones), LGreater (DMA1, Zero)))
1997                                {
1998                                    Store (DMA1, PIO1)
1999                                }
2000                            }
2001                        }
2002
2003                        And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO0, MTR, Zero, Zero), 0x07, Local0)
2004                        Store (DerefOf (Index (DerefOf (Index (TIM0, One)), Local0)), Local1)
2005                        Store (Local1, GMPT)
2006                        And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO1, MTR, Zero, Zero), 0x07, Local0)
2007                        Store (DerefOf (Index (DerefOf (Index (TIM0, One)), Local0)), Local1)
2008                        Store (Local1, GSPT)
2009                    }
2010                }
2011
2012                Name (AT01, Buffer (0x07)
2013                {
2014                    0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF
2015                })
2016                Name (AT02, Buffer (0x07)
2017                {
2018                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90
2019                })
2020                Name (AT03, Buffer (0x07)
2021                {
2022                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6
2023                })
2024                Name (AT04, Buffer (0x07)
2025                {
2026                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91
2027                })
2028                Name (ATA0, Buffer (0x1D) {})
2029                Name (ATA1, Buffer (0x1D) {})
2030                Name (ATA2, Buffer (0x1D) {})
2031                Name (ATA3, Buffer (0x1D) {})
2032                Name (ATAB, Buffer (0x1D) {})
2033                CreateByteField (ATAB, Zero, CMDC)
2034                Method (GTFB, 3, Serialized)
2035                {
2036                    Multiply (CMDC, 0x38, Local0)
2037                    Add (Local0, 0x08, Local1)
2038                    CreateField (ATAB, Local1, 0x38, CMDX)
2039                    Multiply (CMDC, 0x07, Local0)
2040                    CreateByteField (ATAB, Add (Local0, 0x02), A001)
2041                    CreateByteField (ATAB, Add (Local0, 0x06), A005)
2042                    Store (Arg0, CMDX)
2043                    Store (Arg1, A001)
2044                    Store (Arg2, A005)
2045                    Increment (CMDC)
2046                }
2047
2048                Method (GTF, 2, Serialized)
2049                {
2050                    Store (Arg1, Debug)
2051                    Store (Zero, CMDC)
2052                    Name (ID49, 0x0C00)
2053                    Name (ID59, Zero)
2054                    Name (ID53, 0x04)
2055                    Name (ID63, 0x0F00)
2056                    Name (ID88, 0x0F00)
2057                    Name (IRDY, One)
2058                    Name (PIOT, Zero)
2059                    Name (DMAT, Zero)
2060                    If (LEqual (SizeOf (Arg1), 0x0200))
2061                    {
2062                        CreateWordField (Arg1, 0x62, IW49)
2063                        Store (IW49, ID49)
2064                        CreateWordField (Arg1, 0x6A, IW53)
2065                        Store (IW53, ID53)
2066                        CreateWordField (Arg1, 0x7E, IW63)
2067                        Store (IW63, ID63)
2068                        CreateWordField (Arg1, 0x76, IW59)
2069                        Store (IW59, ID59)
2070                        CreateWordField (Arg1, 0xB0, IW88)
2071                        Store (IW88, ID88)
2072                    }
2073
2074                    Store (0xA0, Local7)
2075                    If (Arg0)
2076                    {
2077                        Store (0xB0, Local7)
2078                        And (CHNF, 0x08, IRDY)
2079                        If (And (CHNF, 0x10))
2080                        {
2081                            Store (PIO1, PIOT)
2082                        }
2083                        Else
2084                        {
2085                            Store (PIO0, PIOT)
2086                        }
2087
2088                        If (And (CHNF, 0x04))
2089                        {
2090                            If (And (CHNF, 0x10))
2091                            {
2092                                Store (DMA1, DMAT)
2093                            }
2094                            Else
2095                            {
2096                                Store (DMA0, DMAT)
2097                            }
2098                        }
2099                    }
2100                    Else
2101                    {
2102                        And (CHNF, 0x02, IRDY)
2103                        Store (PIO0, PIOT)
2104                        If (And (CHNF, One))
2105                        {
2106                            Store (DMA0, DMAT)
2107                        }
2108                    }
2109
2110                    If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT))
2111                    {
2112                        Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, Zero, Zero), Local1)
2113                        If (LGreater (Local1, 0x06))
2114                        {
2115                            Store (0x06, Local1)
2116                        }
2117
2118                        GTFB (AT01, Or (0x40, Local1), Local7)
2119                    }
2120                    Else
2121                    {
2122                        If (LAnd (And (ID63, 0xFF00), PIOT))
2123                        {
2124                            And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR, Zero, Zero), 0x03, Local0)
2125                            Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0)), Local1)
2126                            GTFB (AT01, Local1, Local7)
2127                        }
2128                    }
2129
2130                    If (IRDY)
2131                    {
2132                        And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR, Zero, Zero), 0x07, Local0)
2133                        Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), Local1)
2134                        GTFB (AT01, Local1, Local7)
2135                    }
2136                    Else
2137                    {
2138                        If (And (ID49, 0x0400))
2139                        {
2140                            GTFB (AT01, One, Local7)
2141                        }
2142                    }
2143
2144                    If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF)))
2145                    {
2146                        GTFB (AT03, And (ID59, 0xFF), Local7)
2147                    }
2148
2149                    Store (ATAB, Debug)
2150                    Return (ATAB)
2151                }
2152
2153                Method (RATA, 1, NotSerialized)
2154                {
2155                    CreateByteField (Arg0, Zero, CMDN)
2156                    Multiply (CMDN, 0x38, Local0)
2157                    CreateField (Arg0, 0x08, Local0, RETB)
2158                    Store (RETB, Debug)
2159                    Return (RETB)
2160                }
2161            }
2162
2163            Device (SBRG)
2164            {
2165                Name (_ADR, 0x00110000)
2166                Method (SPTS, 1, NotSerialized)
2167                {
2168                    If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02)))
2169                    {
2170                        Sleep (0x0BB8)
2171                    }
2172
2173                    If (LEqual (Arg0, One))
2174                    {
2175                        While (WAKS)
2176                        {
2177                            Stall (0x50)
2178                            Store (One, WAKS)
2179                        }
2180
2181                        While (LNot (LEqual (PADS, Zero)))
2182                        {
2183                            Store (PADS, PADS)
2184                        }
2185
2186                        Store (One, IRQR)
2187                        Store (One, SUST)
2188                    }
2189
2190                    If (LEqual (Arg0, 0x03))
2191                    {
2192                        Store (Zero, SUST)
2193                    }
2194
2195                    Store (One, SLPS)
2196                    While (SLES)
2197                    {
2198                        Stall (0x50)
2199                        Store (One, SLES)
2200                    }
2201
2202                    Store (One, SLEE)
2203                }
2204
2205                Method (SWAK, 1, NotSerialized)
2206                {
2207                    If (LAnd (LEqual (Arg0, 0x03), PM5D)) {}
2208                    Else
2209                    {
2210                        If (LAnd (LEqual (Arg0, One), PM5D)) {}
2211                        Else
2212                        {
2213                            Notify (PWRB, 0x02)
2214                        }
2215                    }
2216
2217                    Store (Zero, PM5D)
2218                    Store (One, PWBT)
2219                    Store (Zero, SLEE)
2220                    Store (Zero, ^^USB1.U184)
2221                    Store (Zero, ^^USB2.U284)
2222                    Store (Zero, ^^USB3.U384)
2223                    Store (Zero, ^^USB4.U484)
2224                    Store (Zero, ^^EHCI.U584)
2225                    Store (Zero, SLPS)
2226                }
2227
2228                OperationRegion (PMSR, SystemIO, PM5C, 0x02)
2229                Field (PMSR, ByteAcc, NoLock, Preserve)
2230                {
2231                    Offset (0x01),
2232                    PM5D,   1
2233                }
2234
2235                OperationRegion (PMS0, SystemIO, PMBS, 0x04)
2236                Field (PMS0, ByteAcc, NoLock, Preserve)
2237                {
2238                        ,   10,
2239                    RTCS,   1,
2240                    Offset (0x03),
2241                    PWBT,   1,
2242                    Offset (0x04)
2243                }
2244
2245                OperationRegion (IOTP, SystemIO, PM28, 0x04)
2246                Field (IOTP, ByteAcc, NoLock, Preserve)
2247                {
2248                        ,   7,
2249                    WAKS,   1,
2250                        ,   2,
2251                    SLES,   1,
2252                        ,   4,
2253                    PS1S,   1,
2254                        ,   10,
2255                    SLEE,   1,
2256                        ,   4,
2257                    PS1E,   1
2258                }
2259
2260                OperationRegion (PMGE, SystemIO, PMBS, 0x30)
2261                Field (PMGE, ByteAcc, NoLock, Preserve)
2262                {
2263                    Offset (0x2A),
2264                        ,   7,
2265                    IRQR,   1
2266                }
2267
2268                OperationRegion (PMPS, SystemIO, PMBS, 0x40)
2269                Field (PMPS, ByteAcc, NoLock, Preserve)
2270                {
2271                    Offset (0x30),
2272                        ,   1,
2273                    PADS,   7
2274                }
2275
2276                OperationRegion (HPRG, PCI_Config, 0x68, 0x04)
2277                Field (HPRG, ByteAcc, NoLock, Preserve)
2278                {
2279                        ,   7,
2280                    HPTE,   1,
2281                    HPTM,   24
2282                }
2283
2284                OperationRegion (BSR0, PCI_Config, 0x6F, One)
2285                Field (BSR0, ByteAcc, NoLock, Preserve)
2286                {
2287                        ,   7,
2288                    RTCX,   1
2289                }
2290
2291                Name (PTBF, Buffer (0x03)
2292                {
2293                    0x00, 0x00, 0x00
2294                })
2295                CreateByteField (PTBF, One, PTB1)
2296                CreateByteField (PTBF, 0x02, PTB2)
2297                Scope (_SB)
2298                {
2299                    Name (SLPS, Zero)
2300                    Device (SLPB)
2301                    {
2302                        Name (_HID, EisaId ("PNP0C0E"))
2303                        Method (_STA, 0, NotSerialized)
2304                        {
2305                            If (LNot (LEqual (SUSW, 0xFF)))
2306                            {
2307                                Return (0x0F)
2308                            }
2309
2310                            Return (Zero)
2311                        }
2312
2313                        Method (SBEV, 0, NotSerialized)
2314                        {
2315                            If (SLPS)
2316                            {
2317                                Notify (SLPB, 0x02)
2318                            }
2319                            Else
2320                            {
2321                                Notify (SLPB, 0x80)
2322                            }
2323                        }
2324
2325                        Method (_L04, 0, NotSerialized)
2326                        {
2327                            \_SB.SLPB.SBEV ()
2328                        }
2329
2330                        Method (_PRW, 0, NotSerialized)
2331                        {
2332                            Return (Package (0x02)
2333                            {
2334                                0x04,
2335                                0x04
2336                            })
2337                        }
2338                    }
2339                }
2340
2341                Device (PIC)
2342                {
2343                    Name (_HID, EisaId ("PNP0000"))
2344                    Name (_CRS, ResourceTemplate ()
2345                    {
2346                        IO (Decode16, 0x0020, 0x0020, 0x00, 0x02)
2347                        IO (Decode16, 0x00A0, 0x00A0, 0x00, 0x02)
2348                        IRQNoFlags () {2}
2349                    })
2350                }
2351
2352                Device (DMAD)
2353                {
2354                    Name (_HID, EisaId ("PNP0200"))
2355                    Name (_CRS, ResourceTemplate ()
2356                    {
2357                        DMA (Compatibility, BusMaster, Transfer8) {4}
2358                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x10)
2359                        IO (Decode16, 0x0081, 0x0081, 0x00, 0x03)
2360                        IO (Decode16, 0x0087, 0x0087, 0x00, 0x01)
2361                        IO (Decode16, 0x0089, 0x0089, 0x00, 0x03)
2362                        IO (Decode16, 0x008F, 0x008F, 0x00, 0x01)
2363                        IO (Decode16, 0x00C0, 0x00C0, 0x00, 0x20)
2364                    })
2365                }
2366
2367                Device (SPKR)
2368                {
2369                    Name (_HID, EisaId ("PNP0800"))
2370                    Name (_CRS, ResourceTemplate ()
2371                    {
2372                        IO (Decode16, 0x0061, 0x0061, 0x00, 0x01)
2373                    })
2374                }
2375
2376                Device (COPR)
2377                {
2378                    Name (_HID, EisaId ("PNP0C04"))
2379                    Name (_CRS, ResourceTemplate ()
2380                    {
2381                        IO (Decode16, 0x00F0, 0x00F0, 0x00, 0x10)
2382                        IRQNoFlags () {13}
2383                    })
2384                }
2385
2386                Device (FDC)
2387                {
2388                    Name (_HID, EisaId ("PNP0700"))
2389                    Method (_FDE, 0, NotSerialized)
2390                    {
2391                        Name (FDEP, Package (0x05)
2392                        {
2393                            Zero,
2394                            Zero,
2395                            0x02,
2396                            0x02,
2397                            0x02
2398                        })
2399                        If (_STA ())
2400                        {
2401                            Store (One, Index (FDEP, Zero))
2402                        }
2403
2404                        Return (FDEP)
2405                    }
2406
2407                    Method (_STA, 0, NotSerialized)
2408                    {
2409                        Return (DSTA (0x03))
2410                    }
2411
2412                    Method (_DIS, 0, NotSerialized)
2413                    {
2414                        DCNT (0x03, Zero)
2415                    }
2416
2417                    Method (_CRS, 0, NotSerialized)
2418                    {
2419                        DCRS (0x03, One)
2420                        Store (IRQM, IRQE)
2421                        Store (DMAM, DMAE)
2422                        Store (IO11, IO21)
2423                        Store (IO12, IO22)
2424                        Store (0x06, LEN2)
2425                        Add (IO21, 0x07, IO31)
2426                        Store (IO31, IO32)
2427                        Store (One, LEN3)
2428                        Return (CRS2)
2429                    }
2430
2431                    Method (_SRS, 1, NotSerialized)
2432                    {
2433                        DSRS (Arg0, 0x03)
2434                        CreateWordField (Arg0, 0x11, IRQE)
2435                        CreateByteField (Arg0, 0x14, DMAE)
2436                        ENFG (CGLD (0x03))
2437                        If (IRQE)
2438                        {
2439                            FindSetRightBit (IRQE, Local0)
2440                            Subtract (Local0, One, INTR)
2441                        }
2442                        Else
2443                        {
2444                            Store (Zero, INTR)
2445                        }
2446
2447                        If (DMAE)
2448                        {
2449                            FindSetRightBit (DMAE, Local0)
2450                            Subtract (Local0, One, DMCH)
2451                        }
2452                        Else
2453                        {
2454                            Store (0x04, DMCH)
2455                        }
2456
2457                        EXFG ()
2458                    }
2459
2460                    Name (_PRS, ResourceTemplate ()
2461                    {
2462                        StartDependentFn (0x00, 0x00)
2463                        {
2464                            IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
2465                            IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
2466                            IRQNoFlags () {6}
2467                            DMA (Compatibility, NotBusMaster, Transfer8) {2}
2468                        }
2469                        StartDependentFnNoPri ()
2470                        {
2471                            IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
2472                            IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
2473                            IRQNoFlags () {3,4,5,6,7,10,11,12}
2474                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
2475                        }
2476                        StartDependentFnNoPri ()
2477                        {
2478                            IO (Decode16, 0x0370, 0x0370, 0x01, 0x06)
2479                            IO (Decode16, 0x0377, 0x0377, 0x01, 0x01)
2480                            IRQNoFlags () {3,4,5,6,7,10,11,12}
2481                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
2482                        }
2483                        EndDependentFn ()
2484                    })
2485                }
2486
2487                Device (LPTE)
2488                {
2489                    Method (_HID, 0, NotSerialized)
2490                    {
2491                        If (LPTM (0x02))
2492                        {
2493                            Return (0x0104D041)
2494                        }
2495                        Else
2496                        {
2497                            Return (0x0004D041)
2498                        }
2499                    }
2500
2501                    Method (_STA, 0, NotSerialized)
2502                    {
2503                        Return (DSTA (0x02))
2504                    }
2505
2506                    Method (_DIS, 0, NotSerialized)
2507                    {
2508                        DCNT (0x02, Zero)
2509                    }
2510
2511                    Method (_CRS, 0, NotSerialized)
2512                    {
2513                        DCRS (0x02, One)
2514                        If (LPTM (0x02))
2515                        {
2516                            Store (IRQM, IRQE)
2517                            Store (DMAM, DMAE)
2518                            Store (IO11, IO21)
2519                            Store (IO12, IO22)
2520                            Store (LEN1, LEN2)
2521                            Add (IO21, 0x0400, IO31)
2522                            Store (IO31, IO32)
2523                            Store (LEN2, LEN3)
2524                            Return (CRS2)
2525                        }
2526                        Else
2527                        {
2528                            Return (CRS1)
2529                        }
2530                    }
2531
2532                    Method (_SRS, 1, NotSerialized)
2533                    {
2534                        DSRS (Arg0, 0x02)
2535                    }
2536
2537                    Method (_PRS, 0, NotSerialized)
2538                    {
2539                        If (LPTM (0x02))
2540                        {
2541                            Return (EPPR)
2542                        }
2543                        Else
2544                        {
2545                            Return (LPPR)
2546                        }
2547                    }
2548
2549                    Name (LPPR, ResourceTemplate ()
2550                    {
2551                        StartDependentFnNoPri ()
2552                        {
2553                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
2554                            IRQNoFlags () {3,4,5,6,7,10,11,12}
2555                            DMA (Compatibility, NotBusMaster, Transfer8) {}
2556                        }
2557                        StartDependentFnNoPri ()
2558                        {
2559                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
2560                            IRQNoFlags () {3,4,5,6,7,10,11,12}
2561                            DMA (Compatibility, NotBusMaster, Transfer8) {}
2562                        }
2563                        StartDependentFnNoPri ()
2564                        {
2565                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
2566                            IRQNoFlags () {3,4,5,6,7,10,11,12}
2567                            DMA (Compatibility, NotBusMaster, Transfer8) {}
2568                        }
2569                        EndDependentFn ()
2570                    })
2571                    Name (EPPR, ResourceTemplate ()
2572                    {
2573                        StartDependentFn (0x00, 0x00)
2574                        {
2575                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
2576                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
2577                            IRQNoFlags () {7}
2578                            DMA (Compatibility, NotBusMaster, Transfer8) {3}
2579                        }
2580                        StartDependentFnNoPri ()
2581                        {
2582                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
2583                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
2584                            IRQNoFlags () {3,4,5,6,7,10,11,12}
2585                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
2586                        }
2587                        StartDependentFnNoPri ()
2588                        {
2589                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
2590                            IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
2591                            IRQNoFlags () {3,4,5,6,7,10,11,12}
2592                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
2593                        }
2594                        StartDependentFnNoPri ()
2595                        {
2596                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
2597                            IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04)
2598                            IRQNoFlags () {3,4,5,6,7,10,11,12}
2599                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
2600                        }
2601                        EndDependentFn ()
2602                    })
2603                }
2604
2605                Device (SIOR)
2606                {
2607                    Name (_HID, EisaId ("PNP0C02"))
2608                    Method (_UID, 0, NotSerialized)
2609                    {
2610                        Return (SPIO)
2611                    }
2612
2613                    Name (CRS, ResourceTemplate ()
2614                    {
2615                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
2616                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
2617                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
2618                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
2619                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
2620                    })
2621                    Method (_CRS, 0, NotSerialized)
2622                    {
2623                        If (LAnd (LNot (LEqual (SPIO, 0x03F0)), LGreater (SPIO, 0xF0)))
2624                        {
2625                            CreateWordField (CRS, 0x02, GP10)
2626                            CreateWordField (CRS, 0x04, GP11)
2627                            CreateByteField (CRS, 0x07, GPL1)
2628                            Store (SPIO, GP10)
2629                            Store (SPIO, GP11)
2630                            Store (0x02, GPL1)
2631                        }
2632
2633                        If (IOPB)
2634                        {
2635                            CreateWordField (CRS, 0x0A, GP20)
2636                            CreateWordField (CRS, 0x0C, GP21)
2637                            CreateByteField (CRS, 0x0F, GPL2)
2638                            Store (IOPB, GP20)
2639                            Store (IOPB, GP21)
2640                            Store (IOPL, GPL2)
2641                        }
2642
2643                        If (IOEB)
2644                        {
2645                            CreateWordField (CRS, 0x12, GP30)
2646                            CreateWordField (CRS, 0x14, GP31)
2647                            CreateByteField (CRS, 0x17, GPL3)
2648                            Store (IOEB, GP30)
2649                            Store (IOEB, GP31)
2650                            Store (IOEL, GPL3)
2651                        }
2652
2653                        If (IOGB)
2654                        {
2655                            CreateWordField (CRS, 0x1A, GP40)
2656                            CreateWordField (CRS, 0x1C, GP41)
2657                            CreateByteField (CRS, 0x1F, GPL4)
2658                            Store (IOGB, GP40)
2659                            Store (IOGB, GP41)
2660                            Store (IOGL, GPL4)
2661                        }
2662
2663                        If (IODB)
2664                        {
2665                            CreateWordField (CRS, 0x22, GP50)
2666                            CreateWordField (CRS, 0x24, GP51)
2667                            CreateByteField (CRS, 0x27, GPL5)
2668                            Store (IODB, GP50)
2669                            Store (IODB, GP51)
2670                            Store (IODL, GPL5)
2671                        }
2672
2673                        Return (CRS)
2674                    }
2675                }
2676
2677                Name (DCAT, Package (0x16)
2678                {
2679                    One,
2680                    0x02,
2681                    0x03,
2682                    Zero,
2683                    0xFF,
2684                    0x08,
2685                    0xFF,
2686                    0xFF,
2687                    0x09,
2688                    0xFF,
2689                    0x05,
2690                    0x04,
2691                    0xFF,
2692                    0xFF,
2693                    0xFF,
2694                    0xFF,
2695                    0x0A,
2696                    0xFF,
2697                    0xFF,
2698                    0xFF,
2699                    0xFF,
2700                    0xFF
2701                })
2702                Name (IKEY, Package (0x02)
2703                {
2704                    Package (0x04)
2705                    {
2706                        0x87,
2707                        One,
2708                        0x55,
2709                        0x55
2710                    },
2711
2712                    Package (0x04)
2713                    {
2714                        0x87,
2715                        One,
2716                        0x55,
2717                        0xAA
2718                    }
2719                })
2720                Name (KBFG, One)
2721                Name (MSFG, One)
2722                Name (UR1F, One)
2723                Method (ENFG, 1, NotSerialized)
2724                {
2725                    Store (Zero, Local1)
2726                    If (LEqual (SPIO, 0x2E))
2727                    {
2728                        Store (Zero, Local1)
2729                    }
2730
2731                    If (LEqual (SPIO, 0x4E))
2732                    {
2733                        Store (One, Local1)
2734                    }
2735
2736                    Store (Zero, Local0)
2737                    While (LNot (LEqual (Local0, 0x04)))
2738                    {
2739                        Store (DerefOf (Index (DerefOf (Index (IKEY, Local1)), Local0)), INDX)
2740                        Increment (Local0)
2741                    }
2742
2743                    Store (Arg0, LDN)
2744                }
2745
2746                Method (ENTR, 0, NotSerialized)
2747                {
2748                    Store (0x87, INDX)
2749                    Store (One, INDX)
2750                    Store (0x55, INDX)
2751                    If (LEqual (SPIO, 0x2E))
2752                    {
2753                        Store (0x55, INDX)
2754                    }
2755                    Else
2756                    {
2757                        Store (0xAA, INDX)
2758                    }
2759                }
2760
2761                Method (EXFG, 0, NotSerialized)
2762                {
2763                    Store (0x02, INDX)
2764                    Store (0x02, DATA)
2765                }
2766
2767                Method (LPTM, 1, NotSerialized)
2768                {
2769                    ENFG (CGLD (Arg0))
2770                    And (OPT0, 0x02, Local0)
2771                    EXFG ()
2772                    Return (Local0)
2773                }
2774
2775                Method (UHID, 1, NotSerialized)
2776                {
2777                    ENFG (CGLD (Arg0))
2778                    And (OPT0, 0x70, Local0)
2779                    EXFG ()
2780                    If (Local0)
2781                    {
2782                        Return (0x1005D041)
2783                    }
2784
2785                    Return (0x0105D041)
2786                }
2787
2788                Method (ORF0, 1, NotSerialized)
2789                {
2790                    ENTR ()
2791                    Or (OPT0, Arg0, OPT0)
2792                    EXFG ()
2793                }
2794
2795                Method (ORF1, 1, NotSerialized)
2796                {
2797                    ENTR ()
2798                    Or (OPT1, Arg0, OPT1)
2799                    EXFG ()
2800                }
2801
2802                Method (ORF2, 1, NotSerialized)
2803                {
2804                    ENTR ()
2805                    Or (OPT2, Arg0, OPT2)
2806                    EXFG ()
2807                }
2808
2809                Method (ANF0, 1, NotSerialized)
2810                {
2811                    ENTR ()
2812                    And (OPT0, Arg0, OPT0)
2813                    EXFG ()
2814                }
2815
2816                Method (ANF2, 1, NotSerialized)
2817                {
2818                    ENTR ()
2819                    And (OPT2, Arg0, OPT2)
2820                    EXFG ()
2821                }
2822
2823                Method (ANF4, 1, NotSerialized)
2824                {
2825                    ENTR ()
2826                    And (OPT4, Arg0, OPT4)
2827                    EXFG ()
2828                }
2829
2830                Method (STF0, 1, NotSerialized)
2831                {
2832                    ENTR ()
2833                    Store (Arg0, OPT0)
2834                    EXFG ()
2835                }
2836
2837                Method (STF1, 1, NotSerialized)
2838                {
2839                    ENTR ()
2840                    Store (Arg0, OPT1)
2841                    EXFG ()
2842                }
2843
2844                Method (SIOS, 1, NotSerialized)
2845                {
2846                    Store ("SIOS", Debug)
2847                    Store (Zero, GP10)
2848                    If (LLess (Arg0, 0x05))
2849                    {
2850                        ENFG (0x04)
2851                        Store (One, ACTR)
2852                        EXFG ()
2853                        ANF4 (0xFC)
2854                        ORF1 (0x18)
2855                        If (KBFG)
2856                        {
2857                            ORF0 (0x08)
2858                        }
2859                        Else
2860                        {
2861                            ANF0 (0xF7)
2862                        }
2863
2864                        If (MSFG)
2865                        {
2866                            ORF0 (0x10)
2867                        }
2868                        Else
2869                        {
2870                            ANF0 (0xEF)
2871                            ENFG (0x06)
2872                            Store (Zero, ACTR)
2873                            EXFG ()
2874                        }
2875
2876                        ENFG (0x04)
2877                        ANF2 (0xF0)
2878                        ENFG (0x07)
2879                        And (OPF9, 0xFE, OPF9)
2880                        And (OPC0, 0xFE, OPC0)
2881                        And (OPC3, 0xFE, OPC3)
2882                        And (OP29, 0xEF, OP29)
2883                        EXFG ()
2884                    }
2885                    Else
2886                    {
2887                        ENFG (0x07)
2888                        And (OPC0, Zero, OPC0)
2889                        Or (OPC0, One, OPC0)
2890                        And (OPC3, Zero, OPC3)
2891                        Or (OPC3, One, OPC3)
2892                        Or (OPF9, One, OPF9)
2893                        And (OP29, 0xEF, OP29)
2894                        EXFG ()
2895                    }
2896                }
2897
2898                Method (SIOW, 1, NotSerialized)
2899                {
2900                    Store (One, GP10)
2901                    Store (One, GP40)
2902                    Store ("SIOW", Debug)
2903                    ENFG (0x04)
2904                    Store (Zero, ACTR)
2905                    EXFG ()
2906                    STF0 (Zero)
2907                    STF1 (0xFF)
2908                    ENFG (0x07)
2909                    Or (OP29, 0x10, OP29)
2910                    Or (OPC0, One, OPC0)
2911                    Or (OPC3, One, OPC3)
2912                    EXFG ()
2913                    ENFG (0x05)
2914                    Or (ACTR, One, ACTR)
2915                    EXFG ()
2916                    ENFG (0x06)
2917                    Or (ACTR, One, ACTR)
2918                    EXFG ()
2919                    ENFG (0x04)
2920                    Store (One, ACTR)
2921                    EXFG ()
2922                }
2923
2924                Method (SIOH, 0, NotSerialized)
2925                {
2926                    Store ("SIOH", Debug)
2927                }
2928
2929                OperationRegion (IOID, SystemIO, SPIO, 0x02)
2930                Field (IOID, ByteAcc, NoLock, Preserve)
2931                {
2932                    INDX,   8,
2933                    DATA,   8
2934                }
2935
2936                IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
2937                {
2938                    Offset (0x07),
2939                    LDN,    8,
2940                    Offset (0x29),
2941                    OP29,   8,
2942                    Offset (0x30),
2943                    ACTR,   8,
2944                    Offset (0x60),
2945                    IOAH,   8,
2946                    IOAL,   8,
2947                    IOH2,   8,
2948                    IOL2,   8,
2949                    Offset (0x70),
2950                    INTR,   8,
2951                    Offset (0x74),
2952                    DMCH,   8,
2953                    Offset (0xC0),
2954                    OPC0,   8,
2955                    OPC1,   8,
2956                    OPC2,   8,
2957                    OPC3,   8,
2958                    Offset (0xF0),
2959                    OPT0,   8,
2960                    OPT1,   8,
2961                    OPT2,   8,
2962                    OPT3,   8,
2963                    OPT4,   8,
2964                    Offset (0xF8),
2965                    OPF8,   8,
2966                    OPF9,   8,
2967                    OPFA,   8,
2968                    OPFB,   8
2969                }
2970
2971                Method (CGLD, 1, NotSerialized)
2972                {
2973                    Return (DerefOf (Index (DCAT, Arg0)))
2974                }
2975
2976                Method (DSTA, 1, NotSerialized)
2977                {
2978                    ENFG (CGLD (Arg0))
2979                    Store (ACTR, Local0)
2980                    EXFG ()
2981                    If (LEqual (Local0, 0xFF))
2982                    {
2983                        Return (Zero)
2984                    }
2985
2986                    And (Local0, One, Local0)
2987                    Or (IOST, ShiftLeft (Local0, Arg0), IOST)
2988                    If (Local0)
2989                    {
2990                        Return (0x0F)
2991                    }
2992                    Else
2993                    {
2994                        If (And (ShiftLeft (One, Arg0), IOST))
2995                        {
2996                            Return (0x0D)
2997                        }
2998                        Else
2999                        {
3000                            Return (Zero)
3001                        }
3002                    }
3003                }
3004
3005                Method (DCNT, 2, NotSerialized)
3006                {
3007                    ENFG (CGLD (Arg0))
3008                    ShiftLeft (IOAH, 0x08, Local1)
3009                    Or (IOAL, Local1, Local1)
3010                    RRIO (Arg0, Arg1, Local1, 0x08)
3011                    If (LAnd (LLess (DMCH, 0x04), LNot (LEqual (And (DMCH, 0x03, Local1), Zero))))
3012                    {
3013                        RDMA (Arg0, Arg1, Increment (Local1))
3014                    }
3015
3016                    Store (Arg1, ACTR)
3017                    EXFG ()
3018                }
3019
3020                Name (CRS1, ResourceTemplate ()
3021                {
3022                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
3023                    IRQNoFlags () {}
3024                    DMA (Compatibility, NotBusMaster, Transfer8) {}
3025                })
3026                CreateWordField (CRS1, 0x09, IRQM)
3027                CreateByteField (CRS1, 0x0C, DMAM)
3028                CreateWordField (CRS1, 0x02, IO11)
3029                CreateWordField (CRS1, 0x04, IO12)
3030                CreateByteField (CRS1, 0x07, LEN1)
3031                Name (CRS2, ResourceTemplate ()
3032                {
3033                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
3034                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
3035                    IRQNoFlags () {6}
3036                    DMA (Compatibility, NotBusMaster, Transfer8) {2}
3037                })
3038                CreateWordField (CRS2, 0x11, IRQE)
3039                CreateByteField (CRS2, 0x14, DMAE)
3040                CreateWordField (CRS2, 0x02, IO21)
3041                CreateWordField (CRS2, 0x04, IO22)
3042                CreateByteField (CRS2, 0x07, LEN2)
3043                CreateWordField (CRS2, 0x0A, IO31)
3044                CreateWordField (CRS2, 0x0C, IO32)
3045                CreateByteField (CRS2, 0x0F, LEN3)
3046                Method (DCRS, 2, NotSerialized)
3047                {
3048                    ENFG (CGLD (Arg0))
3049                    ShiftLeft (IOAH, 0x08, IO11)
3050                    Or (IOAL, IO11, IO11)
3051                    Store (IO11, IO12)
3052                    Subtract (FindSetRightBit (IO11), One, Local0)
3053                    ShiftLeft (One, Local0, LEN1)
3054                    If (INTR)
3055                    {
3056                        ShiftLeft (One, INTR, IRQM)
3057                    }
3058                    Else
3059                    {
3060                        Store (Zero, IRQM)
3061                    }
3062
3063                    If (LOr (LGreater (DMCH, 0x03), LEqual (Arg1, Zero)))
3064                    {
3065                        Store (Zero, DMAM)
3066                    }
3067                    Else
3068                    {
3069                        And (DMCH, 0x03, Local1)
3070                        ShiftLeft (One, Local1, DMAM)
3071                    }
3072
3073                    EXFG ()
3074                    Return (CRS1)
3075                }
3076
3077                Method (DSRS, 2, NotSerialized)
3078                {
3079                    CreateWordField (Arg0, 0x09, IRQM)
3080                    CreateByteField (Arg0, 0x0C, DMAM)
3081                    CreateWordField (Arg0, 0x02, IO11)
3082                    ENFG (CGLD (Arg1))
3083                    And (IO11, 0xFF, IOAL)
3084                    ShiftRight (IO11, 0x08, IOAH)
3085                    If (IRQM)
3086                    {
3087                        FindSetRightBit (IRQM, Local0)
3088                        Subtract (Local0, One, INTR)
3089                    }
3090                    Else
3091                    {
3092                        Store (Zero, INTR)
3093                    }
3094
3095                    If (DMAM)
3096                    {
3097                        FindSetRightBit (DMAM, Local0)
3098                        Subtract (Local0, One, DMCH)
3099                    }
3100                    Else
3101                    {
3102                        Store (0x04, DMCH)
3103                    }
3104
3105                    EXFG ()
3106                    DCNT (Arg1, One)
3107                }
3108
3109                OperationRegion (GPIO, SystemIO, IO1B, 0x04)
3110                Field (GPIO, ByteAcc, NoLock, Preserve)
3111                {
3112                    GP10,   1,
3113                    GP11,   1,
3114                    GP12,   1,
3115                    GP13,   1,
3116                    GO14,   1,
3117                    GO15,   1,
3118                    GO16,   1,
3119                    GO17,   1,
3120                    GP20,   1,
3121                    GP21,   1,
3122                    GP22,   1,
3123                    GP23,   1,
3124                    GO24,   1,
3125                    GO25,   1,
3126                    GO26,   1,
3127                    GO27,   1,
3128                    GP30,   1,
3129                    GP31,   1,
3130                    GP32,   1,
3131                    GP33,   1,
3132                    GO34,   1,
3133                    GO35,   1,
3134                    GO36,   1,
3135                    GO37,   1,
3136                    GP40,   1,
3137                    GP41,   1,
3138                    GP42,   1,
3139                    GP43,   1,
3140                    GO44,   1,
3141                    GO45,   1,
3142                    GO46,   1,
3143                    GO47,   1
3144                }
3145
3146                Device (NBRM)
3147                {
3148                    Name (_HID, EisaId ("PNP0C02"))
3149                    Name (_UID, 0x99)
3150                    Name (CRS, ResourceTemplate ()
3151                    {
3152                    })
3153                    Method (_CRS, 0, NotSerialized)
3154                    {
3155                        Return (CRS)
3156                    }
3157                }
3158
3159                Device (RMSC)
3160                {
3161                    Name (_HID, EisaId ("PNP0C02"))
3162                    Name (_UID, 0x10)
3163                    Name (CRS, ResourceTemplate ()
3164                    {
3165                        IO (Decode16, 0x0010, 0x0010, 0x00, 0x10)
3166                        IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E)
3167                        IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C)
3168                        IO (Decode16, 0x0062, 0x0062, 0x00, 0x02)
3169                        IO (Decode16, 0x0065, 0x0065, 0x00, 0x0B)
3170                        IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E)
3171                        IO (Decode16, 0x0080, 0x0080, 0x00, 0x01)
3172                        IO (Decode16, 0x0084, 0x0084, 0x00, 0x03)
3173                        IO (Decode16, 0x0088, 0x0088, 0x00, 0x01)
3174                        IO (Decode16, 0x008C, 0x008C, 0x00, 0x03)
3175                        IO (Decode16, 0x0090, 0x0090, 0x00, 0x10)
3176                        IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E)
3177                        IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10)
3178                        IO (Decode16, 0x03E0, 0x03E0, 0x00, 0x08)
3179                        IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02)
3180                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
3181                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
3182                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
3183                    })
3184                    Method (_CRS, 0, NotSerialized)
3185                    {
3186                        CreateWordField (CRS, 0x7A, GP00)
3187                        CreateWordField (CRS, 0x7C, GP01)
3188                        CreateByteField (CRS, 0x7F, GP0L)
3189                        Store (PMBS, GP00)
3190                        Store (PMBS, GP01)
3191                        Store (PMLN, GP0L)
3192                        If (SMBS)
3193                        {
3194                            CreateWordField (CRS, 0x82, GP10)
3195                            CreateWordField (CRS, 0x84, GP11)
3196                            CreateByteField (CRS, 0x87, GP1L)
3197                            Store (SMBS, GP10)
3198                            Store (SMBS, GP11)
3199                            Store (SMBL, GP1L)
3200                        }
3201
3202                        If (GPBS)
3203                        {
3204                            CreateWordField (CRS, 0x8A, GP20)
3205                            CreateWordField (CRS, 0x8C, GP21)
3206                            CreateByteField (CRS, 0x8F, GP2L)
3207                            Store (GPBS, GP20)
3208                            Store (GPBS, GP21)
3209                            Store (GPLN, GP2L)
3210                        }
3211
3212                        Return (CRS)
3213                    }
3214                }
3215
3216                Scope (SBRG)
3217                {
3218                    Device (ASOC)
3219                    {
3220                        Name (_HID, "ATK0110")
3221                        Name (_UID, 0x01010110)
3222                        Method (_STA, 0, NotSerialized)
3223                        {
3224                            Return (0x0F)
3225                        }
3226
3227                        Name (MBIF, Package (0x08)
3228                        {
3229                            One,
3230                            "M2V",
3231                            One,
3232                            Zero,
3233                            Zero,
3234                            Zero,
3235                            Zero,
3236                            Zero
3237                        })
3238                        Method (ASIF, 0, NotSerialized)
3239                        {
3240                            Return (MBIF)
3241                        }
3242                    }
3243                }
3244
3245                Device (HPET)
3246                {
3247                    Name (_HID, EisaId ("PNP0103"))
3248                    Name (_UID, Zero)
3249                    Name (CRS0, ResourceTemplate ()
3250                    {
3251                    })
3252                    Name (CRS1, ResourceTemplate ()
3253                    {
3254                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
3255                        IRQNoFlags () {0}
3256                        IRQNoFlags () {8}
3257                    })
3258                    Method (_STA, 0, NotSerialized)
3259                    {
3260                        If (LNot (LEqual (HPTE, One)))
3261                        {
3262                            Return (Zero)
3263                        }
3264                        Else
3265                        {
3266                            Return (0x0F)
3267                        }
3268                    }
3269
3270                    OperationRegion (DBHP, SystemIO, 0x98, 0x04)
3271                    Field (DBHP, DWordAcc, NoLock, Preserve)
3272                    {
3273                        DB98,   32
3274                    }
3275
3276                    Method (_CRS, 0, NotSerialized)
3277                    {
3278                        CreateDWordField (CRS1, 0x04, BAS1)
3279                        CreateDWordField (CRS1, 0x08, LEN1)
3280                        If (LNot (LEqual (HPTE, One)))
3281                        {
3282                            Return (CRS0)
3283                        }
3284                        Else
3285                        {
3286                            ShiftLeft (HPTM, 0x08, DB98)
3287                            ShiftLeft (HPTM, 0x08, BAS1)
3288                            Store (0x0400, LEN1)
3289                            Return (CRS1)
3290                        }
3291                    }
3292                }
3293
3294                Device (TMR)
3295                {
3296                    Name (_HID, EisaId ("PNP0100"))
3297                    Name (CRS0, ResourceTemplate ()
3298                    {
3299                        IO (Decode16, 0x0040, 0x0040, 0x00, 0x04)
3300                        IRQNoFlags () {0}
3301                    })
3302                    Name (CRS1, ResourceTemplate ()
3303                    {
3304                        IO (Decode16, 0x0040, 0x0040, 0x00, 0x04)
3305                    })
3306                    Method (_CRS, 0, NotSerialized)
3307                    {
3308                        If (LNot (LEqual (HPTE, One)))
3309                        {
3310                            Return (CRS0)
3311                        }
3312                        Else
3313                        {
3314                            Return (CRS1)
3315                        }
3316                    }
3317                }
3318
3319                Device (RTC0)
3320                {
3321                    Name (_HID, EisaId ("PNP0B00"))
3322                    Name (CRS0, ResourceTemplate ()
3323                    {
3324                        IO (Decode16, 0x0070, 0x0070, 0x00, 0x02)
3325                        IRQNoFlags () {8}
3326                    })
3327                    Name (CRS1, ResourceTemplate ()
3328                    {
3329                        IO (Decode16, 0x0070, 0x0070, 0x00, 0x02)
3330                    })
3331                    Method (_CRS, 0, NotSerialized)
3332                    {
3333                        If (LNot (LEqual (HPTE, One)))
3334                        {
3335                            Return (CRS0)
3336                        }
3337                        Else
3338                        {
3339                            Return (CRS1)
3340                        }
3341                    }
3342                }
3343
3344                Scope (\)
3345                {
3346                    OperationRegion (RAMW, SystemMemory, Subtract (TOPM, 0x00010000), 0x00010000)
3347                    Field (RAMW, ByteAcc, NoLock, Preserve)
3348                    {
3349                        PAR0,   32,
3350                        PAR1,   32
3351                    }
3352
3353                    OperationRegion (IOB2, SystemIO, 0x082F, 0x02)
3354                    Field (IOB2, ByteAcc, NoLock, Preserve)
3355                    {
3356                        SMIC,   8,
3357                        SMIS,   8
3358                    }
3359
3360                    Method (ISMI, 1, Serialized)
3361                    {
3362                        Store (Arg0, SMIC)
3363                    }
3364
3365                    Method (GNVS, 1, Serialized)
3366                    {
3367                        Store (Arg0, PAR0)
3368                        ISMI (0x70)
3369                        Return (PAR1)
3370                    }
3371
3372                    Method (SNVS, 2, Serialized)
3373                    {
3374                        Store (Arg0, PAR0)
3375                        Store (Arg1, PAR1)
3376                        ISMI (0x71)
3377                    }
3378                }
3379
3380                Scope (\)
3381                {
3382                    Field (RAMW, ByteAcc, NoLock, Preserve)
3383                    {
3384                        Offset (0x28),
3385                        AWEN,   1
3386                    }
3387                }
3388
3389                Scope (_SB)
3390                {
3391                    Device (AWY)
3392                    {
3393                        Name (_HID, "AWY0001")
3394                        Method (SMOD, 1, NotSerialized)
3395                        {
3396                        }
3397
3398                        Method (_STA, 0, NotSerialized)
3399                        {
3400                            If (AWEN)
3401                            {
3402                                Return (0x0F)
3403                            }
3404
3405                            Return (Zero)
3406                        }
3407                    }
3408                }
3409
3410                Device (PCIE)
3411                {
3412                    Name (_HID, EisaId ("PNP0C02"))
3413                    Name (_UID, 0x11)
3414                    Name (CRS, ResourceTemplate ()
3415                    {
3416                        Memory32Fixed (ReadOnly, 0xE0000000, 0x10000000)
3417                    })
3418                    Method (_CRS, 0, NotSerialized)
3419                    {
3420                        CreateDWordField (CRS, 0x04, BAS1)
3421                        CreateDWordField (CRS, 0x08, LEN1)
3422                        Store (PCIB, BAS1)
3423                        Store (PCIL, LEN1)
3424                        Return (CRS)
3425                    }
3426                }
3427
3428                Device (OMSC)
3429                {
3430                    Name (_HID, EisaId ("PNP0C02"))
3431                    Name (_UID, Zero)
3432                    Name (CRS, ResourceTemplate ()
3433                    {
3434                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
3435                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
3436                    })
3437                    Method (_CRS, 0, NotSerialized)
3438                    {
3439                        If (APIC)
3440                        {
3441                            CreateDWordField (CRS, 0x08, ML01)
3442                            CreateDWordField (CRS, 0x04, MB01)
3443                            CreateDWordField (CRS, 0x14, ML02)
3444                            CreateDWordField (CRS, 0x10, MB02)
3445                            Store (0xFEC00000, MB01)
3446                            Store (0x1000, ML01)
3447                            Store (0xFEE00000, MB02)
3448                            Store (0x1000, ML02)
3449                        }
3450
3451                        Return (CRS)
3452                    }
3453                }
3454
3455                Device (RMEM)
3456                {
3457                    Name (_HID, EisaId ("PNP0C01"))
3458                    Name (_UID, One)
3459                    Name (CRS, ResourceTemplate ()
3460                    {
3461                        Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
3462                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
3463                        Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000)
3464                        Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
3465                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
3466                    })
3467                    Method (_CRS, 0, NotSerialized)
3468                    {
3469                        CreateDWordField (CRS, 0x10, BAS1)
3470                        CreateDWordField (CRS, 0x14, LEN1)
3471                        CreateDWordField (CRS, 0x1C, BAS2)
3472                        CreateDWordField (CRS, 0x20, LEN2)
3473                        CreateDWordField (CRS, 0x2C, LEN3)
3474                        CreateDWordField (CRS, 0x34, BAS4)
3475                        CreateDWordField (CRS, 0x38, LEN4)
3476                        If (OSFL ()) {}
3477                        Else
3478                        {
3479                            If (MG1B)
3480                            {
3481                                If (LGreater (MG1B, 0x000C0000))
3482                                {
3483                                    Store (0x000C0000, BAS1)
3484                                    Subtract (MG1B, BAS1, LEN1)
3485                                }
3486                            }
3487                            Else
3488                            {
3489                                Store (0x000C0000, BAS1)
3490                                Store (0x00020000, LEN1)
3491                            }
3492
3493                            If (Add (MG1B, MG1L, Local0))
3494                            {
3495                                Store (Local0, BAS2)
3496                                Subtract (0x00100000, BAS2, LEN2)
3497                            }
3498                        }
3499
3500                        Subtract (MG2B, 0x00100000, LEN3)
3501                        Add (MG2B, MG2L, BAS4)
3502                        Subtract (Zero, BAS4, LEN4)
3503                        Return (CRS)
3504                    }
3505                }
3506
3507                Device (UAR1)
3508                {
3509                    Name (_UID, One)
3510                    Method (_HID, 0, NotSerialized)
3511                    {
3512                        Return (UHID (Zero))
3513                    }
3514
3515                    Method (_STA, 0, NotSerialized)
3516                    {
3517                        Return (DSTA (Zero))
3518                    }
3519
3520                    Method (_DIS, 0, NotSerialized)
3521                    {
3522                        DCNT (Zero, Zero)
3523                    }
3524
3525                    Method (_CRS, 0, NotSerialized)
3526                    {
3527                        Return (DCRS (Zero, One))
3528                    }
3529
3530                    Method (_SRS, 1, NotSerialized)
3531                    {
3532                        DSRS (Arg0, Zero)
3533                    }
3534
3535                    Method (_PRS, 0, NotSerialized)
3536                    {
3537                        Return (CMPR)
3538                    }
3539
3540                    Name (CMPR, ResourceTemplate ()
3541                    {
3542                        StartDependentFn (0x00, 0x00)
3543                        {
3544                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
3545                            IRQNoFlags () {4}
3546                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3547                        }
3548                        StartDependentFnNoPri ()
3549                        {
3550                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
3551                            IRQNoFlags () {3,4,5,6,7,10,11,12}
3552                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3553                        }
3554                        StartDependentFnNoPri ()
3555                        {
3556                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
3557                            IRQNoFlags () {3,4,5,6,7,10,11,12}
3558                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3559                        }
3560                        StartDependentFnNoPri ()
3561                        {
3562                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
3563                            IRQNoFlags () {3,4,5,6,7,10,11,12}
3564                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3565                        }
3566                        StartDependentFnNoPri ()
3567                        {
3568                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
3569                            IRQNoFlags () {3,4,5,6,7,10,11,12}
3570                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3571                        }
3572                        StartDependentFnNoPri ()
3573                        {
3574                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
3575                            IRQNoFlags () {3,4,5,6,7,10,11,12}
3576                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
3577                        }
3578                        StartDependentFnNoPri ()
3579                        {
3580                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
3581                            IRQNoFlags () {3,4,5,6,7,10,11,12}
3582                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
3583                        }
3584                        StartDependentFnNoPri ()
3585                        {
3586                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
3587                            IRQNoFlags () {3,4,5,6,7,10,11,12}
3588                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
3589                        }
3590                        StartDependentFnNoPri ()
3591                        {
3592                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
3593                            IRQNoFlags () {3,4,5,6,7,10,11,12}
3594                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
3595                        }
3596                        EndDependentFn ()
3597                    })
3598                }
3599
3600                Method (_PRW, 0, NotSerialized)
3601                {
3602                    Return (GPRW (0x08, 0x04))
3603                }
3604
3605                Device (PS2K)
3606                {
3607                    Name (_HID, EisaId ("PNP0303"))
3608                    Name (_CID, 0x0B03D041)
3609                    Method (_STA, 0, NotSerialized)
3610                    {
3611                        ShiftLeft (One, 0x0A, Local0)
3612                        If (And (IOST, Local0))
3613                        {
3614                            Return (0x0F)
3615                        }
3616
3617                        Return (Zero)
3618                    }
3619
3620                    Name (_CRS, ResourceTemplate ()
3621                    {
3622                        IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
3623                        IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
3624                        IRQNoFlags () {1}
3625                    })
3626                }
3627
3628                Method (_PRW, 0, NotSerialized)
3629                {
3630                    Return (GPRW (0x02, 0x04))
3631                }
3632
3633                Device (PS2M)
3634                {
3635                    Name (_HID, EisaId ("PNP0F03"))
3636                    Name (_CID, 0x130FD041)
3637                    Method (_STA, 0, NotSerialized)
3638                    {
3639                        ShiftLeft (One, 0x0C, Local0)
3640                        If (And (IOST, Local0))
3641                        {
3642                            Return (0x0F)
3643                        }
3644
3645                        Return (Zero)
3646                    }
3647
3648                    Name (_CRS, ResourceTemplate ()
3649                    {
3650                        IRQNoFlags () {12}
3651                    })
3652                }
3653
3654                Method (_PRW, 0, NotSerialized)
3655                {
3656                    Return (GPRW (0x09, 0x04))
3657                }
3658            }
3659
3660            Device (SVLK)
3661            {
3662                Name (_ADR, 0x00110007)
3663            }
3664
3665            Device (P0P9)
3666            {
3667                Name (_ADR, 0x00130000)
3668                Method (_PRT, 0, NotSerialized)
3669                {
3670                    If (PICM)
3671                    {
3672                        Return (AR09)
3673                    }
3674
3675                    Return (PR09)
3676                }
3677
3678                Device (HDAC)
3679                {
3680                    Name (_ADR, 0x00010000)
3681                }
3682            }
3683
3684            Device (USB1)
3685            {
3686                Name (_ADR, 0x00100000)
3687                OperationRegion (WAU1, PCI_Config, 0x84, One)
3688                Field (WAU1, ByteAcc, NoLock, Preserve)
3689                {
3690                    U184,   8
3691                }
3692
3693                OperationRegion (U1D3, PCI_Config, 0x49, One)
3694                Field (U1D3, ByteAcc, NoLock, Preserve)
3695                {
3696                    UR49,   3
3697                }
3698
3699                OperationRegion (UBP1, PCI_Config, 0x85, One)
3700                Field (UBP1, ByteAcc, NoLock, Preserve)
3701                {
3702                    U1PE,   1
3703                }
3704
3705                Method (_S3D, 0, NotSerialized)
3706                {
3707                    If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
3708                    {
3709                        Return (0x02)
3710                    }
3711                    Else
3712                    {
3713                        Return (0x03)
3714                    }
3715                }
3716
3717                Method (_PRW, 0, NotSerialized)
3718                {
3719                    Return (GPRW (0x0E, 0x04))
3720                }
3721            }
3722
3723            Device (USB2)
3724            {
3725                Name (_ADR, 0x00100001)
3726                OperationRegion (WAU2, PCI_Config, 0x84, One)
3727                Field (WAU2, ByteAcc, NoLock, Preserve)
3728                {
3729                    U284,   8
3730                }
3731
3732                OperationRegion (UBP2, PCI_Config, 0x85, One)
3733                Field (UBP2, ByteAcc, NoLock, Preserve)
3734                {
3735                    U2PE,   1
3736                }
3737
3738                Method (_S3D, 0, NotSerialized)
3739                {
3740                    If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
3741                    {
3742                        Return (0x02)
3743                    }
3744                    Else
3745                    {
3746                        Return (0x03)
3747                    }
3748                }
3749
3750                Method (_PRW, 0, NotSerialized)
3751                {
3752                    Return (GPRW (0x0E, 0x04))
3753                }
3754            }
3755
3756            Device (USB3)
3757            {
3758                Name (_ADR, 0x00100002)
3759                OperationRegion (WAU3, PCI_Config, 0x84, One)
3760                Field (WAU3, ByteAcc, NoLock, Preserve)
3761                {
3762                    U384,   8
3763                }
3764
3765                OperationRegion (UBP3, PCI_Config, 0x85, One)
3766                Field (UBP3, ByteAcc, NoLock, Preserve)
3767                {
3768                    U3PE,   1
3769                }
3770
3771                Method (_S3D, 0, NotSerialized)
3772                {
3773                    If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
3774                    {
3775                        Return (0x02)
3776                    }
3777                    Else
3778                    {
3779                        Return (0x03)
3780                    }
3781                }
3782
3783                Method (_PRW, 0, NotSerialized)
3784                {
3785                    Return (GPRW (0x0E, 0x04))
3786                }
3787            }
3788
3789            Device (USB4)
3790            {
3791                Name (_ADR, 0x00100003)
3792                OperationRegion (WAU4, PCI_Config, 0x84, One)
3793                Field (WAU4, ByteAcc, NoLock, Preserve)
3794                {
3795                    U484,   8
3796                }
3797
3798                OperationRegion (UBP4, PCI_Config, 0x85, One)
3799                Field (UBP4, ByteAcc, NoLock, Preserve)
3800                {
3801                    U4PE,   1
3802                }
3803
3804                Method (_S3D, 0, NotSerialized)
3805                {
3806                    If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
3807                    {
3808                        Return (0x02)
3809                    }
3810                    Else
3811                    {
3812                        Return (0x03)
3813                    }
3814                }
3815
3816                Method (_PRW, 0, NotSerialized)
3817                {
3818                    Return (GPRW (0x0E, 0x04))
3819                }
3820            }
3821
3822            Device (EHCI)
3823            {
3824                Name (_ADR, 0x00100004)
3825                OperationRegion (WAU5, PCI_Config, 0x84, One)
3826                Field (WAU5, ByteAcc, NoLock, Preserve)
3827                {
3828                    U584,   8
3829                }
3830
3831                Method (_PRW, 0, NotSerialized)
3832                {
3833                    Return (GPRW (0x0E, 0x04))
3834                }
3835            }
3836
3837            Device (P0PA)
3838            {
3839                Name (_ADR, 0x00130001)
3840                Method (_PRW, 0, NotSerialized)
3841                {
3842                    Return (GPRW (0x05, 0x04))
3843                }
3844
3845                Method (_PRT, 0, NotSerialized)
3846                {
3847                    If (PICM)
3848                    {
3849                        Return (AR0A)
3850                    }
3851
3852                    Return (PR0A)
3853                }
3854
3855                Device (PCI1)
3856                {
3857                    Name (_ADR, 0x00060000)
3858                    Method (_PRW, 0, NotSerialized)
3859                    {
3860                        Return (GPRW (0x05, 0x04))
3861                    }
3862                }
3863
3864                Device (PCI2)
3865                {
3866                    Name (_ADR, 0x00070000)
3867                    Method (_PRW, 0, NotSerialized)
3868                    {
3869                        Return (GPRW (0x05, 0x04))
3870                    }
3871                }
3872
3873                Device (PCI3)
3874                {
3875                    Name (_ADR, 0x00080000)
3876                    Method (_PRW, 0, NotSerialized)
3877                    {
3878                        Return (GPRW (0x05, 0x04))
3879                    }
3880                }
3881
3882                Device (PCI4)
3883                {
3884                    Name (_ADR, 0x00090000)
3885                    Method (_PRW, 0, NotSerialized)
3886                    {
3887                        Return (GPRW (0x05, 0x04))
3888                    }
3889                }
3890            }
3891        }
3892
3893        Scope (_GPE)
3894        {
3895            Method (_L05, 0, NotSerialized)
3896            {
3897                Notify (\_SB.PCI0, 0x02)
3898                Notify (\_SB.PCI0.P0PA, 0x02)
3899                Notify (\_SB.PCI0.P0PA.PCI1, 0x02)
3900                Notify (\_SB.PCI0.P0PA.PCI2, 0x02)
3901                Notify (\_SB.PCI0.P0PA.PCI3, 0x02)
3902                Notify (\_SB.PCI0.P0PA.PCI4, 0x02)
3903                Notify (\_SB.PWRB, 0x02)
3904            }
3905
3906            Method (_L08, 0, NotSerialized)
3907            {
3908                \_SB.PCI0.SBRG.SIOH ()
3909            }
3910
3911            Method (_L02, 0, NotSerialized)
3912            {
3913                \_SB.PCI0.SBRG.SIOH ()
3914            }
3915
3916            Method (_L09, 0, NotSerialized)
3917            {
3918                \_SB.PCI0.SBRG.SIOH ()
3919            }
3920
3921            Method (_L0E, 0, NotSerialized)
3922            {
3923                Notify (\_SB.PCI0.USB1, 0x02)
3924                Notify (\_SB.PCI0.USB2, 0x02)
3925                Notify (\_SB.PCI0.USB3, 0x02)
3926                Notify (\_SB.PCI0.USB4, 0x02)
3927                Notify (\_SB.PCI0.EHCI, 0x02)
3928                Notify (\_SB.PWRB, 0x02)
3929            }
3930        }
3931
3932        Device (PWRB)
3933        {
3934            Name (_HID, EisaId ("PNP0C0C"))
3935            Name (_UID, 0xAA)
3936            Name (_STA, 0x0B)
3937        }
3938    }
3939
3940    Scope (_SB)
3941    {
3942        OperationRegion (PIX0, PCI_Config, 0x55, 0x04)
3943        OperationRegion (PIX1, PCI_Config, 0x50, 0x02)
3944        OperationRegion (PIX2, PCI_Config, 0x44, 0x02)
3945        OperationRegion (PIX3, PCI_Config, 0x67, 0x03)
3946        OperationRegion (PIX4, PCI_Config, 0x6C, 0x04)
3947        Field (PCI0.SBRG.PIX0, ByteAcc, NoLock, Preserve)
3948        {
3949                ,   4,
3950            PIRA,   4,
3951            PIRB,   4,
3952            PIRC,   4,
3953                ,   4,
3954            PIRD,   4,
3955                ,   4
3956        }
3957
3958        Field (PCI0.SBRG.PIX1, ByteAcc, NoLock, Preserve)
3959        {
3960                ,   1,
3961            EP3C,   1,
3962            EN3C,   1,
3963                ,   6,
3964            KBFG,   1
3965        }
3966
3967        Field (PCI0.SBRG.PIX2, ByteAcc, NoLock, Preserve)
3968        {
3969            PIRE,   4,
3970            PIRF,   4,
3971            PIRG,   4,
3972            PIRH,   4
3973        }
3974
3975        Field (PCI0.SBRG.PIX3, ByteAcc, NoLock, Preserve)
3976        {
3977            ENIR,   1,
3978            IRSD,   1,
3979            Offset (0x02),
3980            IRBA,   8
3981        }
3982
3983        Field (PCI0.SBRG.PIX4, ByteAcc, NoLock, Preserve)
3984        {
3985            PS0E,   1,
3986            PS1E,   1,
3987            ROME,   1,
3988            APCE,   1,
3989            LPMS,   2,
3990            MSEN,   1,
3991            IXEN,   1,
3992            LPMD,   2,
3993            MDEN,   1,
3994            GMEN,   1,
3995            LPLP,   2,
3996            LPEN,   1,
3997            FDEN,   1,
3998            LPCA,   3,
3999            CAEN,   1,
4000            LPCB,   3,
4001            CBEN,   1,
4002            LPSB,   2,
4003            SBEN,   1,
4004            FDSE,   1,
4005            Offset (0x04)
4006        }
4007
4008        OperationRegion (PIEF, PCI_Config, 0x46, One)
4009        Field (PCI0.SBRG.PIEF, ByteAcc, NoLock, Preserve)
4010        {
4011            POLE,   1,
4012            POLF,   1,
4013            POLG,   1,
4014            POLH,   1,
4015            ENR8,   1
4016        }
4017
4018        Name (IRQA, Zero)
4019        Name (IRQB, Zero)
4020        Name (IRQC, Zero)
4021        Name (IRQD, Zero)
4022        Name (IRQE, Zero)
4023        Name (IRQF, Zero)
4024        Name (IRQG, Zero)
4025        Name (IRQH, Zero)
4026        Name (ICRS, ResourceTemplate ()
4027        {
4028            IRQ (Level, ActiveLow, Shared) {15}
4029        })
4030        Device (LNKA)
4031        {
4032            Name (_HID, EisaId ("PNP0C0F"))
4033            Name (_UID, One)
4034            Method (_STA, 0, NotSerialized)
4035            {
4036                Store (PIRA, IRQA)
4037                If (PIRA)
4038                {
4039                    Return (0x0B)
4040                }
4041                Else
4042                {
4043                    Return (0x09)
4044                }
4045            }
4046
4047            Method (_PRS, 0, NotSerialized)
4048            {
4049                Return (PRSA)
4050            }
4051
4052            Method (_DIS, 0, NotSerialized)
4053            {
4054                Store (Zero, PIRA)
4055            }
4056
4057            Method (_CRS, 0, NotSerialized)
4058            {
4059                CreateWordField (ICRS, One, IRA0)
4060                Store (One, Local1)
4061                ShiftLeft (Local1, IRQA, IRA0)
4062                Return (ICRS)
4063            }
4064
4065            Method (_SRS, 1, NotSerialized)
4066            {
4067                CreateWordField (Arg0, One, IRA)
4068                FindSetRightBit (IRA, Local0)
4069                Decrement (Local0)
4070                Store (Local0, PIRA)
4071                Store (PIRA, IRQA)
4072            }
4073        }
4074
4075        Device (LNKB)
4076        {
4077            Name (_HID, EisaId ("PNP0C0F"))
4078            Name (_UID, 0x02)
4079            Method (_STA, 0, NotSerialized)
4080            {
4081                Store (PIRB, IRQB)
4082                If (PIRB)
4083                {
4084                    Return (0x0B)
4085                }
4086                Else
4087                {
4088                    Return (0x09)
4089                }
4090            }
4091
4092            Method (_PRS, 0, NotSerialized)
4093            {
4094                Return (PRSB)
4095            }
4096
4097            Method (_DIS, 0, NotSerialized)
4098            {
4099                Store (Zero, PIRB)
4100            }
4101
4102            Method (_CRS, 0, NotSerialized)
4103            {
4104                CreateWordField (ICRS, One, IRA0)
4105                Store (One, Local1)
4106                ShiftLeft (Local1, IRQB, IRA0)
4107                Return (ICRS)
4108            }
4109
4110            Method (_SRS, 1, NotSerialized)
4111            {
4112                CreateWordField (Arg0, One, IRA)
4113                FindSetRightBit (IRA, Local0)
4114                Decrement (Local0)
4115                Store (Local0, PIRB)
4116                Store (PIRB, IRQB)
4117            }
4118        }
4119
4120        Device (LNKC)
4121        {
4122            Name (_HID, EisaId ("PNP0C0F"))
4123            Name (_UID, 0x03)
4124            Method (_STA, 0, NotSerialized)
4125            {
4126                Store (PIRC, IRQC)
4127                If (PIRC)
4128                {
4129                    Return (0x0B)
4130                }
4131                Else
4132                {
4133                    Return (0x09)
4134                }
4135            }
4136
4137            Method (_PRS, 0, NotSerialized)
4138            {
4139                Return (PRSC)
4140            }
4141
4142            Method (_DIS, 0, NotSerialized)
4143            {
4144                Store (Zero, PIRC)
4145            }
4146
4147            Method (_CRS, 0, NotSerialized)
4148            {
4149                CreateWordField (ICRS, One, IRA0)
4150                Store (One, Local1)
4151                ShiftLeft (Local1, IRQC, IRA0)
4152                Return (ICRS)
4153            }
4154
4155            Method (_SRS, 1, NotSerialized)
4156            {
4157                CreateWordField (Arg0, One, IRA)
4158                FindSetRightBit (IRA, Local0)
4159                Decrement (Local0)
4160                Store (Local0, PIRC)
4161                Store (PIRC, IRQC)
4162            }
4163        }
4164
4165        Device (LNKD)
4166        {
4167            Name (_HID, EisaId ("PNP0C0F"))
4168            Name (_UID, 0x04)
4169            Method (_STA, 0, NotSerialized)
4170            {
4171                Store (PIRD, IRQD)
4172                If (PIRD)
4173                {
4174                    Return (0x0B)
4175                }
4176                Else
4177                {
4178                    Return (0x09)
4179                }
4180            }
4181
4182            Method (_PRS, 0, NotSerialized)
4183            {
4184                Return (PRSD)
4185            }
4186
4187            Method (_DIS, 0, NotSerialized)
4188            {
4189                Store (Zero, PIRD)
4190            }
4191
4192            Method (_CRS, 0, NotSerialized)
4193            {
4194                CreateWordField (ICRS, One, IRA0)
4195                Store (One, Local1)
4196                ShiftLeft (Local1, IRQD, IRA0)
4197                Return (ICRS)
4198            }
4199
4200            Method (_SRS, 1, NotSerialized)
4201            {
4202                CreateWordField (Arg0, One, IRA)
4203                FindSetRightBit (IRA, Local0)
4204                Decrement (Local0)
4205                Store (Local0, PIRD)
4206                Store (PIRD, IRQD)
4207            }
4208        }
4209
4210        Device (LNKE)
4211        {
4212            Name (_HID, EisaId ("PNP0C0F"))
4213            Name (_UID, One)
4214            Method (_STA, 0, NotSerialized)
4215            {
4216                Store (PIRE, IRQE)
4217                If (PIRE)
4218                {
4219                    Return (0x0B)
4220                }
4221                Else
4222                {
4223                    Return (0x09)
4224                }
4225            }
4226
4227            Method (_PRS, 0, NotSerialized)
4228            {
4229                Return (PRSE)
4230            }
4231
4232            Method (_DIS, 0, NotSerialized)
4233            {
4234                Store (Zero, PIRE)
4235            }
4236
4237            Method (_CRS, 0, NotSerialized)
4238            {
4239                CreateWordField (ICRS, One, IRA0)
4240                Store (One, Local1)
4241                ShiftLeft (Local1, IRQE, IRA0)
4242                Return (ICRS)
4243            }
4244
4245            Method (_SRS, 1, NotSerialized)
4246            {
4247                CreateWordField (Arg0, One, IRA)
4248                FindSetRightBit (IRA, Local0)
4249                Decrement (Local0)
4250                Store (Local0, PIRE)
4251                Store (PIRE, IRQE)
4252                Store (One, ENR8)
4253                Store (Zero, POLE)
4254            }
4255        }
4256
4257        Device (LNKF)
4258        {
4259            Name (_HID, EisaId ("PNP0C0F"))
4260            Name (_UID, 0x02)
4261            Method (_STA, 0, NotSerialized)
4262            {
4263                Store (PIRF, IRQF)
4264                If (PIRF)
4265                {
4266                    Return (0x0B)
4267                }
4268                Else
4269                {
4270                    Return (0x09)
4271                }
4272            }
4273
4274            Method (_PRS, 0, NotSerialized)
4275            {
4276                Return (PRSF)
4277            }
4278
4279            Method (_DIS, 0, NotSerialized)
4280            {
4281                Store (Zero, PIRF)
4282            }
4283
4284            Method (_CRS, 0, NotSerialized)
4285            {
4286                CreateWordField (ICRS, One, IRA0)
4287                Store (One, Local1)
4288                ShiftLeft (Local1, IRQF, IRA0)
4289                Return (ICRS)
4290            }
4291
4292            Method (_SRS, 1, NotSerialized)
4293            {
4294                CreateWordField (Arg0, One, IRA)
4295                FindSetRightBit (IRA, Local0)
4296                Decrement (Local0)
4297                Store (Local0, PIRF)
4298                Store (PIRF, IRQF)
4299                Store (One, ENR8)
4300                Store (Zero, POLF)
4301            }
4302        }
4303
4304        Device (LNKG)
4305        {
4306            Name (_HID, EisaId ("PNP0C0F"))
4307            Name (_UID, 0x03)
4308            Method (_STA, 0, NotSerialized)
4309            {
4310                Store (PIRG, IRQG)
4311                If (PIRG)
4312                {
4313                    Return (0x0B)
4314                }
4315                Else
4316                {
4317                    Return (0x09)
4318                }
4319            }
4320
4321            Method (_PRS, 0, NotSerialized)
4322            {
4323                Return (PRSG)
4324            }
4325
4326            Method (_DIS, 0, NotSerialized)
4327            {
4328                Store (Zero, PIRG)
4329            }
4330
4331            Method (_CRS, 0, NotSerialized)
4332            {
4333                CreateWordField (ICRS, One, IRA0)
4334                Store (One, Local1)
4335                ShiftLeft (Local1, IRQG, IRA0)
4336                Return (ICRS)
4337            }
4338
4339            Method (_SRS, 1, NotSerialized)
4340            {
4341                CreateWordField (Arg0, One, IRA)
4342                FindSetRightBit (IRA, Local0)
4343                Decrement (Local0)
4344                Store (Local0, PIRG)
4345                Store (PIRG, IRQG)
4346                Store (One, ENR8)
4347                Store (Zero, POLG)
4348            }
4349        }
4350
4351        Device (LNKH)
4352        {
4353            Name (_HID, EisaId ("PNP0C0F"))
4354            Name (_UID, 0x04)
4355            Method (_STA, 0, NotSerialized)
4356            {
4357                Store (PIRH, IRQH)
4358                If (PIRH)
4359                {
4360                    Return (0x0B)
4361                }
4362                Else
4363                {
4364                    Return (0x09)
4365                }
4366            }
4367
4368            Method (_PRS, 0, NotSerialized)
4369            {
4370                Return (PRSH)
4371            }
4372
4373            Method (_DIS, 0, NotSerialized)
4374            {
4375                Store (Zero, PIRH)
4376                If (LEqual (PIHH, One))
4377                {
4378                    Store (Zero, POLH)
4379                }
4380            }
4381
4382            Method (_CRS, 0, NotSerialized)
4383            {
4384                CreateWordField (ICRS, One, IRA0)
4385                Store (One, Local1)
4386                ShiftLeft (Local1, IRQH, IRA0)
4387                Return (ICRS)
4388            }
4389
4390            Method (_SRS, 1, NotSerialized)
4391            {
4392                CreateWordField (Arg0, One, IRA)
4393                FindSetRightBit (IRA, Local0)
4394                Decrement (Local0)
4395                Store (Local0, PIRH)
4396                Store (PIRH, IRQH)
4397                Store (One, ENR8)
4398                If (LEqual (PIHH, One))
4399                {
4400                    Store (One, POLH)
4401                }
4402                Else
4403                {
4404                    Store (Zero, POLH)
4405                }
4406            }
4407        }
4408    }
4409
4410    Scope (_SB)
4411    {
4412        Name (XCPD, Zero)
4413        Name (XNPT, One)
4414        Name (XCAP, 0x02)
4415        Name (XDCP, 0x04)
4416        Name (XDCT, 0x08)
4417        Name (XDST, 0x0A)
4418        Name (XLCP, 0x0C)
4419        Name (XLCT, 0x10)
4420        Name (XLST, 0x12)
4421        Name (XSCP, 0x14)
4422        Name (XSCT, 0x18)
4423        Name (XSST, 0x1A)
4424        Name (XRCT, 0x1C)
4425        Mutex (MUTE, 0x00)
4426        Method (RBPE, 1, NotSerialized)
4427        {
4428            Acquire (MUTE, 0x03E8)
4429            Add (Arg0, PCIB, Local0)
4430            OperationRegion (PCFG, SystemMemory, Local0, One)
4431            Field (PCFG, ByteAcc, NoLock, Preserve)
4432            {
4433                XCFG,   8
4434            }
4435
4436            Release (MUTE)
4437            Return (XCFG)
4438        }
4439
4440        Method (RWPE, 1, NotSerialized)
4441        {
4442            Acquire (MUTE, 0x03E8)
4443            And (Arg0, 0xFFFFFFFE, Arg0)
4444            Add (Arg0, PCIB, Local0)
4445            OperationRegion (PCFG, SystemMemory, Local0, 0x02)
4446            Field (PCFG, WordAcc, NoLock, Preserve)
4447            {
4448                XCFG,   16
4449            }
4450
4451            Release (MUTE)
4452            Return (XCFG)
4453        }
4454
4455        Method (RDPE, 1, NotSerialized)
4456        {
4457            Acquire (MUTE, 0x03E8)
4458            And (Arg0, 0xFFFFFFFC, Arg0)
4459            Add (Arg0, PCIB, Local0)
4460            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
4461            Field (PCFG, DWordAcc, NoLock, Preserve)
4462            {
4463                XCFG,   32
4464            }
4465
4466            Release (MUTE)
4467            Return (XCFG)
4468        }
4469
4470        Method (WBPE, 2, NotSerialized)
4471        {
4472            Acquire (MUTE, 0x0FFF)
4473            Add (Arg0, PCIB, Local0)
4474            OperationRegion (PCFG, SystemMemory, Local0, One)
4475            Field (PCFG, ByteAcc, NoLock, Preserve)
4476            {
4477                XCFG,   8
4478            }
4479
4480            Store (Arg1, XCFG)
4481            Release (MUTE)
4482        }
4483
4484        Method (WWPE, 2, NotSerialized)
4485        {
4486            Acquire (MUTE, 0x03E8)
4487            And (Arg0, 0xFFFFFFFE, Arg0)
4488            Add (Arg0, PCIB, Local0)
4489            OperationRegion (PCFG, SystemMemory, Local0, 0x02)
4490            Field (PCFG, WordAcc, NoLock, Preserve)
4491            {
4492                XCFG,   16
4493            }
4494
4495            Store (Arg1, XCFG)
4496            Release (MUTE)
4497        }
4498
4499        Method (WDPE, 2, NotSerialized)
4500        {
4501            Acquire (MUTE, 0x03E8)
4502            And (Arg0, 0xFFFFFFFC, Arg0)
4503            Add (Arg0, PCIB, Local0)
4504            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
4505            Field (PCFG, DWordAcc, NoLock, Preserve)
4506            {
4507                XCFG,   32
4508            }
4509
4510            Store (Arg1, XCFG)
4511            Release (MUTE)
4512        }
4513
4514        Method (RWDP, 3, NotSerialized)
4515        {
4516            Acquire (MUTE, 0x03E8)
4517            And (Arg0, 0xFFFFFFFC, Arg0)
4518            Add (Arg0, PCIB, Local0)
4519            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
4520            Field (PCFG, DWordAcc, NoLock, Preserve)
4521            {
4522                XCFG,   32
4523            }
4524
4525            And (XCFG, Arg2, Local1)
4526            Or (Local1, Arg1, XCFG)
4527            Release (MUTE)
4528        }
4529
4530        Method (RPME, 1, NotSerialized)
4531        {
4532            Add (Arg0, 0x84, Local0)
4533            Store (RDPE (Local0), Local1)
4534            If (LEqual (Local1, Ones))
4535            {
4536                Return (Zero)
4537            }
4538            Else
4539            {
4540                If (LAnd (Local1, 0x00010000))
4541                {
4542                    WDPE (Local0, And (Local1, 0x00010000))
4543                    Return (One)
4544                }
4545
4546                Return (Zero)
4547            }
4548        }
4549    }
4550
4551    Name (HBAS, Zero)
4552    Name (HLBA, Zero)
4553    Name (HDEV, Zero)
4554    OperationRegion (REFP, SystemIO, 0x61, One)
4555    Field (REFP, ByteAcc, NoLock, Preserve)
4556    {
4557        P061,   8
4558    }
4559
4560    Method (FZHD, 0, NotSerialized)
4561    {
4562        Store (0x80, Local0)
4563        Store (DMAX, Local1)
4564        While (LNot (LGreater (Local0, Local1)))
4565        {
4566            And (Local0, 0x7F, Local3)
4567            Store (One, Local2)
4568            ShiftLeft (Local2, Local3, Local2)
4569            If (LNot (And (\_SB.PCI0.HFZF, Local2)))
4570            {
4571                If (FZOD (Local0))
4572                {
4573                    Or (\_SB.PCI0.HFZF, Local2, \_SB.PCI0.HFZF)
4574                }
4575            }
4576
4577            Increment (Local0)
4578        }
4579    }
4580
4581    Method (FZOD, 1, NotSerialized)
4582    {
4583        GHET (Arg0)
4584        If (LEqual (HBAS, Zero))
4585        {
4586            Return (One)
4587        }
4588
4589        If (LEqual (HDEV, Zero))
4590        {
4591            Return (One)
4592        }
4593
4594        Store (HDEV, Local1)
4595        And (Local1, 0x10, Local1)
4596        If (LEqual (Local1, Zero))
4597        {
4598            Return (One)
4599        }
4600
4601        WFCF ()
4602        SDRV ()
4603        Add (HBAS, 0x07, Local1)
4604        OperationRegion (HRGS, SystemIO, Local1, One)
4605        Field (HRGS, ByteAcc, NoLock, Preserve)
4606        {
4607            SREG,   8
4608        }
4609
4610        Store (SREG, Local1)
4611        And (Local1, 0x80, Local1)
4612        If (Local1)
4613        {
4614            Return (Zero)
4615        }
4616
4617        Add (HBAS, 0x07, Local1)
4618        OperationRegion (HRGC, SystemIO, Local1, One)
4619        Field (HRGC, ByteAcc, NoLock, Preserve)
4620        {
4621            CREG,   8
4622        }
4623
4624        Store (0xF5, CREG)
4625        If (WFCF ())
4626        {
4627            Add (HBAS, 0x07, Local0)
4628            Store (SREG, Local1)
4629            Return (LNot (And (Local1, One)))
4630        }
4631        Else
4632        {
4633            Return (Zero)
4634        }
4635    }
4636
4637    OperationRegion (DBGA, SystemIO, 0x80, 0x04)
4638    Field (DBGA, DWordAcc, NoLock, Preserve)
4639    {
4640        DB32,   32
4641    }
4642
4643    Method (GHET, 1, NotSerialized)
4644    {
4645        And (Arg0, 0x7F, Local0)
4646        ShiftLeft (Local0, 0x05, Local0)
4647        Add (Local0, HPTA, Local0)
4648        OperationRegion (HDPT, SystemMemory, Local0, 0x20)
4649        Field (HDPT, ByteAcc, NoLock, Preserve)
4650        {
4651            HP00,   16,
4652            Offset (0x04),
4653            HP04,   8,
4654            Offset (0x12),
4655            HP0C,   8
4656        }
4657
4658        Store (HP00, HBAS)
4659        Store (HP04, HLBA)
4660        Store (HP0C, HDEV)
4661    }
4662
4663    Method (SDRV, 0, NotSerialized)
4664    {
4665        Add (HBAS, 0x06, Local0)
4666        OperationRegion (HRGH, SystemIO, Local0, One)
4667        Field (HRGH, ByteAcc, NoLock, Preserve)
4668        {
4669            HREG,   8
4670        }
4671
4672        Store (HLBA, HREG)
4673    }
4674
4675    Method (WFCF, 0, NotSerialized)
4676    {
4677        SDRV ()
4678        Add (HBAS, One, Local0)
4679        OperationRegion (HRGE, SystemIO, Local0, One)
4680        Field (HRGE, ByteAcc, NoLock, Preserve)
4681        {
4682            EREG,   8
4683        }
4684
4685        Store (Zero, EREG)
4686        Add (HBAS, 0x07, Local1)
4687        OperationRegion (HRGC, SystemIO, Local1, One)
4688        Field (HRGC, ByteAcc, NoLock, Preserve)
4689        {
4690            CREG,   8
4691        }
4692
4693        Store (0x28, Local0)
4694        While (Local0)
4695        {
4696            And (CREG, One, Local2)
4697            If (Local2)
4698            {
4699                Return (Zero)
4700            }
4701
4702            WFZF (Local1)
4703            And (CREG, 0x80, Local2)
4704            If (LEqual (Local2, Zero))
4705            {
4706                Return (One)
4707            }
4708
4709            Decrement (Local0)
4710        }
4711
4712        Return (Zero)
4713    }
4714
4715    Method (WFZF, 1, NotSerialized)
4716    {
4717        OperationRegion (HRGC, SystemIO, Arg0, One)
4718        Field (HRGC, ByteAcc, NoLock, Preserve)
4719        {
4720            CREG,   8
4721        }
4722
4723        Store (0xFFFF, Local1)
4724        Store (CREG, Local2)
4725        And (Local2, 0x80, Local2)
4726        If (LEqual (Local2, Zero))
4727        {
4728            Return (Zero)
4729        }
4730
4731        While (Local1)
4732        {
4733            Stall (0x0F)
4734            Decrement (Local1)
4735            If (LEqual (Local1, Zero))
4736            {
4737                Return (Zero)
4738            }
4739
4740            Store (CREG, Local2)
4741            And (Local2, 0x80, Local2)
4742            If (LEqual (Local2, Zero))
4743            {
4744                Return (Zero)
4745            }
4746
4747            Decrement (Local1)
4748        }
4749    }
4750
4751    Scope (PCI0)
4752    {
4753        Name (HFZF, 0xFFFF)
4754        Method (HWAK, 1, NotSerialized)
4755        {
4756            If (LEqual (Arg0, 0x03))
4757            {
4758                Store (Zero, HFZF)
4759            }
4760        }
4761    }
4762
4763    Scope (SIOR)
4764    {
4765        Method (HWV0, 0, NotSerialized)
4766        {
4767            Return (Multiply (VIV0, 0x10))
4768        }
4769
4770        Method (HWV1, 0, NotSerialized)
4771        {
4772            Return (Multiply (VIV1, 0x10))
4773        }
4774
4775        Method (HWV2, 0, NotSerialized)
4776        {
4777            Return (Multiply (VIV2, 0x10))
4778        }
4779
4780        Method (HWV3, 0, NotSerialized)
4781        {
4782            Return (Multiply (VIV3, 0x10))
4783        }
4784
4785        Method (HWV4, 0, NotSerialized)
4786        {
4787            Add (VIV4, 0x0C, VIV4)
4788            Return (Multiply (VIV4, 0x10))
4789        }
4790
4791        Method (HWV5, 0, NotSerialized)
4792        {
4793            Return (Multiply (VIV5, 0x10))
4794        }
4795
4796        Method (HWV6, 0, NotSerialized)
4797        {
4798            Return (Multiply (VIV6, 0x10))
4799        }
4800
4801        Method (HWV7, 0, NotSerialized)
4802        {
4803            Return (Multiply (VIV7, 0x10))
4804        }
4805
4806        Method (HWT1, 0, NotSerialized)
4807        {
4808            Store (TPI1, Local0)
4809            If (LGreater (Local0, 0x80))
4810            {
4811                Subtract (0x0100, Local0, Local0)
4812            }
4813
4814            Return (Multiply (Local0, 0x0A))
4815        }
4816
4817        Method (HWT2, 0, NotSerialized)
4818        {
4819            Store (TPI2, Local0)
4820            If (LGreater (Local0, 0x80))
4821            {
4822                Subtract (0x0100, Local0, Local0)
4823            }
4824
4825            Subtract (Local0, 0x05, Local0)
4826            Return (Multiply (Local0, 0x0A))
4827        }
4828
4829        Method (HWT3, 0, NotSerialized)
4830        {
4831            Store (TPI3, Local0)
4832            If (LGreater (Local0, 0x80))
4833            {
4834                Subtract (0x0100, Local0, Local0)
4835            }
4836
4837            Return (Multiply (Local0, 0x0A))
4838        }
4839
4840        Method (HWF1, 0, NotSerialized)
4841        {
4842            Store (FTC1, Local0)
4843            Store (One, Local2)
4844            While (LAnd (LOr (LNot (LGreater (Local0, FHMT)), LNot (LLess (Local0, FLMT))), LEqual (Local2, One)))
4845            {
4846                If (LNot (LGreater (Local0, FHMT)))
4847                {
4848                    Store (FTD1, Local1)
4849                    If (LGreater (Local1, Zero))
4850                    {
4851                        Decrement (Local1)
4852                        Store (Local1, FTD1)
4853                    }
4854                    Else
4855                    {
4856                        Store (Zero, Local2)
4857                    }
4858                }
4859                Else
4860                {
4861                    Store (FTD1, Local1)
4862                    If (LLess (Local1, 0x07))
4863                    {
4864                        Increment (Local1)
4865                        Store (Local1, FTD1)
4866                    }
4867                    Else
4868                    {
4869                        Store (Zero, Local2)
4870                    }
4871                }
4872
4873                Sleep (0x012C)
4874                Store (FTC1, Local0)
4875            }
4876
4877            If (LOr (LEqual (Local0, Zero), LEqual (Local0, 0xFF)))
4878            {
4879                Return (Zero)
4880            }
4881            Else
4882            {
4883                Divide (FTFR, Multiply (Local0, DerefOf (Index (DTB1, FTD1))), , Local1)
4884                Return (Local1)
4885            }
4886        }
4887
4888        Method (HWF2, 0, NotSerialized)
4889        {
4890            Store (FTC2, Local0)
4891            Store (One, Local2)
4892            While (LAnd (LOr (LNot (LGreater (Local0, FHMT)), LNot (LLess (Local0, FLMT))), LEqual (Local2, One)))
4893            {
4894                If (LNot (LGreater (Local0, FHMT)))
4895                {
4896                    Store (FTD2, Local1)
4897                    If (LGreater (Local1, Zero))
4898                    {
4899                        Decrement (Local1)
4900                        Store (Local1, FTD2)
4901                    }
4902                    Else
4903                    {
4904                        Store (Zero, Local2)
4905                    }
4906                }
4907                Else
4908                {
4909                    Store (FTD2, Local1)
4910                    If (LLess (Local1, 0x07))
4911                    {
4912                        Increment (Local1)
4913                        Store (Local1, FTD2)
4914                    }
4915                    Else
4916                    {
4917                        Store (Zero, Local2)
4918                    }
4919                }
4920
4921                Sleep (0x012C)
4922                Store (FTC2, Local0)
4923            }
4924
4925            If (LOr (LEqual (Local0, Zero), LEqual (Local0, 0xFF)))
4926            {
4927                Return (Zero)
4928            }
4929            Else
4930            {
4931                Divide (FTFR, Multiply (Local0, DerefOf (Index (DTB1, FTD2))), , Local1)
4932                Return (Local1)
4933            }
4934        }
4935
4936        Method (HWF3, 0, NotSerialized)
4937        {
4938            Store (FTC3, Local0)
4939            If (LNot (LGreater (Local0, FHMT)))
4940            {
4941                Store (FTD3, Local1)
4942                If (LGreater (Local1, Zero))
4943                {
4944                    Decrement (Local1)
4945                    Store (Local1, FTD3)
4946                    Sleep (0x012C)
4947                    Store (FTC3, Local0)
4948                }
4949            }
4950            Else
4951            {
4952                If (LNot (LLess (Local0, FLMT)))
4953                {
4954                    Store (FTD3, Local1)
4955                    If (LLess (Local1, One))
4956                    {
4957                        Increment (Local1)
4958                        Store (Local1, FTD3)
4959                        Sleep (0x012C)
4960                        Store (FTC3, Local0)
4961                    }
4962                }
4963            }
4964
4965            If (LOr (LEqual (Local0, Zero), LEqual (Local0, 0xFF)))
4966            {
4967                Return (Zero)
4968            }
4969            Else
4970            {
4971                Divide (FTFR, Multiply (Local0, DerefOf (Index (DTB2, FTD3))), , Local1)
4972                Return (Local1)
4973            }
4974        }
4975
4976        Name (FTFR, 0x00149970)
4977        Name (FHMT, 0x78)
4978        Name (FLMT, 0xFE)
4979        Name (DTB1, Package (0x08)
4980        {
4981            One,
4982            0x02,
4983            0x04,
4984            0x08,
4985            0x10,
4986            0x20,
4987            0x40,
4988            0x80
4989        })
4990        Name (DTB2, Package (0x02)
4991        {
4992            0x02,
4993            0x08
4994        })
4995        OperationRegion (ECRE, SystemIO, IOEB, 0x20)
4996        Field (ECRE, ByteAcc, NoLock, Preserve)
4997        {
4998            Offset (0x05),
4999            HIDX,   8,
5000            HDAT,   8
5001        }
5002
5003        IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve)
5004        {
5005            Offset (0x0B),
5006            FTD1,   3,
5007            FTD2,   3,
5008            FTD3,   1,
5009            Offset (0x0C),
5010            ETDE,   8,
5011            FTC1,   8,
5012            FTC2,   8,
5013            FTC3,   8,
5014            Offset (0x18),
5015            EFN1,   8,
5016            EFN2,   8,
5017            EFN3,   8,
5018            Offset (0x20),
5019            VIV0,   8,
5020            VIV1,   8,
5021            VIV2,   8,
5022            VIV3,   8,
5023            VIV4,   8,
5024            VIV5,   8,
5025            VIV6,   8,
5026            VIV7,   8,
5027            Offset (0x29),
5028            TPI1,   8,
5029            TPI2,   8,
5030            TPI3,   8
5031        }
5032    }
5033
5034    Scope (\)
5035    {
5036        Field (RAMW, ByteAcc, NoLock, Preserve)
5037        {
5038            Offset (0x20),
5039            CPUQ,   8,
5040            CPVL,   16,
5041            CPVH,   16,
5042            CPVC,   1
5043        }
5044    }
5045
5046    Scope (ASOC)
5047    {
5048        Name (CORV, Package (0x05)
5049        {
5050            0x06020000,
5051            "Vcore Voltage",
5052            0x0352,
5053            0x0640,
5054            One
5055        })
5056        Name (V3VV, Package (0x05)
5057        {
5058            0x06020001,
5059            " +3.3 Voltage",
5060            0x0B9A,
5061            0x0E2E,
5062            One
5063        })
5064        Name (V5VV, Package (0x05)
5065        {
5066            0x06020002,
5067            " +5 Voltage",
5068            0x1194,
5069            0x157C,
5070            One
5071        })
5072        Name (VV12, Package (0x05)
5073        {
5074            0x06020003,
5075            " +12 Voltage",
5076            0x27D8,
5077            0x35E8,
5078            One
5079        })
5080        Name (VPAR, Package (0x04)
5081        {
5082            Package (0x03)
5083            {
5084                Zero,
5085                One,
5086                Zero
5087            },
5088
5089            Package (0x03)
5090            {
5091                Zero,
5092                One,
5093                Zero
5094            },
5095
5096            Package (0x03)
5097            {
5098                0x22,
5099                0x32,
5100                Zero
5101            },
5102
5103            Package (0x03)
5104            {
5105                0x1C,
5106                0x0A,
5107                Zero
5108            }
5109        })
5110        Name (VBUF, Package (0x05)
5111        {
5112            0x04,
5113            CORV,
5114            V3VV,
5115            V5VV,
5116            VV12
5117        })
5118        Method (VGET, 1, NotSerialized)
5119        {
5120            If (LEqual (Arg0, Zero))
5121            {
5122                Return (^^SIOR.HWV0 ())
5123            }
5124
5125            If (LEqual (Arg0, One))
5126            {
5127                Return (^^SIOR.HWV2 ())
5128            }
5129
5130            If (LEqual (Arg0, 0x02))
5131            {
5132                Return (^^SIOR.HWV3 ())
5133            }
5134
5135            If (LEqual (Arg0, 0x03))
5136            {
5137                Return (^^SIOR.HWV4 ())
5138            }
5139        }
5140
5141        Name (CPUT, Package (0x05)
5142        {
5143            0x06030000,
5144            "CPU Temperature",
5145            0x0258,
5146            0x03B6,
5147            0x00010001
5148        })
5149        Name (MBTP, Package (0x05)
5150        {
5151            0x06030001,
5152            "MB Temperature",
5153            0x01C2,
5154            0x03B6,
5155            0x00010001
5156        })
5157        Name (TBUF, Package (0x03)
5158        {
5159            0x02,
5160            CPUT,
5161            MBTP
5162        })
5163        Method (TGET, 1, NotSerialized)
5164        {
5165            If (LEqual (Arg0, Zero))
5166            {
5167                Return (^^SIOR.HWT1 ())
5168            }
5169
5170            If (LEqual (Arg0, One))
5171            {
5172                Return (^^SIOR.HWT2 ())
5173            }
5174        }
5175
5176        Name (CPUF, Package (0x05)
5177        {
5178            0x06040000,
5179            "CPU FAN Speed",
5180            0x0320,
5181            0x1C20,
5182            0x00010001
5183        })
5184        Name (CHAF, Package (0x05)
5185        {
5186            0x06040001,
5187            "CHASSIS FAN Speed",
5188            0x0320,
5189            0x1C20,
5190            0x00010001
5191        })
5192        Name (PWRF, Package (0x05)
5193        {
5194            0x06040002,
5195            "CHASSIS2 FAN Speed",
5196            0x0320,
5197            0x1C20,
5198            0x00010001
5199        })
5200        Name (FBUF, Package (0x04)
5201        {
5202            0x03,
5203            CPUF,
5204            CHAF,
5205            PWRF
5206        })
5207        Method (FGET, 1, NotSerialized)
5208        {
5209            If (LEqual (Arg0, Zero))
5210            {
5211                Return (^^SIOR.HWF1 ())
5212            }
5213
5214            If (LEqual (Arg0, One))
5215            {
5216                Return (^^SIOR.HWF2 ())
5217            }
5218
5219            If (LEqual (Arg0, 0x02))
5220            {
5221                Return (^^SIOR.HWF3 ())
5222            }
5223        }
5224
5225        Name (QCFN, Package (0x06)
5226        {
5227            0x04060003,
5228            "CPU Q-Fan Control",
5229            Zero,
5230            One,
5231            0x02,
5232            0x00010000
5233        })
5234        Name (QBUF, Package (0x02)
5235        {
5236            One,
5237            QCFN
5238        })
5239        Method (VSIF, 0, NotSerialized)
5240        {
5241            Return (VBUF)
5242        }
5243
5244        Method (RVLT, 1, NotSerialized)
5245        {
5246            And (Arg0, 0xFFFF, Local0)
5247            Store (VGET (Local0), Local1)
5248            Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), Zero)), Local2)
5249            Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), One)), Local3)
5250            Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), 0x02)), Local4)
5251            Multiply (Local1, Add (Local2, Local3), Local5)
5252            Divide (Local5, Local3, , Local5)
5253            Add (Local5, Local4, Local5)
5254            Return (Local5)
5255        }
5256
5257        Method (SVLT, 1, NotSerialized)
5258        {
5259            And (DerefOf (Index (Arg0, Zero)), 0xFFFF, Local0)
5260            Store (DerefOf (Index (VBUF, Zero)), Local1)
5261            If (LNot (LLess (Local0, Local1)))
5262            {
5263                Return (Zero)
5264            }
5265
5266            Increment (Local0)
5267            Store (DerefOf (Index (Arg0, One)), Index (DerefOf (Index (VBUF, Local0)), One))
5268            Store (DerefOf (Index (Arg0, 0x02)), Index (DerefOf (Index (VBUF, Local0)), 0x02))
5269            Store (DerefOf (Index (Arg0, 0x03)), Index (DerefOf (Index (VBUF, Local0)), 0x03))
5270            Store (DerefOf (Index (Arg0, 0x04)), Index (DerefOf (Index (VBUF, Local0)), 0x04))
5271            Return (One)
5272        }
5273
5274        Method (TSIF, 0, NotSerialized)
5275        {
5276            Return (TBUF)
5277        }
5278
5279        Method (RTMP, 1, NotSerialized)
5280        {
5281            And (Arg0, 0xFFFF, Local0)
5282            Store (TGET (Local0), Local1)
5283            Return (Local1)
5284        }
5285
5286        Method (STMP, 1, NotSerialized)
5287        {
5288            Store (And (DerefOf (Index (Arg0, Zero)), 0xFFFF), Local0)
5289            Store (DerefOf (Index (TBUF, Zero)), Local1)
5290            If (LNot (LLess (Local0, Local1)))
5291            {
5292                Return (Zero)
5293            }
5294
5295            Increment (Local0)
5296            Store (DerefOf (Index (Arg0, One)), Index (DerefOf (Index (TBUF, Local0)), One))
5297            Store (DerefOf (Index (Arg0, 0x02)), Index (DerefOf (Index (TBUF, Local0)), 0x02))
5298            Store (DerefOf (Index (Arg0, 0x03)), Index (DerefOf (Index (TBUF, Local0)), 0x03))
5299            Store (DerefOf (Index (Arg0, 0x04)), Index (DerefOf (Index (TBUF, Local0)), 0x04))
5300            Return (One)
5301        }
5302
5303        Method (FSIF, 0, NotSerialized)
5304        {
5305            Return (FBUF)
5306        }
5307
5308        Method (RFAN, 1, NotSerialized)
5309        {
5310            And (Arg0, 0xFFFF, Local0)
5311            Store (FGET (Local0), Local1)
5312            Return (Local1)
5313        }
5314
5315        Method (SFAN, 1, NotSerialized)
5316        {
5317            And (DerefOf (Index (Arg0, Zero)), 0xFFFF, Local0)
5318            Store (DerefOf (Index (FBUF, Zero)), Local1)
5319            If (LNot (LLess (Local0, Local1)))
5320            {
5321                Return (Zero)
5322            }
5323
5324            Increment (Local0)
5325            Store (DerefOf (Index (Arg0, One)), Index (DerefOf (Index (FBUF, Local0)), One))
5326            Store (DerefOf (Index (Arg0, 0x02)), Index (DerefOf (Index (FBUF, Local0)), 0x02))
5327            Store (DerefOf (Index (Arg0, 0x03)), Index (DerefOf (Index (FBUF, Local0)), 0x03))
5328            Store (DerefOf (Index (Arg0, 0x04)), Index (DerefOf (Index (FBUF, Local0)), 0x04))
5329            Return (One)
5330        }
5331
5332        Method (QFIF, 0, NotSerialized)
5333        {
5334            If (LEqual (CPUQ, Zero))
5335            {
5336                And (DerefOf (Index (QCFN, 0x05)), 0xFFFDFFFF, Local0)
5337                Store (Local0, Index (QCFN, 0x05))
5338            }
5339            Else
5340            {
5341                Or (DerefOf (Index (QCFN, 0x05)), 0x00020000, Local0)
5342                Store (Local0, Index (QCFN, 0x05))
5343            }
5344
5345            Return (QBUF)
5346        }
5347
5348        Method (GCQV, 1, NotSerialized)
5349        {
5350            If (LEqual (Arg0, Zero))
5351            {
5352                Return (CPVL)
5353            }
5354
5355            If (LEqual (Arg0, One))
5356            {
5357                Return (CPVH)
5358            }
5359
5360            If (LEqual (Arg0, 0x02))
5361            {
5362                Return (CPVC)
5363            }
5364
5365            Return (Zero)
5366        }
5367    }
5368
5369    Scope (_SB)
5370    {
5371        Scope (PCI0)
5372        {
5373            Name (CRS, ResourceTemplate ()
5374            {
5375                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
5376                    0x0000, // Address Space Granularity
5377                    0x0000, // Address Range Minimum
5378                    0x00FF, // Address Range Maximum
5379                    0x0000, // Address Translation Offset
5380                    0x0100,,,)
5381                IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
5382                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
5383                    0x0000, // Address Space Granularity
5384                    0x0000, // Address Range Minimum
5385                    0x0CF7, // Address Range Maximum
5386                    0x0000, // Address Translation Offset
5387                    0x0CF8,,,
5388                    , TypeStatic)
5389                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
5390                    0x0000, // Address Space Granularity
5391                    0x0D00, // Address Range Minimum
5392                    0xFFFF, // Address Range Maximum
5393                    0x0000, // Address Translation Offset
5394                    0xF300,,,
5395                    , TypeStatic)
5396                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
5397                    0x00000000, // Address Space Granularity
5398                    0x000A0000, // Address Range Minimum
5399                    0x000BFFFF, // Address Range Maximum
5400                    0x00000000, // Address Translation Offset
5401                    0x00020000,,,
5402                    , AddressRangeMemory, TypeStatic)
5403                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
5404                    0x00000000, // Address Space Granularity
5405                    0x000C0000, // Address Range Minimum
5406                    0x000DFFFF, // Address Range Maximum
5407                    0x00000000, // Address Translation Offset
5408                    0x00020000,,,
5409                    , AddressRangeMemory, TypeStatic)
5410                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
5411                    0x00000000, // Address Space Granularity
5412                    0x00000000, // Address Range Minimum
5413                    0x00000000, // Address Range Maximum
5414                    0x00000000, // Address Translation Offset
5415                    0x00000000,,,
5416                    , AddressRangeMemory, TypeStatic)
5417            })
5418            CreateDWordField (CRS, 0x5C, MIN5)
5419            CreateDWordField (CRS, 0x60, MAX5)
5420            CreateDWordField (CRS, 0x68, LEN5)
5421            CreateDWordField (CRS, 0x76, MIN6)
5422            CreateDWordField (CRS, 0x7A, MAX6)
5423            CreateDWordField (CRS, 0x82, LEN6)
5424            Method (_CRS, 0, NotSerialized)
5425            {
5426                Store (MG1L, Local0)
5427                If (Local0)
5428                {
5429                    Store (MG1B, MIN5)
5430                    Store (MG1L, LEN5)
5431                    Add (MIN5, Decrement (Local0), MAX5)
5432                }
5433
5434                Store (MG2B, MIN6)
5435                Store (MG2L, LEN6)
5436                Store (MG2L, Local0)
5437                Add (MIN6, Decrement (Local0), MAX6)
5438                Return (CRS)
5439            }
5440        }
5441    }
5442
5443    Name (WOTB, Zero)
5444    Name (WSSB, Zero)
5445    Name (WAXB, Zero)
5446    Method (_PTS, 1, NotSerialized)
5447    {
5448        Store (Arg0, DBG8)
5449        Store (One, PLED)
5450        PTS (Arg0)
5451        Store (Zero, Index (WAKP, Zero))
5452        Store (Zero, Index (WAKP, One))
5453        If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02)))
5454        {
5455            Sleep (0x0BB8)
5456        }
5457
5458        Store (ASSB, WSSB)
5459        Store (AOTB, WOTB)
5460        Store (AAXB, WAXB)
5461        Store (Arg0, ASSB)
5462        Store (OSFL (), AOTB)
5463        Store (Zero, AAXB)
5464    }
5465
5466    Method (_WAK, 1, NotSerialized)
5467    {
5468        ShiftLeft (Arg0, 0x04, DBG8)
5469        Store (Zero, PLED)
5470        WAK (Arg0)
5471        If (ASSB)
5472        {
5473            Store (WSSB, ASSB)
5474            Store (WOTB, AOTB)
5475            Store (WAXB, AAXB)
5476        }
5477
5478        If (DerefOf (Index (WAKP, Zero)))
5479        {
5480            Store (Zero, Index (WAKP, One))
5481        }
5482        Else
5483        {
5484            Store (Arg0, Index (WAKP, One))
5485        }
5486
5487        Return (WAKP)
5488    }
5489
5490    OperationRegion (PWCR, PCI_Config, 0x94, One)
5491    Field (\_SB.PCI0.SBRG.PWCR, ByteAcc, NoLock, Preserve)
5492    {
5493        PLED,   2,
5494            ,   2,
5495        SUST,   1,
5496        Offset (0x01)
5497    }
5498
5499    Name (_S0, Package (0x04)
5500    {
5501        Zero,
5502        Zero,
5503        Zero,
5504        Zero
5505    })
5506    If (SS1)
5507    {
5508        Name (_S1, Package (0x04)
5509        {
5510            0x04,
5511            Zero,
5512            Zero,
5513            Zero
5514        })
5515    }
5516
5517    If (SS3)
5518    {
5519        Name (_S3, Package (0x04)
5520        {
5521            One,
5522            Zero,
5523            Zero,
5524            Zero
5525        })
5526    }
5527
5528    If (SS4)
5529    {
5530        Name (_S4, Package (0x04)
5531        {
5532            0x02,
5533            Zero,
5534            Zero,
5535            Zero
5536        })
5537    }
5538
5539    Name (_S5, Package (0x04)
5540    {
5541        0x02,
5542        Zero,
5543        Zero,
5544        Zero
5545    })
5546    Method (PTS, 1, NotSerialized)
5547    {
5548        If (Arg0)
5549        {
5550            \_SB.PCI0.SBRG.SIOS (Arg0)
5551            \_SB.PCI0.NPTS (Arg0)
5552            \_SB.PCI0.SBRG.SPTS (Arg0)
5553        }
5554    }
5555
5556    Method (WAK, 1, NotSerialized)
5557    {
5558        \_SB.PCI0.SBRG.SIOW (Arg0)
5559        \_SB.PCI0.HWAK (Arg0)
5560        \_SB.PCI0.NWAK (Arg0)
5561        \_SB.PCI0.SBRG.SWAK (Arg0)
5562    }
5563}
5564