Ticket #64: dsdt_PTL_ACPI.dsl

File dsdt_PTL_ACPI.dsl, 170.3 KB (added by Chuck McKinnis, 17 years ago)
Line 
1/*
2 * Intel ACPI Component Architecture
3 * AML Disassembler version 20050902
4 *
5 * Disassembly of , Sun Oct 14 14:37:14 2007
6 */
7DefinitionBlock ("DSDT.aml", "DSDT", 1, "VIA  ", "PTL_ACPI", 100925440)
8{
9    OperationRegion (DBG, SystemIO, 0x80, 0x01)
10    Field (DBG, ByteAcc, NoLock, Preserve)
11    {
12        DEBG,   8
13    }
14
15    OperationRegion (PARA, SystemIO, 0x0378, 0x01)
16    Field (PARA, ByteAcc, NoLock, Preserve)
17    {
18        PDEB,   8
19    }
20
21    Scope (_PR)
22    {
23        Processor (CPU0, 0x01, 0x00004010, 0x06) {}
24    }
25
26    Name (_S0, Package (0x02)
27    {
28        0x00,
29        0x00
30    })
31    Name (_S3, Package (0x02)
32    {
33        0x01,
34        0x01
35    })
36    Name (_S4, Package (0x02)
37    {
38        0x02,
39        0x02
40    })
41    Name (_S5, Package (0x02)
42    {
43        0x02,
44        0x02
45    })
46    Scope (_SB)
47    {
48        Name (OSTB, Ones)
49        OperationRegion (OSTY, SystemMemory, 0x2BEFBF4C, 0x00000001)
50        Field (OSTY, AnyAcc, NoLock, Preserve)
51        {
52            TPOS,   8
53        }
54
55        Method (OSTP, 0, NotSerialized)
56        {
57            If (LEqual (^OSTB, Ones))
58            {
59                If (CondRefOf (\_OSI, Local0))
60                {
61                    If (\_OSI ("Windows 2001"))
62                    {
63                        Store (0x08, ^OSTB)
64                        Store (0x08, ^TPOS)
65                    }
66                    Else
67                    {
68                        Store (0x00, ^OSTB)
69                        Store (0x00, ^TPOS)
70                    }
71                }
72                Else
73                {
74                    If (CondRefOf (\_OS, Local0))
75                    {
76                        If (^SEQL (\_OS, "Microsoft Windows"))
77                        {
78                            Store (0x01, ^OSTB)
79                            Store (0x01, ^TPOS)
80                        }
81                        Else
82                        {
83                            If (^SEQL (\_OS, "Microsoft WindowsME: Millennium Edition"))
84                            {
85                                Store (0x02, ^OSTB)
86                                Store (0x02, ^TPOS)
87                            }
88                            Else
89                            {
90                                If (^SEQL (\_OS, "Microsoft Windows NT"))
91                                {
92                                    Store (0x04, ^OSTB)
93                                    Store (0x04, ^TPOS)
94                                }
95                                Else
96                                {
97                                    Store (0x00, ^OSTB)
98                                    Store (0x00, ^TPOS)
99                                }
100                            }
101                        }
102                    }
103                    Else
104                    {
105                        Store (0x00, ^OSTB)
106                        Store (0x00, ^TPOS)
107                    }
108                }
109            }
110
111            Return (^OSTB)
112        }
113
114        Method (SEQL, 2, Serialized)
115        {
116            Store (SizeOf (Arg0), Local0)
117            Store (SizeOf (Arg1), Local1)
118            If (LNot (LEqual (Local0, Local1)))
119            {
120                Return (Zero)
121            }
122
123            Name (BUF0, Buffer (Local0) {})
124            Store (Arg0, BUF0)
125            Name (BUF1, Buffer (Local0) {})
126            Store (Arg1, BUF1)
127            Store (Zero, Local2)
128            While (LLess (Local2, Local0))
129            {
130                Store (DerefOf (Index (BUF0, Local2)), Local3)
131                Store (DerefOf (Index (BUF1, Local2)), Local4)
132                If (LNot (LEqual (Local3, Local4)))
133                {
134                    Return (Zero)
135                }
136
137                Increment (Local2)
138            }
139
140            Return (One)
141        }
142    }
143
144    Name (FWSO, "FWSO")
145    Method (_PTS, 1, NotSerialized)
146    {
147        Store (Zero, \_SB.PCI0.ISA.STRP)
148        If (LEqual (Arg0, 0x03))
149        {
150            Store (0x00, \_SB.PCI0.ISA.LIDP)
151            \_SB.Z000 (0x90)
152        }
153
154        If (LEqual (Arg0, 0x04))
155        {
156            Acquire (\_SB.PSMX, 0xFFFF)
157            Store (0x80, \_SB.BCMD)
158            Store (0x03, \_SB.DID)
159            Store (Zero, \_SB.SMIC)
160            Release (\_SB.PSMX)
161            \_SB.Z000 (0x95)
162        }
163
164        Store (Arg0, \_SB.PCI0.ISA.Z001)
165    }
166
167    Method (_WAK, 1, NotSerialized)
168    {
169        Store (0x01, \_SB.PCI0.ISA.LIDP)
170        If (LEqual (Arg0, 0x03))
171        {
172            \_SB.Z000 (0x91)
173            Acquire (\_SB.PSMX, 0xFFFF)
174            Store (0x80, \_SB.BCMD)
175            Store (0x07, \_SB.DID)
176            Store (Zero, \_SB.SMIC)
177            Release (\_SB.PSMX)
178        }
179
180        If (LEqual (Arg0, 0x04))
181        {
182            Acquire (\_SB.PSMX, 0xFFFF)
183            Store (0x80, \_SB.BCMD)
184            Store (0x04, \_SB.DID)
185            Store (Zero, \_SB.SMIC)
186            Release (\_SB.PSMX)
187            Store (\_SB.INF, Local0)
188            If (LEqual (Local0, 0x07)) {}
189            Else
190            {
191                Store (Local0, Local1)
192                Store (Local0, Local2)
193                Store (Local0, \_SB.PCI0.AGP.VGA.DABL)
194                And (Local1, 0x01, \_SB.PCI0.AGP.VGA.CRTA)
195                And (Local2, 0x02, \_SB.PCI0.AGP.VGA.LCDA)
196            }
197        }
198
199        Store (0xBA, \_SB.PCI0.ISA.Z001)
200    }
201
202    Scope (_SI)
203    {
204        Method (_SST, 1, NotSerialized)
205        {
206            If (LEqual (Arg0, 0x01))
207            {
208                Store ("===== SST Working =====", Debug)
209            }
210
211            If (LEqual (Arg0, 0x02))
212            {
213                Store ("===== SST Waking =====", Debug)
214            }
215
216            If (LEqual (Arg0, 0x03))
217            {
218                Store ("===== SST Sleeping =====", Debug)
219            }
220
221            If (LEqual (Arg0, 0x04))
222            {
223                Store ("===== SST Sleeping S4 =====", Debug)
224            }
225        }
226    }
227
228    Scope (_GPE)
229    {
230        Method (_L03, 0, NotSerialized)
231        {
232            Notify (\_SB.PWRB, 0x02)
233        }
234
235        Method (_L05, 0, NotSerialized)
236        {
237            Notify (\_SB.PCI0, 0x02)
238        }
239
240        Method (_L08, 0, NotSerialized)
241        {
242            Notify (\_SB.PCI0.Z002, 0x02)
243        }
244
245        Method (_L0B, 0, NotSerialized)
246        {
247            Notify (\_SB.LID, 0x80)
248        }
249
250        Method (_L0E, 0, NotSerialized)
251        {
252            Notify (\_SB.PWRB, 0x02)
253        }
254    }
255
256    OperationRegion (VGAM, SystemMemory, 0x000C0002, 0x01)
257    Field (VGAM, ByteAcc, NoLock, Preserve)
258    {
259        VGA1,   8
260    }
261
262    Scope (_SB)
263    {
264        Method (_INI, 0, NotSerialized)
265        {
266            \_SB.OSTP ()
267            Store (0x01, \_SB.PCI0.ISA.LIDP)
268        }
269
270        Mutex (PSMX, 0x00)
271        OperationRegion (SMI0, SystemIO, 0x0000FE00, 0x00000002)
272        Field (SMI0, AnyAcc, NoLock, Preserve)
273        {
274            SMIC,   8
275        }
276
277        OperationRegion (SMI1, SystemMemory, 0x2BEFBEBC, 0x00000090)
278        Field (SMI1, AnyAcc, NoLock, Preserve)
279        {
280            BCMD,   8,
281            DID,    32,
282            INFO,   1024
283        }
284
285        Field (SMI1, AnyAcc, NoLock, Preserve)
286        {
287            AccessAs (ByteAcc, 0x00),
288            Offset (0x05),
289            INF,    8
290        }
291
292        Method (PHS, 1, Serialized)
293        {
294            Acquire (PSMX, 0xFFFF)
295            Store (Arg0, BCMD)
296            Store (Zero, SMIC)
297            Store (Zero, BCMD)
298            Return (INF)
299            Release (PSMX)
300        }
301
302        Device (ACAD)
303        {
304            Name (_HID, "ACPI0003")
305            Name (_PCL, Package (0x01)
306            {
307                \_SB
308            })
309            Name (ACP, Ones)
310            Name (ADIM, Ones)
311            Name (AFLG, Ones)
312            Name (SWAC, Ones)
313            Name (SWBT, Ones)
314            Method (_PSR, 0, NotSerialized)
315            {
316                Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
317                Store ("CMBatt - _PSR", Debug)
318                \_SB.PCI0.ISA.EC0.CPOL ()
319                Store (ACP, Local0)
320                If (Local0)
321                {
322                    Store (0x01, Local1)
323                    If (SWAC)
324                    {
325                        Store (0x00, \_PR.CPU0._PPC)
326                        Notify (\_PR.CPU0, 0x80)
327                        Store (0x00, SWAC)
328                    }
329
330                    Store (0x01, SWBT)
331                }
332                Else
333                {
334                    Store (0x00, Local1)
335                    If (SWBT)
336                    {
337                        \_SB.Z000 (0x93)
338                        Store (0x00, SWBT)
339                    }
340
341                    Store (0x02, \_PR.CPU0._PPC)
342                    Notify (\_PR.CPU0, 0x80)
343                    Store (0x01, SWAC)
344                }
345
346                Store (Local1, AFLG)
347                If (LNot (LEqual (AFLG, ADIM)))
348                {
349                    If (Local1)
350                    {
351                        Store (0x01, ADIM)
352                    }
353                    Else
354                    {
355                        Store (0x00, ADIM)
356                    }
357
358                    Acquire (\_SB.PSMX, 0xFFFF)
359                    Store (0x80, \_SB.BCMD)
360                    Store (0x02, \_SB.DID)
361                    Store (ADIM, \_SB.INFO)
362                    Store (Zero, \_SB.SMIC)
363                    Release (\_SB.PSMX)
364                }
365
366                Release (\_SB.PCI0.ISA.EC0.MUT1)
367                Return (Local1)
368            }
369
370            Method (CHAC, 1, NotSerialized)
371            {
372                Store (LGreater (And (Arg0, 0xF0), 0x80), Local0)
373                If (LNot (LEqual (Local0, ACP)))
374                {
375                    Store (Local0, ACP)
376                    Return (Ones)
377                }
378                Else
379                {
380                    Return (Zero)
381                }
382            }
383        }
384
385        Scope (_TZ)
386        {
387            Name (TPL, 0x0CD2)
388            Name (TACT, 0x0D36)
389            Name (TPAS, 0x0DCC)
390            Name (SPAS, 0x0D04)
391            Name (TPC, 0x0E12)
392            Name (TPTM, 0x0CA0)
393            Name (TBSE, 0x0AAC)
394            Name (PLCY, 0x00)
395            ThermalZone (THRM)
396            {
397                Name (_TSP, 0x28)
398                Method (_CRT, 0, NotSerialized)
399                {
400                    Return (TPC)
401                }
402
403                Name (INBT, 0x00)
404                Method (_TMP, 0, NotSerialized)
405                {
406                    If (\_SB.ECOK ())
407                    {
408                        Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
409                        Store (\_SB.PCI0.ISA.EC0.CTMP, Local0)
410                        Release (\_SB.PCI0.ISA.EC0.MUT1)
411                        Store (Local0, Local2)
412                        Multiply (Local0, 0x0A, Local1)
413                        Add (Local1, TBSE, Local0)
414                        Store (Local0, DEBG)
415                        CHTR (Local0)
416                        Return (Local0)
417                    }
418                    Else
419                    {
420                        Return (TPTM)
421                    }
422                }
423
424                Method (_PSV, 0, NotSerialized)
425                {
426                    Return (TPAS)
427                }
428
429                Name (_PSL, Package (0x01)
430                {
431                    \_PR.CPU0
432                })
433                Name (_TC1, 0x02)
434                Name (_TC2, 0x03)
435                Method (_SCP, 1, NotSerialized)
436                {
437                    Store (Arg0, PLCY)
438                }
439
440                Name (TRP2, 0x00)
441                Method (CHTR, 1, NotSerialized)
442                {
443                }
444            }
445        }
446
447        Method (VTOB, 1, NotSerialized)
448        {
449            Store (0x01, Local0)
450            ShiftLeft (Local0, Arg0, Local0)
451            Return (Local0)
452        }
453
454        Method (BTOV, 1, NotSerialized)
455        {
456            ShiftRight (Arg0, 0x01, Local0)
457            Store (0x00, Local1)
458            While (Local0)
459            {
460                Increment (Local1)
461                ShiftRight (Local0, 0x01, Local0)
462            }
463
464            Return (Local1)
465        }
466
467        Method (MKWD, 2, NotSerialized)
468        {
469            If (And (Arg1, 0x80))
470            {
471                Store (0xFFFF0000, Local0)
472            }
473            Else
474            {
475                Store (Zero, Local0)
476            }
477
478            Or (Local0, Arg0, Local0)
479            Or (Local0, ShiftLeft (Arg1, 0x08), Local0)
480            Return (Local0)
481        }
482
483        Method (GBFE, 3, NotSerialized)
484        {
485            CreateByteField (Arg0, Arg1, TIDX)
486            Store (TIDX, Arg2)
487        }
488
489        Method (PBFE, 3, NotSerialized)
490        {
491            CreateByteField (Arg0, Arg1, TIDX)
492            Store (Arg2, TIDX)
493        }
494
495        Method (ITOS, 1, NotSerialized)
496        {
497            Store (Buffer (0x09)
498                {
499                    0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
500                    0x00
501                }, Local0)
502            Store (Buffer (0x11)
503                {
504                    "0123456789ABCDEF"
505                }, Local7)
506            Store (0x08, Local1)
507            Store (0x00, Local2)
508            Store (0x00, Local3)
509            While (Local1)
510            {
511                Decrement (Local1)
512                And (ShiftRight (Arg0, ShiftLeft (Local1, 0x02)), 0x0F, Local4)
513                If (Local4)
514                {
515                    Store (Ones, Local3)
516                }
517
518                If (Local3)
519                {
520                    GBFE (Local7, Local4, RefOf (Local5))
521                    PBFE (Local0, Local2, Local5)
522                    Increment (Local2)
523                }
524            }
525
526            Return (Local0)
527        }
528
529        Device (BAT1)
530        {
531            Name (_HID, EisaId ("PNP0C0A"))
532            Name (_UID, 0x01)
533            Name (_PCL, Package (0x01)
534            {
535                \_SB
536            })
537            Name (UBHD, 0x00)
538            Name (PBHD, Package (0x03)
539            {
540                0xFFFF,
541                0xFFFF,
542                0xFFFF
543            })
544            Name (BATI, 0xFFFF)
545            Name (BATC, 0xFFFF)
546            Name (BATV, 0xFFFF)
547            Name (BATS, 0xFFFF)
548            Name (PBIF, Package (0x0D)
549            {
550                0x01,
551                0x0B40,
552                0x0B40,
553                0x01,
554                0x39D0,
555                0x012C,
556                0xC8,
557                0x20,
558                0x20,
559                "BAT1",
560                " ",
561                " ",
562                " "
563            })
564            Name (PBST, Package (0x04)
565            {
566                0x00,
567                0xFFFFFFFF,
568                0xFFFFFFFF,
569                0x2710
570            })
571            Name (UBIF, 0x01E9)
572            Name (BP, 0x00)
573            Name (REPT, 0x00)
574            Name (ERRC, 0x00)
575            Method (_STA, 0, NotSerialized)
576            {
577                Store (0x0F, Local0)
578                Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
579                Store ("CMBatt - _STA.BAT1", Debug)
580                \_SB.PCI0.ISA.EC0.CPOL ()
581                If (BP)
582                {
583                    Store (0x1F, Local0)
584                }
585                Else
586                {
587                    Store (0x0F, Local0)
588                }
589
590                Release (\_SB.PCI0.ISA.EC0.MUT1)
591                Return (Local0)
592            }
593
594            Method (_BIF, 0, NotSerialized)
595            {
596                Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
597                Store ("CMBatt - _BIF.BAT1", Debug)
598                \_SB.PCI0.ISA.EC0.CPOL ()
599                Release (\_SB.PCI0.ISA.EC0.MUT1)
600                Return (PBIF)
601            }
602
603            Method (_BST, 0, NotSerialized)
604            {
605                Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
606                Store ("CMBatt - _BST.BAT1", Debug)
607                \_SB.PCI0.ISA.EC0.CPOL ()
608                Release (\_SB.PCI0.ISA.EC0.MUT1)
609                Return (PBST)
610            }
611
612            Method (B1CK, 0, NotSerialized)
613            {
614                Store ("CMBatt - Notify(BAT1,0x81): B1CK", Debug)
615                Notify (\_SB.BAT1, 0x81)
616            }
617
618            Method (B1ST, 0, NotSerialized)
619            {
620                Store ("CMBatt - Notify(BAT1,0x80): B1ST", Debug)
621                Notify (\_SB.BAT1, 0x80)
622            }
623
624            Method (B1IF, 0, NotSerialized)
625            {
626                Store ("CMBatt - Notify(BAT1,0x81): B1IF", Debug)
627                Notify (\_SB.BAT1, 0x81)
628            }
629
630            Method (UPBI, 0, NotSerialized)
631            {
632                Store ("CMBatt - UPBI.BAT1", Debug)
633                Store (Zero, Local0)
634                If (LNot (ECOK ()))
635                {
636                    Return (Local0)
637                }
638
639                Store (0x0C, Local1)
640                Store (Buffer (0x0D)
641                    {
642                        0x00, 0x18, 0x10, 0x00, 0x19, 0x00, 0x00, 0x00,
643                        0x00, 0x21, 0x00, 0x22, 0x20
644                    }, Local2)
645                While (LGreater (Local1, 0x08))
646                {
647                    If (LNot (And (UBIF, VTOB (Local1))))
648                    {
649                        GBFE (Local2, Local1, RefOf (Local3))
650                        If (Local3)
651                        {
652                            If (LNot (\_SB.PCI0.ISA.EC0.SMRD (0x0B, 0x16, Local3, RefOf (Local4))))
653                            {
654                                Store (\_SB.PCI0.ISA.EC0.BCNT, Local5)
655                                Store (Zero, Local3)
656                                Store (Zero, ERRC)
657                                While (LGreater (Local5, Local3))
658                                {
659                                    GBFE (Local4, Local3, RefOf (Local6))
660                                    Increment (Local3)
661                                    If (And (Local6, 0x80))
662                                    {
663                                        Increment (ERRC)
664                                    }
665                                }
666
667                                If (LEqual (ERRC, 0x00))
668                                {
669                                    Store (Local4, Index (PBIF, Local1))
670                                    Or (UBIF, VTOB (Local1), UBIF)
671                                    Store (Ones, Local0)
672                                }
673                            }
674                        }
675                    }
676
677                    Decrement (Local1)
678                }
679
680                While (LGreater (Local1, 0x00))
681                {
682                    If (LNot (And (UBIF, VTOB (Local1))))
683                    {
684                        GBFE (Local2, Local1, RefOf (Local3))
685                        If (Local3)
686                        {
687                            If (LNot (\_SB.PCI0.ISA.EC0.SMRD (0x09, 0x16, Local3, RefOf (Local5))))
688                            {
689                                If (LAnd (Local5, LNot (And (Local5, 0x8000))))
690                                {
691                                    If (LEqual (Local1, 0x02))
692                                    {
693                                        ShiftRight (Local5, 0x05, Local5)
694                                        ShiftLeft (Local5, 0x05, Local5)
695                                    }
696
697                                    Store (Local5, Index (PBIF, Local1))
698                                    Or (UBIF, VTOB (Local1), UBIF)
699                                    Store (Ones, Local0)
700                                }
701                            }
702                        }
703                    }
704
705                    Decrement (Local1)
706                }
707
708                Store (0x0A, Local1)
709                If (LNot (And (UBIF, VTOB (Local1))))
710                {
711                    If (LNot (\_SB.PCI0.ISA.EC0.SMRD (0x09, 0x16, 0x1C, RefOf (Local5))))
712                    {
713                        Store (Local5, BATS)
714                        Store (ITOS (ToBCD (Local5)), Index (PBIF, Local1))
715                        Or (UBIF, VTOB (Local1), UBIF)
716                        Store (Ones, Local0)
717                    }
718                }
719
720                Store (PBIF, Debug)
721                Return (Local0)
722            }
723
724            Method (UPBS, 0, NotSerialized)
725            {
726                Store ("CMBatt - UPBS.BAT1", Debug)
727                Store (Zero, Local0)
728                If (LNot (ECOK ()))
729                {
730                    Return (Local0)
731                }
732
733                Store (\_SB.PCI0.ISA.EC0.BT1S, Local5)
734                Store (Local5, Local1)
735                And (Local5, 0x07, Local5)
736                If (LNot (LEqual (Local5, DerefOf (Index (PBST, 0x00)))))
737                {
738                    Store ("CMBatt - BAT1 STATE CHANGE", Debug)
739                    Store (Local1, Debug)
740                    Store (Local5, Index (PBST, 0x00))
741                    Store (Ones, Local0)
742                }
743
744                Store (\_SB.PCI0.ISA.EC0.BT1C, Local5)
745                If (LNot (And (Local5, 0x8000)))
746                {
747                    Store (Local5, BATC)
748                    ShiftRight (Local5, 0x05, Local5)
749                    ShiftLeft (Local5, 0x05, Local5)
750                    If (LNot (LEqual (Local5, DerefOf (Index (PBST, 0x02)))))
751                    {
752                        Store (Local5, Index (PBST, 0x02))
753                        Store (Ones, Local0)
754                    }
755                }
756
757                Store (\_SB.PCI0.ISA.EC0.BT1V, Local5)
758                If (LNot (And (Local5, 0x8000)))
759                {
760                    Store (Local5, BATV)
761                    ShiftRight (Local5, 0x05, Local5)
762                    ShiftLeft (Local5, 0x05, Local5)
763                    If (LNot (LEqual (Local5, DerefOf (Index (PBST, 0x03)))))
764                    {
765                        Store (Local5, Index (PBST, 0x03))
766                        Store (Ones, Local0)
767                    }
768                }
769
770                Store (\_SB.PCI0.ISA.EC0.BT1I, Local5)
771                Store (Local5, BATI)
772                If (And (BATI, 0x8000))
773                {
774                    Or (BATI, 0xFFFF0000, BATI)
775                }
776
777                If (And (Local1, 0x01))
778                {
779                    Store (\_SB.PCI0.ISA.EC0.BT1V, Local2)
780                    If (LEqual (Local2, Zero))
781                    {
782                        Store (0x39D0, Local2)
783                    }
784
785                    Divide (0x01036640, Local2, , Local3)
786                    If (And (Local5, 0x8000))
787                    {
788                        Or (Local5, 0xFFFF0000, Local5)
789                        Add (Not (Local5), 0x01, Local5)
790                        If (LGreater (Local3, Local5))
791                        {
792                            Store (Local3, Local5)
793                        }
794                    }
795                    Else
796                    {
797                        Store (Local3, Local5)
798                    }
799                }
800
801                If (And (Local1, 0x02))
802                {
803                    If (And (Local5, 0x8000))
804                    {
805                        Store (0x00, Local5)
806                    }
807
808                    If (LGreater (0x64, Local5))
809                    {
810                        Store (0x64, Local5)
811                    }
812                }
813
814                If (LEqual (And (Local1, 0x03), 0x00))
815                {
816                    Store (0x00, Local5)
817                }
818
819                ShiftRight (Local5, 0x05, Local5)
820                ShiftLeft (Local5, 0x05, Local5)
821                If (LNot (LEqual (Local5, DerefOf (Index (PBST, 0x01)))))
822                {
823                    Store (Local5, Index (PBST, 0x01))
824                    Store (Ones, Local0)
825                }
826
827                If (Local0)
828                {
829                    Store ("CMBATT - PBST Changed", Debug)
830                }
831
832                Store (PBST, Debug)
833                Return (Local0)
834            }
835
836            Method (UPBH, 0, NotSerialized)
837            {
838                Store ("CMBatt - UPBH.BAT1", Debug)
839                Store (Zero, Local0)
840                If (LNot (ECOK ()))
841                {
842                    Return (Local0)
843                }
844
845                Store (0x00, Local1)
846                Store (Buffer (0x03)
847                    {
848                        0x17, 0x0C, 0x10
849                    }, Local2)
850                While (LLess (Local1, 0x03))
851                {
852                    If (LNot (And (UBHD, VTOB (Local1))))
853                    {
854                        GBFE (Local2, Local1, RefOf (Local3))
855                        If (LNot (\_SB.PCI0.ISA.EC0.SMRD (0x09, 0x16, Local3, RefOf (Local5))))
856                        {
857                            Store (Local5, Index (PBHD, Local1))
858                            Or (UBHD, VTOB (Local1), UBHD)
859                            Store (Ones, Local0)
860                        }
861                    }
862
863                    Increment (Local1)
864                }
865
866                Store (PBHD, Debug)
867                Return (Local0)
868            }
869
870            Method (IVBI, 0, NotSerialized)
871            {
872                Store (0x01E9, UBIF)
873                Store (0x0B40, Index (PBIF, 0x01))
874                Store (0x0B40, Index (PBIF, 0x02))
875                Store (0x39D0, Index (PBIF, 0x04))
876                Store ("Bad", Index (PBIF, 0x09))
877                Store ("Bad", Index (PBIF, 0x0A))
878                Store ("Bad", Index (PBIF, 0x0B))
879                Store ("Bad", Index (PBIF, 0x0C))
880            }
881
882            Method (IVBS, 0, NotSerialized)
883            {
884                Store (0x00, Index (PBST, 0x00))
885                Store (0xFFFFFFFF, Index (PBST, 0x01))
886                Store (0xFFFFFFFF, Index (PBST, 0x02))
887                Store (0x39D0, Index (PBST, 0x03))
888            }
889
890            Method (IVBH, 0, NotSerialized)
891            {
892                Store (0x00, UBHD)
893                Store (0xFFFF, Index (PBHD, 0x00))
894                Store (0xFFFF, Index (PBHD, 0x01))
895                Store (0xFFFF, Index (PBHD, 0x02))
896            }
897
898            Method (CHBP, 1, NotSerialized)
899            {
900                Store ("CMBatt - CHBP.BAT1", Debug)
901                Store (Zero, Local0)
902                If (LNot (ECOK ()))
903                {
904                    Return (Local0)
905                }
906
907                Store (VTOB (Subtract (_UID, 0x01)), Local1)
908                Or (ShiftLeft (Local1, 0x0C), 0x0FFF, Local2)
909                Store (Zero, Local3)
910                If (And (Arg0, Local1))
911                {
912                    If (BP)
913                    {
914                        Store ("CMBatt - BAT1 still present", Debug)
915                        \_SB.PCI0.ISA.EC0.SMWR (0x08, 0x14, 0x01, Local2)
916                        \_SB.PCI0.ISA.EC0.SMRD (0x09, 0x14, 0x01, RefOf (Local3))
917                        If (LEqual (Local2, Or (Local3, 0x0FFF)))
918                        {
919                            If (UPBI ())
920                            {
921                                Or (0x01, Local0, Local0)
922                            }
923
924                            If (UPBS ())
925                            {
926                                Or (0x02, Local0, Local0)
927                            }
928
929                            UPBH ()
930                        }
931                    }
932                    Else
933                    {
934                        Store ("CMBatt - BAT1 connected", Debug)
935                        \_SB.PCI0.ISA.EC0.SMWR (0x08, 0x14, 0x01, Local2)
936                        \_SB.PCI0.ISA.EC0.SMRD (0x09, 0x14, 0x01, RefOf (Local3))
937                        If (LEqual (Local2, Or (Local3, 0x0FFF)))
938                        {
939                            UPBI ()
940                            UPBS ()
941                            UPBH ()
942                        }
943
944                        Store (0x01, BP)
945                        Or (0x05, Local0, Local0)
946                    }
947                }
948                Else
949                {
950                    If (BP)
951                    {
952                        Store ("CMBatt - BAT1 disconnected", Debug)
953                        Store (0x00, BP)
954                        IVBI ()
955                        IVBS ()
956                        IVBH ()
957                        Or (0x04, Local0, Local0)
958                    }
959                }
960
961                If (LAnd (And (Arg0, Local1), LNot (LEqual (UBIF, 0x1FFF))))
962                {
963                    Store (0x01, REPT)
964                }
965                Else
966                {
967                    Store (0x00, REPT)
968                }
969
970                Return (Local0)
971            }
972        }
973
974        Name (ECEN, 0x00)
975        Method (ECOK, 0, NotSerialized)
976        {
977            If (LAnd (ECEN, 0x01))
978            {
979                Return (0x01)
980            }
981            Else
982            {
983                Return (0x00)
984            }
985        }
986
987        Device (PCI0)
988        {
989            Name (_HID, EisaId ("PNP0A03"))
990            Name (_ADR, 0x00)
991            Name (_PRW, Package (0x02)
992            {
993                0x05,
994                0x05
995            })
996            Name (_BBN, 0x00)
997            Method (_S3D, 0, NotSerialized)
998            {
999                Return (0x02)
1000            }
1001
1002            OperationRegion (NB00, PCI_Config, 0x00, 0x0100)
1003            Field (NB00, ByteAcc, NoLock, Preserve)
1004            {
1005                Offset (0x47),
1006                    ,   2,
1007                VLNK,   1,
1008                Offset (0x57),
1009                EADD,   8,
1010                Offset (0x61),
1011                C0C3,   2,
1012                C4C7,   2,
1013                C8CB,   2,
1014                CCCF,   2,
1015                D0D3,   2,
1016                D4D7,   2,
1017                D8DB,   2,
1018                DCDF,   2,
1019                    ,   4,
1020                E0EF,   2,
1021                F0FF,   2,
1022                Offset (0x69),
1023                    ,   5,
1024                VCLK,   1
1025            }
1026
1027            Method (_STA, 0, NotSerialized)
1028            {
1029                Return (0x0F)
1030            }
1031
1032            Name (CRES, ResourceTemplate ()
1033            {
1034                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
1035                    0x0000, // Address Space Granularity
1036                    0x0000, // Address Range Minimum
1037                    0x00FF, // Address Range Maximum
1038                    0x0000, // Address Translation Offset
1039                    0x0100,,,)
1040                IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
1041                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1042                    0x00000000, // Address Space Granularity
1043                    0x00000000, // Address Range Minimum
1044                    0x00000CF7, // Address Range Maximum
1045                    0x00000000, // Address Translation Offset
1046                    0x00000CF8,,,
1047                    , TypeStatic)
1048                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1049                    0x00000000, // Address Space Granularity
1050                    0x00000D00, // Address Range Minimum
1051                    0x0000FFFF, // Address Range Maximum
1052                    0x00000000, // Address Translation Offset
1053                    0x0000F300,,,
1054                    , TypeStatic)
1055                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1056                    0x00000000, // Address Space Granularity
1057                    0x000A0000, // Address Range Minimum
1058                    0x000BFFFF, // Address Range Maximum
1059                    0x00000000, // Address Translation Offset
1060                    0x00020000,,,
1061                    , AddressRangeMemory, TypeStatic)
1062                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1063                    0x00000000, // Address Space Granularity
1064                    0x000C0000, // Address Range Minimum
1065                    0x000C3FFF, // Address Range Maximum
1066                    0x00000000, // Address Translation Offset
1067                    0x00004000,,,
1068                    , AddressRangeMemory, TypeStatic)
1069                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1070                    0x00000000, // Address Space Granularity
1071                    0x000C4000, // Address Range Minimum
1072                    0x000C7FFF, // Address Range Maximum
1073                    0x00000000, // Address Translation Offset
1074                    0x00004000,,,
1075                    , AddressRangeMemory, TypeStatic)
1076                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1077                    0x00000000, // Address Space Granularity
1078                    0x000C8000, // Address Range Minimum
1079                    0x000CBFFF, // Address Range Maximum
1080                    0x00000000, // Address Translation Offset
1081                    0x00004000,,,
1082                    , AddressRangeMemory, TypeStatic)
1083                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1084                    0x00000000, // Address Space Granularity
1085                    0x000CC000, // Address Range Minimum
1086                    0x000CFFFF, // Address Range Maximum
1087                    0x00000000, // Address Translation Offset
1088                    0x00004000,,,
1089                    , AddressRangeMemory, TypeStatic)
1090                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1091                    0x00000000, // Address Space Granularity
1092                    0x000D0000, // Address Range Minimum
1093                    0x000D3FFF, // Address Range Maximum
1094                    0x00000000, // Address Translation Offset
1095                    0x00004000,,,
1096                    , AddressRangeMemory, TypeStatic)
1097                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1098                    0x00000000, // Address Space Granularity
1099                    0x000D4000, // Address Range Minimum
1100                    0x000D7FFF, // Address Range Maximum
1101                    0x00000000, // Address Translation Offset
1102                    0x00004000,,,
1103                    , AddressRangeMemory, TypeStatic)
1104                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1105                    0x00000000, // Address Space Granularity
1106                    0x000D8000, // Address Range Minimum
1107                    0x000DBFFF, // Address Range Maximum
1108                    0x00000000, // Address Translation Offset
1109                    0x00004000,,,
1110                    , AddressRangeMemory, TypeStatic)
1111                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1112                    0x00000000, // Address Space Granularity
1113                    0x000DC000, // Address Range Minimum
1114                    0x000DFFFF, // Address Range Maximum
1115                    0x00000000, // Address Translation Offset
1116                    0x00004000,,,
1117                    , AddressRangeMemory, TypeStatic)
1118                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1119                    0x00000000, // Address Space Granularity
1120                    0x000E0000, // Address Range Minimum
1121                    0x000EFFFF, // Address Range Maximum
1122                    0x00000000, // Address Translation Offset
1123                    0x00010000,,,
1124                    , AddressRangeMemory, TypeStatic)
1125                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1126                    0x00000000, // Address Space Granularity
1127                    0x000F0000, // Address Range Minimum
1128                    0x000FFFFF, // Address Range Maximum
1129                    0x00000000, // Address Translation Offset
1130                    0x00010000,,,
1131                    , AddressRangeMemory, TypeStatic)
1132                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1133                    0x00000000, // Address Space Granularity
1134                    0x00000000, // Address Range Minimum
1135                    0x00000000, // Address Range Maximum
1136                    0x00000000, // Address Translation Offset
1137                    0x00000000,,,
1138                    , AddressRangeMemory, TypeStatic)
1139            })
1140            Method (_CRS, 0, NotSerialized)
1141            {
1142                CreateDWordField (CRES, 0x0182, TCMN)
1143                CreateDWordField (CRES, 0x0186, TCMX)
1144                CreateDWordField (CRES, 0x018E, TOLN)
1145                Multiply (\_SB.PCI0.EADD, 0x01000000, TCMN)
1146                Subtract (0xFFE80000, TCMN, TOLN)
1147                Subtract (Add (TCMN, TOLN), 0x01, TCMX)
1148                CreateBitField (CRES, 0x0378, C0RW)
1149                CreateDWordField (CRES, 0x74, C0MN)
1150                CreateDWordField (CRES, 0x78, C0MX)
1151                CreateDWordField (CRES, 0x80, C0LN)
1152                Store (One, C0RW)
1153                If (LEqual (And (C0C3, 0x03), 0x01))
1154                {
1155                    Store (Zero, C0RW)
1156                }
1157
1158                Store (Zero, C0LN)
1159                If (LNot (And (C0C3, 0x03)))
1160                {
1161                    Store (0x4000, C0LN)
1162                }
1163
1164                CreateBitField (CRES, 0x0450, C4RW)
1165                CreateDWordField (CRES, 0x8F, C4MN)
1166                CreateDWordField (CRES, 0x93, C4MX)
1167                CreateDWordField (CRES, 0x9B, C4LN)
1168                Store (One, C4RW)
1169                If (LEqual (And (C4C7, 0x03), 0x01))
1170                {
1171                    Store (Zero, C4RW)
1172                }
1173
1174                Store (Zero, C4LN)
1175                If (LNot (And (C4C7, 0x03)))
1176                {
1177                    Store (0x4000, C4LN)
1178                }
1179
1180                CreateBitField (CRES, 0x0528, C8RW)
1181                CreateDWordField (CRES, 0xAA, C8MN)
1182                CreateDWordField (CRES, 0xAE, C8MX)
1183                CreateDWordField (CRES, 0xB6, C8LN)
1184                Store (One, C8RW)
1185                If (LEqual (And (C8CB, 0x03), 0x01))
1186                {
1187                    Store (Zero, C8RW)
1188                }
1189
1190                Store (Zero, C8LN)
1191                If (LNot (And (C8CB, 0x03)))
1192                {
1193                    Store (0x4000, C8LN)
1194                }
1195
1196                CreateBitField (CRES, 0x0600, CCRW)
1197                CreateDWordField (CRES, 0xC5, CCMN)
1198                CreateDWordField (CRES, 0xC9, CCMX)
1199                CreateDWordField (CRES, 0xD1, CCLN)
1200                Store (One, CCRW)
1201                If (LEqual (And (CCCF, 0x03), 0x01))
1202                {
1203                    Store (Zero, CCRW)
1204                }
1205
1206                Store (Zero, CCLN)
1207                If (LNot (And (CCCF, 0x03)))
1208                {
1209                    Store (0x4000, CCLN)
1210                }
1211
1212                CreateBitField (CRES, 0x06D8, D0RW)
1213                CreateDWordField (CRES, 0xE0, D0MN)
1214                CreateDWordField (CRES, 0xE4, D0MX)
1215                CreateDWordField (CRES, 0xEC, D0LN)
1216                Store (One, D0RW)
1217                If (LEqual (And (D0D3, 0x03), 0x01))
1218                {
1219                    Store (Zero, D0RW)
1220                }
1221
1222                Store (Zero, D0LN)
1223                If (LNot (And (D0D3, 0x03)))
1224                {
1225                    Store (0x4000, D0LN)
1226                }
1227
1228                CreateBitField (CRES, 0x07B0, D4RW)
1229                CreateDWordField (CRES, 0xFB, D4MN)
1230                CreateDWordField (CRES, 0xFF, D4MX)
1231                CreateDWordField (CRES, 0x0107, D4LN)
1232                Store (One, D4RW)
1233                If (LEqual (And (D4D7, 0x03), 0x01))
1234                {
1235                    Store (Zero, D4RW)
1236                }
1237
1238                Store (Zero, D4LN)
1239                If (LNot (And (D4D7, 0x03)))
1240                {
1241                    Store (0x4000, D4LN)
1242                }
1243
1244                CreateBitField (CRES, 0x0888, D8RW)
1245                CreateDWordField (CRES, 0x0116, D8MN)
1246                CreateDWordField (CRES, 0x011A, D8MX)
1247                CreateDWordField (CRES, 0x0122, D8LN)
1248                Store (One, D8RW)
1249                If (LEqual (And (D8DB, 0x03), 0x01))
1250                {
1251                    Store (Zero, D8RW)
1252                }
1253
1254                Store (Zero, D8LN)
1255                If (LNot (And (D8DB, 0x03)))
1256                {
1257                    Store (0x4000, D8LN)
1258                }
1259
1260                CreateBitField (CRES, 0x0960, DCRW)
1261                CreateDWordField (CRES, 0x0131, DCMN)
1262                CreateDWordField (CRES, 0x0135, DCMX)
1263                CreateDWordField (CRES, 0x013D, DCLN)
1264                Store (One, DCRW)
1265                If (LEqual (And (DCDF, 0x03), 0x01))
1266                {
1267                    Store (Zero, DCRW)
1268                }
1269
1270                Store (Zero, DCLN)
1271                If (LNot (And (DCDF, 0x03)))
1272                {
1273                    Store (0x4000, DCLN)
1274                }
1275
1276                CreateBitField (CRES, 0x0A38, E0RW)
1277                CreateDWordField (CRES, 0x014C, E0MN)
1278                CreateDWordField (CRES, 0x0150, E0MX)
1279                CreateDWordField (CRES, 0x0158, E0LN)
1280                Store (One, E0RW)
1281                If (LEqual (And (E0EF, 0x03), 0x01))
1282                {
1283                    Store (Zero, E0RW)
1284                }
1285
1286                Store (Zero, E0LN)
1287                If (LNot (And (E0EF, 0x03)))
1288                {
1289                    Store (0x00010000, E0LN)
1290                }
1291
1292                CreateBitField (CRES, 0x0B10, F0RW)
1293                CreateDWordField (CRES, 0x0167, F0MN)
1294                CreateDWordField (CRES, 0x016B, F0MX)
1295                CreateDWordField (CRES, 0x0173, F0LN)
1296                Store (One, F0RW)
1297                If (LEqual (And (F0FF, 0x03), 0x01))
1298                {
1299                    Store (Zero, F0RW)
1300                }
1301
1302                Store (Zero, F0LN)
1303                If (LNot (And (F0FF, 0x03)))
1304                {
1305                    Store (0x00010000, F0LN)
1306                }
1307
1308                Return (CRES)
1309            }
1310
1311            Name (_PRT, Package (0x14)
1312            {
1313                Package (0x04)
1314                {
1315                    0x0001FFFF,
1316                    0x00,
1317                    \_SB.PCI0.ISA.LNKA,
1318                    0x00
1319                },
1320
1321                Package (0x04)
1322                {
1323                    0x0001FFFF,
1324                    0x01,
1325                    \_SB.PCI0.ISA.LNKB,
1326                    0x00
1327                },
1328
1329                Package (0x04)
1330                {
1331                    0x0001FFFF,
1332                    0x02,
1333                    \_SB.PCI0.ISA.LNKC,
1334                    0x00
1335                },
1336
1337                Package (0x04)
1338                {
1339                    0x0001FFFF,
1340                    0x03,
1341                    \_SB.PCI0.ISA.LNKD,
1342                    0x00
1343                },
1344
1345                Package (0x04)
1346                {
1347                    0x0010FFFF,
1348                    0x00,
1349                    \_SB.PCI0.ISA.LNKA,
1350                    0x00
1351                },
1352
1353                Package (0x04)
1354                {
1355                    0x0010FFFF,
1356                    0x01,
1357                    \_SB.PCI0.ISA.LNKB,
1358                    0x00
1359                },
1360
1361                Package (0x04)
1362                {
1363                    0x0010FFFF,
1364                    0x02,
1365                    \_SB.PCI0.ISA.LNKC,
1366                    0x00
1367                },
1368
1369                Package (0x04)
1370                {
1371                    0x0010FFFF,
1372                    0x03,
1373                    \_SB.PCI0.ISA.LNKD,
1374                    0x00
1375                },
1376
1377                Package (0x04)
1378                {
1379                    0x0011FFFF,
1380                    0x00,
1381                    \_SB.PCI0.ISA.LNKA,
1382                    0x00
1383                },
1384
1385                Package (0x04)
1386                {
1387                    0x0011FFFF,
1388                    0x01,
1389                    \_SB.PCI0.ISA.LNKB,
1390                    0x00
1391                },
1392
1393                Package (0x04)
1394                {
1395                    0x0011FFFF,
1396                    0x02,
1397                    \_SB.PCI0.ISA.LNKC,
1398                    0x00
1399                },
1400
1401                Package (0x04)
1402                {
1403                    0x0011FFFF,
1404                    0x03,
1405                    \_SB.PCI0.ISA.LNKD,
1406                    0x00
1407                },
1408
1409                Package (0x04)
1410                {
1411                    0x0012FFFF,
1412                    0x00,
1413                    \_SB.PCI0.ISA.LNKA,
1414                    0x00
1415                },
1416
1417                Package (0x04)
1418                {
1419                    0x0012FFFF,
1420                    0x01,
1421                    \_SB.PCI0.ISA.LNKB,
1422                    0x00
1423                },
1424
1425                Package (0x04)
1426                {
1427                    0x0012FFFF,
1428                    0x02,
1429                    \_SB.PCI0.ISA.LNKC,
1430                    0x00
1431                },
1432
1433                Package (0x04)
1434                {
1435                    0x0012FFFF,
1436                    0x03,
1437                    \_SB.PCI0.ISA.LNKD,
1438                    0x00
1439                },
1440
1441                Package (0x04)
1442                {
1443                    0x0007FFFF,
1444                    0x00,
1445                    \_SB.PCI0.ISA.LNKB,
1446                    0x00
1447                },
1448
1449                Package (0x04)
1450                {
1451                    0x0008FFFF,
1452                    0x00,
1453                    \_SB.PCI0.ISA.LNKB,
1454                    0x00
1455                },
1456
1457                Package (0x04)
1458                {
1459                    0x0009FFFF,
1460                    0x00,
1461                    \_SB.PCI0.ISA.LNKC,
1462                    0x00
1463                },
1464
1465                Package (0x04)
1466                {
1467                    0x0009FFFF,
1468                    0x01,
1469                    \_SB.PCI0.ISA.LNKD,
1470                    0x00
1471                }
1472            })
1473            Device (ISA)
1474            {
1475                Name (_ADR, 0x00110000)
1476                OperationRegion (IRQR, PCI_Config, 0x00, 0x0100)
1477                Field (IRQR, ByteAcc, NoLock, Preserve)
1478                {
1479                    Offset (0x50),
1480                        ,   1,
1481                    ESB4,   1,
1482                    ESB3,   1,
1483                        ,   1,
1484                    ESB1,   1,
1485                    ESB2,   1,
1486                    AC97,   1,
1487                    MC97,   1,
1488                        ,   2,
1489                    PS2E,   1,
1490                    Offset (0x55),
1491                        ,   4,
1492                    PIRA,   4,
1493                    PIRB,   4,
1494                    PIRC,   4,
1495                        ,   4,
1496                    PIRD,   4,
1497                    Offset (0x88),
1498                    PMBS,   16,
1499                    Offset (0x94),
1500                        ,   4,
1501                    GPSU,   1,
1502                    SUSC,   1,
1503                    STRP,   1,
1504                    Offset (0x95),
1505                    USBW,   1,
1506                    Offset (0xD0),
1507                    SMBS,   16,
1508                    SMBC,   1
1509                }
1510
1511                OperationRegion (PMIO, SystemIO, 0x4000, 0x50)
1512                Field (PMIO, ByteAcc, NoLock, Preserve)
1513                {
1514                    Offset (0x10),
1515                    TRDC,   4,
1516                    TREN,   1,
1517                    Offset (0x21),
1518                        ,   3,
1519                    LIDF,   1,
1520                    Offset (0x2A),
1521                    PACT,   1,
1522                    Offset (0x2C),
1523                        ,   6,
1524                    THRM,   1,
1525                    LIDP,   1,
1526                    Offset (0x2F),
1527                    SCMD,   8,
1528                        ,   5,
1529                    CMAS,   1,
1530                    CMBS,   1,
1531                    Offset (0x31),
1532                    Offset (0x34),
1533                        ,   5,
1534                    CMAE,   1,
1535                    CMBE,   1,
1536                    Offset (0x48),
1537                        ,   4,
1538                    LIDS,   1
1539                }
1540
1541                OperationRegion (Z003, SystemIO, 0x80, 0x01)
1542                Field (Z003, ByteAcc, NoLock, Preserve)
1543                {
1544                    Z001,   8
1545                }
1546
1547                Device (LNKA)
1548                {
1549                    Name (_HID, EisaId ("PNP0C0F"))
1550                    Name (_UID, 0x01)
1551                    Name (_PRS, ResourceTemplate ()
1552                    {
1553                        IRQ (Level, ActiveLow, Shared) {4}
1554                    })
1555                    Method (_DIS, 0, NotSerialized)
1556                    {
1557                        Store (Zero, \_SB.PCI0.ISA.PIRA)
1558                    }
1559
1560                    Method (_STA, 0, NotSerialized)
1561                    {
1562                        If (LEqual (\_SB.PCI0.ISA.PIRA, 0x00))
1563                        {
1564                            Return (0x09)
1565                        }
1566                        Else
1567                        {
1568                            Return (0x0B)
1569                        }
1570                    }
1571
1572                    Method (_CRS, 0, NotSerialized)
1573                    {
1574                        Name (BUFA, ResourceTemplate ()
1575                        {
1576                            IRQ (Level, ActiveLow, Shared) {}
1577                        })
1578                        CreateByteField (BUFA, 0x01, IRA1)
1579                        CreateByteField (BUFA, 0x02, IRA2)
1580                        Store (\_SB.PCI0.ISA.PIRA, Local0)
1581                        If (LGreater (Local0, 0x00))
1582                        {
1583                            If (LGreater (Local0, 0x07))
1584                            {
1585                                Subtract (Local0, 0x08, Local0)
1586                                Store (0x01, Local1)
1587                                ShiftLeft (Local1, Local0, IRA2)
1588                            }
1589                            Else
1590                            {
1591                                Store (0x01, Local1)
1592                                ShiftLeft (Local1, Local0, IRA1)
1593                            }
1594                        }
1595
1596                        Return (BUFA)
1597                    }
1598
1599                    Method (_SRS, 1, NotSerialized)
1600                    {
1601                        CreateByteField (Arg0, 0x01, IRA1)
1602                        CreateByteField (Arg0, 0x02, IRA2)
1603                        If (LGreater (IRA2, Zero))
1604                        {
1605                            FindSetLeftBit (IRA2, Local0)
1606                            Decrement (Local0)
1607                            Add (Local0, 0x08, Local0)
1608                        }
1609                        Else
1610                        {
1611                            FindSetLeftBit (IRA1, Local0)
1612                            Decrement (Local0)
1613                        }
1614
1615                        Store (Local0, \_SB.PCI0.ISA.PIRA)
1616                    }
1617                }
1618
1619                Device (LNKB)
1620                {
1621                    Name (_HID, EisaId ("PNP0C0F"))
1622                    Name (_UID, 0x02)
1623                    Name (_PRS, ResourceTemplate ()
1624                    {
1625                        IRQ (Level, ActiveLow, Shared) {5}
1626                    })
1627                    Method (_DIS, 0, NotSerialized)
1628                    {
1629                        Store (Zero, \_SB.PCI0.ISA.PIRB)
1630                    }
1631
1632                    Method (_STA, 0, NotSerialized)
1633                    {
1634                        If (LEqual (\_SB.PCI0.ISA.PIRB, 0x00))
1635                        {
1636                            Return (0x09)
1637                        }
1638                        Else
1639                        {
1640                            Return (0x0B)
1641                        }
1642                    }
1643
1644                    Method (_CRS, 0, NotSerialized)
1645                    {
1646                        Name (BUFB, ResourceTemplate ()
1647                        {
1648                            IRQ (Level, ActiveLow, Shared) {}
1649                        })
1650                        CreateByteField (BUFB, 0x01, IRB1)
1651                        CreateByteField (BUFB, 0x02, IRB2)
1652                        Store (\_SB.PCI0.ISA.PIRB, Local0)
1653                        If (LGreater (Local0, 0x00))
1654                        {
1655                            If (LGreater (Local0, 0x07))
1656                            {
1657                                Subtract (Local0, 0x08, Local0)
1658                                Store (0x01, Local1)
1659                                ShiftLeft (Local1, Local0, IRB2)
1660                            }
1661                            Else
1662                            {
1663                                Store (0x01, Local1)
1664                                ShiftLeft (Local1, Local0, IRB1)
1665                            }
1666                        }
1667
1668                        Return (BUFB)
1669                    }
1670
1671                    Method (_SRS, 1, NotSerialized)
1672                    {
1673                        CreateByteField (Arg0, 0x01, IRB1)
1674                        CreateByteField (Arg0, 0x02, IRB2)
1675                        If (LGreater (IRB2, Zero))
1676                        {
1677                            FindSetLeftBit (IRB2, Local0)
1678                            Decrement (Local0)
1679                            Add (Local0, 0x08, Local0)
1680                        }
1681                        Else
1682                        {
1683                            FindSetLeftBit (IRB1, Local0)
1684                            Decrement (Local0)
1685                        }
1686
1687                        Store (Local0, \_SB.PCI0.ISA.PIRB)
1688                    }
1689                }
1690
1691                Device (LNKC)
1692                {
1693                    Name (_HID, EisaId ("PNP0C0F"))
1694                    Name (_UID, 0x03)
1695                    Name (_PRS, ResourceTemplate ()
1696                    {
1697                        IRQ (Level, ActiveLow, Shared) {9}
1698                    })
1699                    Method (_DIS, 0, NotSerialized)
1700                    {
1701                        Store (Zero, \_SB.PCI0.ISA.PIRC)
1702                    }
1703
1704                    Method (_STA, 0, NotSerialized)
1705                    {
1706                        If (LEqual (\_SB.PCI0.ISA.PIRC, 0x00))
1707                        {
1708                            Return (0x09)
1709                        }
1710                        Else
1711                        {
1712                            Return (0x0B)
1713                        }
1714                    }
1715
1716                    Method (_CRS, 0, NotSerialized)
1717                    {
1718                        Name (BUFC, ResourceTemplate ()
1719                        {
1720                            IRQ (Level, ActiveLow, Shared) {}
1721                        })
1722                        CreateByteField (BUFC, 0x01, IRC1)
1723                        CreateByteField (BUFC, 0x02, IRC2)
1724                        Store (\_SB.PCI0.ISA.PIRC, Local0)
1725                        If (LGreater (Local0, 0x00))
1726                        {
1727                            If (LGreater (Local0, 0x07))
1728                            {
1729                                Subtract (Local0, 0x08, Local0)
1730                                Store (0x01, Local1)
1731                                ShiftLeft (Local1, Local0, IRC2)
1732                            }
1733                            Else
1734                            {
1735                                Store (0x01, Local1)
1736                                ShiftLeft (Local1, Local0, IRC1)
1737                            }
1738                        }
1739
1740                        Return (BUFC)
1741                    }
1742
1743                    Method (_SRS, 1, NotSerialized)
1744                    {
1745                        CreateByteField (Arg0, 0x01, IRC1)
1746                        CreateByteField (Arg0, 0x02, IRC2)
1747                        If (LGreater (IRC2, Zero))
1748                        {
1749                            FindSetLeftBit (IRC2, Local0)
1750                            Decrement (Local0)
1751                            Add (Local0, 0x08, Local0)
1752                        }
1753                        Else
1754                        {
1755                            FindSetLeftBit (IRC1, Local0)
1756                            Decrement (Local0)
1757                        }
1758
1759                        Store (Local0, \_SB.PCI0.ISA.PIRC)
1760                    }
1761                }
1762
1763                Device (LNKD)
1764                {
1765                    Name (_HID, EisaId ("PNP0C0F"))
1766                    Name (_UID, 0x04)
1767                    Name (_PRS, ResourceTemplate ()
1768                    {
1769                        IRQ (Level, ActiveLow, Shared) {11}
1770                    })
1771                    Method (_DIS, 0, NotSerialized)
1772                    {
1773                        Store (Zero, \_SB.PCI0.ISA.PIRD)
1774                    }
1775
1776                    Method (_STA, 0, NotSerialized)
1777                    {
1778                        If (LEqual (\_SB.PCI0.ISA.PIRD, 0x00))
1779                        {
1780                            Return (0x09)
1781                        }
1782                        Else
1783                        {
1784                            Return (0x0B)
1785                        }
1786                    }
1787
1788                    Method (_CRS, 0, NotSerialized)
1789                    {
1790                        Name (BUFD, ResourceTemplate ()
1791                        {
1792                            IRQ (Level, ActiveLow, Shared) {}
1793                        })
1794                        CreateByteField (BUFD, 0x01, IRD1)
1795                        CreateByteField (BUFD, 0x02, IRD2)
1796                        Store (\_SB.PCI0.ISA.PIRD, Local0)
1797                        If (LGreater (Local0, 0x00))
1798                        {
1799                            If (LGreater (Local0, 0x07))
1800                            {
1801                                Subtract (Local0, 0x08, Local2)
1802                                Store (0x01, Local1)
1803                                ShiftLeft (Local1, Local2, Local3)
1804                                Store (Local3, IRD2)
1805                            }
1806                            Else
1807                            {
1808                                Store (0x01, Local1)
1809                                ShiftLeft (Local1, Local0, Local2)
1810                                Store (Local2, IRD1)
1811                            }
1812                        }
1813
1814                        Return (BUFD)
1815                    }
1816
1817                    Method (_SRS, 1, NotSerialized)
1818                    {
1819                        CreateByteField (Arg0, 0x01, IRD1)
1820                        CreateByteField (Arg0, 0x02, IRD2)
1821                        If (LGreater (IRD2, Zero))
1822                        {
1823                            FindSetLeftBit (IRD2, Local0)
1824                            Decrement (Local0)
1825                            Add (Local0, 0x08, Local0)
1826                        }
1827                        Else
1828                        {
1829                            FindSetLeftBit (IRD1, Local0)
1830                            Decrement (Local0)
1831                        }
1832
1833                        Store (Local0, \_SB.PCI0.ISA.PIRD)
1834                    }
1835                }
1836
1837                Device (DMA1)
1838                {
1839                    Name (_HID, EisaId ("PNP0200"))
1840                    Name (_CRS, ResourceTemplate ()
1841                    {
1842                        DMA (Compatibility, BusMaster, Transfer8) {4}
1843                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x10)
1844                        IO (Decode16, 0x0081, 0x0081, 0x01, 0x0F)
1845                        IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
1846                        IO (Decode16, 0x0092, 0x0092, 0x01, 0x01)
1847                    })
1848                    Method (_STA, 0, NotSerialized)
1849                    {
1850                        Return (0x0F)
1851                    }
1852                }
1853
1854                Device (RTC)
1855                {
1856                    Name (_HID, EisaId ("PNP0B00"))
1857                    Method (_STA, 0, NotSerialized)
1858                    {
1859                        Return (0x0F)
1860                    }
1861
1862                    Name (_CRS, ResourceTemplate ()
1863                    {
1864                        IO (Decode10, 0x0070, 0x0070, 0x01, 0x06)
1865                        IRQNoFlags () {8}
1866                    })
1867                }
1868
1869                Device (PIC)
1870                {
1871                    Name (_HID, EisaId ("PNP0000"))
1872                    Method (_STA, 0, NotSerialized)
1873                    {
1874                        Return (0x0F)
1875                    }
1876
1877                    Name (_CRS, ResourceTemplate ()
1878                    {
1879                        IO (Decode16, 0x0020, 0x0020, 0x01, 0x02)
1880                        IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02)
1881                        IRQNoFlags () {2}
1882                    })
1883                }
1884
1885                Device (COPR)
1886                {
1887                    Name (_HID, EisaId ("PNP0C04"))
1888                    Method (_STA, 0, NotSerialized)
1889                    {
1890                        Return (0x0F)
1891                    }
1892
1893                    Name (_CRS, ResourceTemplate ()
1894                    {
1895                        IO (Decode16, 0x00F0, 0x00F0, 0x01, 0x10)
1896                        IRQNoFlags () {13}
1897                    })
1898                }
1899
1900                Device (TMR)
1901                {
1902                    Name (_HID, EisaId ("PNP0100"))
1903                    Method (_STA, 0, NotSerialized)
1904                    {
1905                        Return (0x0F)
1906                    }
1907
1908                    Name (_CRS, ResourceTemplate ()
1909                    {
1910                        IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
1911                        IRQNoFlags () {0}
1912                    })
1913                }
1914
1915                Device (SPKR)
1916                {
1917                    Method (_STA, 0, NotSerialized)
1918                    {
1919                        Return (0x0F)
1920                    }
1921
1922                    Name (_HID, EisaId ("PNP0800"))
1923                    Name (_CRS, ResourceTemplate ()
1924                    {
1925                        IO (Decode16, 0x0061, 0x0061, 0x01, 0x01)
1926                    })
1927                }
1928
1929                Device (MEM)
1930                {
1931                    Name (_HID, EisaId ("PNP0C01"))
1932                    Method (_STA, 0, NotSerialized)
1933                    {
1934                        Return (0x0F)
1935                    }
1936
1937                    Method (_CRS, 0, NotSerialized)
1938                    {
1939                        Name (SMEM, ResourceTemplate ()
1940                        {
1941                            Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
1942                            Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000)
1943                            Memory32Fixed (ReadOnly, 0xFFF00000, 0x00100000)
1944                            Memory32Fixed (ReadOnly, 0xFFEE0000, 0x00020000)
1945                            Memory32Fixed (ReadOnly, 0xFEC00000, 0x00001000)
1946                            Memory32Fixed (ReadOnly, 0xFEE00000, 0x00001000)
1947                            Memory32Fixed (ReadOnly, 0xFFC00000, 0x00400000)
1948                        })
1949                        Return (SMEM)
1950                    }
1951                }
1952
1953                Device (SYSR)
1954                {
1955                    Name (_HID, EisaId ("PNP0C02"))
1956                    Method (_STA, 0, NotSerialized)
1957                    {
1958                        Return (0x0F)
1959                    }
1960
1961                    Method (_CRS, 0, NotSerialized)
1962                    {
1963                        If (\_SB.PCI0.ISA.SMBC)
1964                        {
1965                            Name (RSR2, ResourceTemplate ()
1966                            {
1967                                IO (Decode16, 0x0080, 0x0080, 0x01, 0x01)
1968                                IO (Decode16, 0x04D0, 0x04D0, 0x01, 0x02)
1969                                IO (Decode16, 0xFE10, 0xFE10, 0x01, 0x02)
1970                                IO (Decode16, 0x002E, 0x002E, 0x01, 0x02)
1971                                IO (Decode16, 0x00A8, 0x00A8, 0x01, 0x02)
1972                                IO (Decode16, 0x0600, 0x0600, 0x01, 0x10)
1973                                IO (Decode16, 0xFE00, 0xFE00, 0x01, 0x01)
1974                                IO (Decode16, 0x8000, 0x8000, 0x01, 0x80)
1975                                IO (Decode16, 0x8100, 0x8100, 0x01, 0x20)
1976                            })
1977                            CreateWordField (RSR2, 0x3A, PMMI)
1978                            CreateWordField (RSR2, 0x3C, PMMA)
1979                            CreateWordField (RSR2, 0x42, SMMI)
1980                            CreateWordField (RSR2, 0x44, SMMA)
1981                            And (\_SB.PCI0.ISA.PMBS, 0xFFFE, PMMI)
1982                            Store (PMMI, PMMA)
1983                            And (\_SB.PCI0.ISA.SMBS, 0xFFF0, SMMI)
1984                            Store (SMMI, SMMA)
1985                            Return (RSR2)
1986                        }
1987                        Else
1988                        {
1989                            Name (RSR1, ResourceTemplate ()
1990                            {
1991                                IO (Decode16, 0x0080, 0x0080, 0x01, 0x01)
1992                                IO (Decode16, 0x04D0, 0x04D0, 0x01, 0x02)
1993                                IO (Decode16, 0xFE10, 0xFE10, 0x01, 0x02)
1994                                IO (Decode16, 0x002E, 0x002E, 0x01, 0x02)
1995                                IO (Decode16, 0x00A8, 0x00A8, 0x01, 0x02)
1996                                IO (Decode16, 0x0600, 0x0600, 0x01, 0x10)
1997                                IO (Decode16, 0xFE00, 0xFE00, 0x01, 0x01)
1998                                IO (Decode16, 0x8000, 0x8000, 0x01, 0x80)
1999                            })
2000                            CreateWordField (RSR1, 0x3A, IOMI)
2001                            CreateWordField (RSR1, 0x3C, IOMA)
2002                            And (\_SB.PCI0.ISA.PMBS, 0xFFFE, IOMI)
2003                            Store (IOMI, IOMA)
2004                            Return (RSR1)
2005                        }
2006                    }
2007                }
2008
2009                Device (KBC0)
2010                {
2011                    Name (_HID, EisaId ("PNP0303"))
2012                    Name (_CRS, ResourceTemplate ()
2013                    {
2014                        IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
2015                        IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
2016                        IRQ (Edge, ActiveHigh, Exclusive) {1}
2017                    })
2018                }
2019
2020                Device (MSE0)
2021                {
2022                    Name (_HID, EisaId ("PNP0F13"))
2023                    Name (_CRS, ResourceTemplate ()
2024                    {
2025                        IRQ (Edge, ActiveHigh, Exclusive) {12}
2026                    })
2027                }
2028
2029                Device (SIO)
2030                {
2031                    Name (_HID, EisaId ("PNP0A05"))
2032                    OperationRegion (SIIO, SystemIO, 0x2E, 0x02)
2033                    Field (SIIO, ByteAcc, NoLock, Preserve)
2034                    {
2035                        INDX,   8,
2036                        DATA,   8
2037                    }
2038
2039                    Mutex (N393, 0x00)
2040                    Method (LDRS, 3, NotSerialized)
2041                    {
2042                        Acquire (N393, 0xFFFF)
2043                        Store (0x07, INDX)
2044                        Store (Arg0, DATA)
2045                        Store (Arg1, INDX)
2046                        Store (Arg2, DATA)
2047                        Release (N393)
2048                    }
2049
2050                    Method (LDRG, 2, NotSerialized)
2051                    {
2052                        Acquire (N393, 0xFFFF)
2053                        Store (0x07, INDX)
2054                        Store (Arg0, DATA)
2055                        Store (Arg1, INDX)
2056                        Store (DATA, Local0)
2057                        Release (N393)
2058                        Return (Local0)
2059                    }
2060
2061                    Method (RCF6, 1, NotSerialized)
2062                    {
2063                        Acquire (N393, 0xFFFF)
2064                        Store (0x26, INDX)
2065                        Store (DATA, Local0)
2066                        And (Local0, Arg0, Local0)
2067                        Release (N393)
2068                        Return (XOr (Local0, Arg0))
2069                    }
2070
2071                    Device (ECP)
2072                    {
2073                        Name (_HID, EisaId ("PNP0401"))
2074                        Name (_UID, 0x03)
2075                        Method (_STA, 0, NotSerialized)
2076                        {
2077                            Store (LDRG (0x01, 0xF0), Local0)
2078                            ShiftRight (Local0, 0x05, Local0)
2079                            If (LAnd (RCF6 (0x02), LOr (LEqual (Local0, 0x04), LEqual (Local0, 0x07))))
2080                            {
2081                                ShiftLeft (LDRG (0x01, 0x30), 0x01, Local1)
2082                                Add (0x0D, Local1, Local1)
2083                                Return (Local1)
2084                            }
2085                            Else
2086                            {
2087                                Return (0x00)
2088                            }
2089                        }
2090
2091                        Method (_PS0, 0, NotSerialized)
2092                        {
2093                            LDRS (0x01, 0x30, 0x01)
2094                        }
2095
2096                        Method (_PS3, 0, NotSerialized)
2097                        {
2098                            LDRS (0x01, 0x30, 0x00)
2099                        }
2100
2101                        Method (_PRS, 0, NotSerialized)
2102                        {
2103                            Return (ResourceTemplate ()
2104                            {
2105                                StartDependentFnNoPri ()
2106                                {
2107                                    IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2108                                    IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2109                                    IRQNoFlags () {7}
2110                                    DMA (Compatibility, NotBusMaster, Transfer8) {3}
2111                                }
2112                                StartDependentFnNoPri ()
2113                                {
2114                                    IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
2115                                    IO (Decode16, 0x0678, 0x0678, 0x08, 0x08)
2116                                    IRQNoFlags () {5}
2117                                    DMA (Compatibility, NotBusMaster, Transfer8) {3}
2118                                }
2119                                StartDependentFnNoPri ()
2120                                {
2121                                    IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2122                                    IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2123                                    IRQNoFlags () {5}
2124                                    DMA (Compatibility, NotBusMaster, Transfer8) {3}
2125                                }
2126                                StartDependentFnNoPri ()
2127                                {
2128                                    IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
2129                                    IO (Decode16, 0x0678, 0x0678, 0x08, 0x08)
2130                                    IRQNoFlags () {7}
2131                                    DMA (Compatibility, NotBusMaster, Transfer8) {3}
2132                                }
2133                                StartDependentFnNoPri ()
2134                                {
2135                                    IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2136                                    IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2137                                    IRQNoFlags () {7}
2138                                    DMA (Compatibility, NotBusMaster, Transfer8) {1}
2139                                }
2140                                StartDependentFnNoPri ()
2141                                {
2142                                    IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
2143                                    IO (Decode16, 0x0678, 0x0678, 0x08, 0x08)
2144                                    IRQNoFlags () {5}
2145                                    DMA (Compatibility, NotBusMaster, Transfer8) {1}
2146                                }
2147                                StartDependentFnNoPri ()
2148                                {
2149                                    IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2150                                    IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2151                                    IRQNoFlags () {5}
2152                                    DMA (Compatibility, NotBusMaster, Transfer8) {1}
2153                                }
2154                                StartDependentFnNoPri ()
2155                                {
2156                                    IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
2157                                    IO (Decode16, 0x0678, 0x0678, 0x08, 0x08)
2158                                    IRQNoFlags () {7}
2159                                    DMA (Compatibility, NotBusMaster, Transfer8) {1}
2160                                }
2161                                EndDependentFn ()
2162                            })
2163                        }
2164
2165                        Method (_DIS, 0, NotSerialized)
2166                        {
2167                            LDRS (0x01, 0x30, 0x00)
2168                        }
2169
2170                        Method (_CRS, 0, NotSerialized)
2171                        {
2172                            Name (DCRS, ResourceTemplate ()
2173                            {
2174                                IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2175                                IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2176                                IRQNoFlags () {7}
2177                                DMA (Compatibility, NotBusMaster, Transfer8) {3}
2178                            })
2179                            Store (LDRG (0x01, 0x60), Local1)
2180                            Store (LDRG (0x01, 0x61), Local0)
2181                            Store (Local0, Index (DCRS, 0x02))
2182                            Store (Local0, Index (DCRS, 0x0A))
2183                            Store (Local0, Index (DCRS, 0x04))
2184                            Store (Local0, Index (DCRS, 0x0C))
2185                            Store (Local1, Index (DCRS, 0x03))
2186                            Store (Local1, Index (DCRS, 0x05))
2187                            Add (Local1, 0x04, Local1)
2188                            Store (Local1, Index (DCRS, 0x0B))
2189                            Store (Local1, Index (DCRS, 0x0D))
2190                            ShiftLeft (0x01, LDRG (0x01, 0x70), Local0)
2191                            Store (Local0, Index (DCRS, 0x11))
2192                            ShiftRight (Local0, 0x08, Local1)
2193                            Store (Local1, Index (DCRS, 0x12))
2194                            ShiftLeft (0x01, LDRG (0x01, 0x74), Local0)
2195                            Store (Local0, Index (DCRS, 0x14))
2196                            ShiftRight (Local0, 0x08, Local1)
2197                            Store (Local1, Index (DCRS, 0x15))
2198                            Return (DCRS)
2199                        }
2200
2201                        Method (_SRS, 1, NotSerialized)
2202                        {
2203                            CreateByteField (Arg0, 0x02, ADRL)
2204                            CreateByteField (Arg0, 0x03, ADRM)
2205                            CreateWordField (Arg0, 0x11, IRQM)
2206                            CreateWordField (Arg0, 0x14, DMAM)
2207                            FindSetRightBit (IRQM, Local0)
2208                            Decrement (Local0)
2209                            FindSetRightBit (DMAM, Local1)
2210                            Decrement (Local1)
2211                            LDRS (0x01, 0x70, Local0)
2212                            LDRS (0x01, 0x74, Local1)
2213                            LDRS (0x01, 0x60, ADRM)
2214                            LDRS (0x01, 0x61, ADRL)
2215                            LDRS (0x01, 0x30, 0x01)
2216                        }
2217                    }
2218
2219                    Device (EPP)
2220                    {
2221                        Name (_HID, EisaId ("PNP0400"))
2222                        Name (_UID, 0x02)
2223                        Method (_STA, 0, NotSerialized)
2224                        {
2225                            Store (LDRG (0x01, 0xF0), Local0)
2226                            ShiftRight (Local0, 0x05, Local0)
2227                            If (LAnd (RCF6 (0x02), LOr (LEqual (Local0, 0x02), LEqual (Local0, 0x03))))
2228                            {
2229                                ShiftLeft (LDRG (0x01, 0x30), 0x01, Local1)
2230                                Add (0x0D, Local1, Local1)
2231                                Return (Local1)
2232                            }
2233                            Else
2234                            {
2235                                Return (0x00)
2236                            }
2237                        }
2238
2239                        Method (_PS0, 0, NotSerialized)
2240                        {
2241                            LDRS (0x01, 0x30, 0x01)
2242                        }
2243
2244                        Method (_PS3, 0, NotSerialized)
2245                        {
2246                            LDRS (0x01, 0x30, 0x00)
2247                        }
2248
2249                        Method (_PRS, 0, NotSerialized)
2250                        {
2251                            Return (ResourceTemplate ()
2252                            {
2253                                StartDependentFnNoPri ()
2254                                {
2255                                    IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2256                                    IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2257                                    IRQNoFlags () {7}
2258                                }
2259                                StartDependentFnNoPri ()
2260                                {
2261                                    IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
2262                                    IO (Decode16, 0x0678, 0x0678, 0x08, 0x08)
2263                                    IRQNoFlags () {5}
2264                                }
2265                                StartDependentFnNoPri ()
2266                                {
2267                                    IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2268                                    IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2269                                    IRQNoFlags () {5}
2270                                }
2271                                StartDependentFnNoPri ()
2272                                {
2273                                    IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
2274                                    IO (Decode16, 0x0678, 0x0678, 0x08, 0x08)
2275                                    IRQNoFlags () {7}
2276                                }
2277                                StartDependentFnNoPri ()
2278                                {
2279                                    IO (Decode16, 0x0178, 0x0178, 0x08, 0x08)
2280                                    IO (Decode16, 0x0578, 0x0578, 0x08, 0x08)
2281                                    IRQNoFlags () {7}
2282                                }
2283                                StartDependentFnNoPri ()
2284                                {
2285                                    IO (Decode16, 0x0178, 0x0178, 0x08, 0x08)
2286                                    IO (Decode16, 0x0578, 0x0578, 0x08, 0x08)
2287                                    IRQNoFlags () {5}
2288                                }
2289                                EndDependentFn ()
2290                            })
2291                        }
2292
2293                        Method (_DIS, 0, NotSerialized)
2294                        {
2295                            LDRS (0x01, 0x30, 0x00)
2296                        }
2297
2298                        Method (_CRS, 0, NotSerialized)
2299                        {
2300                            Name (DCRS, ResourceTemplate ()
2301                            {
2302                                IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2303                                IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2304                                IRQNoFlags () {7}
2305                            })
2306                            Store (LDRG (0x01, 0x60), Local1)
2307                            Store (LDRG (0x01, 0x61), Local0)
2308                            Store (Local0, Index (DCRS, 0x02))
2309                            Store (Local0, Index (DCRS, 0x0A))
2310                            Store (Local0, Index (DCRS, 0x04))
2311                            Store (Local0, Index (DCRS, 0x0C))
2312                            Store (Local1, Index (DCRS, 0x03))
2313                            Store (Local1, Index (DCRS, 0x05))
2314                            Add (Local1, 0x04, Local1)
2315                            Store (Local1, Index (DCRS, 0x0B))
2316                            Store (Local1, Index (DCRS, 0x0D))
2317                            ShiftLeft (0x01, LDRG (0x01, 0x70), Local0)
2318                            Store (Local0, Index (DCRS, 0x11))
2319                            ShiftRight (Local0, 0x08, Local1)
2320                            Store (Local1, Index (DCRS, 0x12))
2321                            Return (DCRS)
2322                        }
2323
2324                        Method (_SRS, 1, NotSerialized)
2325                        {
2326                            CreateByteField (Arg0, 0x02, ADRL)
2327                            CreateByteField (Arg0, 0x03, ADRM)
2328                            CreateWordField (Arg0, 0x11, IRQM)
2329                            FindSetRightBit (IRQM, Local0)
2330                            Decrement (Local0)
2331                            LDRS (0x01, 0x70, Local0)
2332                            LDRS (0x01, 0x60, ADRM)
2333                            LDRS (0x01, 0x61, ADRL)
2334                            LDRS (0x01, 0x30, 0x01)
2335                        }
2336                    }
2337
2338                    Device (LPTB)
2339                    {
2340                        Name (_HID, EisaId ("PNP0400"))
2341                        Name (_UID, 0x01)
2342                        Method (_STA, 0, NotSerialized)
2343                        {
2344                            Store (LDRG (0x01, 0xF0), Local0)
2345                            ShiftRight (Local0, 0x05, Local0)
2346                            If (LAnd (RCF6 (0x02), LEqual (Local0, 0x01)))
2347                            {
2348                                ShiftLeft (LDRG (0x01, 0x30), 0x01, Local1)
2349                                Add (0x0D, Local1, Local1)
2350                                Return (Local1)
2351                            }
2352                            Else
2353                            {
2354                                Return (0x00)
2355                            }
2356                        }
2357
2358                        Method (_PS0, 0, NotSerialized)
2359                        {
2360                            LDRS (0x01, 0x30, 0x01)
2361                        }
2362
2363                        Method (_PS3, 0, NotSerialized)
2364                        {
2365                            LDRS (0x01, 0x30, 0x00)
2366                        }
2367
2368                        Method (_PRS, 0, NotSerialized)
2369                        {
2370                            Return (ResourceTemplate ()
2371                            {
2372                                StartDependentFnNoPri ()
2373                                {
2374                                    IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2375                                    IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2376                                    IRQNoFlags () {7}
2377                                }
2378                                StartDependentFnNoPri ()
2379                                {
2380                                    IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
2381                                    IO (Decode16, 0x0678, 0x0678, 0x08, 0x08)
2382                                    IRQNoFlags () {5}
2383                                }
2384                                StartDependentFnNoPri ()
2385                                {
2386                                    IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2387                                    IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2388                                    IRQNoFlags () {5}
2389                                }
2390                                StartDependentFnNoPri ()
2391                                {
2392                                    IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
2393                                    IO (Decode16, 0x0678, 0x0678, 0x08, 0x08)
2394                                    IRQNoFlags () {7}
2395                                }
2396                                StartDependentFnNoPri ()
2397                                {
2398                                    IO (Decode16, 0x03BC, 0x03BC, 0x04, 0x04)
2399                                    IO (Decode16, 0x07BC, 0x07BC, 0x04, 0x04)
2400                                    IRQNoFlags () {7}
2401                                }
2402                                StartDependentFnNoPri ()
2403                                {
2404                                    IO (Decode16, 0x03BC, 0x03BC, 0x04, 0x04)
2405                                    IO (Decode16, 0x07BC, 0x07BC, 0x04, 0x04)
2406                                    IRQNoFlags () {5}
2407                                }
2408                                EndDependentFn ()
2409                            })
2410                        }
2411
2412                        Method (_DIS, 0, NotSerialized)
2413                        {
2414                            LDRS (0x01, 0x30, 0x00)
2415                        }
2416
2417                        Method (_CRS, 0, NotSerialized)
2418                        {
2419                            Name (DCRS, ResourceTemplate ()
2420                            {
2421                                IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2422                                IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2423                                IRQNoFlags () {7}
2424                            })
2425                            Store (LDRG (0x01, 0x60), Local1)
2426                            Store (LDRG (0x01, 0x61), Local0)
2427                            Store (Local0, Index (DCRS, 0x02))
2428                            Store (Local0, Index (DCRS, 0x0A))
2429                            Store (Local0, Index (DCRS, 0x04))
2430                            Store (Local0, Index (DCRS, 0x0C))
2431                            Store (Local1, Index (DCRS, 0x03))
2432                            Store (Local1, Index (DCRS, 0x05))
2433                            Add (Local1, 0x04, Local1)
2434                            Store (Local1, Index (DCRS, 0x0B))
2435                            Store (Local1, Index (DCRS, 0x0D))
2436                            If (And (Local0, 0x04))
2437                            {
2438                                Store (0x04, Local0)
2439                            }
2440                            Else
2441                            {
2442                                Store (0x08, Local0)
2443                            }
2444
2445                            Store (Local0, Index (DCRS, 0x06))
2446                            Store (Local0, Index (DCRS, 0x07))
2447                            Store (Local0, Index (DCRS, 0x0E))
2448                            Store (Local0, Index (DCRS, 0x0F))
2449                            ShiftLeft (0x01, LDRG (0x01, 0x70), Local0)
2450                            Store (Local0, Index (DCRS, 0x11))
2451                            ShiftRight (Local0, 0x08, Local1)
2452                            Store (Local1, Index (DCRS, 0x12))
2453                            Return (DCRS)
2454                        }
2455
2456                        Method (_SRS, 1, NotSerialized)
2457                        {
2458                            CreateByteField (Arg0, 0x02, ADRL)
2459                            CreateByteField (Arg0, 0x03, ADRM)
2460                            CreateWordField (Arg0, 0x11, IRQM)
2461                            FindSetRightBit (IRQM, Local0)
2462                            Decrement (Local0)
2463                            LDRS (0x01, 0x70, Local0)
2464                            LDRS (0x01, 0x60, ADRM)
2465                            LDRS (0x01, 0x61, ADRL)
2466                            LDRS (0x01, 0x30, 0x01)
2467                        }
2468                    }
2469
2470                    Device (LPT)
2471                    {
2472                        Name (_HID, EisaId ("PNP0400"))
2473                        Name (_UID, 0x00)
2474                        Method (_STA, 0, NotSerialized)
2475                        {
2476                            Store (LDRG (0x01, 0xF0), Local0)
2477                            ShiftRight (Local0, 0x05, Local0)
2478                            If (LAnd (RCF6 (0x02), LEqual (Local0, 0x00)))
2479                            {
2480                                ShiftLeft (LDRG (0x01, 0x30), 0x01, Local1)
2481                                Add (0x0D, Local1, Local1)
2482                                Return (Local1)
2483                            }
2484                            Else
2485                            {
2486                                Return (0x00)
2487                            }
2488                        }
2489
2490                        Method (_PS0, 0, NotSerialized)
2491                        {
2492                            LDRS (0x01, 0x30, 0x01)
2493                        }
2494
2495                        Method (_PS3, 0, NotSerialized)
2496                        {
2497                            LDRS (0x01, 0x30, 0x00)
2498                        }
2499
2500                        Method (_PRS, 0, NotSerialized)
2501                        {
2502                            Return (ResourceTemplate ()
2503                            {
2504                                StartDependentFnNoPri ()
2505                                {
2506                                    IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2507                                    IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2508                                    IRQNoFlags () {7}
2509                                }
2510                                StartDependentFnNoPri ()
2511                                {
2512                                    IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
2513                                    IO (Decode16, 0x0678, 0x0678, 0x08, 0x08)
2514                                    IRQNoFlags () {5}
2515                                }
2516                                StartDependentFnNoPri ()
2517                                {
2518                                    IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2519                                    IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2520                                    IRQNoFlags () {5}
2521                                }
2522                                StartDependentFnNoPri ()
2523                                {
2524                                    IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
2525                                    IO (Decode16, 0x0678, 0x0678, 0x08, 0x08)
2526                                    IRQNoFlags () {7}
2527                                }
2528                                StartDependentFnNoPri ()
2529                                {
2530                                    IO (Decode16, 0x03BC, 0x03BC, 0x04, 0x04)
2531                                    IO (Decode16, 0x07BC, 0x07BC, 0x04, 0x04)
2532                                    IRQNoFlags () {7}
2533                                }
2534                                StartDependentFnNoPri ()
2535                                {
2536                                    IO (Decode16, 0x03BC, 0x03BC, 0x04, 0x04)
2537                                    IO (Decode16, 0x07BC, 0x07BC, 0x04, 0x04)
2538                                    IRQNoFlags () {5}
2539                                }
2540                                EndDependentFn ()
2541                            })
2542                        }
2543
2544                        Method (_DIS, 0, NotSerialized)
2545                        {
2546                            LDRS (0x01, 0x30, 0x00)
2547                        }
2548
2549                        Method (_CRS, 0, NotSerialized)
2550                        {
2551                            Name (DCRS, ResourceTemplate ()
2552                            {
2553                                IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
2554                                IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
2555                                IRQNoFlags () {7}
2556                            })
2557                            Store (LDRG (0x01, 0x60), Local1)
2558                            Store (LDRG (0x01, 0x61), Local0)
2559                            Store (Local0, Index (DCRS, 0x02))
2560                            Store (Local0, Index (DCRS, 0x0A))
2561                            Store (Local0, Index (DCRS, 0x04))
2562                            Store (Local0, Index (DCRS, 0x0C))
2563                            Store (Local1, Index (DCRS, 0x03))
2564                            Store (Local1, Index (DCRS, 0x05))
2565                            Add (Local1, 0x04, Local1)
2566                            Store (Local1, Index (DCRS, 0x0B))
2567                            Store (Local1, Index (DCRS, 0x0D))
2568                            If (And (Local0, 0x04))
2569                            {
2570                                Store (0x04, Local0)
2571                            }
2572                            Else
2573                            {
2574                                Store (0x08, Local0)
2575                            }
2576
2577                            Store (Local0, Index (DCRS, 0x06))
2578                            Store (Local0, Index (DCRS, 0x07))
2579                            Store (Local0, Index (DCRS, 0x0E))
2580                            Store (Local0, Index (DCRS, 0x0F))
2581                            ShiftLeft (0x01, LDRG (0x01, 0x70), Local0)
2582                            Store (Local0, Index (DCRS, 0x11))
2583                            ShiftRight (Local0, 0x08, Local1)
2584                            Store (Local1, Index (DCRS, 0x12))
2585                            Return (DCRS)
2586                        }
2587
2588                        Method (_SRS, 1, NotSerialized)
2589                        {
2590                            CreateByteField (Arg0, 0x02, ADRL)
2591                            CreateByteField (Arg0, 0x03, ADRM)
2592                            CreateWordField (Arg0, 0x11, IRQM)
2593                            FindSetRightBit (IRQM, Local0)
2594                            Decrement (Local0)
2595                            LDRS (0x01, 0x70, Local0)
2596                            LDRS (0x01, 0x60, ADRM)
2597                            LDRS (0x01, 0x61, ADRL)
2598                            LDRS (0x01, 0x30, 0x01)
2599                        }
2600                    }
2601
2602                    Device (FDC)
2603                    {
2604                        Name (_HID, EisaId ("PNP0700"))
2605                        Name (_UID, 0x00)
2606                        Method (_STA, 0, NotSerialized)
2607                        {
2608                            If (RCF6 (0x01))
2609                            {
2610                                ShiftLeft (LDRG (0x00, 0x30), 0x01, Local1)
2611                                Add (0x0D, Local1, Local1)
2612                                Return (Local1)
2613                            }
2614                            Else
2615                            {
2616                                Return (0x00)
2617                            }
2618                        }
2619
2620                        Method (_PS0, 0, NotSerialized)
2621                        {
2622                            LDRS (0x00, 0x30, 0x01)
2623                        }
2624
2625                        Method (_PS3, 0, NotSerialized)
2626                        {
2627                            LDRS (0x00, 0x30, 0x00)
2628                        }
2629
2630                        Method (_PRS, 0, NotSerialized)
2631                        {
2632                            Return (ResourceTemplate ()
2633                            {
2634                                StartDependentFnNoPri ()
2635                                {
2636                                    IO (Decode16, 0x03F0, 0x03F0, 0x08, 0x06)
2637                                    IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
2638                                    IRQNoFlags () {6}
2639                                    DMA (Compatibility, NotBusMaster, Transfer8) {2}
2640                                }
2641                                StartDependentFnNoPri ()
2642                                {
2643                                    IO (Decode16, 0x0370, 0x0370, 0x08, 0x06)
2644                                    IO (Decode16, 0x0377, 0x0377, 0x01, 0x01)
2645                                    IRQNoFlags () {6}
2646                                    DMA (Compatibility, NotBusMaster, Transfer8) {2}
2647                                }
2648                                EndDependentFn ()
2649                            })
2650                        }
2651
2652                        Method (_DIS, 0, NotSerialized)
2653                        {
2654                            LDRS (0x00, 0x30, 0x00)
2655                        }
2656
2657                        Method (_CRS, 0, NotSerialized)
2658                        {
2659                            Name (DCRS, ResourceTemplate ()
2660                            {
2661                                IO (Decode16, 0x03F0, 0x03F0, 0x08, 0x06)
2662                                IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
2663                                IRQNoFlags () {6}
2664                                DMA (Compatibility, NotBusMaster, Transfer8) {2}
2665                            })
2666                            Store (LDRG (0x00, 0x60), Local1)
2667                            Store (LDRG (0x00, 0x61), Local0)
2668                            Store (Local0, Index (DCRS, 0x02))
2669                            Store (Local0, Index (DCRS, 0x04))
2670                            Add (Local0, 0x07, Local0)
2671                            Store (Local0, Index (DCRS, 0x0A))
2672                            Store (Local0, Index (DCRS, 0x0C))
2673                            Store (Local1, Index (DCRS, 0x03))
2674                            Store (Local1, Index (DCRS, 0x05))
2675                            Store (Local1, Index (DCRS, 0x0B))
2676                            Store (Local1, Index (DCRS, 0x0D))
2677                            ShiftLeft (0x01, LDRG (0x00, 0x70), Local0)
2678                            Store (Local0, Index (DCRS, 0x11))
2679                            ShiftRight (Local0, 0x08, Local1)
2680                            Store (Local1, Index (DCRS, 0x12))
2681                            ShiftLeft (0x01, LDRG (0x00, 0x74), Local0)
2682                            Store (Local0, Index (DCRS, 0x14))
2683                            ShiftRight (Local0, 0x08, Local1)
2684                            Store (Local1, Index (DCRS, 0x15))
2685                            Return (DCRS)
2686                        }
2687
2688                        Method (_SRS, 1, NotSerialized)
2689                        {
2690                            CreateByteField (Arg0, 0x02, ADRL)
2691                            CreateByteField (Arg0, 0x03, ADRM)
2692                            CreateWordField (Arg0, 0x11, IRQM)
2693                            CreateWordField (Arg0, 0x14, DMAM)
2694                            FindSetRightBit (IRQM, Local0)
2695                            Decrement (Local0)
2696                            FindSetRightBit (DMAM, Local1)
2697                            Decrement (Local1)
2698                            LDRS (0x00, 0x70, Local0)
2699                            LDRS (0x00, 0x74, Local1)
2700                            LDRS (0x00, 0x60, ADRM)
2701                            LDRS (0x00, 0x61, ADRL)
2702                            LDRS (0x00, 0x30, 0x01)
2703                        }
2704                    }
2705
2706                    Device (SIR)
2707                    {
2708                        Name (_HID, EisaId ("PNP0510"))
2709                        Name (_UID, 0x00)
2710                        Method (_STA, 0, NotSerialized)
2711                        {
2712                            Store (LDRG (0x02, 0x74), Local0)
2713                            If (LAnd (RCF6 (0x04), LEqual (Local0, 0x04)))
2714                            {
2715                                ShiftLeft (LDRG (0x02, 0x30), 0x01, Local1)
2716                                Add (0x0D, Local1, Local1)
2717                                Return (Local1)
2718                            }
2719                            Else
2720                            {
2721                                Return (0x00)
2722                            }
2723                        }
2724
2725                        Method (_PS0, 0, NotSerialized)
2726                        {
2727                            LDRS (0x02, 0x30, 0x01)
2728                        }
2729
2730                        Method (_PS3, 0, NotSerialized)
2731                        {
2732                            LDRS (0x02, 0x30, 0x00)
2733                        }
2734
2735                        Method (_PRS, 0, NotSerialized)
2736                        {
2737                            Return (ResourceTemplate ()
2738                            {
2739                                StartDependentFnNoPri ()
2740                                {
2741                                    IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
2742                                    IRQNoFlags () {4}
2743                                }
2744                                StartDependentFnNoPri ()
2745                                {
2746                                    IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
2747                                    IRQNoFlags () {3}
2748                                }
2749                                StartDependentFnNoPri ()
2750                                {
2751                                    IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
2752                                    IRQNoFlags () {4}
2753                                }
2754                                StartDependentFnNoPri ()
2755                                {
2756                                    IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
2757                                    IRQNoFlags () {3}
2758                                }
2759                                StartDependentFnNoPri ()
2760                                {
2761                                    IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
2762                                    IRQNoFlags () {3}
2763                                }
2764                                StartDependentFnNoPri ()
2765                                {
2766                                    IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
2767                                    IRQNoFlags () {4}
2768                                }
2769                                StartDependentFnNoPri ()
2770                                {
2771                                    IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
2772                                    IRQNoFlags () {3}
2773                                }
2774                                StartDependentFnNoPri ()
2775                                {
2776                                    IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
2777                                    IRQNoFlags () {4}
2778                                }
2779                                EndDependentFn ()
2780                            })
2781                        }
2782
2783                        Method (_DIS, 0, NotSerialized)
2784                        {
2785                            LDRS (0x02, 0x30, 0x00)
2786                        }
2787
2788                        Method (_CRS, 0, NotSerialized)
2789                        {
2790                            Name (DCRS, ResourceTemplate ()
2791                            {
2792                                IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
2793                                IRQNoFlags () {3}
2794                            })
2795                            Store (LDRG (0x02, 0x60), Local1)
2796                            Store (LDRG (0x02, 0x61), Local0)
2797                            Store (Local0, Index (DCRS, 0x02))
2798                            Store (Local0, Index (DCRS, 0x04))
2799                            Store (Local1, Index (DCRS, 0x03))
2800                            Store (Local1, Index (DCRS, 0x05))
2801                            ShiftLeft (0x01, LDRG (0x02, 0x70), Local0)
2802                            Store (Local0, Index (DCRS, 0x09))
2803                            ShiftRight (Local0, 0x08, Local1)
2804                            Store (Local1, Index (DCRS, 0x0A))
2805                            Return (DCRS)
2806                        }
2807
2808                        Method (_SRS, 1, NotSerialized)
2809                        {
2810                            CreateByteField (Arg0, 0x02, ADRL)
2811                            CreateByteField (Arg0, 0x03, ADRM)
2812                            CreateWordField (Arg0, 0x09, IRQM)
2813                            FindSetRightBit (IRQM, Local0)
2814                            Decrement (Local0)
2815                            LDRS (0x02, 0x70, Local0)
2816                            LDRS (0x02, 0x60, ADRM)
2817                            LDRS (0x02, 0x61, ADRL)
2818                            LDRS (0x02, 0x30, 0x01)
2819                        }
2820                    }
2821
2822                    Device (FIR)
2823                    {
2824                        Name (_HID, EisaId ("NSC6001"))
2825                        Name (_UID, 0x00)
2826                        Method (_STA, 0, NotSerialized)
2827                        {
2828                            Store (LDRG (0x02, 0x74), Local0)
2829                            If (LAnd (RCF6 (0x04), LNot (LEqual (Local0, 0x04))))
2830                            {
2831                                ShiftLeft (LDRG (0x02, 0x30), 0x01, Local1)
2832                                Add (0x0D, Local1, Local1)
2833                                Return (Local1)
2834                            }
2835                            Else
2836                            {
2837                                Return (0x00)
2838                            }
2839                        }
2840
2841                        Method (_PS0, 0, NotSerialized)
2842                        {
2843                            LDRS (0x02, 0x30, 0x01)
2844                        }
2845
2846                        Method (_PS3, 0, NotSerialized)
2847                        {
2848                            LDRS (0x02, 0x30, 0x00)
2849                        }
2850
2851                        Method (_PRS, 0, NotSerialized)
2852                        {
2853                            Return (ResourceTemplate ()
2854                            {
2855                                StartDependentFnNoPri ()
2856                                {
2857                                    IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
2858                                    IRQNoFlags () {4}
2859                                    DMA (Compatibility, NotBusMaster, Transfer8) {0}
2860                                }
2861                                StartDependentFnNoPri ()
2862                                {
2863                                    IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
2864                                    IRQNoFlags () {3}
2865                                    DMA (Compatibility, NotBusMaster, Transfer8) {0}
2866                                }
2867                                StartDependentFnNoPri ()
2868                                {
2869                                    IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
2870                                    IRQNoFlags () {4}
2871                                    DMA (Compatibility, NotBusMaster, Transfer8) {0}
2872                                }
2873                                StartDependentFnNoPri ()
2874                                {
2875                                    IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
2876                                    IRQNoFlags () {3}
2877                                    DMA (Compatibility, NotBusMaster, Transfer8) {0}
2878                                }
2879                                StartDependentFnNoPri ()
2880                                {
2881                                    IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
2882                                    IRQNoFlags () {3}
2883                                    DMA (Compatibility, NotBusMaster, Transfer8) {0}
2884                                }
2885                                StartDependentFnNoPri ()
2886                                {
2887                                    IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
2888                                    IRQNoFlags () {4}
2889                                    DMA (Compatibility, NotBusMaster, Transfer8) {0}
2890                                }
2891                                StartDependentFnNoPri ()
2892                                {
2893                                    IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
2894                                    IRQNoFlags () {3}
2895                                    DMA (Compatibility, NotBusMaster, Transfer8) {0}
2896                                }
2897                                StartDependentFnNoPri ()
2898                                {
2899                                    IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
2900                                    IRQNoFlags () {4}
2901                                    DMA (Compatibility, NotBusMaster, Transfer8) {0}
2902                                }
2903                                StartDependentFnNoPri ()
2904                                {
2905                                    IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
2906                                    IRQNoFlags () {4}
2907                                    DMA (Compatibility, NotBusMaster, Transfer8) {1}
2908                                }
2909                                StartDependentFnNoPri ()
2910                                {
2911                                    IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
2912                                    IRQNoFlags () {3}
2913                                    DMA (Compatibility, NotBusMaster, Transfer8) {1}
2914                                }
2915                                StartDependentFnNoPri ()
2916                                {
2917                                    IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
2918                                    IRQNoFlags () {4}
2919                                    DMA (Compatibility, NotBusMaster, Transfer8) {1}
2920                                }
2921                                StartDependentFnNoPri ()
2922                                {
2923                                    IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
2924                                    IRQNoFlags () {3}
2925                                    DMA (Compatibility, NotBusMaster, Transfer8) {1}
2926                                }
2927                                StartDependentFnNoPri ()
2928                                {
2929                                    IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
2930                                    IRQNoFlags () {3}
2931                                    DMA (Compatibility, NotBusMaster, Transfer8) {1}
2932                                }
2933                                StartDependentFnNoPri ()
2934                                {
2935                                    IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
2936                                    IRQNoFlags () {4}
2937                                    DMA (Compatibility, NotBusMaster, Transfer8) {1}
2938                                }
2939                                StartDependentFnNoPri ()
2940                                {
2941                                    IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
2942                                    IRQNoFlags () {3}
2943                                    DMA (Compatibility, NotBusMaster, Transfer8) {1}
2944                                }
2945                                StartDependentFnNoPri ()
2946                                {
2947                                    IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
2948                                    IRQNoFlags () {4}
2949                                    DMA (Compatibility, NotBusMaster, Transfer8) {1}
2950                                }
2951                                StartDependentFnNoPri ()
2952                                {
2953                                    IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
2954                                    IRQNoFlags () {4}
2955                                    DMA (Compatibility, NotBusMaster, Transfer8) {3}
2956                                }
2957                                StartDependentFnNoPri ()
2958                                {
2959                                    IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
2960                                    IRQNoFlags () {3}
2961                                    DMA (Compatibility, NotBusMaster, Transfer8) {3}
2962                                }
2963                                StartDependentFnNoPri ()
2964                                {
2965                                    IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
2966                                    IRQNoFlags () {4}
2967                                    DMA (Compatibility, NotBusMaster, Transfer8) {3}
2968                                }
2969                                StartDependentFnNoPri ()
2970                                {
2971                                    IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
2972                                    IRQNoFlags () {3}
2973                                    DMA (Compatibility, NotBusMaster, Transfer8) {3}
2974                                }
2975                                StartDependentFnNoPri ()
2976                                {
2977                                    IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
2978                                    IRQNoFlags () {3}
2979                                    DMA (Compatibility, NotBusMaster, Transfer8) {3}
2980                                }
2981                                StartDependentFnNoPri ()
2982                                {
2983                                    IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
2984                                    IRQNoFlags () {4}
2985                                    DMA (Compatibility, NotBusMaster, Transfer8) {3}
2986                                }
2987                                StartDependentFnNoPri ()
2988                                {
2989                                    IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
2990                                    IRQNoFlags () {3}
2991                                    DMA (Compatibility, NotBusMaster, Transfer8) {3}
2992                                }
2993                                StartDependentFnNoPri ()
2994                                {
2995                                    IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
2996                                    IRQNoFlags () {4}
2997                                    DMA (Compatibility, NotBusMaster, Transfer8) {3}
2998                                }
2999                                EndDependentFn ()
3000                            })
3001                        }
3002
3003                        Method (_DIS, 0, NotSerialized)
3004                        {
3005                            LDRS (0x02, 0x30, 0x00)
3006                        }
3007
3008                        Method (_CRS, 0, NotSerialized)
3009                        {
3010                            Name (DCRS, ResourceTemplate ()
3011                            {
3012                                IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
3013                                IRQNoFlags () {3}
3014                                DMA (Compatibility, NotBusMaster, Transfer8) {0}
3015                            })
3016                            Store (LDRG (0x02, 0x60), Local1)
3017                            Store (LDRG (0x02, 0x61), Local0)
3018                            Store (Local0, Index (DCRS, 0x02))
3019                            Store (Local0, Index (DCRS, 0x04))
3020                            Store (Local1, Index (DCRS, 0x03))
3021                            Store (Local1, Index (DCRS, 0x05))
3022                            ShiftLeft (0x01, LDRG (0x02, 0x70), Local0)
3023                            Store (Local0, Index (DCRS, 0x09))
3024                            ShiftRight (Local0, 0x08, Local1)
3025                            Store (Local1, Index (DCRS, 0x0A))
3026                            ShiftLeft (0x01, LDRG (0x01, 0x74), Local0)
3027                            Store (Local0, Index (DCRS, 0x0C))
3028                            ShiftRight (Local0, 0x08, Local1)
3029                            Store (Local1, Index (DCRS, 0x0D))
3030                            Return (DCRS)
3031                        }
3032
3033                        Method (_SRS, 1, NotSerialized)
3034                        {
3035                            CreateByteField (Arg0, 0x02, ADRL)
3036                            CreateByteField (Arg0, 0x03, ADRM)
3037                            CreateWordField (Arg0, 0x09, IRQM)
3038                            CreateWordField (Arg0, 0x0C, DMAM)
3039                            FindSetRightBit (IRQM, Local0)
3040                            Decrement (Local0)
3041                            FindSetRightBit (DMAM, Local1)
3042                            Decrement (Local1)
3043                            LDRS (0x02, 0x70, Local0)
3044                            LDRS (0x02, 0x74, Local1)
3045                            LDRS (0x02, 0x60, ADRM)
3046                            LDRS (0x02, 0x61, ADRL)
3047                            LDRS (0x02, 0x30, 0x01)
3048                        }
3049                    }
3050                }
3051
3052                Device (EC0)
3053                {
3054                    Name (_HID, EisaId ("PNP0C09"))
3055                    Name (_CRS, ResourceTemplate ()
3056                    {
3057                        IO (Decode16, 0x0062, 0x0062, 0x01, 0x01)
3058                        IO (Decode16, 0x0066, 0x0066, 0x01, 0x01)
3059                    })
3060                    Name (_GPE, 0x01)
3061                    Name (SEL0, 0xF0)
3062                    Name (BFLG, 0x00)
3063                    Method (_REG, 2, NotSerialized)
3064                    {
3065                        If (LEqual (Arg0, 0x03))
3066                        {
3067                            Store (Arg1, ECEN)
3068                        }
3069                    }
3070
3071                    OperationRegion (ERAM, EmbeddedControl, 0x00, 0xFF)
3072                    Field (ERAM, ByteAcc, Lock, Preserve)
3073                    {
3074                        Offset (0x04),
3075                        CMCM,   8,
3076                        CMD1,   8,
3077                        CMD2,   8,
3078                        CMD3,   8,
3079                        Offset (0x18),
3080                        SMPR,   8,
3081                        SMST,   8,
3082                        SMAD,   8,
3083                        SMCM,   8,
3084                        SMD0,   256,
3085                        BCNT,   8,
3086                        SMAA,   8,
3087                        S1D0,   8,
3088                        S1D1,   8,
3089                        SM2A,   8,
3090                        S2D0,   8,
3091                        S2D1,   8,
3092                        SM3A,   8,
3093                        LIDS,   1,
3094                        DV1S,   1,
3095                        EXFD,   1,
3096                        RFSW,   1,
3097                            ,   1,
3098                        CRTS,   1,
3099                        SLPS,   1,
3100                        DCKS,   1,
3101                        EJBS,   1,
3102                            ,   1,
3103                            ,   1,
3104                            ,   1,
3105                            ,   1,
3106                            ,   1,
3107                        DV2S,   1,
3108                        DV3S,   1,
3109                        WK10,   16,
3110                        EVTP,   16,
3111                        BTM3,   8,
3112                        DCID,   8,
3113                        DPWR,   1,
3114                        UDR0,   1,
3115                        UDR5,   1,
3116                        EQBF,   1,
3117                        LDDS,   1,
3118                        CRST,   1,
3119                        DCWT,   1,
3120                        QVCC,   1,
3121                        HP4D,   8,
3122                        WAKP,   16,
3123                        POLL,   1,
3124                        ADP,    1,
3125                        ALRT,   1,
3126                        B1WE,   1,
3127                        B1WS,   1,
3128                        B2WE,   1,
3129                        B2WS,   1,
3130                        BWAK,   1,
3131                        PWRE,   1,
3132                        ALLB,   1,
3133                        AUXB,   1,
3134                        S2DR,   1,
3135                        S5FG,   1,
3136                        F1B5,   1,
3137                        F1B6,   1,
3138                        RSMA,   1,
3139                        S1LD,   1,
3140                        S2LD,   1,
3141                        ACWR,   1,
3142                        PTSV,   3,
3143                        PMEE,   1,
3144                        ENCB,   1,
3145                        F3B0,   1,
3146                        F3B1,   1,
3147                        RFLD,   1,
3148                        F3B3,   1,
3149                        SW8B,   1,
3150                        LAON,   1,
3151                        MDON,   1,
3152                        F3B7,   1,
3153                        TMSS,   2,
3154                        OSMD,   1,
3155                        F4B3,   1,
3156                        BANK,   4,
3157                        CTMP,   8,
3158                        S2DC,   8,
3159                        BPD,    8,
3160                        BT1I,   16,
3161                        BT1C,   16,
3162                        BT1V,   16,
3163                        BT1S,   8,
3164                        BT2I,   16,
3165                        BT2C,   16,
3166                        BT2V,   16,
3167                        BT2S,   8,
3168                            ,   4,
3169                        LIDB,   1,
3170                        Offset (0x67),
3171                        TTMP,   8,
3172                        HPCB,   8,
3173                        B2LC,   8,
3174                        BTEC,   8,
3175                        UBDM,   4,
3176                        UBPC,   3,
3177                        Offset (0x6C),
3178                        BTCS,   8,
3179                        BMDL,   8,
3180                        CBDM,   4,
3181                        CBPC,   3,
3182                        Offset (0x6F),
3183                        HP6F,   8,
3184                        HP70,   8,
3185                        HP71,   8,
3186                        RSMT,   16,
3187                        HP74,   8,
3188                        HP75,   8,
3189                            ,   1,
3190                            ,   1,
3191                            ,   1,
3192                        UPP1,   1,
3193                        UPP2,   1,
3194                            ,   1,
3195                            ,   1,
3196                        BTOF,   1,
3197                        SUSB,   1,
3198                        SUSC,   1,
3199                        CPWR,   1,
3200                        CBTN,   1,
3201                        FAN,    1,
3202                        IWOL,   1,
3203                        EWOR,   1,
3204                        S4IN,   1,
3205                        FANL,   16,
3206                        QU7A,   8,
3207                        QU7B,   8,
3208                        QU7C,   8,
3209                        QU7D,   8,
3210                        QU7E,   8,
3211                        QU7F,   8
3212                    }
3213
3214                    Field (ERAM, ByteAcc, NoLock, Preserve)
3215                    {
3216                        Offset (0x1C),
3217                        SMW0,   16
3218                    }
3219
3220                    Field (ERAM, ByteAcc, NoLock, Preserve)
3221                    {
3222                        Offset (0x1C),
3223                        SMB0,   8
3224                    }
3225
3226                    Field (ERAM, ByteAcc, NoLock, Preserve)
3227                    {
3228                        Offset (0x1C),
3229                        FLD0,   64
3230                    }
3231
3232                    Field (ERAM, ByteAcc, NoLock, Preserve)
3233                    {
3234                        Offset (0x1C),
3235                        FLD1,   128
3236                    }
3237
3238                    Field (ERAM, ByteAcc, NoLock, Preserve)
3239                    {
3240                        Offset (0x1C),
3241                        FLD2,   192
3242                    }
3243
3244                    Field (ERAM, ByteAcc, NoLock, Preserve)
3245                    {
3246                        Offset (0x1C),
3247                        FLD3,   256
3248                    }
3249
3250                    Mutex (CMUT, 0x00)
3251                    Method (CMC2, 3, NotSerialized)
3252                    {
3253                        Acquire (CMUT, 0xFFFF)
3254                        Store (Arg2, CMD2)
3255                        Store (Arg1, CMD1)
3256                        Store (Arg0, CMCM)
3257                        While (CMCM) {}
3258                        Release (CMUT)
3259                    }
3260
3261                    Mutex (MUT0, 0x00)
3262                    Mutex (MUT1, 0x00)
3263                    Method (SMRD, 4, NotSerialized)
3264                    {
3265                        If (LNot (ECOK ()))
3266                        {
3267                            Return (0xFF)
3268                        }
3269
3270                        If (LNot (LEqual (Arg0, 0x07)))
3271                        {
3272                            If (LNot (LEqual (Arg0, 0x09)))
3273                            {
3274                                If (LNot (LEqual (Arg0, 0x0B)))
3275                                {
3276                                    Return (0x19)
3277                                }
3278                            }
3279                        }
3280
3281                        Acquire (MUT0, 0xFFFF)
3282                        Store (0x04, Local0)
3283                        While (LGreater (Local0, 0x01))
3284                        {
3285                            And (SMST, 0x40, SMST)
3286                            Store (Arg2, SMCM)
3287                            Store (Arg1, SMAD)
3288                            Store (Arg0, SMPR)
3289                            While (LNot (And (SMST, 0xBF, Local1)))
3290                            {
3291                                Sleep (0x02)
3292                            }
3293
3294                            If (LEqual (Local1, 0x80))
3295                            {
3296                                Store (0x00, Local0)
3297                            }
3298                            Else
3299                            {
3300                                Decrement (Local0)
3301                            }
3302                        }
3303
3304                        If (Local0)
3305                        {
3306                            Store (And (Local1, 0x1F), Local0)
3307                        }
3308                        Else
3309                        {
3310                            If (LEqual (Arg0, 0x07))
3311                            {
3312                                Store (SMB0, Arg3)
3313                            }
3314
3315                            If (LEqual (Arg0, 0x09))
3316                            {
3317                                Store (SMW0, Arg3)
3318                            }
3319
3320                            If (LEqual (Arg0, 0x0B))
3321                            {
3322                                Store (BCNT, Local3)
3323                                ShiftRight (0x0100, 0x03, Local2)
3324                                If (LGreater (Local3, Local2))
3325                                {
3326                                    Store (Local2, Local3)
3327                                }
3328
3329                                If (LLess (Local3, 0x09))
3330                                {
3331                                    Store (FLD0, Local2)
3332                                }
3333                                Else
3334                                {
3335                                    If (LLess (Local3, 0x11))
3336                                    {
3337                                        Store (FLD1, Local2)
3338                                    }
3339                                    Else
3340                                    {
3341                                        If (LLess (Local3, 0x19))
3342                                        {
3343                                            Store (FLD2, Local2)
3344                                        }
3345                                        Else
3346                                        {
3347                                            Store (FLD3, Local2)
3348                                        }
3349                                    }
3350                                }
3351
3352                                Increment (Local3)
3353                                Store (Buffer (Local3) {}, Local4)
3354                                Decrement (Local3)
3355                                Store (Zero, Local5)
3356                                While (LGreater (Local3, Local5))
3357                                {
3358                                    GBFE (Local2, Local5, RefOf (Local6))
3359                                    PBFE (Local4, Local5, Local6)
3360                                    Increment (Local5)
3361                                }
3362
3363                                PBFE (Local4, Local5, 0x00)
3364                                Store (Local4, Arg3)
3365                            }
3366                        }
3367
3368                        Release (MUT0)
3369                        Return (Local0)
3370                    }
3371
3372                    Method (SMWR, 4, NotSerialized)
3373                    {
3374                        If (LNot (ECOK ()))
3375                        {
3376                            Return (0xFF)
3377                        }
3378
3379                        If (LNot (LEqual (Arg0, 0x06)))
3380                        {
3381                            If (LNot (LEqual (Arg0, 0x08)))
3382                            {
3383                                If (LNot (LEqual (Arg0, 0x0A)))
3384                                {
3385                                    Return (0x19)
3386                                }
3387                            }
3388                        }
3389
3390                        Acquire (MUT0, 0xFFFF)
3391                        Store (0x04, Local0)
3392                        While (LGreater (Local0, 0x01))
3393                        {
3394                            If (LEqual (Arg0, 0x06))
3395                            {
3396                                Store (Arg3, SMB0)
3397                            }
3398
3399                            If (LEqual (Arg0, 0x08))
3400                            {
3401                                Store (Arg3, SMW0)
3402                            }
3403
3404                            If (LEqual (Arg0, 0x0A))
3405                            {
3406                                Store (Arg3, SMD0)
3407                            }
3408
3409                            And (SMST, 0x40, SMST)
3410                            Store (Arg2, SMCM)
3411                            Store (Arg1, SMAD)
3412                            Store (Arg0, SMPR)
3413                            While (LNot (And (SMST, 0xBF, Local1)))
3414                            {
3415                                Sleep (0x02)
3416                            }
3417
3418                            If (LEqual (Local1, 0x80))
3419                            {
3420                                Store (0x00, Local0)
3421                            }
3422                            Else
3423                            {
3424                                Decrement (Local0)
3425                            }
3426                        }
3427
3428                        If (Local0)
3429                        {
3430                            Store (And (Local1, 0x1F), Local0)
3431                        }
3432
3433                        Release (MUT0)
3434                        Return (Local0)
3435                    }
3436
3437                    Name (ACFL, 0x00)
3438                    Method (SMSL, 0, NotSerialized)
3439                    {
3440                        Store ("CMBatt - SMSL", Debug)
3441                        If (LNot (ECOK ()))
3442                        {
3443                            Return (0xFF)
3444                        }
3445
3446                        Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
3447                        If (LNot (\_SB.PCI0.ISA.EC0.SMRD (0x09, 0x14, 0x01, RefOf (Local0))))
3448                        {
3449                            Store (Local0, SEL0)
3450                            Store (SEL0, Debug)
3451                            If (LEqual (ALRT, 0x01))
3452                            {
3453                                \_SB.BAT1.IVBI ()
3454                                \_SB.BAT1.IVBS ()
3455                                Store (0x00, ALRT)
3456                            }
3457
3458                            Store (\_SB.ACAD.CHAC (SEL0), Local1)
3459                            Store (\_SB.BAT1.CHBP (SEL0), Local2)
3460                            Or (SEL0, 0x0FFF, Local0)
3461                            SMWR (0x08, 0x14, 0x01, Local0)
3462                            If (LAnd (Local1, \_SB.ACAD.ACP))
3463                            {
3464                                Store ("CMBatt - Notify(ACAD,0x80): AC_Inserted", Debug)
3465                                Notify (\_SB.ACAD, 0x80)
3466                                Store (0x02, ACFL)
3467                            }
3468
3469                            If (And (0x04, Local2))
3470                            {
3471                                \_SB.BAT1.B1CK ()
3472                            }
3473
3474                            If (And (0x02, Local2))
3475                            {
3476                                \_SB.BAT1.B1ST ()
3477                            }
3478
3479                            If (And (0x01, Local2))
3480                            {
3481                                \_SB.BAT1.B1IF ()
3482                            }
3483
3484                            If (LAnd (Local1, LNot (\_SB.ACAD.ACP)))
3485                            {
3486                                Store ("CMBatt - Notify(ACAD, 0x80): AC_Removed", Debug)
3487                                Notify (\_SB.ACAD, 0x80)
3488                                Store (0x01, ACFL)
3489                            }
3490                        }
3491
3492                        Store (0x3C, Local4)
3493                        If (\_SB.BAT1.REPT)
3494                        {
3495                            Store (0x02, Local4)
3496                        }
3497
3498                        If (BFLG)
3499                        {
3500                            Store (0x01, Local5)
3501                            While (LNot (And (BFLG, 0x01)))
3502                            {
3503                                Increment (Local5)
3504                                ShiftRight (BFLG, 0x01, BFLG)
3505                            }
3506
3507                            ShiftRight (BFLG, 0x01, BFLG)
3508                            If (LGreater (Local4, Local5))
3509                            {
3510                                Store (Local5, Local4)
3511                            }
3512                        }
3513
3514                        Store (Local4, BPD)
3515                        BPOL ()
3516                        Release (\_SB.PCI0.ISA.EC0.MUT1)
3517                        If (ACFL)
3518                        {
3519                            Decrement (ACFL)
3520                            Store (0x00, ACFL)
3521                        }
3522                    }
3523
3524                    Name (PSTA, 0x00)
3525                    Method (CPOL, 0, NotSerialized)
3526                    {
3527                        If (LEqual (PSTA, 0x00))
3528                        {
3529                            If (ECOK ())
3530                            {
3531                                BPOL ()
3532                                Store (0x01, PSTA)
3533                            }
3534                        }
3535                    }
3536
3537                    Method (BPOL, 0, NotSerialized)
3538                    {
3539                        Store (0x01, POLL)
3540                    }
3541
3542                    Method (_Q09, 0, NotSerialized)
3543                    {
3544                        Store ("QUERY_09", Debug)
3545                        Store (0x09, PDEB)
3546                        SMSL ()
3547                    }
3548
3549                    Method (_Q0D, 0, NotSerialized)
3550                    {
3551                        Store (0x0D, PDEB)
3552                        Notify (\_SB.SLPB, 0x80)
3553                    }
3554
3555                    Method (_Q0E, 0, NotSerialized)
3556                    {
3557                        Store (0x0E, PDEB)
3558                        Z004 ()
3559                    }
3560
3561                    Method (_Q0F, 0, NotSerialized)
3562                    {
3563                        Store (0x0F, PDEB)
3564                        If (\_SB.LID.LCDB)
3565                        {
3566                            Store (Zero, Local0)
3567                            Store (Zero, \_SB.LID.LCDB)
3568                        }
3569                        Else
3570                        {
3571                            Store (One, Local0)
3572                            Store (One, \_SB.LID.LCDB)
3573                        }
3574
3575                        Acquire (\_SB.PSMX, 0xFFFF)
3576                        Store (0x80, \_SB.BCMD)
3577                        Store (0x06, \_SB.DID)
3578                        Store (Local0, \_SB.INFO)
3579                        Store (Zero, \_SB.SMIC)
3580                        Release (\_SB.PSMX)
3581                    }
3582
3583                    Method (_Q12, 0, NotSerialized)
3584                    {
3585                        Store (0x12, PDEB)
3586                        Store (One, Local0)
3587                        Store (One, \_SB.LID.LCDB)
3588                        Acquire (\_SB.PSMX, 0xFFFF)
3589                        Store (0x80, \_SB.BCMD)
3590                        Store (0x06, \_SB.DID)
3591                        Store (Local0, \_SB.INFO)
3592                        Store (Zero, \_SB.SMIC)
3593                        Release (\_SB.PSMX)
3594                    }
3595
3596                    Method (_Q13, 0, NotSerialized)
3597                    {
3598                        Store (0x13, PDEB)
3599                        Acquire (\_SB.PSMX, 0xFFFF)
3600                        Store (0x80, \_SB.BCMD)
3601                        Store (0x00, \_SB.DID)
3602                        Store (0x01, \_SB.INFO)
3603                        Store (Zero, \_SB.SMIC)
3604                        Release (\_SB.PSMX)
3605                    }
3606
3607                    Method (_Q14, 0, NotSerialized)
3608                    {
3609                        Store (0x14, PDEB)
3610                        Acquire (\_SB.PSMX, 0xFFFF)
3611                        Store (0x80, \_SB.BCMD)
3612                        Store (0x00, \_SB.DID)
3613                        Store (0x00, \_SB.INFO)
3614                        Store (Zero, \_SB.SMIC)
3615                        Release (\_SB.PSMX)
3616                    }
3617
3618                    Method (_Q15, 0, NotSerialized)
3619                    {
3620                        Store (0x15, PDEB)
3621                    }
3622
3623                    Method (_Q20, 0, NotSerialized)
3624                    {
3625                        Store (0x20, PDEB)
3626                        Store ("QUERY_20", Debug)
3627                        If (And (SMST, 0x40))
3628                        {
3629                            Store (SMAA, Local0)
3630                            If (LEqual (Local0, 0x14))
3631                            {
3632                                And (SMST, 0xBF, SMST)
3633                                If (PWRE)
3634                                {
3635                                    Store ("CMBatt - PwrEvent", Debug)
3636                                    Store (0x00, PWRE)
3637                                    Store (0x12, BFLG)
3638                                    Store (0x00, BPD)
3639                                    BPOL ()
3640                                }
3641                            }
3642                        }
3643                    }
3644
3645                    Method (_Q80, 0, NotSerialized)
3646                    {
3647                        Store (0x80, PDEB)
3648                    }
3649
3650                    Method (_Q8B, 0, NotSerialized)
3651                    {
3652                        Store (0x8B, PDEB)
3653                        If (\_SB.ACAD.ACP)
3654                        {
3655                            \_SB.Z000 (0x92)
3656                        }
3657                    }
3658
3659                    Method (_Q8C, 0, NotSerialized)
3660                    {
3661                        Store (0x8C, PDEB)
3662                        Store (0x01, \_PR.CPU0._PPC)
3663                        Notify (\_PR.CPU0, 0x80)
3664                        Sleep (0x07D0)
3665                        Store (0x00, \_PR.CPU0._PPC)
3666                        Notify (\_PR.CPU0, 0x80)
3667                    }
3668
3669                    Method (_Q8E, 0, NotSerialized)
3670                    {
3671                        Store (0x8E, DEBG)
3672                        SMSL ()
3673                        Notify (\_SB.BAT1, 0x80)
3674                    }
3675
3676                    Method (Z004, 0, NotSerialized)
3677                    {
3678                        Store ("Hot-Keys: ----- _Q0C", Debug)
3679                        If (LEqual (\_SB.PCI0.AGP.VGA.SWIT, 0x00))
3680                        {
3681                            Acquire (\_SB.PSMX, 0xFFFF)
3682                            Store (0x80, \_SB.BCMD)
3683                            Store (0x01, \_SB.DID)
3684                            Store (Zero, \_SB.SMIC)
3685                            Release (\_SB.PSMX)
3686                            Store (\_SB.INF, Local0)
3687                            Increment (\_SB.PCI0.AGP.VGA.TOGF)
3688                            While (LNot (LEqual (And (Local0, \_SB.PCI0.AGP.VGA.TOGF), \_SB.PCI0.AGP.VGA.TOGF)))
3689                            {
3690                                Increment (\_SB.PCI0.AGP.VGA.TOGF)
3691                                If (LGreater (\_SB.PCI0.AGP.VGA.TOGF, 0x04))
3692                                {
3693                                    Store (One, \_SB.PCI0.AGP.VGA.TOGF)
3694                                }
3695                            }
3696
3697                            Store (\_SB.PCI0.AGP.VGA.TOGF, Local0)
3698                            If (LEqual (Local0, 0x02))
3699                            {
3700                                Store ("LCD", Debug)
3701                                Store (Zero, \_SB.PCI0.AGP.VGA.CRTA)
3702                                Store (One, \_SB.PCI0.AGP.VGA.LCDA)
3703                                Store (Zero, \_SB.PCI0.AGP.VGA.TVA)
3704                            }
3705
3706                            If (LEqual (Local0, 0x01))
3707                            {
3708                                Store ("CRT", Debug)
3709                                Store (One, \_SB.PCI0.AGP.VGA.CRTA)
3710                                Store (Zero, \_SB.PCI0.AGP.VGA.LCDA)
3711                                Store (Zero, \_SB.PCI0.AGP.VGA.TVA)
3712                            }
3713
3714                            If (LEqual (Local0, 0x03))
3715                            {
3716                                Store ("Both", Debug)
3717                                Store (One, \_SB.PCI0.AGP.VGA.CRTA)
3718                                Store (One, \_SB.PCI0.AGP.VGA.LCDA)
3719                                Store (Zero, \_SB.PCI0.AGP.VGA.TVA)
3720                            }
3721
3722                            If (LEqual (Local0, 0x04))
3723                            {
3724                                Store ("TV", Debug)
3725                                Store (Zero, \_SB.PCI0.AGP.VGA.TOGF)
3726                                Store (Zero, \_SB.PCI0.AGP.VGA.CRTA)
3727                                Store (Zero, \_SB.PCI0.AGP.VGA.LCDA)
3728                                Store (One, \_SB.PCI0.AGP.VGA.TVA)
3729                            }
3730
3731                            Notify (\_SB.PCI0.AGP.VGA, 0x80)
3732                        }
3733                        Else
3734                        {
3735                        }
3736                    }
3737                }
3738            }
3739
3740            Device (AGP)
3741            {
3742                Name (_ADR, 0x00010000)
3743                Device (VGA)
3744                {
3745                    Name (_ADR, 0x00)
3746                    Name (DABL, 0x00)
3747                    Name (SWIT, 0x01)
3748                    Name (CRTA, 0x01)
3749                    Name (LCDA, 0x01)
3750                    Name (TVA, 0x00)
3751                    Name (TOGF, 0x00)
3752                    Name (_S3D, 0x03)
3753                    Method (_INI, 0, NotSerialized)
3754                    {
3755                        Acquire (\_SB.PSMX, 0xFFFF)
3756                        Store (0x80, \_SB.BCMD)
3757                        Store (0x03, \_SB.DID)
3758                        Store (Zero, \_SB.SMIC)
3759                        Release (\_SB.PSMX)
3760                        Store (\_SB.INF, Local0)
3761                        Store (Local0, DABL)
3762                        Store (Local0, Local1)
3763                        Store (Local0, Local2)
3764                        And (Local1, 0x01, CRTA)
3765                        And (Local1, 0x02, LCDA)
3766                        If (LGreater (Local0, 0x04))
3767                        {
3768                            And (Local0, 0x03, TOGF)
3769                        }
3770                        Else
3771                        {
3772                            Store (Local0, TOGF)
3773                        }
3774                    }
3775
3776                    Method (_DOS, 1, NotSerialized)
3777                    {
3778                        Store ("VGA --_DOS Arg0", Debug)
3779                        Store (Arg0, SWIT)
3780                    }
3781
3782                    Method (_DOD, 0, NotSerialized)
3783                    {
3784                        Store ("VGA --_DOD", Debug)
3785                        Return (Package (0x03)
3786                        {
3787                            0x00010100,
3788                            0x00010110,
3789                            0x0200
3790                        })
3791                    }
3792
3793                    Method (_PS0, 0, NotSerialized)
3794                    {
3795                        Store ("VGA_PS0", Debug)
3796                    }
3797
3798                    Method (_PS2, 0, NotSerialized)
3799                    {
3800                        Store ("VGA_PS2", Debug)
3801                    }
3802
3803                    Method (_PS3, 0, NotSerialized)
3804                    {
3805                        Store ("VGA_PS3", Debug)
3806                    }
3807
3808                    Device (CRT)
3809                    {
3810                        Name (_ADR, 0x0100)
3811                        Method (_DCS, 0, NotSerialized)
3812                        {
3813                            Store ("CRT --_DCS", Debug)
3814                            If (CRTA)
3815                            {
3816                                Return (0x1F)
3817                            }
3818                            Else
3819                            {
3820                                Return (0x1D)
3821                            }
3822                        }
3823
3824                        Method (_DGS, 0, NotSerialized)
3825                        {
3826                            Store ("CRT --_DGS", Debug)
3827                            Store (CRTA, Local0)
3828                            If (CRTA)
3829                            {
3830                                Return (0x01)
3831                            }
3832                            Else
3833                            {
3834                                Return (0x00)
3835                            }
3836                        }
3837
3838                        Method (_DSS, 1, NotSerialized)
3839                        {
3840                            Store ("CRT --_DSS", Debug)
3841                            Store (Arg0, Debug)
3842                        }
3843                    }
3844
3845                    Device (LCD)
3846                    {
3847                        Name (_ADR, 0x0110)
3848                        Method (_DCS, 0, NotSerialized)
3849                        {
3850                            Store ("LCD --_DCS", Debug)
3851                            If (LCDA)
3852                            {
3853                                Return (0x1F)
3854                            }
3855                            Else
3856                            {
3857                                Return (0x1D)
3858                            }
3859                        }
3860
3861                        Method (_DGS, 0, NotSerialized)
3862                        {
3863                            Store ("LCD --_DGS", Debug)
3864                            Store (LCDA, Local0)
3865                            If (LCDA)
3866                            {
3867                                Return (0x01)
3868                            }
3869                            Else
3870                            {
3871                                Return (0x00)
3872                            }
3873                        }
3874
3875                        Method (_DSS, 1, NotSerialized)
3876                        {
3877                            Store ("LCD --_DSS", Debug)
3878                            Store (Arg0, Debug)
3879                        }
3880                    }
3881
3882                    Device (TV)
3883                    {
3884                        Name (_ADR, 0x0200)
3885                        Method (_DCS, 0, NotSerialized)
3886                        {
3887                            Store ("TV --_DCS", Debug)
3888                            If (TVA)
3889                            {
3890                                Return (0x1F)
3891                            }
3892                            Else
3893                            {
3894                                Return (0x1D)
3895                            }
3896                        }
3897
3898                        Method (_DGS, 0, NotSerialized)
3899                        {
3900                            Store ("TV --_DGS", Debug)
3901                            Store (TVA, Local0)
3902                            If (TVA)
3903                            {
3904                                Return (0x01)
3905                            }
3906                            Else
3907                            {
3908                                Return (0x00)
3909                            }
3910                        }
3911
3912                        Method (_DSS, 1, NotSerialized)
3913                        {
3914                            Store ("TV --_DSS", Debug)
3915                            Store (Arg0, Debug)
3916                        }
3917                    }
3918                }
3919            }
3920
3921            Name (REGT, Package (0x15)
3922            {
3923                0x10,
3924                0x20,
3925                0x21,
3926                0x22,
3927                0x23,
3928                0x33,
3929                0x34,
3930                0x35,
3931                0x36,
3932                0x37,
3933                0x47,
3934                0x48,
3935                0x49,
3936                0x4A,
3937                0x4B,
3938                0x4C,
3939                0x5C,
3940                0x5D,
3941                0x5E,
3942                0x5F,
3943                0x6F
3944            })
3945            Name (DMTT, Package (0x07)
3946            {
3947                0x0F,
3948                0x14,
3949                0x1E,
3950                0x2D,
3951                0x3C,
3952                0x4B,
3953                0x78
3954            })
3955            Name (PIOT, Package (0x07)
3956            {
3957                0x0258,
3958                0x017F,
3959                0xF0,
3960                0xB4,
3961                0x78,
3962                0x5A,
3963                0x00
3964            })
3965            Device (IDE)
3966            {
3967                Name (_ADR, 0x00110001)
3968                OperationRegion (PCI, PCI_Config, 0x48, 0x60)
3969                Field (PCI, DWordAcc, NoLock, Preserve)
3970                {
3971                    SDR1,   8,
3972                    SDR0,   8,
3973                    PDR1,   8,
3974                    PDR0,   8,
3975                    SDST,   4,
3976                    PDST,   4,
3977                    Offset (0x08),
3978                    UDMS,   16,
3979                    UDMP,   16
3980                }
3981
3982                Name (Z005, 0x00)
3983                Name (Z006, 0x00)
3984                Method (_PS3, 0, NotSerialized)
3985                {
3986                    And (^UDMP, 0x10, ^Z005)
3987                    And (^UDMS, 0x10, ^Z006)
3988                }
3989
3990                Method (_PS0, 0, NotSerialized)
3991                {
3992                    If (^Z005)
3993                    {
3994                        Or (^UDMP, ^Z005, Local0)
3995                        Or (Local0, ShiftLeft (^Z005, 0x08), ^UDMP)
3996                    }
3997
3998                    If (^Z006)
3999                    {
4000                        Or (^UDMS, ^Z006, Local0)
4001                        Or (Local0, ShiftLeft (^Z006, 0x08), ^UDMS)
4002                    }
4003                }
4004
4005                Method (GIDX, 1, NotSerialized)
4006                {
4007                    If (LEqual (Arg0, 0x00))
4008                    {
4009                        Store (0x00, Local1)
4010                    }
4011                    Else
4012                    {
4013                        If (LEqual (Arg0, 0x0E))
4014                        {
4015                            Store (0x06, Local1)
4016                        }
4017                        Else
4018                        {
4019                            Add (ShiftRight (Arg0, 0x01), 0x01, Local1)
4020                        }
4021                    }
4022
4023                    Return (Local1)
4024                }
4025
4026                Method (RIDX, 1, NotSerialized)
4027                {
4028                    Store (0x00, Local0)
4029                    While (NAnd (LLess (Local0, 0x07), LEqual (DerefOf (Index (^^DMTT, Local0)), Arg0)))
4030                    {
4031                        Increment (Local0)
4032                    }
4033
4034                    If (Local0)
4035                    {
4036                        If (LGreater (Local0, 0x06))
4037                        {
4038                            Store (0x0E, Local0)
4039                        }
4040                        Else
4041                        {
4042                            Subtract (ShiftLeft (Local0, 0x01), 0x01, Local0)
4043                            If (LNot (LEqual (Local0, 0x01)))
4044                            {
4045                                Decrement (Local0)
4046                            }
4047                        }
4048                    }
4049
4050                    Return (Local0)
4051                }
4052
4053                Method (GTM, 3, NotSerialized)
4054                {
4055                    Store (Buffer (0x14) {}, Local0)
4056                    CreateDWordField (Local0, 0x00, PIO0)
4057                    CreateDWordField (Local0, 0x04, DMA0)
4058                    CreateDWordField (Local0, 0x08, PIO1)
4059                    CreateDWordField (Local0, 0x0C, DMA1)
4060                    CreateDWordField (Local0, 0x10, FLAG)
4061                    Store (Zero, FLAG)
4062                    Or (FLAG, 0x10, FLAG)
4063                    Add (And (Arg1, 0x0F), ShiftRight (Arg1, 0x04), Local1)
4064                    Add (Local1, 0x02, Local1)
4065                    Multiply (Local1, 0x1E, PIO0)
4066                    Or (FLAG, 0x02, FLAG)
4067                    Add (And (Arg2, 0x0F), ShiftRight (Arg2, 0x04), Local1)
4068                    Add (Local1, 0x02, Local1)
4069                    Multiply (Local1, 0x1E, PIO1)
4070                    Or (FLAG, 0x08, FLAG)
4071                    And (Arg0, 0x0F, Local1)
4072                    If (And (Arg0, 0xE0))
4073                    {
4074                        Or (FLAG, 0x04, FLAG)
4075                        Store (^GIDX (Local1), Local1)
4076                    }
4077                    Else
4078                    {
4079                        Store (0x06, Local1)
4080                    }
4081
4082                    Store (DerefOf (Index (^^DMTT, Local1)), DMA1)
4083                    ShiftRight (And (Arg0, 0x0F00), 0x08, Local1)
4084                    If (And (Arg0, 0xE000))
4085                    {
4086                        Or (FLAG, 0x01, FLAG)
4087                        Store (^GIDX (Local1), Local1)
4088                    }
4089                    Else
4090                    {
4091                        Store (0x06, Local1)
4092                    }
4093
4094                    Store (DerefOf (Index (^^DMTT, Local1)), DMA0)
4095                    Return (Local0)
4096                }
4097
4098                Method (STM, 3, NotSerialized)
4099                {
4100                    Store (Buffer (0x05) {}, Local7)
4101                    CreateWordField (Local7, 0x00, UDMT)
4102                    CreateWordField (Local7, 0x02, PIOT)
4103                    CreateByteField (Local7, 0x04, R4CT)
4104                    CreateDWordField (Arg0, 0x00, PIO0)
4105                    CreateDWordField (Arg0, 0x04, DMA0)
4106                    CreateDWordField (Arg0, 0x08, PIO1)
4107                    CreateDWordField (Arg0, 0x0C, DMA1)
4108                    CreateDWordField (Arg0, 0x10, FLAG)
4109                    Store (FLAG, Local4)
4110                    Store (0x0E0E, Local1)
4111                    If (And (Local4, 0x01))
4112                    {
4113                        And (Local1, 0x0F, Local1)
4114                        Store (^RIDX (DMA0), Local3)
4115                        Or (Local3, 0xE0, Local3)
4116                        Or (ShiftLeft (Local3, 0x08), Local1, Local1)
4117                    }
4118
4119                    If (And (Local4, 0x04))
4120                    {
4121                        And (Local1, 0xFF00, Local1)
4122                        Store (^RIDX (DMA1), Local3)
4123                        Or (Local3, 0xE0, Local3)
4124                        Or (Local3, Local1, Local1)
4125                    }
4126
4127                    Store (Local1, UDMT)
4128                    Store (0x0A, Local2)
4129                    If (And (Local4, 0x02))
4130                    {
4131                        Divide (PIO0, 0x1E, , Local3)
4132                        Subtract (Local3, 0x03, Local3)
4133                        If (LLess (Local3, 0x0C))
4134                        {
4135                            And (Local2, 0x03, Local2)
4136                            Or (Local2, 0x04, Local2)
4137                        }
4138
4139                        Store (ShiftLeft (DerefOf (Index (^^REGT, Local3)), 0x08), Local6)
4140                    }
4141                    Else
4142                    {
4143                        Store (0x00, Local6)
4144                    }
4145
4146                    If (And (Local4, 0x08))
4147                    {
4148                        Divide (PIO1, 0x1E, , Local3)
4149                        Subtract (Local3, 0x03, Local3)
4150                        If (LLess (Local3, 0x0C))
4151                        {
4152                            And (Local2, 0x0C, Local2)
4153                            Or (Local2, 0x01, Local2)
4154                        }
4155
4156                        Store (DerefOf (Index (^^REGT, Local3)), Local6)
4157                    }
4158                    Else
4159                    {
4160                        Store (And (Local6, 0xFF00), Local6)
4161                    }
4162
4163                    Store (Local2, R4CT)
4164                    Store (Local6, PIOT)
4165                    Return (Local7)
4166                }
4167
4168                Method (GTF, 3, NotSerialized)
4169                {
4170                    If (Arg2)
4171                    {
4172                        Store (Buffer (0x07)
4173                            {
4174                                0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
4175                            }, Local7)
4176                    }
4177                    Else
4178                    {
4179                        Store (Buffer (0x07)
4180                            {
4181                                0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
4182                            }, Local7)
4183                    }
4184
4185                    CreateByteField (Local7, 0x01, MODE)
4186                    Add (And (Arg0, 0x0F), ShiftRight (Arg0, 0x04), Local1)
4187                    Add (Local1, 0x02, Local1)
4188                    Multiply (Local1, 0x1E, Local0)
4189                    Store (Match (^^PIOT, MLT, Local0, MTR, 0x00, 0x00), Local1)
4190                    If (Local1)
4191                    {
4192                        Decrement (Local1)
4193                    }
4194
4195                    If (And (Arg1, 0xE0))
4196                    {
4197                        Store (^GIDX (And (Arg1, 0x0F)), Local0)
4198                        If (LGreater (Local0, 0x06))
4199                        {
4200                            Store (0x00, Local0)
4201                        }
4202                        Else
4203                        {
4204                            Subtract (0x06, Local0, Local0)
4205                        }
4206
4207                        Or (Local0, 0x40, MODE)
4208                    }
4209                    Else
4210                    {
4211                        Or (Local1, 0x08, MODE)
4212                    }
4213
4214                    Concatenate (Local7, Local7, Local6)
4215                    Or (Local1, 0x08, MODE)
4216                    Concatenate (Local6, Local7, Local5)
4217                    Return (Local5)
4218                }
4219
4220                Device (PRIM)
4221                {
4222                    Name (_ADR, 0x00)
4223                    Method (_GTM, 0, NotSerialized)
4224                    {
4225                        Store ("GTM - Primary Controller", Debug)
4226                        Store (^^GTM (^^UDMP, ^^PDR0, ^^PDR1), Local0)
4227                        Return (Local0)
4228                    }
4229
4230                    Method (_STM, 3, NotSerialized)
4231                    {
4232                        Store ("STM - Primary Controller", Debug)
4233                        Store (^^STM (Arg0, Arg1, Arg2), Local0)
4234                        CreateWordField (Local0, 0x00, UDMA)
4235                        CreateWordField (Local0, 0x02, PIOM)
4236                        CreateByteField (Local0, 0x04, ADST)
4237                        Store (Or (UDMA, And (^^UDMP, 0x1010)), ^^UDMP)
4238                        Store (And (PIOM, 0xFF), Local1)
4239                        If (Local1)
4240                        {
4241                            Store (Local1, ^^PDR1)
4242                        }
4243
4244                        ShiftRight (PIOM, 0x08, Local1)
4245                        If (Local1)
4246                        {
4247                            Store (Local1, ^^PDR0)
4248                        }
4249
4250                        Store (ADST, ^^PDST)
4251                    }
4252
4253                    Device (MAST)
4254                    {
4255                        Name (_ADR, 0x00)
4256                        Method (_GTF, 0, NotSerialized)
4257                        {
4258                            Store ("GTF - Primary Master", Debug)
4259                            ShiftRight (^^^UDMP, 0x08, Local0)
4260                            Store (^^^GTF (^^^PDR0, Local0, 0x01), Local0)
4261                            Return (Local0)
4262                        }
4263                    }
4264
4265                    Device (SLAV)
4266                    {
4267                        Name (_ADR, 0x01)
4268                        Method (_GTF, 0, NotSerialized)
4269                        {
4270                            Store ("GTF - Primary Slave", Debug)
4271                            Store (^^^GTF (^^^PDR1, ^^^UDMP, 0x00), Local0)
4272                            Return (Local0)
4273                        }
4274                    }
4275                }
4276
4277                Device (SECN)
4278                {
4279                    Name (_ADR, 0x01)
4280                    Method (_GTM, 0, NotSerialized)
4281                    {
4282                        Store ("GTM - Secondary Controller", Debug)
4283                        Store (^^GTM (^^UDMS, ^^SDR0, ^^SDR1), Local0)
4284                        Return (Local0)
4285                    }
4286
4287                    Method (_STM, 3, NotSerialized)
4288                    {
4289                        Store ("STM - Secondary Controller", Debug)
4290                        Store (^^STM (Arg0, Arg1, Arg2), Local0)
4291                        CreateWordField (Local0, 0x00, DMAS)
4292                        CreateWordField (Local0, 0x02, PIOS)
4293                        CreateByteField (Local0, 0x04, ADSS)
4294                        Store (Or (DMAS, And (^^UDMS, 0x1010)), ^^UDMS)
4295                        And (PIOS, 0xFF, Local1)
4296                        If (Local1)
4297                        {
4298                            Store (Local1, ^^SDR1)
4299                        }
4300
4301                        ShiftRight (PIOS, 0x08, Local1)
4302                        If (Local1)
4303                        {
4304                            Store (Local1, ^^SDR0)
4305                        }
4306
4307                        Store (ADSS, ^^SDST)
4308                    }
4309
4310                    Device (MAST)
4311                    {
4312                        Name (_ADR, 0x00)
4313                        Method (_GTF, 0, NotSerialized)
4314                        {
4315                            Store ("GTF - Secondary Master", Debug)
4316                            ShiftRight (^^^UDMS, 0x08, Local0)
4317                            Store (^^^GTF (^^^SDR0, Local0, 0x01), Local0)
4318                            Return (Local0)
4319                        }
4320                    }
4321
4322                    Device (SLAV)
4323                    {
4324                        Name (_ADR, 0x01)
4325                        Method (_GTF, 0, NotSerialized)
4326                        {
4327                            Store ("GTF - Secondary Slave", Debug)
4328                            Store (^^^GTF (^^^SDR1, ^^^UDMS, 0x00), Local0)
4329                            Return (Local0)
4330                        }
4331                    }
4332                }
4333            }
4334
4335            Device (USB1)
4336            {
4337                Name (_ADR, 0x00100000)
4338                Method (_STA, 0, NotSerialized)
4339                {
4340                    If (\_SB.PCI0.ISA.ESB1)
4341                    {
4342                        Return (0x00)
4343                    }
4344                    Else
4345                    {
4346                        Return (0x0F)
4347                    }
4348                }
4349
4350                Name (_PRW, Package (0x02)
4351                {
4352                    0x0E,
4353                    0x00
4354                })
4355                Method (_S3D, 0, NotSerialized)
4356                {
4357                    Return (0x02)
4358                }
4359            }
4360
4361            Device (USB2)
4362            {
4363                Name (_ADR, 0x00100001)
4364                Method (_STA, 0, NotSerialized)
4365                {
4366                    If (\_SB.PCI0.ISA.ESB2)
4367                    {
4368                        Return (0x00)
4369                    }
4370                    Else
4371                    {
4372                        Return (0x0F)
4373                    }
4374                }
4375
4376                Name (_PRW, Package (0x02)
4377                {
4378                    0x0E,
4379                    0x00
4380                })
4381                Method (_S3D, 0, NotSerialized)
4382                {
4383                    Return (0x02)
4384                }
4385            }
4386
4387            Device (USB3)
4388            {
4389                Name (_ADR, 0x00100002)
4390                Method (_STA, 0, NotSerialized)
4391                {
4392                    If (\_SB.PCI0.ISA.ESB3)
4393                    {
4394                        Return (0x00)
4395                    }
4396                    Else
4397                    {
4398                        Return (0x0F)
4399                    }
4400                }
4401
4402                Name (_PRW, Package (0x02)
4403                {
4404                    0x0E,
4405                    0x00
4406                })
4407                Method (_S3D, 0, NotSerialized)
4408                {
4409                    Return (0x02)
4410                }
4411            }
4412
4413            Device (USB4)
4414            {
4415                Name (_ADR, 0x00100003)
4416                Method (_STA, 0, NotSerialized)
4417                {
4418                    If (\_SB.PCI0.ISA.ESB4)
4419                    {
4420                        Return (0x00)
4421                    }
4422                    Else
4423                    {
4424                        Return (0x0F)
4425                    }
4426                }
4427
4428                Name (_PRW, Package (0x02)
4429                {
4430                    0x0E,
4431                    0x00
4432                })
4433                Method (_S3D, 0, NotSerialized)
4434                {
4435                    Return (0x02)
4436                }
4437            }
4438
4439            Device (Z007)
4440            {
4441                Name (_ADR, 0x00110005)
4442                OperationRegion (SB75, PCI_Config, 0x00, 0x80)
4443                Field (SB75, ByteAcc, NoLock, Preserve)
4444                {
4445                    Offset (0x2C),
4446                    AD2C,   32,
4447                    Offset (0x42),
4448                        ,   5,
4449                    Z008,   1
4450                }
4451
4452                Method (_STA, 0, NotSerialized)
4453                {
4454                    If (\_SB.PCI0.ISA.AC97)
4455                    {
4456                        Return (0x00)
4457                    }
4458                    Else
4459                    {
4460                        Return (0x0F)
4461                    }
4462                }
4463
4464                Name (Z009, 0x00)
4465                Method (_PS0, 0, NotSerialized)
4466                {
4467                    If (LEqual (^AD2C, 0x00))
4468                    {
4469                        Store (0x01, ^Z008)
4470                        Store (Z009, ^AD2C)
4471                        Store (0x00, ^Z008)
4472                    }
4473                    Else
4474                    {
4475                        Store (^AD2C, Z009)
4476                    }
4477                }
4478
4479                Method (_PS3, 0, NotSerialized)
4480                {
4481                    Store (^AD2C, Z009)
4482                }
4483            }
4484
4485            Device (Z002)
4486            {
4487                Name (_ADR, 0x00110006)
4488                OperationRegion (SB76, PCI_Config, 0x00, 0x80)
4489                Field (SB76, ByteAcc, NoLock, Preserve)
4490                {
4491                    Offset (0x2C),
4492                    MD2C,   32,
4493                    Offset (0x44),
4494                        ,   4,
4495                    Z00A,   1
4496                }
4497
4498                Method (_STA, 0, NotSerialized)
4499                {
4500                    If (\_SB.PCI0.ISA.MC97)
4501                    {
4502                        Return (0x00)
4503                    }
4504                    Else
4505                    {
4506                        Return (0x0F)
4507                    }
4508                }
4509
4510                Name (Z009, 0x00)
4511                Method (_PS0, 0, NotSerialized)
4512                {
4513                    If (LEqual (^MD2C, 0x00))
4514                    {
4515                        Store (0x01, ^Z00A)
4516                        Store (Z009, ^MD2C)
4517                        Store (0x00, ^Z00A)
4518                    }
4519                    Else
4520                    {
4521                        Store (^MD2C, Z009)
4522                    }
4523                }
4524
4525                Method (_PS3, 0, NotSerialized)
4526                {
4527                    Store (^MD2C, Z009)
4528                }
4529
4530                Name (_PRW, Package (0x02)
4531                {
4532                    0x0D,
4533                    0x03
4534                })
4535            }
4536
4537            Device (LAN)
4538            {
4539                Name (_ADR, 0x00120000)
4540                Name (_PRW, Package (0x02)
4541                {
4542                    0x03,
4543                    0x05
4544                })
4545            }
4546
4547            Device (CBUS)
4548            {
4549                Name (_ADR, 0x00070000)
4550            }
4551
4552            Device (IEEE)
4553            {
4554                Name (_ADR, 0x00080000)
4555            }
4556
4557            Device (MINI)
4558            {
4559                Name (_ADR, 0x00090000)
4560            }
4561        }
4562
4563        Mutex (VSMX, 0x00)
4564        Method (Z000, 1, Serialized)
4565        {
4566            Acquire (VSMX, 0xFFFF)
4567            Store (Arg0, \_SB.PCI0.ISA.SCMD)
4568            Release (VSMX)
4569        }
4570
4571        Device (PWRB)
4572        {
4573            Name (_HID, EisaId ("PNP0C0C"))
4574        }
4575
4576        Device (SLPB)
4577        {
4578            Name (_HID, EisaId ("PNP0C0E"))
4579        }
4580
4581        Device (LID)
4582        {
4583            Name (_HID, EisaId ("PNP0C0D"))
4584            Name (LCDB, 0x01)
4585            Method (_LID, 0, NotSerialized)
4586            {
4587                If (\_SB.PCI0.ISA.LIDS)
4588                {
4589                    Return (0x01)
4590                }
4591                Else
4592                {
4593                    Return (0x00)
4594                }
4595            }
4596
4597            Name (_PRW, Package (0x02)
4598            {
4599                0x0B,
4600                0x03
4601            })
4602        }
4603    }
4604}
4605