Ticket #385: dsdt_GBTUACPI1.dslgraphic

File dsdt_GBTUACPI1.dslgraphic, 66.1 KB (added by robc, 15 years ago)
Line 
1/*
2 * Intel ACPI Component Architecture
3 * AML Disassembler version 20060912
4 *
5 * Disassembly of (null), Tue Feb 24 06:21:23 2009
6 *
7 *
8 * Original Table Header:
9 *     Signature        "DSDT"
10 *     Length           0x000072C9 (29385)
11 *     Revision         0x01
12 *     OEM ID           "GBT   "
13 *     OEM Table ID     "GBTUACPI"
14 *     OEM Revision     0x00001000 (4096)
15 *     Creator ID       "MSFT"
16 *     Creator Revision 0x03000000 (50331648)
17 */
18DefinitionBlock ("DSDT.aml", "DSDT", 1, "GBT   ", "GBTUACPI", 0x00001000)
19{
20    External (LNKB)
21    External (LNKA)
22    External (LNKD)
23    External (LNKC)
24
25    Scope (\_PR)
26    {
27        Processor (\_PR.C000, 0x00, 0x00004010, 0x06) {}
28        Processor (\_PR.C001, 0x01, 0x00004010, 0x06) {}
29        Processor (\_PR.C002, 0x02, 0x00004010, 0x06) {}
30        Processor (\_PR.C003, 0x03, 0x00004010, 0x06) {}
31    }
32
33    Name (\_S0, Package (0x04)
34    {
35        0x00,
36        0x00,
37        0x00,
38        0x00
39    })
40    Name (\_S1, Package (0x04)
41    {
42        0x01,
43        0x01,
44        0x01,
45        0x01
46    })
47    Name (\_S4, Package (0x04)
48    {
49        0x04,
50        0x04,
51        0x04,
52        0x04
53    })
54    Name (\_S5, Package (0x04)
55    {
56        0x05,
57        0x05,
58        0x05,
59        0x05
60    })
61    OperationRegion (\DEBG, SystemIO, 0x80, 0x01)
62    Field (\DEBG, ByteAcc, NoLock, Preserve)
63    {
64        DBG1,   8
65    }
66
67    Name (OSTY, Ones)
68    OperationRegion (ACMS, SystemIO, 0x72, 0x02)
69    Field (ACMS, ByteAcc, NoLock, Preserve)
70    {
71        ICMS,   8,
72        DCMS,   8
73    }
74
75    IndexField (ICMS, DCMS, ByteAcc, NoLock, Preserve)
76    {
77                Offset (0x01),
78                Offset (0x04),
79                Offset (0x08),
80        BS_A,   32
81    }
82
83    OperationRegion (CFGS, SystemMemory, BS_A, 0x80)
84    Field (CFGS, AnyAcc, NoLock, Preserve)
85    {
86                Offset (0x04),
87        PCIE,   32,
88                Offset (0x3D),
89        TPMF,   1,
90        STHP,   1,
91        SHPG,   1,
92        OSCF,   1,
93                Offset (0x41),
94        XLM0,   32
95    }
96
97    OperationRegion (CMPT, SystemIO, 0x0C50, 0x03)
98    Field (CMPT, ByteAcc, NoLock, Preserve)
99    {
100        CMID,   8,
101            ,   6,
102        GPCT,   2,
103        GP0I,   1,
104        GP1I,   1,
105        GP2I,   1,
106        GP3I,   1,
107        GP4I,   1,
108        GP5I,   1,
109        GP6I,   1,
110        GP7I,   1
111    }
112
113    OperationRegion (PCFG, SystemMemory, PCIE, 0x02000000)
114    Field (PCFG, AnyAcc, NoLock, Preserve)
115    {
116                Offset (0xA0004),
117        SMIE,   1,
118        SMME,   1,
119                Offset (0xA0008),
120        RVID,   8,
121                Offset (0xA0014),
122        SMB1,   32,
123                Offset (0xA0050),
124        GO49,   1,
125        GO50,   1,
126        GO51,   1,
127        GO52,   1,
128                Offset (0xA0051),
129        GP49,   1,
130        GP50,   1,
131        GP51,   1,
132        GP52,   1,
133                Offset (0xA0052),
134        GO53,   1,
135        GO54,   1,
136        GO55,   1,
137        GO56,   1,
138                Offset (0xA0053),
139        GP53,   1,
140        GP54,   1,
141        GP55,   1,
142        GP56,   1,
143                Offset (0xA0054),
144        GO57,   1,
145        GO58,   1,
146        GO59,   1,
147        GO60,   1,
148                Offset (0xA0055),
149        GP57,   1,
150        GP58,   1,
151        GP59,   1,
152        GP60,   1,
153                Offset (0xA0056),
154        GO61,   1,
155        GO62,   1,
156        GO63,   1,
157        GO64,   1,
158                Offset (0xA0057),
159        GP61,   1,
160        GP62,   1,
161        GP63,   1,
162        GP64,   1
163    }
164
165    OperationRegion (PMIO, SystemIO, 0x0CD6, 0x02)
166    Field (PMIO, ByteAcc, NoLock, Preserve)
167    {
168        INPM,   8,
169        DAPM,   8
170    }
171
172    IndexField (INPM, DAPM, ByteAcc, NoLock, Preserve)
173    {
174            ,   1,
175        TM1E,   1,
176        TM2E,   1,
177                Offset (0x01),
178            ,   1,
179        TM1S,   1,
180        TM2S,   1,
181                Offset (0x04),
182            ,   7,
183        SLPS,   1,
184                Offset (0x07),
185            ,   7,
186        CLPS,   1,
187                Offset (0x10),
188            ,   6,
189        PWDE,   1,
190                Offset (0x1C),
191            ,   3,
192        MKME,   1,
193        PI3E,   1,
194        PI2E,   1,
195        PI1E,   1,
196        PI0E,   1,
197            ,   3,
198        MKMS,   1,
199        PI3S,   1,
200        PI2S,   1,
201        PI1S,   1,
202        PI0S,   1,
203                Offset (0x20),
204        P1EB,   16,
205                Offset (0x36),
206            ,   6,
207        GV6P,   1,
208        GV7P,   1,
209            ,   3,
210        GM0P,   1,
211        GM1P,   1,
212        GM2P,   1,
213        GM3P,   1,
214        GM8P,   1,
215            ,   1,
216        GM4P,   1,
217        GM5P,   1,
218            ,   1,
219        GM6P,   1,
220        GM7P,   1,
221                Offset (0x3B),
222        GPX0,   1,
223        GPX4,   1,
224        GPX5,   1,
225        GPX1,   1,
226        GPX6,   1,
227        GPX7,   1,
228        GPX2,   1,
229        GPX3,   1,
230                Offset (0x55),
231        SPRE,   1,
232            ,   1,
233            ,   1,
234        EPNM,   1,
235        DPPF,   1,
236        FNGS,   1,
237                Offset (0x61),
238            ,   7,
239        R617,   1,
240                Offset (0x65),
241            ,   4,
242        RSTU,   1,
243                Offset (0x68),
244            ,   3,
245        TPDE,   1,
246            ,   1,
247                Offset (0x7C),
248            ,   2,
249        BLNK,   2,
250                Offset (0x92),
251            ,   7,
252        GV7S,   1,
253                Offset (0x96),
254        GP8I,   1,
255        GP9I,   1,
256                Offset (0x9A),
257            ,   7,
258        HECO,   1,
259                Offset (0xA8),
260        PI4E,   1,
261        PI5E,   1,
262        PI6E,   1,
263        PI7E,   1,
264                Offset (0xA9),
265        PI4S,   1,
266        PI5S,   1,
267        PI6S,   1,
268        PI7S,   1
269    }
270
271    OperationRegion (P1E0, SystemIO, P1EB, 0x04)
272    Field (P1E0, ByteAcc, NoLock, Preserve)
273    {
274            ,   14,
275        PEWS,   1,
276        WSTA,   1,
277            ,   14,
278        PEWD,   1
279    }
280
281    Method (SPTS, 1, NotSerialized)
282    {
283        If (LEqual (Arg0, 0x03))
284        {
285            Store (Zero, RSTU)
286        }
287
288        Store (One, CLPS)
289        Store (One, SLPS)
290        If (LLessEqual (\RVID, 0x13))
291        {
292            Store (Zero, \PWDE)
293        }
294    }
295
296    Method (SWAK, 1, NotSerialized)
297    {
298        Store (One, HECO)
299        If (LEqual (Arg0, 0x03))
300        {
301            Store (One, RSTU)
302        }
303
304        Store (\PEWS, \PEWS)
305    }
306
307    Method (TRMD, 1, NotSerialized)
308    {
309        Store (Arg0, SPRE)
310        Store (Arg0, TPDE)
311    }
312
313    Scope (\)
314    {
315        Name (SBA1, 0x0B00)
316        Name (SBA2, 0x0B10)
317        Name (SIOP, 0x2E)
318        Name (GIOB, 0x0220)
319        OperationRegion (NCLK, SystemMemory, PCIE, 0x02000000)
320        Field (NCLK, AnyAcc, NoLock, Preserve)
321        {
322                    Offset (0x4C),
323            CLKE,   1,
324                    Offset (0x1048),
325            P3HH,   12,
326                ,   19,
327            P3EE,   1,
328            P4EN,   1,
329            P4NM,   12,
330            P4HI,   12,
331            P4IO,   1,
332                    Offset (0x1050),
333            P5EN,   1,
334            P5NM,   12,
335            P5HI,   12,
336            P5IO,   1,
337                    Offset (0x1054),
338            P6EN,   1,
339            P6NM,   12,
340            P6HI,   12,
341            P6IO,   1,
342                    Offset (0x10B0),
343            P1NM,   12,
344            P1HI,   12,
345            P1EN,   1,
346            P1IO,   1,
347                    Offset (0x10B4),
348            P2NM,   12,
349            P2HI,   12,
350            P2EN,   1,
351            P2IO,   1,
352                    Offset (0x10CC),
353            P3EN,   1,
354            P3NM,   12,
355            P3HI,   12,
356            P3IO,   1
357        }
358
359        OperationRegion (SOR1, SystemIO, SBA1, 0x10)
360        Field (SOR1, ByteAcc, NoLock, Preserve)
361        {
362            SMSA,   8,
363            SSSA,   8,
364            SBCA,   8,
365            SHCA,   8,
366            SBAA,   8,
367            SD0A,   8,
368            SD1A,   8,
369            SBDA,   8,
370            SSCA,   8,
371            SMCA,   8,
372            SSEA,   16,
373            SSDA,   16,
374            SMTA,   8
375        }
376
377        OperationRegion (SOR2, SystemIO, SBA2, 0x10)
378        Field (SOR2, ByteAcc, NoLock, Preserve)
379        {
380            SMSB,   8,
381            SSSB,   8,
382            SBCB,   8,
383            SHCB,   8,
384            SBAB,   8,
385            SD0B,   8,
386            SD1B,   8,
387            SBDB,   8,
388            SSCB,   8,
389            SMCB,   8,
390            SSEB,   16,
391            SSDB,   16,
392            SMTB,   8
393        }
394
395        Mutex (MSMB, 0x00)
396        Method (RWBK, 5, NotSerialized)
397        {
398            Acquire (MSMB, 0xFFFF)
399            If (LEqual (Arg0, 0x00))
400            {
401                Store (SMSA, Local0)
402                And (Local0, 0x00, Local0)
403                Or (Local0, 0xFF, Local0)
404                Store (Local0, SMSA)
405                Sleep (0x02)
406                Store (SBAA, Local0)
407                And (Local0, 0x00, Local0)
408                Or (Local0, Arg1, Local0)
409                Store (Local0, SBAA)
410                Sleep (0x02)
411                Store (SHCA, Local0)
412                And (Local0, 0x00, Local0)
413                Or (Local0, Arg2, Local0)
414                Store (Local0, SHCA)
415                Sleep (0x02)
416                Store (SBCA, Local0)
417                And (Local0, 0x00, Local0)
418                Or (Local0, 0x14, Local0)
419                Store (Local0, SBCA)
420                Sleep (0x02)
421                Store (SD0A, Local0)
422                And (Local0, 0x00, Local0)
423                Or (Local0, Arg3, Local0)
424                Store (Local0, SD0A)
425                Sleep (0x02)
426                And (Arg1, 0x01, Local1)
427                If (LEqual (Local1, 0x00))
428                {
429                    Store (Arg3, Local2)
430                    Store (Arg2, Local3)
431                    While (Local2)
432                    {
433                        Store (DerefOf (Index (Arg4, Local3)), Local4)
434                        Store (Local4, SBDA)
435                        Sleep (0x02)
436                        Decrement (Local2)
437                        Increment (Local3)
438                    }
439                }
440
441                Store (SBCA, Local0)
442                And (Local0, 0x00, Local0)
443                Or (Local0, 0x54, Local0)
444                Store (Local0, SBCA)
445                Sleep (0x02)
446                Store (SMSA, Local1)
447                While (LNot (And (Local1, 0x01)))
448                {
449                    Store (SMSA, Local1)
450                    If (And (Local1, 0x1C))
451                    {
452                        Release (MSMB)
453                        Return (0x01)
454                    }
455
456                    If (And (Local1, 0x02))
457                    {
458                        Break
459                    }
460
461                    Sleep (0x02)
462                }
463
464                Store (SMSA, Local1)
465                While (And (Local1, 0x01))
466                {
467                    Store (SMSA, Local1)
468                    Sleep (0x02)
469                }
470
471                And (Arg1, 0x01, Local1)
472                If (Local1)
473                {
474                    Store (Arg2, Local1)
475                    Store (Arg3, Local2)
476                    While (Local2)
477                    {
478                        Store (SBDA, Index (Arg4, Local1))
479                        Sleep (0x02)
480                        Increment (Local1)
481                        Decrement (Local2)
482                    }
483                }
484            }
485
486            If (LEqual (Arg0, 0x01)) {}
487            Release (MSMB)
488            Return (0x00)
489        }
490
491        OperationRegion (IOOR, SystemIO, SIOP, 0x02)
492        Field (IOOR, ByteAcc, NoLock, Preserve)
493        {
494            IOID,   8,
495            IODT,   8
496        }
497
498        OperationRegion (GBOR, SystemIO, GIOB, 0x02)
499        Field (GBOR, ByteAcc, NoLock, Preserve)
500        {
501                    Offset (0x01),
502                ,   5,
503            GP25,   1,
504            GP26,   1
505        }
506
507        Method (RSIO, 1, NotSerialized)
508        {
509            Store (Arg0, IOID)
510            Return (IODT)
511        }
512
513        Method (WSIO, 2, NotSerialized)
514        {
515            Store (Arg0, IOID)
516            Store (Arg1, IODT)
517        }
518
519        Method (RWIO, 3, NotSerialized)
520        {
521            WSIO (Arg0, Or (And (RSIO (Arg0), Arg1), Arg2))
522        }
523
524        Name (IPSW, Package (0x02)
525        {
526            Package (0x04)
527            {
528                0x87,
529                0x01,
530                0x55,
531                0x55
532            },
533
534            Package (0x04)
535            {
536                0x87,
537                0x01,
538                0x55,
539                0xAA
540            }
541        })
542        Method (SLDN, 1, NotSerialized)
543        {
544            Store (0x00, Local1)
545            If (LEqual (SIOP, 0x2E))
546            {
547                Store (0x00, Local1)
548            }
549
550            If (LEqual (SIOP, 0x4E))
551            {
552                Store (0x01, Local1)
553            }
554
555            Store (0x00, Local0)
556            While (LNotEqual (Local0, 0x04))
557            {
558                Store (DerefOf (Index (DerefOf (Index (IPSW, Local1)), Local0)),
559                    IOID)
560                Increment (Local0)
561            }
562
563            WSIO (0x07, Arg0)
564        }
565
566        Method (APTS, 1, NotSerialized)
567        {
568            \AOD.APTS (Arg0)
569        }
570
571        Method (AWAK, 1, NotSerialized)
572        {
573            \AOD.AWAK (Arg0)
574        }
575
576        Device (AOD)
577        {
578            Name (DBG, 0x01)
579            Name (OBID, Package (0x1C)
580            {
581                0x05,
582                0x01010000,
583                0x01020000,
584                0x02010000,
585                0x02040000,
586                0x02020000,
587                0x00,
588                0x00,
589                0x00,
590                0x00,
591                0x01,
592                0x01,
593                0x00,
594                0x00,
595                0x00,
596                0xFF,
597                0xFF,
598                0xFF,
599                0xFF,
600                "CPU Clock",
601                "PCIE Clock",
602                "Memory Voltage",
603                "NB Voltage",
604                "SidePort Voltage",
605                "",
606                "",
607                "",
608                ""
609            })
610            Name (OBIT, Package (0x24)
611            {
612                0x01010000,
613                0x00030D40,
614                0x0007A120,
615                0x00,
616                0x03E8,
617                0x00,
618                0x01020000,
619                0x000186A0,
620                0x000249F0,
621                0x00,
622                0x03E8,
623                0x00,
624                0x02010000,
625                0x0002D2A8,
626                0x0003D090,
627                0x00,
628                0x1388,
629                0x00,
630                0x02020000,
631                0x000249F0,
632                0x0002BF20,
633                0x00,
634                0x2710,
635                0x00,
636                0x02040000,
637                0x0001ADB0,
638                0x00027100,
639                0x00,
640                0x09C4,
641                0x00,
642                0x00,
643                0x00,
644                0x00,
645                0x00,
646                0x00,
647                0x00
648            })
649            Name (OBDT, Package (0x01)
650            {
651                0x00
652            })
653            Name (DOVT, Package (0x1D)
654            {
655                0x0002D2A8,
656                0x83,
657                0x0002E630,
658                0x7B,
659                0x0002F9B8,
660                0x73,
661                0x00030D40,
662                0x6B,
663                0x000320C8,
664                0x63,
665                0x00033450,
666                0x5B,
667                0x000347D8,
668                0x52,
669                0x00035B60,
670                0x49,
671                0x00036EE8,
672                0x3E,
673                0x00038270,
674                0x32,
675                0x000395F8,
676                0x24,
677                0x0003A980,
678                0x17,
679                0x0003BD08,
680                0x0D,
681                0x0003D090,
682                0x03,
683                0xFF
684            })
685            Name (SPVT, Package (0x0D)
686            {
687                0x000249F0,
688                0x01,
689                0x01,
690                0x00027100,
691                0x00,
692                0x01,
693                0x00029810,
694                0x01,
695                0x00,
696                0x0002BF20,
697                0x00,
698                0x00,
699                0xFF
700            })
701            Name (NOVT, Package (0x2B)
702            {
703                0x0001ADB0,
704                0xD9,
705                0x0001B774,
706                0xD1,
707                0x0001C138,
708                0xC9,
709                0x0001CAFC,
710                0xC1,
711                0x0001D4C0,
712                0xB8,
713                0x0001DE84,
714                0xB0,
715                0x0001E848,
716                0xA8,
717                0x0001F20C,
718                0x9F,
719                0x0001FBD0,
720                0x96,
721                0x00020594,
722                0x8C,
723                0x00020F58,
724                0x82,
725                0x0002191C,
726                0x77,
727                0x000222E0,
728                0x6B,
729                0x00022CA4,
730                0x5F,
731                0x00023668,
732                0x52,
733                0x0002402C,
734                0x44,
735                0x000249F0,
736                0x35,
737                0x000253B4,
738                0x26,
739                0x00025D78,
740                0x16,
741                0x0002673C,
742                0x07,
743                0x00027100,
744                0x00,
745                0xFF
746            })
747            Method (BM01, 0, NotSerialized)
748            {
749            }
750
751            Method (XINI, 0, NotSerialized)
752            {
753            }
754
755            Method (EM01, 0, NotSerialized)
756            {
757            }
758
759            Method (BM05, 1, NotSerialized)
760            {
761            }
762
763            Method (EM05, 1, NotSerialized)
764            {
765            }
766
767            Method (HM06, 0, NotSerialized)
768            {
769            }
770
771            Method (HM07, 1, NotSerialized)
772            {
773            }
774
775            Name (QLST, Package (0x07)
776            {
777                0x06,
778                Package (0x08)
779                {
780                    0x03D8,
781                    "Advanced Clock Calibration",
782                    0x00,
783                    0x04,
784                    Buffer (0x09)
785                    {
786                        "Disabled"
787                    },
788
789                    Buffer (0x05)
790                    {
791                        "Auto"
792                    },
793
794                    Buffer (0x0A)
795                    {
796                        "All Cores"
797                    },
798
799                    Buffer (0x09)
800                    {
801                        "Per Core"
802                    }
803                },
804
805                Package (0x16)
806                {
807                    0x3CD8,
808                    "Value (All Cores)",
809                    0x02,
810                    Buffer (0x05)
811                    {
812                        /* 0000 */    0x82, 0x02, 0x01, 0x03, 0x00
813                    },
814
815                    Buffer (0x05)
816                    {
817                        /* 0000 */    0x86, 0x10, 0x00, 0x02, 0x00
818                    },
819
820                    0x10,
821                    Buffer (0x03)
822                    {
823                        "0%"
824                    },
825
826                    Buffer (0x05)
827                    {
828                        "+ 2%"
829                    },
830
831                    Buffer (0x05)
832                    {
833                        "+ 4%"
834                    },
835
836                    Buffer (0x05)
837                    {
838                        "+ 6%"
839                    },
840
841                    Buffer (0x05)
842                    {
843                        "+ 8%"
844                    },
845
846                    Buffer (0x05)
847                    {
848                        "+10%"
849                    },
850
851                    Buffer (0x05)
852                    {
853                        "+12%"
854                    },
855
856                    Buffer (0x09)
857                    {
858                        "RESERVED"
859                    },
860
861                    Buffer (0x09)
862                    {
863                        "RESERVED"
864                    },
865
866                    Buffer (0x05)
867                    {
868                        "- 2%"
869                    },
870
871                    Buffer (0x05)
872                    {
873                        "- 4%"
874                    },
875
876                    Buffer (0x05)
877                    {
878                        "- 6%"
879                    },
880
881                    Buffer (0x05)
882                    {
883                        "- 8%"
884                    },
885
886                    Buffer (0x05)
887                    {
888                        "-10%"
889                    },
890
891                    Buffer (0x05)
892                    {
893                        "-12%"
894                    },
895
896                    Buffer (0x09)
897                    {
898                        "RESERVED"
899                    }
900                },
901
902                Package (0x16)
903                {
904                    0x0FD9,
905                    "Value (Core 0)",
906                    0x02,
907                    Buffer (0x05)
908                    {
909                        /* 0000 */    0x82, 0x03, 0x01, 0x03, 0x00
910                    },
911
912                    Buffer (0x05)
913                    {
914                        /* 0000 */    0x86, 0x10, 0x00, 0x02, 0x00
915                    },
916
917                    0x10,
918                    Buffer (0x03)
919                    {
920                        "0%"
921                    },
922
923                    Buffer (0x05)
924                    {
925                        "+ 2%"
926                    },
927
928                    Buffer (0x05)
929                    {
930                        "+ 4%"
931                    },
932
933                    Buffer (0x05)
934                    {
935                        "+ 6%"
936                    },
937
938                    Buffer (0x05)
939                    {
940                        "+ 8%"
941                    },
942
943                    Buffer (0x05)
944                    {
945                        "+10%"
946                    },
947
948                    Buffer (0x05)
949                    {
950                        "+12%"
951                    },
952
953                    Buffer (0x09)
954                    {
955                        "RESERVED"
956                    },
957
958                    Buffer (0x09)
959                    {
960                        "RESERVED"
961                    },
962
963                    Buffer (0x05)
964                    {
965                        "- 2%"
966                    },
967
968                    Buffer (0x05)
969                    {
970                        "- 4%"
971                    },
972
973                    Buffer (0x05)
974                    {
975                        "- 6%"
976                    },
977
978                    Buffer (0x05)
979                    {
980                        "- 8%"
981                    },
982
983                    Buffer (0x05)
984                    {
985                        "-10%"
986                    },
987
988                    Buffer (0x05)
989                    {
990                        "-12%"
991                    },
992
993                    Buffer (0x09)
994                    {
995                        "RESERVED"
996                    }
997                },
998
999                Package (0x16)
1000                {
1001                    0xF0D9,
1002                    "Value (Core 1)",
1003                    0x02,
1004                    Buffer (0x05)
1005                    {
1006                        /* 0000 */    0x82, 0x03, 0x01, 0x03, 0x00
1007                    },
1008
1009                    Buffer (0x05)
1010                    {
1011                        /* 0000 */    0x86, 0x10, 0x00, 0x02, 0x00
1012                    },
1013
1014                    0x10,
1015                    Buffer (0x03)
1016                    {
1017                        "0%"
1018                    },
1019
1020                    Buffer (0x05)
1021                    {
1022                        "+ 2%"
1023                    },
1024
1025                    Buffer (0x05)
1026                    {
1027                        "+ 4%"
1028                    },
1029
1030                    Buffer (0x05)
1031                    {
1032                        "+ 6%"
1033                    },
1034
1035                    Buffer (0x05)
1036                    {
1037                        "+ 8%"
1038                    },
1039
1040                    Buffer (0x05)
1041                    {
1042                        "+10%"
1043                    },
1044
1045                    Buffer (0x05)
1046                    {
1047                        "+12%"
1048                    },
1049
1050                    Buffer (0x09)
1051                    {
1052                        "RESERVED"
1053                    },
1054
1055                    Buffer (0x09)
1056                    {
1057                        "RESERVED"
1058                    },
1059
1060                    Buffer (0x05)
1061                    {
1062                        "- 2%"
1063                    },
1064
1065                    Buffer (0x05)
1066                    {
1067                        "- 4%"
1068                    },
1069
1070                    Buffer (0x05)
1071                    {
1072                        "- 6%"
1073                    },
1074
1075                    Buffer (0x05)
1076                    {
1077                        "- 8%"
1078                    },
1079
1080                    Buffer (0x05)
1081                    {
1082                        "-10%"
1083                    },
1084
1085                    Buffer (0x05)
1086                    {
1087                        "-12%"
1088                    },
1089
1090                    Buffer (0x09)
1091                    {
1092                        "RESERVED"
1093                    }
1094                },
1095
1096                Package (0x16)
1097                {
1098                    0x0FDA,
1099                    "Value (Core 2)",
1100                    0x02,
1101                    Buffer (0x05)
1102                    {
1103                        /* 0000 */    0x82, 0x03, 0x01, 0x03, 0x00
1104                    },
1105
1106                    Buffer (0x05)
1107                    {
1108                        /* 0000 */    0x86, 0x10, 0x00, 0x02, 0x00
1109                    },
1110
1111                    0x10,
1112                    Buffer (0x03)
1113                    {
1114                        "0%"
1115                    },
1116
1117                    Buffer (0x05)
1118                    {
1119                        "+ 2%"
1120                    },
1121
1122                    Buffer (0x05)
1123                    {
1124                        "+ 4%"
1125                    },
1126
1127                    Buffer (0x05)
1128                    {
1129                        "+ 6%"
1130                    },
1131
1132                    Buffer (0x05)
1133                    {
1134                        "+ 8%"
1135                    },
1136
1137                    Buffer (0x05)
1138                    {
1139                        "+10%"
1140                    },
1141
1142                    Buffer (0x05)
1143                    {
1144                        "+12%"
1145                    },
1146
1147                    Buffer (0x09)
1148                    {
1149                        "RESERVED"
1150                    },
1151
1152                    Buffer (0x09)
1153                    {
1154                        "RESERVED"
1155                    },
1156
1157                    Buffer (0x05)
1158                    {
1159                        "- 2%"
1160                    },
1161
1162                    Buffer (0x05)
1163                    {
1164                        "- 4%"
1165                    },
1166
1167                    Buffer (0x05)
1168                    {
1169                        "- 6%"
1170                    },
1171
1172                    Buffer (0x05)
1173                    {
1174                        "- 8%"
1175                    },
1176
1177                    Buffer (0x05)
1178                    {
1179                        "-10%"
1180                    },
1181
1182                    Buffer (0x05)
1183                    {
1184                        "-12%"
1185                    },
1186
1187                    Buffer (0x09)
1188                    {
1189                        "RESERVED"
1190                    }
1191                },
1192
1193                Package (0x16)
1194                {
1195                    0xF0DA,
1196                    "Value (Core 3)",
1197                    0x02,
1198                    Buffer (0x05)
1199                    {
1200                        /* 0000 */    0x82, 0x03, 0x01, 0x03, 0x00
1201                    },
1202
1203                    Buffer (0x05)
1204                    {
1205                        /* 0000 */    0x86, 0x10, 0x00, 0x02, 0x00
1206                    },
1207
1208                    0x10,
1209                    Buffer (0x03)
1210                    {
1211                        "0%"
1212                    },
1213
1214                    Buffer (0x05)
1215                    {
1216                        "+ 2%"
1217                    },
1218
1219                    Buffer (0x05)
1220                    {
1221                        "+ 4%"
1222                    },
1223
1224                    Buffer (0x05)
1225                    {
1226                        "+ 6%"
1227                    },
1228
1229                    Buffer (0x05)
1230                    {
1231                        "+ 8%"
1232                    },
1233
1234                    Buffer (0x05)
1235                    {
1236                        "+10%"
1237                    },
1238
1239                    Buffer (0x05)
1240                    {
1241                        "+12%"
1242                    },
1243
1244                    Buffer (0x09)
1245                    {
1246                        "RESERVED"
1247                    },
1248
1249                    Buffer (0x09)
1250                    {
1251                        "RESERVED"
1252                    },
1253
1254                    Buffer (0x05)
1255                    {
1256                        "- 2%"
1257                    },
1258
1259                    Buffer (0x05)
1260                    {
1261                        "- 4%"
1262                    },
1263
1264                    Buffer (0x05)
1265                    {
1266                        "- 6%"
1267                    },
1268
1269                    Buffer (0x05)
1270                    {
1271                        "- 8%"
1272                    },
1273
1274                    Buffer (0x05)
1275                    {
1276                        "-10%"
1277                    },
1278
1279                    Buffer (0x05)
1280                    {
1281                        "-12%"
1282                    },
1283
1284                    Buffer (0x09)
1285                    {
1286                        "RESERVED"
1287                    }
1288                }
1289            })
1290            Name (ID01, 0x00)
1291            Name (ID02, 0x00)
1292            Method (SOID, 1, NotSerialized)
1293            {
1294                ShiftRight (Arg0, 0x18, ID01)
1295                ShiftRight (And (Arg0, 0x00FF0000), 0x10, ID02)
1296                Return (0x00)
1297            }
1298
1299            Method (WROW, 4, NotSerialized)
1300            {
1301                Name (IFPK, Package (0x06)
1302                {
1303                    0x00,
1304                    0x00,
1305                    0x00,
1306                    0x00,
1307                    0x00,
1308                    0x00
1309                })
1310                CreateDWordField (Arg0, 0x00, BUF0)
1311                CreateDWordField (Arg0, 0x04, BUF1)
1312                CreateDWordField (Arg0, 0x08, BUF2)
1313                CreateDWordField (Arg0, 0x0C, BUF3)
1314                CreateDWordField (Arg0, 0x10, BUF4)
1315                CreateDWordField (Arg0, 0x14, BUF5)
1316                Store (BUF0, Index (IFPK, 0x00))
1317                Store (BUF1, Index (IFPK, 0x01))
1318                Store (BUF2, Index (IFPK, 0x02))
1319                Store (BUF3, Index (IFPK, 0x03))
1320                Store (BUF4, Index (IFPK, 0x04))
1321                Store (BUF5, Index (IFPK, 0x05))
1322                Store (Arg3, Local0)
1323                Store (0x00, Local1)
1324                While (Local0)
1325                {
1326                    Store (DerefOf (Index (IFPK, Local1)), Index (Arg1, Add (Multiply (
1327                        Arg2, Arg3), Local1)))
1328                    Increment (Local1)
1329                    Decrement (Local0)
1330                }
1331            }
1332
1333            Method (GROW, 4, NotSerialized)
1334            {
1335                Name (IFPK, Package (0x06)
1336                {
1337                    0x00,
1338                    0x00,
1339                    0x00,
1340                    0x00,
1341                    0x00,
1342                    0x00
1343                })
1344                Store (Arg3, Local0)
1345                Store (0x00, Local1)
1346                While (Local0)
1347                {
1348                    Store (DerefOf (Index (Arg0, Add (Multiply (Arg2, Arg3), Local1
1349                        ))), Index (IFPK, Local1))
1350                    Increment (Local1)
1351                    Decrement (Local0)
1352                }
1353
1354                CreateDWordField (Arg1, 0x00, BUF0)
1355                CreateDWordField (Arg1, 0x04, BUF1)
1356                CreateDWordField (Arg1, 0x08, BUF2)
1357                CreateDWordField (Arg1, 0x0C, BUF3)
1358                CreateDWordField (Arg1, 0x10, BUF4)
1359                CreateDWordField (Arg1, 0x14, BUF5)
1360                Store (DerefOf (Index (IFPK, 0x00)), BUF0)
1361                Store (DerefOf (Index (IFPK, 0x01)), BUF1)
1362                Store (DerefOf (Index (IFPK, 0x02)), BUF2)
1363                Store (DerefOf (Index (IFPK, 0x03)), BUF3)
1364                Store (DerefOf (Index (IFPK, 0x04)), BUF4)
1365                Store (DerefOf (Index (IFPK, 0x05)), BUF5)
1366            }
1367
1368            Method (CPTB, 2, NotSerialized)
1369            {
1370                Name (LOID, 0x00)
1371                CreateDWordField (Arg1, 0x00, BUF0)
1372                CreateDWordField (Arg1, 0x04, BUF1)
1373                CreateDWordField (Arg1, 0x08, BUF2)
1374                CreateDWordField (Arg1, 0x0C, BUF3)
1375                CreateDWordField (Arg1, 0x10, BUF4)
1376                Store (0x00, Local0)
1377                Store (DerefOf (Index (OBIT, Local0)), LOID)
1378                While (LOID)
1379                {
1380                    If (LEqual (LOID, Arg0))
1381                    {
1382                        Store (DerefOf (Index (OBIT, Add (Local0, 0x00))), BUF0)
1383                        Store (DerefOf (Index (OBIT, Add (Local0, 0x01))), BUF1)
1384                        Store (DerefOf (Index (OBIT, Add (Local0, 0x02))), BUF2)
1385                        Store (DerefOf (Index (OBIT, Add (Local0, 0x03))), BUF3)
1386                        Store (DerefOf (Index (OBIT, Add (Local0, 0x04))), BUF4)
1387                        Break
1388                    }
1389
1390                    Add (Local0, 0x06, Local0)
1391                    Store (DerefOf (Index (OBIT, Local0)), LOID)
1392                }
1393
1394                If (LEqual (LOID, 0x00))
1395                {
1396                    Return (0xFF)
1397                }
1398
1399                Return (0x00)
1400            }
1401
1402            Method (CBTP, 1, NotSerialized)
1403            {
1404                Name (LOID, 0x00)
1405                CreateDWordField (Arg0, 0x00, BUF0)
1406                CreateDWordField (Arg0, 0x04, BUF1)
1407                CreateDWordField (Arg0, 0x08, BUF2)
1408                CreateDWordField (Arg0, 0x0C, BUF3)
1409                CreateDWordField (Arg0, 0x10, BUF4)
1410                CreateDWordField (Arg0, 0x14, BUF5)
1411                Store (0x00, Local0)
1412                Store (DerefOf (Index (OBIT, Local0)), LOID)
1413                While (LOID)
1414                {
1415                    If (LEqual (LOID, BUF0))
1416                    {
1417                        Store (BUF0, Index (OBIT, Add (Local0, 0x00)))
1418                        Store (BUF1, Index (OBIT, Add (Local0, 0x01)))
1419                        Store (BUF2, Index (OBIT, Add (Local0, 0x02)))
1420                        Store (BUF3, Index (OBIT, Add (Local0, 0x03)))
1421                        Store (BUF4, Index (OBIT, Add (Local0, 0x04)))
1422                        Store (BUF5, Index (OBIT, Add (Local0, 0x05)))
1423                        Break
1424                    }
1425
1426                    Add (Local0, 0x06, Local0)
1427                    Store (DerefOf (Index (OBIT, Local0)), LOID)
1428                }
1429
1430                If (LEqual (LOID, 0x00))
1431                {
1432                    Return (0xFF)
1433                }
1434
1435                Return (0x00)
1436            }
1437
1438            Method (ABS, 2, NotSerialized)
1439            {
1440                If (LLess (Arg0, Arg1))
1441                {
1442                    Return (Subtract (Arg1, Arg0))
1443                }
1444                Else
1445                {
1446                    Return (Subtract (Arg0, Arg1))
1447                }
1448            }
1449
1450            OperationRegion (ACMS, SystemIO, 0x72, 0x02)
1451            Field (ACMS, ByteAcc, NoLock, Preserve)
1452            {
1453                P72,    8,
1454                P73,    8
1455            }
1456
1457            Method (BSF, 1, NotSerialized)
1458            {
1459                Name (BIT0, 0x01)
1460                Store (0x08, Local1)
1461                While (Local1)
1462                {
1463                    And (Arg0, BIT0, Local2)
1464                    If (Local2)
1465                    {
1466                        Break
1467                    }
1468
1469                    ShiftLeft (BIT0, 0x01, BIT0)
1470                    Decrement (Local1)
1471                }
1472
1473                Return (Subtract (0x08, Local1))
1474            }
1475
1476            Method (GCMS, 1, NotSerialized)
1477            {
1478                Name (ADDR, 0x00)
1479                Name (MASK, 0x00)
1480                Name (TEMP, Buffer (0x06) {})
1481                CreateDWordField (TEMP, 0x00, TMP1)
1482                CreateWordField (TEMP, 0x04, TMP2)
1483                And (Arg0, 0xFF, ADDR)
1484                ShiftRight (Arg0, 0x08, MASK)
1485                Store (ADDR, P72)
1486                Store (P73, Local0)
1487                And (Local0, MASK, Local0)
1488                ShiftRight (Local0, BSF (MASK), Local0)
1489                Store (0x00, TMP1)
1490                Store (Local0, TMP2)
1491                Return (TEMP)
1492            }
1493
1494            Method (SCMS, 2, NotSerialized)
1495            {
1496                Name (ADDR, 0x00)
1497                Name (MASK, 0x00)
1498                And (Arg0, 0xFF, ADDR)
1499                ShiftRight (Arg0, 0x08, MASK)
1500                Store (ADDR, P72)
1501                Store (P73, Local0)
1502                ShiftLeft (Arg1, BSF (MASK), Local1)
1503                And (Local0, And (Not (MASK), 0xFF), Local0)
1504                Or (Local0, Local1, Local0)
1505                Store (Local0, P73)
1506                Return (0x00)
1507            }
1508
1509            Name (CPUD, 0x00)
1510            Name (GFXD, 0x00)
1511            Name (SBCD, 0x00)
1512            Method (GETC, 1, NotSerialized)
1513            {
1514                If (\RWBK (0x00, 0xD3, 0x00, 0x20, TSBF))
1515                {
1516                    Store (0x01, GVB2)
1517                    Store (0x00, GVB1)
1518                    Return (GVBF)
1519                }
1520
1521                Store (0x00, GVB2)
1522                Store (CCLK (Arg0), GVB1)
1523                If (LEqual (Arg0, 0x01))
1524                {
1525                    If (LLessEqual (GVB1, 0x00030D40))
1526                    {
1527                        Store (0x00030D40, GVB1)
1528                    }
1529                    Else
1530                    {
1531                        Subtract (GVB1, 0x03E8, GVB1)
1532                    }
1533                }
1534
1535                Return (GVBF)
1536            }
1537
1538            Method (SETC, 2, NotSerialized)
1539            {
1540                If (\RWBK (0x00, 0xD3, 0x00, 0x20, TSBF))
1541                {
1542                    Return (0x01)
1543                }
1544
1545                Store (0x01, Local3)
1546                If (LEqual (Arg0, 0x01))
1547                {
1548                    If (LGreaterEqual (Arg1, 0x00030D40))
1549                    {
1550                        Store (GDIV (0x14), Local0)
1551                        Store (GCCX (0x10, 0x11, 0x14, 0xC350), Local1)
1552                        Store (Multiply (Arg1, Local0), Local2)
1553                        Add (Local2, Multiply (Local0, 0x03E8), Local2)
1554                        Store (RMPC (Local1, Local2, 0x03E8, Arg0), Local3)
1555                    }
1556                }
1557                Else
1558                {
1559                    If (LEqual (Arg0, 0x02))
1560                    {
1561                        Store (GDIV (0x1C), Local0)
1562                        Store (GCCX (0x1A, 0x1B, 0x1C, 0x37EE), Local1)
1563                        Store (Multiply (Arg1, Local0), Local2)
1564                        Add (Local2, Multiply (Local0, 0x0384), Local2)
1565                        Store (RMPC (Local1, Local2, 0x03E8, Arg0), Local3)
1566                    }
1567                    Else
1568                    {
1569                        If (LEqual (Arg0, 0x03))
1570                        {
1571                            Store (GDIV (0x1F), Local0)
1572                            Store (GCCX (0x1D, 0x1E, 0x1F, 0x37EE), Local1)
1573                            Store (Multiply (Arg1, Local0), Local2)
1574                        }
1575                    }
1576                }
1577
1578                If (Local3)
1579                {
1580                    Return (Local3)
1581                }
1582
1583                Return (0x00)
1584            }
1585
1586            Method (CINI, 0, NotSerialized)
1587            {
1588                If (\RWBK (0x00, 0xD3, 0x06, 0x03, TSBF))
1589                {
1590                    Return (0x01)
1591                }
1592
1593                If (LOr (LNotEqual (DerefOf (Index (TSBF, 0x08)), 0x31),
1594                    LNotEqual (DerefOf (Index (TSBF, 0x07)), 0x75)))
1595                {
1596                    Return (0x03)
1597                }
1598
1599                And (DerefOf (Index (TSBF, 0x06)), 0x1F, Index (TSBF, 0x06
1600                    ))
1601                If (\RWBK (0x00, 0xD2, 0x06, 0x01, TSBF))
1602                {
1603                    Return (0x01)
1604                }
1605
1606                Return (0x00)
1607            }
1608
1609            Method (GCCX, 4, NotSerialized)
1610            {
1611                And (DerefOf (Index (TSBF, Arg2)), 0x80, Local0)
1612                ShiftRight (Local0, 0x07, Local0)
1613                And (DerefOf (Index (TSBF, Arg0)), 0xC0, Local1)
1614                ShiftRight (Local1, 0x05, Local1)
1615                And (DerefOf (Index (TSBF, Arg1)), 0xFF, Local2)
1616                ShiftLeft (Local2, 0x03, Local2)
1617                Or (Local0, Local1, Local0)
1618                Or (Local0, Local2, Local0)
1619                And (DerefOf (Index (TSBF, Arg0)), 0x3F, Local1)
1620                Multiply (Arg3, Local0, Local2)
1621                Divide (Local2, Local1, , Local3)
1622                Divide (Local3, 0x03E8, , Local3)
1623                Multiply (Local3, 0x03E8, Local3)
1624                Return (Local3)
1625            }
1626
1627            Name (VCOM, 0x00)
1628            Name (VCON, 0x00)
1629            Method (CCMN, 5, NotSerialized)
1630            {
1631                Store (Arg1, Local0)
1632                Store (ABS (Arg0, Arg1), Local1)
1633                Store (Arg2, Local2)
1634                While (LLess (Local2, Arg3))
1635                {
1636                    Store (0x07FF, Local3)
1637                    Store (Arg4, Local4)
1638                    While (LLessEqual (Local4, Local3))
1639                    {
1640                        Store (Divide (Multiply (Arg1, Local4), Local2, ), Local0)
1641                        Store (ABS (Arg0, Local0), Local5)
1642                        If (LLess (Local5, Local1))
1643                        {
1644                            Store (Local4, VCON)
1645                            Store (Local2, VCOM)
1646                            Store (Local5, Local1)
1647                            If (LEqual (Local5, 0x00))
1648                            {
1649                                Break
1650                            }
1651                        }
1652
1653                        Increment (Local4)
1654                    }
1655
1656                    Increment (Local2)
1657                }
1658            }
1659
1660            Method (CCLK, 1, NotSerialized)
1661            {
1662                Name (VCOV, 0x00)
1663                Name (VCOD, 0x00)
1664                If (LEqual (Arg0, 0x01))
1665                {
1666                    Store (GDIV (0x14), CPUD)
1667                    Store (CPUD, VCOD)
1668                    Store (GCCX (0x10, 0x11, 0x14, 0xC350), VCOV)
1669                }
1670                Else
1671                {
1672                    If (LEqual (Arg0, 0x02))
1673                    {
1674                        Store (GDIV (0x1C), GFXD)
1675                        Store (GFXD, VCOD)
1676                        Store (GCCX (0x1A, 0x1B, 0x1C, 0x37EE), VCOV)
1677                    }
1678                    Else
1679                    {
1680                        If (LEqual (Arg0, 0x03))
1681                        {
1682                            Store (GDIV (0x1F), SBCD)
1683                            Store (SBCD, VCOD)
1684                            Store (GCCX (0x1D, 0x1E, 0x1F, 0x37EE), VCOV)
1685                        }
1686                    }
1687                }
1688
1689                Return (Divide (VCOV, VCOD, ))
1690            }
1691
1692            Method (SCCX, 7, NotSerialized)
1693            {
1694                Store (0x00, VCOM)
1695                Store (0x00, VCON)
1696                If (LEqual (Arg4, 0xC350))
1697                {
1698                    Store (0x0168, Local0)
1699                }
1700                Else
1701                {
1702                    If (LEqual (Arg4, 0x37EE))
1703                    {
1704                        Store (0x02BB, Local0)
1705                    }
1706                }
1707
1708                CCMN (Arg0, Arg4, Arg5, Arg6, Local0)
1709                Store (Or (And (ShiftLeft (VCON, 0x05), 0xC0), VCOM
1710                    ), Index (TSBF, Arg1))
1711                Store (And (ShiftRight (VCON, 0x03), 0xFF), Index (TSBF,
1712                    Arg2))
1713                Or (And (DerefOf (Index (TSBF, Arg3)), 0x7F), And (
1714                    ShiftLeft (VCON, 0x07), 0x80), Index (TSBF, Arg3))
1715                If (\RWBK (0x00, 0xD2, Arg1, Add (Subtract (Arg3, Arg1),
1716                    0x01), TSBF))
1717                {
1718                    Return (0x01)
1719                }
1720
1721                Return (0x00)
1722            }
1723
1724            Name (DIVD, Buffer (0x10)
1725            {
1726                /* 0000 */    0x02, 0x03, 0x05, 0x09, 0x04, 0x06, 0x0A, 0x12,
1727                /* 0008 */    0x08, 0x0C, 0x14, 0x24, 0x10, 0x18, 0x28, 0x48
1728            })
1729            Method (GDIV, 1, NotSerialized)
1730            {
1731                Return (DerefOf (Index (DIVD, And (DerefOf (Index (TSBF, Arg0)),
1732                    0x0F))))
1733            }
1734
1735            Method (WTCX, 2, NotSerialized)
1736            {
1737                Store (Arg1, Local0)
1738                If (LEqual (Arg0, 0x01))
1739                {
1740                    Return (SCCX (Local0, 0x10, 0x11, 0x14, 0xC350, 0x1E, 0x3F))
1741                }
1742                Else
1743                {
1744                    If (LEqual (Arg0, 0x02))
1745                    {
1746                        Return (SCCX (Local0, 0x1A, 0x1B, 0x1C, 0x37EE, 0x0A, 0x1E))
1747                    }
1748                    Else
1749                    {
1750                        If (LEqual (Arg0, 0x03))
1751                        {
1752                            Return (SCCX (Local0, 0x1D, 0x1E, 0x1F, 0x37EE, 0x0A, 0x1E))
1753                        }
1754                    }
1755                }
1756
1757                Return (0x04)
1758            }
1759
1760            Method (RMPC, 4, NotSerialized)
1761            {
1762                Name (STAT, 0x00)
1763                Store (Arg0, Local0)
1764                Store (Arg1, Local1)
1765                If (LNotEqual (Local0, Local1))
1766                {
1767                    Store (WTCX (Arg3, Local1), STAT)
1768                    If (STAT)
1769                    {
1770                        Return (STAT)
1771                    }
1772                }
1773
1774                Return (0x00)
1775            }
1776
1777            Method (VINI, 0, NotSerialized)
1778            {
1779            }
1780
1781            Method (SETV, 2, NotSerialized)
1782            {
1783                If (LEqual (DBG, 0x01))
1784                {
1785                    Store ("setv", Debug)
1786                }
1787
1788                If (LEqual (Arg0, 0x01))
1789                {
1790                    Store (0x00, Local0)
1791                    While (0x01)
1792                    {
1793                        If (LEqual (DerefOf (Index (DOVT, Local0)), 0xFF))
1794                        {
1795                            Store (0x00, Local1)
1796                            Break
1797                        }
1798
1799                        If (LEqual (DerefOf (Index (DOVT, Local0)), Arg1))
1800                        {
1801                            Store (Local0, Local1)
1802                            Break
1803                        }
1804
1805                        Increment (Local0)
1806                    }
1807
1808                    Store (0x01, \CLKE)
1809                    Increment (Local1)
1810                    Store (DerefOf (Index (DOVT, Local1)), \P2HI)
1811                    Store (0x00, \CLKE)
1812                }
1813
1814                If (LEqual (Arg0, 0x02))
1815                {
1816                    Store (0x00, Local0)
1817                    While (0x01)
1818                    {
1819                        If (LEqual (DerefOf (Index (SPVT, Local0)), 0xFF))
1820                        {
1821                            Store (0x00, Local1)
1822                            Break
1823                        }
1824
1825                        If (LEqual (DerefOf (Index (SPVT, Local0)), Arg1))
1826                        {
1827                            Store (Local0, Local1)
1828                            Break
1829                        }
1830
1831                        Add (Local0, 0x03, Local0)
1832                    }
1833
1834                    Increment (Local1)
1835                    Store (DerefOf (Index (SPVT, Local1)), GO54)
1836                    Increment (Local1)
1837                    Store (DerefOf (Index (SPVT, Local1)), GO61)
1838                }
1839
1840                If (LEqual (Arg0, 0x04))
1841                {
1842                    Store (0x00, Local0)
1843                    While (0x01)
1844                    {
1845                        If (LEqual (DerefOf (Index (NOVT, Local0)), 0xFF))
1846                        {
1847                            Store (0x00, Local1)
1848                            Break
1849                        }
1850
1851                        If (LEqual (DerefOf (Index (NOVT, Local0)), Arg1))
1852                        {
1853                            Store (Local0, Local1)
1854                            Break
1855                        }
1856
1857                        Increment (Local0)
1858                    }
1859
1860                    Store (0x01, \CLKE)
1861                    Increment (Local1)
1862                    Store (DerefOf (Index (NOVT, Local1)), \P3HI)
1863                    Store (\P3HI, \P3HH)
1864                    Store (0x00, \CLKE)
1865                }
1866            }
1867
1868            Method (GETV, 1, NotSerialized)
1869            {
1870                If (DBG)
1871                {
1872                    Store ("getv", Debug)
1873                }
1874
1875                If (LEqual (Arg0, 0x01))
1876                {
1877                    Store (0x01, \CLKE)
1878                    Store (\P2HI, Local0)
1879                    Store (0x01, Local1)
1880                    While (LNotEqual (DerefOf (Index (DOVT, Local1)), Local0))
1881                    {
1882                        If (LEqual (DerefOf (Index (DOVT, Local1)), 0xFF))
1883                        {
1884                            Store (0x01, Local1)
1885                            Break
1886                        }
1887
1888                        Increment (Local1)
1889                    }
1890
1891                    Decrement (Local1)
1892                    Store (DerefOf (Index (DOVT, Local1)), GVBF)
1893                    Store (0x00, \CLKE)
1894                }
1895
1896                If (LEqual (Arg0, 0x02))
1897                {
1898                    Store (GP61, Local0)
1899                    ShiftLeft (Local0, 0x01, Local0)
1900                    Or (GP54, Local0, Local0)
1901                    Not (Local0, Local0)
1902                    And (Local0, 0x03, Local0)
1903                    Multiply (Local0, 0x03, Local0)
1904                    Store (DerefOf (Index (SPVT, Local0)), GVBF)
1905                }
1906
1907                If (LEqual (Arg0, 0x04))
1908                {
1909                    Store (0x01, \CLKE)
1910                    Store (\P3HI, Local0)
1911                    Store (0x01, Local1)
1912                    While (LNotEqual (DerefOf (Index (NOVT, Local1)), Local0))
1913                    {
1914                        If (LEqual (DerefOf (Index (NOVT, Local1)), 0xFF))
1915                        {
1916                            Store (0x01, Local1)
1917                            Break
1918                        }
1919
1920                        Increment (Local1)
1921                    }
1922
1923                    Decrement (Local1)
1924                    Store (DerefOf (Index (NOVT, Local1)), GVBF)
1925                    Store (0x00, \CLKE)
1926                }
1927
1928                Return (GVBF)
1929            }
1930
1931            Name (GF01, 0x00)
1932            Name (OVFL, 0x01)
1933            Name (OCFL, 0x01)
1934            Name (TSBF, Buffer (0x20)
1935            {
1936                /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1937                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1938                /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1939                /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1940            })
1941            Name (GVBF, Buffer (0x05)
1942            {
1943                /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00
1944            })
1945            CreateDWordField (GVBF, 0x00, GVB1)
1946            CreateByteField (GVBF, 0x04, GVB2)
1947            Method (AM01, 0, NotSerialized)
1948            {
1949                If (DBG)
1950                {
1951                    Store ("AM01", Debug)
1952                }
1953
1954                If (LNot (GF01))
1955                {
1956                    BM01 ()
1957                    If (OCFL)
1958                    {
1959                        CINI ()
1960                    }
1961
1962                    If (OVFL)
1963                    {
1964                        VINI ()
1965                    }
1966
1967                    XINI ()
1968                    EM01 ()
1969                    Store (0x01, GF01)
1970                }
1971
1972                Return (0x00)
1973            }
1974
1975            Method (AM02, 0, NotSerialized)
1976            {
1977                If (DBG)
1978                {
1979                    Store ("AM02", Debug)
1980                    Store (OBID, Debug)
1981                }
1982
1983                Return (OBID)
1984            }
1985
1986            Method (AM03, 1, NotSerialized)
1987            {
1988                If (DBG)
1989                {
1990                    Store ("AM03", Debug)
1991                }
1992
1993                SOID (Arg0)
1994                If (LAnd (LEqual (ID01, 0x01), OCFL))
1995                {
1996                    Store (GETC (ID02), Local0)
1997                }
1998                Else
1999                {
2000                    If (LAnd (LEqual (ID01, 0x02), OVFL))
2001                    {
2002                        Store (GETV (ID02), Local0)
2003                    }
2004                    Else
2005                    {
2006                        Store (0x00, GVB1)
2007                        Store (0x04, GVB2)
2008                        Store (GVBF, Local0)
2009                    }
2010                }
2011
2012                If (DBG)
2013                {
2014                    Store ("GVBF", Debug)
2015                    Store (Local0, Debug)
2016                }
2017
2018                Return (Local0)
2019            }
2020
2021            Method (AM04, 2, NotSerialized)
2022            {
2023                If (DBG)
2024                {
2025                    Store ("AM04", Debug)
2026                }
2027
2028                SOID (Arg0)
2029                If (LAnd (LEqual (ID01, 0x01), OCFL))
2030                {
2031                    SETC (ID02, Arg1)
2032                }
2033                Else
2034                {
2035                    If (LAnd (LEqual (ID01, 0x02), OVFL))
2036                    {
2037                        SETV (ID02, Arg1)
2038                    }
2039                    Else
2040                    {
2041                        Return (0x04)
2042                    }
2043                }
2044
2045                Return (0x00)
2046            }
2047
2048            Method (AM05, 1, NotSerialized)
2049            {
2050                Name (INFO, Buffer (0x14)
2051                {
2052                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2053                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2054                    /* 0010 */    0x00, 0x00, 0x00, 0x00
2055                })
2056                CreateDWordField (INFO, 0x00, IFID)
2057                CreateDWordField (INFO, 0x04, IFMI)
2058                CreateDWordField (INFO, 0x08, IFMX)
2059                CreateDWordField (INFO, 0x0C, IFSP)
2060                CreateField (INFO, 0x80, 0x03, IFST)
2061                If (DBG)
2062                {
2063                    Store ("AM05", Debug)
2064                    Store (OBIT, Debug)
2065                }
2066
2067                SOID (Arg0)
2068                If (DBG)
2069                {
2070                    Store ("ID", Debug)
2071                    Store (ID01, Debug)
2072                    Store (ID02, Debug)
2073                }
2074
2075                BM05 (Arg0)
2076                If (DBG)
2077                {
2078                    Store ("OBIT", Debug)
2079                    Store (OBIT, Debug)
2080                }
2081
2082                CPTB (Arg0, INFO)
2083                EM05 (Arg0)
2084                If (DBG)
2085                {
2086                    Store ("info", Debug)
2087                    Store (INFO, Debug)
2088                }
2089
2090                Return (INFO)
2091            }
2092
2093            Method (AM06, 0, NotSerialized)
2094            {
2095                HM06 ()
2096                Return (0x00)
2097            }
2098
2099            Method (AM07, 1, NotSerialized)
2100            {
2101                HM07 (Arg0)
2102                Return (0x00)
2103            }
2104
2105            Method (AM08, 1, NotSerialized)
2106            {
2107                Name (LODT, Package (0x34)
2108                {
2109                    0x00,
2110                    0x00,
2111                    0x00,
2112                    0x00,
2113                    0x00,
2114                    0x00,
2115                    0x00,
2116                    0x00,
2117                    0x00,
2118                    0x00,
2119                    0x00,
2120                    0x00,
2121                    0x00,
2122                    0x00,
2123                    0x00,
2124                    0x00,
2125                    0x00,
2126                    0x00,
2127                    0x00,
2128                    0x00,
2129                    0x00,
2130                    0x00,
2131                    0x00,
2132                    0x00,
2133                    0x00,
2134                    0x00,
2135                    0x00,
2136                    0x00,
2137                    0x00,
2138                    0x00,
2139                    0x00,
2140                    0x00,
2141                    0x00,
2142                    0x00,
2143                    0x00,
2144                    0x00,
2145                    0x00,
2146                    0x00,
2147                    0x00,
2148                    0x00,
2149                    0x00,
2150                    0x00,
2151                    0x00,
2152                    0x00,
2153                    0x00,
2154                    0x00,
2155                    0x00,
2156                    0x00,
2157                    0x00,
2158                    0x00,
2159                    0x00,
2160                    0x00
2161                })
2162                Store (0x00, Local0)
2163                While (0x01)
2164                {
2165                    If (LEqual (DerefOf (Index (OBDT, Local0)), Arg0))
2166                    {
2167                        Store (0x00, Local4)
2168                        Break
2169                    }
2170
2171                    If (LEqual (DerefOf (Index (OBDT, Local0)), 0x00))
2172                    {
2173                        Store (0x04, Local4)
2174                        Break
2175                    }
2176
2177                    Add (Local0, DerefOf (Index (OBDT, Add (Local0, 0x01))),
2178                        Local0)
2179                    Add (Local0, 0x02, Local0)
2180                }
2181
2182                If (Local4) {}
2183                Else
2184                {
2185                    Store (DerefOf (Index (OBDT, Add (Local0, 0x01))), Local1)
2186                    Add (Local1, 0x02, Local1)
2187                    Store (0x00, Local2)
2188                    While (Local1)
2189                    {
2190                        Store (DerefOf (Index (OBDT, Local0)), Index (LODT, Local2))
2191                        Decrement (Local1)
2192                        Increment (Local0)
2193                        Increment (Local2)
2194                    }
2195                }
2196
2197                Return (LODT)
2198            }
2199
2200            Name (OBSV, Package (0x09)
2201            {
2202                0x00,
2203                0x00,
2204                0x00,
2205                0x00,
2206                0x00,
2207                0x00,
2208                0x00,
2209                0x00,
2210                0x00
2211            })
2212            Method (APTS, 1, NotSerialized)
2213            {
2214                If (LAnd (GF01, LOr (LEqual (Arg0, 0x04), LEqual (Arg0, 0x03))))
2215                {
2216                    Store (DerefOf (Index (OBID, 0x00)), Local0)
2217                    Store (0x01, Local1)
2218                    Store (0x00, Local2)
2219                    While (Local0)
2220                    {
2221                        SOID (DerefOf (Index (OBID, Local1)))
2222                        If (LAnd (LEqual (ID01, 0x01), OCFL))
2223                        {
2224                            GETC (ID02)
2225                            Store (GVB1, Local3)
2226                        }
2227                        Else
2228                        {
2229                            If (LAnd (LEqual (ID01, 0x02), OVFL))
2230                            {
2231                                GETV (ID02)
2232                                Store (GVB1, Local3)
2233                            }
2234                            Else
2235                            {
2236                                Store (0x00, Local3)
2237                            }
2238                        }
2239
2240                        Store (Local3, Index (OBSV, Local2))
2241                        Decrement (Local0)
2242                        Increment (Local1)
2243                        Increment (Local2)
2244                    }
2245                }
2246            }
2247
2248            Method (AWAK, 1, NotSerialized)
2249            {
2250                If (LAnd (GF01, LOr (LEqual (Arg0, 0x04), LEqual (Arg0, 0x03))))
2251                {
2252                    Store (DerefOf (Index (OBID, 0x00)), Local0)
2253                    Store (0x01, Local1)
2254                    Store (0x00, Local2)
2255                    While (Local0)
2256                    {
2257                        Store (DerefOf (Index (OBSV, Local2)), Local3)
2258                        SOID (DerefOf (Index (OBID, Local1)))
2259                        If (LAnd (LEqual (ID01, 0x01), OCFL))
2260                        {
2261                            SETC (ID02, Local3)
2262                        }
2263                        Else
2264                        {
2265                            If (LAnd (LEqual (ID01, 0x02), OVFL))
2266                            {
2267                                SETV (ID02, Local3)
2268                            }
2269                            Else
2270                            {
2271                            }
2272                        }
2273
2274                        Decrement (Local0)
2275                        Increment (Local1)
2276                        Increment (Local2)
2277                    }
2278                }
2279            }
2280
2281            Name (CMDV, 0x00)
2282            Method (AM09, 0, NotSerialized)
2283            {
2284                Return (CMDV)
2285            }
2286
2287            Name (OBUF, Buffer (0x0200) {})
2288            Method (AM10, 1, NotSerialized)
2289            {
2290                CreateDWordField (Arg0, 0x00, ACMD)
2291                CreateField (OBUF, 0x00, 0x1000, TEMP)
2292                Store (0x00, TEMP)
2293                If (LEqual (ACMD, 0x00030001))
2294                {
2295                    R301 ()
2296                }
2297                Else
2298                {
2299                    If (LEqual (ACMD, 0x00030002))
2300                    {
2301                        R302 (Arg0)
2302                    }
2303                    Else
2304                    {
2305                        If (LEqual (ACMD, 0x00030003))
2306                        {
2307                            R303 (Arg0)
2308                        }
2309                        Else
2310                        {
2311                            If (LEqual (ACMD, 0x00030004))
2312                            {
2313                                R304 (Arg0)
2314                            }
2315                            Else
2316                            {
2317                                If (LEqual (ACMD, 0x00040001))
2318                                {
2319                                    R401 (Arg0)
2320                                }
2321                                Else
2322                                {
2323                                    If (LEqual (ACMD, 0x00040002)) {}
2324                                    Else
2325                                    {
2326                                        CreateDWordField (OBUF, 0x00, CMDS)
2327                                        Store (0x00010000, CMDS)
2328                                    }
2329                                }
2330                            }
2331                        }
2332                    }
2333                }
2334
2335                Return (OBUF)
2336            }
2337
2338            Name (CMDL, Buffer (0x54) {})
2339            Method (AM11, 0, NotSerialized)
2340            {
2341                Name (TEMP, 0x00)
2342                CreateDWordField (CMDL, 0x00, CMDC)
2343                Add (TEMP, 0x04, TEMP)
2344                CreateDWordField (CMDL, TEMP, CMD1)
2345                Add (TEMP, 0x04, TEMP)
2346                Store (0x00030001, CMD1)
2347                CreateDWordField (CMDL, TEMP, CMD2)
2348                Add (TEMP, 0x04, TEMP)
2349                Store (0x00030002, CMD2)
2350                CreateDWordField (CMDL, TEMP, CMD3)
2351                Add (TEMP, 0x04, TEMP)
2352                Store (0x00030003, CMD3)