All pastes #962601 Raw Edit

Untitled

public text v1 · immutable
#962601 ·published 2008-03-29 22:04 UTC
rendered paste body
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20061109
 *
 * Disassembly of dsdt.aml, Sat Mar 22 21:19:14 2008
 *
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x0000377F (14207)
 *     Revision         0x01
 *     OEM ID           "INSYDE"
 *     OEM Table ID     "Caiman"
 *     OEM Revision     0x00001002 (4098)
 *     Creator ID       "INTL"
 *     Creator Revision 0x02002036 (33562678)
 */
DefinitionBlock ("dsdt.aml", "DSDT", 1, "INSYDE", "Caiman", 0x00001002)
{
    Name (VERS, Package (0x03)
    {
        "Project: DEMO", 
        "Date: 03/24/2000", 
        "Vers: 1.00.09"
    })
    Name (USEC, 0x01)
    Name (BFCN, 0x03)
    Name (BTCN, 0x03)
    Name (DMCH, 0x00)
    Name (F_AC, 0x00)
    Name (F_BT, 0x00)
    Name (LCAP, 0x012C)
    Name (LFCC, 0x00)
    Name (DCAP, 0x00)
    Name (DVOT, 0x00)
    Name (CVOT, 0x00)
    Name (PSRT, 0x00)
    Name (BCAP, 0x00)
    Name (BTYP, 0x00)
    Name (BACS, 0x00)
    Name (BFCG, 0x00)
    Name (BTCG, 0x00)
    Name (BSTA, 0x00)
    Name (BCVT, 0x00)
    Name (BTPR, 0x00)
    Name (VSMI, 0x00)
    Name (GDGS, 0x00)
    Name (OSF2, 0x00)
    Name (REGS, Buffer (0x05)
    {
        0x00, 0x00, 0x00, 0x00, 0x00
    })
    CreateByteField (REGS, 0x03, REC)
    Mutex (PSMX, 0x00)
    Method (SMIR, 2, NotSerialized)
    {
        If (LNotEqual (Arg1, 0xFF))
        {
            Acquire (PSMX, 0xFFFF)
        }

        Store (Arg1, MBX0)
        Store (Arg0, APMC)
        Stall (0xFF)
        Store (Arg0, DBGP)
        Store (MBX0, Local0)
        If (LNotEqual (Arg1, 0xFF))
        {
            Release (PSMX)
        }

        Return (Local0)
    }

    Name (MEMS, 0x00)
    Name (VMEM, 0x00)
    Name (DAYA, 0x00)
    Name (MONA, 0x00)
    Scope (\_PR)
    {
        Processor (CPU0, 0x01, 0x00001010, 0x06) {}
    }

    Scope (\_GPE)
    {
        Method (_L02, 0, NotSerialized)
        {
            Noop
        }

        Method (_L04, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB1, 0x02)
        }

        Method (_L05, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.AC97, 0x02)
        }

        Method (_L06, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB3, 0x02)
        }

        Method (_L07, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB2, 0x02)
        }

        Method (_L0B, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.MPC0, 0x02)
        }

        Method (_L0C, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.LAN, 0x02)
        }

        Method (_L0E, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB0, 0x02)
        }
    }

    OperationRegion (PMIO, SystemIO, 0x1000, 0x80)
    Field (PMIO, ByteAcc, NoLock, Preserve)
    {
                Offset (0x06), 
        MBX0,   8, 
                Offset (0x2A), 
        TOTD,   3, 
        TOTE,   1, 
                Offset (0x2B), 
                Offset (0x48), 
        APMC,   8, 
        MX20,   1, 
                Offset (0x4A), 
                Offset (0x61), 
        UB0W,   1, 
        KBCW,   1, 
        A97W,   1, 
        PM_W,   1, 
        MACW,   1, 
        RINW,   1, 
        RTCW,   1, 
        PWBW,   1, 
        CLRS,   1, 
            ,   5, 
        BLED,   2, 
                Offset (0x64), 
            ,   1, 
        CDRT,   1, 
            ,   4, 
        SPK,    1, 
                Offset (0x65), 
            ,   2, 
        CRTI,   1, 
            ,   1, 
            ,   1, 
        PNLV,   1, 
                Offset (0x66), 
            ,   2, 
        CDPW,   1, 
                Offset (0x67), 
                Offset (0x7F), 
            ,   1, 
        UC0,    1, 
        UC1,    1, 
        UC2,    1, 
        UC3,    1, 
                Offset (0x80)
    }

    OperationRegion (\DEBG, SystemIO, 0x80, 0x01)
    Field (\DEBG, ByteAcc, NoLock, Preserve)
    {
        DBGP,   8
    }

    Name (MSIZ, 0x00)
    Name (UTYP, 0x00)
    Name (CMAD, 0x00)
    Name (CMBD, 0x00)
    Name (PTYP, 0x03)
    Name (LPTE, 0x01)
    Name (EMSZ, 0x00)
    Name (WORI, 0x00)
    Name (WOLA, 0x00)
    OperationRegion (BTT0, SystemMemory, 0x04C0, 0x20)
    Field (BTT0, ByteAcc, NoLock, Preserve)
    {
        MBUF,   128, 
                Offset (0x15), 
        OSFG,   4, 
        RTCF,   1, 
                Offset (0x16)
    }

    Field (BTT0, ByteAcc, NoLock, Preserve)
    {
            ,   2, 
        MFCG,   1, 
                Offset (0x01), 
        MTCG,   1, 
                Offset (0x02), 
        MPCT,   8, 
        BPV0,   8, 
        BFC0,   16, 
        BRC0,   16, 
        BDV0,   16, 
        BDC0,   16
    }

    Name (\_S0, Package (0x04)
    {
        0x00, 
        0x00, 
        0x00, 
        0x00
    })
    Name (\_S3, Package (0x04)
    {
        0x03, 
        0x03, 
        0x00, 
        0x00
    })
    Name (\_S4, Package (0x04)
    {
        0x04, 
        0x04, 
        0x00, 
        0x00
    })
    Name (\_S5, Package (0x04)
    {
        0x05, 
        0x05, 
        0x00, 
        0x00
    })
    Method (\_PTS, 1, NotSerialized)
    {
        Store (0x01, SPK)
        Store (0x00, TOTE)
        Store (0x01, CLRS)
        Sleep (0x14)
        Store (0x00, CLRS)
        If (LEqual (Arg0, 0x01))
        {
            Store ("GO S1", Debug)
            Store (0x51, DBGP)
        }
        Else
        {
            If (LEqual (Arg0, 0x03))
            {
                Store (0x01, BLED)
                Store ("GO S3", Debug)
                If (LEqual (OSFG, 0x01))
                {
                    SMIR (0xEC, Or (0xB0, 0x06))
                }
                Else
                {
                    SMIR (0xEC, Or (0xB0, 0x03))
                }
            }
            Else
            {
                If (LEqual (Arg0, 0x04))
                {
                    Store ("GO S4", Debug)
                    Store (0xE8, APMC)
                    If (LNotEqual (OSFG, 0x01))
                    {
                        SMIR (0xEC, Or (0xB0, 0x04))
                    }

                    Store (0x54, DBGP)
                    Store (0x01, MX20)
                }
                Else
                {
                    Store (0x01, MX20)
                    SMIR (0xEC, Or (0xB0, 0x05))
                }
            }
        }
    }

    Method (\_WAK, 1, NotSerialized)
    {
        Store (0x00, SPK)
        If (LNotEqual (RTCW, 0x01))
        {
            Notify (\_SB.SBTN, 0x02)
        }

        If (LEqual (Arg0, 0x01))
        {
            Store ("Wake from S1", Debug)
            Store (0xE1, DBGP)
            Return (0x00)
        }
        Else
        {
            If (LEqual (Arg0, 0x03))
            {
                Store ("Wake from S3", Debug)
                Store (0xE3, DBGP)
                SMIR (0xEC, 0xC0)
                Return (0x00)
            }
            Else
            {
                If (LEqual (Arg0, 0x04))
                {
                    SMIR (0xEC, 0x80)
                    Store (OSF2, OSFG)
                    Return (0x00)
                }
                Else
                {
                    Return (0x00)
                }
            }
        }

        Store (0x01, CLRS)
        Sleep (0x14)
        Store (0x00, CLRS)
    }

    Scope (\_SB)
    {
        Method (_INI, 0, NotSerialized)
        {
            Store (0x00, OSFG)
            If (CondRefOf (_OSI, Local0))
            {
                Store (0x04, OSFG)
            }

            Store (OSFG, OSF2)
        }

        Device (SBTN)
        {
            Name (_HID, EisaId ("PNP0C0E"))
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0B)
            }

            Name (_PRW, Package (0x02)
            {
                0x08, 
                0x04
            })
            Method (_PSW, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Noop
                }
                Else
                {
                    Noop
                }
            }
        }

        Name (LIDK, Ones)
        Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Method (_LID, 0, NotSerialized)
            {
                If (USEC)
                {
                    If (REC)
                    {
                        If (\_SB.PCI0.LPC.EC0.LI_D)
                        {
                            Return (One)
                        }

                        Return (Zero)
                    }
                    Else
                    {
                        Return (One)
                    }
                }
                Else
                {
                    Store (SMIR (0xE4, 0x69), Local0)
                    And (Local0, 0x02, Local0)
                    If (Local0)
                    {
                        Return (One)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
            }
        }

        Device (AC)
        {
            Name (_HID, "ACPI0003")
            Name (_PCL, Package (0x02)
            {
                \_SB, 
                BAT0
            })
            Name (ACFG, 0x00)
            Method (_PSR, 0, NotSerialized)
            {
                If (F_AC)
                {
                    Return (0x00)
                }

                If (USEC)
                {
                    If (REC)
                    {
                        Store (\_SB.PCI0.LPC.EC0.ACST, BACS)
                        XOr (BACS, 0x01, Local0)
                    }
                    Else
                    {
                        Store (0x01, Local0)
                    }
                }
                Else
                {
                    Store (SMIR (0xE4, 0x6A), BACS)
                    ShiftRight (BACS, 0x03, BACS)
                    And (BACS, 0x01, BACS)
                    XOr (BACS, 0x01, Local0)
                }

                Return (Local0)
            }
        }

        Device (BAT0)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_PCL, Package (0x01)
            {
                \_SB
            })
            Method (_STA, 0, NotSerialized)
            {
                If (F_AC)
                {
                    Return (0x1F)
                }

                If (F_BT)
                {
                    Store (0x00, F_BT)
                    Notify (\_SB.BAT0, 0x81)
                    Return (0x0F)
                }

                If (USEC)
                {
                    If (REC)
                    {
                        Store (\_SB.PCI0.LPC.EC0.B1ST, BSTA)
                    }
                    Else
                    {
                        Store (Zero, BSTA)
                    }
                }
                Else
                {
                    And (SMIR (0xE4, 0x51), 0x01, BSTA)
                }

                If (BSTA)
                {
                    Return (0x1F)
                }
                Else
                {
                    Return (0x0F)
                }
            }

            Name (BIFP, Package (0x0D)
            {
                0x01, 
                0x0FA0, 
                0x0FA0, 
                0x01, 
                0x2EE0, 
                0x0140, 
                0xA0, 
                0x64, 
                0x64, 
                "Internal Battery", 
                "", 
                "LiON", 
                "Generic H8 Charger "
            })
            Method (_BIF, 0, NotSerialized)
            {
                If (LNot (BSTA))
                {
                    Return (BIFP)
                }

                If (USEC)
                {
                    If (REC)
                    {
                        ShiftLeft (\_SB.PCI0.LPC.EC0.EFCH, 0x08, LFCC)
                        Or (LFCC, \_SB.PCI0.LPC.EC0.EFCL, LFCC)
                        ShiftLeft (\_SB.PCI0.LPC.EC0.EDVH, 0x08, DVOT)
                        Or (LFCC, \_SB.PCI0.LPC.EC0.EDVL, DVOT)
                        ShiftLeft (\_SB.PCI0.LPC.EC0.EDCH, 0x08, DCAP)
                        Or (LFCC, \_SB.PCI0.LPC.EC0.EDCL, DCAP)
                    }
                }
                Else
                {
                    Acquire (PSMX, 0xFFFF)
                    SMIR (0xE5, 0xFF)
                    Store (BFC0, LFCC)
                    Store (BDV0, DVOT)
                    Store (BDC0, DCAP)
                    Release (PSMX)
                }

                If (Or (Or (LEqual (LFCC, 0xFFFF), LEqual (DCAP, 0xFFFF)), 
                    LEqual (DVOT, 0xFFFF)))
                {
                    If (Or (LGreater (BFCN, 0x03), LLessEqual (BFCN, 0x00)))
                    {
                        Store (0x03, BFCN)
                    }

                    If (Decrement (BFCN))
                    {
                        Sleep (0x0A)
                        Return (0xFFFFFFFF)
                    }
                    Else
                    {
                        Store (DerefOf (Index (BIFP, 0x01)), DCAP)
                        Store (DerefOf (Index (BIFP, 0x02)), LFCC)
                        Store (DerefOf (Index (BIFP, 0x04)), DVOT)
                    }
                }

                Store (0x03, BFCN)
                Store (DCAP, Index (BIFP, 0x01))
                Divide (LFCC, 0x64, Local1, Local0)
                Multiply (Local0, 0x64, LFCC)
                Store (LFCC, Index (BIFP, 0x02))
                Store (DVOT, Index (BIFP, 0x04))
                Multiply (LFCC, 0x0A, Local0)
                Divide (Local0, 0x64, Local0, Local1)
                Store (Local1, Index (BIFP, 0x05))
                Multiply (LFCC, 0x05, Local0)
                Divide (Local0, 0x64, Local0, Local1)
                Store (Local1, Index (BIFP, 0x06))
                Return (BIFP)
            }

            Name (BSTP, Package (0x04)
            {
                0x00, 
                0x04B0, 
                0x012C, 
                0x2710
            })
            Method (_BST, 0, Serialized)
            {
                If (USEC)
                {
                    ShiftLeft (\_SB.PCI0.LPC.EC0.ERCH, 0x08, BCAP)
                    Or (BCAP, \_SB.PCI0.LPC.EC0.ERCL, BCAP)
                    Store (\_SB.PCI0.LPC.EC0.B1CV, BCVT)
                    Store (\_SB.PCI0.LPC.EC0.B1FC, BFCG)
                    Store (\_SB.PCI0.LPC.EC0.B1TC, BTCG)
                    Store (0x0960, BTPR)
                    Store (\_SB.PCI0.LPC.EC0.SOC1, Local0)
                }
                Else
                {
                    Acquire (PSMX, 0xFFFF)
                    SMIR (0xE6, 0xFF)
                    Store (BRC0, BCAP)
                    Store (BPV0, BCVT)
                    Store (MFCG, BFCG)
                    Store (MTCG, BTCG)
                    Store (MPCT, Local0)
                    Release (PSMX)
                }

                If (And (LNotEqual (LFCC, 0xFFFFFFFF), LNotEqual (LFCC, 0xFFFF)
                    ))
                {
                    Multiply (LFCC, Local0, Local0)
                    Divide (Local0, 0x64, Local0, BCAP)
                    If (LLess (BCAP, LFCC))
                    {
                        Increment (BCAP)
                    }
                }

                Store (LCAP, Index (BSTP, 0x02))
                If (F_AC)
                {
                    Store (DerefOf (Index (BSTP, 0x02)), LCAP)
                    Store (DerefOf (Index (BIFP, 0x02)), Local0)
                    Store (Local0, Index (BSTP, 0x02))
                    Store (0x01, Index (BSTP, 0x00))
                    Return (BSTP)
                }

                If (Or (F_AC, LNot (BSTA)))
                {
                    Store (0x01, Index (BSTP, 0x00))
                    Return (BSTP)
                }

                If (LEqual (BCAP, 0xFFFF))
                {
                    If (Or (LGreater (BTCN, 0x03), LLessEqual (BTCN, 0x00)))
                    {
                        Store (0x03, BTCN)
                    }

                    If (Decrement (BTCN))
                    {
                        Return (0xFFFFFFFF)
                    }
                    Else
                    {
                        Store (DerefOf (Index (BSTP, 0x02)), BCAP)
                    }
                }

                Store (0x03, BTCN)
                Store (0x00, Local0)
                If (LEqual (BACS, 0x01))
                {
                    If (LEqual (DMCH, 0x00))
                    {
                        Store (0x01, Local1)
                    }
                    Else
                    {
                        Store (0x02, Local1)
                    }
                }
                Else
                {
                    If (Or (BFCG, BTCG))
                    {
                        Store (0x02, Local1)
                    }
                    Else
                    {
                        If (LEqual (DMCH, 0x00))
                        {
                            Store (0x00, Local1)
                        }
                        Else
                        {
                            Store (0x02, Local1)
                        }
                    }
                }

                Store (Local1, Index (BSTP, 0x00))
                If (LLess (BTPR, 0x8000))
                {
                    Store (BTPR, Local1)
                }
                Else
                {
                    Subtract (0xFFFF, And (BTPR, 0xFFFF), Local1)
                }

                Store (Local1, Index (BSTP, 0x01))
                Store (BCAP, Index (BSTP, 0x02))
                Multiply (BCVT, 0x4E20, Local0)
                Divide (Local0, 0xFF, Local0, CVOT)
                Store (CVOT, Index (BSTP, 0x03))
                Store (DerefOf (Index (BSTP, 0x02)), LCAP)
                Return (BSTP)
            }
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, 0x00)
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }

            OperationRegion (NB00, PCI_Config, 0x00, 0xE0)
            Field (NB00, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x64), 
                    ,   4, 
                SHRE,   3, 
                        Offset (0x65)
            }

            Method (_INI, 0, NotSerialized)
            {
                If (LNotEqual (OSFG, 0x04))
                {
                    Store (SizeOf (_OS), Local0)
                    If (LEqual (Local0, 0x14))
                    {
                        Store (0x03, OSFG)
                        Store (0x00, USEC)
                    }
                    Else
                    {
                        If (LEqual (Local0, 0x27))
                        {
                            Store (0x02, OSFG)
                            Store (0x00, USEC)
                        }
                        Else
                        {
                            Store (0x01, OSFG)
                            Store (0x00, USEC)
                        }
                    }
                }

                Store (OSFG, OSF2)
                Name (CBUF, Buffer (0x10)
                {
                    /* 0000 */    0x17, 0x18, 0x40, 0x49, 0x4A, 0x63, 0x64, 0x7E, 
                    /* 0008 */    0x7F, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Store (MBUF, CBUF)
                CreateField (CBUF, 0x00, 0x10, FL01)
                Store (FL01, MSIZ)
                CreateField (CBUF, 0x10, 0x02, FL02)
                Store (FL02, UTYP)
                CreateField (CBUF, 0x18, 0x03, FL03)
                Store (FL03, CMAD)
                CreateField (CBUF, 0x1C, 0x03, FL04)
                Store (FL04, CMBD)
                CreateField (CBUF, 0x20, 0x02, FL05)
                Store (FL05, PTYP)
                CreateField (CBUF, 0x24, 0x02, FL06)
                Store (FL06, LPTE)
                CreateField (CBUF, 0x28, 0x10, FL07)
                Store (FL07, EMSZ)
                CreateField (CBUF, 0x38, 0x08, FL08)
                CreateField (CBUF, 0x40, 0x08, FL09)
                Store (FL08, DAYA)
                Store (FL09, MONA)
            }

            Name (BCRS, ResourceTemplate ()
            {
                WordBusNumber (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x00FF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0100,             // Length
                    0x00,, )
                IO (Decode16,
                    0x0CF8,             // Range Minimum
                    0x0CF8,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x0CF7,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0CF8,             // Length
                    ,, , TypeStatic)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0D00,             // Range Minimum
                    0xFFFF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0xF300,             // Length
                    ,, , TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000A0000,         // Range Minimum
                    0x000BFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00020000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D8000,         // Range Minimum
                    0x000DFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00008000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x02000000,         // Range Minimum
                    0xFEDFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    0x00,, _Y00, AddressRangeMemory, TypeStatic)
            })
            Name (SBUF, Buffer (0x08)
            {
                /* 0000 */    0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x18, 0x60
            })
            Method (_CRS, 0, NotSerialized)
            {
                Store ("PCI0_CRS", Debug)
                CreateDWordField (BCRS, \_SB.PCI0._Y00._MIN, SMEM)
                CreateDWordField (BCRS, \_SB.PCI0._Y00._LEN, LMEM)
                Add (MSIZ, 0x0400, Local0)
                Multiply (Local0, 0x0400, Local0)
                Multiply (EMSZ, 0x4000, Local1)
                Add (Local0, Local1, MEMS)
                Store (DerefOf (Index (SBUF, SHRE)), Local0)
                ShiftLeft (Local0, 0x14, VMEM)
                Add (MEMS, 0x00, SMEM)
                Subtract (0xFEE00000, SMEM, LMEM)
                Return (BCRS)
            }

            Name (_PRT, Package (0x0D)
            {
                Package (0x04)
                {
                    0x0003FFFF, 
                    0x03, 
                    \_SB.PCI0.LNKH, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    0x02, 
                    \_SB.PCI0.LNKG, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    0x01, 
                    \_SB.PCI0.LNKF, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0003FFFF, 
                    0x00, 
                    \_SB.PCI0.LNKE, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x03, 
                    \_SB.PCI0.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0004FFFF, 
                    0x00, 
                    \_SB.PCI0.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x02, 
                    \_SB.PCI0.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x00, 
                    \_SB.PCI0.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x01, 
                    \_SB.PCI0.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000BFFFF, 
                    0x00, 
                    \_SB.PCI0.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000BFFFF, 
                    0x01, 
                    \_SB.PCI0.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0009FFFF, 
                    0x00, 
                    \_SB.PCI0.LNKB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x01, 
                    \_SB.PCI0.LNKB, 
                    0x00
                }
            })
            Device (USB0)
            {
                Name (_ADR, 0x00030000)
                Method (_STA, 0, NotSerialized)
                {
                    Store (UC0, Local0)
                    If (Local0)
                    {
                        Return (0x00)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x0E, 
                    0x03
                })
                Name (_S3D, 0x02)
            }

            Device (USB1)
            {
                Name (_ADR, 0x00030001)
                Method (_STA, 0, NotSerialized)
                {
                    Store (UC1, Local0)
                    If (Local0)
                    {
                        Return (0x00)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x04, 
                    0x03
                })
                Name (_S3D, 0x02)
            }

            Device (USB2)
            {
                Name (_ADR, 0x00030002)
                Method (_STA, 0, NotSerialized)
                {
                    Store (UC2, Local0)
                    If (Local0)
                    {
                        Return (0x00)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x07, 
                    0x03
                })
                Name (_S3D, 0x02)
            }

            Device (USB3)
            {
                Name (_ADR, 0x00030003)
                Method (_STA, 0, NotSerialized)
                {
                    Store (UC3, Local0)
                    If (Local0)
                    {
                        Return (0x00)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x06, 
                    0x03
                })
                Name (_S3D, 0x02)
            }

            Device (IDEC)
            {
                Name (_ADR, 0x00020005)
                Name (UDMT, Package (0x08)
                {
                    0x78, 
                    0x50, 
                    0x3C, 
                    0x2D, 
                    0x1E, 
                    0x14, 
                    0x0F, 
                    0x00
                })
                Name (UDM5, Package (0x08)
                {
                    0x6B, 
                    0x47, 
                    0x35, 
                    0x14, 
                    0x12, 
                    0x11, 
                    0x00, 
                    0x00
                })
                Name (UDM6, Package (0x08)
                {
                    0x9F, 
                    0x6A, 
                    0x47, 
                    0x25, 
                    0x23, 
                    0x22, 
                    0x21, 
                    0x00
                })
                Name (DMAT, Package (0x04)
                {
                    0x01E0, 
                    0x96, 
                    0x78, 
                    0x00
                })
                Name (MDM5, Package (0x04)
                {
                    0x00019154, 
                    0x6072, 
                    0x4062, 
                    0x00
                })
                Name (MDM6, Package (0x04)
                {
                    0x000221C6, 
                    0xC0A3, 
                    0x5093, 
                    0x00
                })
                Name (PIOT, Package (0x06)
                {
                    0x0258, 
                    0x017F, 
                    0xF0, 
                    0xB4, 
                    0x78, 
                    0x00
                })
                Name (PIO5, Package (0x06)
                {
                    0x0001E1C6, 
                    0x91C4, 
                    0x31C2, 
                    0x9072, 
                    0x4062, 
                    0x00
                })
                Name (PIO6, Package (0x06)
                {
                    0x00028269, 
                    0xC266, 
                    0x4263, 
                    0xC0A3, 
                    0x5093, 
                    0x00
                })
                OperationRegion (CF41, PCI_Config, 0x00, 0xCB)
                Field (CF41, DWordAcc, NoLock, Preserve)
                {
                            Offset (0x40), 
                            Offset (0x57), 
                        ,   6, 
                    RPEN,   1, 
                            Offset (0x58), 
                            Offset (0x70), 
                    PMCS,   4, 
                    PMUS,   8, 
                    PMPS,   20, 
                    PSCS,   4, 
                    PSUS,   8, 
                    PSPS,   20, 
                    SMCS,   4, 
                    SMUS,   8, 
                    SMPS,   20, 
                    SSCS,   4, 
                    SSUS,   8, 
                    SSPS,   20
                }

                Method (STM, 3, NotSerialized)
                {
                    Store (Arg0, Local0)
                    CreateDWordField (Local0, 0x00, PIO0)
                    CreateDWordField (Local0, 0x04, DMA0)
                    CreateDWordField (Local0, 0x08, PIO1)
                    CreateDWordField (Local0, 0x0C, DMA1)
                    CreateDWordField (Local0, 0x10, FLAG)
                    Store (Buffer (0x0C)
                        {
                            0x00
                        }, Local1)
                    CreateByteField (Local1, 0x00, XCS0)
                    CreateByteField (Local1, 0x01, XUM0)
                    CreateDWordField (Local1, 0x02, XTM0)
                    CreateByteField (Local1, 0x06, XCS1)
                    CreateByteField (Local1, 0x07, XUM1)
                    CreateDWordField (Local1, 0x08, XTM1)
                    Store (0x00, XCS0)
                    Store (0x00, XCS1)
                    If (LOr (LEqual (PIO0, 0xFFFFFFFF), LEqual (PIO0, 0x00)))
                    {
                        Store (0x00, XTM0)
                    }
                    Else
                    {
                        Store (0x02, XCS0)
                        Store (Match (^PIOT, MLE, PIO0, MTR, 0x00, 0x00), Local2)
                        If (LAnd (And (FLAG, 0x01), LLess (DMA0, 0x14)))
                        {
                            Store (DerefOf (Index (^PIO6, Local2)), XTM0)
                        }
                        Else
                        {
                            Store (DerefOf (Index (^PIO5, Local2)), XTM0)
                        }
                    }

                    If (LOr (LEqual (PIO1, 0xFFFFFFFF), LEqual (PIO1, 0x00)))
                    {
                        Store (0x00, XTM1)
                    }
                    Else
                    {
                        Store (0x02, XCS1)
                        Store (Match (^PIOT, MLE, PIO1, MTR, 0x00, 0x00), Local2)
                        If (LAnd (And (FLAG, 0x04), LLess (DMA1, 0x14)))
                        {
                            Store (DerefOf (Index (^PIO6, Local2)), XTM1)
                        }
                        Else
                        {
                            Store (DerefOf (Index (^PIO5, Local2)), XTM1)
                        }
                    }

                    If (And (FLAG, 0x01))
                    {
                        Or (XCS0, 0x04, XCS0)
                        Store (Match (^UDMT, MLE, DMA0, MTR, 0x00, 0x00), Local2)
                        If (LLess (DMA0, 0x14))
                        {
                            Store (DerefOf (Index (^UDM6, Local2)), XUM0)
                            Or (XCS0, 0x08, XCS0)
                        }
                        Else
                        {
                            Store (DerefOf (Index (^UDM5, Local2)), XUM0)
                        }
                    }
                    Else
                    {
                        Store (0x00, XUM0)
                    }

                    If (And (FLAG, 0x04))
                    {
                        Or (XCS1, 0x04, XCS1)
                        Store (Match (^UDMT, MLE, DMA1, MTR, 0x00, 0x00), Local2)
                        If (LLess (DMA0, 0x14))
                        {
                            Store (Match (^UDM6, MLE, DMA1, MTR, 0x00, 0x00), Local2)
                            Or (XCS1, 0x08, XCS1)
                        }
                        Else
                        {
                            Store (Match (^UDM5, MLE, DMA1, MTR, 0x00, 0x00), Local2)
                        }
                    }
                    Else
                    {
                        Store (0x00, XUM1)
                    }

                    Return (Local1)
                }

                Method (GTM, 6, NotSerialized)
                {
                    Store (Arg0, Local0)
                    Store (Arg1, Local1)
                    Store (Arg2, Local2)
                    Store (Arg3, Local3)
                    Store (Arg4, Local4)
                    Store (Arg5, Local5)
                    Store (Buffer (0x14)
                        {
                            0x00
                        }, Local6)
                    CreateDWordField (Local6, 0x00, PIO0)
                    CreateDWordField (Local6, 0x04, DMA0)
                    CreateDWordField (Local6, 0x08, PIO1)
                    CreateDWordField (Local6, 0x0C, DMA1)
                    CreateDWordField (Local6, 0x10, FLAG)
                    Store (0x10, FLAG)
                    If (And (Local0, 0x04))
                    {
                        Or (FLAG, 0x01, FLAG)
                        If (And (Local0, 0x08))
                        {
                            Store (Match (^UDM6, MEQ, Local1, MTR, 0x00, 0x00), Local7)
                            Store (DerefOf (Index (^UDMT, Local7)), DMA0)
                        }
                        Else
                        {
                            Store (Match (^UDM5, MEQ, Local1, MTR, 0x00, 0x00), Local7)
                            Store (DerefOf (Index (^UDMT, Local7)), DMA0)
                            If (LLessEqual (DMA0, 0x0F))
                            {
                                Store (Ones, DMA0)
                            }
                        }
                    }
                    Else
                    {
                        Store (Ones, DMA0)
                    }

                    If (And (Local3, 0x04))
                    {
                        Or (FLAG, 0x04, FLAG)
                        If (And (Local3, 0x08))
                        {
                            Store (Match (^UDM6, MEQ, Local4, MTR, 0x00, 0x00), Local7)
                            Store (DerefOf (Index (^UDMT, Local7)), DMA1)
                        }
                        Else
                        {
                            Store (Match (^UDM5, MEQ, Local4, MTR, 0x00, 0x00), Local7)
                            Store (DerefOf (Index (^UDMT, Local7)), DMA1)
                            If (LLessEqual (DMA0, 0x0F))
                            {
                                Store (Ones, DMA0)
                            }
                        }
                    }
                    Else
                    {
                        Store (Ones, DMA1)
                    }

                    If (And (Local0, 0x08))
                    {
                        Store (Match (^PIO6, MEQ, Local2, MTR, 0x00, 0x00), Local7)
                        Store (DerefOf (Index (^PIOT, Local7)), PIO0)
                    }
                    Else
                    {
                        Store (Match (^PIO5, MEQ, Local2, MTR, 0x00, 0x00), Local7)
                        Store (DerefOf (Index (^PIOT, Local7)), PIO0)
                    }

                    If (And (Local3, 0x08))
                    {
                        Store (Match (^PIO6, MEQ, Local5, MTR, 0x00, 0x00), Local7)
                        Store (DerefOf (Index (^PIOT, Local7)), PIO1)
                    }
                    Else
                    {
                        Store (Match (^PIO5, MEQ, Local5, MTR, 0x00, 0x00), Local7)
                        Store (DerefOf (Index (^PIOT, Local7)), PIO1)
                    }

                    If (LEqual (PIO0, 0x00))
                    {
                        Store (Ones, PIO0)
                    }

                    If (LEqual (PIO1, 0x00))
                    {
                        Store (Ones, PIO1)
                    }

                    If (LLessEqual (PIO0, 0xB4))
                    {
                        Or (FLAG, 0x02, FLAG)
                    }
                    Else
                    {
                        Store (Ones, PIO0)
                    }

                    If (LLessEqual (PIO1, 0xB4))
                    {
                        Or (FLAG, 0x08, FLAG)
                    }
                    Else
                    {
                        Store (Ones, PIO1)
                    }

                    Return (Local6)
                }

                Method (GTFX, 4, NotSerialized)
                {
                    Store (Arg0, Local0)
                    Store (Arg1, Local1)
                    Store (Arg2, Local2)
                    Store (Arg3, Local3)
                    Store (Buffer (0x07)
                        {
                            0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                        }, Local4)
                    CreateByteField (Local4, 0x01, MODE)
                    CreateByteField (Local4, 0x05, DSTS)
                    If (Local0)
                    {
                        Or (DSTS, 0x10, DSTS)
                    }

                    If (And (Local1, 0x04))
                    {
                        Or (MODE, 0x40, MODE)
                        If (And (Local1, 0x08))
                        {
                            Store (Match (^UDM6, MEQ, Local2, MTR, 0x00, 0x00), Local5)
                            Or (MODE, Local5, MODE)
                        }
                        Else
                        {
                            Store (Match (^UDM5, MEQ, Local2, MTR, 0x00, 0x00), Local5)
                            Or (MODE, Local5, MODE)
                        }
                    }
                    Else
                    {
                        Or (MODE, 0x08, MODE)
                        If (And (Local1, 0x08))
                        {
                            Store (Match (^PIO6, MEQ, Local3, MTR, 0x00, 0x00), Local5)
                            Or (MODE, Local5, MODE)
                        }
                        Else
                        {
                            Store (Match (^PIO5, MEQ, Local3, MTR, 0x00, 0x00), Local5)
                            Or (MODE, Local5, MODE)
                        }
                    }

                    Return (Local4)
                }

                Device (IDE0)
                {
                    Name (_ADR, 0x00)
                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, Local0)
                        Store (Arg1, Local1)
                        Store (Arg2, Local2)
                        Store (^^STM (Local0, Local1, Local2), Local3)
                        CreateByteField (Local3, 0x00, XCS0)
                        CreateByteField (Local3, 0x01, XUM0)
                        CreateDWordField (Local3, 0x02, XTM0)
                        CreateByteField (Local3, 0x06, XCS1)
                        CreateByteField (Local3, 0x07, XUM1)
                        CreateDWordField (Local3, 0x08, XTM1)
                        Store (XCS0, ^^PMCS)
                        Store (XUM0, ^^PMUS)
                        Store (XTM0, ^^PMPS)
                        Store (XCS1, ^^PSCS)
                        Store (XUM1, ^^PSUS)
                        Store (XTM1, ^^PSPS)
                    }

                    Method (_GTM, 0, NotSerialized)
                    {
                        Store (^^GTM (^^PMCS, ^^PMUS, ^^PMPS, ^^PSCS, ^^PSUS, ^^PSPS), Local0)
                        Return (Local0)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (^^^GTFX (0x00, ^^^PMCS, ^^^PMUS, ^^^PMPS), Local0)
                            Return (Local0)
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (^^^GTFX (0x01, ^^^PSCS, ^^^PSUS, ^^^PSPS), Local0)
                            Return (Local0)
                        }
                    }
                }

                Device (IDE1)
                {
                    Name (_ADR, 0x01)
                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, Local0)
                        Store (Arg1, Local1)
                        Store (Arg2, Local2)
                        Store (^^STM (Local0, Local1, Local2), Local3)
                        CreateByteField (Local3, 0x00, XCS0)
                        CreateByteField (Local3, 0x01, XUM0)
                        CreateDWordField (Local3, 0x02, XTM0)
                        CreateByteField (Local3, 0x06, XCS1)
                        CreateByteField (Local3, 0x07, XUM1)
                        CreateDWordField (Local3, 0x08, XTM1)
                        Store (XCS0, ^^SMCS)
                        Store (XUM0, ^^SMUS)
                        Store (XTM0, ^^SMPS)
                        Store (XCS1, ^^SSCS)
                        Store (XUM1, ^^SSUS)
                        Store (XTM1, ^^SSPS)
                    }

                    Method (_GTM, 0, NotSerialized)
                    {
                        Store (^^GTM (^^SMCS, ^^SMUS, ^^SMPS, ^^SSCS, ^^SSUS, ^^SSPS), Local0)
                        Return (Local0)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (^^^GTFX (0x00, ^^^SMCS, ^^^SMUS, ^^^SMPS), Local0)
                            Return (Local0)
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (^^^GTFX (0x01, ^^^SSCS, ^^^SSUS, ^^^SSPS), Local0)
                            Return (Local0)
                        }
                    }
                }
            }

            Device (AC97)
            {
                Name (_ADR, 0x00020007)
                Name (_PRW, Package (0x02)
                {
                    0x05, 
                    0x03
                })
            }

            Device (MC97)
            {
                Name (_ADR, 0x00020006)
                Name (MPRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
                Method (_PRW, 0, NotSerialized)
                {
                    Return (MPRW)
                }
            }

            Device (LAN)
            {
                Name (_ADR, 0x00040000)
                Name (LPRW, Package (0x02)
                {
                    0x0C, 
                    0x03
                })
                Method (_PRW, 0, NotSerialized)
                {
                    Return (LPRW)
                }
            }

            Device (VPCI)
            {
                Name (_ADR, 0x00010000)
                Name (_PRT, Package (0x01)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x00, 
                        \_SB.PCI0.LNKA, 
                        0x00
                    }
                })
                Device (VGA)
                {
                    Name (_ADR, 0x00)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Method (VENT, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x00))
                        {
                            Store (0x01, \_SB.PCI0.LPC.EC0.F5)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x01))
                            {
                                Store (0x00, \_SB.PCI0.LPC.EC0.F5)
                            }
                        }

                        Store (Arg0, VSMI)
                    }

                    Method (_DOS, 1, NotSerialized)
                    {
                        And (Arg0, 0x03, Local0)
                        VENT (Local0)
                    }

                    Name (_DOD, Package (0x03)
                    {
                        0x0100, 
                        0x00010110, 
                        0x0200
                    })
                    Device (CRT)
                    {
                        Name (_ADR, 0x0100)
                        Name (ACTV, 0x01)
                        Method (_DCS, 0, NotSerialized)
                        {
                            If (ACTV)
                            {
                                Store (0x0F, Local0)
                            }
                            Else
                            {
                                Store (0x0D, Local0)
                            }

                            Return (Local0)
                        }

                        Name (_DGS, 0x01)
                        Name (IDSS, 0x00)
                        Method (_DSS, 1, NotSerialized)
                        {
                            Store (Arg0, IDSS)
                            If (And (Arg0, 0x80000000))
                            {
                                If (LNot (And (Arg0, 0x40000000)))
                                {
                                    ^^SET ()
                                }

                                ^^NEXT ()
                            }
                        }
                    }

                    Device (LCD)
                    {
                        Name (_ADR, 0x0110)
                        Name (ACTV, 0x01)
                        Method (_DCS, 0, NotSerialized)
                        {
                            If (ACTV)
                            {
                                Return (0x1F)
                            }
                            Else
                            {
                                Return (0x1D)
                            }
                        }

                        Name (_DGS, 0x00)
                        Name (IDSS, 0x00)
                        Method (_DSS, 1, NotSerialized)
                        {
                            Store (Arg0, IDSS)
                            If (And (Arg0, 0x80000000))
                            {
                                If (LNot (And (Arg0, 0x40000000)))
                                {
                                    ^^SET ()
                                }

                                ^^NEXT ()
                            }
                        }
                    }

                    Device (TV)
                    {
                        Name (_ADR, 0x0200)
                        Name (ACTV, 0x00)
                        Method (_DCS, 0, NotSerialized)
                        {
                            If (ACTV)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x0D)
                            }
                        }

                        Name (_DGS, 0x01)
                        Name (IDSS, 0x00)
                        Method (_DSS, 1, NotSerialized)
                        {
                            Store (Arg0, IDSS)
                            If (And (Arg0, 0x80000000))
                            {
                                If (LNot (And (Arg0, 0x40000000)))
                                {
                                    ^^SET ()
                                }

                                ^^NEXT ()
                            }
                        }
                    }

                    Method (SET, 0, NotSerialized)
                    {
                        And (^CRT.IDSS, 0x01, ^CRT.ACTV)
                        And (^LCD.IDSS, 0x01, ^LCD.ACTV)
                        And (^TV.IDSS, 0x01, ^TV.ACTV)
                    }

                    Method (NEXT, 0, NotSerialized)
                    {
                        Add (GDGS, 0x01, GDGS)
                        If (LGreater (GDGS, 0x03))
                        {
                            Store (0x00, GDGS)
                        }

                        SDGS (GDGS)
                    }

                    Method (SACT, 1, NotSerialized)
                    {
                        If (And (Arg0, 0x01))
                        {
                            Store (0x01, ^LCD.ACTV)
                        }
                        Else
                        {
                            Store (0x00, ^LCD.ACTV)
                        }

                        If (And (Arg0, 0x02))
                        {
                            Store (0x01, ^CRT.ACTV)
                        }
                        Else
                        {
                            Store (0x00, ^CRT.ACTV)
                        }

                        If (And (Arg0, 0x04))
                        {
                            Store (0x01, ^TV.ACTV)
                        }
                        Else
                        {
                            Store (0x00, ^TV.ACTV)
                        }
                    }

                    Method (BTOO, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            Return (0x00)
                        }

                        If (LEqual (Arg0, 0x02))
                        {
                            Return (0x01)
                        }

                        If (LEqual (Arg0, Or (0x01, 0x02)))
                        {
                            Return (0x02)
                        }

                        If (LEqual (Arg0, 0x04))
                        {
                            Return (0x03)
                        }

                        If (LEqual (Arg0, Or (0x01, 0x04)))
                        {
                            Return (0x04)
                        }

                        If (LEqual (Arg0, Or (0x02, 0x04)))
                        {
                            Return (0x05)
                        }

                        Return (0x06)
                    }

                    Method (OTOB, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x00))
                        {
                            Return (0x01)
                        }

                        If (LEqual (Arg0, 0x01))
                        {
                            Return (0x02)
                        }

                        If (LEqual (Arg0, 0x02))
                        {
                            Return (Or (0x01, 0x02))
                        }

                        If (LEqual (Arg0, 0x03))
                        {
                            Return (0x04)
                        }

                        If (LEqual (Arg0, 0x04))
                        {
                            Return (Or (0x01, 0x04))
                        }

                        If (LEqual (Arg0, 0x05))
                        {
                            Return (Or (0x02, 0x04))
                        }

                        Return (Or (0x01, Or (0x02, 0x04)))
                    }

                    Method (NXTB, 2, NotSerialized)
                    {
                        Store (0x00, Local4)
                        Store (BTOO (Arg0), Local0)
                        While (LLessEqual (Local4, 0x03))
                        {
                            Increment (Local0)
                            If (LGreater (Local0, 0x03))
                            {
                                Store (0x00, Local0)
                            }

                            Store (OTOB (Local0), Local1)
                            If (LEqual (And (Local1, Arg1), Local1))
                            {
                                Return (Local1)
                            }

                            Increment (Local4)
                        }

                        Return (Arg0)
                    }

                    Method (SDGS, 1, NotSerialized)
                    {
                        Store (OTOB (Arg0), Local0)
                        If (And (Local0, 0x01))
                        {
                            Store (0x01, ^LCD._DGS)
                        }
                        Else
                        {
                            Store (0x00, ^LCD._DGS)
                        }

                        If (And (Local0, 0x02))
                        {
                            Store (0x01, ^CRT._DGS)
                        }
                        Else
                        {
                            Store (0x00, ^CRT._DGS)
                        }

                        If (And (Local0, 0x04))
                        {
                            Store (0x01, ^TV._DGS)
                        }
                        Else
                        {
                            Store (0x00, ^TV._DGS)
                        }
                    }

                    Method (SDDS, 1, NotSerialized)
                    {
                        And (ShiftRight (Arg0, 0x04), 0x07, Local0)
                        And (Arg0, 0x07, Local1)
                        SACT (Local1)
                        Store (BTOO (NXTB (Local1, Local0)), GDGS)
                        SDGS (GDGS)
                        If (LNotEqual (^LCD._DGS, 0x00))
                        {
                            SMIR (0xEC, 0x60)
                        }
                    }
                }
            }

            Device (CRD0)
            {
                Name (_ADR, 0x00090000)
            }

            Device (MPC0)
            {
                Name (_ADR, 0x000A0000)
                Name (_PRW, Package (0x02)
                {
                    0x0B, 
                    0x03
                })
            }

            Device (LPC)
            {
                Name (_ADR, 0x00020000)
                OperationRegion (PIRQ, PCI_Config, 0x00, 0x0100)
                Field (\_SB.PCI0.LPC.PIRQ, ByteAcc, NoLock, Preserve)
                {
                            Offset (0x41), 
                    PIRA,   8, 
                    PIRB,   8, 
                    PIRC,   8, 
                    PIRD,   8, 
                            Offset (0x60), 
                    PIRE,   8, 
                    PIRF,   8, 
                    PIRG,   8, 
                    PIRH,   8, 
                            Offset (0x77), 
                    UBC1,   1, 
                    UBC0,   1, 
                            Offset (0x78)
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {0}
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                    })
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0061,             // Range Minimum
                            0x0061,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                    })
                }

                Device (MEM)
                {
                    Name (_HID, EisaId ("PNP0C01"))
                    Name (MCRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly,
                            0xFFF80000,         // Address Base
                            0x00080000,         // Address Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (MCRS)
                    }
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0020,             // Range Minimum
                            0x0020,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A0,             // Range Minimum
                            0x00A0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {2}
                    })
                }

                Device (MAD)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        DMA (Compatibility, BusMaster, Transfer8_16, )
                            {4}
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0081,             // Range Minimum
                            0x0081,             // Range Maximum
                            0x01,               // Alignment
                            0x0F,               // Length
                            )
                        IO (Decode16,
                            0x00C0,             // Range Minimum
                            0x00C0,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                    })
                }

                Device (PNP)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (PCRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x04D0,             // Range Minimum
                            0x04D0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0092,             // Range Minimum
                            0x0092,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0480,             // Range Minimum
                            0x0480,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x002E,             // Range Minimum
                            0x002E,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0080,             // Range Minimum
                            0x0080,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0680,             // Range Minimum
                            0x0680,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                        IO (Decode16,
                            0x077C,             // Range Minimum
                            0x077C,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IO (Decode16,
                            0x0200,             // Range Minimum
                            0x0200,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x1000,             // Range Minimum
                            0x1000,             // Range Maximum
                            0x01,               // Alignment
                            0xFF,               // Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (PCRS)
                    }
                }

                Device (COPR)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x00F0,             // Range Minimum
                            0x00F0,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IRQNoFlags ()
                            {13}
                    })
                }

                Device (PS2M)
                {
                    Name (_HID, EisaId ("PNP0F13"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {12}
                    })
                }

                Device (KBC)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {1}
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                    })
                }

                Device (EC0)
                {
                    Name (_HID, EisaId ("PNP0C09"))
                    Name (_GPE, 0x19)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    OperationRegion (RAM, EmbeddedControl, 0x00, 0xFF)
                    Field (RAM, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x50), 
                        B1NI,   1, 
                        B1CH,   1, 
                        B2CR,   1, 
                        ACCH,   1, 
                        B2NI,   1, 
                        B2CH,   1, 
                        BWAN,   1, 
                        BLOW,   1, 
                        B1ST,   1, 
                        B1SM,   1, 
                        B1FC,   1, 
                        B1DC,   1, 
                                Offset (0x52), 
                        B1TC,   1, 
                        B2TC,   1, 
                                Offset (0x53), 
                        SOC1,   8, 
                        TTE1,   8, 
                        SOC2,   8, 
                        TTE2,   8, 
                        B1CV,   8, 
                        B2CV,   8, 
                        B_PR,   16, 
                        CSTA,   8, 
                        DSTA,   8, 
                                Offset (0x5E), 
                        B0TP,   8, 
                            ,   3, 
                        MPML,   1, 
                        ACPW,   1, 
                        BTPW,   1, 
                        BTRD,   1, 
                        BTGN,   1, 
                                Offset (0x61), 
                                Offset (0x62), 
                                Offset (0x63), 
                                Offset (0x64), 
                                Offset (0x65), 
                                Offset (0x66), 
                        BTP1,   8, 
                        BTP2,   8, 
                        KEYE,   1, 
                        PBNE,   1, 
                        LIDE,   1, 
                        PMEE,   1, 
                        RIGE,   1, 
                                Offset (0x69), 
                            ,   1, 
                        LI_D,   1, 
                                Offset (0x6A), 
                            ,   3, 
                        ACST,   1, 
                                Offset (0x6B), 
                                Offset (0x6C), 
                                Offset (0x6D), 
                        MLED,   8, 
                        ESBB,   8, 
                                Offset (0x70), 
                        EFCH,   8, 
                        EFCL,   8, 
                        ERCH,   8, 
                        ERCL,   8, 
                        EDVH,   8, 
                        EDVL,   8, 
                        EDCH,   8, 
                        EDCL,   8, 
                                Offset (0x7D), 
                        F1,     1, 
                        F2,     1, 
                        F3,     1, 
                        F4,     1, 
                        F5,     1, 
                        F6,     1, 
                        F7,     1, 
                        F8,     1, 
                        F9,     1, 
                        F10,    1, 
                        F11,    1, 
                        F12,    1, 
                                Offset (0x7F), 
                                Offset (0x81), 
                        TREN,   1, 
                        TRET,   1, 
                        BATF,   1, 
                                Offset (0x82)
                    }

                    Name (BEC0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0062,             // Range Minimum
                            0x0062,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0066,             // Range Minimum
                            0x0066,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Store (0x01, REC)
                        Return (BEC0)
                    }

                    Method (_Q08, 0, NotSerialized)
                    {
                    }

                    Name (G_0E, 0x00)
                    Method (_Q0E, 0, NotSerialized)
                    {
                        If (LEqual (VSMI, 0x00))
                        {
                            If (LEqual (G_0E, 0x00))
                            {
                                Store (0x01, G_0E)
                                If (LLessEqual (OSF2, 0x02))
                                {
                                    Store (SMIR (0xEC, 0x90), Local0)
                                    If (LNotEqual (Local0, 0x00))
                                    {
                                        GNBP ()
                                    }

                                    Sleep (0x64)
                                    Store (0x00, Local0)
                                }
                                Else
                                {
                                    Store (SMIR (0xEC, 0x10), Local0)
                                }

                                If (LNotEqual (Local0, 0x00))
                                {
                                    GNBP ()
                                    Store (\_SB.PCI0.VPCI.VGA.BTOO (And (Local0, 0x07)), Local1)
                                    \_SB.PCI0.VPCI.VGA.SDDS (Local0)
                                    If (LNotEqual (Local1, GDGS))
                                    {
                                        Notify (\_SB.PCI0.VPCI.VGA, 0x80)
                                    }
                                }

                                Store (0x00, G_0E)
                            }
                        }
                    }

                    Method (_Q0F, 0, NotSerialized)
                    {
                    }

                    Method (_Q10, 0, NotSerialized)
                    {
                    }

                    Method (_Q13, 0, NotSerialized)
                    {
                    }

                    Method (_Q14, 0, NotSerialized)
                    {
                    }

                    Method (_Q15, 0, NotSerialized)
                    {
                        GNBP ()
                        Notify (\_SB.SBTN, 0x80)
                    }

                    Method (_Q20, 0, NotSerialized)
                    {
                        If (LEqual (OSFG, 0x02))
                        {
                            \_SB.BAT0._STA ()
                            If (LNot (BSTA))
                            {
                                Store (0x01, F_AC)
                                Notify (\_SB.AC, 0x80)
                                Sleep (0x14)
                                Store (0x00, F_AC)
                                Notify (\_SB.AC, 0x80)
                                Notify (\_SB.BAT0, 0x80)
                            }
                            Else
                            {
                                Notify (\_SB.BAT0, 0x80)
                                Notify (\_SB.BAT0, 0x81)
                            }
                        }
                        Else
                        {
                            Notify (\_SB.BAT0, 0x80)
                            Notify (\_SB.BAT0, 0x81)
                        }
                    }

                    Method (_Q21, 0, NotSerialized)
                    {
                        SMIR (0xEC, 0x20)
                        If (LEqual (OSFG, 0x02))
                        {
                            Store (0x01, DMCH)
                        }

                        Notify (\_SB.AC, 0x80)
                        Notify (\_SB.BAT0, 0x80)
                        If (LEqual (OSFG, 0x02))
                        {
                            Sleep (0x64)
                            Store (0x00, DMCH)
                            Notify (\_SB.AC, 0x80)
                            Notify (\_SB.BAT0, 0x80)
                        }
                    }

                    Method (_Q22, 0, NotSerialized)
                    {
                    }

                    Method (_Q25, 0, NotSerialized)
                    {
                        \_SB.BAT0._STA ()
                        If (BSTA)
                        {
                            Notify (\_SB.BAT0, 0x80)
                        }
                    }

                    Method (_Q26, 0, NotSerialized)
                    {
                        Notify (\_SB.BAT0, 0x80)
                        Notify (\_SB.AC, 0x80)
                    }

                    Method (_Q30, 0, NotSerialized)
                    {
                    }

                    Method (_Q31, 0, NotSerialized)
                    {
                    }

                    Method (_Q32, 0, NotSerialized)
                    {
                    }

                    Method (_Q33, 0, NotSerialized)
                    {
                        If (LNotEqual (\_SB.LID._LID (), 0x00))
                        {
                            Sleep (0x01F4)
                        }

                        SMIR (0xEC, 0x70)
                        Notify (\_SB.LID, 0x80)
                    }

                    Method (_Q34, 0, NotSerialized)
                    {
                        Store ("PME Event", Debug)
                    }

                    Method (_Q35, 0, NotSerialized)
                    {
                        If (USEC)
                        {
                            Store (ESBB, Local0)
                        }
                        Else
                        {
                            Store (SMIR (0xE4, 0x6E), Local0)
                        }

                        If (And (Local0, 0x0F))
                        {
                            FindSetRightBit (Local0, Local1)
                            Add (Local1, 0x80, Local1)
                            Notify (\_SB.PCI0.LPC.ESB, Local1)
                        }
                    }

                    Method (_Q40, 0, NotSerialized)
                    {
                        Store (0x00, TOTD)
                    }

                    Method (_Q41, 0, NotSerialized)
                    {
                        Store (0x01, TOTD)
                    }

                    Method (_Q42, 0, NotSerialized)
                    {
                        Store (0x02, TOTD)
                    }

                    Method (_Q43, 0, NotSerialized)
                    {
                        Store (0x03, TOTD)
                    }

                    Method (_Q44, 0, NotSerialized)
                    {
                        Store (0x04, TOTD)
                    }

                    Method (_Q45, 0, NotSerialized)
                    {
                        Store (0x04, TOTD)
                    }

                    Method (_Q46, 0, NotSerialized)
                    {
                        Store (0x06, TOTD)
                    }

                    Method (_Q47, 0, NotSerialized)
                    {
                    }

                    Method (GNBP, 0, NotSerialized)
                    {
                        SMIR (0xEC, 0x30)
                        Sleep (0x17)
                        SMIR (0xEC, 0x40)
                    }
                }

                OperationRegion (N393, SystemIO, 0x2E, 0x02)
                Field (N393, ByteAcc, NoLock, Preserve)
                {
                    INDX,   8, 
                    DATA,   8
                }

                IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                {
                            Offset (0x07), 
                    LDN,    8, 
                            Offset (0x20), 
                    SID,    8, 
                    SCF1,   8, 
                    SCF2,   8, 
                    SCF3,   8, 
                    SCF4,   8, 
                    SCF5,   8, 
                    SCF6,   8, 
                    SCF7,   8, 
                    SCF8,   8, 
                    SCF9,   8, 
                    SCFA,   8, 
                    SCFB,   8, 
                    SCFC,   8, 
                    SCFD,   8, 
                    SCFE,   8, 
                    SCFF,   8, 
                    LDC,    8, 
                            Offset (0x60), 
                    IOBH,   8, 
                    IOBL,   8, 
                            Offset (0x70), 
                    IRQN,   8, 
                    ITS,    8, 
                            Offset (0x74), 
                    DMA0,   8, 
                    DMA1,   8, 
                            Offset (0xF0), 
                    PPMD,   8
                }

                Mutex (MUT0, 0x00)
                Method (UNLK, 0, NotSerialized)
                {
                    Acquire (MUT0, 0x0FFF)
                    Store (0x87, INDX)
                    Store (0x01, INDX)
                    Store (0x55, INDX)
                    Store (0x55, INDX)
                }

                Method (LKUP, 0, NotSerialized)
                {
                    Store (0x02, INDX)
                    Store (0x02, DATA)
                    Release (MUT0)
                }

                Name (DMAP, Package (0x04)
                {
                    0x00, 
                    0x01, 
                    0x02, 
                    0x03
                })
                Device (LPT)
                {
                    Name (_HID, EisaId ("PNP0400"))
                    Method (_UID, 0, NotSerialized)
                    {
                        If (LEqual (PTYP, 0x02))
                        {
                            Return (0x01)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Store ("LPT_EPP_STA", Debug)
                        If (LEqual (LPTE, 0x00))
                        {
                            Return (0x00)
                        }

                        If (LEqual (PTYP, 0x03))
                        {
                            Return (0x00)
                        }

                        Store (0x01, LDN)
                        Store (0x01, DATA)
                        If (LDC)
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x0D)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x01, LDN)
                        Store (0x01, DATA)
                        Store (0x00, LDC)
                        Store (0x00, DATA)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF3, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0378,             // Range Minimum
                                0x0378,             // Range Maximum
                                0x00,               // Alignment
                                0x08,               // Length
                                _Y01)
                            IRQNoFlags (_Y02)
                                {7}
                        })
                        CreateWordField (BUF3, \_SB.PCI0.LPC.LPT._CRS._Y01._MIN, IOLO)
                        CreateWordField (BUF3, \_SB.PCI0.LPC.LPT._CRS._Y01._MAX, IOHI)
                        CreateByteField (BUF3, \_SB.PCI0.LPC.LPT._CRS._Y01._LEN, IOLN)
                        CreateWordField (BUF3, \_SB.PCI0.LPC.LPT._CRS._Y02._INT, IRQM)
                        Store (0x01, LDN)
                        Store (0x01, DATA)
                        Store (IOBH, Local0)
                        ShiftLeft (Local0, 0x08, Local0)
                        Or (Local0, IOBL, Local1)
                        Store (Local1, IOLO)
                        Store (Local1, IOHI)
                        If (LEqual (IOBL, 0xBC))
                        {
                            Store (0x04, IOLN)
                        }
                        Else
                        {
                            Store (0x08, IOLN)
                        }

                        If (LEqual (IRQN, 0x05))
                        {
                            Store (0x20, IRQM)
                        }
                        Else
                        {
                            Store (0x80, IRQM)
                        }

                        Return (BUF3)
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x00,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x0278,             // Range Minimum
                                    0x0278,             // Range Maximum
                                    0x00,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {5}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x03BC,             // Range Minimum
                                    0x03BC,             // Range Maximum
                                    0x00,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            }
                            EndDependentFn ()
                        })
                        Name (BUF1, ResourceTemplate ()
                        {
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x00,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x0278,             // Range Minimum
                                    0x0278,             // Range Maximum
                                    0x00,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {5}
                            }
                            EndDependentFn ()
                        })
                        If (LEqual (PTYP, 0x02))
                        {
                            Return (BUF1)
                        }
                        Else
                        {
                            Return (BUF0)
                        }
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        Store ("LPT_SRS", Debug)
                        Store (Arg0, Debug)
                        CreateWordField (Arg0, 0x02, IOLL)
                        CreateByteField (Arg0, 0x03, IOLH)
                        CreateWordField (Arg0, 0x09, IRQM)
                        Store (0x01, LDN)
                        Store (0x01, DATA)
                        Store (IOLL, IOBL)
                        Store (IOLL, DATA)
                        Store (IOLH, IOBH)
                        Store (IOLH, DATA)
                        If (LEqual (IRQM, 0x20))
                        {
                            Store (0x05, IRQN)
                        }
                        Else
                        {
                            Store (0x07, IRQN)
                        }

                        Store (0x04, DMA0)
                        Store (0x04, DATA)
                        Store (0x01, LDC)
                        Store (0x01, DATA)
                    }
                }

                Device (ECP)
                {
                    Name (_HID, EisaId ("PNP0401"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (LPTE, 0x00))
                        {
                            Return (0x00)
                        }

                        If (LNotEqual (PTYP, 0x03))
                        {
                            Return (0x00)
                        }

                        Store (0x01, LDN)
                        Store (0x01, DATA)
                        If (LDC)
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x0D)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x01, LDN)
                        Store (0x01, DATA)
                        Store (0x00, LDC)
                        Store (0x00, DATA)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Store ("ECP_CRS", Debug)
                        Name (BUF3, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0378,             // Range Minimum
                                0x0378,             // Range Maximum
                                0x00,               // Alignment
                                0x08,               // Length
                                _Y03)
                            IRQNoFlags (_Y04)
                                {7}
                            IO (Decode16,
                                0x0778,             // Range Minimum
                                0x0778,             // Range Maximum
                                0x00,               // Alignment
                                0x04,               // Length
                                _Y05)
                            DMA (Compatibility, NotBusMaster, Transfer8, _Y06)
                                {3}
                        })
                        CreateWordField (BUF3, \_SB.PCI0.LPC.ECP._CRS._Y03._MIN, IOLO)
                        CreateWordField (BUF3, \_SB.PCI0.LPC.ECP._CRS._Y03._MAX, IOHI)
                        CreateByteField (BUF3, \_SB.PCI0.LPC.ECP._CRS._Y03._LEN, IOLN)
                        CreateWordField (BUF3, \_SB.PCI0.LPC.ECP._CRS._Y04._INT, IRQM)
                        CreateWordField (BUF3, \_SB.PCI0.LPC.ECP._CRS._Y05._MIN, I2LO)
                        CreateWordField (BUF3, \_SB.PCI0.LPC.ECP._CRS._Y05._MAX, I2HI)
                        CreateWordField (BUF3, \_SB.PCI0.LPC.ECP._CRS._Y06._DMA, DMAM)
                        Store (0x01, LDN)
                        Store (0x01, DATA)
                        Store (IOBH, Local0)
                        ShiftLeft (Local0, 0x08, Local0)
                        Or (Local0, IOBL, Local1)
                        Store (Local1, IOLO)
                        Store (Local1, IOHI)
                        Add (Local1, 0x0400, Local1)
                        Store (Local1, I2LO)
                        Store (Local1, I2HI)
                        If (LEqual (IOBL, 0xBC))
                        {
                            Store (0x04, IOLN)
                        }
                        Else
                        {
                            Store (0x08, IOLN)
                        }

                        If (LEqual (IRQN, 0x05))
                        {
                            Store (0x20, IRQM)
                        }
                        Else
                        {
                            Store (0x80, IRQM)
                        }

                        And (DMA0, 0x07, Local0)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, DMAM)
                        Return (BUF3)
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x00,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                                IO (Decode16,
                                    0x0778,             // Range Minimum
                                    0x0778,             // Range Maximum
                                    0x00,               // Alignment
                                    0x04,               // Length
                                    )
                                DMA (Compatibility, NotBusMaster, Transfer8, )
                                    {3}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x0278,             // Range Minimum
                                    0x0278,             // Range Maximum
                                    0x00,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {5}
                                IO (Decode16,
                                    0x0678,             // Range Minimum
                                    0x0678,             // Range Maximum
                                    0x00,               // Alignment
                                    0x04,               // Length
                                    )
                                DMA (Compatibility, NotBusMaster, Transfer8, )
                                    {3}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x03BC,             // Range Minimum
                                    0x03BC,             // Range Maximum
                                    0x00,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                                IO (Decode16,
                                    0x07BC,             // Range Minimum
                                    0x07BC,             // Range Maximum
                                    0x00,               // Alignment
                                    0x04,               // Length
                                    )
                                DMA (Compatibility, NotBusMaster, Transfer8, )
                                    {3}
                            }
                            EndDependentFn ()
                            /*** Disassembler: inserted missing EndDependentFn () ***/
                        })
                        Return (BUF0)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        Store ("ECP_SRS", Debug)
                        Store (Arg0, Debug)
                        CreateByteField (Arg0, 0x02, IOLO)
                        CreateByteField (Arg0, 0x03, IOHI)
                        CreateWordField (Arg0, 0x09, IRQM)
                        CreateByteField (Arg0, 0x14, DMAM)
                        Store (0x01, LDN)
                        Store (0x01, DATA)
                        Store (IOHI, IOBH)
                        Store (IOHI, DATA)
                        Store (IOLO, IOBL)
                        Store (IOLO, DATA)
                        FindSetRightBit (IRQM, Local0)
                        Decrement (Local0)
                        Store (Local0, IRQN)
                        Store (Local0, DATA)
                        FindSetRightBit (DMAM, Local0)
                        Decrement (Local0)
                        Store (Local0, DMA0)
                        Store (Local0, DATA)
                        Store (0x01, LDC)
                        Store (0x01, DATA)
                    }
                }

                Device (ESB)
                {
                    Name (_HID, EisaId ("MTC0001"))
                    Method (SLED, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x80)) {}
                        Else
                        {
                            If (LLess (Arg0, 0x03))
                            {
                                Store (Zero, Local0)
                                If (LEqual (Arg0, 0x01))
                                {
                                    Or (Local0, 0x02, Local0)
                                }

                                If (LEqual (Arg0, 0x02))
                                {
                                    Or (Local0, 0x08, Local0)
                                }
                            }
                        }

                        Return (0x00)
                    }
                }
            }

            Device (LNKA)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x01)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared, )
                        {3,4,5,6,10,11}
                })
                Method (_STA, 0, NotSerialized)
                {
                    And (\_SB.PCI0.LPC.PIRA, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Store ("LNKA_STA_09", Debug)
                        Return (0x09)
                    }
                    Else
                    {
                        Store ("LNKA_STA_0B", Debug)
                        Return (0x0B)
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (\_SB.PCI0.LPC.PIRA, 0x80, \_SB.PCI0.LPC.PIRA)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFA, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, _Y07)
                            {}
                    })
                    CreateWordField (BUFA, \_SB.PCI0.LNKA._CRS._Y07._INT, IRA)
                    And (\_SB.PCI0.LPC.PIRA, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRA)
                    }

                    Store (BUFA, Debug)
                    Store ("LNKA_CRS_END", Debug)
                    Return (BUFA)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    CreateWordField (Local0, 0x01, IRQA)
                    FindSetLeftBit (IRQA, Local1)
                    Decrement (Local1)
                    Store (Local1, \_SB.PCI0.LPC.PIRA)
                }
            }

            Device (LNKB)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x02)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared, )
                        {5,10,11}
                })
                Method (_STA, 0, NotSerialized)
                {
                    And (\_SB.PCI0.LPC.PIRB, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Store ("LNKB_STA_09", Debug)
                        Return (0x09)
                    }
                    Else
                    {
                        Store ("LNKB_STA_0B", Debug)
                        Return (0x0B)
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (\_SB.PCI0.LPC.PIRB, 0x80, \_SB.PCI0.LPC.PIRB)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFB, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, _Y08)
                            {}
                    })
                    CreateWordField (BUFB, \_SB.PCI0.LNKB._CRS._Y08._INT, IRB)
                    And (\_SB.PCI0.LPC.PIRB, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRB)
                    }

                    Store (BUFB, Debug)
                    Store ("LNKB_CRS_END", Debug)
                    Return (BUFB)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    CreateWordField (Local0, 0x01, IRQB)
                    FindSetLeftBit (IRQB, Local1)
                    Decrement (Local1)
                    Store (Local1, \_SB.PCI0.LPC.PIRB)
                }
            }

            Device (LNKC)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x03)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared, )
                        {3,4,5,6,10,11}
                })
                Method (_STA, 0, NotSerialized)
                {
                    And (\_SB.PCI0.LPC.PIRC, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Store ("LNKC_STA_09", Debug)
                        Return (0x09)
                    }
                    Else
                    {
                        Store ("LNKC_STA_0B", Debug)
                        Return (0x0B)
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (\_SB.PCI0.LPC.PIRC, 0x80, \_SB.PCI0.LPC.PIRC)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFC, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, _Y09)
                            {}
                    })
                    CreateWordField (BUFC, \_SB.PCI0.LNKC._CRS._Y09._INT, IRC)
                    And (\_SB.PCI0.LPC.PIRC, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRC)
                    }

                    Store (BUFC, Debug)
                    Store ("LNKC_CRS_END", Debug)
                    Return (BUFC)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    CreateWordField (Local0, 0x01, IRQC)
                    FindSetLeftBit (IRQC, Local1)
                    Decrement (Local1)
                    Store (Local1, \_SB.PCI0.LPC.PIRC)
                }
            }

            Device (LNKD)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x04)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared, )
                        {3,4,5,6,10,11}
                })
                Method (_STA, 0, NotSerialized)
                {
                    And (\_SB.PCI0.LPC.PIRD, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Store ("LNKD_STA_09", Debug)
                        Return (0x09)
                    }
                    Else
                    {
                        Store ("LNKD_STA_0B", Debug)
                        Return (0x0B)
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (\_SB.PCI0.LPC.PIRD, 0x80, \_SB.PCI0.LPC.PIRD)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFD, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, _Y0A)
                            {}
                    })
                    CreateWordField (BUFD, \_SB.PCI0.LNKD._CRS._Y0A._INT, IRD)
                    And (\_SB.PCI0.LPC.PIRD, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRD)
                    }

                    Store (BUFD, Debug)
                    Store ("LNKD_CRS_END", Debug)
                    Return (BUFD)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    CreateWordField (Local0, 0x01, IRQD)
                    FindSetLeftBit (IRQD, Local1)
                    Decrement (Local1)
                    Store (Local1, \_SB.PCI0.LPC.PIRD)
                }
            }

            Device (LNKE)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x05)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared, )
                        {3,4,5,6,10}
                })
                Method (_STA, 0, NotSerialized)
                {
                    And (\_SB.PCI0.LPC.PIRE, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Store ("LNKE_STA_09", Debug)
                        Return (0x09)
                    }
                    Else
                    {
                        Store ("LNKE_STA_0B", Debug)
                        Return (0x0B)
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (\_SB.PCI0.LPC.PIRE, 0x80, \_SB.PCI0.LPC.PIRE)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFE, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, _Y0B)
                            {}
                    })
                    CreateWordField (BUFE, \_SB.PCI0.LNKE._CRS._Y0B._INT, IRE)
                    And (\_SB.PCI0.LPC.PIRE, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRE)
                    }

                    Store (BUFE, Debug)
                    Store ("LNKE_CRS_END", Debug)
                    Return (BUFE)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    CreateWordField (Local0, 0x01, IRQE)
                    FindSetLeftBit (IRQE, Local1)
                    Decrement (Local1)
                    Store (Local1, \_SB.PCI0.LPC.PIRE)
                }
            }

            Device (LNKF)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x06)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared, )
                        {3,4,5,6,10}
                })
                Method (_STA, 0, NotSerialized)
                {
                    And (\_SB.PCI0.LPC.PIRF, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Store ("LNKF_STA_09", Debug)
                        Return (0x09)
                    }
                    Else
                    {
                        Store ("LNKF_STA_0B", Debug)
                        Return (0x0B)
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (\_SB.PCI0.LPC.PIRF, 0x80, \_SB.PCI0.LPC.PIRF)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFF, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, _Y0C)
                            {}
                    })
                    CreateWordField (BUFF, \_SB.PCI0.LNKF._CRS._Y0C._INT, IRF)
                    And (\_SB.PCI0.LPC.PIRF, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRF)
                    }

                    Store (BUFF, Debug)
                    Store ("LNKF_CRS_END", Debug)
                    Return (BUFF)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    CreateWordField (Local0, 0x01, IRQF)
                    FindSetLeftBit (IRQF, Local1)
                    Decrement (Local1)
                    Store (Local1, \_SB.PCI0.LPC.PIRF)
                }
            }

            Device (LNKG)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x07)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared, )
                        {3,4,5,6,10}
                })
                Method (_STA, 0, NotSerialized)
                {
                    And (\_SB.PCI0.LPC.PIRG, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Store ("LNKG_STA_09", Debug)
                        Return (0x09)
                    }
                    Else
                    {
                        Store ("LNKG_STA_0B", Debug)
                        Return (0x0B)
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (\_SB.PCI0.LPC.PIRG, 0x80, \_SB.PCI0.LPC.PIRG)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFG, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, _Y0D)
                            {}
                    })
                    CreateWordField (BUFG, \_SB.PCI0.LNKG._CRS._Y0D._INT, IRG)
                    And (\_SB.PCI0.LPC.PIRG, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRG)
                    }

                    Store (BUFG, Debug)
                    Store ("LNKG_CRS_END", Debug)
                    Return (BUFG)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    CreateWordField (Local0, 0x01, IRQG)
                    FindSetLeftBit (IRQG, Local1)
                    Decrement (Local1)
                    Store (Local1, \_SB.PCI0.LPC.PIRG)
                }
            }

            Device (LNKH)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x08)
                Name (_PRS, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared, )
                        {3,4,5,6,10}
                })
                Method (_STA, 0, NotSerialized)
                {
                    And (\_SB.PCI0.LPC.PIRH, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Store ("LNKH_STA_09", Debug)
                        Return (0x09)
                    }
                    Else
                    {
                        Store ("LNKH_STA_0B", Debug)
                        Return (0x0B)
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (\_SB.PCI0.LPC.PIRH, 0x80, \_SB.PCI0.LPC.PIRH)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUFH, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, _Y0E)
                            {}
                    })
                    CreateWordField (BUFH, \_SB.PCI0.LNKH._CRS._Y0E._INT, IRH)
                    And (\_SB.PCI0.LPC.PIRH, 0x8F, Local0)
                    If (LLess (Local0, 0x80))
                    {
                        And (Local0, 0x0F)
                        Store (0x01, Local1)
                        ShiftLeft (Local1, Local0, Local1)
                        Store (Local1, IRH)
                    }

                    Store (BUFH, Debug)
                    Store ("LNKH_CRS_END", Debug)
                    Return (BUFH)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    CreateWordField (Local0, 0x01, IRQH)
                    FindSetLeftBit (IRQH, Local1)
                    Decrement (Local1)
                    Store (Local1, \_SB.PCI0.LPC.PIRH)
                }
            }
        }

        Method (GSMI, 1, NotSerialized)
        {
            Store (Arg0, Local0)
            Store (Local0, MBX0)
            Store (0xE3, APMC)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
        }
    }
}