1/*
2 * Intel ACPI Component Architecture
3 * AML Disassembler version 20021002
4 *
5 * Disassembly of DSDT.AML, Wed Aug 30 20:30:19 2006
6 */
7DefinitionBlock ("DSDT.aml", "DSDT", 1, "IBM   ", "TP-T20  ", 100930080)
8{
9    Scope (\_PR)
10    {
11        Processor (CPU, 0x01, 0x00001010, 0x06) {}
12    }
13
14    Scope (\_SB)
15    {
16        Device (LNKA)
17        {
18            Name (_HID, EisaId ("PNP0C0F"))
19            Name (_UID, 0x01)
20            Method (_STA, 0, NotSerialized)
21            {
22                If (LNot (VPIR (\_SB.PCI0.ISA.PIRA)))
23                {
24                    Return (0x09)
25                }
26                Else
27                {
28                    Return (0x0B)
29                }
30            }
31
32            Name (_PRS, ResourceTemplate ()
33            {
34                IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11}
35            })
36            Method (_DIS, 0, NotSerialized)
37            {
38                Or (\_SB.PCI0.ISA.PIRA, 0x80, \_SB.PCI0.ISA.PIRA)
39            }
40
41            Method (_CRS, 0, NotSerialized)
42            {
43                Name (BUFA, ResourceTemplate ()
44                {
45                    IRQ (Level, ActiveLow, Shared) {}
46                })
47                CreateWordField (BUFA, 0x01, IRA1)
48                And (\_SB.PCI0.ISA.PIRA, 0x8F, Local0)
49                If (VPIR (Local0))
50                {
51                    Store (ShiftLeft (One, Local0), IRA1)
52                }
53
54                Return (BUFA)
55            }
56
57            Method (_SRS, 1, NotSerialized)
58            {
59                CreateWordField (Arg0, 0x01, IRA2)
60                FindSetRightBit (IRA2, Local0)
61                And (\_SB.PCI0.ISA.PIRA, 0x70, Local1)
62                Or (Local1, Decrement (Local0), Local1)
63                Store (Local1, \_SB.PCI0.ISA.PIRA)
64            }
65        }
66
67        Device (LNKB)
68        {
69            Name (_HID, EisaId ("PNP0C0F"))
70            Name (_UID, 0x02)
71            Method (_STA, 0, NotSerialized)
72            {
73                If (LNot (VPIR (\_SB.PCI0.ISA.PIRB)))
74                {
75                    Return (0x09)
76                }
77                Else
78                {
79                    Return (0x0B)
80                }
81            }
82
83            Name (_PRS, ResourceTemplate ()
84            {
85                IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11}
86            })
87            Method (_DIS, 0, NotSerialized)
88            {
89                Or (\_SB.PCI0.ISA.PIRB, 0x80, \_SB.PCI0.ISA.PIRB)
90            }
91
92            Method (_CRS, 0, NotSerialized)
93            {
94                Name (BUFB, ResourceTemplate ()
95                {
96                    IRQ (Level, ActiveLow, Shared) {}
97                })
98                CreateWordField (BUFB, 0x01, IRB1)
99                And (\_SB.PCI0.ISA.PIRB, 0x8F, Local0)
100                If (VPIR (Local0))
101                {
102                    Store (ShiftLeft (One, Local0), IRB1)
103                }
104
105                Return (BUFB)
106            }
107
108            Method (_SRS, 1, NotSerialized)
109            {
110                CreateWordField (Arg0, 0x01, IRB2)
111                FindSetRightBit (IRB2, Local0)
112                And (\_SB.PCI0.ISA.PIRB, 0x70, Local1)
113                Or (Local1, Decrement (Local0), Local1)
114                Store (Local1, \_SB.PCI0.ISA.PIRB)
115            }
116        }
117
118        Device (LNKC)
119        {
120            Name (_HID, EisaId ("PNP0C0F"))
121            Name (_UID, 0x03)
122            Method (_STA, 0, NotSerialized)
123            {
124                If (LNot (VPIR (\_SB.PCI0.ISA.PIRC)))
125                {
126                    Return (0x09)
127                }
128                Else
129                {
130                    Return (0x0B)
131                }
132            }
133
134            Name (_PRS, ResourceTemplate ()
135            {
136                IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11}
137            })
138            Method (_DIS, 0, NotSerialized)
139            {
140                Or (\_SB.PCI0.ISA.PIRC, 0x80, \_SB.PCI0.ISA.PIRC)
141            }
142
143            Method (_CRS, 0, NotSerialized)
144            {
145                Name (BUFC, ResourceTemplate ()
146                {
147                    IRQ (Level, ActiveLow, Shared) {}
148                })
149                CreateWordField (BUFC, 0x01, IRC1)
150                And (\_SB.PCI0.ISA.PIRC, 0x8F, Local0)
151                If (VPIR (Local0))
152                {
153                    Store (ShiftLeft (One, Local0), IRC1)
154                }
155
156                Return (BUFC)
157            }
158
159            Method (_SRS, 1, NotSerialized)
160            {
161                CreateWordField (Arg0, 0x01, IRC2)
162                FindSetRightBit (IRC2, Local0)
163                And (\_SB.PCI0.ISA.PIRC, 0x70, Local1)
164                Or (Local1, Decrement (Local0), Local1)
165                Store (Local1, \_SB.PCI0.ISA.PIRC)
166            }
167        }
168
169        Device (LNKD)
170        {
171            Name (_HID, EisaId ("PNP0C0F"))
172            Name (_UID, 0x04)
173            Method (_STA, 0, NotSerialized)
174            {
175                If (LNot (VPIR (\_SB.PCI0.ISA.PIRD)))
176                {
177                    Return (0x09)
178                }
179                Else
180                {
181                    Return (0x0B)
182                }
183            }
184
185            Name (_PRS, ResourceTemplate ()
186            {
187                IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11}
188            })
189            Method (_DIS, 0, NotSerialized)
190            {
191                Or (\_SB.PCI0.ISA.PIRD, 0x80, \_SB.PCI0.ISA.PIRD)
192            }
193
194            Method (_CRS, 0, NotSerialized)
195            {
196                Name (BUFD, ResourceTemplate ()
197                {
198                    IRQ (Level, ActiveLow, Shared) {}
199                })
200                CreateWordField (BUFD, 0x01, IRD1)
201                And (\_SB.PCI0.ISA.PIRD, 0x8F, Local0)
202                If (VPIR (Local0))
203                {
204                    Store (ShiftLeft (One, Local0), IRD1)
205                }
206
207                Return (BUFD)
208            }
209
210            Method (_SRS, 1, NotSerialized)
211            {
212                CreateWordField (Arg0, 0x01, IRD2)
213                FindSetRightBit (IRD2, Local0)
214                And (\_SB.PCI0.ISA.PIRD, 0x70, Local1)
215                Or (Local1, Decrement (Local0), Local1)
216                Store (Local1, \_SB.PCI0.ISA.PIRD)
217            }
218        }
219
220        Method (VPIR, 1, NotSerialized)
221        {
222            Store (One, Local0)
223            If (And (Arg0, 0x80))
224            {
225                Store (Zero, Local0)
226            }
227            Else
228            {
229                And (Arg0, 0x0F, Local1)
230                If (LLess (Local1, 0x03))
231                {
232                    Store (Zero, Local0)
233                }
234                Else
235                {
236                    If (LOr (LEqual (Local1, 0x08), LEqual (Local1, 0x0D)))
237                    {
238                        Store (Zero, Local0)
239                    }
240                }
241            }
242
243            Return (Local0)
244        }
245
246        Device (MEM)
247        {
248            Name (_HID, EisaId ("PNP0C01"))
249            Name (ME98, ResourceTemplate ()
250            {
251                Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
252                Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000)
253                Memory32Fixed (ReadWrite, 0x00100000, 0x01EE0000)
254                Memory32Fixed (ReadOnly, 0xFFF80000, 0x00080000)
255            })
256            CreateDWordField (ME98, 0x1C, MEB0)
257            CreateDWordField (ME98, 0x20, MEL0)
258            Name (MGAP, ResourceTemplate ()
259            {
260                Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
261            })
262            CreateDWordField (MGAP, 0x04, MGPB)
263            CreateDWordField (MGAP, 0x08, MGPL)
264            Name (MEMS, ResourceTemplate ()
265            {
266                Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
267                Memory32Fixed (ReadOnly, 0x000C0000, 0x00000000)
268                Memory32Fixed (ReadOnly, 0x000C4000, 0x00000000)
269                Memory32Fixed (ReadOnly, 0x000C8000, 0x00000000)
270                Memory32Fixed (ReadOnly, 0x000CC000, 0x00000000)
271                Memory32Fixed (ReadOnly, 0x000D0000, 0x00000000)
272                Memory32Fixed (ReadOnly, 0x000D4000, 0x00000000)
273                Memory32Fixed (ReadOnly, 0x000D8000, 0x00000000)
274                Memory32Fixed (ReadOnly, 0x000DC000, 0x00000000)
275                Memory32Fixed (ReadOnly, 0x000E0000, 0x00000000)
276                Memory32Fixed (ReadOnly, 0x000E4000, 0x00000000)
277                Memory32Fixed (ReadOnly, 0x000E8000, 0x00000000)
278                Memory32Fixed (ReadOnly, 0x000EC000, 0x00000000)
279                Memory32Fixed (ReadOnly, 0x000F0000, 0x00010000)
280                Memory32Fixed (ReadWrite, 0x00100000, 0x01EE0000)
281                Memory32Fixed (ReadOnly, 0xFFF80000, 0x00080000)
282            })
283            CreateDWordField (MEMS, 0x14, MC0L)
284            CreateDWordField (MEMS, 0x20, MC4L)
285            CreateDWordField (MEMS, 0x2C, MC8L)
286            CreateDWordField (MEMS, 0x38, MCCL)
287            CreateDWordField (MEMS, 0x44, MD0L)
288            CreateDWordField (MEMS, 0x50, MD4L)
289            CreateDWordField (MEMS, 0x5C, MD8L)
290            CreateDWordField (MEMS, 0x68, MDCL)
291            CreateDWordField (MEMS, 0x74, ME0L)
292            CreateDWordField (MEMS, 0x80, ME4L)
293            CreateDWordField (MEMS, 0x8C, ME8L)
294            CreateDWordField (MEMS, 0x98, MECL)
295            CreateBitField (MEMS, 0x78, MC0W)
296            CreateBitField (MEMS, 0xD8, MC4W)
297            CreateBitField (MEMS, 0x0138, MC8W)
298            CreateBitField (MEMS, 0x0198, MCCW)
299            CreateBitField (MEMS, 0x01F8, MD0W)
300            CreateBitField (MEMS, 0x0258, MD4W)
301            CreateBitField (MEMS, 0x02B8, MD8W)
302            CreateBitField (MEMS, 0x0318, MDCW)
303            CreateBitField (MEMS, 0x0378, ME0W)
304            CreateBitField (MEMS, 0x03D8, ME4W)
305            CreateBitField (MEMS, 0x0438, ME8W)
306            CreateBitField (MEMS, 0x0498, MECW)
307            CreateDWordField (MEMS, 0xAC, MEB1)
308            CreateDWordField (MEMS, 0xB0, MEL1)
309            Method (_CRS, 0, NotSerialized)
310            {
311                If (\W98F)
312                {
313                    Subtract (\MEMX, MEB0, MEL0)
314                    Store (\GGAP (0x00), MGPB)
315                    Store (\GGAP (0x01), MGPL)
316                    If (LAnd (MGPB, MGPL))
317                    {
318                        Subtract (SizeOf (ME98), 0x02, Local0)
319                        Name (MBF0, Buffer (Local0) {})
320                        Add (Local0, SizeOf (MGAP), Local0)
321                        Name (MBF1, Buffer (Local0) {})
322                        Store (ME98, MBF0)
323                        Concatenate (MBF0, MGAP, MBF1)
324                        Return (MBF1)
325                    }
326                    Else
327                    {
328                        Return (ME98)
329                    }
330                }
331
332                And (\_SB.PCI0.PAM1, 0x03, Local0)
333                If (Local0)
334                {
335                    Store (0x4000, MC0L)
336                    If (And (Local0, 0x02))
337                    {
338                        Store (0x01, MC0W)
339                    }
340                }
341
342                And (\_SB.PCI0.PAM1, 0x30, Local0)
343                If (Local0)
344                {
345                    Store (0x4000, MC4L)
346                    If (And (Local0, 0x20))
347                    {
348                        Store (0x01, MC4W)
349                    }
350                }
351
352                And (\_SB.PCI0.PAM2, 0x03, Local0)
353                If (Local0)
354                {
355                    Store (0x4000, MC8L)
356                    If (And (Local0, 0x02))
357                    {
358                        Store (0x01, MC8W)
359                    }
360                }
361
362                And (\_SB.PCI0.PAM2, 0x30, Local0)
363                If (Local0)
364                {
365                    Store (0x4000, MCCL)
366                    If (And (Local0, 0x20))
367                    {
368                        Store (0x01, MCCW)
369                    }
370                }
371
372                And (\_SB.PCI0.PAM3, 0x03, Local0)
373                If (Local0)
374                {
375                    Store (0x4000, MD0L)
376                    If (And (Local0, 0x02))
377                    {
378                        Store (0x01, MD0W)
379                    }
380                }
381
382                And (\_SB.PCI0.PAM3, 0x30, Local0)
383                If (Local0)
384                {
385                    Store (0x4000, MD4L)
386                    If (And (Local0, 0x20))
387                    {
388                        Store (0x01, MD4W)
389                    }
390                }
391
392                And (\_SB.PCI0.PAM4, 0x03, Local0)
393                If (Local0)
394                {
395                    Store (0x4000, MD8L)
396                    If (And (Local0, 0x02))
397                    {
398                        Store (0x01, MD8W)
399                    }
400                }
401
402                And (\_SB.PCI0.PAM4, 0x30, Local0)
403                If (Local0)
404                {
405                    Store (0x4000, MDCL)
406                    If (And (Local0, 0x20))
407                    {
408                        Store (0x01, MDCW)
409                    }
410                }
411
412                And (\_SB.PCI0.PAM5, 0x03, Local0)
413                If (Local0)
414                {
415                    Store (0x4000, ME0L)
416                    If (And (Local0, 0x02))
417                    {
418                        Store (0x01, ME0W)
419                    }
420                }
421
422                And (\_SB.PCI0.PAM5, 0x30, Local0)
423                If (Local0)
424                {
425                    Store (0x4000, ME4L)
426                    If (And (Local0, 0x20))
427                    {
428                        Store (0x01, ME4W)
429                    }
430                }
431
432                And (\_SB.PCI0.PAM6, 0x03, Local0)
433                If (Local0)
434                {
435                    Store (0x4000, ME8L)
436                    If (And (Local0, 0x02))
437                    {
438                        Store (0x01, ME8W)
439                    }
440                }
441
442                And (\_SB.PCI0.PAM6, 0x30, Local0)
443                If (Local0)
444                {
445                    Store (0x4000, MECL)
446                    If (And (Local0, 0x20))
447                    {
448                        Store (0x01, MECW)
449                    }
450                }
451
452                Subtract (\MEMX, MEB1, MEL1)
453                Return (MEMS)
454            }
455        }
456
457        Device (LID)
458        {
459            Name (_HID, EisaId ("PNP0C0D"))
460            Method (_LID, 0, NotSerialized)
461            {
462                If (\H8DR)
463                {
464                    Return (\_SB.PCI0.ISA.EC.HPLD)
465                }
466                Else
467                {
468                    If (And (\RBEC (0x36), 0x04))
469                    {
470                        Return (0x01)
471                    }
472                    Else
473                    {
474                        Return (0x00)
475                    }
476                }
477            }
478
479            Method (_PRW, 0, NotSerialized)
480            {
481                If (LAnd (\W98F, LNot (\WMEF)))
482                {
483                    Return (Package (0x02)
484                    {
485                        0x0B,
486                        0x04
487                    })
488                }
489                Else
490                {
491                    Return (Package (0x02)
492                    {
493                        0x0B,
494                        0x03
495                    })
496                }
497            }
498
499            Method (_PSW, 1, NotSerialized)
500            {
501                If (\H8DR)
502                {
503                    If (Arg0)
504                    {
505                        Store (One, \_SB.PCI0.ISA.EC.HWLO)
506                    }
507                    Else
508                    {
509                        Store (Zero, \_SB.PCI0.ISA.EC.HWLO)
510                    }
511                }
512                Else
513                {
514                    If (Arg0)
515                    {
516                        \MBEC (0x32, 0xFF, 0x04)
517                    }
518                    Else
519                    {
520                        \MBEC (0x32, 0xFB, 0x00)
521                    }
522                }
523            }
524        }
525
526        Device (SLPB)
527        {
528            Name (_HID, EisaId ("PNP0C0E"))
529            Method (_PRW, 0, NotSerialized)
530            {
531                If (LAnd (\W98F, LNot (\WMEF)))
532                {
533                    Return (Package (0x02)
534                    {
535                        0x0B,
536                        0x04
537                    })
538                }
539                Else
540                {
541                    Return (Package (0x02)
542                    {
543                        0x0B,
544                        0x03
545                    })
546                }
547            }
548
549            Method (_PSW, 1, NotSerialized)
550            {
551                If (\H8DR)
552                {
553                    If (Arg0)
554                    {
555                        Store (0x01, \_SB.PCI0.ISA.EC.HWFN)
556                    }
557                    Else
558                    {
559                        Store (0x00, \_SB.PCI0.ISA.EC.HWFN)
560                    }
561                }
562                Else
563                {
564                    If (Arg0)
565                    {
566                        \MBEC (0x32, 0xFF, 0x10)
567                    }
568                    Else
569                    {
570                        \MBEC (0x32, 0xEF, 0x00)
571                    }
572                }
573            }
574        }
575
576        Device (PCI0)
577        {
578            Name (_ADR, 0x00)
579            Name (_HID, EisaId ("PNP0A03"))
580            OperationRegion (X000, PCI_Config, 0x00, 0x0100)
581            Field (X000, DWordAcc, NoLock, Preserve)
582            {
583                Offset (0x59),
584                PAM0,   8,
585                PAM1,   8,
586                PAM2,   8,
587                PAM3,   8,
588                PAM4,   8,
589                PAM5,   8,
590                PAM6,   8,
591                DRB0,   8,
592                DRB1,   8,
593                DRB2,   8,
594                DRB3,   8,
595                DRB4,   8,
596                DRB5,   8,
597                DRB6,   8,
598                DRB7,   8,
599                Offset (0x7A),
600                CREN,   1,
601                Offset (0x7B)
602            }
603
604            Name (_PRW, Package (0x02)
605            {
606                0x0B,
607                0x04
608            })
609            Method (_PSW, 1, NotSerialized)
610            {
611                EPSW (0x01, Arg0)
612            }
613
614            Name (PMEE, 0x00)
615            Method (EPSW, 2, NotSerialized)
616            {
617                If (Arg1)
618                {
619                    Or (PMEE, Arg0, Local0)
620                }
621                Else
622                {
623                    And (PMEE, Not (Arg0), Local0)
624                }
625
626                Store (Local0, PMEE)
627                If (\H8DR)
628                {
629                    If (Local0)
630                    {
631                        Store (0x01, \_SB.PCI0.ISA.EC.HWPM)
632                    }
633                    Else
634                    {
635                        Store (0x00, \_SB.PCI0.ISA.EC.HWPM)
636                    }
637                }
638                Else
639                {
640                    If (Local0)
641                    {
642                        \MBEC (0x32, 0xFF, 0x01)
643                    }
644                    Else
645                    {
646                        \MBEC (0x32, 0xFE, 0x00)
647                    }
648                }
649
650                If (Local0)
651                {
652                    Store (0x01, \_SB.PCI0.ISA.WOLE)
653                }
654                Else
655                {
656                    Store (0x00, \_SB.PCI0.ISA.WOLE)
657                }
658            }
659
660            Name (_CRS, ResourceTemplate ()
661            {
662                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
663                    0x0000,
664                    0x0000,
665                    0x00FF,
666                    0x0000,
667                    0x0100)
668                IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
669                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
670                    0x0000,
671                    0x0000,
672                    0x0CF7,
673                    0x0000,
674                    0x0CF8)
675                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
676                    0x0000,
677                    0x0D00,
678                    0xFFFF,
679                    0x0000,
680                    0xF300)
681                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
682                    0x00000000,
683                    0x000A0000,
684                    0x000BFFFF,
685                    0x00000000,
686                    0x00020000)
687                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
688                    0x00000000,
689                    0x000C0000,
690                    0x000C3FFF,
691                    0x00000000,
692                    0x00004000)
693                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
694                    0x00000000,
695                    0x000C4000,
696                    0x000C7FFF,
697                    0x00000000,
698                    0x00004000)
699                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
700                    0x00000000,
701                    0x000C8000,
702                    0x000CBFFF,
703                    0x00000000,
704                    0x00004000)
705                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
706                    0x00000000,
707                    0x000CC000,
708                    0x000CFFFF,
709                    0x00000000,
710                    0x00004000)
711                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
712                    0x00000000,
713                    0x000D0000,
714                    0x000D3FFF,
715                    0x00000000,
716                    0x00004000)
717                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
718                    0x00000000,
719                    0x000D4000,
720                    0x000D7FFF,
721                    0x00000000,
722                    0x00004000)
723                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
724                    0x00000000,
725                    0x000D8000,
726                    0x000DBFFF,
727                    0x00000000,
728                    0x00004000)
729                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
730                    0x00000000,
731                    0x000DC000,
732                    0x000DFFFF,
733                    0x00000000,
734                    0x00004000)
735                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
736                    0x00000000,
737                    0x000E0000,
738                    0x000E3FFF,
739                    0x00000000,
740                    0x00004000)
741                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
742                    0x00000000,
743                    0x000E4000,
744                    0x000E7FFF,
745                    0x00000000,
746                    0x00004000)
747                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
748                    0x00000000,
749                    0x000E8000,
750                    0x000EBFFF,
751                    0x00000000,
752                    0x00004000)
753                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
754                    0x00000000,
755                    0x000EC000,
756                    0x000EFFFF,
757                    0x00000000,
758                    0x00004000)
759                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
760                    0x00000000,
761                    0x00100000,
762                    0xFFDFFFFF,
763                    0x00000000,
764                    0xFFD00000)
765            })
766            CreateDWordField (_CRS, 0x68, C0LN)
767            CreateDWordField (_CRS, 0x82, C4LN)
768            CreateDWordField (_CRS, 0x9C, C8LN)
769            CreateDWordField (_CRS, 0xB6, CCLN)
770            CreateDWordField (_CRS, 0xD0, D0LN)
771            CreateDWordField (_CRS, 0xEA, D4LN)
772            CreateDWordField (_CRS, 0x0104, D8LN)
773            CreateDWordField (_CRS, 0x011E, DCLN)
774            CreateDWordField (_CRS, 0x0138, E0LN)
775            CreateDWordField (_CRS, 0x0152, E4LN)
776            CreateDWordField (_CRS, 0x016C, E8LN)
777            CreateDWordField (_CRS, 0x0186, ECLN)
778            CreateDWordField (_CRS, 0x0194, XXMN)
779            CreateDWordField (_CRS, 0x0198, XXMX)
780            CreateDWordField (_CRS, 0x01A0, XXLN)
781            Method (_INI, 0, NotSerialized)
782            {
783                If (LEqual (\SCMP (\_OS, "Microsoft Windows"), Zero))
784                {
785                    Store (One, \W98F)
786                }
787                Else
788                {
789                    If (LEqual (\SCMP (\_OS, "Microsoft Windows NT"), Zero))
790                    {
791                        Store (One, \WNTF)
792                    }
793                    Else
794                    {
795                        If (LEqual (\SCMP (\_OS, "Microsoft WindowsME: Millennium Edition"), Zero))
796                        {
797                            Store (One, \WMEF)
798                            Store (One, \W98F)
799                        }
800                    }
801                }
802
803                Multiply (DRB7, 0x00800000, Local0)
804                Store (Local0, \MEMX)
805                Store (Local0, XXMN)
806                Add (Subtract (XXMX, XXMN), 0x01, XXLN)
807                If (And (PAM1, 0x03))
808                {
809                    Store (0x00, C0LN)
810                }
811
812                If (And (PAM1, 0x30))
813                {
814                    Store (0x00, C4LN)
815                }
816
817                If (And (PAM2, 0x03))
818                {
819                    Store (0x00, C8LN)
820                }
821
822                If (And (PAM2, 0x30))
823                {
824                    Store (0x00, CCLN)
825                }
826
827                If (And (PAM3, 0x03))
828                {
829                    Store (0x00, D0LN)
830                }
831
832                If (And (PAM3, 0x30))
833                {
834                    Store (0x00, D4LN)
835                }
836
837                If (And (PAM4, 0x03))
838                {
839                    Store (0x00, D8LN)
840                }
841
842                If (And (PAM4, 0x30))
843                {
844                    Store (0x00, DCLN)
845                }
846
847                If (And (PAM5, 0x03))
848                {
849                    Store (0x00, E0LN)
850                }
851
852                If (And (PAM5, 0x30))
853                {
854                    Store (0x00, E4LN)
855                }
856
857                If (And (PAM6, 0x03))
858                {
859                    Store (0x00, E8LN)
860                }
861
862                If (And (PAM6, 0x30))
863                {
864                    Store (0x00, ECLN)
865                }
866
867                \_SB.PCI0.ISA.GPPM ()
868                If (\GCHK ())
869                {
870                    Store (0x01, \GVEN)
871                }
872            }
873
874            Name (_PRT, Package (0x07)
875            {
876                Package (0x04)
877                {
878                    0x0001FFFF,
879                    0x00,
880                    \_SB.LNKA,
881                    0x00
882                },
883
884                Package (0x04)
885                {
886                    0x0002FFFF,
887                    0x00,
888                    \_SB.LNKA,
889                    0x00
890                },
891
892                Package (0x04)
893                {
894                    0x0002FFFF,
895                    0x01,
896                    \_SB.LNKB,
897                    0x00
898                },
899
900                Package (0x04)
901                {
902                    0x0003FFFF,
903                    0x00,
904                    \_SB.LNKC,
905                    0x00
906                },
907
908                Package (0x04)
909                {
910                    0x0003FFFF,
911                    0x01,
912                    \_SB.LNKD,
913                    0x00
914                },
915
916                Package (0x04)
917                {
918                    0x0005FFFF,
919                    0x00,
920                    \_SB.LNKA,
921                    0x00
922                },
923
924                Package (0x04)
925                {
926                    0x0007FFFF,
927                    0x03,
928                    \_SB.LNKD,
929                    0x00
930                }
931            })
932            Device (IDE0)
933            {
934                Name (_ADR, 0x00070001)
935                OperationRegion (X140, PCI_Config, 0x40, 0x10)
936                Field (X140, DWordAcc, NoLock, Preserve)
937                {
938                    XPT0,   1,
939                    XPI0,   1,
940                    XPP0,   1,
941                    XPD0,   1,
942                    XPT1,   1,
943                    XPI1,   1,
944                    XPP1,   1,
945                    XPD1,   1,
946                    XPRT,   2,
947                        ,   2,
948                    XPIS,   2,
949                    XPSE,   1,
950                    XPE,    1,
951                    XST0,   1,
952                    XSI0,   1,
953                    XSP0,   1,
954                    XSD0,   1,
955                    XST1,   1,
956                    XSI1,   1,
957                    XSP1,   1,
958                    XSD1,   1,
959                    XSRT,   2,
960                        ,   2,
961                    XSIS,   2,
962                    XSSE,   1,
963                    XSE,    1,
964                    XVRT,   2,
965                    XVIS,   2,
966                    Offset (0x05),
967                    Offset (0x08),
968                    XEP0,   1,
969                    XEP1,   1,
970                    XES0,   1,
971                    XES1,   1,
972                    Offset (0x09),
973                    Offset (0x0A),
974                    XUP0,   2,
975                        ,   2,
976                    XUP1,   2,
977                    Offset (0x0B),
978                    XUS0,   2,
979                        ,   2,
980                    XUS1,   2,
981                    Offset (0x0C)
982                }
983
984                Device (PRIM)
985                {
986                    Name (_ADR, 0x00)
987                    Method (_GTM, 0, NotSerialized)
988                    {
989                        Subtract (0x05, XPIS, Local0)
990                        Subtract (0x04, XPRT, Local1)
991                        Add (Local0, Local1, Local0)
992                        Multiply (0x1E, Local0, Local0)
993                        If (LGreater (Local0, 0xF0))
994                        {
995                            Store (0x0384, Local0)
996                        }
997
998                        If (XEP0)
999                        {
1000                            Store (0x11, Local4)
1001                            If (LEqual (XUP0, 0x00))
1002                            {
1003                                Store (0x78, Local1)
1004                            }
1005                            Else
1006                            {
1007                                If (LEqual (XUP0, 0x01))
1008                                {
1009                                    Store (0x50, Local1)
1010                                }
1011                                Else
1012                                {
1013                                    Store (0x3C, Local1)
1014                                }
1015                            }
1016                        }
1017                        Else
1018                        {
1019                            Store (0x10, Local4)
1020                            Store (Local0, Local1)
1021                        }
1022
1023                        If (XPI0)
1024                        {
1025                            Or (Local4, 0x02, Local4)
1026                        }
1027
1028                        If (XPSE)
1029                        {
1030                            Subtract (0x05, XVIS, Local2)
1031                            Subtract (0x04, XVRT, Local3)
1032                            Add (Local2, Local3, Local2)
1033                            Multiply (0x1E, Local2, Local2)
1034                            If (LGreater (Local2, 0xF0))
1035                            {
1036                                Store (0x0384, Local2)
1037                            }
1038
1039                            If (XEP1)
1040                            {
1041                                Or (Local4, 0x04, Local4)
1042                                If (LEqual (XUP1, 0x00))
1043                                {
1044                                    Store (0x78, Local3)
1045                                }
1046                                Else
1047                                {
1048                                    If (LEqual (XUP1, 0x01))
1049                                    {
1050                                        Store (0x50, Local3)
1051                                    }
1052                                    Else
1053                                    {
1054                                        Store (0x3C, Local3)
1055                                    }
1056                                }
1057                            }
1058                            Else
1059                            {
1060                                Store (Local2, Local3)
1061                            }
1062                        }
1063                        Else
1064                        {
1065                            Store (0x00, Local2)
1066                            Store (0x00, Local3)
1067                        }
1068
1069                        If (XPI1)
1070                        {
1071                            Or (Local4, 0x08, Local4)
1072                        }
1073
1074                        Store (Local0, \GTP0)
1075                        Store (Local1, \GTD0)
1076                        Store (Local2, \GTP1)
1077                        Store (Local3, \GTD1)
1078                        Store (Local4, \GTMF)
1079                        Return (\BGTM)
1080                    }
1081
1082                    Method (_STM, 3, NotSerialized)
1083                    {
1084                        CreateDWordField (Arg0, 0x00, STP0)
1085                        CreateDWordField (Arg0, 0x04, STD0)
1086                        CreateDWordField (Arg0, 0x08, STP1)
1087                        CreateDWordField (Arg0, 0x0C, STD1)
1088                        CreateDWordField (Arg0, 0x10, STMF)
1089                        If (SizeOf (Arg1))
1090                        {
1091                            CreateWordField (Arg1, 0x01, PMZR)
1092                            If (PMZR)
1093                            {
1094                                Store (One, Local5)
1095                            }
1096                            Else
1097                            {
1098                                Store (Zero, Local5)
1099                            }
1100                        }
1101                        Else
1102                        {
1103                            Store (Zero, Local5)
1104                        }
1105
1106                        If (Local5)
1107                        {
1108                            If (\W98F)
1109                            {
1110                                CreateWordField (Arg1, 0x66, PM51)
1111                                CreateWordField (Arg1, 0x6A, PM53)
1112                                CreateWordField (Arg1, 0x7C, PM62)
1113                                CreateWordField (Arg1, 0x7E, PM63)
1114                                CreateWordField (Arg1, 0x80, PM64)
1115                                CreateWordField (Arg1, 0x82, PM65)
1116                                CreateWordField (Arg1, 0x88, PM68)
1117                                CreateWordField (Arg1, 0xB0, PM88)
1118                                Store (\UDMA (PM53, PM88), Local0)
1119                                If (LGreater (Local0, 0x03))
1120                                {
1121                                    Store (0x03, Local0)
1122                                }
1123
1124                                Store (\MDMA (PM53, PM63, PM62, PM65), Local1)
1125                                Store (\MPIO (PM53, PM64, PM51, PM68), Local2)
1126                                Store (\MPI4 (Local1, Local2), Local3)
1127                            }
1128                            Else
1129                            {
1130                                Store (\MPIB (And (STMF, 0x02), STP0), Local2)
1131                                Store (\UDMB (And (STMF, 0x01), STD0), Local0)
1132                                Store (\MP4B (Local2), Local3)
1133                                Store (Local3, Local1)
1134                            }
1135
1136                            Store (\MTIM (Local3, Local2, And (PMZR, 0x80)), Local4)
1137                            If (And (Local4, 0x01))
1138                            {
1139                                Store (One, XPT0)
1140                            }
1141
1142                            If (And (Local4, 0x02))
1143                            {
1144                                Store (One, XPI0)
1145                            }
1146
1147                            If (And (Local4, 0x04))
1148                            {
1149                                Store (One, XPP0)
1150                            }
1151
1152                            If (And (Local4, 0x08))
1153                            {
1154                                Store (One, XPD0)
1155                            }
1156
1157                            Store (\MISP (Local3), XPIS)
1158                            Store (\MRTC (Local3), XPRT)
1159                            If (Local0)
1160                            {
1161                                Store (One, XEP0)
1162                                Store (\MUCT (Local0), XUP0)
1163                            }
1164                            Else
1165                            {
1166                                Store (Zero, XEP0)
1167                                Store (Zero, XUP0)
1168                            }
1169
1170                            Store (\MHDM (Local0, Local1), \HDM0)
1171                            Store (\MHPI (Local2), \HPI0)
1172                        }
1173
1174                        If (SizeOf (Arg2))
1175                        {
1176                            CreateWordField (Arg2, 0x01, PS00)
1177                            If (PS00)
1178                            {
1179                                Store (One, Local5)
1180                            }
1181                            Else
1182                            {
1183                                Store (Zero, Local5)
1184                            }
1185                        }
1186                        Else
1187                        {
1188                            Store (Zero, Local5)
1189                        }
1190
1191                        If (Local5)
1192                        {
1193                            If (\W98F)
1194                            {
1195                                CreateWordField (Arg2, 0x66, PS51)
1196                                CreateWordField (Arg2, 0x6A, PS53)
1197                                CreateWordField (Arg2, 0x7C, PS62)
1198                                CreateWordField (Arg2, 0x7E, PS63)
1199                                CreateWordField (Arg2, 0x80, PS64)
1200                                CreateWordField (Arg2, 0x82, PS65)
1201                                CreateWordField (Arg2, 0x88, PS68)
1202                                CreateWordField (Arg2, 0xB0, PS88)
1203                                Store (\UDMA (PS53, PS88), Local0)
1204                                If (LGreater (Local0, 0x03))
1205                                {
1206                                    Store (0x03, Local0)
1207                                }
1208
1209                                Store (\MDMA (PS53, PS63, PS62, PS65), Local1)
1210                                Store (\MPIO (PS53, PS64, PS51, PS68), Local2)
1211                                Store (\MPI4 (Local1, Local2), Local3)
1212                            }
1213                            Else
1214                            {
1215                                Store (\MPIB (And (STMF, 0x08), STP1), Local2)
1216                                Store (\UDMB (And (STMF, 0x04), STD1), Local0)
1217                                Store (\MP4B (Local2), Local3)
1218                                Store (Local3, Local1)
1219                            }
1220
1221                            Store (One, XPSE)
1222                            Store (\MTIM (Local3, Local2, And (PS00, 0x80)), Local4)
1223                            If (And (Local4, 0x01))
1224                            {
1225                                Store (One, XPT1)
1226                            }
1227
1228                            If (And (Local4, 0x02))
1229                            {
1230                                Store (One, XPI1)
1231                            }
1232
1233                            If (And (Local4, 0x04))
1234                            {
1235                                Store (One, XPP1)
1236                            }
1237
1238                            If (And (Local4, 0x08))
1239                            {
1240                                Store (One, XPD1)
1241                            }
1242
1243                            Store (\MISP (Local3), XVIS)
1244                            Store (\MRTC (Local3), XVRT)
1245                            If (Local0)
1246                            {
1247                                Store (One, XEP1)
1248                                Store (\MUCT (Local0), XUP1)
1249                            }
1250                            Else
1251                            {
1252                                Store (Zero, XEP1)
1253                                Store (Zero, XUP1)
1254                            }
1255
1256                            Store (\MHDM (Local0, Local1), \HDM1)
1257                            Store (\MHDM (Local0, Local1), \CDM1)
1258                            Store (\MHPI (Local2), \HPI1)
1259                            Store (\MHPI (Local2), \CPI1)
1260                        }
1261                    }
1262
1263                    Device (MSTR)
1264                    {
1265                        Name (_ADR, 0x00)
1266                        Method (_GTF, 0, NotSerialized)
1267                        {
1268                            Return (\ICM0)
1269                        }
1270                    }
1271                }
1272
1273                Device (SCND)
1274                {
1275                    Name (_ADR, 0x01)
1276                    Method (_GTM, 0, NotSerialized)
1277                    {
1278                        Subtract (0x05, XSIS, Local0)
1279                        Subtract (0x04, XSRT, Local1)
1280                        Add (Local0, Local1, Local0)
1281                        Multiply (0x1E, Local0, Local0)
1282                        If (LGreater (Local0, 0xF0))
1283                        {
1284                            Store (0x0384, Local0)
1285                        }
1286
1287                        If (XES0)
1288                        {
1289                            Store (0x11, Local2)
1290                            If (LEqual (XUS0, 0x00))
1291                            {
1292                                Store (0x78, Local1)
1293                            }
1294                            Else
1295                            {
1296                                If (LEqual (XUS0, 0x01))
1297                                {
1298                                    Store (0x50, Local1)
1299                                }
1300                                Else
1301                                {
1302                                    Store (0x3C, Local1)
1303                                }
1304                            }
1305                        }
1306                        Else
1307                        {
1308                            Store (0x10, Local2)
1309                            Store (Local0, Local1)
1310                        }
1311
1312                        If (XSI0)
1313                        {
1314                            Or (Local2, 0x02, Local2)
1315                        }
1316
1317                        Store (Local0, \GTP0)
1318                        Store (Local1, \GTD0)
1319                        Store (Zero, \GTP1)
1320                        Store (Zero, \GTD1)
1321                        Store (Local2, \GTMF)
1322                        Return (\BGTM)
1323                    }
1324
1325                    Method (_STM, 3, NotSerialized)
1326                    {
1327                        CreateDWordField (Arg0, 0x00, STP0)
1328                        CreateDWordField (Arg0, 0x04, STD0)
1329                        CreateDWordField (Arg0, 0x08, STP1)
1330                        CreateDWordField (Arg0, 0x0C, STD1)
1331                        CreateDWordField (Arg0, 0x10, STMF)
1332                        If (SizeOf (Arg1))
1333                        {
1334                            CreateWordField (Arg1, 0x01, SM00)
1335                            If (SM00)
1336                            {
1337                                Store (One, Local5)
1338                            }
1339                            Else
1340                            {
1341                                Store (Zero, Local5)
1342                            }
1343                        }
1344                        Else
1345                        {
1346                            Store (Zero, Local5)
1347                        }
1348
1349                        If (Local5)
1350                        {
1351                            If (\W98F)
1352                            {
1353                                CreateWordField (Arg1, 0x66, SM51)
1354                                CreateWordField (Arg1, 0x6A, SM53)
1355                                CreateWordField (Arg1, 0x7C, SM62)
1356                                CreateWordField (Arg1, 0x7E, SM63)
1357                                CreateWordField (Arg1, 0x80, SM64)
1358                                CreateWordField (Arg1, 0x82, SM65)
1359                                CreateWordField (Arg1, 0x88, SM68)
1360                                CreateWordField (Arg1, 0xB0, SM88)
1361                                Store (\UDMA (SM53, SM88), Local0)
1362                                If (LGreater (Local0, 0x03))
1363                                {
1364                                    Store (0x03, Local0)
1365                                }
1366
1367                                Store (\MDMA (SM53, SM63, SM62, SM65), Local1)
1368                                Store (\MPIO (SM53, SM64, SM51, SM68), Local2)
1369                                Store (\MPI4 (Local1, Local2), Local3)
1370                            }
1371                            Else
1372                            {
1373                                Store (\MPIB (And (STMF, 0x02), STP0), Local2)
1374                                Store (\UDMB (And (STMF, 0x01), STD0), Local0)
1375                                Store (\MP4B (Local2), Local3)
1376                                Store (Local3, Local1)
1377                            }
1378
1379                            Store (\MTIM (Local3, Local2, And (SM00, 0x80)), Local4)
1380                            If (And (Local4, 0x01))
1381                            {
1382                                Store (One, XST0)
1383                            }
1384
1385                            If (And (Local4, 0x02))
1386                            {
1387                                Store (One, XSI0)
1388                            }
1389
1390                            If (And (Local4, 0x04))
1391                            {
1392                                Store (One, XSP0)
1393                            }
1394
1395                            If (And (Local4, 0x08))
1396                            {
1397                                Store (One, XSD0)
1398                            }
1399
1400                            Store (\MISP (Local3), XSIS)
1401                            Store (\MRTC (Local3), XSRT)
1402                            If (Local0)
1403                            {
1404                                Store (One, XES0)
1405                                Store (\MUCT (Local0), XUS0)
1406                            }
1407                            Else
1408                            {
1409                                Store (Zero, XES0)
1410                                Store (Zero, XUS0)
1411                            }
1412
1413                            Store (\MHDM (Local0, Local1), \HDM2)
1414                            Store (\MHDM (Local0, Local1), \CDM2)
1415                            Store (\MHPI (Local2), \HPI2)
1416                            Store (\MHPI (Local2), \CPI2)
1417                            Store (MHDM (Local0, Local1), \DDM2)
1418                            Store (MHPI (Local2), \DPI2)
1419                        }
1420                    }
1421
1422                    Device (MSTR)
1423                    {
1424                        Name (_ADR, 0x00)
1425                        Method (_GTF, 0, NotSerialized)
1426                        {
1427                            Store (\_SB.PCI0.ISA.EC.GUID (), Local0)
1428                            If (LEqual (Local0, 0x06))
1429                            {
1430                                Return (\ICM2)
1431                            }
1432
1433                            Store (Zero, Local1)
1434                            If (LEqual (Local0, 0x0B))
1435                            {
1436                                Store (One, Local1)
1437                            }
1438
1439                            If (LEqual (Local0, 0x03))
1440                            {
1441                                Store (One, Local1)
1442                            }
1443
1444                            If (LEqual (Local0, 0x0A))
1445                            {
1446                                Store (One, Local1)
1447                            }
1448
1449                            If (Local1)
1450                            {
1451                                Store (\GCDT (0x00), \DTF2)
1452                                Store (\GCDT (0x01), \DTA2)
1453                                Return (\DCM2)
1454                            }
1455                            Else
1456                            {
1457                                Return (\ICC2)
1458                            }
1459                        }
1460                    }
1461                }
1462            }
1463
1464            Device (PM00)
1465            {
1466                Name (_ADR, 0x00070003)
1467                OperationRegion (X3DR, PCI_Config, 0x5C, 0x20)
1468                Field (X3DR, DWordAcc, NoLock, Preserve)
1469                {
1470                        ,   1,
1471                        ,   2,
1472                        ,   1,
1473                        ,   1,
1474                        ,   2,
1475                    Offset (0x01),
1476                        ,   2,
1477                        ,   15,
1478                        ,   1,
1479                        ,   3,
1480                    XA0E,   1,
1481                    XM0E,   1,
1482                    XPE,    1,
1483                    X09A,   16,
1484                    X09M,   4,
1485                        ,   1,
1486                    X09E,   3,
1487                        ,   1,
1488                    XPA,    2,
1489                        ,   1,
1490                    XFA,    1,
1491                    XFE,    1,
1492                        ,   1,
1493                    Offset (0x08),
1494                    Offset (0x0B),
1495                    XU1A,   3,
1496                    XU1E,   1,
1497                    XU2A,   3,
1498                    XU2E,   1,
1499                    X12A,   16,
1500                    X12M,   4,
1501                    X12E,   1,
1502                    Offset (0x0F),
1503                    Offset (0x10),
1504                    X12O,   32,
1505                    X13A,   16,
1506                    X13M,   4,
1507                    X13E,   1,
1508                    Offset (0x17),
1509                    Offset (0x18),
1510                    X13O,   32,
1511                    Offset (0x20)
1512                }
1513
1514                OperationRegion (SMBC, PCI_Config, 0xD2, 0x01)
1515                Field (SMBC, ByteAcc, NoLock, Preserve)
1516                {
1517                    SBHE,   1,
1518                    SBIS,   3
1519                }
1520
1521                OperationRegion (GLEN, SystemIO, 0x1020, 0x02)
1522                Field (GLEN, WordAcc, NoLock, Preserve)
1523                {
1524                        ,   15,
1525                    BLEN,   1
1526                }
1527            }
1528
1529            Device (USB)
1530            {
1531                Name (_ADR, 0x00070002)
1532                Method (_PSW, 1, NotSerialized)
1533                {
1534                    Noop
1535                }
1536
1537                Name (_PRW, Package (0x02)
1538                {
1539                    0x08,
1540                    0x01
1541                })
1542            }
1543
1544            Device (AGP)
1545            {
1546                Name (_ADR, 0x00010000)
1547                Name (_PRT, Package (0x02)
1548                {
1549                    Package (0x04)
1550                    {
1551                        0xFFFF,
1552                        0x00,
1553                        \_SB.LNKA,
1554                        0x00
1555                    },
1556
1557                    Package (0x04)
1558                    {
1559                        0xFFFF,
1560                        0x01,
1561                        \_SB.LNKB,
1562                        0x00
1563                    }
1564                })
1565                Name (EDX1, Buffer (0x80)
1566                {
1567                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
1568                    0x24, 0x4D, 0x55, 0x0A, 0x01, 0x01, 0x01, 0x01,
1569                    0x23, 0x09, 0x01, 0x02, 0x80, 0x21, 0x18, 0x00,
1570                    0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27,
1571                    0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x00, 0x00,
1572                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1573                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x19,
1574                    0x00, 0x40, 0x41, 0x00, 0x26, 0x30, 0x18, 0x88,
1575                    0x36, 0x00, 0x0E, 0xCB, 0x10, 0x00, 0x00, 0x1A,
1576                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69,
1577                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43,
1578                    0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31,
1579                    0x30, 0x32, 0x34, 0x78, 0x37, 0x36, 0x38, 0x20,
1580                    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00,
1581                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1582                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33
1583                })
1584                Name (EDX2, Buffer (0x0100)
1585                {
1586                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
1587                    0x24, 0x4D, 0x55, 0x0A, 0x01, 0x01, 0x01, 0x01,
1588                    0x23, 0x09, 0x01, 0x02, 0x80, 0x21, 0x18, 0x00,
1589                    0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27,
1590                    0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x00, 0x00,
1591                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1592                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x19,
1593                    0x00, 0x40, 0x41, 0x00, 0x26, 0x30, 0x18, 0x88,
1594                    0x36, 0x00, 0x0E, 0xCB, 0x10, 0x00, 0x00, 0x1A,
1595                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69,
1596                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43,
1597                    0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31,
1598                    0x30, 0x32, 0x34, 0x78, 0x37, 0x36, 0x38, 0x20,
1599                    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00,
1600                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1601                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33,
1602                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1603                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1604                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1605                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1606                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1607                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1608                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1609                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1610                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1611                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1612                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1613                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1614                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1615                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1616                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1617                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1618                })
1619                Name (EDT1, Buffer (0x80)
1620                {
1621                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
1622                    0xC1, 0xD0, 0xFE, 0x09, 0x01, 0x01, 0x01, 0x01,
1623                    0x23, 0x09, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00,
1624                    0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1625                    0x00, 0x00, 0x00, 0xA1, 0x08, 0x00, 0x00, 0x00,
1626                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1627                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1628                    0x00, 0x00, 0x31, 0x58, 0x1C, 0x20, 0x28, 0x80,
1629                    0x01, 0x00, 0xF6, 0xB8, 0x00, 0x00, 0x00, 0x1A,
1630                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69,
1631                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x54, 0x56,
1632                    0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1633                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1634                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1635                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1636                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59
1637                })
1638                Name (EDT2, Buffer (0x0100)
1639                {
1640                    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
1641                    0xC1, 0xD0, 0xFE, 0x09, 0x01, 0x01, 0x01, 0x01,
1642                    0x23, 0x09, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00,
1643                    0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1644                    0x00, 0x00, 0x00, 0xA1, 0x08, 0x00, 0x00, 0x00,
1645                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1646                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1647                    0x00, 0x00, 0x31, 0x58, 0x1C, 0x20, 0x28, 0x80,
1648                    0x01, 0x00, 0xF6, 0xB8, 0x00, 0x00, 0x00, 0x1A,
1649                    0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69,
1650                    0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x54, 0x56,
1651                    0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1652                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1653                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1654                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1655                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59,
1656                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1657                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1658                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1659                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1660                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1661                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1662                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1663                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1664                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1665                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1666                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1667                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1668                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1669                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1670                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1671                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1672                })
1673                Mutex (MDGS, 0x07)
1674                Name (VDEE, 0x01)
1675                Name (VDDA, Buffer (0x02) {})
1676                CreateBitField (VDDA, 0x00, VUPC)
1677                CreateBitField (VDDA, 0x01, VQDL)
1678                CreateBitField (VDDA, 0x02, VQDC)
1679                CreateBitField (VDDA, 0x03, VQDT)
1680                CreateBitField (VDDA, 0x04, VQDD)
1681                CreateBitField (VDDA, 0x05, VSDL)
1682                CreateBitField (VDDA, 0x06, VSDC)
1683                CreateBitField (VDDA, 0x07, VSDT)
1684                CreateBitField (VDDA, 0x08, VSDD)
1685                CreateBitField (VDDA, 0x0A, MSWT)
1686                CreateBitField (VDDA, 0x0B, VWST)
1687                CreateBitField (VDDA, 0x0D, VPWR)
1688                Device (VID)
1689                {
1690                    Name (_ADR, 0x00)
1691                    Name (_S1D, 0x01)
1692                    Name (_S3D, 0x03)
1693                    Method (_INI, 0, NotSerialized)
1694                    {
1695                        \VUPS (0x02)
1696                        Store (\VCDL, VQDL)
1697                        Store (\VCDC, VQDC)
1698                        Store (\VCDT, VQDT)
1699                        Store (\VCDD, VQDD)
1700                    }
1701
1702                    Method (_PS0, 0, NotSerialized)
1703                    {
1704                        Store (0x01, VPWR)
1705                    }
1706
1707                    Method (_PS1, 0, NotSerialized)
1708                    {
1709                        Store (0x00, VPWR)
1710                    }
1711
1712                    Method (_PS2, 0, NotSerialized)
1713                    {
1714                        Store (0x00, VPWR)
1715                    }
1716
1717                    Method (_PS3, 0, NotSerialized)
1718                    {
1719                        Store (0x00, VPWR)
1720                    }
1721
1722                    Method (VSWT, 0, NotSerialized)
1723                    {
1724                        \VUPS (0x80)
1725                        If (LNot (\VCIN))
1726                        {
1727                            Store (0x01, Local0)
1728                            Store (0x00, Local2)
1729                            If (\VCDT)
1730                            {
1731                                Or (0x04, Local2, Local2)
1732                            }
1733
1734                            If (\VCDL)
1735                            {
1736                                Add (0x01, Local0, Local0)
1737                            }
1738
1739                            If (\VCDC)
1740                            {
1741                                Add (0x02, Local0, Local0)
1742                            }
1743
1744                            If (LEqual (0x04, Local0))
1745                            {
1746                                Store (0x01, Local1)
1747                            }
1748                            Else
1749                            {
1750                                Store (Local0, Local1)
1751                            }
1752
1753                            Or (Local2, Local1, Local1)
1754                            ASWT (Local1, 0x01)
1755                        }
1756                    }
1757
1758                    Method (VLOC, 1, NotSerialized)
1759                    {
1760                        If (VPWR)
1761                        {
1762                            If (Arg0)
1763                            {
1764                                \VUPS (0x81)
1765                                If (LNot (VCSS))
1766                                {
1767                                    If (LNot (\VCDL))
1768                                    {
1769                                        ASWT (0x01, 0x00)
1770                                        \VNRS (0x01)
1771                                    }
1772                                }
1773                            }
1774                        }
1775                    }
1776
1777                    Method (_DOS, 1, NotSerialized)
1778                    {
1779                        If (LEqual (Arg0, 0x02))
1780                        {
1781                            Store (0x01, Local0)
1782                            While (Local0)
1783                            {
1784                                Acquire (MDGS, 0xFFFF)
1785                                If (LEqual (0x00, MSWT))
1786                                {
1787                                    Store (0x01, MSWT)
1788                                    Store (0x00, Local0)
1789                                    Store (Arg0, VDEE)
1790                                }
1791
1792                                Release (MDGS)
1793                                Sleep (0x01)
1794                            }
1795                        }
1796                        Else
1797                        {
1798                            Acquire (MDGS, 0xFFFF)
1799                            If (LEqual (VDEE, 0x02))
1800                            {
1801                                Store (0x00, MSWT)
1802                            }
1803
1804                            If (LGreater (Arg0, 0x02))
1805                            {
1806                                Store (0x01, VDEE)
1807                            }
1808                            Else
1809                            {
1810                                Store (Arg0, VDEE)
1811                            }
1812
1813                            Release (MDGS)
1814                        }
1815                    }
1816
1817                    Method (_DOD, 0, NotSerialized)
1818                    {
1819                        Return (Package (0x03)
1820                        {
1821                            0x00010110,
1822                            0x00010100,
1823                            0x00010200
1824                        })
1825                    }
1826
1827                    Method (ASWT, 2, NotSerialized)
1828                    {
1829                        If (LEqual (0x01, VDEE))
1830                        {
1831                            \VSDS (Arg0, 0x01)
1832                        }
1833                        Else
1834                        {
1835                            Store (0x01, Local0)
1836                            While (Local0)
1837                            {
1838                                Acquire (MDGS, 0xFFFF)
1839                                If (LEqual (0x00, MSWT))
1840                                {
1841                                    Store (0x00, Local0)
1842                                    If (And (0x01, Arg1))
1843                                    {
1844                                        Store (0x01, VUPC)
1845                                    }
1846                                    Else
1847                                    {
1848                                        Store (0x00, VUPC)
1849                                    }
1850
1851                                    If (And (0x01, Arg0))
1852                                    {
1853                                        Store (0x01, VQDL)
1854                                    }
1855                                    Else
1856                                    {
1857                                        Store (0x00, VQDL)
1858                                    }
1859
1860                                    If (And (0x02, Arg0))
1861                                    {
1862                                        Store (0x01, VQDC)
1863                                    }
1864                                    Else
1865                                    {
1866                                        Store (0x00, VQDC)
1867                                    }
1868
1869                                    If (And (0x04, Arg0))
1870                                    {
1871                                        Store (0x01, VQDT)
1872                                    }
1873                                    Else
1874                                    {
1875                                        Store (0x00, VQDT)
1876                                    }
1877                                }
1878
1879                                Release (MDGS)
1880                                Sleep (0x01)
1881                            }
1882
1883                            If (And (0x02, Arg1))
1884                            {
1885                                Notify (\_SB.PCI0.AGP.VID, 0x81)
1886                            }
1887                            Else
1888                            {
1889                                Notify (\_SB.PCI0.AGP.VID, 0x80)
1890                            }
1891                        }
1892                    }
1893
1894                    Method (VDSW, 1, NotSerialized)
1895                    {
1896                        If (LNot (Arg0))
1897                        {
1898                            ASWT (0x01, 0x00)
1899                            \VNRS (0x05)
1900                        }
1901                    }
1902
1903                    Device (LCD0)
1904                    {
1905                        Name (_ADR, 0x0110)
1906                        Method (_DCS, 0, NotSerialized)
1907                        {
1908                            \VUPS (0x00)
1909                            If (\VCDL)
1910                            {
1911                                Return (0x1F)
1912                            }
1913                            Else
1914                            {
1915                                Return (0x1D)
1916                            }
1917                        }
1918
1919                        Method (_DDC, 1, NotSerialized)
1920                        {
1921                            If (LEqual (\VLID, 0x02))
1922                            {
1923                                If (LEqual (Arg0, 0x01))
1924                                {
1925                                    Return (EDX1)
1926                                }
1927                                Else
1928                                {
1929                                    If (LEqual (Arg0, 0x02))
1930                                    {
1931                                        Return (EDX2)
1932                                    }
1933                                }
1934                            }
1935                        }
1936
1937                        Method (_DGS, 0, NotSerialized)
1938                        {
1939                            Return (VQDL)
1940                        }
1941
1942                        Method (_DSS, 1, NotSerialized)
1943                        {
1944                            And (Arg0, 0x01, VSDL)
1945                            If (And (Arg0, 0x80000000))
1946                            {
1947                                If (And (Arg0, 0x40000000))
1948                                {
1949                                    DSWT (0x02)
1950                                }
1951                                Else
1952                                {
1953                                    DSWT (0x01)
1954                                }
1955                            }
1956                        }
1957                    }
1958
1959                    Device (CRT0)
1960                    {
1961                        Name (_ADR, 0x0100)
1962                        Method (_DCS, 0, NotSerialized)
1963                        {
1964                            \VUPS (0x01)
1965                            If (\VCSS)
1966                            {
1967                                If (\VCDC)
1968                                {
1969                                    Return (0x1F)
1970                                }
1971                                Else
1972                                {
1973                                    Return (0x1D)
1974                                }
1975                            }
1976                            Else
1977                            {
1978                                If (\VCDC)
1979                                {
1980                                    Return (0x0F)
1981                                }
1982                                Else
1983                                {
1984                                    Return (0x0D)
1985                                }
1986                            }
1987                        }
1988
1989                        Method (_DDC, 1, NotSerialized)
1990                        {
1991                            \VDDC ()
1992                            If (LEqual (Arg0, 0x01))
1993                            {
1994                                Return (\DDC1)
1995                            }
1996                            Else
1997                            {
1998                                If (LEqual (Arg0, 0x02))
1999                                {
2000                                    Return (\DDC2)
2001                                }
2002                                Else
2003                                {
2004                                    Return (0x00)
2005                                }
2006                            }
2007                        }
2008
2009                        Method (_DGS, 0, NotSerialized)
2010                        {
2011                            Return (VQDC)
2012                        }
2013
2014                        Method (_DSS, 1, NotSerialized)
2015                        {
2016                            And (Arg0, 0x01, VSDC)
2017                            If (And (Arg0, 0x80000000))
2018                            {
2019                                If (And (Arg0, 0x40000000))
2020                                {
2021                                    DSWT (0x02)
2022                                }
2023                                Else
2024                                {
2025                                    DSWT (0x01)
2026                                }
2027                            }
2028                        }
2029                    }
2030
2031                    Device (TV0)
2032                    {
2033                        Name (_ADR, 0x0200)
2034                        Method (_DCS, 0, NotSerialized)
2035                        {
2036                            \VUPS (0x00)
2037                            If (\VCDT)
2038                            {
2039                                Return (0x1F)
2040                            }
2041                            Else
2042                            {
2043                                Return (0x1D)
2044                            }
2045                        }
2046
2047                        Method (_DDC, 1, NotSerialized)
2048                        {
2049                            If (LEqual (Arg0, 0x01))
2050                            {
2051                                Return (EDT1)
2052                            }
2053                            Else
2054                            {
2055                                If (LEqual (Arg0, 0x02))
2056                                {
2057                                    Return (EDT2)
2058                                }
2059                            }
2060                        }
2061
2062                        Method (_DGS, 0, NotSerialized)
2063                        {
2064                            Return (VQDT)
2065                        }
2066
2067                        Method (_DSS, 1, NotSerialized)
2068                        {
2069                            And (Arg0, 0x01, VSDT)
2070                            If (And (Arg0, 0x80000000))
2071                            {
2072                                If (And (Arg0, 0x40000000))
2073                                {
2074                                    DSWT (0x02)
2075                                }
2076                                Else
2077                                {
2078                                    DSWT (0x01)
2079                                }
2080                            }
2081                        }
2082                    }
2083
2084                    Method (DSWT, 1, NotSerialized)
2085                    {
2086                        If (VSDL)
2087                        {
2088                            Store (0x01, Local0)
2089                        }
2090                        Else
2091                        {
2092                            Store (0x00, Local0)
2093                        }
2094
2095                        If (VSDC)
2096                        {
2097                            Or (0x02, Local0, Local0)
2098                        }
2099
2100                        If (Local0)
2101                        {
2102                            If (VUPC)
2103                            {
2104                                \VSDS (Local0, Arg0)
2105                            }
2106                        }
2107                        Else
2108                        {
2109                            Noop
2110                        }
2111                    }
2112                }
2113            }
2114
2115            Device (ISA)
2116            {
2117                Name (_ADR, 0x00070000)
2118                OperationRegion (PIRQ, PCI_Config, 0x60, 0x60)
2119                Field (PIRQ, AnyAcc, NoLock, Preserve)
2120                {
2121                    PIRA,   8,
2122                    PIRB,   8,
2123                    PIRC,   8,
2124                    PIRD,   8,
2125                    SIRQ,   8,
2126                    Offset (0x16),
2127                    CH00,   3,
2128                        ,   4,
2129                    FE00,   1,
2130                    CH01,   3,
2131                        ,   4,
2132                    FE01,   1,
2133                    Offset (0x22),
2134                    P21E,   3,
2135                    Offset (0x23),
2136                    Offset (0x50),
2137                        ,   1,
2138                        ,   1,
2139                        ,   1,
2140                        ,   1,
2141                    GCR4,   1,
2142                        ,   1,
2143                        ,   1,
2144                    Offset (0x51),
2145                        ,   1,
2146                        ,   1,
2147                        ,   1,
2148                        ,   1,
2149                    GCRC,   1,
2150                        ,   1,
2151                        ,   1,
2152                    Offset (0x52),
2153                        ,   1,
2154                        ,   1,
2155                        ,   1,
2156                        ,   1,
2157                        ,   1,
2158                        ,   1,
2159                    SUS2,   1,
2160                    Offset (0x54),
2161                    Offset (0x60)
2162                }
2163
2164                Device (SIO)
2165                {
2166                    Name (_HID, EisaId ("PNP0C02"))
2167                    Name (_UID, 0x00)
2168                    Name (_STA, 0x0B)
2169                    Name (_CRS, ResourceTemplate ()
2170                    {
2171                        IO (Decode16, 0x0022, 0x0022, 0x01, 0x01)
2172                        IO (Decode16, 0x0092, 0x0092, 0x01, 0x01)
2173                        IO (Decode16, 0x00B2, 0x00B2, 0x01, 0x02)
2174                        IO (Decode16, 0x1000, 0x1000, 0x01, 0x40)
2175                        IO (Decode16, 0x1040, 0x1040, 0x01, 0x10)
2176                        IO (Decode16, 0xFE00, 0xFE00, 0x01, 0x10)
2177                    })
2178                }
2179
2180                Device (PIC)
2181                {
2182                    Name (_HID, EisaId ("PNP0000"))
2183                    Name (_CRS, ResourceTemplate ()
2184                    {
2185                        IO (Decode16, 0x0020, 0x0020, 0x01, 0x02)
2186                        IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02)
2187                        IO (Decode16, 0x04D0, 0x04D0, 0x01, 0x02)
2188                        IRQNoFlags () {2}
2189                    })
2190                }
2191
2192                Device (TIMR)
2193                {
2194                    Name (_HID, EisaId ("PNP0100"))
2195                    Name (_CRS, ResourceTemplate ()
2196                    {
2197                        IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
2198                        IRQNoFlags () {0}
2199                    })
2200                }
2201
2202                Device (DMAC)
2203                {
2204                    Name (_HID, EisaId ("PNP0200"))
2205                    Name (_CRS, ResourceTemplate ()
2206                    {
2207                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x10)
2208                        IO (Decode16, 0x0080, 0x0080, 0x01, 0x10)
2209                        IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
2210                        DMA (Compatibility, BusMaster, Transfer8) {4}
2211                    })
2212                }
2213
2214                Device (SPKR)
2215                {
2216                    Name (_HID, EisaId ("PNP0800"))
2217                    Name (_CRS, ResourceTemplate ()
2218                    {
2219                        IO (Decode16, 0x0061, 0x0061, 0x01, 0x01)
2220                    })
2221                }
2222
2223                Device (FPU)
2224                {
2225                    Name (_HID, EisaId ("PNP0C04"))
2226                    Name (_CRS, ResourceTemplate ()
2227                    {
2228                        IO (Decode16, 0x00F0, 0x00F0, 0x01, 0x10)
2229                        IRQNoFlags () {13}
2230                    })
2231                }
2232
2233                Device (RTC)
2234                {
2235                    Name (_HID, EisaId ("PNP0B00"))
2236                    Name (_CRS, ResourceTemplate ()
2237                    {
2238                        IO (Decode16, 0x0070, 0x0070, 0x01, 0x04)
2239                        IRQNoFlags () {8}
2240                    })
2241                }
2242
2243                Device (KBD)
2244                {
2245                    Name (_HID, EisaId ("PNP0303"))
2246                    Name (_CRS, ResourceTemplate ()
2247                    {
2248                        IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
2249                        IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
2250                        IRQNoFlags () {1}
2251                    })
2252                }
2253
2254                Device (MOU)
2255                {
2256                    Name (_HID, EisaId ("IBM3780"))
2257                    Name (_CID, 0x130FD041)
2258                    Name (_CRS, ResourceTemplate ()
2259                    {
2260                        IRQNoFlags () {12}
2261                    })
2262                }
2263
2264                Device (PMGA)
2265                {
2266                    Name (_HID, EisaId ("PNP0C02"))
2267                    Name (_UID, 0x02)
2268                    Name (_STA, 0x0B)
2269                    Name (_CRS, ResourceTemplate ()
2270                    {
2271                        IO (Decode16, 0x15E0, 0x15E0, 0x01, 0x10)
2272                    })
2273                }
2274
2275                OperationRegion (IMGA, SystemIO, 0x15EC, 0x04)
2276                Field (IMGA, ByteAcc, NoLock, Preserve)
2277                {
2278                    IND0,   8,
2279                    DAT0,   8,
2280                    IND1,   8,
2281                    DAT1,   8
2282                }
2283
2284                IndexField (IND0, DAT0, ByteAcc, NoLock, Preserve)
2285                {
2286                    Offset (0x7F),
2287                    ACI,    8
2288                }
2289
2290                IndexField (IND1, DAT1, ByteAcc, NoLock, Preserve)
2291                {
2292                        ,   4,
2293                    VDPW,   1,
2294                    CBPW,   1,
2295                    BREN,   1,
2296                    Offset (0x01),
2297                    Offset (0x07),
2298                        ,   2,
2299                    SSBY,   1,
2300                    Offset (0x08),
2301                    Offset (0x21),
2302                        ,   1,
2303                        ,   1,
2304                    BTON,   1,
2305                        ,   1,
2306                    Offset (0x22),
2307                    Offset (0x2D),
2308                    BUSC,   1,
2309                    BUSD,   1,
2310                    SCIS,   1,
2311                    SCIR,   2,
2312                    SLCK,   1,
2313                    WOLE,   1,
2314                    Offset (0x2E)
2315                }
2316
2317                Method (HBEN, 0, NotSerialized)
2318                {
2319                    If (\GLPW ())
2320                    {
2321                        Store (0x01, BREN)
2322                    }
2323                }
2324
2325                Method (HBDS, 0, NotSerialized)
2326                {
2327                    If (\GLPW ())
2328                    {
2329                        Store (0x00, BREN)
2330                    }
2331                }
2332
2333                PowerResource (PSER, 0x00, 0x0000)
2334                {
2335                    Method (_STA, 0, NotSerialized)
2336                    {
2337                        Return (XOr (SSBY, 0x01))
2338                    }
2339
2340                    Method (_ON, 0, NotSerialized)
2341                    {
2342                        Store (0x00, SSBY)
2343                    }
2344
2345                    Method (_OFF, 0, NotSerialized)
2346                    {
2347                        Store (0x01, SSBY)
2348                    }
2349                }
2350
2351                Device (SPIO)
2352                {
2353                    Name (_HID, EisaId ("PNP0C02"))
2354                    Name (_UID, 0x01)
2355                    Name (_STA, 0x0B)
2356                    Name (_CRS, ResourceTemplate ()
2357                    {
2358                        IO (Decode16, 0x002E, 0x002E, 0x01, 0x02)
2359                    })
2360                }
2361
2362                OperationRegion (NCFG, SystemIO, 0x2E, 0x02)
2363                Field (NCFG, ByteAcc, NoLock, Preserve)
2364                {
2365                    INDX,   8,
2366                    DATA,   8
2367                }
2368
2369                IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
2370                {
2371                    FER,    8,
2372                    FAR,    8,
2373                    PTR,    8,
2374                    FCR,    8,
2375                    PCR,    8,
2376                    Offset (0x06),
2377                    PMC,    8,
2378                    TUP,    8,
2379                    SID,    8,
2380                    ASC,    8,
2381                    S0LA,   8,
2382                    S0CF,   8,
2383                    S1LA,   8,
2384                    S1CF,   8,
2385                    Offset (0x10),
2386                    S0HA,   8,
2387                    S1HA,   8,
2388                    SCF0,   8,
2389                    Offset (0x18),
2390                    SCF1,   8,
2391                    Offset (0x1B),
2392                    PNP0,   8,
2393                    PNP1,   8,
2394                    Offset (0x40),
2395                    SCF2,   8,
2396                    PNP2,   8,
2397                    PBAL,   8,
2398                    PBAH,   8,
2399                    U1AL,   8,
2400                    U1AH,   8,
2401                    U2AL,   8,
2402                    U2AH,   8,
2403                    FBAL,   8,
2404                    FBAH,   8,
2405                    SBAL,   8,
2406                    SBAH,   8,
2407                    IRQ1,   8,
2408                    IRQ2,   8,
2409                    IRQ3,   8,
2410                    PNP3,   8,
2411                    SCF3,   8,
2412                    CLK,    8
2413                }
2414
2415                PowerResource (PSIO, 0x00, 0x0000)
2416                {
2417                    Name (PSTS, 0x01)
2418                    Method (_STA, 0, NotSerialized)
2419                    {
2420                        Return (PSTS)
2421                    }
2422
2423                    Method (_ON, 0, NotSerialized)
2424                    {
2425                        And (PTR, 0xFE, PTR)
2426                        Store (0x01, PSTS)
2427                    }
2428
2429                    Method (_OFF, 0, NotSerialized)
2430                    {
2431                        Store (0x00, PSTS)
2432                    }
2433                }
2434
2435                Device (FDC)
2436                {
2437                    Name (_HID, EisaId ("PNP0700"))
2438                    Name (_PR0, Package (0x01)
2439                    {
2440                        PSIO
2441                    })
2442                    Method (_STA, 0, NotSerialized)
2443                    {
2444                        Store (\_SB.PCI0.PM00.XFE, Local0)
2445                        If (Local0)
2446                        {
2447                            Return (0x0F)
2448                        }
2449                        Else
2450                        {
2451                            Return (0x0D)
2452                        }
2453                    }
2454
2455                    Method (_DIS, 0, NotSerialized)
2456                    {
2457                        And (PNP2, 0x80, PNP2)
2458                        Store (Zero, \_SB.PCI0.PM00.XFE)
2459                    }
2460
2461                    Name (_CRS, ResourceTemplate ()
2462                    {
2463                        IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
2464                        IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
2465                        IRQNoFlags () {6}
2466                        DMA (Compatibility, NotBusMaster, Transfer8) {2}
2467                    })
2468                    Name (_PRS, ResourceTemplate ()
2469                    {
2470                        IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
2471                        IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
2472                        IRQNoFlags () {6}
2473                        DMA (Compatibility, NotBusMaster, Transfer8) {2}
2474                    })
2475                    Method (_SRS, 1, NotSerialized)
2476                    {
2477                        And (FBAL, 0x01, Local0)
2478                        Or (Local0, 0xFC, FBAL)
2479                        And (FBAH, 0x03, FBAH)
2480                        And (PNP2, 0x80, Local0)
2481                        Or (Local0, 0x36, PNP2)
2482                        If (And (FER, 0x08, Local1)) {}
2483                        Else
2484                        {
2485                            Or (FER, 0x08, FER)
2486                        }
2487
2488                        Store (Zero, \_SB.PCI0.PM00.XFA)
2489                        Store (One, \_SB.PCI0.PM00.XFE)
2490                        If (LEqual (\_SB.PCI0.ISA.EC.BDEV, 0x0D))
2491                        {
2492                            \SFDD (0x00)
2493                        }
2494                        Else
2495                        {
2496                            \SFDD (0x01)
2497                        }
2498                    }
2499                }
2500
2501                Device (UART)
2502                {
2503                    Name (_HID, EisaId ("PNP0501"))
2504                    Name (_EJD, "_SB.PCI0.DOCK")
2505                    Name (_PR0, Package (0x02)
2506                    {
2507                        PSIO,
2508                        PSER
2509                    })
2510                    Name (_PRW, Package (0x02)
2511                    {
2512                        0x0B,
2513                        0x03
2514                    })
2515                    Method (_PSW, 1, NotSerialized)
2516                    {
2517                        If (\H8DR)
2518                        {
2519                            If (Arg0)
2520                            {
2521                                Store (0x01, \_SB.PCI0.ISA.EC.HWRI)
2522                            }
2523                            Else
2524                            {
2525                                Store (0x00, \_SB.PCI0.ISA.EC.HWRI)
2526                            }
2527                        }
2528                        Else
2529                        {
2530                            If (Arg0)
2531                            {
2532                                \MBEC (0x32, 0xFF, 0x40)
2533                            }
2534                            Else
2535                            {
2536                                \MBEC (0x32, 0xBF, 0x00)
2537                            }
2538                        }
2539                    }
2540
2541                    Method (_STA, 0, NotSerialized)
2542                    {
2543                        If (And (FER, 0x02))
2544                        {
2545                            Return (0x0F)
2546                        }
2547                        Else
2548                        {
2549                            Return (0x0D)
2550                        }
2551                    }
2552
2553                    Method (_DIS, 0, NotSerialized)
2554                    {
2555                        And (FER, 0xFD, FER)
2556                        Store (Zero, \_SB.PCI0.PM00.XU1E)
2557                    }
2558
2559                    Method (_CRS, 0, NotSerialized)
2560                    {
2561                        Name (BUFF, ResourceTemplate ()
2562                        {
2563                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
2564                            IRQNoFlags () {4}
2565                        })
2566                        CreateWordField (BUFF, 0x02, U1MN)
2567                        CreateWordField (BUFF, 0x04, U1MX)
2568                        CreateWordField (BUFF, 0x09, U1IQ)
2569                        ShiftLeft (And (U1AL, 0xFE), 0x02, Local0)
2570                        Store (Local0, U1MN)
2571                        Store (Local0, U1MX)
2572                        If (And (PNP1, 0x01))
2573                        {
2574                            Store (0x08, U1IQ)
2575                        }
2576
2577                        Return (BUFF)
2578                    }
2579
2580                    Name (_PRS, ResourceTemplate ()
2581                    {
2582                        StartDependentFn (0x00, 0x00)
2583                        {
2584                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
2585                            IRQNoFlags () {4}
2586                        }
2587                        StartDependentFn (0x01, 0x00)
2588                        {
2589                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
2590                            IRQNoFlags () {3}
2591                        }
2592                        StartDependentFn (0x02, 0x00)
2593                        {
2594                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
2595                            IRQNoFlags () {4}
2596                        }
2597                        StartDependentFn (0x02, 0x00)
2598                        {
2599                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
2600                            IRQNoFlags () {3}
2601                        }
2602                        EndDependentFn ()
2603                    })
2604                    Method (_SRS, 1, NotSerialized)
2605                    {
2606                        CreateWordField (Arg0, 0x02, IOAR)
2607                        CreateWordField (Arg0, 0x09, IRQM)
2608                        If (LEqual (IOAR, 0x03F8))
2609                        {
2610                            Store (0xFE, Local0)
2611                            Store (0x00, Local1)
2612                        }
2613                        Else
2614                        {
2615                            If (LEqual (IOAR, 0x02F8))
2616                            {
2617                                Store (0xBE, Local0)
2618                                Store (0x01, Local1)
2619                            }
2620                            Else
2621                            {
2622                                If (LEqual (IOAR, 0x03E8))
2623                                {
2624                                    Store (0xFA, Local0)
2625                                    Store (0x07, Local1)
2626                                }
2627                                Else
2628                                {
2629                                    If (LEqual (IOAR, 0x02E8))
2630                                    {
2631                                        Store (0xBA, Local0)
2632                                        Store (0x05, Local1)
2633                                    }
2634                                    Else
2635                                    {
2636                                        Fatal (0x02, 0x90000002, 0x00)
2637                                    }
2638                                }
2639                            }
2640                        }
2641
2642                        And (U1AH, 0x03, U1AH)
2643                        And (U1AL, 0x01, Local2)
2644                        Or (Local0, Local2, U1AL)
2645                        Store (Local1, \_SB.PCI0.PM00.XU1A)
2646                        And (PNP1, 0xF0, Local0)
2647                        If (LEqual (IRQM, 0x10))
2648                        {
2649                            Or (Local0, 0x04, Local0)
2650                        }
2651                        Else
2652                        {
2653                            If (LEqual (IRQM, 0x08))
2654                            {
2655                                Or (Local0, 0x03, Local0)
2656                            }
2657                            Else
2658                            {
2659                                Fatal (0x02, 0x90000002, 0x00)
2660                            }
2661                        }
2662
2663                        Store (Local0, PNP1)
2664                        Or (FER, 0x02, FER)
2665                        Store (One, \_SB.PCI0.PM00.XU1E)
2666                    }
2667                }
2668
2669                Name (PPMD, 0x00)
2670                Name (PPDR, 0x00)
2671                Method (GPPM, 0, NotSerialized)
2672                {
2673                    Store (\GPAR (), Local0)
2674                    And (Local0, 0x03, PPMD)
2675                    ShiftRight (And (Local0, 0x04), 0x02, PPDR)
2676                }
2677
2678                Device (LPT)
2679                {
2680                    Name (_HID, EisaId ("PNP0400"))
2681                    Name (_EJD, "_SB.PCI0.DOCK")
2682                    Name (_PR0, Package (0x01)
2683                    {
2684                        PSIO
2685                    })
2686                    Method (_STA, 0, NotSerialized)
2687                    {
2688                        If (LEqual (PPMD, 0x03))
2689                        {
2690                            Return (Zero)
2691                        }
2692                        Else
2693                        {
2694                            If (And (FER, 0x01))
2695                            {
2696                                Return (0x0F)
2697                            }
2698                            Else
2699                            {
2700                                Return (0x0D)
2701                            }
2702                        }
2703                    }
2704
2705                    Method (_DIS, 0, NotSerialized)
2706                    {
2707                        And (FER, 0xFE, FER)
2708                        Store (Zero, \_SB.PCI0.PM00.XPE)
2709                    }
2710
2711                    Method (_CRS, 0, NotSerialized)
2712                    {
2713                        Name (BUFF, ResourceTemplate ()
2714                        {
2715                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
2716                            IRQNoFlags () {7}
2717                        })
2718                        CreateWordField (BUFF, 0x02, L1MN)
2719                        CreateWordField (BUFF, 0x04, L1MX)
2720                        CreateByteField (BUFF, 0x06, L1AL)
2721                        CreateByteField (BUFF, 0x07, L1LN)
2722                        CreateWordField (BUFF, 0x09, L1IQ)
2723                        If (LEqual (PPMD, 0x03))
2724                        {
2725                            Store (0x00, L1MN)
2726                            Store (0x00, L1MX)
2727                            Store (0x00, L1AL)
2728                            Store (0x00, L1LN)
2729                            Store (0x00, L1IQ)
2730                            Return (BUFF)
2731                        }
2732
2733                        And (PBAL, 0xFF, Local0)
2734                        If (LEqual (Local0, 0xEF)) {}
2735                        Else
2736                        {
2737                            If (LEqual (Local0, 0xDE))
2738                            {
2739                                Store (0x0378, L1MN)
2740                                Store (0x0378, L1MX)
2741                                Store (0x08, L1LN)
2742                            }
2743                            Else
2744                            {
2745                                If (LEqual (Local0, 0x9E))
2746                                {
2747                                    Store (0x0278, L1MN)
2748                                    Store (0x0278, L1MX)
2749                                    Store (0x08, L1LN)
2750                                }
2751                            }
2752                        }
2753
2754                        And (PNP0, 0xF0, Local1)
2755                        If (LEqual (Local1, 0x00))
2756                        {
2757                            Store (0x00, L1IQ)
2758                        }
2759                        Else
2760                        {
2761                            If (LEqual (Local1, 0x50))
2762                            {
2763                                Store (0x20, L1IQ)
2764                            }
2765                        }
2766
2767                        Return (BUFF)
2768                    }
2769
2770                    Method (_PRS, 0, NotSerialized)
2771                    {
2772                        If (PPMD)
2773                        {
2774                            Return (PEPP)
2775                        }
2776                        Else
2777                        {
2778                            Return (PLPT)
2779                        }
2780                    }
2781
2782                    Name (PLPT, ResourceTemplate ()
2783                    {
2784                        StartDependentFnNoPri ()
2785                        {
2786                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
2787                            IRQNoFlags () {7}
2788                        }
2789                        StartDependentFnNoPri ()
2790                        {
2791                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
2792                            IRQNoFlags () {7}
2793                        }
2794                        StartDependentFnNoPri ()
2795                        {
2796                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
2797                            IRQNoFlags () {5}
2798                        }
2799                        StartDependentFnNoPri ()
2800                        {
2801                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
2802                            IRQNoFlags () {}
2803                        }
2804                        StartDependentFnNoPri ()
2805                        {
2806                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
2807                            IRQNoFlags () {}
2808                        }
2809                        StartDependentFnNoPri ()
2810                        {
2811                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
2812                            IRQNoFlags () {}
2813                        }
2814                        EndDependentFn ()
2815                    })
2816                    Name (PEPP, ResourceTemplate ()
2817                    {
2818                        StartDependentFnNoPri ()
2819                        {
2820                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
2821                            IRQNoFlags () {5,7}
2822                        }
2823                        StartDependentFnNoPri ()
2824                        {
2825                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
2826                            IRQNoFlags () {5,7}
2827                        }
2828                        EndDependentFn ()
2829                    })
2830                    Method (_SRS, 1, NotSerialized)
2831                    {
2832                        CreateWordField (Arg0, 0x02, IOAR)
2833                        CreateWordField (Arg0, 0x09, IRQM)
2834                        If (LEqual (IOAR, 0x03BC))
2835                        {
2836                            Store (0xEF, Local0)
2837                            Store (0x00, Local1)
2838                        }
2839                        Else
2840                        {
2841                            If (LEqual (IOAR, 0x0378))
2842                            {
2843                                Store (0xDE, Local0)
2844                                Store (0x01, Local1)
2845                            }
2846                            Else
2847                            {
2848                                If (LEqual (IOAR, 0x0278))
2849                                {
2850                                    Store (0x9E, Local0)
2851                                    Store (0x02, Local1)
2852                                }
2853                                Else
2854                                {
2855                                    Fatal (0x02, 0x90000002, 0x00)
2856                                }
2857                            }
2858                        }
2859
2860                        And (PBAH, 0x03, Local2)
2861                        Store (Local2, PBAH)
2862                        Store (Local0, PBAL)
2863                        Store (Local1, \_SB.PCI0.PM00.XPA)
2864                        And (PNP0, 0x0F, Local0)
2865                        If (LEqual (IRQM, 0x20))
2866                        {
2867                            Or (Local0, 0x50, Local0)
2868                        }
2869                        Else
2870                        {
2871                            If (LEqual (IRQM, 0x80))
2872                            {
2873                                Or (Local0, 0x70, Local0)
2874                            }
2875                            Else
2876                            {
2877                                If (LEqual (IRQM, Zero)) {}
2878                            }
2879                        }
2880
2881                        Store (Local0, PNP0)
2882                        If (LEqual (PPMD, 0x00))
2883                        {
2884                            And (PCR, 0xFA, Local0)
2885                            If (PPDR)
2886                            {
2887                                Or (PTR, 0x80, Local1)
2888                            }
2889                            Else
2890                            {
2891                                And (PTR, 0x7F, Local1)
2892                            }
2893                        }
2894                        Else
2895                        {
2896                            If (LEqual (PPMD, 0x01))
2897                            {
2898                                And (PCR, 0xF9, Local0)
2899                                Or (Local0, 0x01, Local0)
2900                            }
2901                            Else
2902                            {
2903                                And (PCR, 0xFB, Local0)
2904                                Or (Local0, 0x03, Local0)
2905                            }
2906
2907                            And (PTR, 0x7F, Local1)
2908                        }
2909
2910                        Store (Local0, PCR)
2911                        Store (Local1, PTR)
2912                        Or (FER, 0x01, FER)
2913                        Store (One, \_SB.PCI0.PM00.XPE)
2914                    }
2915                }
2916
2917                Device (ECP)
2918                {
2919                    Name (_HID, EisaId ("PNP0401"))
2920                    Name (_EJD, "_SB.PCI0.DOCK")
2921                    Name (_PR0, Package (0x01)
2922                    {
2923                        PSIO
2924                    })
2925                    Method (_STA, 0, NotSerialized)
2926                    {
2927                        If (LEqual (PPMD, 0x03))
2928                        {
2929                            If (And (FER, 0x01))
2930                            {
2931                                Return (0x0F)
2932                            }
2933                            Else
2934                            {
2935                                Return (0x0D)
2936                            }
2937                        }
2938                        Else
2939                        {
2940                            Return (Zero)
2941                        }
2942                    }
2943
2944                    Method (_DIS, 0, NotSerialized)
2945                    {
2946                        And (FER, 0xFE, FER)
2947                        Store (Zero, \_SB.PCI0.PM00.XPE)
2948                    }
2949
2950                    Method (_CRS, 0, NotSerialized)
2951                    {
2952                        Name (BUFF, ResourceTemplate ()
2953                        {
2954                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
2955                            IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x03)
2956                            IRQNoFlags () {7}
2957                            DMA (Compatibility, NotBusMaster, Transfer8) {3}
2958                        })
2959                        CreateWordField (BUFF, 0x02, ECN0)
2960                        CreateWordField (BUFF, 0x04, ECX0)
2961                        CreateByteField (BUFF, 0x06, ECA0)
2962                        CreateByteField (BUFF, 0x07, ECL0)
2963                        CreateWordField (BUFF, 0x0A, ECN1)
2964                        CreateWordField (BUFF, 0x0C, ECX1)
2965                        CreateByteField (BUFF, 0x0E, ECA1)
2966                        CreateByteField (BUFF, 0x0F, ECL1)
2967                        CreateWordField (BUFF, 0x11, ECIQ)
2968                        CreateWordField (BUFF, 0x14, ECDQ)
2969                        If (LNot (LEqual (PPMD, 0x03)))
2970                        {
2971                            Store (0x00, ECN0)
2972                            Store (0x00, ECX0)
2973                            Store (0x00, ECA0)
2974                            Store (0x00, ECL0)
2975                            Store (0x00, ECN1)
2976                            Store (0x00, ECX1)
2977                            Store (0x00, ECA1)
2978                            Store (0x00, ECL1)
2979                            Store (0x00, ECIQ)
2980                            Store (0x00, ECDQ)
2981                            Return (BUFF)
2982                        }
2983
2984                        And (PBAL, 0xFF, Local0)
2985                        If (LEqual (Local0, 0xEF))
2986                        {
2987                            Store (0x03BC, Local1)
2988                        }
2989                        Else
2990                        {
2991                            If (LEqual (Local0, 0xDE))
2992                            {
2993                                Store (0x0378, Local1)
2994                                Store (0x08, ECL0)
2995                            }
2996                            Else
2997                            {
2998                                If (LEqual (Local0, 0x9E))
2999                                {
3000                                    Store (0x0278, Local1)
3001                                    Store (0x08, ECL0)
3002                                }
3003                            }
3004                        }
3005
3006                        Store (Local1, ECN0)
3007                        Store (Local1, ECX0)
3008                        Add (Local1, 0x0400, ECN1)
3009                        Add (Local1, 0x0400, ECX1)
3010                        And (PNP0, 0xF0, Local1)
3011                        If (LEqual (Local1, 0x50))
3012                        {
3013                            Store (0x20, ECIQ)
3014                        }
3015                        Else
3016                        {
3017                            If (LEqual (Local1, 0x70)) {}
3018                            Else
3019                            {
3020                                Store (0x00, ECIQ)
3021                            }
3022                        }
3023
3024                        And (SCF1, 0x38, Local2)
3025                        If (LEqual (Local2, 0x00))
3026                        {
3027                            Store (0x00, ECDQ)
3028                        }
3029                        Else
3030                        {
3031                            If (LEqual (Local2, 0x08))
3032                            {
3033                                Store (0x01, ECDQ)
3034                            }
3035                            Else
3036                            {
3037                                If (LEqual (Local2, 0x10))
3038                                {
3039                                    Store (0x02, ECDQ)
3040                                }
3041                                Else
3042                                {
3043                                    If (LEqual (Local2, 0x20)) {}
3044                                    Else
3045                                    {
3046                                        Store (0x00, ECDQ)
3047                                    }
3048                                }
3049                            }
3050                        }
3051
3052                        Return (BUFF)
3053                    }
3054
3055                    Name (_PRS, ResourceTemplate ()
3056                    {
3057                        StartDependentFnNoPri ()
3058                        {
3059                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
3060                            IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x03)
3061                            IRQNoFlags () {7}
3062                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
3063                        }
3064                        StartDependentFnNoPri ()
3065                        {
3066                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
3067                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x03)
3068                            IRQNoFlags () {7}
3069                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
3070                        }
3071                        StartDependentFnNoPri ()
3072                        {
3073                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
3074                            IO (Decode16, 0x0678, 0x0678, 0x01, 0x03)
3075                            IRQNoFlags () {5}
3076                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
3077                        }
3078                        EndDependentFn ()
3079                    })
3080                    Method (_SRS, 1, NotSerialized)
3081                    {
3082                        CreateWordField (Arg0, 0x02, IOAR)
3083                        CreateWordField (Arg0, 0x11, IRQM)
3084                        CreateByteField (Arg0, 0x14, DMAM)
3085                        If (LEqual (IOAR, 0x03BC))
3086                        {
3087                            Store (0xEF, Local0)
3088                            Store (0x00, Local1)
3089                        }
3090                        Else
3091                        {
3092                            If (LEqual (IOAR, 0x0378))
3093                            {
3094                                Store (0xDE, Local0)
3095                                Store (0x01, Local1)
3096                            }
3097                            Else
3098                            {
3099                                If (LEqual (IOAR, 0x0278))
3100                                {
3101                                    Store (0x9E, Local0)
3102                                    Store (0x02, Local1)
3103                                }
3104                                Else
3105                                {
3106                                    Fatal (0x02, 0x90000002, 0x00)
3107                                }
3108                            }
3109                        }
3110
3111                        And (PBAH, 0x03, Local2)
3112                        Store (Local2, PBAH)
3113                        Store (Local0, PBAL)
3114                        Store (Local1, \_SB.PCI0.PM00.XPA)
3115                        And (PNP0, 0x0F, Local0)
3116                        If (LEqual (IRQM, 0x20))
3117                        {
3118                            Or (Local0, 0x50, Local0)
3119                        }
3120                        Else
3121                        {
3122                            If (LEqual (IRQM, 0x80))
3123                            {
3124                                Or (Local0, 0x70, Local0)
3125                            }
3126                        }
3127
3128                        Store (Local0, PNP0)
3129                        And (SCF1, 0xC7, Local1)
3130                        If (LEqual (DMAM, 0x01))
3131                        {
3132                            Or (Local1, 0x08, Local1)
3133                        }
3134                        Else
3135                        {
3136                            If (LEqual (DMAM, 0x02))
3137                            {
3138                                Or (Local1, 0x10, Local1)
3139                            }
3140                            Else
3141                            {
3142                                If (LEqual (DMAM, 0x08))
3143                                {
3144                                    Or (Local1, 0x20, Local1)
3145                                }
3146                            }
3147                        }
3148
3149                        Store (Local1, SCF1)
3150                        And (PCR, 0xFE, Local0)
3151                        Or (Local0, 0x04, PCR)
3152                        Or (FER, 0x01, FER)
3153                        Store (One, \_SB.PCI0.PM00.XPE)
3154                        And (PCR, 0xFB, PCR)
3155                        \ECPP ()
3156                    }
3157                }
3158
3159                Device (FIR)
3160                {
3161                    Name (_HID, EisaId ("IBM0071"))
3162                    Name (_CID, 0x1105D041)
3163                    Name (_PR0, Package (0x01)
3164                    {
3165                        PSIO
3166                    })
3167                    Method (_STA, 0, NotSerialized)
3168                    {
3169                        If (And (FER, 0x04))
3170                        {
3171                            Return (0x0F)
3172                        }
3173                        Else
3174                        {
3175                            Return (0x0D)
3176                        }
3177                    }
3178
3179                    Method (_DIS, 0, NotSerialized)
3180                    {
3181                        And (SCF2, 0x5F, SCF2)
3182                        And (FER, 0xFB, FER)
3183                        Store (Zero, \_SB.PCI0.PM00.XU2E)
3184                    }
3185
3186                    Method (_CRS, 0, NotSerialized)
3187                    {
3188                        Name (BUFF, ResourceTemplate ()
3189                        {
3190                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
3191                            IRQNoFlags () {4}
3192                            DMA (Compatibility, NotBusMaster, Transfer8) {3}
3193                        })
3194                        CreateWordField (BUFF, 0x02, IRMN)
3195                        CreateWordField (BUFF, 0x04, IRMX)
3196                        CreateWordField (BUFF, 0x09, IRIQ)
3197                        CreateByteField (BUFF, 0x0C, IRDR)
3198                        ShiftLeft (And (U2AL, 0xFE), 0x02, Local0)
3199                        Store (Local0, IRMN)
3200                        Store (Local0, IRMX)
3201                        If (LEqual (And (PNP1, 0xF0), 0x70))
3202                        {
3203                            Store (0x80, IRIQ)
3204                        }
3205                        Else
3206                        {
3207                            If (LEqual (And (PNP1, 0xF0), 0x50))
3208                            {
3209                                Store (0x20, IRIQ)
3210                            }
3211                            Else
3212                            {
3213                                If (LEqual (And (PNP1, 0xF0), 0x40))
3214                                {
3215                                    Store (0x10, IRIQ)
3216                                }
3217                                Else
3218                                {
3219                                    If (LEqual (And (PNP1, 0xF0), 0x30))
3220                                    {
3221                                        Store (0x08, IRIQ)
3222                                    }
3223                                    Else
3224                                    {
3225                                        Store (0x00, IRIQ)
3226                                    }
3227                                }
3228                            }
3229                        }
3230
3231                        And (PNP3, 0x07, Local1)
3232                        If (LEqual (Local1, 0x00))
3233                        {
3234                            Store (0x00, IRDR)
3235                        }
3236                        Else
3237                        {
3238                            If (LEqual (Local1, 0x01))
3239                            {
3240                                Store (0x01, IRDR)
3241                            }
3242                            Else
3243                            {
3244                                If (LEqual (Local1, 0x02))
3245                                {
3246                                    Store (0x02, IRDR)
3247                                }
3248                                Else
3249                                {
3250                                    If (LEqual (Local1, 0x04))
3251                                    {
3252                                        Store (0x08, IRDR)
3253                                    }
3254                                    Else
3255                                    {
3256                                        Store (Zero, IRDR)
3257                                    }
3258                                }
3259                            }
3260                        }
3261
3262                        Return (BUFF)
3263                    }
3264
3265                    Name (_PRS, ResourceTemplate ()
3266                    {
3267                        StartDependentFn (0x00, 0x00)
3268                        {
3269                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
3270                            IRQNoFlags () {4}
3271                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
3272                        }
3273                        StartDependentFn (0x01, 0x00)
3274                        {
3275                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
3276                            IRQNoFlags () {3}
3277                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
3278                        }
3279                        StartDependentFn (0x02, 0x00)
3280                        {
3281                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
3282                            IRQNoFlags () {4}
3283                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
3284                        }
3285                        StartDependentFn (0x02, 0x00)
3286                        {
3287                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
3288                            IRQNoFlags () {3}
3289                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
3290                        }
3291                        StartDependentFn (0x02, 0x00)
3292                        {
3293                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
3294                            IRQNoFlags () {3,5,7}
3295                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
3296                        }
3297                        StartDependentFn (0x02, 0x00)
3298                        {
3299                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
3300                            IRQNoFlags () {4,5,7}
3301                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
3302                        }
3303                        StartDependentFn (0x02, 0x00)
3304                        {
3305                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
3306                            IRQNoFlags () {3,5,7}
3307                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
3308                        }
3309                        StartDependentFn (0x02, 0x00)
3310                        {
3311                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
3312                            IRQNoFlags () {4,5,7}
3313                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
3314                        }
3315                        StartDependentFn (0x02, 0x00)
3316                        {
3317                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
3318                            IRQNoFlags () {4}
3319                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3320                        }
3321                        StartDependentFn (0x02, 0x00)
3322                        {
3323                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
3324                            IRQNoFlags () {3}
3325                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3326                        }
3327                        StartDependentFn (0x02, 0x00)
3328                        {
3329                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
3330                            IRQNoFlags () {4}
3331                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3332                        }
3333                        StartDependentFn (0x02, 0x00)
3334                        {
3335                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
3336                            IRQNoFlags () {3}
3337                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3338                        }
3339                        StartDependentFn (0x02, 0x00)
3340                        {
3341                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
3342                            IRQNoFlags () {3,5,7}
3343                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3344                        }
3345                        StartDependentFn (0x02, 0x00)
3346                        {
3347                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
3348                            IRQNoFlags () {4,5,7}
3349                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3350                        }
3351                        StartDependentFn (0x02, 0x00)
3352                        {
3353                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
3354                            IRQNoFlags () {3,5,7}
3355                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3356                        }
3357                        StartDependentFn (0x02, 0x00)
3358                        {
3359                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
3360                            IRQNoFlags () {4,5,7}
3361                            DMA (Compatibility, NotBusMaster, Transfer8) {}
3362                        }
3363                        EndDependentFn ()
3364                    })
3365                    Method (_SRS, 1, NotSerialized)
3366                    {
3367                        CreateWordField (Arg0, 0x02, IRIO)
3368                        CreateWordField (Arg0, 0x09, IRIQ)
3369                        CreateByteField (Arg0, 0x0C, IRDR)
3370                        If (LEqual (IRIO, 0x03F8))
3371                        {
3372                            Store (0xFE, Local0)
3373                            Store (0x00, Local1)
3374                        }
3375                        Else
3376                        {
3377                            If (LEqual (IRIO, 0x02F8))
3378                            {
3379                                Store (0xBE, Local0)
3380                                Store (0x01, Local1)
3381                            }
3382                            Else
3383                            {
3384                                If (LEqual (IRIO, 0x03E8))
3385                                {
3386                                    Store (0xFA, Local0)
3387                                    Store (0x07, Local1)
3388                                }
3389                                Else
3390                                {
3391                                    If (LEqual (IRIO, 0x02E8))
3392                                    {
3393                                        Store (0xBA, Local0)
3394                                        Store (0x05, Local1)
3395                                    }
3396                                    Else
3397                                    {
3398                                        Fatal (0x02, 0x90000002, 0x00)
3399                                    }
3400                                }
3401                            }
3402                        }
3403
3404                        And (U2AH, 0x03, U2AH)
3405                        And (U2AL, 0x01, Local2)
3406                        Or (Local0, Local2, U2AL)
3407                        Store (Local1, \_SB.PCI0.PM00.XU2A)
3408                        And (PNP1, 0x0F, Local0)
3409                        If (LEqual (IRIQ, 0x80))
3410                        {
3411                            Or (Local0, 0x70, Local0)
3412                        }
3413                        Else
3414                        {
3415                            If (LEqual (IRIQ, 0x20))
3416                            {
3417                                Or (Local0, 0x50, Local0)
3418                            }
3419                            Else
3420                            {
3421                                If (LEqual (IRIQ, 0x10))
3422                                {
3423                                    Or (Local0, 0x40, Local0)
3424                                }
3425                                Else
3426                                {
3427                                    If (LEqual (IRIQ, 0x08))
3428                                    {
3429                                        Or (Local0, 0x30, Local0)
3430                                    }
3431                                    Else
3432                                    {
3433                                        Fatal (0x02, 0x90000002, 0x00)
3434                                    }
3435                                }
3436                            }
3437                        }
3438
3439                        Store (Local0, PNP1)
3440                        If (LEqual (IRDR, 0x00))
3441                        {
3442                            Store (0x00, Local0)
3443                        }
3444                        Else
3445                        {
3446                            If (LEqual (IRDR, 0x01))
3447                            {
3448                                Store (0x01, Local0)
3449                            }
3450                            Else
3451                            {
3452                                If (LEqual (IRDR, 0x02))
3453                                {
3454                                    Store (0x02, Local0)
3455                                }
3456                                Else
3457                                {
3458                                    If (LEqual (IRDR, 0x08))
3459                                    {
3460                                        Store (0x04, Local0)
3461                                    }
3462                                    Else
3463                                    {
3464                                        Fatal (0x02, 0x90000002, 0x00)
3465                                    }
3466                                }
3467                            }
3468                        }
3469
3470                        And (PNP3, 0xC0, Local1)
3471                        Or (Local1, Local0, PNP3)
3472                        Or (FER, 0x04, FER)
3473                        Store (One, \_SB.PCI0.PM00.XU2E)
3474                        Or (SCF2, 0xA0, SCF2)
3475                    }
3476                }
3477
3478                Device (EC)
3479                {
3480                    Name (_HID, EisaId ("PNP0C09"))
3481                    Name (_GPE, 0x09)
3482                    Name (_GLK, 0x01)
3483                    Method (_REG, 2, NotSerialized)
3484                    {
3485                        If (LEqual (Arg0, 0x03))
3486                        {
3487                            Store (Arg1, \H8DR)
3488                        }
3489                    }
3490
3491                    OperationRegion (ECOR, EmbeddedControl, 0x00, 0x0100)
3492                    Field (ECOR, ByteAcc, Lock, Preserve)
3493                    {
3494                            ,   1,
3495                        HCGA,   1,
3496                            ,   1,
3497                            ,   1,
3498                            ,   1,
3499                            ,   1,
3500                        HCAC,   1,
3501                        Offset (0x01),
3502                            ,   1,
3503                        BTCM,   1,
3504                            ,   1,
3505                            ,   1,
3506                            ,   1,
3507                        HCAD,   1,
3508                        BTPC,   1,
3509                        Offset (0x02),
3510                        Offset (0x03),
3511                        Offset (0x04),
3512                            ,   1,
3513                            ,   1,
3514                            ,   1,
3515                            ,   1,
3516                            ,   1,
3517                            ,   1,
3518                            ,   1,
3519                        Offset (0x05),
3520                        HSPA,   1,
3521                            ,   1,
3522                            ,   1,
3523                            ,   1,
3524                            ,   1,
3525                            ,   1,
3526                            ,   1,
3527                        Offset (0x06),
3528                        HSUN,   8,
3529                        HSRP,   8,
3530                        HACC,   8,
3531                        Offset (0x0A),
3532                        Offset (0x0B),
3533                        Offset (0x0C),
3534                        HLCL,   8,
3535                        HLBL,   8,
3536                        HLMS,   8,
3537                        HICA,   8,
3538                        HAM0,   8,
3539                        HAM1,   8,
3540                        HAM2,   8,
3541                        HAM3,   8,
3542                        HAM4,   8,
3543                        HAM5,   8,
3544                        HAM6,   8,
3545                        HAM7,   8,
3546                        HAM8,   8,
3547                        HAM9,   8,
3548                        HAMA,   8,
3549                        HAMB,   8,
3550                        HAMC,   8,
3551                        HAMD,   8,
3552                        HAME,   8,
3553                        HAMF,   8,
3554                        HT00,   1,
3555                        HT01,   1,
3556                        HT02,   1,
3557                            ,   4,
3558                        HT0E,   1,
3559                        HT10,   1,
3560                        HT11,   1,
3561                        HT12,   1,
3562                            ,   4,
3563                        HT1E,   1,
3564                        HT20,   1,
3565                        HT21,   1,
3566                        HT22,   1,
3567                            ,   4,
3568                        HT2E,   1,
3569                        HT30,   1,
3570                        HT31,   1,
3571                        HT32,   1,
3572                            ,   4,
3573                        HT3E,   1,
3574                        HT40,   1,
3575                        HT41,   1,
3576                        HT42,   1,
3577                            ,   4,
3578                        HT4E,   1,
3579                        HT50,   1,
3580                        HT51,   1,
3581                        HT52,   1,
3582                            ,   4,
3583                        HT5E,   1,
3584                        HT60,   1,
3585                        HT61,   1,
3586                        HT62,   1,
3587                            ,   4,
3588                        HT6E,   1,
3589                        HT70,   1,
3590                        HT71,   1,
3591                        HT72,   1,
3592                            ,   4,
3593                        HT7E,   1,
3594                        HDID,   8,
3595                        Offset (0x2A),
3596                        Offset (0x2B),
3597                        HT0H,   8,
3598                        HT0L,   8,
3599                        HT1H,   8,
3600                        HT1L,   8,
3601                        HFSP,   8,
3602                            ,   5,
3603                            ,   1,
3604                        HMUT,   1,
3605                        Offset (0x31),
3606                        Offset (0x32),
3607                        HWPM,   1,
3608                        HWLB,   1,
3609                        HWLO,   1,
3610                        HWDK,   1,
3611                        HWFN,   1,
3612                        HWBT,   1,
3613                        HWRI,   1,
3614                        HWBU,   1,
3615                        Offset (0x34),
3616                            ,   1,
3617                            ,   1,
3618                            ,   1,
3619                            ,   1,
3620                            ,   1,
3621                            ,   1,
3622                            ,   1,
3623                        Offset (0x35),
3624                        Offset (0x36),
3625                            ,   1,
3626                        BTWK,   1,
3627                        HPLD,   1,
3628                            ,   1,
3629                        HPAC,   1,
3630                        BTST,   1,
3631                        Offset (0x37),
3632                        HPBU,   1,
3633                            ,   1,
3634                            ,   1,
3635                            ,   1,
3636                            ,   1,
3637                            ,   1,
3638                            ,   1,
3639                        HPNF,   1,
3640                        HB0L,   4,
3641                            ,   1,
3642                        HB0C,   1,
3643                        HB0D,   1,
3644                        HB0A,   1,
3645                        HB1L,   4,
3646                            ,   1,
3647                        HB1C,   1,
3648                        HB1D,   1,
3649                        HB1A,   1,
3650                        HCMU,   1,
3651                            ,   1,
3652                            ,   1,
3653                            ,   1,
3654                        HCSL,   2,
3655                            ,   1,
3656                        Offset (0x3B),
3657                            ,   1,
3658                        KBLT,   1,
3659                        BTPW,   1,
3660                        BTDT,   1,
3661                        Offset (0x3C),
3662                        Offset (0x3D),
3663                        Offset (0x3E),
3664                        Offset (0x46),
3665                        Offset (0x47),
3666                            ,   4,
3667                            ,   1,
3668                            ,   1,
3669                            ,   1,
3670                        Offset (0x48),
3671                            ,   4,
3672                        Offset (0x49),
3673                        Offset (0x4A),
3674                        Offset (0x4C),
3675                        Offset (0x4E),
3676                        HWAK,   8,
3677                        Offset (0x50),
3678                        Offset (0x75),
3679                        Offset (0x78),
3680                        TMP0,   8,
3681                        TMP1,   8,
3682                        TMP2,   8,
3683                        TMP3,   8,
3684                        TMP4,   8,
3685                        TMP5,   8,
3686                        TMP6,   8,
3687                        TMP7,   8,
3688                        Offset (0x82),
3689                        CP4E,   8,
3690                        HFNI,   8,
3691                        HKBD,   1,
3692                        HPHT,   1,
3693                        Offset (0x85),
3694                        Offset (0xC0),
3695                        Offset (0xC2),
3696                        Offset (0xC4),
3697                        Offset (0xD0),
3698                        Offset (0xE0),
3699                        Offset (0xE8),
3700                        Offset (0xEA),
3701                        Offset (0xEB),
3702                        Offset (0xEC),
3703                            ,   1,
3704                            ,   1,
3705                            ,   2,
3706                            ,   1,
3707                            ,   1,
3708                            ,   1,
3709                        Offset (0xED),
3710                            ,   1,
3711                        Offset (0xEE),
3712                            ,   4,
3713                        Offset (0xEF),
3714                        Offset (0xF0),
3715                        Offset (0xF8),
3716                        Offset (0x100)
3717                    }
3718
3719                    Method (_INI, 0, NotSerialized)
3720                    {
3721                        If (\H8DR)
3722                        {
3723                            Store (One, HCAC)
3724                            Store (Zero, HWFN)
3725                            Store (One, HWLB)
3726                            Store (Zero, HWLO)
3727                            And (HAM5, 0x3F, HAM5)
3728                        }
3729                        Else
3730                        {
3731                            \MBEC (0x00, 0xFF, 0x40)
3732                            \MBEC (0x32, 0xEB, 0x02)
3733                            \MBEC (0x15, 0x3F, 0x00)
3734                        }
3735
3736                        If (\H8DR)
3737                        {
3738                            Store (0x00, HSPA)
3739                        }
3740                        Else
3741                        {
3742                            \MBEC (0x05, 0xFE, 0x00)
3743                        }
3744
3745                        Store (GUID (), BDEV)
3746                        GHKS ()
3747                        \_SB.PCI0.ISA.EC.HKEY.BTIN ()
3748                    }
3749
3750                    Name (_CRS, ResourceTemplate ()
3751                    {
3752                        IO (Decode16, 0x0062, 0x0062, 0x01, 0x01)
3753                        IO (Decode16, 0x0066, 0x0066, 0x01, 0x01)
3754                    })
3755                    Method (GUID, 0, NotSerialized)
3756                    {
3757                        Store (GDEV (0x00), Local0)
3758                        If (LEqual (Local0, 0x0F))
3759                        {
3760                            If (\H8DR)
3761                            {
3762                                If (HB1A)
3763                                {
3764                                    Store (0x10, Local0)
3765                                }
3766                            }
3767                            Else
3768                            {
3769                                If (And (\RBEC (0x39), 0x80))
3770                                {
3771                                    Store (0x10, Local0)
3772                                }
3773                            }
3774                        }
3775
3776                        Return (Local0)
3777                    }
3778
3779                    Mutex (MDEV, 0x07)
3780                    Method (GDEV, 1, NotSerialized)
3781                    {
3782                        Acquire (MDEV, 0xFFFF)
3783                        If (\H8DR)
3784                        {
3785                            And (HAM7, 0xFE, HAM7)
3786                        }
3787                        Else
3788                        {
3789                            \MBEC (0x17, 0xFE, 0x00)
3790                        }
3791
3792                        And (Arg0, 0x03, \_SB.PCI0.PM00.EID)
3793                        And (ShiftRight (Arg0, 0x02), 0x01, \_SB.PCI0.PM00.EID2)
3794                        If (\H8DR)
3795                        {
3796                            Or (HDID, 0x80, HDID)
3797                            Store (0x20, Local1)
3798                            While (LAnd (Local1, And (HDID, 0x80)))
3799                            {
3800                                Sleep (0x01)
3801                                Decrement (Local1)
3802                            }
3803
3804                            Store (HDID, Local2)
3805                        }
3806                        Else
3807                        {
3808                            \MBEC (0x28, 0xFF, 0x80)
3809                            Store (0x20, Local1)
3810                            While (LAnd (Local1, And (\RBEC (0x28), 0x80)))
3811                            {
3812                                Sleep (0x01)
3813                                Decrement (Local1)
3814                            }
3815
3816                            Store (\RBEC (0x28), Local2)
3817                        }
3818
3819                        If (And (Local2, 0x80))
3820                        {
3821                            Store (0xFF, Local2)
3822                        }
3823
3824                        Store (0x00, \_SB.PCI0.PM00.EID)
3825                        Store (0x00, \_SB.PCI0.PM00.EID2)
3826                        Sleep (0x64)
3827                        If (\H8DR)
3828                        {
3829                            Or (HAM7, 0x01, HAM7)
3830                        }
3831                        Else
3832                        {
3833                            \MBEC (0x17, 0xFF, 0x01)
3834                        }
3835
3836                        Release (MDEV)
3837                        Return (Local2)
3838                    }
3839
3840                    Mutex (LEDM, 0x07)
3841                    Method (SYSL, 2, NotSerialized)
3842                    {
3843                        If (LEqual (Arg0, 0x00))
3844                        {
3845                            Store (0x01, Local0)
3846                        }
3847                        Else
3848                        {
3849                            If (LEqual (Arg0, 0x01))
3850                            {
3851                                Store (0x80, Local0)
3852                            }
3853                            Else
3854                            {
3855                                Return (0x00)
3856                            }
3857                        }
3858
3859                        Acquire (LEDM, 0xFFFF)
3860                        If (LAnd (\H8DR, LNot (\W98F)))
3861                        {
3862                            Store (Local0, HLMS)
3863                            If (LEqual (Arg1, 0x00))
3864                            {
3865                                Store (0x00, HLBL)
3866                                Store (0x00, HLCL)
3867                            }
3868                            Else
3869                            {
3870                                If (LEqual (Arg1, 0x01))
3871                                {
3872                                    Store (0x00, HLBL)
3873                                    Store (Local0, HLCL)
3874                                }
3875                                Else
3876                                {
3877                                    If (LEqual (Arg1, 0x02))
3878                                    {
3879                                        Store (Local0, HLBL)
3880                                        Store (Local0, HLCL)
3881                                    }
3882                                    Else
3883                                    {
3884                                    }
3885                                }
3886                            }
3887                        }
3888                        Else
3889                        {
3890                            \WBEC (0x0E, Local0)
3891                            If (LEqual (Arg1, 0x00))
3892                            {
3893                                \WBEC (0x0D, 0x00)
3894                                \WBEC (0x0C, 0x00)
3895                            }
3896                            Else
3897                            {
3898                                If (LEqual (Arg1, 0x01))
3899                                {
3900                                    \WBEC (0x0D, 0x00)
3901                                    \WBEC (0x0C, Local0)
3902                                }
3903                                Else
3904                                {
3905                                    If (LEqual (Arg1, 0x02))
3906                                    {
3907                                        \WBEC (0x0D, Local0)
3908                                        \WBEC (0x0C, Local0)
3909                                    }
3910                                }
3911                            }
3912                        }
3913
3914                        Sleep (0x0A)
3915                        Release (LEDM)
3916                    }
3917
3918                    Name (BAON, 0x00)
3919                    Name (WBON, 0x00)
3920                    Method (BEEP, 1, NotSerialized)
3921                    {
3922                        If (LGreater (Arg0, 0x11))
3923                        {
3924                            Return (0x01)
3925                        }
3926                        Else
3927                        {
3928                            If (LAnd (\H8DR, LNot (\W98F)))
3929                            {
3930                                If (LEqual (Arg0, 0x00))
3931                                {
3932                                    If (BAON)
3933                                    {
3934                                        If (WBON)
3935                                        {
3936                                            Store (0x08, HSRP)
3937                                            Store (0x03, HSUN)
3938                                        }
3939                                        Else
3940                                        {
3941                                            Store (0x00, HSRP)
3942                                            Store (Arg0, HSUN)
3943                                        }
3944
3945                                        Store (0x00, BAON)
3946                                    }
3947                                }
3948                                Else
3949                                {
3950                                    If (LEqual (Arg0, 0x0F))
3951                                    {
3952                                        Store (0x08, HSRP)
3953                                        Store (0x01, BAON)
3954                                        Store (Arg0, HSUN)
3955                                    }
3956                                    Else
3957                                    {
3958                                        If (BAON)
3959                                        {
3960                                            If (LEqual (Arg0, 0x11))
3961                                            {
3962                                                Store (0x00, WBON)
3963                                            }
3964                                            Else
3965                                            {
3966                                                If (LEqual (Arg0, 0x10))
3967                                                {
3968                                                    If (HMUT) {}
3969                                                    Else
3970                                                    {
3971                                                        Store (0x01, WBON)
3972                                                    }
3973                                                }
3974                                            }
3975                                        }
3976                                        Else
3977                                        {
3978                                            If (LEqual (Arg0, 0x11))
3979                                            {
3980                                                If (WBON)
3981                                                {
3982                                                    Store (0x00, HSRP)
3983                                                    Store (0x00, HSUN)
3984                                                    Store (0x00, WBON)
3985                                                }
3986                                            }
3987                                            Else
3988                                            {
3989                                                If (LEqual (Arg0, 0x10))
3990                                                {
3991                                                    If (HMUT) {}
3992                                                    Else
3993                                                    {
3994                                                        Store (0x01, WBON)
3995                                                        Store (0x08, HSRP)
3996                                                        Store (0x03, HSUN)
3997                                                    }
3998                                                }
3999                                                Else
4000                                                {
4001                                                    If (WBON)
4002                                                    {
4003                                                        If (LEqual (Arg0, 0x07))
4004                                                        {
4005                                                            Store (0x00, WBON)
4006                                                        }
4007                                                        Else
4008                                                        {
4009                                                            If (LEqual (Arg0, 0x03))
4010                                                            {
4011                                                                Store (0x00, WBON)
4012                                                                If (LEqual (\SPS, 0x04)) {}
4013                                                                Else
4014                                                                {
4015                                                                    Store (0x00, HSRP)
4016                                                                    Store (0x00, HSUN)
4017                                                                    Sleep (0x64)
4018                                                                    Store (0x07, HSUN)
4019                                                                    Sleep (0x012C)
4020                                                                }
4021                                                            }
4022                                                            Else
4023                                                            {
4024                                                                Store (0x00, HSRP)
4025                                                                Store (0x00, HSUN)
4026                                                                Sleep (0xC8)
4027                                                                Store (Arg0, HSUN)
4028                                                                Sleep (0xC8)
4029                                                                If (LEqual (Arg0, 0x04))
4030                                                                {
4031                                                                    Store (0x00, WBON)
4032                                                                }
4033
4034                                                                If (LEqual (Arg0, 0x05))
4035                                                                {
4036                                                                    Store (0x00, WBON)
4037                                                                }
4038
4039                                                                If (WBON)
4040                                                                {
4041                                                                    Store (0x08, HSRP)
4042                                                                    Store (0x03, HSUN)
4043                                                                }
4044                                                            }
4045                                                        }
4046                                                    }
4047                                                    Else
4048                                                    {
4049                                                        Store (Arg0, HSUN)
4050                                                        If (LEqual (Arg0, 0x03))
4051                                                        {
4052                                                            Sleep (0x012C)
4053                                                        }
4054
4055                                                        If (LEqual (Arg0, 0x07))
4056                                                        {
4057                                                            Sleep (0x01F4)
4058                                                        }
4059                                                    }
4060                                                }
4061                                            }
4062                                        }
4063                                    }
4064                                }
4065                            }
4066                            Else
4067                            {
4068                                If (LEqual (Arg0, 0x00))
4069                                {
4070                                    If (BAON)
4071                                    {
4072                                        If (WBON)
4073                                        {
4074                                            \WBEC (0x07, 0x08)
4075                                            \WBEC (0x06, 0x03)
4076                                        }
4077                                        Else
4078                                        {
4079                                            \WBEC (0x07, 0x00)
4080                                            \WBEC (0x06, Arg0)
4081                                        }
4082
4083                                        Store (0x00, BAON)
4084                                    }
4085                                }
4086                                Else
4087                                {
4088                                    If (LEqual (Arg0, 0x0F))
4089                                    {
4090                                        \WBEC (0x07, 0x08)
4091                                        Store (0x01, BAON)
4092                                        \WBEC (0x06, Arg0)
4093                                    }
4094                                    Else
4095                                    {
4096                                        If (BAON)
4097                                        {
4098                                            If (LEqual (Arg0, 0x11))
4099                                            {
4100                                                Store (0x00, WBON)
4101                                            }
4102                                            Else
4103                                            {
4104                                                If (LEqual (Arg0, 0x10))
4105                                                {
4106                                                    If (HMUT) {}
4107                                                    Else
4108                                                    {
4109                                                        Store (0x01, WBON)
4110                                                    }
4111                                                }
4112                                            }
4113                                        }
4114                                        Else
4115                                        {
4116                                            If (LEqual (Arg0, 0x11))
4117                                            {
4118                                                If (WBON)
4119                                                {
4120                                                    \WBEC (0x07, 0x00)
4121                                                    \WBEC (0x06, 0x00)
4122                                                    Store (0x00, WBON)
4123                                                }
4124                                            }
4125                                            Else
4126                                            {
4127                                                If (LEqual (Arg0, 0x10))
4128                                                {
4129                                                    If (And (0x40, \RBEC (0x30))) {}
4130                                                    Else
4131                                                    {
4132                                                        Store (0x01, WBON)
4133                                                        \WBEC (0x07, 0x08)
4134                                                        \WBEC (0x06, 0x03)
4135                                                    }
4136                                                }
4137                                                Else
4138                                                {
4139                                                    If (WBON)
4140                                                    {
4141                                                        If (LEqual (Arg0, 0x07))
4142                                                        {
4143                                                            Store (0x00, WBON)
4144                                                        }
4145                                                        Else
4146                                                        {
4147                                                            If (LEqual (Arg0, 0x03))
4148                                                            {
4149                                                                Store (0x00, WBON)
4150                                                                If (LEqual (\SPS, 0x04)) {}
4151                                                                Else
4152                                                                {
4153                                                                    \WBEC (0x07, 0x00)
4154                                                                    \WBEC (0x06, 0x00)
4155                                                                    Sleep (0x64)
4156                                                                    \WBEC (0x06, 0x07)
4157                                                                    Sleep (0x012C)
4158                                                                }
4159                                                            }
4160                                                            Else
4161                                                            {
4162                                                                \WBEC (0x07, 0x00)
4163                                                                \WBEC (0x06, 0x00)
4164                                                                Sleep (0xC8)
4165                                                                \WBEC (0x06, Arg0)
4166                                                                Sleep (0xC8)
4167                                                                If (LEqual (Arg0, 0x04))
4168                                                                {
4169                                                                    Store (0x00, WBON)
4170                                                                }
4171
4172                                                                If (LEqual (Arg0, 0x05))
4173                                                                {
4174                                                                    Store (0x00, WBON)
4175                                                                }
4176
4177                                                                If (WBON)
4178                                                                {
4179                                                                    \WBEC (0x07, 0x08)
4180                                                                    \WBEC (0x06, 0x03)
4181                                                                }
4182                                                            }
4183                                                        }
4184                                                    }
4185                                                    Else
4186                                                    {
4187                                                        \WBEC (0x06, Arg0)
4188                                                        If (LEqual (Arg0, 0x03))
4189                                                        {
4190                                                            Sleep (0x012C)
4191                                                        }
4192
4193                                                        If (LEqual (Arg0, 0x05))
4194                                                        {
4195                                                            Sleep (0xC8)
4196                                                        }
4197
4198                                                        If (LEqual (Arg0, 0x07))
4199                                                        {
4200                                                            Sleep (0x01F4)
4201                                                        }
4202                                                    }
4203                                                }
4204                                            }
4205                                        }
4206                                    }
4207                                }
4208                            }
4209                        }
4210                    }
4211
4212                    Method (EVNT, 1, NotSerialized)
4213                    {
4214                        If (\H8DR)
4215                        {
4216                            If (Arg0)
4217                            {
4218                                Or (HAM7, 0x01, HAM7)
4219                                Or (HAM5, 0x04, HAM5)
4220                            }
4221                            Else
4222                            {
4223                                And (HAM7, 0xFE, HAM7)
4224                                And (HAM5, 0xFB, HAM5)
4225                            }
4226                        }
4227                        Else
4228                        {
4229                            If (Arg0)
4230                            {
4231                                \MBEC (0x17, 0xFF, 0x01)
4232                                \MBEC (0x15, 0xFF, 0x04)
4233                                If (\W98F)
4234                                {
4235                                    \WBEC (0x18, 0xFF)
4236                                }
4237                            }
4238                            Else
4239                            {
4240                                \MBEC (0x17, 0xFE, 0x00)
4241                                \MBEC (0x15, 0xFB, 0x00)
4242                                If (\W98F)
4243                                {
4244                                    \WBEC (0x18, 0x00)
4245                                }
4246                            }
4247                        }
4248                    }
4249
4250                    Method (_Q12, 0, NotSerialized)
4251                    {
4252                        \_SB.PCI0.ISA.EC.HKEY.MHKQ (0x1003)
4253                    }
4254
4255                    Method (_Q13, 0, NotSerialized)
4256                    {
4257                        If (\_SB.PCI0.ISA.EC.VDHK)
4258                        {
4259                            \_SB.PCI0.ISA.EC.HKEY.MHKQ (0x1004)
4260                        }
4261                        Else
4262                        {
4263                            Notify (\_SB.SLPB, 0x80)
4264                        }
4265                    }
4266
4267                    Method (_Q16, 0, NotSerialized)
4268                    {
4269                        \_SB.PCI0.AGP.VID.VSWT ()
4270                    }
4271
4272                    Method (_Q17, 0, NotSerialized)
4273                    {
4274                        If (LNot (\WNTF))
4275                        {
4276                            VEXP ()
4277                        }
4278                    }
4279
4280                    Method (_Q1B, 0, NotSerialized)
4281                    {
4282                        \_SB.PCI0.ISA.EC.HKEY.MHKQ (0x100C)
4283                    }
4284
4285                    Method (_Q1F, 0, NotSerialized)
4286                    {
4287                        \LGHT (0x02)
4288                    }
4289
4290                    Method (_Q26, 0, NotSerialized)
4291                    {
4292                        \_SB.PCI0.ISA.HBDS ()
4293                        Sleep (0x01F4)
4294                        Notify (AC, 0x00)
4295                        Notify (\_TZ.THM0, 0x80)
4296                        If (\GVEN)
4297                        {
4298                            \GVIL (0x00)
4299                        }
4300                    }
4301
4302                    Method (_Q27, 0, NotSerialized)
4303                    {
4304                        \_SB.PCI0.ISA.HBEN ()
4305                        Sleep (0x01F4)
4306                        Notify (AC, 0x00)
4307                        Notify (\_TZ.THM0, 0x80)
4308                        If (\GVEN)
4309                        {
4310                            \GVIL (0x01)
4311                        }
4312                    }
4313
4314                    Method (_Q2A, 0, NotSerialized)
4315                    {
4316                        \_SB.PCI0.AGP.VID.VLOC (0x01)
4317                        \_SB.PCI0.ISA.EC.HKEY.MHKQ (0x5002)
4318                        Notify (\_SB.LID, 0x80)
4319                    }
4320
4321                    Method (_Q2B, 0, NotSerialized)
4322                    {
4323                        \_SB.PCI0.ISA.EC.HKEY.MHKQ (0x5001)
4324                        \LGHT (0x00)
4325                        Notify (\_SB.LID, 0x80)
4326                    }
4327
4328                    Method (_Q3D, 0, NotSerialized)
4329                    {
4330                        \FERR ()
4331                    }
4332
4333                    Method (_Q48, 0, NotSerialized)
4334                    {
4335                        If (\GVEN)
4336                        {
4337                            \GVIL (0x04)
4338                        }
4339                    }
4340
4341                    Method (_Q49, 0, NotSerialized)
4342                    {
4343                        If (\GVEN)
4344                        {
4345                            \GVIL (0x05)
4346                        }
4347                    }
4348
4349                    Method (_Q7F, 0, NotSerialized)
4350                    {
4351                        Fatal (0x01, 0x80000001, 0x00)
4352                    }
4353
4354                    Method (_Q20, 0, NotSerialized)
4355                    {
4356                        Notify (BAT0, 0x80)
4357                        Notify (BAT1, 0x80)
4358                    }
4359
4360                    Method (_Q21, 0, NotSerialized)
4361                    {
4362                        Notify (BAT0, 0x80)
4363                        Notify (BAT1, 0x80)
4364                    }
4365
4366                    Method (_Q22, 0, NotSerialized)
4367                    {
4368                        Notify (BAT0, 0x80)
4369                        Notify (BAT1, 0x80)
4370                    }
4371
4372                    Method (_Q23, 0, NotSerialized)
4373                    {
4374                        Store (HB0A, Local0)
4375                        If (XOr (^BAT0.B0ST, Local0))
4376                        {
4377                            Store (Local0, ^BAT0.B0ST)
4378                            Notify (BAT0, 0x81)
4379                        }
4380                        Else
4381                        {
4382                            Notify (BAT0, 0x80)
4383                        }
4384
4385                        Store (HB1A, Local0)
4386                        If (XOr (^BAT1.B1ST, Local0))
4387                        {
4388                            Store (Local0, ^BAT1.B1ST)
4389                            _Q38 ()
4390                        }
4391                        Else
4392                        {
4393                            If (LAnd (^BAT1.XB1S, Local0))
4394                            {
4395                                Notify (BAT1, 0x80)
4396                            }
4397                        }
4398                    }
4399
4400                    Method (_Q24, 0, NotSerialized)
4401                    {
4402                        Notify (BAT0, 0x80)
4403                    }
4404
4405                    Method (_Q25, 0, NotSerialized)
4406                    {
4407                        Notify (BAT1, 0x80)
4408                    }
4409
4410                    Name (BT0I, Package (0x0D)
4411                    {
4412                        0x00,
4413                        0x00,
4414                        0x00,
4415                        0x01,
4416                        0x2A30,
4417                        0x00,
4418                        0x00,
4419                        0x01,
4420                        0x01,
4421                        "ThinkPad Battery",
4422                        "",
4423                        "LION",
4424                        "IBM Corporation "
4425                    })
4426                    Name (BT0P, Package (0x04) {})
4427                    Name (BT0J, 0x00)
4428                    Device (BAT0)
4429                    {
4430                        Name (_HID, EisaId ("PNP0C0A"))
4431                        Name (_UID, 0x00)
4432                        Name (_PCL, Package (0x01)
4433                        {
4434                            \_SB
4435                        })
4436                        Name (B0ST, 0x00)
4437                        Method (_STA, 0, NotSerialized)
4438                        {
4439                            If (\H8DR)
4440                            {
4441                                Store (HB0A, B0ST)
4442                            }
4443                            Else
4444                            {
4445                                If (And (\RBEC (0x38), 0x80))
4446                                {
4447                                    Store (0x01, B0ST)
4448                                }
4449                                Else
4450                                {
4451                                    Store (0x00, B0ST)
4452                                }
4453                            }
4454
4455                            If (B0ST)
4456                            {
4457                                Return (0x1F)
4458                            }
4459                            Else
4460                            {
4461                                Return (0x0F)
4462                            }
4463                        }
4464
4465                        Method (_BIF, 0, NotSerialized)
4466                        {
4467                            AI2C ()
4468                            Store (0x0A, Local6)
4469                            Store (0x01, Local5)
4470                            While (LAnd (Local5, Local6))
4471                            {
4472                                If (HB0A)
4473                                {
4474                                    Store (I2RB (Zero, 0x01, 0x10), Local7)
4475                                    If (LOr (LEqual (HMBC, 0x1C), Local7))
4476                                    {
4477                                        Store (0x00, Local5)
4478                                    }
4479                                    Else
4480                                    {
4481                                        Sleep (0x03E8)
4482                                        Decrement (Local6)
4483                                        Store (0x8080, Local7)
4484                                    }
4485                                }
4486                                Else
4487                                {
4488                                    Store (0x00, Local6)
4489                                    Store (0x00, Local7)
4490                                }
4491                            }
4492
4493                            If (LOr (Local7, Local5))
4494                            {
4495                                Store (0x00, Index (BT0I, 0x00))
4496                                Store (0xFFFFFFFF, Index (BT0I, 0x01))
4497                                Store (0x00, Index (BT0I, 0x05))
4498                                Store (0x00, Index (BT0I, 0x06))
4499                                Store (0xFFFFFFFF, Index (BT0I, 0x02))
4500                            }
4501                            Else
4502                            {
4503                                Store (HBPU, Index (BT0I, 0x00))
4504                                Store (HBRC, Local0)
4505                                Store (Local0, Index (BT0I, 0x01))
4506                                Store (Divide (Local0, 0x14, ), Index (BT0I, 0x05))
4507                                Store (Divide (Local0, 0x64, ), Index (BT0I, 0x06))
4508                                Store (HBFC, Index (BT0I, 0x02))
4509                                Store (Divide (HBFC, 0x64, ), BT0J)
4510                            }
4511
4512                            RI2C ()
4513                            If (Local7) {}
4514                            Return (BT0I)
4515                        }
4516
4517                        Method (_BST, 0, NotSerialized)
4518                        {
4519                            AI2C ()
4520                            Store (I2RB (Zero, 0x01, 0x10), Local7)
4521                            If (LOr (LNot (LEqual (HMBC, 0x1C)), Local7))
4522                            {
4523                                Store (0x00, Index (BT0P, 0x03))
4524                                Store (0x00, Index (BT0P, 0x02))
4525                                Store (0x00, Index (BT0P, 0x01))
4526                                Store (0x04, Index (BT0P, 0x00))
4527                            }
4528                            Else
4529                            {
4530                                Store (HBVL, Local0)
4531                                Store (Local0, Index (BT0P, 0x03))
4532                                Store (Add (HBCC, BT0J), Local1)
4533                                If (LNot (LLess (Local1, HBFC)))
4534                                {
4535                                    Store (HBFC, Index (BT0P, 0x02))
4536                                }
4537                                Else
4538                                {
4539                                    Store (Local1, Index (BT0P, 0x02))
4540                                }
4541
4542                                Store (HBEC, Local1)
4543                                If (LNot (LLess (Local1, 0x8000)))
4544                                {
4545                                    Store (Subtract (0x00010000, Local1), Local2)
4546                                }
4547                                Else
4548                                {
4549                                    Store (Local1, Local2)
4550                                }
4551
4552                                If (HBPU)
4553                                {
4554                                    Store (Local2, Index (BT0P, 0x01))
4555                                }
4556                                Else
4557                                {
4558                                    Multiply (Local0, Local2, Local1)
4559                                    Store (Divide (Local1, 0x03E8, ), Index (BT0P, 0x01))
4560                                }
4561
4562                                If (HB0C)
4563                                {
4564                                    Store (0x02, Index (BT0P, 0x00))
4565                                }
4566                                Else
4567                                {
4568                                    If (HB0D)
4569                                    {
4570                                        Store (0x01, Index (BT0P, 0x00))
4571                                    }
4572                                    Else
4573                                    {
4574                                        Store (0x00, Index (BT0P, 0x00))
4575                                    }
4576                                }
4577
4578                                If (HB0L) {}
4579                                Else
4580                                {
4581                                    Or (DerefOf (Index (BT0P, 0x00)), 0x04, Index (BT0P, 0x00))
4582                                }
4583                            }
4584
4585                            RI2C ()
4586                            Return (BT0P)
4587                        }
4588
4589                        Method (_BTP, 1, NotSerialized)
4590                        {
4591                            And (HAM4, 0xEF, HAM4)
4592                            If (Arg0)
4593                            {
4594                                Subtract (Arg0, BT0J, Local1)
4595                                If (LNot (DerefOf (Index (BT0I, 0x00))))
4596                                {
4597                                    Divide (Local1, 0x0A, Local0, Local1)
4598                                }
4599
4600                                And (Local1, 0xFF, HT0L)
4601                                And (ShiftRight (Local1, 0x08), 0xFF, HT0H)
4602                                Or (HAM4, 0x10, HAM4)
4603                            }
4604                        }
4605                    }
4606
4607                    Name (BT1I, Package (0x0D)
4608                    {
4609                        0x00,
4610                        0x00,
4611                        0x00,
4612                        0x01,
4613                        0x2A30,
4614                        0x00,
4615                        0x00,
4616                        0x01,
4617                        0x01,
4618                        "ThinkPad Battery",
4619                        "",
4620                        "LION",
4621                        "IBM Corporation "
4622                    })
4623                    Name (BT1P, Package (0x04) {})
4624                    Name (BT1J, 0x00)
4625                    Device (BAT1)
4626                    {
4627                        Name (_HID, EisaId ("PNP0C0A"))
4628                        Name (_UID, 0x01)
4629                        Name (_PCL, Package (0x01)
4630                        {
4631                            \_SB
4632                        })
4633                        Name (B1ST, 0x00)
4634                        Name (XB1S, 0x01)
4635                        Method (_STA, 0, NotSerialized)
4636                        {
4637                            If (\H8DR)
4638                            {
4639                                Store (HB1A, B1ST)
4640                            }
4641                            Else
4642                            {
4643                                If (And (\RBEC (0x39), 0x80))
4644                                {
4645                                    Store (0x01, B1ST)
4646                                }
4647                                Else
4648                                {
4649                                    Store (0x00, B1ST)
4650                                }
4651                            }
4652
4653                            If (B1ST)
4654                            {
4655                                If (XB1S)
4656                                {
4657                                    Return (0x1F)
4658                                }
4659                                Else
4660                                {
4661                                    If (\WNTF)
4662                                    {
4663                                        Return (0x00)
4664                                    }
4665                                    Else
4666                                    {
4667                                        Return (0x1F)
4668                                    }
4669                                }
4670
4671                                Return (0x1F)
4672                            }
4673                            Else
4674                            {
4675                                If (\WNTF)
4676                                {
4677                                    Return (0x00)
4678                                }
4679                                Else
4680                                {
4681                                    Return (0x0F)
4682                                }
4683                            }
4684                        }
4685
4686                        Method (_BIF, 0, NotSerialized)
4687                        {
4688                            AI2C ()
4689                            Store (0x0A, Local6)
4690                            Store (0x01, Local5)
4691                            While (LAnd (Local5, Local6))
4692                            {
4693                                If (HB1A)
4694                                {
4695                                    Store (I2RB (Zero, 0x01, 0x11), Local7)
4696                                    If (LOr (LEqual (HMBC, 0x1C), Local7))
4697                                    {
4698                                        Store (0x00, Local5)
4699                                    }
4700                                    Else
4701                                    {
4702                                        Sleep (0x03E8)
4703                                        Decrement (Local6)
4704                                        Store (0x8080, Local7)
4705                                    }
4706                                }
4707                                Else
4708                                {
4709                                    Store (0x00, Local6)
4710                                    Store (0x00, Local7)
4711                                }
4712                            }
4713
4714                            If (LOr (Local7, Local5))
4715                            {
4716                                Store (0x00, Index (BT1I, 0x00))
4717                                Store (0xFFFFFFFF, Index (BT1I, 0x01))
4718                                Store (0x00, Index (BT1I, 0x05))
4719                                Store (0x00, Index (BT1I, 0x06))
4720                                Store (0xFFFFFFFF, Index (BT1I, 0x02))
4721                            }
4722                            Else
4723                            {
4724                                Store (HBPU, Index (BT1I, 0x00))
4725                                Store (HBRC, Local0)
4726                                Store (Local0, Index (BT1I, 0x01))
4727                                Store (Divide (Local0, 0x14, ), Index (BT1I, 0x05))
4728                                Store (Divide (Local0, 0x64, ), Index (BT1I, 0x06))
4729                                Store (HBFC, Index (BT1I, 0x02))
4730                                Store (Divide (HBFC, 0x64, ), BT1J)
4731                            }
4732
4733                            RI2C ()
4734                            If (Local7) {}
4735                            Return (BT1I)
4736                        }
4737
4738                        Method (_BST, 0, NotSerialized)
4739                        {
4740                            AI2C ()
4741                            Store (I2RB (Zero, 0x01, 0x11), Local7)
4742                            If (LOr (LNot (LEqual (HMBC, 0x1C)), Local7))
4743                            {
4744                                Store (0x00, Index (BT1P, 0x03))
4745                                Store (0x00, Index (BT1P, 0x02))
4746                                Store (0x00, Index (BT1P, 0x01))
4747                                Store (0x04, Index (BT1P, 0x00))
4748                            }
4749                            Else
4750                            {
4751                                Store (HBVL, Local0)
4752                                Store (Local0, Index (BT1P, 0x03))
4753                                Store (Add (HBCC, BT1J), Local1)
4754                                If (LNot (LLess (Local1, HBFC)))
4755                                {
4756                                    Store (HBFC, Index (BT1P, 0x02))
4757                                }
4758                                Else
4759                                {
4760                                    Store (Local1, Index (BT1P, 0x02))
4761                                }
4762
4763                                Store (HBEC, Local1)
4764                                If (LNot (LLess (Local1, 0x8000)))
4765                                {
4766                                    Store (Subtract (0x00010000, Local1), Local2)
4767                                }
4768                                Else
4769                                {
4770                                    Store (Local1, Local2)
4771                                }
4772
4773                                If (HBPU)
4774                                {
4775                                    Store (Local2, Index (BT1P, 0x01))
4776                                }
4777                                Else
4778                                {
4779                                    Multiply (Local0, Local2, Local1)
4780                                    Store (Divide (Local1, 0x03E8, ), Index (BT1P, 0x01))
4781                                }
4782
4783                                If (HB1C)
4784                                {
4785                                    Store (0x02, Index (BT1P, 0x00))
4786                                }
4787                                Else
4788                                {
4789                                    If (HB1D)
4790                                    {
4791                                        Store (0x01, Index (BT1P, 0x00))
4792                                    }
4793                                    Else
4794                                    {
4795                                        Store (0x00, Index (BT1P, 0x00))
4796                                    }
4797                                }
4798
4799                                If (HB1L) {}
4800                                Else
4801                                {
4802                                    Or (DerefOf (Index (BT1P, 0x00)), 0x04, Index (BT1P, 0x00))
4803                                }
4804                            }
4805
4806                            RI2C ()
4807                            Return (BT1P)
4808                        }
4809
4810                        Method (_BTP, 1, NotSerialized)
4811                        {
4812                            And (HAM4, 0xDF, HAM4)
4813                            If (Arg0)
4814                            {
4815                                Subtract (Arg0, BT1J, Local1)
4816                                If (LNot (DerefOf (Index (BT1I, 0x00))))
4817                                {
4818                                    Divide (Local1, 0x0A, Local0, Local1)
4819                                }
4820
4821                                And (Local1, 0xFF, HT1L)
4822                                And (ShiftRight (Local1, 0x08), 0xFF, HT1H)
4823                                Or (HAM4, 0x20, HAM4)
4824                            }
4825                        }
4826                    }
4827
4828                    Device (AC)
4829                    {
4830                        Name (_HID, "ACPI0003")
4831                        Name (_UID, 0x00)
4832                        Name (_PCL, Package (0x01)
4833                        {
4834                            \_SB
4835                        })
4836                        Method (_PSR, 0, NotSerialized)
4837                        {
4838                            Return (HPAC)
4839                        }
4840
4841                        Method (_STA, 0, NotSerialized)
4842                        {
4843                            Return (0x0F)
4844                        }
4845                    }
4846
4847                    Scope (\_SB.PCI0.ISA.EC)
4848                    {
4849                        Field (ECOR, ByteAcc, Lock, Preserve)
4850                        {
4851                            Offset (0x50),
4852                            HMPR,   8,
4853                            HMST,   5,
4854                                ,   1,
4855                            HMAR,   1,
4856                            HMDN,   1,
4857                            HMAD,   8,
4858                            HMCM,   8,
4859                            HMDT,   8,
4860                            Offset (0x74),
4861                            HMBC,   8
4862                        }
4863
4864                        Field (ECOR, ByteAcc, Lock, Preserve)
4865                        {
4866                            Offset (0x54),
4867                            HBPU,   8,
4868                            Offset (0x56),
4869                            HBST,   8,
4870                            HBID,   4,
4871                            Offset (0x58),
4872                            HBRC,   32,
4873                            HBFC,   32,
4874                            HBCC,   32,
4875                            HBVL,   16,
4876                            HBEC,   16,
4877                            HBBT,   16,
4878                            HBNF,   16,
4879                            HBTC,   16,
4880                            HBCT,   16,
4881                            Offset (0x74),
4882                            Offset (0x100)
4883                        }
4884
4885                        Field (ECOR, ByteAcc, Lock, Preserve)
4886                        {
4887                            Offset (0x54),
4888                            HBTS,   8,
4889                            HBAF,   1,
4890                            Offset (0x56),
4891                            HBSD,   16,
4892                            HBDT,   16,
4893                            HBH0,   16,
4894                            HBL0,   16,
4895                            HBH1,   16,
4896                            HBL1,   16,
4897                            HBH2,   16,
4898                            HBL2,   16
4899                        }
4900
4901                        Field (ECOR, ByteAcc, Lock, Preserve)
4902                        {
4903                            Offset (0x54),
4904                            HF_Z,   8,
4905                            HF_D,   8,
4906                            HZIP,   8,
4907                            HDVD,   8,
4908                            HHFD,   8,
4909                            HF_H,   8,
4910                            HHDD,   8,
4911                            HADP,   8,
4912                            HLS,    8,
4913                            HF_C,   8,
4914                            HCRW,   8,
4915                            HCD,    8,
4916                            HR01,   8,
4917                            HFDD,   8,
4918                            HIMP,   8,
4919                            HNON,   8
4920                        }
4921
4922                        Mutex (I2CM, 0x07)
4923                        Method (AI2C, 0, NotSerialized)
4924                        {
4925                            Return (Acquire (I2CM, 0xFFFF))
4926                        }
4927
4928                        Method (RI2C, 0, NotSerialized)
4929                        {
4930                            Release (I2CM)
4931                        }
4932
4933                        Method (I2CR, 3, NotSerialized)
4934                        {
4935                            AI2C ()
4936                            Store (Arg0, HCSL)
4937                            If (HCAD)
4938                            {
4939                                Or (ShiftLeft (Arg1, 0x01), 0x01, HMAD)
4940                            }
4941                            Else
4942                            {
4943                                Store (Arg1, HMAD)
4944                            }
4945
4946                            Store (Arg2, HMCM)
4947                            Store (0x07, HMPR)
4948                            Store (CHKS (), Local7)
4949                            If (Local7)
4950                            {
4951                                Store (Local7, Local0)
4952                            }
4953                            Else
4954                            {
4955                                Store (HMDT, Local0)
4956                            }
4957
4958                            RI2C ()
4959                            Return (Local0)
4960                        }
4961
4962                        Method (I2CW, 4, NotSerialized)
4963                        {
4964                            AI2C ()
4965                            Store (Arg0, HCSL)
4966                            If (HCAD)
4967                            {
4968                                Or (ShiftLeft (Arg1, 0x01), 0x01, HMAD)
4969                            }
4970                            Else
4971                            {
4972                                Store (Arg1, HMAD)
4973                            }
4974
4975                            Store (Arg2, HMCM)
4976                            Store (Arg3, HMDT)
4977                            Store (0x06, HMPR)
4978                            Store (CHKS (), Local0)
4979                            RI2C ()
4980                            Return (Local0)
4981                        }
4982
4983                        Method (I2RB, 3, NotSerialized)
4984                        {
4985                            Store (Arg0, HCSL)
4986                            If (HCAD)
4987                            {
4988                                Store (ShiftLeft (Arg1, 0x01), HMAD)
4989                            }
4990                            Else
4991                            {
4992                                Store (Arg1, HMAD)
4993                            }
4994
4995                            Store (Arg2, HMCM)
4996                            Store (0x0B, HMPR)
4997                            Return (CHKS ())
4998                        }
4999
5000                        Method (I2WB, 4, NotSerialized)
5001                        {
5002                            Store (Arg0, HCSL)
5003                            If (HCAD)
5004                            {
5005                                Store (ShiftLeft (Arg1, 0x01), HMAD)
5006                            }
5007                            Else
5008                            {
5009                                Store (Arg1, HMAD)
5010                            }
5011
5012                            Store (Arg2, HMCM)
5013                            Store (Arg3, HMBC)
5014                            Store (0x0A, HMPR)
5015                            Return (CHKS ())
5016                        }
5017
5018                        Method (CHKS, 0, NotSerialized)
5019                        {
5020                            Store (0x03E8, Local0)
5021                            While (HMPR)
5022                            {
5023                                Sleep (0x01)
5024                                Decrement (Local0)
5025                                If (LNot (Local0))
5026                                {
5027                                    Return (0x8080)
5028                                }
5029                            }
5030
5031                            If (HMDN)
5032                            {
5033                                If (HMST)
5034                                {
5035                                    Return (Or (0x8000, HMST))
5036                                }
5037                                Else
5038                                {
5039                                    Return (Zero)
5040                                }
5041                            }
5042                            Else
5043                            {
5044                                Return (0x8081)
5045                            }
5046                        }
5047                    }
5048
5049                    Name (VDHK, 0x00)
5050                    Method (GHKS, 0, NotSerialized)
5051                    {
5052                        Store (\GHKY (), VDHK)
5053                    }
5054
5055                    Device (HKEY)
5056                    {
5057                        Name (_HID, EisaId ("IBM0068"))
5058                        Method (_STA, 0, NotSerialized)
5059                        {
5060                            If (VDHK)
5061                            {
5062                                Return (0x0F)
5063                            }
5064                            Else
5065                            {
5066                                Return (0x00)
5067                            }
5068                        }
5069
5070                        Name (DHKC, 0x00)
5071                        Name (DHKB, 0x01)
5072                        Mutex (XDHK, 0x07)
5073                        Name (DHKH, 0x00)
5074                        Name (DHKW, 0x00)
5075                        Name (DHKS, 0x00)
5076                        Name (DHKD, 0x00)
5077                        Method (MHKS, 0, NotSerialized)
5078                        {
5079                            Notify (\_SB.SLPB, 0x80)
5080                        }
5081
5082                        Method (MHKC, 1, NotSerialized)
5083                        {
5084                            Store (Arg0, DHKC)
5085                        }
5086
5087                        Method (MHKP, 0, NotSerialized)
5088                        {
5089                            Acquire (XDHK, 0xFFFF)
5090                            If (DHKW)
5091                            {
5092                                Store (DHKW, Local1)
5093                                Store (Zero, DHKW)
5094                            }
5095                            Else
5096                            {
5097                                If (DHKD)
5098                                {
5099                                    Store (DHKD, Local1)
5100                                    Store (Zero, DHKD)
5101                                }
5102                                Else
5103                                {
5104                                    If (DHKS)
5105                                    {
5106                                        Store (DHKS, Local1)
5107                                        Store (Zero, DHKS)
5108                                    }
5109                                    Else
5110                                    {
5111                                        Store (DHKH, Local1)
5112                                        Store (Zero, DHKH)
5113                                    }
5114                                }
5115                            }
5116
5117                            Release (XDHK)
5118                            Return (Local1)
5119                        }
5120
5121                        Method (MHKE, 1, NotSerialized)
5122                        {
5123                            Store (Arg0, DHKB)
5124                            Acquire (XDHK, 0xFFFF)
5125                            Store (Zero, DHKH)
5126                            Store (Zero, DHKW)
5127                            Store (Zero, DHKS)
5128                            Store (Zero, DHKD)
5129                            Release (XDHK)
5130                        }
5131
5132                        Method (MHKQ, 1, NotSerialized)
5133                        {
5134                            If (DHKB)
5135                            {
5136                                If (DHKC)
5137                                {
5138                                    Acquire (XDHK, 0xFFFF)
5139                                    If (LLess (Arg0, 0x1000)) {}
5140                                    Else
5141                                    {
5142                                        If (LLess (Arg0, 0x2000))
5143                                        {
5144                                            Store (Arg0, DHKH)
5145                                        }
5146                                        Else
5147                                        {
5148                                            If (LLess (Arg0, 0x3000))
5149                                            {
5150                                                Store (Arg0, DHKW)
5151                                            }
5152                                            Else
5153                                            {
5154                                                If (LLess (Arg0, 0x4000))
5155                                                {
5156                                                    Store (Arg0, DHKS)
5157                                                }
5158                                                Else
5159                                                {
5160                                                    If (LLess (Arg0, 0x5000))
5161                                                    {
5162                                                        Store (Arg0, DHKD)
5163                                                    }
5164                                                    Else
5165                                                    {
5166                                                        If (LLess (Arg0, 0x6000))
5167                                                        {
5168                                                            Store (Arg0, DHKH)
5169                                                        }
5170                                                        Else
5171                                                        {
5172                                                        }
5173                                                    }
5174                                                }
5175                                            }
5176                                        }
5177                                    }
5178
5179                                    Release (XDHK)
5180                                    If (LEqual (DHKH, 0x1003))
5181                                    {
5182                                        \LGHT (0x00)
5183                                    }
5184
5185                                    Notify (HKEY, 0x80)
5186                                }
5187                                Else
5188                                {
5189                                    If (LEqual (Arg0, 0x1004))
5190                                    {
5191                                        Notify (\_SB.SLPB, 0x80)
5192                                    }
5193                                }
5194                            }
5195                        }
5196
5197                        Method (XGWT, 0, NotSerialized)
5198                        {
5199                            \VUPS (0x80)
5200                            If (\WNTF)
5201                            {
5202                                Store (0x00, Local0)
5203                                If (\VCDL)
5204                                {
5205                                    Or (0x01, Local0, Local0)
5206                                }
5207
5208                                If (\VCDC)
5209                                {
5210                                    Or (0x02, Local0, Local0)
5211                                }
5212
5213                                If (\VCDT)
5214                                {
5215                                    Or (0x04, Local0, Local0)
5216                                }
5217
5218                                Return (Local0)
5219                            }
5220                            Else
5221                            {
5222                                Return (0xFFFF)
5223                            }
5224                        }
5225
5226                        Method (XSWT, 1, NotSerialized)
5227                        {
5228                            If (\WNTF)
5229                            {
5230                                And (0x03, Arg0, Local0)
5231                                If (Local0)
5232                                {
5233                                    \_SB.PCI0.AGP.VID.ASWT (Local0, 0x01)
5234                                }
5235                            }
5236                            Else
5237                            {
5238                                Return (0xFFFF)
5239                            }
5240                        }
5241
5242                        Method (MHKB, 1, NotSerialized)
5243                        {
5244                            If (LEqual (Arg0, 0x00))
5245                            {
5246                                \_SB.PCI0.ISA.EC.BEEP (0x11)
5247                            }
5248                            Else
5249                            {
5250                                If (LEqual (Arg0, 0x01))
5251                                {
5252                                    \_SB.PCI0.ISA.EC.BEEP (0x10)
5253                                }
5254                                Else
5255                                {
5256                                }
5257                            }
5258                        }
5259
5260                        Method (MHKX, 0, NotSerialized)
5261                        {
5262                            If (\_SB.PCI0.ISA.FDC.DCFD)
5263                            {
5264                                Return (0x01)
5265                            }
5266                            Else
5267                            {
5268                                Return (0x03)
5269                            }
5270                        }
5271                    }
5272                }
5273            }
5274
5275            Device (CBS0)
5276            {
5277                Name (_ADR, 0x00020000)
5278                OperationRegion (CBUS, PCI_Config, 0x00, 0x0100)
5279                Field (CBUS, DWordAcc, NoLock, Preserve)
5280                {
5281                    Offset (0x40),
5282                    SVID,   16,
5283                    SSID,   16,
5284                    LGDC,   32,
5285                    Offset (0x80),
5286                    SYSC,   32,
5287                    MCTL,   8,
5288                    Offset (0x91),
5289                    CCTL,   8,
5290                    Offset (0x93),
5291                    DIAG,   8
5292                }
5293
5294                Method (_INI, 0, NotSerialized)
5295                {
5296                    Store (Zero, LGDC)
5297                    And (CCTL, 0x7F, CCTL)
5298                    Or (SYSC, 0x01, SYSC)
5299                    If (LNot (And (_ADR, 0xFFFF)))
5300                    {
5301                        And (MCTL, 0x83, BMCL)
5302                    }
5303                }
5304
5305                Name (BMCL, 0x00)
5306                Name (PWRS, 0x00)
5307                Method (_PSC, 0, NotSerialized)
5308                {
5309                    Return (PWRS)
5310                }
5311
5312                Method (_PS0, 0, NotSerialized)
5313                {
5314                    PWUP ()
5315                    Store (0x00, PWRS)
5316                }
5317
5318                Method (_PS3, 0, NotSerialized)
5319                {
5320                    Store (0x03, PWRS)
5321                    PWDN ()
5322                }
5323
5324                Method (PWDN, 0, NotSerialized)
5325                {
5326                    If (LAnd (\_SB.PCI0.CBS0.PWRS, \_SB.PCI0.CBS1.PWRS))
5327                    {
5328                        If (LNot (And (_ADR, 0xFFFF)))
5329                        {
5330                            And (MCTL, 0x83, BMCL)
5331                            And (MCTL, 0xFC, Local0)
5332                            Or (Local0, 0x80, MCTL)
5333                        }
5334                        Else
5335                        {
5336                            \_SB.PCI0.CBS0.PWDN ()
5337                        }
5338                    }
5339                }
5340
5341                Method (PWUP, 0, NotSerialized)
5342                {
5343                    If (LAnd (\_SB.PCI0.CBS0.PWRS, \_SB.PCI0.CBS1.PWRS))
5344                    {
5345                        If (LNot (And (_ADR, 0xFFFF)))
5346                        {
5347                            And (MCTL, 0x7C, Local0)
5348                            Or (Local0, BMCL, MCTL)
5349                        }
5350                        Else
5351                        {
5352                            \_SB.PCI0.CBS0.PWUP ()
5353                        }
5354                    }
5355                }
5356            }
5357
5358            Device (CBS1)
5359            {
5360                Name (_ADR, 0x00020001)
5361                OperationRegion (CBUS, PCI_Config, 0x00, 0x0100)
5362                Field (CBUS, DWordAcc, NoLock, Preserve)
5363                {
5364                    Offset (0x40),
5365                    SVID,   16,
5366                    SSID,   16,
5367                    LGDC,   32,
5368                    Offset (0x80),
5369                    SYSC,   32,
5370                    MCTL,   8,
5371                    Offset (0x91),
5372                    CCTL,   8,
5373                    Offset (0x93),
5374                    DIAG,   8
5375                }
5376
5377                Method (_INI, 0, NotSerialized)
5378                {
5379                    Store (Zero, LGDC)
5380                    And (CCTL, 0x7F, CCTL)
5381                    Or (SYSC, 0x01, SYSC)
5382                    If (LNot (And (_ADR, 0xFFFF)))
5383                    {
5384                        And (MCTL, 0x83, BMCL)
5385                    }
5386                }
5387
5388                Name (BMCL, 0x00)
5389                Name (PWRS, 0x00)
5390                Method (_PSC, 0, NotSerialized)
5391                {
5392                    Return (PWRS)
5393                }
5394
5395                Method (_PS0, 0, NotSerialized)
5396                {
5397                    PWUP ()
5398                    Store (0x00, PWRS)
5399                }
5400
5401                Method (_PS3, 0, NotSerialized)
5402                {
5403                    Store (0x03, PWRS)
5404                    PWDN ()
5405                }
5406
5407                Method (PWDN, 0, NotSerialized)
5408                {
5409                    If (LAnd (\_SB.PCI0.CBS0.PWRS, \_SB.PCI0.CBS1.PWRS))
5410                    {
5411                        If (LNot (And (_ADR, 0xFFFF)))
5412                        {
5413                            And (MCTL, 0x83, BMCL)
5414                            And (MCTL, 0xFC, Local0)
5415                            Or (Local0, 0x80, MCTL)
5416                        }
5417                        Else
5418                        {
5419                            \_SB.PCI0.CBS0.PWDN ()
5420                        }
5421                    }
5422                }
5423
5424                Method (PWUP, 0, NotSerialized)
5425                {
5426                    If (LAnd (\_SB.PCI0.CBS0.PWRS, \_SB.PCI0.CBS1.PWRS))
5427                    {
5428                        If (LNot (And (_ADR, 0xFFFF)))
5429                        {
5430                            And (MCTL, 0x7C, Local0)
5431                            Or (Local0, BMCL, MCTL)
5432                        }
5433                        Else
5434                        {
5435                            \_SB.PCI0.CBS0.PWUP ()
5436                        }
5437                    }
5438                }
5439            }
5440
5441            Device (DOCK)
5442            {
5443                Name (_ADR, 0x00040000)
5444                Method (_BDN, 0, NotSerialized)
5445                {
5446                    Return (GDID ())
5447                }
5448
5449                Method (_UID, 0, NotSerialized)
5450                {
5451                    Return (GDSR ())
5452                }
5453
5454                Name (_PRT, Package (0x06)
5455                {
5456                    Package (0x04)
5457                    {
5458                        0xFFFF,
5459                        0x00,
5460                        \_SB.LNKA,
5461                        0x00
5462                    },
5463
5464                    Package (0x04)
5465                    {
5466                        0xFFFF,
5467                        0x01,
5468                        \_SB.LNKB,
5469                        0x00
5470                    },
5471
5472                    Package (0x04)
5473                    {
5474                        0xFFFF,
5475                        0x02,
5476                        \_SB.LNKC,
5477                        0x00
5478                    },
5479
5480                    Package (0x04)
5481                    {
5482                        0xFFFF,
5483                        0x03,
5484                        \_SB.LNKD,
5485                        0x00
5486                    },
5487
5488                    Package (0x04)
5489                    {
5490                        0x0001FFFF,
5491                        0x00,
5492                        \_SB.LNKB,
5493                        0x00
5494                    },
5495
5496                    Package (0x04)
5497                    {
5498                        0x0002FFFF,
5499                        0x00,
5500                        \_SB.LNKC,
5501                        0x00
5502                    }
5503                })
5504                Method (_REG, 2, NotSerialized)
5505                {
5506                    If (LEqual (Arg0, 0x02))
5507                    {
5508                        If (Arg1)
5509                        {
5510                            Sleep (0x19)
5511                            And (\_SB.PCI0.ISA.SIRQ, 0x3F, \_SB.PCI0.ISA.SIRQ)
5512                        }
5513
5514                        \_SB.PCI0.DOCK.CBS2.DREG (0x02, Arg1)
5515                        \_SB.PCI0.DOCK.CBS3.DREG (0x02, Arg1)
5516                        \_SB.PCI0.DOCK.IDE1.DREG (0x02, Arg1)
5517                        If (Arg1)
5518                        {
5519                            Or (\_SB.PCI0.ISA.SIRQ, 0xC0, \_SB.PCI0.ISA.SIRQ)
5520                            Stall (0x64)
5521                            And (\_SB.PCI0.ISA.SIRQ, 0xBF, \_SB.PCI0.ISA.SIRQ)
5522                            LTCY ()
5523                        }
5524                    }
5525                }
5526
5527                Method (_INI, 0, NotSerialized)
5528                {
5529                    If (GDID ())
5530                    {
5531                        PPEN (0x00)
5532                        PPIN ()
5533                        PPEN (0x01)
5534                        If (\W98F)
5535                        {
5536                            _REG (0x02, 0x01)
5537                        }
5538
5539                        DATT (0x00, 0x00)
5540                        DATT (0x01, 0x01)
5541                    }
5542                    Else
5543                    {
5544                        DATT (0x00, 0x01)
5545                        DATT (0x01, 0x00)
5546                    }
5547
5548                    DDWK (0x00)
5549                }
5550
5551                Method (_STA, 0, NotSerialized)
5552                {
5553                    If (\W98F)
5554                    {
5555                        If (DFLG (0x02, 0x08))
5556                        {
5557                            \_SB.PCI0.ISA.EC.HKEY.MHKQ (DHKE)
5558                            Notify (\_SB.PCI0.DOCK, 0x01)
5559                            DFLG (0x01, 0x08)
5560                        }
5561                    }
5562
5563                    \_SB.PCI0.DOCK.WURQ ()
5564                    If (LEqual (GDID (), 0x4A004D24))
5565                    {
5566                        Store (0x0F, Local0)
5567                    }
5568                    Else
5569                    {
5570                        If (LNot (\W98F))
5571                        {
5572                            Store (0x00, Local0)
5573                        }
5574                        Else
5575                        {
5576                            Store (0x0C, Local0)
5577                        }
5578                    }
5579
5580                    Return (Local0)
5581                }
5582
5583                Name (_PRW, Package (0x02)
5584                {
5585                    0x0B,
5586                    0x04
5587                })
5588                Method (_PSW, 1, NotSerialized)
5589                {
5590                    EPSW (0x02, Arg0)
5591                }
5592
5593                Name (DIDB, 0xFFFFFFFF)
5594                Method (DPTS, 1, NotSerialized)
5595                {
5596                    If (LAnd (LNot (LLess (Arg0, 0x01)), LNot (LGreater (Arg0, 0x04))))
5597                    {
5598                        DFLG (0x00, 0x0100)
5599                        Store (0x00, DHKE)
5600                        If (DFLG (0x02, 0x02))
5601                        {
5602                            Store (0x00, DOID)
5603                            DFLG (0x01, 0x02)
5604                        }
5605
5606                        If (GDID ())
5607                        {
5608                            DDWK (0x01)
5609                            If (LEqual (Arg0, 0x01))
5610                            {
5611                                SSU2 (0x01)
5612                            }
5613
5614                            If (LEqual (Arg0, 0x04))
5615                            {
5616                                Store (0x01, \_SB.PCI0.ISA.SLCK)
5617                            }
5618                        }
5619                        Else
5620                        {
5621                            DDWK (0x00)
5622                        }
5623
5624                        Store (GDID (), DIDB)
5625                    }
5626                }
5627
5628                Method (DWAK, 1, NotSerialized)
5629                {
5630                    Store (0xFFFFFFFF, DOID)
5631                    If (LAnd (LNot (LLess (Arg0, 0x01)), LNot (LGreater (Arg0, 0x04))))
5632                    {
5633                        If (LNot (LEqual (DIDB, 0x00)))
5634                        {
5635                            If (LNot (LEqual (GDID (), 0x00)))
5636                            {
5637                                PPEN (0x00)
5638                                PPIN ()
5639                                If (\W98F)
5640                                {
5641                                    _REG (0x02, 0x01)
5642                                    PPEN (0x01)
5643                                }
5644
5645                                ShiftLeft (Arg0, 0x08, DHKE)
5646                                If (DFLG (0x02, 0x08))
5647                                {
5648                                    Or (DHKE, 0x2004, DHKE)
5649                                    If (LNot (\W98F))
5650                                    {
5651                                        \_SB.PCI0.ISA.EC.HKEY.MHKQ (DHKE)
5652                                        Notify (\_SB.PCI0.DOCK, 0x03)
5653                                        DFLG (0x01, 0x08)
5654                                    }
5655                                }
5656                                Else
5657                                {
5658                                    If (LEqual (\_SB.PCI0.DOCK.GDID (), 0x4A004D24))
5659                                    {
5660                                        Notify (\_SB.PCI0.DOCK.IDE1, 0x00)
5661                                    }
5662
5663                                    If (LEqual (Arg0, 0x04))
5664                                    {
5665                                        \DHDP (0x03)
5666                                    }
5667                                }
5668                            }
5669                            Else
5670                            {
5671                                Notify (\_SB.PCI0.DOCK, 0x00)
5672                                \DHDP (0x00)
5673                            }
5674                        }
5675                        Else
5676                        {
5677                            If (LNot (LEqual (GDID (), 0x00)))
5678                            {
5679                                If (\_SB.PCI0.ISA.BUSC)
5680                                {
5681                                    _INI ()
5682                                    If (LNot (\W98F))
5683                                    {
5684                                        PPEN (0x00)
5685                                    }
5686                                }
5687
5688                                Notify (\_SB.PCI0.DOCK, 0x00)
5689                            }
5690                        }
5691
5692                        DDWK (0x00)
5693                        Store (0x00, \_SB.PCI0.ISA.SLCK)
5694                        DFLG (0x01, 0x0100)
5695                        If (LEqual (Arg0, 0x01))
5696                        {
5697                            SSU2 (0x00)
5698                        }
5699
5700                        If (\WMEF)
5701                        {
5702                            DFLG (0x01, 0x02)
5703                        }
5704                    }
5705                }
5706
5707                Method (_DCK, 1, NotSerialized)
5708                {
5709                    If (Arg0)
5710                    {
5711                        BCON (0x01)
5712                        Sleep (0x4B)
5713                        PPIN ()
5714                        If (LEqual (\_SB.PCI0.DOCK.GDID (), 0x4A004D24))
5715                        {
5716                            If (\W98F)
5717                            {
5718                                \DHDP (0x01)
5719                            }
5720                            Else
5721                            {
5722                                \DHDP (0x04)
5723                            }
5724                        }
5725
5726                        If (\W98F)
5727                        {
5728                            PPEN (0x01)
5729                            _REG (0x02, 0x01)
5730                        }
5731
5732                        DATT (0x00, 0x00)
5733                        DATT (0x01, 0x01)
5734                        If (\GVEN)
5735                        {
5736                            \GVIL (0x02)
5737                        }
5738                    }
5739                    Else
5740                    {
5741                        DFLG (0x00, 0x02)
5742                        \DHDP (0x00)
5743                        If (\W98F)
5744                        {
5745                            _REG (0x02, 0x00)
5746                        }
5747
5748                        PPUB (0x00)
5749                        DATT (0x00, 0x01)
5750                        DATT (0x01, 0x00)
5751                        If (\GVEN)
5752                        {
5753                            \GVIL (0x03)
5754                        }
5755                    }
5756
5757                    \_SB.PCI0.AGP.VID.VDSW (Arg0)
5758                    Return (0x01)
5759                }
5760
5761                Method (_EJ0, 1, NotSerialized)
5762                {
5763                    If (DFLG (0x02, 0x02))
5764                    {
5765                        If (Arg0)
5766                        {
5767                            BCON (0x00)
5768                            WUIN ()
5769                            Store (0x00, DOID)
5770                            Store (0x00, \_SB.PCI0.ISA.FDC.DCFD)
5771                            Store (0x01, \_SB.PCI0.ISA.FDC.XFDS)
5772                        }
5773
5774                        DFLG (0x01, 0x02)
5775                    }
5776                }
5777
5778                Method (_EJ4, 1, NotSerialized)
5779                {
5780                    Store (0x00, \_SB.PCI0.ISA.FDC.DCFD)
5781                }
5782
5783                Name (DOID, 0xFFFFFFFF)
5784                Name (DHKE, 0x00)
5785                Name (WUCT, 0x00)
5786                Mutex (WUDM, 0x07)
5787                Method (WURQ, 0, NotSerialized)
5788                {
5789                    If (And (DHKE, 0x2004))
5790                    {
5791                        If (LEqual (GDID (), 0x00))
5792                        {
5793                            Acquire (WUDM, 0xFFFF)
5794                            If (LNot (Decrement (WUCT)))
5795                            {
5796                                Store (0x01, Local0)
5797                            }
5798                            Else
5799                            {
5800                                Store (0x00, Local0)
5801                            }
5802
5803                            Release (WUDM)
5804                            If (Local0)
5805                            {
5806                                Store (0x00, DHKE)
5807                                \_SB.PCI0.ISA.EC.HKEY.MHKQ (0x4003)
5808                            }
5809                        }
5810                    }
5811                }
5812
5813                Method (WUIN, 0, NotSerialized)
5814                {
5815                    Acquire (WUDM, 0xFFFF)
5816                    If (\WNTF)
5817                    {
5818                        Store (0x21, WUCT)
5819                    }
5820                    Else
5821                    {
5822                        Store (0x01, WUCT)
5823                    }
5824
5825                    Release (WUDM)
5826                }
5827
5828                Method (GDID, 0, NotSerialized)
5829                {
5830                    If (LEqual (DOID, 0xFFFFFFFF))
5831                    {
5832                        Store (RDID (), DOID)
5833                    }
5834
5835                    If (\WMEF)
5836                    {
5837                        Store (DOID, DIDB)
5838                    }
5839
5840                    Return (DOID)
5841                }
5842
5843                Method (GDSR, 0, NotSerialized)
5844                {
5845                    Return (RDSR ())
5846                }
5847
5848                Method (RDID, 0, NotSerialized)
5849                {
5850                    Store (\_SB.PCI0.ISA.EC.GDEV (0x02), Local0)
5851                    If (And (Local0, 0x07))
5852                    {
5853                        Return (0x00)
5854                    }
5855
5856                    If (LNot (\H8DR))
5857                    {
5858                        Return (\GDCK (0x02))
5859                    }
5860
5861                    Store (0x10, Local0)
5862                    Store (0x00, Local1)
5863                    Store (0x00, Local2)
5864                    Store (0x00, Local3)
5865                    Store (0x00, Local4)
5866                    While (Local0)
5867                    {
5868                        Store (EEPR (Local2), Local1)
5869                        If (LAnd (LNot (LEqual (Local1, 0x8080)), LNot (LEqual (Local1, 0x8018))))
5870                        {
5871                            If (LEqual (And (Local1, 0x8000), 0x8000))
5872                            {
5873                                Return (0x00)
5874                            }
5875                            Else
5876                            {
5877                                If (LLess (Local2, 0x09))
5878                                {
5879                                    If (LAnd (LLess (Local2, 0x08), LGreater (Local2, 0x03)))
5880                                    {
5881                                        Or (Local3, ShiftLeft (Local1, Multiply (Subtract (Local2, 0x04), 0x08)), Local3)
5882                                    }
5883
5884                                    Add (Local4, Local1, Local4)
5885                                    Store (0x10, Local0)
5886                                    Increment (Local2)
5887                                }
5888                                Else
5889                                {
5890                                    If (LEqual (Local2, 0x09))
5891                                    {
5892                                        If (LNot (And (Add (Local4, Local1), 0xFF)))
5893                                        {
5894                                            Return (Local3)
5895                                        }
5896                                        Else
5897                                        {
5898                                            Return (0x00)
5899                                        }
5900                                    }
5901                                }
5902                            }
5903                        }
5904
5905                        Decrement (Local0)
5906                    }
5907
5908                    Return (0x00)
5909                }
5910
5911                Method (RDSR, 0, NotSerialized)
5912                {
5913                    If (LEqual (GDID (), 0x00))
5914                    {
5915                        Return (0x00)
5916                    }
5917
5918                    If (LNot (\H8DR))
5919                    {
5920                        Return (\GDCK (0x01))
5921                    }
5922
5923                    Store (0x10, Local0)
5924                    Store (0x00, Local1)
5925                    Store (0x00, Local2)
5926                    Store (0x00, Local3)
5927                    Store (0x00, Local4)
5928                    While (Local0)
5929                    {
5930                        Store (EEPR (Local2), Local1)
5931                        If (LAnd (LNot (LEqual (Local1, 0x8080)), LNot (LEqual (Local1, 0x8018))))
5932                        {
5933                            If (LEqual (And (Local1, 0x8000), 0x8000))
5934                            {
5935                                Return (0x00)
5936                            }
5937                            Else
5938                            {
5939                                If (LLess (Local2, 0x09))
5940                                {
5941                                    If (LLess (Local2, 0x04))
5942                                    {
5943                                        Or (Local3, ShiftLeft (Local1, Multiply (Local2, 0x08)), Local3)
5944                                    }
5945
5946                                    Add (Local4, Local1, Local4)
5947                                    Store (0x10, Local0)
5948                                    Increment (Local2)
5949                                }
5950                                Else
5951                                {
5952                                    If (LEqual (Local2, 0x09))
5953                                    {
5954                                        If (LNot (And (Add (Local4, Local1), 0xFF)))
5955                                        {
5956                                            Return (Local3)
5957                                        }
5958                                        Else
5959                                        {
5960                                            Return (0x00)
5961                                        }
5962                                    }
5963                                }
5964                            }
5965                        }
5966
5967                        Decrement (Local0)
5968                    }
5969
5970                    Return (0x00)
5971                }
5972
5973                Method (EEPR, 1, NotSerialized)
5974                {
5975                    Store (0x00, \_SB.PCI0.ISA.EC.HCAC)
5976                    Or (\_SB.PCI0.ISA.ACI, 0x01, \_SB.PCI0.ISA.ACI)
5977                    Store (\_SB.PCI0.ISA.EC.I2CR (0x00, 0x51, Arg0), Local0)
5978                    And (\_SB.PCI0.ISA.ACI, 0xFE, \_SB.PCI0.ISA.ACI)
5979                    Store (0x01, \_SB.PCI0.ISA.EC.HCAC)
5980                    Return (Local0)
5981                }
5982
5983                Name (FLAG, 0x00)
5984                Method (DFLG, 2, NotSerialized)
5985                {
5986                    If (LEqual (Arg0, 0x00))
5987                    {
5988                        Or (FLAG, Arg1, FLAG)
5989                    }
5990
5991                    If (LEqual (Arg0, 0x01))
5992                    {
5993                        And (FLAG, Not (Arg1), FLAG)
5994                    }
5995
5996                    If (And (FLAG, Arg1))
5997                    {
5998                        Return (0x01)
5999                    }
6000                    Else
6001                    {
6002                        Return (0x00)
6003                    }
6004                }
6005
6006                Method (DATT, 2, NotSerialized)
6007                {
6008                    Store (0x00, Local0)
6009                    If (LEqual (Arg0, 0x00))
6010                    {
6011                        If (LEqual (Arg1, 0x01))
6012                        {
6013                            If (\H8DR)
6014                            {
6015                                Or (\_SB.PCI0.ISA.EC.HAM6, 0x80, \_SB.PCI0.ISA.EC.HAM6)
6016                            }
6017                            Else
6018                            {
6019                                \MBEC (0x16, 0xFF, 0x80)
6020                            }
6021                        }
6022
6023                        If (LEqual (Arg1, 0x00))
6024                        {
6025                            If (\H8DR)
6026                            {
6027                                And (\_SB.PCI0.ISA.EC.HAM6, 0x7F, \_SB.PCI0.ISA.EC.HAM6)
6028                            }
6029                            Else
6030                            {
6031                                \MBEC (0x16, 0x7F, 0x00)
6032                            }
6033                        }
6034
6035                        If (LEqual (Arg1, 0x02))
6036                        {
6037                            If (\H8DR)
6038                            {
6039                                If (And (\_SB.PCI0.ISA.EC.HAM6, 0x80))
6040                                {
6041                                    Store (0x01, Local0)
6042                                }
6043                            }
6044                            Else
6045                            {
6046                                If (And (\RBEC (0x16), 0x80))
6047                                {
6048                                    Store (0x01, Local0)
6049                                }
6050                            }
6051                        }
6052                    }
6053
6054                    If (LEqual (Arg0, 0x01))
6055                    {
6056                        If (LEqual (Arg1, 0x01))
6057                        {
6058                            If (\H8DR)
6059                            {
6060                                Or (\_SB.PCI0.ISA.EC.HAMA, 0x01, \_SB.PCI0.ISA.EC.HAMA)
6061                            }
6062                            Else
6063                            {
6064                                \MBEC (0x1A, 0xFF, 0x01)
6065                            }
6066                        }
6067
6068                        If (LEqual (Arg1, 0x00))
6069                        {
6070                            If (\H8DR)
6071                            {
6072                                And (\_SB.PCI0.ISA.EC.HAMA, 0xFE, \_SB.PCI0.ISA.EC.HAMA)
6073                            }
6074                            Else
6075                            {
6076                                \MBEC (0x1A, 0xFE, 0x00)
6077                            }
6078                        }
6079
6080                        If (LEqual (Arg1, 0x02))
6081                        {
6082                            If (\H8DR)
6083                            {
6084                                If (And (\_SB.PCI0.ISA.EC.HAMA, 0x01))
6085                                {
6086                                    Store (0x01, Local0)
6087                                }
6088                            }
6089                            Else
6090                            {
6091                                If (And (\RBEC (0x1A), 0x01))
6092                                {
6093                                    Store (0x01, Local0)
6094                                }
6095                            }
6096                        }
6097                    }
6098
6099                    Return (Local0)
6100                }
6101
6102                Method (DDWK, 1, NotSerialized)
6103                {
6104                    Store (0x00, Local0)
6105                    If (LEqual (Arg0, 0x01))
6106                    {
6107                        If (\H8DR)
6108                        {
6109                            Store (One, \_SB.PCI0.ISA.EC.HWDK)
6110                        }
6111                        Else
6112                        {
6113                            \MBEC (0x32, 0xFF, 0x08)
6114                        }
6115                    }
6116
6117                    If (LEqual (Arg0, 0x00))
6118                    {
6119                        If (\H8DR)
6120                        {
6121                            Store (Zero, \_SB.PCI0.ISA.EC.HWDK)
6122                        }
6123                        Else
6124                        {
6125                            \MBEC (0x32, 0xF7, 0x00)
6126                        }
6127                    }
6128
6129                    If (LEqual (Arg0, 0x02))
6130                    {
6131                        If (\H8DR)
6132                        {
6133                            If (\_SB.PCI0.ISA.EC.HWDK)
6134                            {
6135                                Store (0x01, Local0)
6136                            }
6137                        }
6138                        Else
6139                        {
6140                            If (And (\RBEC (0x32), 0x08))
6141                            {
6142                                Store (0x01, Local0)
6143                            }
6144                        }
6145                    }
6146
6147                    Return (Local0)
6148                }
6149
6150                Method (DGPE, 0, NotSerialized)
6151                {
6152                    If (\WMEF)
6153                    {
6154                        DFLG (0x00, 0x0100)
6155                    }
6156
6157                    If (DFLG (0x02, 0x0100))
6158                    {
6159                        DFLG (0x00, 0x08)
6160                    }
6161                    Else
6162                    {
6163                        Or (DHKE, 0x2004, DHKE)
6164                        If (\W98F)
6165                        {
6166                            Notify (\_SB.PCI0.DOCK, 0x01)
6167                        }
6168                        Else
6169                        {
6170                            \_SB.PCI0.ISA.EC.HKEY.MHKQ (DHKE)
6171                            Notify (\_SB.PCI0.DOCK, 0x03)
6172                        }
6173                    }
6174                }
6175
6176                Event (DEVT)
6177                Method (BCON, 1, NotSerialized)
6178                {
6179                    If (LAnd (Arg0, \_SB.PCI0.ISA.BUSC))
6180                    {
6181                        Return (0x00)
6182                    }
6183
6184                    If (LAnd (LNot (Arg0), \_SB.PCI0.ISA.BUSD))
6185                    {
6186                        Return (0x00)
6187                    }
6188
6189                    Store (DATT (0x00, 0x02), Local0)
6190                    DATT (0x00, 0x01)
6191                    Reset (DEVT)
6192                    If (Arg0)
6193                    {
6194                        Sleep (0xC8)
6195                        Store (0x00, \_SB.PCI0.ISA.BUSD)
6196                        Store (0x01, \_SB.PCI0.ISA.BUSC)
6197                    }
6198                    Else
6199                    {
6200                        Store (0x00, \_SB.PCI0.ISA.BUSC)
6201                        Store (0x01, \_SB.PCI0.ISA.BUSD)
6202                    }
6203
6204                    Wait (DEVT, 0xFFFF)
6205                    If (LNot (Local0))
6206                    {
6207                        DATT (0x00, 0x00)
6208                    }
6209                }
6210
6211                Method (LTCY, 0, NotSerialized)
6212                {
6213                    If (LEqual (GDID (), 0x4A004D24))
6214                    {
6215                        LDEV (0x00)
6216                        LDEV (0x01)
6217                        LCBS (0x02)
6218                    }
6219                }
6220
6221                Method (LDEV, 1, NotSerialized)
6222                {
6223                    Or (0x80000000, ShiftLeft (\RPCI (0x80002019), 0x10), Local0)
6224                    Or (Local0, ShiftLeft (Arg0, 0x0B), Local0)
6225                    Store (0x00, Local1)
6226                    While (LLess (Local1, 0x08))
6227                    {
6228                        Or (Local0, ShiftLeft (Local1, 0x08), Local2)
6229                        Store (\RPCI (Or (Local2, 0x02)), Local3)
6230                        Store (\RPCI (Or (Local2, 0x03)), Local4)
6231                        If (LOr (LNot (LEqual (Local3, 0xFF)), LNot (LEqual (Local4, 0xFF))))
6232                        {
6233                            Store (\RPCI (Or (Local2, 0x0E)), Local5)
6234                            If (LNot (Local5))
6235                            {
6236                                Store (\RPCI (Or (Local2, 0x3E)), Local6)
6237                                If (LNot (LGreater (Local6, 0x08)))
6238                                {
6239                                    Store (0x40, Local7)
6240                                }
6241                                Else
6242                                {
6243                                    If (LNot (LGreater (Local6, 0x1F)))
6244                                    {
6245                                        Store (Multiply (Local6, 0x08), Local7)
6246                                    }
6247                                    Else
6248                                    {
6249                                        Store (0xD0, Local7)
6250                                    }
6251                                }
6252
6253                                \WPCI (Or (Local2, 0x0D), Local7)
6254                                \WPCI (Or (Local2, 0x0C), 0x08)
6255                            }
6256                        }
6257
6258                        Increment (Local1)
6259                    }
6260                }
6261
6262                Method (LCBS, 1, NotSerialized)
6263                {
6264                    Or (0x80000000, ShiftLeft (\RPCI (0x80002019), 0x10), Local0)
6265                    Or (Local0, ShiftLeft (Arg0, 0x0B), Local0)
6266                    Store (0x00, Local1)
6267                    While (LLess (Local1, 0x02))
6268                    {
6269                        Or (Local0, ShiftLeft (Local1, 0x08), Local2)
6270                        \WPCI (Or (Local2, 0x0C), 0x08)
6271                        \WPCI (Or (Local2, 0x0D), 0x40)
6272                        \WPCI (Or (Local2, 0x1B), 0x80)
6273                        Increment (Local1)
6274                    }
6275                }
6276
6277                Method (SSU2, 1, NotSerialized)
6278                {
6279                    If (Arg0)
6280                    {
6281                        Store (0x01, \_SB.PCI0.PM00.S2DS)
6282                        Store (0x01, \_SB.PCI0.ISA.SUS2)
6283                    }
6284                    Else
6285                    {
6286                        Store (0x00, \_SB.PCI0.ISA.SUS2)
6287                        Store (0x00, \_SB.PCI0.PM00.S2DS)
6288                    }
6289                }
6290
6291                Scope (\_SB.PCI0.ISA.EC)
6292                {
6293                    Method (_Q37, 0, NotSerialized)
6294                    {
6295                        If (\_SB.PCI0.ISA.SCIS)
6296                        {
6297                            Store (\_SB.PCI0.ISA.SCIR, Local0)
6298                            If (LEqual (Local0, 0x00))
6299                            {
6300                                If (LNot (\_SB.PCI0.DOCK.GDID ()))
6301                                {
6302                                    Store (0xFFFFFFFF, \_SB.PCI0.DOCK.DOID)
6303                                    Notify (\_SB.PCI0.DOCK, 0x00)
6304                                }
6305                            }
6306
6307                            If (LAnd (LEqual (Local0, 0x02), \_SB.PCI0.ISA.BUSC))
6308                            {
6309                                Signal (\_SB.PCI0.DOCK.DEVT)
6310                            }
6311
6312                            If (LAnd (LEqual (Local0, 0x03), \_SB.PCI0.ISA.BUSD))
6313                            {
6314                                Signal (\_SB.PCI0.DOCK.DEVT)
6315                            }
6316
6317                            Store (0x00, \_SB.PCI0.ISA.SCIS)
6318                        }
6319                    }
6320
6321                    Method (_Q50, 0, NotSerialized)
6322                    {
6323                        If (\_SB.PCI0.DOCK.GDID ())
6324                        {
6325                            If (\W98F)
6326                            {
6327                                Notify (\_SB.PCI0.DOCK, 0x01)
6328                            }
6329                            Else
6330                            {
6331                                Notify (\_SB.PCI0.DOCK, 0x03)
6332                            }
6333                        }
6334                    }
6335                }
6336
6337                OperationRegion (PPBR, PCI_Config, 0x00, 0x0100)
6338                Field (PPBR, DWordAcc, NoLock, Preserve)
6339                {
6340                    Offset (0x40),
6341                    SVID,   16,
6342                    SSID,   16,
6343                    Offset (0x66),
6344                    SDCL,   8,
6345                    PDCL,   8,
6346                    Offset (0x6C),
6347                    SCAD,   8,
6348                    BUFC,   8,
6349                    Offset (0x6F),
6350                    CLKR,   8,
6351                    Offset (0x76),
6352                    PG0D,   1,
6353                    PG1D,   1,
6354                    PG2D,   1,
6355                    PG3D,   1,
6356                    SG0D,   1,
6357                    SG1D,   1,
6358                    SG2D,   1,
6359                    SG3D,   1,
6360                    PG0O,   1,
6361                    PG1O,   1,
6362                    PG2O,   1,
6363                    PG3O,   1,
6364                    SG0O,   1,
6365                    SG1O,   1,
6366                    SG2O,   1,
6367                    SG3O,   1,
6368                    Offset (0x79),
6369                    SIRQ,   8,
6370                    ARMK,   8
6371                }
6372
6373                Method (PPIN, 0, NotSerialized)
6374                {
6375                    Or (ShiftRight (0x00040000, 0x05), 0x80000000, Local0)
6376                    Store (\RPCI (Or (Local0, 0x84)), Local1)
6377                    If (LAnd (Local1, 0x03))
6378                    {
6379                        \WPCI (Or (Local0, 0x84), And (Local1, 0xFC))
6380                        Sleep (0x0A)
6381                    }
6382
6383                    If (\W98F)
6384                    {
6385                        \WPCI (Or (Local0, 0x1C), 0xF0)
6386                        \WPCI (Or (Local0, 0x1D), 0x00)
6387                        \WPCI (Or (Local0, 0x20), 0xF0)
6388                        \WPCI (Or (Local0, 0x21), 0xFF)
6389                        \WPCI (Or (Local0, 0x22), 0x00)
6390                        \WPCI (Or (Local0, 0x23), 0x00)
6391                        \WPCI (Or (Local0, 0x24), 0xF0)
6392                        \WPCI (Or (Local0, 0x25), 0xFF)
6393                        \WPCI (Or (Local0, 0x26), 0x00)
6394                        \WPCI (Or (Local0, 0x27), 0x00)
6395                    }
6396
6397                    \WPCI (Or (Local0, 0x19), 0x08)
6398                    \WPCI (Or (Local0, 0x1A), 0x0E)
6399                    \WPCI (Or (Local0, 0x0C), 0x08)
6400                    \WPCI (Or (Local0, 0x0D), 0x40)
6401                    \WPCI (Or (Local0, 0x1B), 0x44)
6402                    Store (0x1014, SVID)
6403                    Store (0xE3, SSID)
6404                    Or (And (SDCL, 0x00), 0x01, SDCL)
6405                    Or (And (PDCL, 0x00), 0x01, PDCL)
6406                    Or (And (SCAD, 0x02), 0xB0, SCAD)
6407                    Or (And (BUFC, 0x00), 0x1F, BUFC)
6408                    Or (And (CLKR, 0x00), 0x0C, CLKR)
6409                    Or (And (SIRQ, 0x00), 0x23, SIRQ)
6410                    Or (And (ARMK, 0x00), 0x38, ARMK)
6411                    PPFD ()
6412                    PPUB (0x01)
6413                    PPMX ()
6414                }
6415
6416                Method (PPEN, 1, NotSerialized)
6417                {
6418                    Or (0x80000000, ShiftRight (0x00040000, 0x05), Local0)
6419                    If (Arg0)
6420                    {
6421                        \MPCI (Or (Local0, 0x04), 0xFF, 0x07)
6422                    }
6423                    Else
6424                    {
6425                        \MPCI (Or (Local0, 0x04), 0xF8, 0x00)
6426                    }
6427                }
6428
6429                Method (PPRS, 0, NotSerialized)
6430                {
6431                    Or (0x80000000, ShiftRight (0x00040000, 0x05), Local0)
6432                    \MPCI (Or (Local0, 0x3E), 0xFF, 0x40)
6433                    Sleep (0x64)
6434                    \MPCI (Or (Local0, 0x3E), 0xBF, 0x00)
6435                }
6436
6437                Method (PPFD, 0, NotSerialized)
6438                {
6439                    Store (0x01, SG1D)
6440                    If (LEqual (\_SB.PCI0.ISA.EC.GDEV (0x03), 0x0D))
6441                    {
6442                        Store (0x01, \_SB.PCI0.ISA.FDC.DCFD)
6443                        Store (0x01, SG1O)
6444                    }
6445                    Else
6446                    {
6447                        Store (0x00, \_SB.PCI0.ISA.FDC.DCFD)
6448                        Store (0x00, SG1O)
6449                    }
6450                }
6451
6452                Method (PPUB, 1, NotSerialized)
6453                {
6454                    Store (0x00, SG3D)
6455                    If (Arg0)
6456                    {
6457                        Store (0x00, PG3O)
6458                    }
6459                    Else
6460                    {
6461                        Store (0x01, PG3O)
6462                    }
6463
6464                    Store (0x01, PG3D)
6465                }
6466
6467                Method (PPMX, 0, NotSerialized)
6468                {
6469                    Store (\RPCI (Or (0x80000019, ShiftRight (0x00040000, 0x05))), Local0)
6470                    Or (0x80000000, ShiftLeft (Local0, 0x10), Local0)
6471                    Store (0x04, Local1)
6472                    Store (0x00, Local2)
6473                    While (Local1)
6474                    {
6475                        Decrement (Local1)
6476                        ShiftLeft (Local2, 0x08, Local2)
6477                        Or (Local2, \RPCI (Or (Local0, Local1)), Local2)
6478                    }
6479
6480                    If (LEqual (Local2, 0x00213388))
6481                    {
6482                        Or (SDCL, 0x04, SDCL)
6483                    }
6484                }
6485
6486                Device (IDE1)
6487                {
6488                    Name (_ADR, 0x00010000)
6489                    OperationRegion (IDEC, PCI_Config, 0x00, 0x0100)
6490                    Field (IDEC, DWordAcc, NoLock, Preserve)
6491                    {
6492                        Offset (0x4F),
6493                            ,   2,
6494                        ENCL,   1,
6495                        Offset (0x50),
6496                        Offset (0x51),
6497                            ,   2,
6498                        PRMC,   1,
6499                        SNDC,   1,
6500                        Offset (0x52),
6501                        XCMT,   8,
6502                            ,   6,
6503                        XAR0,   2,
6504                        XDRR,   4,
6505                        XDRW,   4,
6506                        Offset (0x73),
6507                        XUDM,   1,
6508                            ,   1,
6509                        XUDC,   1,
6510                            ,   1,
6511                        XUDT,   2,
6512                        Offset (0x74)
6513                    }
6514
6515                    Method (DREG, 2, NotSerialized)
6516                    {
6517                        If (LEqual (Arg0, 0x02))
6518                        {
6519                            If (Arg1)
6520                            {
6521                                If (LEqual (\_SB.PCI0.DOCK.GDID (), 0x4A004D24))
6522                                {
6523                                    If (LNot (And (\_SB.PCI0.DOCK.SCAD, 0x02)))
6524                                    {
6525                                        Store (0x01, PRMC)
6526                                        Store (0x01, SNDC)
6527                                    }
6528                                }
6529
6530                                If (\W98F)
6531                                {
6532                                    RAID ()
6533                                }
6534                            }
6535                        }
6536                    }
6537
6538                    Method (RAID, 0, NotSerialized)
6539                    {
6540                        Store (0x01, ENCL)
6541                        Store (\RPCI (Or (0x80000019, ShiftRight (0x00040000, 0x05))), Local0)
6542                        Or (0x80000000, ShiftLeft (Local0, 0x10), Local0)
6543                        Or (Local0, ShiftRight (_ADR, 0x05), Local0)
6544                        Or (Local0, ShiftLeft (And (_ADR, 0x07), 0x08), Local0)
6545                        \WPCI (Or (Local0, 0x0A), 0x04)
6546                        Store (0x00, ENCL)
6547                    }
6548
6549                    Method (_STA, 0, NotSerialized)
6550                    {
6551                        Store (0x00, Local0)
6552                        If (LEqual (\_SB.PCI0.DOCK.GDID (), 0x4A004D24))
6553                        {
6554                            If (LNot (And (\_SB.PCI0.DOCK.SCAD, 0x02)))
6555                            {
6556                                Store (0x0F, Local0)
6557                            }
6558                        }
6559
6560                        Return (Local0)
6561                    }
6562
6563                    Device (PRIM)
6564                    {
6565                        Name (_ADR, 0x00)
6566                        Method (_GTM, 0, NotSerialized)
6567                        {
6568                            Store (0x12, Local4)
6569                            If (XCMT)
6570                            {
6571                                If (XDRR)
6572                                {
6573                                    If (LEqual (XDRR, 0x0F))
6574                                    {
6575                                        Store (0x01, Local0)
6576                                    }
6577                                    Else
6578                                    {
6579                                        Add (0x01, XDRR, Local0)
6580                                    }
6581                                }
6582                                Else
6583                                {
6584                                    Store (0x10, Local0)
6585                                }
6586
6587                                If (XDRW)
6588                                {
6589                                    Store (XDRW, Local1)
6590                                }
6591                                Else
6592                                {
6593                                    Store (0x10, Local1)
6594                                }
6595
6596                                Add (Local0, Local1, Local0)
6597                                Multiply (0x1E, Local0, Local0)
6598                                If (LGreater (Local0, 0xF0))
6599                                {
6600                                    Store (0x0384, Local0)
6601                                }
6602
6603                                Store (Local0, Local1)
6604                            }
6605                            Else
6606                            {
6607                                Store (0x00, Local0)
6608                            }
6609
6610                            Store (Local0, Local1)
6611                            If (XUDM)
6612                            {
6613                                Or (Local4, 0x01, Local4)
6614                                If (XUDC)
6615                                {
6616                                    Add (XUDT, 0x01, Local1)
6617                                    Multiply (0x0F, Local1, Local1)
6618                                }
6619                                Else
6620                                {
6621                                    Add (XUDT, 0x01, Local1)
6622                                    Multiply (0x1E, Local1, Local1)
6623                                    If (LEqual (Local1, 0x5A))
6624                                    {
6625                                        Store (0x50, Local1)
6626                                    }
6627                                }
6628                            }
6629
6630                            Store (Local0, \GTP0)
6631                            Store (Local1, \GTD0)
6632                            Store (0x00, \GTP1)
6633                            Store (0x00, \GTD1)
6634                            Store (Local4, \GTMF)
6635                            Return (\BGTM)
6636                        }
6637
6638                        Method (_STM, 3, NotSerialized)
6639                        {
6640                            CreateDWordField (Arg0, 0x00, STP0)
6641                            CreateDWordField (Arg0, 0x04, STD0)
6642                            CreateDWordField (Arg0, 0x08, STP1)
6643                            CreateDWordField (Arg0, 0x0C, STD1)
6644                            CreateDWordField (Arg0, 0x10, STMF)
6645                            If (SizeOf (Arg1))
6646                            {
6647                                CreateWordField (Arg1, 0x01, DM00)
6648                                If (DM00)
6649                                {
6650                                    Store (One, Local5)
6651                                }
6652                                Else
6653                                {
6654                                    Store (Zero, Local5)
6655                                }
6656                            }
6657                            Else
6658                            {
6659                                Store (Zero, Local5)
6660                            }
6661
6662                            If (Local5)
6663                            {
6664                                If (W98F)
6665                                {
6666                                    CreateWordField (Arg1, 0x66, DM51)
6667                                    CreateWordField (Arg1, 0x6A, DM53)
6668                                    CreateWordField (Arg1, 0x7C, DM62)
6669                                    CreateWordField (Arg1, 0x7E, DM63)
6670                                    CreateWordField (Arg1, 0x80, DM64)
6671                                    CreateWordField (Arg1, 0x82, DM65)
6672                                    CreateWordField (Arg1, 0x88, DM68)
6673                                    CreateWordField (Arg1, 0xB0, DM88)
6674                                    Store (\UDMA (DM53, DM88), Local0)
6675                                    Store (\MDMA (DM53, DM63, DM62, DM65), Local1)
6676                                    Store (\MPIO (DM53, DM64, DM51, DM68), Local2)
6677                                }
6678                                Else
6679                                {
6680                                    Store (\MPIB (And (STMF, 0x02), STP0), Local2)
6681                                    Store (\UDMB (And (STMF, 0x01), STD0), Local0)
6682                                    Store (\MDMB (STD0), Local1)
6683                                }
6684
6685                                Store (And (DM00, 0x80), \IDKS)
6686                                Store (\CART (Local2), XAR0)
6687                                Store (\CCMD (Local2), XCMT)
6688                                Store (\CDRW (Local1, Local2), Local3)
6689                                And (Local3, 0x0F, XDRR)
6690                                ShiftRight (Local3, 0x04, XDRW)
6691                                If (Local0)
6692                                {
6693                                    Store (0x01, XUDM)
6694                                    If (LNot (LGreater (Local0, 0x03)))
6695                                    {
6696                                        Store (0x00, XUDC)
6697                                    }
6698                                    Else
6699                                    {
6700                                        Store (0x01, XUDC)
6701                                    }
6702
6703                                    Store (\CUDC (Local0), XUDT)
6704                                }
6705
6706                                Store (\MHDM (Local0, Local1), \HDM3)
6707                                Store (\MHDM (Local0, Local1), \CDM3)
6708                                Store (\MHPI (Local2), \HPI3)
6709                                Store (\MHPI (Local2), \CPI3)
6710                            }
6711                        }
6712
6713                        Device (MSTR)
6714                        {
6715                            Name (_ADR, 0x00)
6716                            Method (_GTF, 0, NotSerialized)
6717                            {
6718                                If (\IDKS)
6719                                {
6720                                    Return (\ICC3)
6721                                }
6722                                Else
6723                                {
6724                                    Return (\ICM3)
6725                                }
6726                            }
6727                        }
6728                    }
6729                }
6730
6731                Device (CBS2)
6732                {
6733                    Name (_ADR, 0x00020000)
6734                    Method (_STA, 0, NotSerialized)
6735                    {
6736                        If (LEqual (\_SB.PCI0.DOCK.GDID (), 0x4A004D24))
6737                        {
6738                            Return (0x0F)
6739                        }
6740                        Else
6741                        {
6742                            Return (0x00)
6743                        }
6744                    }
6745
6746                    Method (DREG, 2, NotSerialized)
6747                    {
6748                        If (LAnd (LEqual (Arg0, 0x02), LEqual (Arg1, 0x01)))
6749                        {
6750                            If (LEqual (\_SB.PCI0.DOCK.GDID (), 0x4A004D24))
6751                            {
6752                                ICFG ()
6753                            }
6754                        }
6755                    }
6756
6757                    OperationRegion (CBUS, PCI_Config, 0x00, 0x0100)
6758                    Field (CBUS, DWordAcc, NoLock, Preserve)
6759                    {
6760                        Offset (0x44),
6761                        LGDC,   32,
6762                        Offset (0x80),
6763                        SYSC,   32,
6764                        Offset (0x8C),
6765                        MULR,   32,
6766                        RSTS,   8,
6767                        CCTL,   8,
6768                        DCTL,   8,
6769                        DIAG,   8
6770                    }
6771
6772                    Method (ICFG, 0, NotSerialized)
6773                    {
6774                        Store (RPCI (Or (0x80000019, ShiftRight (0x00040000, 0x05))), Local0)
6775                        Or (0x80000000, ShiftLeft (Local0, 0x10), Local0)
6776                        Or (Local0, ShiftRight (_ADR, 0x05), Local0)
6777                        Or (Local0, ShiftLeft (And (_ADR, 0x07), 0x08), Local0)
6778                        \WPCI (Or (Local0, 0x0C), 0x08)
6779                        \WPCI (Or (Local0, 0x0D), 0xA8)
6780                        \WPCI (Or (Local0, 0x1B), 0x80)
6781                        Or (And (LGDC, 0x00), 0x00, LGDC)
6782                        Or (And (SYSC, 0x00FFFF00), 0x2864C077, SYSC)
6783                        Or (And (MULR, 0x00), 0x1002, MULR)
6784                        Or (And (RSTS, 0x00), 0xC0, RSTS)
6785                        Or (And (CCTL, 0x7B), 0x02, CCTL)
6786                        Or (And (DCTL, 0x00), 0x66, DCTL)
6787                        Or (And (DIAG, 0x1E), 0x40, DIAG)
6788                    }
6789                }
6790
6791                Device (CBS3)
6792                {
6793                    Name (_ADR, 0x00020001)
6794                    Method (_STA, 0, NotSerialized)
6795                    {
6796                        If (LEqual (\_SB.PCI0.DOCK.GDID (), 0x4A004D24))
6797                        {
6798                            Return (0x0F)
6799                        }
6800                        Else
6801                        {
6802                            Return (0x00)
6803                        }
6804                    }
6805
6806                    Method (DREG, 2, NotSerialized)
6807                    {
6808                        If (LAnd (LEqual (Arg0, 0x02), LEqual (Arg1, 0x01)))
6809                        {
6810                            If (LEqual (\_SB.PCI0.DOCK.GDID (), 0x4A004D24))
6811                            {
6812                                ICFG ()
6813                            }
6814                        }
6815                    }
6816
6817                    OperationRegion (CBUS, PCI_Config, 0x00, 0x0100)
6818                    Field (CBUS, DWordAcc, NoLock, Preserve)
6819                    {
6820                        Offset (0x44),
6821                        LGDC,   32,
6822                        Offset (0x80),
6823                        SYSC,   32,
6824                        Offset (0x8C),
6825                        MULR,   32,
6826                        RSTS,   8,
6827                        CCTL,   8,
6828                        DCTL,   8,
6829                        DIAG,   8
6830                    }
6831
6832                    Method (ICFG, 0, NotSerialized)
6833                    {
6834                        Store (RPCI (Or (0x80000019, ShiftRight (0x00040000, 0x05))), Local0)
6835                        Or (0x80000000, ShiftLeft (Local0, 0x10), Local0)
6836                        Or (Local0, ShiftRight (_ADR, 0x05), Local0)
6837                        Or (Local0, ShiftLeft (And (_ADR, 0x07), 0x08), Local0)
6838                        \WPCI (Or (Local0, 0x0C), 0x08)
6839                        \WPCI (Or (Local0, 0x0D), 0xA8)
6840                        \WPCI (Or (Local0, 0x1B), 0x80)
6841                        Or (And (LGDC, 0x00), 0x00, LGDC)
6842                        Or (And (SYSC, 0x00FFFF00), 0x2864C077, SYSC)
6843                        Or (And (MULR, 0x00), 0x1002, MULR)
6844                        Or (And (RSTS, 0x00), 0xC0, RSTS)
6845                        Or (And (CCTL, 0x7B), 0x02, CCTL)
6846                        Or (And (DCTL, 0x00), 0x66, DCTL)
6847                        Or (And (DIAG, 0x1E), 0x40, DIAG)
6848                    }
6849                }
6850            }
6851        }
6852
6853        Scope (\_SB.PCI0.ISA.EC)
6854        {
6855            Name (BDEV, 0x00)
6856            Name (BSTS, 0x00)
6857            Name (BHKE, 0x00)
6858            Name (BXCN, 0x00)
6859            Method (_Q2C, 0, NotSerialized)
6860            {
6861                If (LEqual (BSTS, 0x00))
6862                {
6863                    Store (GUID (), BDEV)
6864                    If (BXCN)
6865                    {
6866                        NXRE (BDEV)
6867                    }
6868                    Else
6869                    {
6870                        NBRE (BDEV)
6871                    }
6872                }
6873            }
6874
6875            Method (_Q2D, 0, NotSerialized)
6876            {
6877                Store (GUID (), BDEV)
6878                If (BXCN)
6879                {
6880                    NXRC (BDEV)
6881                }
6882                Else
6883                {
6884                    NBIN (BDEV)
6885                }
6886            }
6887
6888            Method (_Q38, 0, NotSerialized)
6889            {
6890                Store (GUID (), Local0)
6891                If (LAnd (BDEV, LNot (LEqual (Local0, BDEV))))
6892                {
6893                    If (LEqual (Local0, 0x0F))
6894                    {
6895                        BDIS ()
6896                        If (BXCN)
6897                        {
6898                            Store (BDEV, Local0)
6899                            Store (0x0F, BDEV)
6900                            NXEJ (Local0)
6901                        }
6902                        Else
6903                        {
6904                            NBEJ (BDEV)
6905                            Store (Local0, BDEV)
6906                        }
6907                    }
6908                    Else
6909                    {
6910                        If (HPBU)
6911                        {
6912                            If (BXCN)
6913                            {
6914                                Store (Local0, BDEV)
6915                                NXIN (Local0)
6916                            }
6917                        }
6918                        Else
6919                        {
6920                            Store (Local0, BDEV)
6921                            If (BXCN)
6922                            {
6923                                NXRC (Local0)
6924                            }
6925                            Else
6926                            {
6927                                NBIN (Local0)
6928                            }
6929                        }
6930                    }
6931                }
6932            }
6933
6934            Method (NBRE, 1, NotSerialized)
6935            {
6936                If (LEqual (Arg0, 0x0D))
6937                {
6938                    Notify (\_SB.PCI0.ISA.FDC.FDD0, 0x03)
6939                }
6940
6941                If (LLess (Arg0, 0x0C))
6942                {
6943                    Notify (\_SB.PCI0.IDE0.SCND.MSTR, 0x03)
6944                }
6945
6946                If (LEqual (Arg0, 0x10))
6947                {
6948                    If (LOr (HPAC, HB0A))
6949                    {
6950                        If (\WNTF)
6951                        {
6952                            Notify (\_SB.PCI0.ISA.EC.BAT1, 0x03)
6953                        }
6954                    }
6955                    Else
6956                    {
6957                        BLED (0x02, 0x01)
6958                        BEEP (0x0F)
6959                        Store (0x02, BSTS)
6960                    }
6961                }
6962            }
6963
6964            Method (NBEJ, 1, NotSerialized)
6965            {
6966                If (LEqual (BSTS, 0x00))
6967                {
6968                    If (LEqual (Arg0, 0x0D))
6969                    {
6970                        Notify (\_SB.PCI0.ISA.FDC.FDD0, 0x01)
6971                    }
6972
6973                    If (LLess (Arg0, 0x0C))
6974                    {
6975                        Notify (\_SB.PCI0.IDE0.SCND.MSTR, 0x01)
6976                    }
6977
6978                    If (LEqual (Arg0, 0x10))
6979                    {
6980                        If (\WNTF)
6981                        {
6982                            Notify (\_SB.PCI0.ISA.EC.BAT1, 0x01)
6983                        }
6984                        Else
6985                        {
6986                            Notify (\_SB.PCI0.ISA.EC.BAT1, 0x81)
6987                        }
6988                    }
6989                }
6990
6991                BLED (0x00, 0x00)
6992                BEEP (0x00)
6993                Store (0x00, BSTS)
6994            }
6995
6996            Method (NBIN, 1, NotSerialized)
6997            {
6998                If (LEqual (Arg0, 0x0D))
6999                {
7000                    BEN (0x00)
7001                    \SFDD (0x00)
7002                    BLED (0x02, 0x00)
7003                    Notify (\_SB.PCI0.ISA.FDC.FDD0, 0x01)
7004                }
7005
7006                If (LLess (Arg0, 0x0C))
7007                {
7008                    If (LEqual (Arg0, 0x06))
7009                    {
7010                        BEN (0x02)
7011                    }
7012                    Else
7013                    {
7014                        BEN (0x01)
7015                    }
7016
7017                    BLED (0x02, 0x00)
7018                    Notify (\_SB.PCI0.IDE0.SCND.MSTR, 0x01)
7019                }
7020
7021                If (LEqual (Arg0, 0x10))
7022                {
7023                    BLED (0x02, 0x00)
7024                    If (\WNTF)
7025                    {
7026                        Store (0x01, \_SB.PCI0.ISA.EC.BAT1.XB1S)
7027                        Notify (\_SB.PCI0.ISA.EC.BAT1, 0x01)
7028                    }
7029                    Else
7030                    {
7031                        Notify (\_SB.PCI0.ISA.EC.BAT1, 0x81)
7032                    }
7033                }
7034
7035                BEEP (0x00)
7036                Store (0x00, BSTS)
7037            }
7038
7039            Method (BEJ0, 1, NotSerialized)
7040            {
7041                If (Arg0)
7042                {
7043                    BDIS ()
7044                    BLED (0x00, 0x00)
7045                    \BHDP (0x00)
7046                    Store (0x01, BSTS)
7047                    If (BHKE)
7048                    {
7049                        Store (0x00, BHKE)
7050                        \_SB.PCI0.ISA.EC.HKEY.MHKQ (0x3003)
7051                    }
7052                }
7053                Else
7054                {
7055                    BLED (0x02, 0x00)
7056                    Store (0x00, BSTS)
7057                }
7058            }
7059
7060            Method (BEJ3, 1, NotSerialized)
7061            {
7062                If (Arg0)
7063                {
7064                    Store (0x83, BF_Z)
7065                    Store (0x83, BF_D)
7066                    Store (0x83, BZIP)
7067                    Store (0x83, BDVD)
7068                    Store (0x83, BHFD)
7069                    Store (0x83, BF_H)
7070                    Store (0x83, BHDD)
7071                    Store (0x83, BLS)
7072                    Store (0x83, BF_C)
7073                    Store (0x83, BCRW)
7074                    Store (0x83, BCD)
7075                    Store (0x83, BFDD)
7076                    BDIS ()
7077                    Store (0x01, BSTS)
7078                }
7079                Else
7080                {
7081                    Store (0x81, BF_Z)
7082                    Store (0x81, BF_D)
7083                    Store (0x81, BZIP)
7084                    Store (0x81, BDVD)
7085                    Store (0x81, BHFD)
7086                    Store (0x81, BF_H)
7087                    Store (0x81, BHDD)
7088                    Store (0x81, BLS)
7089                    Store (0x81, BF_C)
7090                    Store (0x81, BCRW)
7091                    Store (0x81, BCD)
7092                    Store (0x81, BFDD)
7093                    Store (0x00, BSTS)
7094                }
7095            }
7096
7097            Method (BPTS, 1, NotSerialized)
7098            {
7099                If (LOr (LEqual (Arg0, 0x00), LNot (LLess (Arg0, 0x05)))) {}
7100                Else
7101                {
7102                    If (LNot (LEqual (BSTS, 0x00)))
7103                    {
7104                        Store (0x0F, BDEV)
7105                        Store (0x00, BSTS)
7106                    }
7107
7108                    Store (0x00, BHKE)
7109                    If (LNot (LEqual (BDEV, 0x0F)))
7110                    {
7111                        BLDT (0x00)
7112                        BUWK (0x01)
7113                    }
7114                    Else
7115                    {
7116                        BLDT (0x01)
7117                        BUWK (0x00)
7118                    }
7119                }
7120            }
7121
7122            Method (BWAK, 1, NotSerialized)
7123            {
7124                If (LOr (LEqual (Arg0, 0x00), LNot (LLess (Arg0, 0x05)))) {}
7125                Else
7126                {
7127                    BUWK (0x00)
7128                    Store (GUID (), Local0)
7129                    If (LGreater (Local0, 0x0E))
7130                    {
7131                        BDIS ()
7132                    }
7133
7134                    \_SB.PCI0.ISA.FDC._INI ()
7135                    If (LNot (LEqual (Local0, 0x0D)))
7136                    {
7137                        If (LEqual (\_SB.PCI0.ISA.FDC.FD0S, \_SB.PCI0.ISA.EC.HPNF))
7138                        {
7139                            Notify (\_SB.PCI0.ISA.FDC.FDD0, 0x01)
7140                        }
7141                    }
7142
7143                    If (LEqual (BSTS, 0x00))
7144                    {
7145                        If (LNot (LEqual (Local0, BDEV)))
7146                        {
7147                            If (BXCN)
7148                            {
7149                                Store (Local0, BDEV)
7150                                NXRC (Local0)
7151                            }
7152                            Else
7153                            {
7154                                NBEJ (BDEV)
7155                                Store (Local0, BDEV)
7156                                NBIN (Local0)
7157                            }
7158                        }
7159                        Else
7160                        {
7161                            If (LNot (LEqual (Local0, 0x0F)))
7162                            {
7163                                BLED (0x02, 0x00)
7164                                If (HPBU)
7165                                {
7166                                    Or (ShiftLeft (Arg0, 0x08), 0x2005, BHKE)
7167                                    \_SB.PCI0.ISA.EC.HKEY.MHKQ (BHKE)
7168                                    If (LNot (LGreater (Arg0, 0x02))) {}
7169                                    Else
7170                                    {
7171                                        If (BXCN)
7172                                        {
7173                                            NXRE (Local0)
7174                                        }
7175                                        Else
7176                                        {
7177                                            NBRE (Local0)
7178                                        }
7179                                    }
7180                                }
7181                            }
7182                        }
7183                    }
7184                }
7185            }
7186
7187            Method (BDIS, 0, NotSerialized)
7188            {
7189                \SFDD (0x01)
7190                Store (0x00, \_SB.PCI0.IDE0.XSI0)
7191                Store (0x01, \_SB.PCI0.ISA.GCRC)
7192                Store (0x01, \_SB.PCI0.PM00.ULON)
7193                Store (0x01, \_SB.PCI0.PM00.CSON)
7194            }
7195
7196            Method (BEN, 1, NotSerialized)
7197            {
7198                If (LNot (LOr (\_SB.PCI0.PM00.ULON, \_SB.PCI0.PM00.CSON)))
7199                {
7200                    Return (0x00)
7201                }
7202
7203                If (Arg0)
7204                {
7205                    Store (0x00, \_SB.PCI0.IDE0.XSE)
7206                    Stall (0x05)
7207                }
7208
7209                Store (0x00, \_SB.PCI0.PM00.URST)
7210                Store (0x00, \_SB.PCI0.PM00.ULON)
7211                Store (0x00, \_SB.PCI0.PM00.CSON)
7212                Sleep (0x0F)
7213                If (Arg0)
7214                {
7215                    Store (0x00, \_SB.PCI0.ISA.GCRC)
7216                    Store (0x01, \_SB.PCI0.IDE0.XSE)
7217                    Stall (0x2D)
7218                }
7219
7220                Store (0x01, \_SB.PCI0.PM00.URST)
7221                Sleep (0x14)
7222                If (Arg0)
7223                {
7224                    Sleep (0x0190)
7225                    If (LEqual (Arg0, 0x02))
7226                    {
7227                        Sleep (0x07D0)
7228                    }
7229                }
7230            }
7231
7232            Method (BSTA, 1, NotSerialized)
7233            {
7234                If (\_SB.PCI0.PM00.CSON)
7235                {
7236                    Return (0x00)
7237                }
7238
7239                Store (GUID (), Local0)
7240                If (LEqual (Arg0, 0x00))
7241                {
7242                    Return (LEqual (Local0, 0x0D))
7243                }
7244
7245                If (LEqual (Arg0, 0x01))
7246                {
7247                    Return (LLess (Local0, 0x0D))
7248                }
7249
7250                Return (0x00)
7251            }
7252
7253            Method (BLED, 2, NotSerialized)
7254            {
7255                If (\H8DR)
7256                {
7257                    Acquire (LEDM, 0xFFFF)
7258                    Store (0x18, HLMS)
7259                    If (Arg1)
7260                    {
7261                        Store (0x18, HLBL)
7262                    }
7263                    Else
7264                    {
7265                        Store (0x00, HLBL)
7266                    }
7267
7268                    If (LEqual (Arg0, 0x00))
7269                    {
7270                        Store (0x00, HLCL)
7271                    }
7272                    Else
7273                    {
7274                        If (LEqual (Arg0, 0x01))
7275                        {
7276                            Store (0x08, HLCL)
7277                        }
7278                        Else
7279                        {
7280                            If (LEqual (Arg0, 0x02))
7281                            {
7282                                Store (0x10, HLCL)
7283                            }
7284                            Else
7285                            {
7286                            }
7287                        }
7288                    }
7289
7290                    Sleep (0x0A)
7291                    Release (LEDM)
7292                }
7293            }
7294
7295            Name (BF_Z, 0x83)
7296            Name (BF_D, 0x83)
7297            Name (BZIP, 0x83)
7298            Name (BDVD, 0x83)
7299            Name (BHFD, 0x83)
7300            Name (BF_H, 0x83)
7301            Name (BHDD, 0x83)
7302            Name (BADP, 0x00)
7303            Name (BLS, 0x83)
7304            Name (BF_C, 0x83)
7305            Name (BCRW, 0x83)
7306            Name (BCD, 0x83)
7307            Name (BR01, 0x00)
7308            Name (BFDD, 0x83)
7309            Name (BIMP, 0x00)
7310            Name (BNON, 0x83)
7311            Method (BLDT, 1, NotSerialized)
7312            {
7313                AI2C ()
7314                If (Arg0)
7315                {
7316                    Store (BF_Z, HF_Z)
7317                    Store (BF_D, HF_D)
7318                    Store (BZIP, HZIP)
7319                    Store (BDVD, HDVD)
7320                    Store (BHFD, HHFD)
7321                    Store (BF_H, HF_H)
7322                    Store (BHDD, HHDD)
7323                    Store (BADP, HADP)
7324                    Store (BLS, HLS)
7325                    Store (BF_C, HF_C)
7326                    Store (BCRW, HCRW)
7327                    Store (BCD, HCD)
7328                    Store (BR01, HR01)
7329                    Store (BFDD, HFDD)
7330                    Store (BIMP, HIMP)
7331                    Store (BNON, HNON)
7332                }
7333                Else
7334                {
7335                    Store (0x81, HF_Z)
7336                    Store (0x81, HF_D)
7337                    Store (0x81, HZIP)
7338                    Store (0x81, HDVD)
7339                    Store (0x81, HHFD)
7340                    Store (0x81, HF_H)
7341                    Store (0x81, HHDD)
7342                    Store (0x00, HADP)
7343                    Store (0x81, HLS)
7344                    Store (0x81, HF_C)
7345                    Store (0x81, HCRW)
7346                    Store (0x81, HCD)
7347                    Store (0x00, HR01)
7348                    Store (0x81, HFDD)
7349                    Store (0x00, HIMP)
7350                    Store (0x81, HNON)
7351                }
7352
7353                Store (I2WB (Zero, 0x01, 0x09, 0x10), Local7)
7354                RI2C ()
7355                If (Local7)
7356                {
7357                    Fatal (0x01, 0x80000003, Local7)
7358                }
7359            }
7360
7361            Method (BUWK, 1, NotSerialized)
7362            {
7363                If (\H8DR)
7364                {
7365                    If (Arg0)
7366                    {
7367                        Store (0x01, \_SB.PCI0.ISA.EC.HWBU)
7368                    }
7369                    Else
7370                    {
7371                        Store (0x00, \_SB.PCI0.ISA.EC.HWBU)
7372                    }
7373                }
7374                Else
7375                {
7376                    If (Arg0)
7377                    {
7378                        \MBEC (0x32, 0xFF, 0x80)
7379                    }
7380                    Else
7381                    {
7382                        \MBEC (0x32, 0x7F, 0x00)
7383                    }
7384                }
7385            }
7386
7387            Method (NXRE, 1, NotSerialized)
7388            {
7389                If (LEqual (Arg0, 0x0F))
7390                {
7391                    BLED (0x00, 0x00)
7392                    Store (0x00, BSTS)
7393                }
7394
7395                If (LEqual (Arg0, 0x0D))
7396                {
7397                    BLED (0x02, 0x01)
7398                    Notify (\_SB.SWAP, 0x83)
7399                }
7400
7401                If (LLess (Arg0, 0x0C))
7402                {
7403                    BLED (0x02, 0x01)
7404                    Notify (\_SB.SWAP, 0x83)
7405                }
7406
7407                If (LEqual (Arg0, 0x10))
7408                {
7409                    If (LOr (HPAC, HB0A))
7410                    {
7411                        BLED (0x02, 0x01)
7412                        Notify (\_SB.SWAP, 0x83)
7413                    }
7414                    Else
7415                    {
7416                        BLED (0x02, 0x01)
7417                        BEEP (0x0F)
7418                        Store (0x02, BSTS)
7419                    }
7420                }
7421            }
7422
7423            Method (NXRC, 1, NotSerialized)
7424            {
7425                If (LEqual (Arg0, 0x0D))
7426                {
7427                    BLED (0x02, 0x00)
7428                    BEN (0x00)
7429                    \SFDD (0x00)
7430                    Notify (\_SB.SWAP, 0x80)
7431                }
7432
7433                If (LLess (Arg0, 0x0C))
7434                {
7435                    BLED (0x02, 0x00)
7436                    If (LEqual (Arg0, 0x06))
7437                    {
7438                        BEN (0x02)
7439                    }
7440                    Else
7441                    {
7442                        BEN (0x01)
7443                    }
7444
7445                    Notify (\_SB.SWAP, 0x80)
7446                }
7447
7448                If (LEqual (Arg0, 0x10))
7449                {
7450                    Notify (\_SB.PCI0.ISA.EC.BAT1, 0x81)
7451                    BLED (0x02, 0x00)
7452                    Notify (\_SB.SWAP, 0x80)
7453                }
7454
7455                BEEP (0x00)
7456                Store (0x00, BSTS)
7457            }
7458
7459            Method (NXEJ, 1, NotSerialized)
7460            {
7461                If (LEqual (Arg0, 0x10))
7462                {
7463                    Notify (\_SB.PCI0.ISA.EC.BAT1, 0x81)
7464                }
7465
7466                Notify (\_SB.SWAP, 0x82)
7467                BLED (0x00, 0x00)
7468                BEEP (0x00)
7469                Store (0x00, BSTS)
7470            }
7471
7472            Method (NXIN, 1, NotSerialized)
7473            {
7474                Notify (\_SB.SWAP, 0x81)
7475            }
7476        }
7477
7478        Scope (\_SB)
7479        {
7480            Device (SWAP)
7481            {
7482                Name (_HID, EisaId ("IBM0069"))
7483                Method (_STA, 0, NotSerialized)
7484                {
7485                    If (\WMEF)
7486                    {
7487                        Return (0x0F)
7488                    }
7489                    Else
7490                    {
7491                        Return (0x00)
7492                    }
7493                }
7494
7495                Method (XCNN, 1, NotSerialized)
7496                {
7497                    Store (Arg0, \_SB.PCI0.ISA.EC.BXCN)
7498                    Return (0x09)
7499                }
7500
7501                Method (XSWP, 0, NotSerialized)
7502                {
7503                    Return (0x01)
7504                }
7505
7506                Method (XEJ0, 1, NotSerialized)
7507                {
7508                    Store (0x00, \_SB.PCI0.ISA.EC.BAT1.B1ST)
7509                    \_SB.PCI0.ISA.EC.BEJ0 (Arg0)
7510                }
7511
7512                Method (XEJ3, 1, NotSerialized)
7513                {
7514                    Store (0x00, \_SB.PCI0.ISA.EC.BAT1.B1ST)
7515                    \_SB.PCI0.ISA.EC.BEJ3 (Arg0)
7516                }
7517
7518                Method (XDID, 0, NotSerialized)
7519                {
7520                    Name (XPCK, Package (0x06)
7521                    {
7522                        0x00,
7523                        0x00,
7524                        0xFFFFFFFF,
7525                        0xFFFFFFFF,
7526                        0xFFFFFFFF,
7527                        0x00
7528                    })
7529                    Store (\_SB.PCI0.ISA.EC.BDEV, Local0)
7530                    Store (Local0, Index (XPCK, 0x00))
7531                    If (LLess (Local0, 0x0C))
7532                    {
7533                        Store (\_SB.PCI0.IDE0._ADR, Index (XPCK, 0x02))
7534                        Store (\_SB.PCI0.IDE0.SCND._ADR, Index (XPCK, 0x03))
7535                        Store (\_SB.PCI0.IDE0.SCND.MSTR._ADR, Index (XPCK, 0x04))
7536                    }
7537
7538                    If (LEqual (Local0, 0x0D))
7539                    {
7540                        Store (\_SB.PCI0.ISA.FDC._HID, Index (XPCK, 0x02))
7541                        Store (\_SB.PCI0.ISA.FDC.FDD0._ADR, Index (XPCK, 0x04))
7542                    }
7543
7544                    If (LEqual (Local0, 0x10))
7545                    {
7546                        Store (\_SB.PCI0.ISA.EC.BAT1._HID, Index (XPCK, 0x02))
7547                        Store (\_SB.PCI0.ISA.EC.BAT1._UID, Index (XPCK, 0x04))
7548                    }
7549
7550                    Store (XOr (\_SB.PCI0.PM00.CSON, 0x01), Index (XPCK, 0x05))
7551                    Return (XPCK)
7552                }
7553
7554                Method (XSTM, 1, NotSerialized)
7555                {
7556                    Name (XDMY, Buffer (0x14) {})
7557                    \_SB.PCI0.IDE0.SCND._STM (XDMY, Arg0, 0x00)
7558                }
7559
7560                Method (XGTF, 0, NotSerialized)
7561                {
7562                    Return (\_SB.PCI0.IDE0.SCND.MSTR._GTF ())
7563                }
7564            }
7565        }
7566
7567        Scope (\_SB.PCI0.IDE0.SCND.MSTR)
7568        {
7569            Method (_EJ0, 1, NotSerialized)
7570            {
7571                \_SB.PCI0.ISA.EC.BEJ0 (Arg0)
7572            }
7573
7574            Method (_STA, 0, NotSerialized)
7575            {
7576                If (\_SB.PCI0.ISA.EC.BSTA (0x01))
7577                {
7578                    Return (0x0F)
7579                }
7580                Else
7581                {
7582                    Return (0x00)
7583                }
7584            }
7585        }
7586
7587        Scope (\_SB.PCI0.ISA.FDC)
7588        {
7589            Method (_INI, 0, NotSerialized)
7590            {
7591                Store (0x00, \_SB.PCI0.ISA.FDC.XFDS)
7592                If (\H8DR)
7593                {
7594                    Or (\_SB.PCI0.ISA.EC.HAMA, 0x0C, \_SB.PCI0.ISA.EC.HAMA)
7595                }
7596                Else
7597                {
7598                    \MBEC (0x1A, 0xFF, 0x0C)
7599                }
7600            }
7601
7602            Name (FDEB, Buffer (0x14)
7603            {
7604                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
7605                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
7606                0x02, 0x00, 0x00, 0x00
7607            })
7608            CreateByteField (FDEB, 0x00, FD0S)
7609            Name (XFDS, 0x00)
7610            Name (DCFD, 0x00)
7611            Method (_FDE, 0, NotSerialized)
7612            {
7613                If (LOr (\_SB.PCI0.ISA.EC.BSTA (0x00), DCFD))
7614                {
7615                    Store (0x01, FD0S)
7616                }
7617                Else
7618                {
7619                    If (LOr (\_SB.PCI0.ISA.EC.HPNF, XFDS))
7620                    {
7621                        Store (0x00, FD0S)
7622                    }
7623                    Else
7624                    {
7625                        Store (0x01, FD0S)
7626                    }
7627                }
7628
7629                Return (FDEB)
7630            }
7631
7632            Device (FDD0)
7633            {
7634                Name (_ADR, 0x00)
7635                Name (_EJD, "_SB.PCI0.DOCK")
7636                Method (_EJ0, 1, NotSerialized)
7637                {
7638                    If (\_SB.PCI0.ISA.EC.BSTA (0x00))
7639                    {
7640                        \_SB.PCI0.ISA.EC.BEJ0 (Arg0)
7641                    }
7642                    Else
7643                    {
7644                        If (DCFD) {}
7645                        Else
7646                        {
7647                            Store (0x01, XFDS)
7648                        }
7649                    }
7650                }
7651
7652                Name (_FDI, Package (0x10)
7653                {
7654                    0x00,
7655                    0x04,
7656                    0x4F,
7657                    0x12,
7658                    0x01,
7659                    0xDF,
7660                    0x02,
7661                    0x25,
7662                    0x02,
7663                    0x12,
7664                    0x1B,
7665                    0xFF,
7666                    0x6C,
7667                    0xF6,
7668                    0x0F,
7669                    0x05
7670                })
7671            }
7672        }
7673
7674        Scope (\_SB.PCI0.ISA.EC)
7675        {
7676            Method (_Q52, 0, NotSerialized)
7677            {
7678                If (\_SB.PCI0.ISA.FDC.XFDS)
7679                {
7680                    Store (0x00, \_SB.PCI0.ISA.FDC.XFDS)
7681                }
7682                Else
7683                {
7684                    If (LOr (\_SB.PCI0.ISA.EC.BSTA (0x00), \_SB.PCI0.ISA.FDC.DCFD)) {}
7685                    Else
7686                    {
7687                        Notify (\_SB.PCI0.ISA.FDC.FDD0, 0x01)
7688                    }
7689                }
7690            }
7691
7692            Method (_Q53, 0, NotSerialized)
7693            {
7694                Store (0x00, \_SB.PCI0.ISA.FDC.XFDS)
7695                If (LOr (\_SB.PCI0.ISA.EC.BSTA (0x00), \_SB.PCI0.ISA.FDC.DCFD)) {}
7696                Else
7697                {
7698                    Notify (\_SB.PCI0.ISA.FDC.FDD0, 0x01)
7699                }
7700            }
7701        }
7702
7703        Scope (\_SB.PCI0.ISA.EC.BAT1)
7704        {
7705            Method (_EJ0, 1, NotSerialized)
7706            {
7707                Store (0x00, B1ST)
7708                Store (0x00, XB1S)
7709                \_SB.PCI0.ISA.EC.BEJ0 (Arg0)
7710            }
7711        }
7712
7713        Scope (\_SB.PCI0.ISA.EC)
7714        {
7715            Method (_Q1C, 0, NotSerialized)
7716            {
7717                \VOLD ()
7718            }
7719
7720            Method (_Q1D, 0, NotSerialized)
7721            {
7722                \VOLU ()
7723            }
7724
7725            Method (_Q1E, 0, NotSerialized)
7726            {
7727                \VOLM ()
7728            }
7729        }
7730
7731        Scope (\_SB.PCI0.ISA.EC)
7732        {
7733            Method (_Q14, 0, NotSerialized)
7734            {
7735                \BRIU ()
7736            }
7737
7738            Method (_Q15, 0, NotSerialized)
7739            {
7740                \BRID ()
7741            }
7742        }
7743
7744        Scope (\_SB.PCI0.ISA.EC)
7745        {
7746            Method (_Q19, 0, NotSerialized)
7747            {
7748                \TPKY ()
7749            }
7750        }
7751
7752        Scope (\_SB.PCI0.ISA.EC.HKEY)
7753        {
7754            Name (BTID, 0x00)
7755            Name (BTFG, 0x00)
7756            Method (GULP, 0, NotSerialized)
7757            {
7758                Store (0x00, Local0)
7759                If (LEqual (BTID, 0x01))
7760                {
7761                    Or (Local0, 0x01, Local0)
7762                }
7763
7764                If (PWRS ())
7765                {
7766                    Or (Local0, 0x02, Local0)
7767                }
7768
7769                If (And (BTFG, 0x01))
7770                {
7771                    Or (Local0, 0x04, Local0)
7772                }
7773
7774                Return (Local0)
7775            }
7776
7777            Method (SULP, 1, NotSerialized)
7778            {
7779                If (And (Arg0, 0x02))
7780                {
7781                    PWRC (0x01)
7782                }
7783                Else
7784                {
7785                    PWRC (0x00)
7786                }
7787
7788                If (And (Arg0, 0x04))
7789                {
7790                    Or (BTFG, 0x01, BTFG)
7791                    \GBTH (0x02)
7792                }
7793                Else
7794                {
7795                    And (BTFG, Not (0x01), BTFG)
7796                    \GBTH (0x03)
7797                }
7798
7799                Return (GULP ())
7800            }
7801
7802            Method (BTIN, 0, NotSerialized)
7803            {
7804                Store (\GBTH (0x00), BTID)
7805                If (\GBTH (0x01))
7806                {
7807                    Or (BTFG, 0x01, BTFG)
7808                }
7809
7810                ATCH (0x01)
7811                PBTN (0x01)
7812                MODE (0x01)
7813            }
7814
7815            Method (BTPS, 1, NotSerialized)
7816            {
7817                PBTN (0x00)
7818                If (LEqual (BTID, 0x01))
7819                {
7820                    If (LNot (And (BTFG, 0x01)))
7821                    {
7822                        PWRC (0x00)
7823                    }
7824                }
7825
7826                If (PWRS ())
7827                {
7828                    Or (BTFG, 0x02, BTFG)
7829                }
7830                Else
7831                {
7832                    And (BTFG, Not (0x02), BTFG)
7833                }
7834            }
7835
7836            Method (BTWK, 1, NotSerialized)
7837            {
7838                PBTN (0x01)
7839                If (And (BTFG, 0x02))
7840                {
7841                    PWRC (0x01)
7842                }
7843            }
7844
7845            Method (PWRC, 1, NotSerialized)
7846            {
7847                If (Arg0)
7848                {
7849                    If (\H8DR)
7850                    {
7851                        Store (One, \_SB.PCI0.ISA.EC.BTPW)
7852                    }
7853                    Else
7854                    {
7855                        \MBEC (0x3B, 0xFF, 0x04)
7856                    }
7857                }
7858                Else
7859                {
7860                    If (\H8DR)
7861                    {
7862                        Store (Zero, \_SB.PCI0.ISA.EC.BTPW)
7863                    }
7864                    Else
7865                    {
7866                        \MBEC (0x3B, 0xFB, 0x00)
7867                    }
7868                }
7869            }
7870
7871            Method (ATCH, 1, NotSerialized)
7872            {
7873                If (Arg0)
7874                {
7875                    If (\H8DR)
7876                    {
7877                        Store (Zero, \_SB.PCI0.ISA.EC.BTDT)
7878                    }
7879                    Else
7880                    {
7881                        \MBEC (0x3B, 0xF7, 0x00)
7882                    }
7883                }
7884                Else
7885                {
7886                    If (\H8DR)
7887                    {
7888                        Store (One, \_SB.PCI0.ISA.EC.BTDT)
7889                    }
7890                    Else
7891                    {
7892                        \MBEC (0x3B, 0xFF, 0x08)
7893                    }
7894                }
7895            }
7896
7897            Method (MODE, 1, NotSerialized)
7898            {
7899                If (Arg0)
7900                {
7901                    If (\H8DR)
7902                    {
7903                        Store (One, \_SB.PCI0.ISA.EC.BTCM)
7904                    }
7905                    Else
7906                    {
7907                        \MBEC (0x01, 0xFF, 0x02)
7908                    }
7909                }
7910                Else
7911                {
7912                    If (\H8DR)
7913                    {
7914                        Store (Zero, \_SB.PCI0.ISA.EC.BTCM)
7915                    }
7916                    Else
7917                    {
7918                        \MBEC (0x01, 0xFD, 0x00)
7919                    }
7920                }
7921            }
7922
7923            Method (PBTN, 1, NotSerialized)
7924            {
7925                If (Arg0)
7926                {
7927                    If (\H8DR)
7928                    {
7929                        Store (One, \_SB.PCI0.ISA.EC.BTPC)
7930                    }
7931                    Else
7932                    {
7933                        \MBEC (0x01, 0xFF, 0x40)
7934                    }
7935                }
7936                Else
7937                {
7938                    If (\H8DR)
7939                    {
7940                        Store (Zero, \_SB.PCI0.ISA.EC.BTPC)
7941                    }
7942                    Else
7943                    {
7944                        \MBEC (0x01, 0xBF, 0x00)
7945                    }
7946                }
7947            }
7948
7949            Method (PWRS, 0, NotSerialized)
7950            {
7951                If (\H8DR)
7952                {
7953                    Store (\_SB.PCI0.ISA.EC.BTPW, Local0)
7954                }
7955                Else
7956                {
7957                    Store (ShiftRight (And (\RBEC (0x3B), 0x04), 0x02), Local0)
7958                }
7959
7960                Return (Local0)
7961            }
7962
7963            Method (ATCS, 0, NotSerialized)
7964            {
7965                If (\H8DR)
7966                {
7967                    Store (\_SB.PCI0.ISA.EC.BTDT, Local0)
7968                }
7969                Else
7970                {
7971                    Store (ShiftRight (And (\RBEC (0x3B), 0x08), 0x03), Local0)
7972                }
7973
7974                XOr (Local0, 0x01, Local0)
7975                Return (Local0)
7976            }
7977
7978            Method (WAKS, 0, NotSerialized)
7979            {
7980                If (\H8DR)
7981                {
7982                    Store (\_SB.PCI0.ISA.EC.BTWK, Local0)
7983                }
7984                Else
7985                {
7986                    Store (ShiftRight (And (\RBEC (0x36), 0x02), 0x01), Local0)
7987                }
7988
7989                Return (Local0)
7990            }
7991
7992            Method (BTAT, 2, NotSerialized)
7993            {
7994                Store (0x00, Local0)
7995                If (LEqual (Arg0, 0x00))
7996                {
7997                    If (LEqual (Arg1, 0x01))
7998                    {
7999                        If (\H8DR)
8000                        {
8001                            Or (\_SB.PCI0.ISA.EC.HAMA, 0x10, \_SB.PCI0.ISA.EC.HAMA)
8002                        }
8003                        Else
8004                        {
8005                            \MBEC (0x1A, 0xFF, 0x10)
8006                        }
8007                    }
8008
8009                    If (LEqual (Arg1, 0x00))
8010                    {
8011                        If (\H8DR)
8012                        {
8013                            And (\_SB.PCI0.ISA.EC.HAMA, 0xEF, \_SB.PCI0.ISA.EC.HAMA)
8014                        }
8015                        Else
8016                        {
8017                            \MBEC (0x1A, 0xEF, 0x00)
8018                        }
8019                    }
8020
8021                    If (LEqual (Arg1, 0x02))
8022                    {
8023                        If (\H8DR)
8024                        {
8025                            If (And (\_SB.PCI0.ISA.EC.HAMA, 0x10))
8026                            {
8027                                Store (0x01, Local0)
8028                            }
8029                        }
8030                        Else
8031                        {
8032                            If (And (\RBEC (0x1A), 0x10))
8033                            {
8034                                Store (0x01, Local0)
8035                            }
8036                        }
8037                    }
8038                }
8039
8040                If (LEqual (Arg0, 0x01))
8041                {
8042                    If (LEqual (Arg1, 0x01))
8043                    {
8044                        If (\H8DR)
8045                        {
8046                            Or (\_SB.PCI0.ISA.EC.HAMA, 0x20, \_SB.PCI0.ISA.EC.HAMA)
8047                        }
8048                        Else
8049                        {
8050                            \MBEC (0x1A, 0xFF, 0x20)
8051                        }
8052                    }
8053
8054                    If (LEqual (Arg1, 0x00))
8055                    {
8056                        If (\H8DR)
8057                        {
8058                            And (\_SB.PCI0.ISA.EC.HAMA, 0xDF, \_SB.PCI0.ISA.EC.HAMA)
8059                        }
8060                        Else
8061                        {
8062                            \MBEC (0x1A, 0xDF, 0x00)
8063                        }
8064                    }
8065
8066                    If (LEqual (Arg1, 0x02))
8067                    {
8068                        If (\H8DR)
8069                        {
8070                            If (And (\_SB.PCI0.ISA.EC.HAMA, 0x20))
8071                            {
8072                                Store (0x01, Local0)
8073                            }
8074                        }
8075                        Else
8076                        {
8077                            If (And (\RBEC (0x1A), 0x20))
8078                            {
8079                                Store (0x01, Local0)
8080                            }
8081                        }
8082                    }
8083                }
8084
8085                Return (Local0)
8086            }
8087        }
8088    }
8089
8090    Name (\_S0, Package (0x04)
8091    {
8092        0x05,
8093        0x05,
8094        0x00,
8095        0x00
8096    })
8097    Name (\_S1, Package (0x04)
8098    {
8099        0x04,
8100        0x04,
8101        0x00,
8102        0x00
8103    })
8104    Name (\_S3, Package (0x04)
8105    {
8106        0x01,
8107        0x01,
8108        0x00,
8109        0x00
8110    })
8111    Name (\_S4, Package (0x04)
8112    {
8113        0x07,
8114        0x07,
8115        0x00,
8116        0x00
8117    })
8118    Name (\_S5, Package (0x04)
8119    {
8120        0x07,
8121        0x07,
8122        0x00,
8123        0x00
8124    })
8125    Method (\_PTS, 1, NotSerialized)
8126    {
8127        If (LEqual (Arg0, \SPS))
8128        {
8129            Store (0x00, Local0)
8130        }
8131        Else
8132        {
8133            If (LOr (LEqual (Arg0, 0x00), LNot (LLess (Arg0, 0x06))))
8134            {
8135                Store (0x00, Local0)
8136            }
8137            Else
8138            {
8139                Store (0x01, Local0)
8140            }
8141        }
8142
8143        If (Local0)
8144        {
8145            Store (Arg0, \SPS)
8146            \_SB.PCI0.ISA.EC.HKEY.MHKE (0x00)
8147            \_SB.PCI0.ISA.EC.EVNT (0x00)
8148            If (\_SB.PCI0.ISA.EC.KBLT)
8149            {
8150                \LGHT (0x00)
8151            }
8152
8153            If (LEqual (Arg0, 0x01))
8154            {
8155                Store (0x01, \_SB.PCI0.PM00.BLEN)
8156                Store (0x00, \_SB.PCI0.ISA.EC.HCAC)
8157                Or (\_SB.PCI0.ISA.ACI, 0x01, \_SB.PCI0.ISA.ACI)
8158                Store (\_SB.PCI0.ISA.EC.HFNI, \FNID)
8159                Store (0x00, \_SB.PCI0.ISA.EC.HFNI)
8160            }
8161
8162            If (LEqual (Arg0, 0x02))
8163            {
8164                Store (One, \_SB.PCI0.PM00.BLEN)
8165                Store (One, \_SB.PCI0.CREN)
8166            }
8167
8168            If (LEqual (Arg0, 0x03))
8169            {
8170                \VVPD ()
8171                Store (One, \_SB.PCI0.PM00.BLEN)
8172            }
8173
8174            If (LEqual (Arg0, 0x04))
8175            {
8176                \WOLP ()
8177                \TRAP (0x04, 0x01)
8178            }
8179
8180            If (LEqual (Arg0, 0x05))
8181            {
8182                \TRAP (0x05, 0x01)
8183            }
8184
8185            If (LNot (LEqual (Arg0, 0x05)))
8186            {
8187                Store (One, \_SB.PCI0.ISA.EC.HCMU)
8188                Store (0x00, \_SB.PCI0.ISA.EC.HFSP)
8189                \_SB.PCI0.DOCK.DPTS (Arg0)
8190                \_SB.PCI0.ISA.EC.BPTS (Arg0)
8191            }
8192
8193            \_SB.PCI0.ISA.EC.HKEY.BTPS (Arg0)
8194        }
8195    }
8196
8197    Name (WAKI, Package (0x02)
8198    {
8199        0x00,
8200        0x00
8201    })
8202    Method (\_WAK, 1, NotSerialized)
8203    {
8204        If (LOr (LEqual (Arg0, 0x00), LNot (LLess (Arg0, 0x05))))
8205        {
8206            Return (WAKI)
8207        }
8208
8209        Store (Zero, \SPS)
8210        Store (Zero, \_SB.PCI0.PM00.BLEN)
8211        Store (Zero, \_SB.PCI0.CREN)
8212        Store (Zero, \_SB.PCI0.ISA.EC.HCMU)
8213        Store (0x80, \_SB.PCI0.ISA.EC.HFSP)
8214        \_SB.PCI0.ISA.EC.EVNT (0x01)
8215        \_SB.PCI0.ISA.EC.HKEY.MHKE (0x01)
8216        If (LEqual (Arg0, 0x01))
8217        {
8218            And (\_SB.PCI0.ISA.ACI, 0xFE, \_SB.PCI0.ISA.ACI)
8219            Store (0x01, \_SB.PCI0.ISA.EC.HCAC)
8220            Store (\_SB.PCI0.ISA.EC.HFNI, \FNID)
8221        }
8222
8223        If (LEqual (Arg0, 0x02)) {}
8224        If (LEqual (Arg0, 0x03)) {}
8225        If (LEqual (Arg0, 0x04))
8226        {
8227            If (\W98F)
8228            {
8229                Notify (\_SB.SLPB, 0x02)
8230            }
8231
8232            If (\WMEF)
8233            {
8234                \_SB.PCI0.ISA.EC.BEEP (0x05)
8235            }
8236
8237            If (LNot (\W98F))
8238            {
8239                Store (0x00, \_SB.PCI0.ISA.EC.HSPA)
8240            }
8241        }
8242
8243        \_SB.PCI0.DOCK.DWAK (Arg0)
8244        \_SB.PCI0.ISA.EC.BWAK (Arg0)
8245        \_SB.PCI0.ISA.EC.HKEY.BTWK (Arg0)
8246        Notify (\_TZ.THM0, 0x80)
8247        \VNRS (0x01)
8248        \VSLD (\_SB.LID._LID ())
8249        If (LAnd (\W98F, LNot (\WMEF)))
8250        {
8251            Notify (\_SB.PCI0.USB, 0x01)
8252        }
8253
8254        If (LLess (Arg0, 0x04))
8255        {
8256            If (LOr (And (\_SB.PCI0.ISA.EC.CP4E, 0x02), And (\RRBF, 0x02)))
8257            {
8258                ShiftLeft (Arg0, 0x08, Local0)
8259                Store (Or (0x2013, Local0), Local0)
8260                \_SB.PCI0.ISA.EC.HKEY.MHKQ (Local0)
8261            }
8262        }
8263
8264        Store (Zero, \RRBF)
8265        Return (WAKI)
8266    }
8267
8268    Scope (\_SI)
8269    {
8270        Method (_SST, 1, NotSerialized)
8271        {
8272            If (LEqual (Arg0, 0x00))
8273            {
8274                \_SB.PCI0.ISA.EC.SYSL (0x00, 0x00)
8275                \_SB.PCI0.ISA.EC.SYSL (0x01, 0x00)
8276            }
8277
8278            If (LEqual (Arg0, 0x01))
8279            {
8280                If (LOr (\SPS, \WNTF))
8281                {
8282                    \_SB.PCI0.ISA.EC.BEEP (0x05)
8283                }
8284
8285                \_SB.PCI0.ISA.EC.SYSL (0x00, 0x01)
8286                \_SB.PCI0.ISA.EC.SYSL (0x01, 0x00)
8287            }
8288
8289            If (LEqual (Arg0, 0x02))
8290            {
8291                \_SB.PCI0.ISA.EC.SYSL (0x00, 0x01)
8292                \_SB.PCI0.ISA.EC.SYSL (0x01, 0x02)
8293            }
8294
8295            If (LEqual (Arg0, 0x03))
8296            {
8297                If (LGreater (\SPS, 0x03))
8298                {
8299                    \_SB.PCI0.ISA.EC.BEEP (0x07)
8300                }
8301                Else
8302                {
8303                    If (LEqual (\SPS, 0x03))
8304                    {
8305                        \_SB.PCI0.ISA.EC.BEEP (0x03)
8306                    }
8307                    Else
8308                    {
8309                        \_SB.PCI0.ISA.EC.BEEP (0x04)
8310                    }
8311                }
8312
8313                If (LEqual (\SPS, 0x03))
8314                {
8315                    \_SB.PCI0.ISA.EC.SYSL (0x00, 0x00)
8316                }
8317                Else
8318                {
8319                    \_SB.PCI0.ISA.EC.SYSL (0x00, 0x01)
8320                }
8321
8322                \_SB.PCI0.ISA.EC.SYSL (0x01, 0x01)
8323            }
8324
8325            If (LEqual (Arg0, 0x04))
8326            {
8327                \_SB.PCI0.ISA.EC.BEEP (0x03)
8328                \_SB.PCI0.ISA.EC.SYSL (0x01, 0x02)
8329            }
8330        }
8331    }
8332
8333    Scope (\_GPE)
8334    {
8335        Method (_L0B, 0, NotSerialized)
8336        {
8337            Store (\_SB.PCI0.ISA.EC.HWAK, Local0)
8338            Sleep (0x0A)
8339            Store (Local0, \RRBF)
8340            If (And (Local0, 0x01))
8341            {
8342                If (And (\_SB.PCI0.PMEE, 0x01))
8343                {
8344                    Notify (\_SB.PCI0, 0x02)
8345                }
8346
8347                If (And (\_SB.PCI0.PMEE, 0x02))
8348                {
8349                    Notify (\_SB.PCI0.DOCK, 0x02)
8350                }
8351            }
8352
8353            If (And (Local0, 0x02)) {}
8354            If (And (Local0, 0x04))
8355            {
8356                If (\W98F)
8357                {
8358                    Notify (\_SB.SLPB, 0x02)
8359                }
8360                Else
8361                {
8362                    Notify (\_SB.LID, 0x02)
8363                }
8364            }
8365
8366            If (And (Local0, 0x08))
8367            {
8368                \_SB.PCI0.DOCK.DGPE ()
8369                Notify (\_SB.SLPB, 0x02)
8370            }
8371
8372            If (And (Local0, 0x10))
8373            {
8374                Notify (\_SB.SLPB, 0x02)
8375            }
8376
8377            If (And (Local0, 0x40))
8378            {
8379                Notify (\_SB.PCI0.ISA.UART, 0x02)
8380            }
8381
8382            If (And (Local0, 0x80))
8383            {
8384                Notify (\_SB.SLPB, 0x02)
8385            }
8386        }
8387    }
8388
8389    Scope (\_TZ)
8390    {
8391        ThermalZone (THM0)
8392        {
8393            Name (_CRT, 0x0E76)
8394            Name (_PSL, Package (0x01)
8395            {
8396                \_PR.CPU
8397            })
8398            Name (_PSV, 0x0E3F)
8399            Name (_TC1, 0x05)
8400            Name (_TC2, 0x02)
8401            Name (_TSP, 0x0258)
8402            Method (_TMP, 0, NotSerialized)
8403            {
8404                If (\H8DR)
8405                {
8406                    Store (\_SB.PCI0.ISA.EC.TMP0, Local0)
8407                }
8408                Else
8409                {
8410                    Store (\RBEC (0x78), Local0)
8411                }
8412
8413                Return (C2K (Local0))
8414            }
8415        }
8416
8417        Method (C2K, 1, NotSerialized)
8418        {
8419            Add (Multiply (Arg0, 0x0A), 0x0AAC, Local0)
8420            If (LNot (LGreater (Local0, 0x0AAC)))
8421            {
8422                Store (0x0BB8, Local0)
8423            }
8424
8425            If (LNot (LLess (Local0, 0x0FAC)))
8426            {
8427                Store (0x0BB8, Local0)
8428            }
8429
8430            Return (Local0)
8431        }
8432    }
8433
8434    Scope (\_SB.PCI0.ISA.EC)
8435    {
8436        Method (_Q40, 0, NotSerialized)
8437        {
8438            Notify (\_TZ.THM0, 0x80)
8439        }
8440    }
8441
8442    OperationRegion (MNVS, SystemMemory, 0x0FFFF000, 0x1000)
8443    Field (MNVS, DWordAcc, NoLock, Preserve)
8444    {
8445        Offset (0xF00),
8446        HDHD,   8,
8447        HDSE,   8,
8448        Offset (0xF03),
8449        Offset (0xF04),
8450        Offset (0xF08),
8451        Offset (0xF0C),
8452        Offset (0xF10),
8453        VCDL,   1,
8454        VCDC,   1,
8455        VCDT,   1,
8456        VCDD,   1,
8457            ,   1,
8458        VCSS,   1,
8459        VCDB,   1,
8460        VCIN,   1,
8461        Offset (0xF12),
8462        VLID,   4,
8463        Offset (0xF14)
8464    }
8465
8466    Field (MNVS, ByteAcc, NoLock, Preserve)
8467    {
8468        Offset (0xE00),
8469        DDC1,   1024,
8470        Offset (0xF00)
8471    }
8472
8473    Field (MNVS, ByteAcc, NoLock, Preserve)
8474    {
8475        Offset (0xE00),
8476        DDC2,   2048
8477    }
8478
8479    OperationRegion (SMI0, SystemIO, 0xFE00, 0x02)
8480    Field (SMI0, ByteAcc, NoLock, Preserve)
8481    {
8482        APMC,   8
8483    }
8484
8485    Field (MNVS, AnyAcc, NoLock, Preserve)
8486    {
8487        Offset (0xFC0),
8488        CMD,    8,
8489        ERR,    32,
8490        PAR0,   32,
8491        PAR1,   32,
8492        PAR2,   32,
8493        PAR3,   32
8494    }
8495
8496    Mutex (MSMI, 0x07)
8497    Method (SMI, 5, NotSerialized)
8498    {
8499        Acquire (MSMI, 0xFFFF)
8500        Store (Arg0, CMD)
8501        Store (Arg1, PAR0)
8502        Store (Arg2, PAR1)
8503        Store (Arg3, PAR2)
8504        Store (Arg4, PAR3)
8505        Store (0x00, APMC)
8506        While (LEqual (ERR, 0x01))
8507        {
8508            Sleep (0x64)
8509            Store (0x00, APMC)
8510        }
8511
8512        Store (PAR0, Local0)
8513        Release (MSMI)
8514        Return (Local0)
8515    }
8516
8517    Method (RPCI, 1, NotSerialized)
8518    {
8519        Return (SMI (0x80, 0x00, Arg0, 0x00, 0x00))
8520    }
8521
8522    Method (WPCI, 2, NotSerialized)
8523    {
8524        SMI (0x80, 0x01, Arg0, Arg1, 0x00)
8525    }
8526
8527    Method (MPCI, 3, NotSerialized)
8528    {
8529        SMI (0x80, 0x02, Arg0, Arg1, Arg2)
8530    }
8531
8532    Method (RBEC, 1, NotSerialized)
8533    {
8534        Return (SMI (0x81, 0x00, Arg0, 0x00, 0x00))
8535    }
8536
8537    Method (WBEC, 2, NotSerialized)
8538    {
8539        SMI (0x81, 0x01, Arg0, Arg1, 0x00)
8540    }
8541
8542    Method (MBEC, 3, NotSerialized)
8543    {
8544        SMI (0x81, 0x02, Arg0, Arg1, Arg2)
8545    }
8546
8547    Method (TRAP, 2, NotSerialized)
8548    {
8549        SMI (0x82, Arg0, Arg1, 0x00, 0x00)
8550    }
8551
8552    Method (FERR, 0, NotSerialized)
8553    {
8554        SMI (0x83, 0x00, 0x00, 0x00, 0x00)
8555    }
8556
8557    Method (GFDD, 0, NotSerialized)
8558    {
8559        Return (SMI (0x84, 0x00, 0x00, 0x00, 0x00))
8560    }
8561
8562    Method (SFDD, 1, NotSerialized)
8563    {
8564        SMI (0x84, 0x01, Arg0, 0x00, 0x00)
8565    }
8566
8567    Method (DHDP, 1, NotSerialized)
8568    {
8569        Return (SMI (0x85, Arg0, 0x00, 0x00, 0x00))
8570    }
8571
8572    Method (VOLU, 0, NotSerialized)
8573    {
8574        SMI (0x86, 0x00, 0x00, 0x00, 0x00)
8575    }
8576
8577    Method (VOLD, 0, NotSerialized)
8578    {
8579        SMI (0x86, 0x01, 0x00, 0x00, 0x00)
8580    }
8581
8582    Method (VOLM, 0, NotSerialized)
8583    {
8584        SMI (0x86, 0x02, 0x00, 0x00, 0x00)
8585    }
8586
8587    Method (TPKY, 0, NotSerialized)
8588    {
8589        SMI (0x86, 0x03, 0x00, 0x00, 0x00)
8590    }
8591
8592    Method (BRIU, 0, NotSerialized)
8593    {
8594        SMI (0x86, 0x04, 0x00, 0x00, 0x00)
8595    }
8596
8597    Method (BRID, 0, NotSerialized)
8598    {
8599        SMI (0x86, 0x05, 0x00, 0x00, 0x00)
8600    }
8601
8602    Method (SNMB, 0, NotSerialized)
8603    {
8604        SMI (0x86, 0x06, 0x00, 0x00, 0x00)
8605    }
8606
8607    Method (SMUT, 0, NotSerialized)
8608    {
8609        SMI (0x86, 0x07, 0x00, 0x00, 0x00)
8610    }
8611
8612    Method (ESYB, 1, NotSerialized)
8613    {
8614        If (LEqual (Arg0, 0x00))
8615        {
8616            SMI (0x86, 0x03, 0x00, 0x00, 0x00)
8617        }
8618        Else
8619        {
8620            SMI (0x86, 0x08, Decrement (Arg0), 0x00, 0x00)
8621        }
8622    }
8623
8624    Method (DSEP, 0, NotSerialized)
8625    {
8626        SMI (0x86, 0x09, 0x00, 0x00, 0x00)
8627    }
8628
8629    Method (VEXP, 0, NotSerialized)
8630    {
8631        SMI (0x87, 0x00, 0x00, 0x00, 0x00)
8632    }
8633
8634    Method (VUPS, 1, NotSerialized)
8635    {
8636        SMI (0x88, Arg0, 0x00, 0x00, 0x00)
8637    }
8638
8639    Method (VSDS, 2, NotSerialized)
8640    {
8641        SMI (0x89, Arg0, Arg1, 0x00, 0x00)
8642    }
8643
8644    Method (VDDC, 0, NotSerialized)
8645    {
8646        SMI (0x8A, 0x00, 0x00, 0x00, 0x00)
8647    }
8648
8649    Method (VVPD, 0, NotSerialized)
8650    {
8651        SMI (0x94, 0x00, 0x00, 0x00, 0x00)
8652    }
8653
8654    Method (GVIL, 1, NotSerialized)
8655    {
8656        SMI (0x8B, Arg0, 0x00, 0x00, 0x00)
8657    }
8658
8659    Method (GCHK, 0, NotSerialized)
8660    {
8661        Return (SMI (0x8B, 0x06, 0x00, 0x00, 0x00))
8662    }
8663
8664    Method (LGHT, 1, NotSerialized)
8665    {
8666        SMI (0x8C, Arg0, 0x00, 0x00, 0x00)
8667    }
8668
8669    Method (GPAR, 0, NotSerialized)
8670    {
8671        Return (SMI (0x8D, 0x00, 0x00, 0x00, 0x00))
8672    }
8673
8674    Method (GDCK, 1, NotSerialized)
8675    {
8676        \_SB.PCI0.ISA.EC.AI2C ()
8677        Store (SMI (0x8E, Arg0, 0x00, 0x00, 0x00), Local0)
8678        \_SB.PCI0.ISA.EC.RI2C ()
8679        Return (Local0)
8680    }
8681
8682    Method (GGAP, 1, NotSerialized)
8683    {
8684        Return (SMI (0x8F, Arg0, 0x00, 0x00, 0x00))
8685    }
8686
8687    Method (GHKY, 0, NotSerialized)
8688    {
8689        Store (SMI (0x90, 0x00, 0x00, 0x00, 0x00), Local0)
8690        Return (And (ShiftRight (Local0, 0x04), 0x01))
8691    }
8692
8693    Method (GCDT, 1, NotSerialized)
8694    {
8695        Return (SMI (0x91, Arg0, 0x00, 0x00, 0x00))
8696    }
8697
8698    Method (GBTH, 1, NotSerialized)
8699    {
8700        Return (SMI (0x92, Arg0, 0x00, 0x00, 0x00))
8701    }
8702
8703    Method (BHDP, 1, NotSerialized)
8704    {
8705        Return (SMI (0x93, Arg0, 0x00, 0x00, 0x00))
8706    }
8707
8708    Method (VNRS, 1, NotSerialized)
8709    {
8710        Return (SMI (0x95, Arg0, 0x00, 0x00, 0x00))
8711    }
8712
8713    Method (GLPW, 0, NotSerialized)
8714    {
8715        Return (SMI (0x96, 0x00, 0x00, 0x00, 0x00))
8716    }
8717
8718    Method (GTPS, 0, NotSerialized)
8719    {
8720        Return (SMI (0x97, 0x00, 0x00, 0x00, 0x00))
8721    }
8722
8723    Method (VSLD, 1, NotSerialized)
8724    {
8725        Return (SMI (0x99, Arg0, 0x00, 0x00, 0x00))
8726    }
8727
8728    Method (CBRI, 0, NotSerialized)
8729    {
8730        SMI (0x9A, 0x00, 0x00, 0x00, 0x00)
8731    }
8732
8733    Method (WOLP, 0, NotSerialized)
8734    {
8735        SMI (0x9B, 0x00, 0x00, 0x00, 0x00)
8736    }
8737
8738    Method (ECPP, 0, NotSerialized)
8739    {
8740        SMI (0x9C, 0x00, 0x00, 0x00, 0x00)
8741    }
8742
8743    Scope (\_SB.PCI0.PM00)
8744    {
8745        OperationRegion (GPOR, SystemIO, 0x1034, 0x04)
8746        Field (GPOR, ByteAcc, NoLock, Preserve)
8747        {
8748                ,   1,
8749            Offset (0x01),
8750            MSON,   1,
8751                ,   1,
8752            URST,   1,
8753            EID2,   1,
8754            EID,    2,
8755            CSON,   1,
8756                ,   4,
8757            IPDR,   1,
8758                ,   1,
8759            S2DS,   1,
8760                ,   1,
8761            ULON,   1,
8762                ,   7
8763        }
8764    }
8765
8766    Name (ICM0, Buffer (0x1C)
8767    {
8768        0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
8769        0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00,
8770        0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00,
8771        0x00, 0x00, 0xA0, 0xEF
8772    })
8773    CreateByteField (ICM0, 0x0F, HDM0)
8774    CreateByteField (ICM0, 0x16, HPI0)
8775    Name (ICM1, Buffer (0x1C)
8776    {
8777        0x02, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x00,
8778        0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5, 0x03, 0x00,
8779        0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03, 0x00, 0x00,
8780        0x00, 0x00, 0xB0, 0xEF
8781    })
8782    CreateByteField (ICM1, 0x0F, HDM1)
8783    CreateByteField (ICM1, 0x16, HPI1)
8784    Name (ICC1, Buffer (0x0E)
8785    {
8786        0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03,
8787        0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
8788    })
8789    CreateByteField (ICC1, 0x01, CDM1)
8790    CreateByteField (ICC1, 0x08, CPI1)
8791    Name (IDKM, 0x00)
8792    Name (ICM2, Buffer (0x1C)
8793    {
8794        0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
8795        0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00,
8796        0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00,
8797        0x00, 0x00, 0xA0, 0xEF
8798    })
8799    CreateByteField (ICM2, 0x0F, HDM2)
8800    CreateByteField (ICM2, 0x16, HPI2)
8801    Name (ICC2, Buffer (0x0E)
8802    {
8803        0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03,
8804        0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
8805    })
8806    CreateByteField (ICC2, 0x01, CDM2)
8807    CreateByteField (ICC2, 0x08, CPI2)
8808    Name (DCM2, Buffer (0x1C)
8809    {
8810        0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03,
8811        0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 0x00,
8812        0x00, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00,
8813        0x00, 0x00, 0xA0, 0xE3
8814    })
8815    CreateByteField (DCM2, 0x01, DDM2)
8816    CreateByteField (DCM2, 0x08, DPI2)
8817    CreateByteField (DCM2, 0x0F, DTA2)
8818    CreateByteField (DCM2, 0x16, DTF2)
8819    Name (IDKS, 0x00)
8820    Name (ICM3, Buffer (0x1C)
8821    {
8822        0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
8823        0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00,
8824        0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00,
8825        0x00, 0x00, 0xA0, 0xEF
8826    })
8827    CreateByteField (ICM3, 0x0F, HDM3)
8828    CreateByteField (ICM3, 0x16, HPI3)
8829    Name (ICC3, Buffer (0x0E)
8830    {
8831        0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03,
8832        0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
8833    })
8834    CreateByteField (ICC3, 0x01, CDM3)
8835    CreateByteField (ICC3, 0x08, CPI3)
8836    Name (BGTM, Buffer (0x14) {})
8837    CreateDWordField (BGTM, 0x00, GTP0)
8838    CreateDWordField (BGTM, 0x04, GTD0)
8839    CreateDWordField (BGTM, 0x08, GTP1)
8840    CreateDWordField (BGTM, 0x0C, GTD1)
8841    CreateDWordField (BGTM, 0x10, GTMF)
8842    Method (UDMA, 2, NotSerialized)
8843    {
8844        If (And (Arg0, 0x04))
8845        {
8846            If (And (Arg1, 0x10))
8847            {
8848                Return (0x05)
8849            }
8850            Else
8851            {
8852                If (And (Arg1, 0x08))
8853                {
8854                    Return (0x04)
8855                }
8856                Else
8857                {
8858                    If (And (Arg1, 0x04))
8859                    {
8860                        Return (0x03)
8861                    }
8862                    Else
8863                    {
8864                        If (And (Arg1, 0x02))
8865                        {
8866                            Return (0x02)
8867                        }
8868                        Else
8869                        {
8870                            If (And (Arg1, 0x01))
8871                            {
8872                                Return (0x01)
8873                            }
8874                            Else
8875                            {
8876                                Return (0x00)
8877                            }
8878                        }
8879                    }
8880                }
8881            }
8882        }
8883        Else
8884        {
8885            Return (0x00)
8886        }
8887    }
8888
8889    Method (UDMB, 2, NotSerialized)
8890    {
8891        If (Arg0)
8892        {
8893            If (LGreater (Arg1, 0x1E))
8894            {
8895                If (LGreater (Arg1, 0x2D))
8896                {
8897                    If (LGreater (Arg1, 0x3C))
8898                    {
8899                        If (LGreater (Arg1, 0x50))
8900                        {
8901                            Return (0x01)
8902                        }
8903                        Else
8904                        {
8905                            Return (0x02)
8906                        }
8907                    }
8908                    Else
8909                    {
8910                        Return (0x03)
8911                    }
8912                }
8913                Else
8914                {
8915                    Return (0x04)
8916                }
8917            }
8918            Else
8919            {
8920                Return (0x05)
8921            }
8922        }
8923        Else
8924        {
8925            Return (0x00)
8926        }
8927    }
8928
8929    Method (MDMA, 4, NotSerialized)
8930    {
8931        If (And (Arg0, 0x02))
8932        {
8933            If (And (Arg1, 0x04))
8934            {
8935                If (LNot (LGreater (Arg3, 0x78)))
8936                {
8937                    Return (0x03)
8938                }
8939                Else
8940                {
8941                    If (LNot (LGreater (Arg3, 0xB4)))
8942                    {
8943                        Return (0x02)
8944                    }
8945                    Else
8946                    {
8947                        If (LNot (LGreater (Arg3, 0xF0)))
8948                        {
8949                            Return (0x01)
8950                        }
8951                        Else
8952                        {
8953                            Return (0x00)
8954                        }
8955                    }
8956                }
8957            }
8958            Else
8959            {
8960                If (And (Arg1, 0x02))
8961                {
8962                    If (LNot (LGreater (Arg3, 0xB4)))
8963                    {
8964                        Return (0x02)
8965                    }
8966                    Else
8967                    {
8968                        If (LNot (LGreater (Arg3, 0xF0)))
8969                        {
8970                            Return (0x01)
8971                        }
8972                        Else
8973                        {
8974                            Return (0x00)
8975                        }
8976                    }
8977                }
8978                Else
8979                {
8980                    If (And (Arg2, 0x04))
8981                    {
8982                        If (LNot (LGreater (Arg3, 0xF0)))
8983                        {
8984                            Return (0x01)
8985                        }
8986                        Else
8987                        {
8988                            Return (0x00)
8989                        }
8990                    }
8991                    Else
8992                    {
8993                        Return (0x00)
8994                    }
8995                }
8996            }
8997        }
8998        Else
8999        {
9000            Return (0x00)
9001        }
9002    }
9003
9004    Method (MDMB, 1, NotSerialized)
9005    {
9006        If (LGreater (Arg0, 0x78))
9007        {
9008            If (LGreater (Arg0, 0x96))
9009            {
9010                Return (0x01)
9011            }
9012            Else
9013            {
9014                Return (0x02)
9015            }
9016        }
9017        Else
9018        {
9019            Return (0x03)
9020        }
9021    }
9022
9023    Method (MPIO, 4, NotSerialized)
9024    {
9025        If (And (Arg0, 0x02))
9026        {
9027            If (And (Arg1, 0x02))
9028            {
9029                If (LNot (LGreater (Arg3, 0x78)))
9030                {
9031                    Return (0x04)
9032                }
9033                Else
9034                {
9035                    If (LNot (LGreater (Arg3, 0xB4)))
9036                    {
9037                        Return (0x03)
9038                    }
9039                    Else
9040                    {
9041                        If (LNot (LGreater (Arg3, 0xF0)))
9042                        {
9043                            Return (0x02)
9044                        }
9045                        Else
9046                        {
9047                            Return (0x00)
9048                        }
9049                    }
9050                }
9051            }
9052            Else
9053            {
9054                If (And (Arg1, 0x01))
9055                {
9056                    If (LNot (LGreater (Arg3, 0xB4)))
9057                    {
9058                        Return (0x03)
9059                    }
9060                    Else
9061                    {
9062                        If (LNot (LGreater (Arg3, 0xF0)))
9063                        {
9064                            Return (0x02)
9065                        }
9066                        Else
9067                        {
9068                            Return (0x00)
9069                        }
9070                    }
9071                }
9072                Else
9073                {
9074                    If (LEqual (Arg2, 0x02))
9075                    {
9076                        Return (0x01)
9077                    }
9078                    Else
9079                    {
9080                        Return (0x00)
9081                    }
9082                }
9083            }
9084        }
9085        Else
9086        {
9087            If (LEqual (Arg2, 0x02))
9088            {
9089                Return (0x01)
9090            }
9091            Else
9092            {
9093                Return (0x00)
9094            }
9095        }
9096    }
9097
9098    Method (MPIB, 2, NotSerialized)
9099    {
9100        If (LGreater (Arg1, 0x78))
9101        {
9102            If (LGreater (Arg1, 0xB4))
9103            {
9104                If (LGreater (Arg1, 0xF0))
9105                {
9106                    Return (0x00)
9107                }
9108                Else
9109                {
9110                    If (Arg0)
9111                    {
9112                        Return (0x02)
9113                    }
9114                    Else
9115                    {
9116                        Return (0x01)
9117                    }
9118                }
9119            }
9120            Else
9121            {
9122                Return (0x03)
9123            }
9124        }
9125        Else
9126        {
9127            Return (0x04)
9128        }
9129    }
9130
9131    Method (MPI4, 2, NotSerialized)
9132    {
9133        If (Arg0)
9134        {
9135            If (LEqual (Arg0, 0x01))
9136            {
9137                Return (0x01)
9138            }
9139            Else
9140            {
9141                If (LEqual (Arg0, 0x02))
9142                {
9143                    Return (0x02)
9144                }
9145                Else
9146                {
9147                    If (LEqual (Arg1, 0x03))
9148                    {
9149                        Return (0x02)
9150                    }
9151                    Else
9152                    {
9153                        Return (0x03)
9154                    }
9155                }
9156            }
9157        }
9158        Else
9159        {
9160            If (LLess (Arg1, 0x02))
9161            {
9162                Return (Arg1)
9163            }
9164            Else
9165            {
9166                Return (Decrement (Arg1))
9167            }
9168        }
9169    }
9170
9171    Method (MP4B, 1, NotSerialized)
9172    {
9173        If (LNot (LGreater (Arg0, 0x01)))
9174        {
9175            Return (Arg0)
9176        }
9177        Else
9178        {
9179            Return (Decrement (Arg0))
9180        }
9181    }
9182
9183    Method (MTIM, 3, NotSerialized)
9184    {
9185        If (LEqual (Arg0, 0x00))
9186        {
9187            Store (0x00, Local5)
9188        }
9189        Else
9190        {
9191            If (LEqual (Arg0, 0x01))
9192            {
9193                If (LLess (Arg1, 0x02))
9194                {
9195                    Store (0x01, Local5)
9196                }
9197                Else
9198                {
9199                    Store (0x03, Local5)
9200                }
9201            }
9202            Else
9203            {
9204                If (LEqual (Arg0, 0x02))
9205                {
9206                    Store (0x03, Local5)
9207                }
9208                Else
9209                {
9210                    Store (0x03, Local5)
9211                }
9212            }
9213
9214            If (LEqual (Arg1, 0x00))
9215            {
9216                Or (Local5, 0x08, Local5)
9217            }
9218        }
9219
9220        If (Arg2)
9221        {
9222            And (Local5, 0xFB, Local5)
9223        }
9224        Else
9225        {
9226            Or (Local5, 0x04, Local5)
9227        }
9228
9229        Return (Local5)
9230    }
9231
9232    Method (MISP, 1, NotSerialized)
9233    {
9234        If (LEqual (Arg0, 0x00))
9235        {
9236            Return (0x00)
9237        }
9238        Else
9239        {
9240            If (LEqual (Arg0, 0x01))
9241            {
9242                Return (0x01)
9243            }
9244            Else
9245            {
9246                If (LEqual (Arg0, 0x02))
9247                {
9248                    Return (0x02)
9249                }
9250                Else
9251                {
9252                    Return (0x02)
9253                }
9254            }
9255        }
9256    }
9257
9258    Method (MRTC, 1, NotSerialized)
9259    {
9260        If (LEqual (Arg0, 0x00))
9261        {
9262            Return (0x00)
9263        }
9264        Else
9265        {
9266            If (LEqual (Arg0, 0x01))
9267            {
9268                Return (0x00)
9269            }
9270            Else
9271            {
9272                If (LEqual (Arg0, 0x02))
9273                {
9274                    Return (0x01)
9275                }
9276                Else
9277                {
9278                    Return (0x03)
9279                }
9280            }
9281        }
9282    }
9283
9284    Method (MUCT, 1, NotSerialized)
9285    {
9286        If (LEqual (Arg0, 0x00))
9287        {
9288            Return (0x00)
9289        }
9290        Else
9291        {
9292            If (LEqual (Arg0, 0x01))
9293            {
9294                Return (0x00)
9295            }
9296            Else
9297            {
9298                If (LEqual (Arg0, 0x02))
9299                {
9300                    Return (0x01)
9301                }
9302                Else
9303                {
9304                    Return (0x02)
9305                }
9306            }
9307        }
9308    }
9309
9310    Method (CART, 1, NotSerialized)
9311    {
9312        If (LEqual (Arg0, 0x00))
9313        {
9314            Return (0x02)
9315        }
9316        Else
9317        {
9318            Return (0x01)
9319        }
9320    }
9321
9322    Method (CCMD, 1, NotSerialized)
9323    {
9324        If (LEqual (Arg0, 0x04))
9325        {
9326            Return (0x3F)
9327        }
9328        Else
9329        {
9330            If (LEqual (Arg0, 0x03))
9331            {
9332                Return (0x32)
9333            }
9334            Else
9335            {
9336                If (LEqual (Arg0, 0x02))
9337                {
9338                    Return (0xAF)
9339                }
9340                Else
9341                {
9342                    If (LEqual (Arg0, 0x01))
9343                    {
9344                        Return (0xA2)
9345                    }
9346                    Else
9347                    {
9348                        Return (0xA9)
9349                    }
9350                }
9351            }
9352        }
9353    }
9354
9355    Method (CDRW, 2, NotSerialized)
9356    {
9357        If (LEqual (Arg0, 0x01))
9358        {
9359            Store (0x88, Local0)
9360        }
9361        Else
9362        {
9363            If (LEqual (Arg0, 0x02))
9364            {
9365                Store (0x31, Local0)
9366            }
9367            Else
9368            {
9369                If (LEqual (Arg0, 0x03))
9370                {
9371                    Store (0x3F, Local0)
9372                }
9373                Else
9374                {
9375                    Store (0xFFFFFFFF, Local0)
9376                }
9377            }
9378        }
9379
9380        If (LEqual (Arg1, 0x00))
9381        {
9382            Store (0x6D, Local1)
9383        }
9384        Else
9385        {
9386            If (LEqual (Arg1, 0x01))
9387            {
9388                Store (0x43, Local1)
9389            }
9390            Else
9391            {
9392                If (LEqual (Arg1, 0x02))
9393                {
9394                    Store (0x43, Local1)
9395                }
9396                Else
9397                {
9398                    If (LEqual (Arg1, 0x03))
9399                    {
9400                        Store (0x32, Local1)
9401                    }
9402                    Else
9403                    {
9404                        Store (0x3F, Local1)
9405                    }
9406                }
9407            }
9408        }
9409
9410        If (LGreater (CCYC (Local0), CCYC (Local1)))
9411        {
9412            Return (Local0)
9413        }
9414        Else
9415        {
9416            Return (Local1)
9417        }
9418    }
9419
9420    Method (CCYC, 1, NotSerialized)
9421    {
9422        And (Arg0, 0x0F, Local0)
9423        ShiftRight (Arg0, 0x04, Local1)
9424        If (Local0)
9425        {
9426            If (LEqual (Local0, 0x0F))
9427            {
9428                Store (0x01, Local0)
9429            }
9430            Else
9431            {
9432                Increment (Local0)
9433            }
9434        }
9435        Else
9436        {
9437            Store (0x10, Local0)
9438        }
9439
9440        If (LNot (Local1))
9441        {
9442            Store (0x10, Local1)
9443        }
9444
9445        Add (Local0, Local1, Local0)
9446        Multiply (Local0, 0x1E, Local0)
9447        Return (Local0)
9448    }
9449
9450    Method (CUDC, 1, NotSerialized)
9451    {
9452        If (LEqual (Arg0, 0x01))
9453        {
9454            Return (0x03)
9455        }
9456        Else
9457        {
9458            If (LEqual (Arg0, 0x02))
9459            {
9460                Return (0x02)
9461            }
9462            Else
9463            {
9464                If (LEqual (Arg0, 0x03))
9465                {
9466                    Return (0x01)
9467                }
9468                Else
9469                {
9470                    If (LEqual (Arg0, 0x04))
9471                    {
9472                        Return (0x02)
9473                    }
9474                    Else
9475                    {
9476                        Return (0x01)
9477                    }
9478                }
9479            }
9480        }
9481    }
9482
9483    Method (MHDM, 2, NotSerialized)
9484    {
9485        If (LEqual (Arg0, 0x00))
9486        {
9487            If (LEqual (Arg1, 0x00))
9488            {
9489                Return (0x00)
9490            }
9491            Else
9492            {
9493                If (LEqual (Arg1, 0x01))
9494                {
9495                    Return (0x12)
9496                }
9497                Else
9498                {
9499                    If (LEqual (Arg1, 0x02))
9500                    {
9501                        Return (0x21)
9502                    }
9503                    Else
9504                    {
9505                        Return (0x22)
9506                    }
9507                }
9508            }
9509        }
9510        Else
9511        {
9512            If (LEqual (Arg0, 0x01))
9513            {
9514                Return (0x40)
9515            }
9516            Else
9517            {
9518                If (LEqual (Arg0, 0x02))
9519                {
9520                    Return (0x41)
9521                }
9522                Else
9523                {
9524                    If (LEqual (Arg0, 0x03))
9525                    {
9526                        Return (0x42)
9527                    }
9528                    Else
9529                    {
9530                        If (LEqual (Arg0, 0x04))
9531                        {
9532                            Return (0x43)
9533                        }
9534                        Else
9535                        {
9536                            Return (0x44)
9537                        }
9538                    }
9539                }
9540            }
9541        }
9542    }
9543
9544    Method (MHPI, 1, NotSerialized)
9545    {
9546        If (LEqual (Arg0, 0x00))
9547        {
9548            Return (0x00)
9549        }
9550        Else
9551        {
9552            If (LEqual (Arg0, 0x01))
9553            {
9554                Return (0x01)
9555            }
9556            Else
9557            {
9558                If (LEqual (Arg0, 0x02))
9559                {
9560                    Return (0x00)
9561                }
9562                Else
9563                {
9564                    If (LEqual (Arg0, 0x03))
9565                    {
9566                        Return (0x0B)
9567                    }
9568                    Else
9569                    {
9570                        Return (0x0C)
9571                    }
9572                }
9573            }
9574        }
9575    }
9576
9577    Method (MIN, 2, NotSerialized)
9578    {
9579        If (LLess (Arg0, Arg1))
9580        {
9581            Return (Arg0)
9582        }
9583        Else
9584        {
9585            Return (Arg1)
9586        }
9587    }
9588
9589    Method (SLEN, 1, NotSerialized)
9590    {
9591        Return (SizeOf (Arg0))
9592    }
9593
9594    Method (S2BF, 1, Serialized)
9595    {
9596        Add (SLEN (Arg0), One, Local0)
9597        Name (BUFF, Buffer (Local0) {})
9598        Store (Arg0, BUFF)
9599        Return (BUFF)
9600    }
9601
9602    Method (SCMP, 2, NotSerialized)
9603    {
9604        Store (S2BF (Arg0), Local0)
9605        Store (S2BF (Arg1), Local1)
9606        Store (Zero, Local4)
9607        Store (SLEN (Arg0), Local5)
9608        Store (SLEN (Arg1), Local6)
9609        Store (MIN (Local5, Local6), Local7)
9610        While (LLess (Local4, Local7))
9611        {
9612            Store (DerefOf (Index (Local0, Local4)), Local2)
9613            Store (DerefOf (Index (Local1, Local4)), Local3)
9614            If (LGreater (Local2, Local3))
9615            {
9616                Return (One)
9617            }
9618            Else
9619            {
9620                If (LLess (Local2, Local3))
9621                {
9622                    Return (Ones)
9623                }
9624            }
9625
9626            Increment (Local4)
9627        }
9628
9629        If (LLess (Local4, Local5))
9630        {
9631            Return (One)
9632        }
9633        Else
9634        {
9635            If (LLess (Local4, Local6))
9636            {
9637                Return (Ones)
9638            }
9639            Else
9640            {
9641                Return (Zero)
9642            }
9643        }
9644    }
9645
9646    Name (SPS, 0x00)
9647    Name (W98F, 0x00)
9648    Name (WNTF, 0x00)
9649    Name (WMEF, 0x00)
9650    Name (H8DR, 0x00)
9651    Name (MEMX, 0x00)
9652    Name (GVEN, 0x00)
9653    Name (FNID, 0x00)
9654    Name (RRBF, 0x00)
9655}
9656