← Back to team overview

hybrid-graphics-linux team mailing list archive

Re: acpi_call - Lenovo IdeaPad Z370

 

Hi,

Laptop: Lenovo IdeaPad Z370, Debian wheezy, kernel 2.6.38-2-686-bigmem (laptop equipped with 8 GByte RAM)

Attached you can find the following files:
- DSDT.dsl
- z370.sh - a shell-script (modified script for IdeaPad z360 I found in an other posting) for switching off/on my Nvidia Geforce 410, usage: z370.sh [off | on | status]

Switching off Nvidia card reduce current consumption by about 25% while WIFI-chip is active. This results in battery-Life of about 4 hours.

Ouput of "sudo dmidecode -s system-product-name && sudo dmidecode -s system-version":
IdeaPad Z370
Rev 1.0

Output of "lspci -vnnn | perl -lne 'print if /^\d+\:.+(\[\S+\:\S+\])/' | grep VGA": 00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0116] (rev 09) (prog-if 00 [VGA controller]) 01:00.0 VGA compatible controller [0300]: nVidia Corporation Device [10de:1054] (rev ff) (prog-if ff)

Warning: If you try out it, do not switch on Nvidia card, if intel-modul is still active (loaded). If you do so, kernel will hang forever.

Cheers,
Tom







/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20100528
 *
 * Disassembly of DSDT.dat, Mon May 16 18:35:00 2011
 *
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x0000C0C5 (49349)
 *     Revision         0x02
 *     Checksum         0x59
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "CB-01   "
 *     OEM Revision     0x06040000 (100925440)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20060912 (537266450)
 */
DefinitionBlock ("DSDT.aml", "DSDT", 2, "LENOVO", "CB-01   ", 0x06040000)
{
    External (HNOT, MethodObj)    // 1 Arguments
    External (SNXD)
    External (IDAB, MethodObj)    // 0 Arguments
    External (HDOS, MethodObj)    // 0 Arguments
    External (ECST, MethodObj)    // 1 Arguments
    External (TNOT, MethodObj)    // 0 Arguments
    External (PDC7)
    External (PDC6)
    External (PDC5)
    External (PDC4)
    External (PDC3)
    External (PDC2)
    External (PDC1)
    External (PDC0)
    External (CFGD)
    External (\_PR_.CPU7._PPC, MethodObj)    // 0 Arguments
    External (\_PR_.CPU6._PPC, MethodObj)    // 0 Arguments
    External (\_PR_.CPU5._PPC, MethodObj)    // 0 Arguments
    External (\_PR_.CPU4._PPC, MethodObj)    // 0 Arguments
    External (\_PR_.CPU3._PPC, MethodObj)    // 0 Arguments
    External (\_PR_.CPU2._PPC, MethodObj)    // 0 Arguments
    External (\_PR_.CPU1._PPC, MethodObj)    // 0 Arguments
    External (\_PR_.CPU0._PPC)
    External (\_SB_.PCI0.GFX0.DSWR)
    External (\_SB_.PCI0.PEG0.PEGP.DD02)

    Name (SS1, One)
    Name (SS2, Zero)
    Name (SS3, One)
    Name (SS4, One)
    Name (SP2O, 0x4E)
    Name (SP1O, 0x164E)
    Name (IO1B, 0x0600)
    Name (IO1L, 0x70)
    Name (IO2B, 0x0680)
    Name (IO2L, 0x20)
    Name (IO3B, 0x0290)
    Name (IO3L, 0x10)
    Name (SP3O, 0x2E)
    Name (IO4B, 0x0A20)
    Name (IO4L, 0x20)
    Name (MCHB, 0xFED10000)
    Name (MCHL, 0x8000)
    Name (EGPB, 0xFED19000)
    Name (EGPL, 0x1000)
    Name (DMIB, 0xFED18000)
    Name (DMIL, 0x1000)
    Name (IFPB, 0xFED14000)
    Name (IFPL, 0x1000)
    Name (PEBS, 0xF8000000)
    Name (PELN, 0x04000000)
    Name (SMBS, 0x0580)
    Name (SMBL, 0x20)
    Name (PBLK, 0x0410)
    Name (PMBS, 0x0400)
    Name (PMLN, 0x80)
    Name (LVL2, 0x0414)
    Name (LVL3, 0x0415)
    Name (LVL4, 0x0416)
    Name (SMIP, 0xB2)
    Name (GPBS, 0x0500)
    Name (GPLN, 0x80)
    Name (APCB, 0xFEC00000)
    Name (APCL, 0x1000)
    Name (PM30, 0x0430)
    Name (SRCB, 0xFED1C000)
    Name (SRCL, 0x4000)
    Name (HPTB, 0xFED00000)
    Name (HPTC, 0xFED1F404)
    Name (ACPH, 0xDE)
    Name (ASSB, Zero)
    Name (AOTB, Zero)
    Name (AAXB, Zero)
    Name (PEHP, One)
    Name (SHPC, One)
    Name (PEPM, One)
    Name (PEER, One)
    Name (PECS, One)
    Name (DSSP, Zero)
    Name (FHPP, Zero)
    Name (FMBL, One)
    Name (FDTP, 0x02)
    Name (FUPS, 0x03)
    Name (BSH, Zero)
    Name (BEL, One)
    Name (BEH, 0x02)
    Name (BRH, 0x03)
    Name (BTF, 0x04)
    Name (BHC, 0x05)
    Name (BYB, 0x06)
    Name (BPH, 0x07)
    Name (BSHS, 0x08)
    Name (BELS, 0x09)
    Name (BRHS, 0x0A)
    Name (BTFS, 0x0B)
    Name (BEHS, 0x0C)
    Name (BPHS, 0x0D)
    Name (BTL, 0x10)
    Name (BSR, 0x14)
    Name (BOF, 0x20)
    Name (BEF, 0x21)
    Name (BLLE, 0x22)
    Name (BLLC, 0x23)
    Name (BLCA, 0x24)
    Name (BLLS, 0x25)
    Name (BLLP, 0x26)
    Name (BLLD, 0x27)
    Name (BHBE, 0x30)
    Name (BHBC, 0x31)
    Name (BHBN, 0x32)
    Name (BHBM, 0x33)
    Name (TCGM, One)
    Name (TRTP, One)
    Name (WDTE, One)
    Name (TRTD, 0x02)
    Name (TRTI, 0x03)
    Name (PDBR, 0x4D)
    Name (DPPB, 0xFED98000)
    Name (DPPL, 0x8000)
    OperationRegion (GNVS, SystemMemory, 0xBAF9C892, 0x0512)
    Field (GNVS, AnyAcc, Lock, Preserve)
    {
        OSYS,   16, 
        SMIF,   8, 
        PRM0,   8, 
        PRM1,   8, 
        SCIF,   8, 
        PRM2,   8, 
        PRM3,   8, 
        LCKF,   8, 
        PRM4,   8, 
        PRM5,   8, 
        P80D,   32, 
        LIDS,   8, 
        PWRS,   8, 
        DBGS,   8, 
        THOF,   8, 
        ACT1,   8, 
        ACTT,   8, 
        PSVT,   8, 
        TC1V,   8, 
        TC2V,   8, 
        TSPV,   8, 
        CRTT,   8, 
        DTSE,   8, 
        DTS1,   8, 
        DTS2,   8, 
        DTSF,   8, 
                Offset (0x25), 
        REVN,   8, 
                Offset (0x28), 
        APIC,   8, 
        TCNT,   8, 
        PCP0,   8, 
        PCP1,   8, 
        PPCM,   8, 
        PPMF,   32, 
        C67L,   8, 
        NATP,   8, 
        CMAP,   8, 
        CMBP,   8, 
        LPTP,   8, 
        FDCP,   8, 
        CMCP,   8, 
        CIRP,   8, 
        SMSC,   8, 
        W381,   8, 
        SMC1,   8, 
        IGDS,   8, 
        TLST,   8, 
        CADL,   8, 
        PADL,   8, 
        CSTE,   16, 
        NSTE,   16, 
        SSTE,   16, 
        NDID,   8, 
        DID1,   32, 
        DID2,   32, 
        DID3,   32, 
        DID4,   32, 
        DID5,   32, 
        KSV0,   32, 
        KSV1,   8, 
                Offset (0x67), 
        BLCS,   8, 
        BRTL,   8, 
        ALSE,   8, 
        ALAF,   8, 
        LLOW,   8, 
        LHIH,   8, 
                Offset (0x6E), 
        EMAE,   8, 
        EMAP,   16, 
        EMAL,   16, 
                Offset (0x74), 
        MEFE,   8, 
        DSTS,   8, 
                Offset (0x78), 
                Offset (0x7A), 
        MORD,   8, 
        TCGP,   8, 
        PPRP,   32, 
        PPRQ,   8, 
        LPPR,   8, 
        GTF0,   56, 
        GTF2,   56, 
        IDEM,   8, 
        GTF1,   56, 
        BID,    8, 
                Offset (0xAA), 
        ASLB,   32, 
        IBTT,   8, 
        IPAT,   8, 
        ITVF,   8, 
        ITVM,   8, 
        IPSC,   8, 
        IBLC,   8, 
        IBIA,   8, 
        ISSC,   8, 
        I409,   8, 
        I509,   8, 
        I609,   8, 
        I709,   8, 
        IPCF,   8, 
        IDMS,   8, 
        IF1E,   8, 
        HVCO,   8, 
        NXD1,   32, 
        NXD2,   32, 
        NXD3,   32, 
        NXD4,   32, 
        NXD5,   32, 
        NXD6,   32, 
        NXD7,   32, 
        NXD8,   32, 
        GSMI,   8, 
        PAVP,   8, 
                Offset (0xE1), 
        OSCC,   8, 
        NEXP,   8, 
        SBV1,   8, 
        SBV2,   8, 
                Offset (0xEB), 
        DSEN,   8, 
        ECON,   8, 
        GPIC,   8, 
        CTYP,   8, 
        L01C,   8, 
        VFN0,   8, 
        VFN1,   8, 
        VFN2,   8, 
        VFN3,   8, 
        VFN4,   8, 
        VDDD,   8, 
        VGDD,   8, 
        TPID,   8, 
        DB00,   8, 
        DB01,   8, 
        DB02,   8, 
        DB03,   8, 
        DB04,   8, 
        DB05,   8, 
        DB06,   8, 
        DB07,   8, 
        NVGA,   32, 
        NVHA,   32, 
        AMDA,   32, 
        DID6,   32, 
        DID7,   32, 
        DID8,   32, 
        EBAS,   32, 
        CPSP,   32, 
        EECP,   32, 
        EVCP,   32, 
        XBAS,   32, 
        OBS1,   32, 
        OBS2,   32, 
        OBS3,   32, 
        OBS4,   32, 
        OBS5,   32, 
        OBS6,   32, 
        OBS7,   32, 
        OBS8,   32, 
                Offset (0x157), 
        ATMC,   8, 
        PTMC,   8, 
        ATRA,   8, 
        PTRA,   8, 
        PNHM,   32, 
        TBAB,   32, 
        TBAH,   32, 
        RTIP,   8, 
        TSOD,   8, 
        ATPC,   8, 
        PTPC,   8, 
        PFLV,   8, 
        BREV,   8, 
        SGMD,   8, 
        SGFL,   8, 
        PWOK,   8, 
        HLRS,   8, 
        DSEL,   8, 
        ESEL,   8, 
        PSEL,   8, 
        PWEN,   8, 
        PRST,   8, 
        MXD1,   32, 
        MXD2,   32, 
        MXD3,   32, 
        MXD4,   32, 
        MXD5,   32, 
        MXD6,   32, 
        MXD7,   32, 
        MXD8,   32, 
        GBAS,   16, 
                Offset (0x19D), 
        ALFP,   8, 
        IMON,   8, 
        PDTS,   8, 
        PKGA,   8, 
        PAMT,   8, 
        AC0F,   8, 
        AC1F,   8, 
        DTS3,   8, 
        DTS4,   8, 
                Offset (0x1B0), 
        BATL,   8, 
        BATH,   8, 
        BTCM,   8, 
        LALS,   8, 
        BATC,   16, 
        ATMM,   8, 
        ATIN,   32, 
        D3EC,   8, 
                Offset (0x1C0), 
        EDI0,   32, 
                Offset (0x1E0), 
        BATI,   128, 
        ATB0,   8, 
        ATB1,   8, 
        ATB2,   8, 
        ATB3,   8, 
        ATB4,   8, 
        ATB5,   8, 
        ATB6,   8, 
        ATB7,   8, 
        ATB8,   8, 
        ATB9,   8, 
        ATBA,   8, 
        ATBB,   8, 
        ATBC,   8, 
        ATBD,   8, 
        ATBE,   8, 
        ATBF,   8, 
        KKTT,   32
    }

    Scope (_SB)
    {
        Name (PR00, Package (0x1E)
        {
            Package (0x04)
            {
                0x001FFFFF, 
                Zero, 
                LNKF, 
                Zero
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                0x03, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                Zero, 
                LNKH, 
                Zero
            }, 

            Package (0x04)
            {
                0x001AFFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x001BFFFF, 
                Zero, 
                LNKG, 
                Zero
            }, 

            Package (0x04)
            {
                0x0018FFFF, 
                Zero, 
                LNKE, 
                Zero
            }, 

            Package (0x04)
            {
                0x0019FFFF, 
                Zero, 
                LNKE, 
                Zero
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x03, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                0x03, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x03, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                Zero, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                One, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x02, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x03, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x03, 
                LNKD, 
                Zero
            }
        })
        Name (AR00, Package (0x1E)
        {
            Package (0x04)
            {
                0x001FFFFF, 
                Zero, 
                Zero, 
                0x15
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                0x03, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                Zero, 
                Zero, 
                0x17
            }, 

            Package (0x04)
            {
                0x001AFFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x001BFFFF, 
                Zero, 
                Zero, 
                0x16
            }, 

            Package (0x04)
            {
                0x0018FFFF, 
                Zero, 
                Zero, 
                0x14
            }, 

            Package (0x04)
            {
                0x0019FFFF, 
                Zero, 
                Zero, 
                0x14
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x03, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                0x03, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x03, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                Zero, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                One, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x02, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x03, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x03, 
                Zero, 
                0x13
            }
        })
        Name (PR04, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                Zero
            }
        })
        Name (AR04, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x13
            }
        })
        Name (PR05, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKA, 
                Zero
            }
        })
        Name (AR05, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x10
            }
        })
        Name (PR06, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKB, 
                Zero
            }
        })
        Name (AR06, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x11
            }
        })
        Name (PR07, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKC, 
                Zero
            }
        })
        Name (AR07, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x12
            }
        })
        Name (PR08, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                Zero
            }
        })
        Name (AR08, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x13
            }
        })
        Name (PR09, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKA, 
                Zero
            }
        })
        Name (AR09, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x10
            }
        })
        Name (PR0E, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKB, 
                Zero
            }
        })
        Name (AR0E, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x11
            }
        })
        Name (PR0F, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKC, 
                Zero
            }
        })
        Name (AR0F, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x12
            }
        })
        Name (PR02, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                Zero
            }
        })
        Name (AR02, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x13
            }
        })
        Name (PR0A, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKA, 
                Zero
            }
        })
        Name (AR0A, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x10
            }
        })
        Name (PR0B, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKB, 
                Zero
            }
        })
        Name (AR0B, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x11
            }
        })
        Name (PR0C, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKC, 
                Zero
            }
        })
        Name (AR0C, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x12
            }
        })
        Name (PR01, Package (0x0C)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKF, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKG, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKH, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKE, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                Zero, 
                LNKG, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                One, 
                LNKF, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x02, 
                LNKE, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x03, 
                LNKH, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                One, 
                LNKE, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x02, 
                LNKG, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x03, 
                LNKF, 
                Zero
            }
        })
        Name (AR01, Package (0x0C)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x15
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x16
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x17
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x14
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                Zero, 
                Zero, 
                0x16
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                One, 
                Zero, 
                0x15
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x02, 
                Zero, 
                0x14
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x03, 
                Zero, 
                0x17
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                One, 
                Zero, 
                0x14
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x02, 
                Zero, 
                0x16
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x03, 
                Zero, 
                0x15
            }
        })
        Name (PRSA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {1,3,4,5,6,10,11,12,14,15}
        })
        Alias (PRSA, PRSB)
        Alias (PRSA, PRSC)
        Alias (PRSA, PRSD)
        Alias (PRSA, PRSE)
        Alias (PRSA, PRSF)
        Alias (PRSA, PRSG)
        Alias (PRSA, PRSH)
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A08"))
            Name (_CID, EisaId ("PNP0A03"))
            Name (_ADR, Zero)
            Method (^BN00, 0, NotSerialized)
            {
                Return (Zero)
            }

            Method (_BBN, 0, NotSerialized)
            {
                Return (BN00 ())
            }

            Name (_UID, Zero)
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR00 ())
                }

                Return (PR00 ())
            }

            OperationRegion (HBUS, PCI_Config, Zero, 0x0100)
            Field (HBUS, DWordAcc, NoLock, Preserve)
            {
                        Offset (0x40), 
                EPEN,   1, 
                    ,   11, 
                EPBR,   20, 
                        Offset (0x48), 
                MHEN,   1, 
                    ,   14, 
                MHBR,   17, 
                        Offset (0x50), 
                GCLK,   1, 
                        Offset (0x54), 
                D0EN,   1, 
                        Offset (0x60), 
                PXEN,   1, 
                PXSZ,   2, 
                    ,   23, 
                PXBR,   6, 
                        Offset (0x68), 
                DIEN,   1, 
                    ,   11, 
                DIBR,   20, 
                        Offset (0x70), 
                    ,   20, 
                MEBR,   12, 
                        Offset (0x80), 
                    ,   4, 
                PM0H,   2, 
                        Offset (0x81), 
                PM1L,   2, 
                    ,   2, 
                PM1H,   2, 
                        Offset (0x82), 
                PM2L,   2, 
                    ,   2, 
                PM2H,   2, 
                        Offset (0x83), 
                PM3L,   2, 
                    ,   2, 
                PM3H,   2, 
                        Offset (0x84), 
                PM4L,   2, 
                    ,   2, 
                PM4H,   2, 
                        Offset (0x85), 
                PM5L,   2, 
                    ,   2, 
                PM5H,   2, 
                        Offset (0x86), 
                PM6L,   2, 
                    ,   2, 
                PM6H,   2, 
                        Offset (0x87), 
                        Offset (0xA8), 
                    ,   20, 
                TUUD,   19, 
                        Offset (0xBC), 
                    ,   20, 
                TLUD,   12, 
                        Offset (0xC8), 
                    ,   7, 
                HTSE,   1
            }

            OperationRegion (MCHT, SystemMemory, 0xFED10000, 0x1100)
            Field (MCHT, ByteAcc, NoLock, Preserve)
            {
            }

            Name (BUF0, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x00FF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0100,             // Length
                    ,, )
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0x00000CF7,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000CF8,         // Length
                    ,, , TypeStatic)
                IO (Decode16,
                    0x0CF8,             // Range Minimum
                    0x0CF8,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x00000000,         // Granularity
                    0x00000D00,         // Range Minimum
                    0x0000FFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x0000F300,         // 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
                    0x000C0000,         // Range Minimum
                    0x000C3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C4000,         // Range Minimum
                    0x000C7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C8000,         // Range Minimum
                    0x000CBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000CC000,         // Range Minimum
                    0x000CFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D0000,         // Range Minimum
                    0x000D3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D4000,         // Range Minimum
                    0x000D7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D8000,         // Range Minimum
                    0x000DBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000DC000,         // Range Minimum
                    0x000DFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E0000,         // Range Minimum
                    0x000E3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E4000,         // Range Minimum
                    0x000E7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E8000,         // Range Minimum
                    0x000EBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000EC000,         // Range Minimum
                    0x000EFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000F0000,         // Range Minimum
                    0x000FFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00010000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0xFEAFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0xFEB00000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFED40000,         // Range Minimum
                    0xFED44FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xF8C07900,         // Range Minimum
                    0xFEB00000,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x05EF8700,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xF7000000,         // Range Minimum
                    0xF8000000,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x01000000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
            })
            Method (_CRS, 0, Serialized)
            {
                CreateWordField (BUF0, 0x0A, PBMX)
                Store (Subtract (ShiftRight (PELN, 0x14), 0x02), PBMX)
                CreateWordField (BUF0, 0x0E, PBLN)
                Store (Subtract (ShiftRight (PELN, 0x14), One), PBLN)
                If (PM1L)
                {
                    CreateDWordField (BUF0, 0x7C, C0LN)
                    Store (Zero, C0LN)
                }

                If (LEqual (PM1L, One))
                {
                    CreateBitField (BUF0, 0x0358, C0RW)
                    Store (Zero, C0RW)
                }

                If (PM1H)
                {
                    CreateDWordField (BUF0, 0x96, C4LN)
                    Store (Zero, C4LN)
                }

                If (LEqual (PM1H, One))
                {
                    CreateBitField (BUF0, 0x0428, C4RW)
                    Store (Zero, C4RW)
                }

                If (PM2L)
                {
                    CreateDWordField (BUF0, 0xB0, C8LN)
                    Store (Zero, C8LN)
                }

                If (LEqual (PM2L, One))
                {
                    CreateBitField (BUF0, 0x04F8, C8RW)
                    Store (Zero, C8RW)
                }

                If (PM2H)
                {
                    CreateDWordField (BUF0, 0xCA, CCLN)
                    Store (Zero, CCLN)
                }

                If (LEqual (PM2H, One))
                {
                    CreateBitField (BUF0, 0x05C8, CCRW)
                    Store (Zero, CCRW)
                }

                If (PM3L)
                {
                    CreateDWordField (BUF0, 0xE4, D0LN)
                    Store (Zero, D0LN)
                }

                If (LEqual (PM3L, One))
                {
                    CreateBitField (BUF0, 0x0698, D0RW)
                    Store (Zero, D0RW)
                }

                If (PM3H)
                {
                    CreateDWordField (BUF0, 0xFE, D4LN)
                    Store (Zero, D4LN)
                }

                If (LEqual (PM3H, One))
                {
                    CreateBitField (BUF0, 0x0768, D4RW)
                    Store (Zero, D4RW)
                }

                If (PM4L)
                {
                    CreateDWordField (BUF0, 0x0118, D8LN)
                    Store (Zero, D8LN)
                }

                If (LEqual (PM4L, One))
                {
                    CreateBitField (BUF0, 0x0838, D8RW)
                    Store (Zero, D8RW)
                }

                If (PM4H)
                {
                    CreateDWordField (BUF0, 0x0132, DCLN)
                    Store (Zero, DCLN)
                }

                If (LEqual (PM4H, One))
                {
                    CreateBitField (BUF0, 0x0908, DCRW)
                    Store (Zero, DCRW)
                }

                If (PM5L)
                {
                    CreateDWordField (BUF0, 0x014C, E0LN)
                    Store (Zero, E0LN)
                }

                If (LEqual (PM5L, One))
                {
                    CreateBitField (BUF0, 0x09D8, E0RW)
                    Store (Zero, E0RW)
                }

                If (PM5H)
                {
                    CreateDWordField (BUF0, 0x0166, E4LN)
                    Store (Zero, E4LN)
                }

                If (LEqual (PM5H, One))
                {
                    CreateBitField (BUF0, 0x0AA8, E4RW)
                    Store (Zero, E4RW)
                }

                If (PM6L)
                {
                    CreateDWordField (BUF0, 0x0180, E8LN)
                    Store (Zero, E8LN)
                }

                If (LEqual (PM6L, One))
                {
                    CreateBitField (BUF0, 0x0B78, E8RW)
                    Store (Zero, E8RW)
                }

                If (PM6H)
                {
                    CreateDWordField (BUF0, 0x019A, ECLN)
                    Store (Zero, ECLN)
                }

                If (LEqual (PM6H, One))
                {
                    CreateBitField (BUF0, 0x0C48, ECRW)
                    Store (Zero, ECRW)
                }

                If (PM0H)
                {
                    CreateDWordField (BUF0, 0x01B4, F0LN)
                    Store (Zero, F0LN)
                }

                If (LEqual (PM0H, One))
                {
                    CreateBitField (BUF0, 0x0D18, F0RW)
                    Store (Zero, F0RW)
                }

                CreateDWordField (BUF0, 0x01C2, M1MN)
                CreateDWordField (BUF0, 0x01C6, M1MX)
                CreateDWordField (BUF0, 0x01CE, M1LN)
                ShiftLeft (TLUD, 0x14, M1MN)
                Add (Subtract (M1MX, M1MN), One, M1LN)
                Return (BUF0)
            }

            Name (GUID, Buffer (0x10)
            {
                /* 0000 */    0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40, 
                /* 0008 */    0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
            })
            Name (SUPP, Zero)
            Name (CTRL, Zero)
            Method (_OSC, 4, Serialized)
            {
                Store (Arg3, Local0)
                CreateDWordField (Local0, Zero, CDW1)
                CreateDWordField (Local0, 0x04, CDW2)
                CreateDWordField (Local0, 0x08, CDW3)
                If (LAnd (LEqual (Arg0, GUID), NEXP))
                {
                    Store (CDW2, SUPP)
                    Store (CDW3, CTRL)
                    If (Not (And (CDW1, One)))
                    {
                        If (And (CTRL, One))
                        {
                            NHPG ()
                        }

                        If (And (CTRL, 0x04))
                        {
                            NPME ()
                        }
                    }

                    If (LNotEqual (Arg1, One))
                    {
                        Or (CDW1, 0x08, CDW1)
                    }

                    If (LNotEqual (CDW3, CTRL))
                    {
                        Or (CDW1, 0x10, CDW1)
                    }

                    Store (CTRL, CDW3)
                    Store (CTRL, OSCC)
                    Return (Local0)
                }
                Else
                {
                    Or (CDW1, 0x04, CDW1)
                    Return (Local0)
                }
            }

            Scope (\_SB.PCI0)
            {
                Method (AR00, 0, NotSerialized)
                {
                    Return (^^AR00)
                }

                Method (PR00, 0, NotSerialized)
                {
                    Return (^^PR00)
                }

                Method (AR01, 0, NotSerialized)
                {
                    Return (^^AR01)
                }

                Method (PR01, 0, NotSerialized)
                {
                    Return (^^PR01)
                }

                Method (AR02, 0, NotSerialized)
                {
                    Return (^^AR02)
                }

                Method (PR02, 0, NotSerialized)
                {
                    Return (^^PR02)
                }

                Method (AR04, 0, NotSerialized)
                {
                    Return (^^AR04)
                }

                Method (PR04, 0, NotSerialized)
                {
                    Return (^^PR04)
                }

                Method (AR05, 0, NotSerialized)
                {
                    Return (^^AR05)
                }

                Method (PR05, 0, NotSerialized)
                {
                    Return (^^PR05)
                }

                Method (AR06, 0, NotSerialized)
                {
                    Return (^^AR06)
                }

                Method (PR06, 0, NotSerialized)
                {
                    Return (^^PR06)
                }

                Method (AR07, 0, NotSerialized)
                {
                    Return (^^AR07)
                }

                Method (PR07, 0, NotSerialized)
                {
                    Return (^^PR07)
                }

                Method (AR08, 0, NotSerialized)
                {
                    Return (^^AR08)
                }

                Method (PR08, 0, NotSerialized)
                {
                    Return (^^PR08)
                }

                Method (AR09, 0, NotSerialized)
                {
                    Return (^^AR09)
                }

                Method (PR09, 0, NotSerialized)
                {
                    Return (^^PR09)
                }

                Method (AR0A, 0, NotSerialized)
                {
                    Return (^^AR0A)
                }

                Method (PR0A, 0, NotSerialized)
                {
                    Return (^^PR0A)
                }

                Method (AR0B, 0, NotSerialized)
                {
                    Return (^^AR0B)
                }

                Method (PR0B, 0, NotSerialized)
                {
                    Return (^^PR0B)
                }
            }

            Device (P0P1)
            {
                Name (_ADR, 0x001E0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0B, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR01 ())
                    }

                    Return (PR01 ())
                }
            }

            Device (LPCB)
            {
                Name (_ADR, 0x001F0000)
                Scope (\_SB)
                {
                    Device (DBTN)
                    {
                        Name (_HID, EisaId ("PNP0C32"))
                        Name (_UID, One)
                        Method (_STA, 0, NotSerialized)
                        {
                            If (LGreaterEqual (OSYS, 0x07D6))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Method (GHID, 0, NotSerialized)
                        {
                            Return (Buffer (One)
                            {
                                0x01
                            })
                        }
                    }

                    Scope (\_SB)
                    {
                        Method (PHSR, 1, Serialized)
                        {
                            Store (Arg0, BCMD)
                            Store (Zero, DID)
                            Store (Zero, SMIC)
                            If (LEqual (BCMD, Arg0)) {}
                            Store (Zero, BCMD)
                            Store (Zero, DID)
                            Return (Zero)
                        }

                        OperationRegion (SMIP, SystemIO, 0xB2, 0x02)
                        Field (SMIP, WordAcc, NoLock, Preserve)
                        {
                            SMIT,   8, 
                            SMID,   8
                        }

                        OperationRegion (SMI0, SystemIO, 0x0000FE00, 0x00000002)
                        Field (SMI0, AnyAcc, NoLock, Preserve)
                        {
                            SMIC,   8
                        }

                        OperationRegion (SMI1, SystemMemory, 0xBAF9CEBD, 0x00000090)
                        Field (SMI1, AnyAcc, NoLock, Preserve)
                        {
                            BCMD,   8, 
                            DID,    32, 
                            INFO,   1024
                        }

                        Field (SMI1, AnyAcc, NoLock, Preserve)
                        {
                                    AccessAs (ByteAcc, 0x00), 
                                    Offset (0x05), 
                            INF,    8
                        }
                    }

                    OperationRegion (PCI0.LPCB.LPC1, PCI_Config, 0x40, 0xC0)
                    Field (PCI0.LPCB.LPC1, AnyAcc, NoLock, Preserve)
                    {
                                Offset (0x20), 
                        PARC,   8, 
                        PBRC,   8, 
                        PCRC,   8, 
                        PDRC,   8, 
                                Offset (0x28), 
                        PERC,   8, 
                        PFRC,   8, 
                        PGRC,   8, 
                        PHRC,   8
                    }

                    Device (LNKA)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, One)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PARC, 0x80, PARC)
                        }

                        Method (_PRS, 0, Serialized)
                        {
                            Return (PRSA)
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLA, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLA, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PARC, 0x0F), IRQ0)
                            Return (RTLA)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PARC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PARC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKB)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x02)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PBRC, 0x80, PBRC)
                        }

                        Method (_PRS, 0, Serialized)
                        {
                            Return (PRSB)
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLB, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLB, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PBRC, 0x0F), IRQ0)
                            Return (RTLB)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PBRC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PBRC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKC)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x03)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PCRC, 0x80, PCRC)
                        }

                        Method (_PRS, 0, Serialized)
                        {
                            Return (PRSC)
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLC, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLC, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PCRC, 0x0F), IRQ0)
                            Return (RTLC)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PCRC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PCRC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKD)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x04)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PDRC, 0x80, PDRC)
                        }

                        Method (_PRS, 0, Serialized)
                        {
                            Return (PRSD)
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLD, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLD, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PDRC, 0x0F), IRQ0)
                            Return (RTLD)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PDRC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PDRC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKE)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x05)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PERC, 0x80, PERC)
                        }

                        Method (_PRS, 0, Serialized)
                        {
                            Return (PRSE)
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLE, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLE, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PERC, 0x0F), IRQ0)
                            Return (RTLE)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PERC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PERC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKF)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x06)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PFRC, 0x80, PFRC)
                        }

                        Method (_PRS, 0, Serialized)
                        {
                            Return (PRSF)
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLF, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLF, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PFRC, 0x0F), IRQ0)
                            Return (RTLF)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PFRC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PFRC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKG)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x07)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PGRC, 0x80, PGRC)
                        }

                        Method (_PRS, 0, Serialized)
                        {
                            Return (PRSG)
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLG, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLG, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PGRC, 0x0F), IRQ0)
                            Return (RTLG)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PGRC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PGRC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKH)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x08)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PHRC, 0x80, PHRC)
                        }

                        Method (_PRS, 0, Serialized)
                        {
                            Return (PRSH)
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLH, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLH, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PHRC, 0x0F), IRQ0)
                            Return (RTLH)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PHRC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PHRC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }
                }

                OperationRegion (LPC0, PCI_Config, 0x40, 0xC0)
                Field (LPC0, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x40), 
                    IOD0,   8, 
                    IOD1,   8, 
                            Offset (0xB0), 
                    RAEN,   1, 
                        ,   13, 
                    RCBA,   18
                }

                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                        IO (Decode16,
                            0x0081,             // Range Minimum
                            0x0081,             // Range Maximum
                            0x01,               // Alignment
                            0x11,               // Length
                            )
                        IO (Decode16,
                            0x0093,             // Range Minimum
                            0x0093,             // Range Maximum
                            0x01,               // Alignment
                            0x0D,               // Length
                            )
                        IO (Decode16,
                            0x00C0,             // Range Minimum
                            0x00C0,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                        DMA (Compatibility, NotBusMaster, Transfer8_16, )
                            {4}
                    })
                }

                Device (FWHD)
                {
                    Name (_HID, EisaId ("INT0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly,
                            0xFF000000,         // Address Base
                            0x01000000,         // Address Length
                            )
                    })
                }

                Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Name (_UID, Zero)
                    Name (BUF0, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            )
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSYS, 0x07D1))
                        {
                            If (HPAE)
                            {
                                Return (0x0F)
                            }
                        }
                        Else
                        {
                            If (HPAE)
                            {
                                Return (0x0B)
                            }
                        }

                        Return (Zero)
                    }

                    Method (_CRS, 0, Serialized)
                    {
                        If (HPAE)
                        {
                            CreateDWordField (BUF0, 0x04, HPT0)
                            If (LEqual (HPAS, One))
                            {
                                Store (0xFED01000, HPT0)
                            }

                            If (LEqual (HPAS, 0x02))
                            {
                                Store (0xFED02000, HPT0)
                            }

                            If (LEqual (HPAS, 0x03))
                            {
                                Store (0xFED03000, HPT0)
                            }
                        }

                        Return (BUF0)
                    }
                }

                Device (IPIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0020,             // Range Minimum
                            0x0020,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0024,             // Range Minimum
                            0x0024,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0028,             // Range Minimum
                            0x0028,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x002C,             // Range Minimum
                            0x002C,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0030,             // Range Minimum
                            0x0030,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0034,             // Range Minimum
                            0x0034,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0038,             // Range Minimum
                            0x0038,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x003C,             // Range Minimum
                            0x003C,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A0,             // Range Minimum
                            0x00A0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A4,             // Range Minimum
                            0x00A4,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A8,             // Range Minimum
                            0x00A8,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00AC,             // Range Minimum
                            0x00AC,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00B0,             // Range Minimum
                            0x00B0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00B4,             // Range Minimum
                            0x00B4,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00B8,             // Range Minimum
                            0x00B8,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00BC,             // Range Minimum
                            0x00BC,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x04D0,             // Range Minimum
                            0x04D0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {2}
                    })
                }

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

                Device (LDRC)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x02)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x002E,             // Range Minimum
                            0x002E,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x004E,             // Range Minimum
                            0x004E,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0061,             // Range Minimum
                            0x0061,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0063,             // Range Minimum
                            0x0063,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0065,             // Range Minimum
                            0x0065,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0067,             // Range Minimum
                            0x0067,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0080,             // Range Minimum
                            0x0080,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0092,             // Range Minimum
                            0x0092,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x00B2,             // Range Minimum
                            0x00B2,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0680,             // Range Minimum
                            0x0680,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                        IO (Decode16,
                            0x0700,             // Range Minimum
                            0x0700,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0xFFFF,             // Range Minimum
                            0xFFFF,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0xFFFF,             // Range Minimum
                            0xFFFF,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0400,             // Range Minimum
                            0x0400,             // Range Maximum
                            0x01,               // Alignment
                            0x54,               // Length
                            )
                        IO (Decode16,
                            0x0458,             // Range Minimum
                            0x0458,             // Range Maximum
                            0x01,               // Alignment
                            0x28,               // Length
                            )
                        IO (Decode16,
                            0x0500,             // Range Minimum
                            0x0500,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                        IO (Decode16,
                            0x164E,             // Range Minimum
                            0x164E,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                    })
                }

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

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

                Device (CWDT)
                {
                    Name (_HID, EisaId ("INT3F0D"))
                    Name (_CID, EisaId ("PNP0C02"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0454,             // Range Minimum
                            0x0454,             // Range Maximum
                            0x04,               // Alignment
                            0x04,               // Length
                            )
                    })
                    Method (_STA, 0, Serialized)
                    {
                        If (LEqual (WDTE, One))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Method (_CRS, 0, Serialized)
                    {
                        Return (BUF0)
                    }
                }

                Device (N393)
                {
                    Name (_HID, EisaId ("PNP0A05"))
                    Name (_UID, One)
                    Method (_STA, 0, Serialized)
                    {
                        If (LEqual (R20H, 0xF4))
                        {
                            Return (0x0F)
                        }

                        Return (Zero)
                    }

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

                    IndexField (INDX, DATA, ByteAcc, Lock, Preserve)
                    {
                                Offset (0x07), 
                        R07H,   8, 
                                Offset (0x20), 
                        R20H,   8, 
                        R21H,   8, 
                        R22H,   8, 
                        R23H,   8, 
                        R24H,   8, 
                        R25H,   8, 
                        R26H,   8, 
                        R27H,   8, 
                        R28H,   8, 
                        R29H,   8, 
                        R2AH,   8, 
                                Offset (0x30), 
                        R30H,   8, 
                                Offset (0x60), 
                        R60H,   8, 
                        R61H,   8, 
                                Offset (0x70), 
                        R70H,   8, 
                        R71H,   8, 
                                Offset (0x74), 
                        R74H,   8, 
                        R75H,   8, 
                                Offset (0xF0), 
                        RF0H,   8, 
                        RF1H,   8
                    }

                    Device (UAR3)
                    {
                        Name (_HID, EisaId ("PNP0501"))
                        Name (_UID, 0x02)
                        Method (_STA, 0, Serialized)
                        {
                            If (LEqual (R20H, 0xF4))
                            {
                                Store (0x03, R07H)
                                If (R30H)
                                {
                                    Return (0x0F)
                                }

                                Return (0x0D)
                            }

                            Return (Zero)
                        }

                        Method (_DIS, 0, Serialized)
                        {
                            Store (0x03, R07H)
                            Store (Zero, R30H)
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (BUF0, ResourceTemplate ()
                            {
                                IO (Decode16,
                                    0x03F8,             // Range Minimum
                                    0x03F8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {4}
                            })
                            Store (0x03, R07H)
                            If (R30H)
                            {
                                CreateByteField (BUF0, 0x02, IOL0)
                                CreateByteField (BUF0, 0x03, IOH0)
                                CreateByteField (BUF0, 0x04, IOL1)
                                CreateByteField (BUF0, 0x05, IOH1)
                                CreateByteField (BUF0, 0x07, LEN0)
                                CreateWordField (BUF0, 0x09, IRQW)
                                Store (R60H, IOH0)
                                Store (R61H, IOL0)
                                Store (R60H, IOH1)
                                Store (R61H, IOL1)
                                Store (0x08, LEN0)
                                And (R70H, 0x0F, Local0)
                                If (Local0)
                                {
                                    ShiftLeft (One, Local0, IRQW)
                                }
                                Else
                                {
                                    Store (Zero, IRQW)
                                }
                            }

                            Return (BUF0)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x02E8,             // Range Minimum
                                    0x02E8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {3}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x02F8,             // Range Minimum
                                    0x02F8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {3}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x03E8,             // Range Minimum
                                    0x03E8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {3}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x03F8,             // Range Minimum
                                    0x03F8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {3}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x02E8,             // Range Minimum
                                    0x02E8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {4}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x02F8,             // Range Minimum
                                    0x02F8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {4}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x03E8,             // Range Minimum
                                    0x03E8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {4}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x03F8,             // Range Minimum
                                    0x03F8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {4}
                            }
                            EndDependentFn ()
                        })
                        Method (_SRS, 1, Serialized)
                        {
                            CreateByteField (Arg0, 0x02, IOLO)
                            CreateByteField (Arg0, 0x03, IOHI)
                            CreateWordField (Arg0, 0x09, IRQW)
                            Store (0x03, R07H)
                            Store (Zero, R30H)
                            Store (IOLO, R61H)
                            Store (IOHI, R60H)
                            FindSetRightBit (IRQW, Local0)
                            If (LNotEqual (IRQW, Zero))
                            {
                                Decrement (Local0)
                            }

                            Store (Local0, R70H)
                            And (IOD0, 0xF8, IOD0)
                            If (LEqual (IOHI, 0x03))
                            {
                                If (LEqual (IOLO, 0xF8))
                                {
                                    Or (IOD0, Zero, IOD0)
                                }
                                Else
                                {
                                    Or (IOD0, 0x07, IOD0)
                                }
                            }
                            Else
                            {
                                If (LEqual (IOLO, 0xF8))
                                {
                                    Or (IOD0, One, IOD0)
                                }
                                Else
                                {
                                    Or (IOD0, 0x05, IOD0)
                                }
                            }

                            Store (One, R30H)
                        }

                        Method (_PS0, 0, Serialized)
                        {
                            Store (0x03, R07H)
                            Store (One, R30H)
                        }

                        Method (_PS3, 0, Serialized)
                        {
                            Store (0x03, R07H)
                            Store (Zero, R30H)
                        }
                    }

                    Device (FDC)
                    {
                        Name (_HID, EisaId ("PNP0700"))
                        Method (_STA, 0, Serialized)
                        {
                            If (LAnd (NATP, FDCP))
                            {
                                Store (Zero, R07H)
                                If (R30H)
                                {
                                    Return (0x0F)
                                }

                                Return (0x0D)
                            }

                            Return (Zero)
                        }

                        Method (_DIS, 0, Serialized)
                        {
                            Store (Zero, R07H)
                            Store (Zero, R30H)
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (BUF0, ResourceTemplate ()
                            {
                                IO (Decode16,
                                    0x03F0,             // Range Minimum
                                    0x03F0,             // Range Maximum
                                    0x01,               // Alignment
                                    0x06,               // Length
                                    )
                                IO (Decode16,
                                    0x03F7,             // Range Minimum
                                    0x03F7,             // Range Maximum
                                    0x01,               // Alignment
                                    0x01,               // Length
                                    )
                                IRQNoFlags ()
                                    {6}
                                DMA (Compatibility, NotBusMaster, Transfer8_16, )
                                    {2}
                            })
                            Store (Zero, R07H)
                            If (LAnd (NATP, FDCP))
                            {
                                CreateByteField (BUF0, 0x02, IOL0)
                                CreateByteField (BUF0, 0x03, IOH0)
                                CreateByteField (BUF0, 0x04, IOL1)
                                CreateByteField (BUF0, 0x05, IOH1)
                                CreateByteField (BUF0, 0x07, LEN0)
                                CreateByteField (BUF0, 0x0A, IOL2)
                                CreateByteField (BUF0, 0x0B, IOH2)
                                CreateByteField (BUF0, 0x0C, IOL3)
                                CreateByteField (BUF0, 0x0D, IOH3)
                                CreateByteField (BUF0, 0x0F, LEN1)
                                CreateWordField (BUF0, 0x11, IRQW)
                                CreateByteField (BUF0, 0x14, DMA0)
                                Store (And (R61H, 0xF0), IOL0)
                                Store (R60H, IOH0)
                                If (LAnd (IOL0, IOH0))
                                {
                                    Store (IOL0, IOL1)
                                    Store (IOH0, IOH1)
                                    Store (Or (IOL0, 0x07), IOL2)
                                    Store (IOH0, IOH2)
                                    Store (IOL2, IOL3)
                                    Store (IOH2, IOH3)
                                    Store (0x06, LEN0)
                                    Store (One, LEN1)
                                }

                                And (R70H, 0x0F, Local0)
                                If (Local0)
                                {
                                    ShiftLeft (One, Local0, IRQW)
                                }
                                Else
                                {
                                    Store (Zero, IRQW)
                                }

                                Store (R74H, Local0)
                                If (LEqual (Local0, 0x04))
                                {
                                    Store (Zero, DMA0)
                                }
                                Else
                                {
                                    ShiftLeft (One, Local0, DMA0)
                                }
                            }

                            Return (BUF0)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x03F0,             // Range Minimum
                                    0x03F0,             // Range Maximum
                                    0x01,               // Alignment
                                    0x06,               // Length
                                    )
                                IO (Decode16,
                                    0x03F7,             // Range Minimum
                                    0x03F7,             // Range Maximum
                                    0x01,               // Alignment
                                    0x01,               // Length
                                    )
                                IRQNoFlags ()
                                    {6}
                                DMA (Compatibility, NotBusMaster, Transfer8_16, )
                                    {2}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0370,             // Range Minimum
                                    0x0370,             // Range Maximum
                                    0x01,               // Alignment
                                    0x06,               // Length
                                    )
                                IO (Decode16,
                                    0x0377,             // Range Minimum
                                    0x0377,             // Range Maximum
                                    0x01,               // Alignment
                                    0x01,               // Length
                                    )
                                IRQNoFlags ()
                                    {6}
                                DMA (Compatibility, NotBusMaster, Transfer8_16, )
                                    {2}
                            }
                            EndDependentFn ()
                        })
                        Method (_SRS, 1, Serialized)
                        {
                            CreateByteField (Arg0, 0x02, IOLO)
                            CreateByteField (Arg0, 0x03, IOHI)
                            CreateWordField (Arg0, 0x11, IRQW)
                            CreateWordField (Arg0, 0x14, DMAC)
                            Store (Zero, R07H)
                            Store (Zero, R30H)
                            Store (IOLO, R61H)
                            Store (IOHI, R60H)
                            FindSetRightBit (IRQW, Local0)
                            If (LNotEqual (IRQW, Zero))
                            {
                                Decrement (Local0)
                            }

                            Store (Local0, R70H)
                            FindSetRightBit (DMAC, Local0)
                            If (LNotEqual (DMAC, Zero))
                            {
                                Decrement (Local0)
                            }

                            Store (Local0, R74H)
                            If (LEqual (IOLO, 0xF0))
                            {
                                And (IOD1, 0xEF, IOD1)
                            }
                            Else
                            {
                                Or (IOD1, 0x10, IOD1)
                            }

                            Store (One, R30H)
                        }

                        Method (_PS0, 0, Serialized)
                        {
                            Store (Zero, R07H)
                            Store (One, R30H)
                        }

                        Method (_PS3, 0, Serialized)
                        {
                            Store (Zero, R07H)
                            Store (Zero, R30H)
                        }
                    }

                    Device (LPT1)
                    {
                        Name (_HID, EisaId ("PNP0400"))
                        Name (_UID, One)
                        Method (_STA, 0, Serialized)
                        {
                            Store (One, R07H)
                            If (LEqual (And (RF0H, 0xE0), Zero))
                            {
                                If (LAnd (NATP, LPTP))
                                {
                                    If (R30H)
                                    {
                                        Return (0x0F)
                                    }

                                    Return (0x0D)
                                }
                            }

                            Return (Zero)
                        }

                        Method (_DIS, 0, Serialized)
                        {
                            Store (One, R07H)
                            If (LEqual (And (RF0H, 0xE0), Zero))
                            {
                                Store (Zero, R30H)
                            }
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (BUF0, ResourceTemplate ()
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            })
                            If (LEqual (And (RF0H, 0xE0), Zero))
                            {
                                CreateByteField (BUF0, 0x02, IOL0)
                                CreateByteField (BUF0, 0x03, IOH0)
                                CreateByteField (BUF0, 0x04, IOL1)
                                CreateByteField (BUF0, 0x05, IOH1)
                                CreateByteField (BUF0, 0x07, LEN0)
                                CreateWordField (BUF0, 0x09, IRQW)
                                Store (One, R07H)
                                Store (R61H, IOL0)
                                Store (R60H, IOH0)
                                Store (IOL0, IOL1)
                                Store (IOH0, IOH1)
                                Store (0x04, LEN0)
                                If (And (R70H, 0x0F))
                                {
                                    ShiftLeft (One, And (R70H, 0x0F), IRQW)
                                }
                                Else
                                {
                                    Store (Zero, IRQW)
                                }
                            }

                            Return (BUF0)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0278,             // Range Minimum
                                    0x0278,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x03BC,             // Range Minimum
                                    0x03BC,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {5}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0278,             // Range Minimum
                                    0x0278,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {5}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x03BC,             // Range Minimum
                                    0x03BC,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {5}
                            }
                            EndDependentFn ()
                        })
                        Method (_SRS, 1, Serialized)
                        {
                            CreateByteField (Arg0, 0x02, IOL0)
                            CreateByteField (Arg0, 0x03, IOH0)
                            CreateWordField (Arg0, 0x09, IRQW)
                            Store (One, R07H)
                            Store (Zero, R30H)
                            And (RF0H, 0x0F, RF0H)
                            Store (0x04, R74H)
                            Store (IOL0, R61H)
                            Store (IOH0, R60H)
                            FindSetRightBit (IRQW, Local0)
                            If (LNotEqual (IRQW, Zero))
                            {
                                Decrement (Local0)
                            }

                            Store (Local0, R70H)
                            And (IOD1, 0xFC, IOD1)
                            If (LEqual (IOH0, 0x03))
                            {
                                If (LEqual (IOL0, 0x78))
                                {
                                    Or (IOD1, Zero, IOD1)
                                }
                                Else
                                {
                                    Or (IOD1, 0x02, IOD1)
                                }
                            }
                            Else
                            {
                                Or (IOD1, One, IOD1)
                            }

                            Store (One, R30H)
                        }

                        Method (_PS0, 0, Serialized)
                        {
                            Store (One, R07H)
                            Store (One, R30H)
                        }

                        Method (_PS3, 0, Serialized)
                        {
                            Store (One, R07H)
                            Store (Zero, R30H)
                        }
                    }

                    Device (PBI1)
                    {
                        Name (_HID, EisaId ("PNP0400"))
                        Name (_UID, 0x02)
                        Method (_STA, 0, Serialized)
                        {
                            Store (One, R07H)
                            If (LEqual (And (RF0H, 0xE0), 0x20))
                            {
                                If (LAnd (NATP, LPTP))
                                {
                                    If (R30H)
                                    {
                                        Return (0x0F)
                                    }

                                    Return (0x0D)
                                }
                            }

                            Return (Zero)
                        }

                        Method (_DIS, 0, Serialized)
                        {
                            Store (One, R07H)
                            If (LEqual (And (RF0H, 0xE0), 0x20))
                            {
                                Store (Zero, R30H)
                            }
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (BUF0, ResourceTemplate ()
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            })
                            If (LEqual (And (RF0H, 0xE0), 0x20))
                            {
                                CreateByteField (BUF0, 0x02, IOL0)
                                CreateByteField (BUF0, 0x03, IOH0)
                                CreateByteField (BUF0, 0x04, IOL1)
                                CreateByteField (BUF0, 0x05, IOH1)
                                CreateByteField (BUF0, 0x07, LEN0)
                                CreateWordField (BUF0, 0x09, IRQW)
                                Store (One, R07H)
                                Store (R61H, IOL0)
                                Store (R60H, IOH0)
                                Store (IOL0, IOL1)
                                Store (IOH0, IOH1)
                                Store (0x04, LEN0)
                                If (And (R70H, 0x0F))
                                {
                                    ShiftLeft (One, And (R70H, 0x0F), IRQW)
                                }
                                Else
                                {
                                    Store (Zero, IRQW)
                                }
                            }

                            Return (BUF0)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0278,             // Range Minimum
                                    0x0278,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x03BC,             // Range Minimum
                                    0x03BC,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {5}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0278,             // Range Minimum
                                    0x0278,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {5}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x03BC,             // Range Minimum
                                    0x03BC,             // Range Maximum
                                    0x01,               // Alignment
                                    0x04,               // Length
                                    )
                                IRQNoFlags ()
                                    {5}
                            }
                            EndDependentFn ()
                        })
                        Method (_SRS, 1, Serialized)
                        {
                            CreateByteField (Arg0, 0x02, IOL0)
                            CreateByteField (Arg0, 0x03, IOH0)
                            CreateWordField (Arg0, 0x09, IRQW)
                            Store (One, R07H)
                            Store (Zero, R30H)
                            Or (And (RF0H, 0x0F), 0x20, RF0H)
                            Store (0x04, R74H)
                            Store (IOL0, R61H)
                            Store (IOH0, R60H)
                            FindSetRightBit (IRQW, Local0)
                            If (LNotEqual (IRQW, Zero))
                            {
                                Decrement (Local0)
                            }

                            Store (Local0, R70H)
                            And (IOD1, 0xFC, IOD1)
                            If (LEqual (IOH0, 0x03))
                            {
                                If (LEqual (IOL0, 0x78))
                                {
                                    Or (IOD1, Zero, IOD1)
                                }
                                Else
                                {
                                    Or (IOD1, 0x02, IOD1)
                                }
                            }
                            Else
                            {
                                Or (IOD1, One, IOD1)
                            }

                            Store (One, R30H)
                        }

                        Method (_PS0, 0, Serialized)
                        {
                            Store (One, R07H)
                            Store (One, R30H)
                        }

                        Method (_PS3, 0, Serialized)
                        {
                            Store (One, R07H)
                            Store (Zero, R30H)
                        }
                    }

                    Device (PEP1)
                    {
                        Name (_HID, EisaId ("PNP0400"))
                        Name (_UID, 0x03)
                        Method (_STA, 0, Serialized)
                        {
                            Store (One, R07H)
                            If (LOr (LEqual (And (RF0H, 0xE0), 0x60), LEqual (And (
                                RF0H, 0xE0), 0x40)))
                            {
                                If (LAnd (NATP, LPTP))
                                {
                                    If (R30H)
                                    {
                                        Return (0x0F)
                                    }
                                    Else
                                    {
                                        Return (0x0D)
                                    }
                                }
                            }

                            Return (Zero)
                        }

                        Method (_DIS, 0, Serialized)
                        {
                            Store (One, R07H)
                            If (LOr (LEqual (And (RF0H, 0xE0), 0x60), LEqual (And (
                                RF0H, 0xE0), 0x40)))
                            {
                                Store (Zero, R30H)
                            }
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (BUF0, ResourceTemplate ()
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            })
                            If (LOr (LEqual (And (RF0H, 0xE0), 0x60), LEqual (And (
                                RF0H, 0xE0), 0x40)))
                            {
                                CreateByteField (BUF0, 0x02, IOL0)
                                CreateByteField (BUF0, 0x03, IOH0)
                                CreateByteField (BUF0, 0x04, IOL1)
                                CreateByteField (BUF0, 0x05, IOH1)
                                CreateByteField (BUF0, 0x07, LEN0)
                                CreateWordField (BUF0, 0x09, IRQW)
                                Store (One, R07H)
                                Store (R61H, IOL0)
                                Store (R60H, IOH0)
                                Store (IOL0, IOL1)
                                Store (IOH0, IOH1)
                                Store (0x08, LEN0)
                                If (And (R70H, 0x0F))
                                {
                                    ShiftLeft (One, And (R70H, 0x0F), IRQW)
                                }
                                Else
                                {
                                    Store (Zero, IRQW)
                                }
                            }

                            Return (BUF0)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0278,             // Range Minimum
                                    0x0278,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {5}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0278,             // Range Minimum
                                    0x0278,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {5}
                            }
                            EndDependentFn ()
                        })
                        Method (_SRS, 1, Serialized)
                        {
                            CreateByteField (Arg0, 0x02, IOL0)
                            CreateByteField (Arg0, 0x03, IOH0)
                            CreateWordField (Arg0, 0x09, IRQW)
                            Store (One, R07H)
                            Store (Zero, R30H)
                            Or (And (RF0H, 0x0F), 0x60, RF0H)
                            Store (0x04, R74H)
                            Store (IOL0, R61H)
                            Store (IOH0, R60H)
                            FindSetRightBit (IRQW, Local0)
                            If (LNotEqual (IRQW, Zero))
                            {
                                Decrement (Local0)
                            }

                            Store (Local0, R70H)
                            And (IOD1, 0xFC, IOD1)
                            If (LEqual (IOH0, 0x03))
                            {
                                Or (IOD1, Zero, IOD1)
                            }
                            Else
                            {
                                Or (IOD1, One, IOD1)
                            }

                            Store (One, R30H)
                        }

                        Method (_PS0, 0, Serialized)
                        {
                            Store (One, R07H)
                            Store (One, R30H)
                        }

                        Method (_PS3, 0, Serialized)
                        {
                            Store (One, R07H)
                            Store (Zero, R30H)
                        }
                    }

                    Device (PEC1)
                    {
                        Name (_HID, EisaId ("PNP0401"))
                        Name (_UID, 0x04)
                        Method (_STA, 0, Serialized)
                        {
                            Store (One, R07H)
                            If (LOr (LEqual (And (RF0H, 0xE0), 0xE0), LEqual (And (
                                RF0H, 0xE0), 0x80)))
                            {
                                If (LAnd (NATP, LPTP))
                                {
                                    If (R30H)
                                    {
                                        Return (0x0F)
                                    }
                                    Else
                                    {
                                        Return (0x0D)
                                    }
                                }
                            }

                            Return (Zero)
                        }

                        Method (_DIS, 0, Serialized)
                        {
                            Store (One, R07H)
                            If (LOr (LEqual (And (RF0H, 0xE0), 0xE0), LEqual (And (
                                RF0H, 0xE0), 0x80)))
                            {
                                Store (Zero, R30H)
                            }
                        }

                        Method (_CRS, 0, Serialized)
                        {
                            Name (BUF0, ResourceTemplate ()
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IO (Decode16,
                                    0x0778,             // Range Minimum
                                    0x0778,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                                DMA (Compatibility, NotBusMaster, Transfer8_16, )
                                    {1}
                            })
                            If (LOr (LEqual (And (RF0H, 0xE0), 0xE0), LEqual (And (
                                RF0H, 0xE0), 0x80)))
                            {
                                CreateByteField (BUF0, 0x02, IOL0)
                                CreateByteField (BUF0, 0x03, IOH0)
                                CreateByteField (BUF0, 0x04, IOL1)
                                CreateByteField (BUF0, 0x05, IOH1)
                                CreateByteField (BUF0, 0x07, LEN0)
                                CreateByteField (BUF0, 0x0A, IOL2)
                                CreateByteField (BUF0, 0x0B, IOH2)
                                CreateByteField (BUF0, 0x0C, IOL3)
                                CreateByteField (BUF0, 0x0D, IOH3)
                                CreateByteField (BUF0, 0x0F, LEN1)
                                CreateWordField (BUF0, 0x11, IRQW)
                                CreateByteField (BUF0, 0x14, DMA0)
                                Store (One, R07H)
                                Store (R61H, IOL0)
                                Store (R60H, IOH0)
                                Store (IOL0, IOL1)
                                Store (IOH0, IOH1)
                                Store (IOL0, IOL2)
                                Store (Add (0x04, IOH0), IOH2)
                                Store (IOL0, IOL3)
                                Store (Add (0x04, IOH0), IOH3)
                                Store (0x08, LEN0)
                                Store (0x08, LEN1)
                                And (R70H, 0x0F, Local0)
                                If (Local0)
                                {
                                    ShiftLeft (One, Local0, IRQW)
                                }
                                Else
                                {
                                    Store (Zero, IRQW)
                                }

                                Store (R74H, Local0)
                                If (LEqual (Local0, 0x04))
                                {
                                    Store (Zero, DMA0)
                                }
                                Else
                                {
                                    ShiftLeft (One, Local0, DMA0)
                                }
                            }

                            Return (BUF0)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IO (Decode16,
                                    0x0778,             // Range Minimum
                                    0x0778,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                                DMA (Compatibility, NotBusMaster, Transfer8_16, )
                                    {3}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0278,             // Range Minimum
                                    0x0278,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IO (Decode16,
                                    0x0678,             // Range Minimum
                                    0x0678,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {7}
                                DMA (Compatibility, NotBusMaster, Transfer8_16, )
                                    {1,2,3}
                            }
                            StartDependentFn (0x00, 0x02)
                            {
                                IO (Decode16,
                                    0x0378,             // Range Minimum
                                    0x0378,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IO (Decode16,
                                    0x0778,             // Range Minimum
                                    0x0778,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {5}
                                DMA (Compatibility, NotBusMaster, Transfer8_16, )
                                    {1,2,3}
                            }
                            EndDependentFn ()
                        })
                        Method (_SRS, 1, Serialized)
                        {
                            CreateByteField (Arg0, 0x02, IOL0)
                            CreateByteField (Arg0, 0x03, IOH0)
                            CreateWordField (Arg0, 0x11, IRQW)
                            CreateByteField (Arg0, 0x14, DMA0)
                            Store (One, R07H)
                            Store (Zero, R30H)
                            Or (RF0H, 0xF0, RF0H)
                            Store (IOL0, R61H)
                            Store (IOH0, R60H)
                            FindSetRightBit (IRQW, Local0)
                            If (LNotEqual (IRQW, Zero))
                            {
                                Decrement (Local0)
                            }

                            Store (Local0, R70H)
                            FindSetRightBit (DMA0, Local0)
                            If (LNotEqual (DMA0, Zero))
                            {
                                Decrement (Local0)
                            }

                            Store (Local0, R74H)
                            And (IOD1, 0xFC, IOD1)
                            If (LEqual (IOH0, 0x03))
                            {
                                Or (IOD1, Zero, IOD1)
                            }
                            Else
                            {
                                Or (IOD1, One, IOD1)
                            }

                            Store (One, R30H)
                        }

                        Method (_PS0, 0, Serialized)
                        {
                            Store (One, R07H)
                            Store (One, R30H)
                        }

                        Method (_PS3, 0, Serialized)
                        {
                            Store (One, R07H)
                            Store (Zero, R30H)
                        }
                    }
                }

                OperationRegion (PKBS, SystemIO, 0x60, 0x05)
                Field (PKBS, ByteAcc, Lock, Preserve)
                {
                    PKBD,   8, 
                            Offset (0x02), 
                            Offset (0x03), 
                            Offset (0x04), 
                    PKBC,   8
                }

                Device (PS2K)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQ (Edge, ActiveHigh, Exclusive, )
                            {1}
                    })
                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            FixedIO (
                                0x0060,             // Address
                                0x01,               // Length
                                )
                            FixedIO (
                                0x0064,             // Address
                                0x01,               // Length
                                )
                            IRQNoFlags ()
                                {1}
                        }
                        EndDependentFn ()
                    })
                }

                Device (PS2M)
                {
                    Name (_HID, EisaId ("SYN1046"))
                    Name (_CID, Package (0x03)
                    {
                        EisaId ("SYN1000"), 
                        EisaId ("SYN0002"), 
                        EisaId ("PNP0F13")
                    })
                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQ (Edge, ActiveHigh, Exclusive, )
                            {12}
                    })
                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IRQNoFlags ()
                                {12}
                        }
                        EndDependentFn ()
                    })
                }
            }
        }
    }

    OperationRegion (VGAM, SystemMemory, 0xF8100088, One)
    Field (VGAM, ByteAcc, NoLock, Preserve)
    {
        L0L1,   8
    }

    Mutex (MUTX, 0x00)
    OperationRegion (PRT0, SystemIO, 0x80, 0x04)
    Field (PRT0, DWordAcc, Lock, Preserve)
    {
        P80H,   32
    }

    Method (P8XH, 2, Serialized)
    {
        If (LEqual (Arg0, Zero))
        {
            Store (Or (And (P80D, 0xFFFFFF00), Arg1), P80D)
        }

        If (LEqual (Arg0, One))
        {
            Store (Or (And (P80D, 0xFFFF00FF), ShiftLeft (Arg1, 0x08)
                ), P80D)
        }

        If (LEqual (Arg0, 0x02))
        {
            Store (Or (And (P80D, 0xFF00FFFF), ShiftLeft (Arg1, 0x10)
                ), P80D)
        }

        If (LEqual (Arg0, 0x03))
        {
            Store (Or (And (P80D, 0x00FFFFFF), ShiftLeft (Arg1, 0x18)
                ), P80D)
        }

        Store (P80D, P80H)
    }

    OperationRegion (SPRT, SystemIO, 0xB2, 0x02)
    Field (SPRT, ByteAcc, Lock, Preserve)
    {
        SSMP,   8
    }

    Method (_PIC, 1, NotSerialized)
    {
        Store (Arg0, GPIC)
        Store (Arg0, PICM)
    }

    Method (_PTS, 1, NotSerialized)
    {
        Store (Zero, \_SB.PCI0.LPCB.EC0.LNON)
        Store (GO52, \_SB.RFST)
        Store (Zero, P80D)
        P8XH (Zero, Arg0)
        If (LEqual (Arg0, 0x03))
        {
            Store (One, \_SB.PCI0.LPCB.EC0.LNON)
            If (LAnd (DTSE, LGreater (TCNT, One)))
            {
                TRAP (TRTD, 0x1E)
            }
        }

        If (LEqual (Arg0, 0x04))
        {
            Store (\_SB.PCI0.LPCB.EC0.CCDE, \_SB.CCDM)
            Store (One, \_SB.INS4)
            Store (One, \_SB.PCI0.LPCB.EC0.PFLG)
        }
    }

    Method (_WAK, 1, Serialized)
    {
        Store (Zero, \_SB.PCI0.LPCB.EC0.LNON)
        Store (\_SB.RFST, GO52)
        P8XH (One, 0xAB)
        Store (Zero, GU07)
        Store (Zero, GU09)
        \_SB.PCI0.LPCB.EC0.VPDG (0xAB)
        Store (One, \_SB.PCI0.LPCB.EC0.AECK)
        If (NEXP)
        {
            If (And (OSCC, 0x02))
            {
                \_SB.PCI0.NHPG ()
            }

            If (And (OSCC, 0x04))
            {
                \_SB.PCI0.NPME ()
            }
        }

        If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
        {
            Store (Zero, \_SB.INS4)
            Store (Zero, \_SB.S4CT)
            Notify (\_SB.PCI0.RP07, Zero)
            Notify (\_SB.PCI0.RP07, Zero)
            Store (One, \_SB.PCI0.LPCB.EC0.CCDE)
            \_SB.PHSR (0x8B)
            Store (One, \_SB.PCI0.LPCB.EC0.CCDS)
            Store (Zero, GO23)
            Store (One, \_SB.PCI0.LPCB.EC0.BLIS)
            If (LAnd (DTSE, LGreater (TCNT, One)))
            {
                TRAP (TRTD, 0x14)
            }

            If (LNot (\_SB.PCI0.LPCB.EC0.GSWS))
            {
                Store (\_SB.PCI0.LPCB.EC0.WRFS, GO12)
                Store (One, GO35)
            }
            Else
            {
                Store (\_SB.PCI0.LPCB.EC0.WRFS, GO12)
                If (\_SB.FL10)
                {
                    Store (Zero, GO35)
                }
                Else
                {
                    Store (One, GO35)
                }
            }

            If (\_SB.DGPU)
            {
                Store (Zero, GO45)
            }
            Else
            {
                If (\_SB.OPST)
                {
                    Store (Zero, GO45)
                }
                Else
                {
                    Store (One, GO45)
                }
            }

            If (LEqual (OSYS, 0x07D2))
            {
                If (And (CFGD, One))
                {
                    If (LGreater (\_PR.CPU0._PPC, Zero))
                    {
                        Subtract (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                        PNOT ()
                        Add (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                        PNOT ()
                    }
                    Else
                    {
                        Add (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                        PNOT ()
                        Subtract (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                        PNOT ()
                    }
                }
            }

            If (LEqual (RP1D, Zero))
            {
                If (LEqual (DSTS, Zero))
                {
                    Notify (\_SB.PCI0.RP01, Zero)
                }
            }

            If (LEqual (RP2D, Zero))
            {
                If (LEqual (DSTS, Zero))
                {
                    Notify (\_SB.PCI0.RP02, Zero)
                }
            }

            If (LEqual (RP3D, Zero))
            {
                Notify (\_SB.PCI0.RP03, Zero)
            }

            If (LEqual (RP4D, Zero))
            {
                Notify (\_SB.PCI0.RP04, Zero)
            }

            If (LEqual (RP5D, Zero))
            {
                Notify (\_SB.PCI0.RP05, Zero)
            }

            If (LEqual (RP7D, Zero))
            {
                Notify (\_SB.PCI0.RP07, Zero)
            }

            If (LEqual (RP8D, Zero))
            {
                Notify (\_SB.PCI0.RP08, Zero)
            }

            If (LEqual (Arg0, 0x03))
            {
                Store (Or (L0L1, 0x03), L0L1)
            }
        }

        Return (Package (0x02)
        {
            Zero, 
            Zero
        })
    }

    Method (GETB, 3, Serialized)
    {
        Multiply (Arg0, 0x08, Local0)
        Multiply (Arg1, 0x08, Local1)
        CreateField (Arg2, Local0, Local1, TBF3)
        Return (TBF3)
    }

    Method (PNOT, 0, Serialized)
    {
        If (LGreater (TCNT, One))
        {
            If (And (PDC0, 0x08))
            {
                Notify (\_PR.CPU0, 0x80)
                If (And (PDC0, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU0, 0x81)
                }
            }

            If (And (PDC1, 0x08))
            {
                Notify (\_PR.CPU1, 0x80)
                If (And (PDC1, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU1, 0x81)
                }
            }

            If (And (PDC2, 0x08))
            {
                Notify (\_PR.CPU2, 0x80)
                If (And (PDC2, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU2, 0x81)
                }
            }

            If (And (PDC3, 0x08))
            {
                Notify (\_PR.CPU3, 0x80)
                If (And (PDC3, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU3, 0x81)
                }
            }

            If (And (PDC4, 0x08))
            {
                Notify (\_PR.CPU4, 0x80)
                If (And (PDC4, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU4, 0x81)
                }
            }

            If (And (PDC5, 0x08))
            {
                Notify (\_PR.CPU5, 0x80)
                If (And (PDC5, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU5, 0x81)
                }
            }

            If (And (PDC6, 0x08))
            {
                Notify (\_PR.CPU6, 0x80)
                If (And (PDC6, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU6, 0x81)
                }
            }

            If (And (PDC7, 0x08))
            {
                Notify (\_PR.CPU7, 0x80)
                If (And (PDC7, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU7, 0x81)
                }
            }
        }
        Else
        {
            Notify (\_PR.CPU0, 0x80)
            Sleep (0x64)
            Notify (\_PR.CPU0, 0x81)
        }
    }

    Method (TRAP, 2, Serialized)
    {
        Store (Arg1, SMIF)
        If (LEqual (Arg0, TRTP))
        {
            Store (Zero, TRP0)
        }

        If (LEqual (Arg0, TRTD))
        {
            Store (Arg1, DTSF)
            Store (Zero, TRPD)
            Return (DTSF)
        }

        If (LEqual (Arg0, TRTI))
        {
            Store (Zero, TRPH)
        }

        Return (SMIF)
    }

    Scope (_SB.PCI0)
    {
        Method (_INI, 0, NotSerialized)
        {
            Store (0x07D0, OSYS)
            If (CondRefOf (_OSI, Local0))
            {
                If (_OSI ("Linux"))
                {
                    Store (0x03E8, OSYS)
                }

                If (_OSI ("Windows 2001"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (0x07D2, OSYS)
                }

                If (_OSI ("Windows 2001.1"))
                {
                    Store (0x07D3, OSYS)
                }

                If (_OSI ("Windows 2006"))
                {
                    Store (0x07D6, OSYS)
                }

                If (_OSI ("Windows 2009"))
                {
                    Store (0x07D9, OSYS)
                }
            }
        }

        Name (EBRL, 0x64)
        Name (EBRV, Zero)
        Name (IBCL, Package (0x0D)
        {
            0x64, 
            0x23, 
            0x05, 
            0x0F, 
            0x19, 
            0x23, 
            0x2D, 
            0x37, 
            0x41, 
            0x4B, 
            0x55, 
            0x5F, 
            0x64
        })
        Method (IBCM, 1, NotSerialized)
        {
            Store (Arg0, EBRL)
            If (LLess (EBRL, Add (DerefOf (Index (IBCL, 0x02)), One
                )))
            {
                Store (Zero, BRNS)
            }
            Else
            {
                If (LLess (EBRL, Add (DerefOf (Index (IBCL, 0x03)), One
                    )))
                {
                    Store (One, BRNS)
                }
                Else
                {
                    If (LLess (EBRL, Add (DerefOf (Index (IBCL, 0x04)), One
                        )))
                    {
                        Store (0x02, BRNS)
                    }
                    Else
                    {
                        If (LLess (EBRL, Add (DerefOf (Index (IBCL, 0x05)), One
                            )))
                        {
                            Store (0x03, BRNS)
                        }
                        Else
                        {
                            If (LLess (EBRL, Add (DerefOf (Index (IBCL, 0x06)), One
                                )))
                            {
                                Store (0x04, BRNS)
                            }
                            Else
                            {
                                If (LLess (EBRL, Add (DerefOf (Index (IBCL, 0x07)), One
                                    )))
                                {
                                    Store (0x05, BRNS)
                                }
                                Else
                                {
                                    If (LLess (EBRL, Add (DerefOf (Index (IBCL, 0x08)), One
                                        )))
                                    {
                                        Store (0x06, BRNS)
                                    }
                                    Else
                                    {
                                        If (LLess (EBRL, Add (DerefOf (Index (IBCL, 0x09)), One
                                            )))
                                        {
                                            Store (0x07, BRNS)
                                        }
                                        Else
                                        {
                                            If (LLess (EBRL, Add (DerefOf (Index (IBCL, 0x0A)), One
                                                )))
                                            {
                                                Store (0x08, BRNS)
                                            }
                                            Else
                                            {
                                                If (LLess (EBRL, Add (DerefOf (Index (IBCL, 0x0B)), One
                                                    )))
                                                {
                                                    Store (0x09, BRNS)
                                                }
                                                Else
                                                {
                                                    If (LLess (EBRL, Add (DerefOf (Index (IBCL, 0x0C)), One
                                                        )))
                                                    {
                                                        Store (0x0A, BRNS)
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            Store (BRNS, ^LPCB.EC0.BLVL)
            If (LNotEqual (EBRV, BRNS))
            {
                PHSR (0x9D)
            }

            Store (BRNS, EBRV)
        }

        Name (ISCT, Zero)
        Method (ISBC, 1, NotSerialized)
        {
            ^GFX0.PARD ()
            Store (Arg0, ^GFX0.BCLP)
            Or (^GFX0.BCLP, 0x80000000, ^GFX0.BCLP)
            Store (0x02, ^GFX0.ASLC)
            Store (0x05, ISCT)
            While (LAnd (^GFX0.ASLC, ISCT))
            {
                Store (One, ^GFX0.ASLE)
                Decrement (ISCT)
            }
        }

        Name (PNLS, Buffer (0x0B)
        {
            /* 0000 */    0xFF, 0xEB, 0xDA, 0xC7, 0xB5, 0xA4, 0x92, 0x6E, 
            /* 0008 */    0x61, 0x55, 0x49
        })
        Name (PKT1, Buffer (0x79)
        {
            /* 0000 */    0xFF, 0xEE, 0xDF, 0xC1, 0xA3, 0x86, 0x69, 0x47, 
            /* 0008 */    0x30, 0x18, 0x03, 0xFF, 0xE6, 0xCE, 0xB6, 0x9E, 
            /* 0010 */    0x86, 0x6E, 0x56, 0x3E, 0x20, 0x03, 0xFF, 0xE0, 
            /* 0018 */    0xC7, 0xAE, 0x95, 0x7F, 0x63, 0x4A, 0x31, 0x1A, 
            /* 0020 */    0x03, 0xFF, 0xE3, 0xCA, 0xB1, 0x98, 0x7F, 0x66, 
            /* 0028 */    0x4D, 0x38, 0x1B, 0x03, 0xFF, 0xE3, 0xCC, 0xB5, 
            /* 0030 */    0x9E, 0x87, 0x70, 0x59, 0x42, 0x22, 0x03, 0xFF, 
            /* 0038 */    0xE3, 0xCA, 0xB1, 0x98, 0x7F, 0x66, 0x4D, 0x34, 
            /* 0040 */    0x1B, 0x03, 0xFF, 0xE3, 0xCB, 0xB3, 0x9B, 0x83, 
            /* 0048 */    0x6B, 0x53, 0x3B, 0x1F, 0x03, 0xFF, 0xE2, 0xCA, 
            /* 0050 */    0xB2, 0x9A, 0x82, 0x6A, 0x52, 0x3A, 0x1E, 0x03, 
            /* 0058 */    0xFF, 0xE4, 0xCD, 0xB6, 0x9F, 0x88, 0x71, 0x5E, 
            /* 0060 */    0x47, 0x23, 0x03, 0xFF, 0xE1, 0xC8, 0xAF, 0x96, 
            /* 0068 */    0x7D, 0x64, 0x4B, 0x32, 0x1A, 0x03, 0xFF, 0xE1, 
            /* 0070 */    0xC8, 0xAF, 0x96, 0x7D, 0x64, 0x4B, 0x32, 0x1A, 
            /* 0078 */    0x03
        })
        Method (UPBR, 0, NotSerialized)
        {
            If (IGDS)
            {
                Store (DerefOf (Index (PKT1, Add (Multiply (PLID, 0x0B), Zero
                    ))), Index (PNLS, Zero))
                Store (DerefOf (Index (PKT1, Add (Multiply (PLID, 0x0B), One
                    ))), Index (PNLS, One))
                Store (DerefOf (Index (PKT1, Add (Multiply (PLID, 0x0B), 0x02
                    ))), Index (PNLS, 0x02))
                Store (DerefOf (Index (PKT1, Add (Multiply (PLID, 0x0B), 0x03
                    ))), Index (PNLS, 0x03))
                Store (DerefOf (Index (PKT1, Add (Multiply (PLID, 0x0B), 0x04
                    ))), Index (PNLS, 0x04))
                Store (DerefOf (Index (PKT1, Add (Multiply (PLID, 0x0B), 0x05
                    ))), Index (PNLS, 0x05))
                Store (DerefOf (Index (PKT1, Add (Multiply (PLID, 0x0B), 0x06
                    ))), Index (PNLS, 0x06))
                Store (DerefOf (Index (PKT1, Add (Multiply (PLID, 0x0B), 0x07
                    ))), Index (PNLS, 0x07))
                Store (DerefOf (Index (PKT1, Add (Multiply (PLID, 0x0B), 0x08
                    ))), Index (PNLS, 0x08))
                Store (DerefOf (Index (PKT1, Add (Multiply (PLID, 0x0B), 0x09
                    ))), Index (PNLS, 0x09))
                Store (DerefOf (Index (PKT1, Add (Multiply (PLID, 0x0B), 0x0A
                    ))), Index (PNLS, 0x0A))
                Store (DerefOf (Index (PNLS, Zero)), ^GFX0.BC0A)
                Store (DerefOf (Index (PNLS, One)), ^GFX0.BC09)
                Store (DerefOf (Index (PNLS, 0x02)), ^GFX0.BC08)
                Store (DerefOf (Index (PNLS, 0x03)), ^GFX0.BC07)
                Store (DerefOf (Index (PNLS, 0x04)), ^GFX0.BC06)
                Store (DerefOf (Index (PNLS, 0x05)), ^GFX0.BC05)
                Store (DerefOf (Index (PNLS, 0x06)), ^GFX0.BC04)
                Store (DerefOf (Index (PNLS, 0x07)), ^GFX0.BC03)
                Store (DerefOf (Index (PNLS, 0x08)), ^GFX0.BC02)
                Store (DerefOf (Index (PNLS, 0x09)), ^GFX0.BC01)
                Store (DerefOf (Index (PNLS, 0x0A)), ^GFX0.BC00)
                Store (Or (DerefOf (Index (IBCL, 0x0C)), 0x80), ^GFX0.BP0A)
                Store (Or (DerefOf (Index (IBCL, 0x0B)), 0x80), ^GFX0.BP09)
                Store (Or (DerefOf (Index (IBCL, 0x0A)), 0x80), ^GFX0.BP08)
                Store (Or (DerefOf (Index (IBCL, 0x09)), 0x80), ^GFX0.BP07)
                Store (Or (DerefOf (Index (IBCL, 0x08)), 0x80), ^GFX0.BP06)
                Store (Or (DerefOf (Index (IBCL, 0x07)), 0x80), ^GFX0.BP05)
                Store (Or (DerefOf (Index (IBCL, 0x06)), 0x80), ^GFX0.BP04)
                Store (Or (DerefOf (Index (IBCL, 0x05)), 0x80), ^GFX0.BP03)
                Store (Or (DerefOf (Index (IBCL, 0x04)), 0x80), ^GFX0.BP02)
                Store (Or (DerefOf (Index (IBCL, 0x03)), 0x80), ^GFX0.BP01)
                Store (Or (DerefOf (Index (IBCL, 0x02)), 0x80), ^GFX0.BP00)
            }
        }

        Name (IBC0, 0x64)
        Name (IBLV, 0x64)
        Method (IBCC, 1, NotSerialized)
        {
            Store (Arg0, IBC0)
            If (IGDS)
            {
                If (LLess (IBC0, 0x05))
                {
                    Store (Zero, BRNS)
                }
                Else
                {
                    If (LLess (IBC0, Add (Divide (Multiply (DerefOf (Index (PNLS, 0x09
                        )), 0x64), 0xFF, ), One)))
                    {
                        Store (One, BRNS)
                    }
                    Else
                    {
                        If (LLess (IBC0, Add (Divide (Multiply (DerefOf (Index (PNLS, 0x08
                            )), 0x64), 0xFF, ), One)))
                        {
                            Store (0x02, BRNS)
                        }
                        Else
                        {
                            If (LLess (IBC0, Add (Divide (Multiply (DerefOf (Index (PNLS, 0x07
                                )), 0x64), 0xFF, ), One)))
                            {
                                Store (0x03, BRNS)
                            }
                            Else
                            {
                                If (LLess (IBC0, Add (Divide (Multiply (DerefOf (Index (PNLS, 0x06
                                    )), 0x64), 0xFF, ), One)))
                                {
                                    Store (0x04, BRNS)
                                }
                                Else
                                {
                                    If (LLess (IBC0, Add (Divide (Multiply (DerefOf (Index (PNLS, 0x05
                                        )), 0x64), 0xFF, ), One)))
                                    {
                                        Store (0x05, BRNS)
                                    }
                                    Else
                                    {
                                        If (LLess (IBC0, Add (Divide (Multiply (DerefOf (Index (PNLS, 0x04
                                            )), 0x64), 0xFF, ), One)))
                                        {
                                            Store (0x06, BRNS)
                                        }
                                        Else
                                        {
                                            If (LLess (IBC0, Add (Divide (Multiply (DerefOf (Index (PNLS, 0x03
                                                )), 0x64), 0xFF, ), One)))
                                            {
                                                Store (0x07, BRNS)
                                            }
                                            Else
                                            {
                                                If (LLess (IBC0, Add (Divide (Multiply (DerefOf (Index (PNLS, 0x02
                                                    )), 0x64), 0xFF, ), One)))
                                                {
                                                    Store (0x08, BRNS)
                                                }
                                                Else
                                                {
                                                    If (LLess (IBC0, Add (Divide (Multiply (DerefOf (Index (PNLS, One
                                                        )), 0x64), 0xFF, ), One)))
                                                    {
                                                        Store (0x09, BRNS)
                                                    }
                                                    Else
                                                    {
                                                        Store (0x0A, BRNS)
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Store (BRNS, ^LPCB.EC0.BLVL)
            }
        }

        Method (NHPG, 0, Serialized)
        {
            Store (Zero, ^RP01.HPEX)
            Store (Zero, ^RP02.HPEX)
            Store (Zero, ^RP03.HPEX)
            Store (Zero, ^RP04.HPEX)
            Store (One, ^RP01.HPSX)
            Store (One, ^RP02.HPSX)
            Store (One, ^RP03.HPSX)
            Store (One, ^RP04.HPSX)
        }

        Method (NPME, 0, Serialized)
        {
            Store (Zero, ^RP01.PMEX)
            Store (Zero, ^RP02.PMEX)
            Store (Zero, ^RP03.PMEX)
            Store (Zero, ^RP04.PMEX)
            Store (Zero, ^RP05.PMEX)
            Store (Zero, ^RP07.PMEX)
            Store (Zero, ^RP08.PMEX)
            Store (One, ^RP01.PMSX)
            Store (One, ^RP02.PMSX)
            Store (One, ^RP03.PMSX)
            Store (One, ^RP04.PMSX)
            Store (One, ^RP05.PMSX)
            Store (One, ^RP07.PMSX)
            Store (One, ^RP08.PMSX)
        }
    }

    Scope (\)
    {
        Name (PICM, Zero)
        Name (PRWP, Package (0x02)
        {
            Zero, 
            Zero
        })
        Method (GPRW, 2, NotSerialized)
        {
            Store (Arg0, Index (PRWP, Zero))
            Store (ShiftLeft (SS1, One), Local0)
            Or (Local0, ShiftLeft (SS2, 0x02), Local0)
            Or (Local0, ShiftLeft (SS3, 0x03), Local0)
            Or (Local0, ShiftLeft (SS4, 0x04), Local0)
            If (And (ShiftLeft (One, Arg1), Local0))
            {
                Store (Arg1, Index (PRWP, One))
            }
            Else
            {
                ShiftRight (Local0, One, Local0)
                FindSetLeftBit (Local0, Index (PRWP, One))
            }

            Return (PRWP)
        }
    }

    Scope (_PR)
    {
        Processor (CPU0, 0x00, 0x00000410, 0x06) {}
        Processor (CPU1, 0x01, 0x00000410, 0x06) {}
        Processor (CPU2, 0x02, 0x00000410, 0x06) {}
        Processor (CPU3, 0x03, 0x00000410, 0x06) {}
        Processor (CPU4, 0x04, 0x00000410, 0x06) {}
        Processor (CPU5, 0x05, 0x00000410, 0x06) {}
        Processor (CPU6, 0x06, 0x00000410, 0x06) {}
        Processor (CPU7, 0x07, 0x00000410, 0x06) {}
    }

    Scope (_SB.PCI0)
    {
        Device (PDRC)
        {
            Name (_HID, EisaId ("PNP0C02"))
            Name (_UID, One)
            Name (BUF0, ResourceTemplate ()
            {
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00004000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00008000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00001000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00001000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00000000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0xFED20000,         // Address Base
                    0x00020000,         // Address Length
                    )
                Memory32Fixed (ReadOnly,
                    0xFED90000,         // Address Base
                    0x00004000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0xFED45000,         // Address Base
                    0x0004B000,         // Address Length
                    )
                Memory32Fixed (ReadOnly,
                    0xFF000000,         // Address Base
                    0x01000000,         // Address Length
                    )
                Memory32Fixed (ReadOnly,
                    0xFEE00000,         // Address Base
                    0x00100000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00001000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0xF8C07900,         // Address Base
                    0x05EF8700,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0xF7000000,         // Address Base
                    0x01000000,         // Address Length
                    )
            })
            Method (_CRS, 0, Serialized)
            {
                CreateDWordField (BUF0, 0x04, RBR0)
                ShiftLeft (^^LPCB.RCBA, 0x0E, RBR0)
                CreateDWordField (BUF0, 0x7C, TBR0)
                Store (TBAB, TBR0)
                CreateDWordField (BUF0, 0x80, TBLN)
                If (LEqual (TBAB, Zero))
                {
                    Store (Zero, TBLN)
                }

                CreateDWordField (BUF0, 0x10, MBR0)
                ShiftLeft (MHBR, 0x0F, MBR0)
                CreateDWordField (BUF0, 0x1C, DBR0)
                ShiftLeft (DIBR, 0x0C, DBR0)
                CreateDWordField (BUF0, 0x28, EBR0)
                ShiftLeft (EPBR, 0x0C, EBR0)
                CreateDWordField (BUF0, 0x34, XBR0)
                ShiftLeft (PXBR, 0x1A, XBR0)
                CreateDWordField (BUF0, 0x38, XSZ0)
                ShiftRight (0x10000000, PXSZ, XSZ0)
                Return (BUF0)
            }
        }
    }

    Scope (_GPE)
    {
        Method (_L0B, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.P0P1, 0x02)
        }

        Method (_L09, 0, NotSerialized)
        {
            If (LEqual (RP1D, Zero))
            {
                \_SB.PCI0.RP01.HPME ()
                Notify (\_SB.PCI0.RP01, 0x02)
            }

            If (LEqual (RP2D, Zero))
            {
                \_SB.PCI0.RP02.HPME ()
                Notify (\_SB.PCI0.RP02, 0x02)
            }

            If (LEqual (RP3D, Zero))
            {
                \_SB.PCI0.RP03.HPME ()
                Notify (\_SB.PCI0.RP03, 0x02)
            }

            If (LEqual (RP4D, Zero))
            {
                \_SB.PCI0.RP04.HPME ()
                Notify (\_SB.PCI0.RP04, 0x02)
            }

            If (LEqual (RP5D, Zero))
            {
                \_SB.PCI0.RP05.HPME ()
                Notify (\_SB.PCI0.RP05, 0x02)
            }

            If (LEqual (RP7D, Zero))
            {
                \_SB.PCI0.RP07.HPME ()
                Notify (\_SB.PCI0.RP07, 0x02)
            }

            If (LEqual (RP8D, Zero))
            {
                \_SB.PCI0.RP08.HPME ()
                Notify (\_SB.PCI0.RP08, 0x02)
            }

            Notify (\_SB.PCI0.PEG0, 0x02)
            Notify (\_SB.PCI0.PEG0.PEGP, 0x02)
            Notify (\_SB.PCI0.PEG1, 0x02)
            Notify (\_SB.PCI0.PEG2, 0x02)
            Notify (\_SB.PCI0.PEG3, 0x02)
        }

        Method (_L0D, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.EHC1, 0x02)
            Notify (\_SB.PCI0.EHC2, 0x02)
            Notify (\_SB.PCI0.HDEF, 0x02)
            Notify (\_SB.PCI0.GLAN, 0x02)
        }

        Method (_L01, 0, NotSerialized)
        {
            Add (L01C, One, L01C)
            If (LAnd (LEqual (RP1D, Zero), \_SB.PCI0.RP01.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP01.PDCX)
                {
                    Store (One, \_SB.PCI0.RP01.PDCX)
                    Store (One, \_SB.PCI0.RP01.HPSX)
                    If (LNot (\_SB.PCI0.RP01.PDSX))
                    {
                        Store (Zero, \_SB.PCI0.RP01.L0SE)
                    }

                    Notify (\_SB.PCI0.RP01, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP01.HPSX)
                }
            }

            If (LAnd (LEqual (RP2D, Zero), \_SB.PCI0.RP02.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP02.PDCX)
                {
                    Store (One, \_SB.PCI0.RP02.PDCX)
                    Store (One, \_SB.PCI0.RP02.HPSX)
                    If (LNot (\_SB.PCI0.RP02.PDSX))
                    {
                        Store (Zero, \_SB.PCI0.RP02.L0SE)
                    }

                    Notify (\_SB.PCI0.RP02, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP02.HPSX)
                }
            }

            If (LAnd (LEqual (RP3D, Zero), \_SB.PCI0.RP03.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP03.PDCX)
                {
                    Store (One, \_SB.PCI0.RP03.PDCX)
                    Store (One, \_SB.PCI0.RP03.HPSX)
                    If (LNot (\_SB.PCI0.RP03.PDSX))
                    {
                        Store (Zero, \_SB.PCI0.RP03.L0SE)
                    }

                    Notify (\_SB.PCI0.RP03, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP03.HPSX)
                }
            }

            If (LAnd (LEqual (RP4D, Zero), \_SB.PCI0.RP04.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP04.PDCX)
                {
                    Store (One, \_SB.PCI0.RP04.PDCX)
                    Store (One, \_SB.PCI0.RP04.HPSX)
                    If (LNot (\_SB.PCI0.RP04.PDSX))
                    {
                        Store (Zero, \_SB.PCI0.RP04.L0SE)
                    }

                    Notify (\_SB.PCI0.RP04, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP04.HPSX)
                }
            }

            If (LAnd (LEqual (RP5D, Zero), \_SB.PCI0.RP05.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP05.PDCX)
                {
                    Store (One, \_SB.PCI0.RP05.PDCX)
                    Store (One, \_SB.PCI0.RP05.HPSX)
                    If (LNot (\_SB.PCI0.RP05.PDSX))
                    {
                        Store (Zero, \_SB.PCI0.RP05.L0SE)
                    }

                    Notify (\_SB.PCI0.RP05, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP05.HPSX)
                }
            }

            If (LAnd (LEqual (RP7D, Zero), \_SB.PCI0.RP07.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP07.PDCX)
                {
                    Store (One, \_SB.PCI0.RP07.PDCX)
                    Store (One, \_SB.PCI0.RP07.HPSX)
                    Sleep (0x64)
                    If (\_SB.PCI0.RP07.PDSX)
                    {
                        \_SB.PHSR (0x99)
                    }

                    If (LNot (\_SB.PCI0.RP07.PDSX))
                    {
                        Store (Zero, \_SB.PCI0.RP07.L0SE)
                    }

                    If (ECON)
                    {
                        Notify (\_SB.PCI0.RP07, Zero)
                    }
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP07.HPSX)
                }
            }

            If (LAnd (LEqual (RP7D, Zero), \_SB.PCI0.RP07.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP07.PDCX)
                {
                    Store (One, \_SB.PCI0.RP07.PDCX)
                    Store (One, \_SB.PCI0.RP07.HPSX)
                    If (\_SB.PCI0.RP07.PDSX)
                    {
                        Store (0x0A, Local2)
                        While (LGreater (Local2, Zero))
                        {
                            Sleep (0x64)
                            And (\_SB.PCI0.RP07.J38X.VDID, 0xFFF0FFFF, Local1)
                            If (LEqual (Local1, 0x2380197B))
                            {
                                Store (0x88, \_SB.PCI0.RP07.J38X.LAT0)
                                Store (0x80, \_SB.PCI0.RP07.J38X.PMC0)
                                \_SB.PHSR (0x99)
                                Store (Zero, Local2)
                                If (\_SB.PCI0.LPCB.EC0.SW2S)
                                {
                                    Store (Zero, \_SB.PCI0.RP07.J38X.D3EF)
                                }
                                Else
                                {
                                    Store (One, \_SB.PCI0.RP07.J38X.D3EF)
                                }
                            }
                            Else
                            {
                                Decrement (Local2)
                            }
                        }
                    }
                    Else
                    {
                        Sleep (0x64)
                    }

                    Notify (\_SB.PCI0.RP07, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP07.HPSX)
                }
            }

            If (LAnd (LEqual (RP8D, Zero), \_SB.PCI0.RP08.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP08.PDCX)
                {
                    Store (One, \_SB.PCI0.RP08.PDCX)
                    Store (One, \_SB.PCI0.RP08.HPSX)
                    If (LNot (\_SB.PCI0.RP08.PDSX))
                    {
                        Store (Zero, \_SB.PCI0.RP08.L0SE)
                    }

                    If (ECON)
                    {
                        Notify (\_SB.PCI0.RP08, Zero)
                    }
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP08.HPSX)
                }
            }
        }

        Method (_L02, 0, NotSerialized)
        {
            Store (Zero, GPEC)
            Notify (\_TZ.TZ00, 0x80)
            If (CondRefOf (TNOT))
            {
                TNOT ()
            }
        }

        Method (_L06, 0, NotSerialized)
        {
            If (LAnd (\_SB.PCI0.GFX0.GSSE, LNot (GSMI)))
            {
                \_SB.PCI0.GFX0.GSCI ()
            }
        }

        Method (_L07, 0, NotSerialized)
        {
            Store (0x20, \_SB.PCI0.SBUS.HSTS)
        }
    }

    Scope (\)
    {
        OperationRegion (IO_T, SystemIO, 0x0700, 0x10)
        Field (IO_T, ByteAcc, NoLock, Preserve)
        {
            TRPI,   16, 
                    Offset (0x04), 
                    Offset (0x06), 
                    Offset (0x08), 
            TRP0,   8, 
                    Offset (0x0A), 
                    Offset (0x0B), 
                    Offset (0x0C), 
                    Offset (0x0D), 
                    Offset (0x0E), 
                    Offset (0x0F), 
                    Offset (0x10)
        }

        OperationRegion (IO_D, SystemIO, 0x0810, 0x04)
        Field (IO_D, ByteAcc, NoLock, Preserve)
        {
            TRPD,   8
        }

        OperationRegion (IO_H, SystemIO, 0x1000, 0x04)
        Field (IO_H, ByteAcc, NoLock, Preserve)
        {
            TRPH,   8
        }

        OperationRegion (PMIO, SystemIO, PMBS, 0x80)
        Field (PMIO, ByteAcc, NoLock, Preserve)
        {
                    Offset (0x20), 
                ,   2, 
            SPST,   1, 
                ,   16, 
            GPS3,   1, 
                    Offset (0x28), 
                ,   19, 
            GPE3,   1, 
                    Offset (0x3C), 
                ,   1, 
            UPRW,   1, 
                    Offset (0x42), 
                ,   1, 
            GPEC,   1, 
                    Offset (0x64), 
                ,   9, 
            SCIS,   1, 
                    Offset (0x66)
        }

        OperationRegion (GPIO, SystemIO, GPBS, 0x64)
        Field (GPIO, ByteAcc, NoLock, Preserve)
        {
            GU00,   8, 
            GU01,   8, 
            GU02,   8, 
            GU03,   8, 
            GIO0,   8, 
            GIO1,   8, 
            GIO2,   8, 
            GIO3,   8, 
                    Offset (0x0C), 
            GL00,   8, 
            GO08,   1, 
            GO09,   1, 
            GO10,   1, 
            GO11,   1, 
            GO12,   1, 
            GO13,   1, 
            GO14,   1, 
            GO15,   1, 
            GO16,   1, 
            GO17,   1, 
            GO18,   1, 
            GI19,   1, 
            GO20,   1, 
            GI21,   1, 
            GI22,   1, 
            GO23,   1, 
            GO24,   1, 
                ,   1, 
                ,   1, 
            GO27,   1, 
            GO28,   1, 
                ,   1, 
                ,   1, 
                    Offset (0x10), 
                    Offset (0x18), 
            GB00,   8, 
            GB01,   8, 
            GB02,   8, 
            GB03,   8, 
                    Offset (0x2C), 
            GIV0,   8, 
            GIV1,   8, 
            GIV2,   8, 
            GIV3,   8, 
            GU04,   8, 
            GU05,   8, 
            GU06,   8, 
                ,   1, 
                ,   1, 
            GU07,   1, 
                    Offset (0x34), 
            GIO4,   8, 
            GIO5,   8, 
            GIO6,   8, 
            GIO7,   8, 
                ,   1, 
            GO33,   1, 
            GO34,   1, 
            GO35,   1, 
            GO36,   1, 
            GI37,   1, 
            GI38,   1, 
            GI39,   1, 
            GL40,   1, 
            GL41,   1, 
            GL42,   1, 
            GL43,   1, 
            GL44,   1, 
            GO45,   1, 
            GL46,   1, 
            GL47,   1, 
            GO48,   1, 
            GO49,   1, 
            GO50,   1, 
            GO51,   1, 
            GO52,   1, 
            GO53,   1, 
            GO54,   1, 
            GO55,   1, 
                ,   1, 
            GI57,   1, 
                ,   1, 
                ,   1, 
                ,   1, 
                ,   1, 
                ,   1, 
                    Offset (0x3C), 
                    Offset (0x40), 
            GU08,   8, 
            GU09,   8, 
            GU0A,   8, 
            GU0B,   8, 
            GIO8,   8, 
            GIO9,   8, 
            GIOA,   8, 
            GIOB,   8, 
            GL08,   8, 
            GL09,   8, 
            GL0A,   8, 
            GL0B,   8
        }

        OperationRegion (PRT2, SystemIO, 0x1610, 0x14)
        Field (PRT2, DWordAcc, Lock, Preserve)
        {
            ATA0,   8, 
            ATA1,   8, 
            ATA2,   8, 
            ATA3,   8, 
            ATA4,   8, 
            ATA5,   8, 
            ATA6,   8, 
            ATA7,   8, 
            ATA8,   8, 
            ATA9,   8, 
            ATAA,   8, 
            ATAB,   8, 
            ATAC,   8, 
            ATAD,   8, 
            ATAE,   8, 
            ATAF,   8
        }

        OperationRegion (RCRB, SystemMemory, SRCB, 0x4000)
        Field (RCRB, DWordAcc, Lock, Preserve)
        {
                    Offset (0x1000), 
                    Offset (0x3000), 
                    Offset (0x3404), 
            HPAS,   2, 
                ,   5, 
            HPAE,   1, 
                    Offset (0x3418), 
                ,   1, 
                ,   1, 
            SATD,   1, 
            SMBD,   1, 
            HDAD,   1, 
                    Offset (0x341A), 
            RP1D,   1, 
            RP2D,   1, 
            RP3D,   1, 
            RP4D,   1, 
            RP5D,   1, 
            RP6D,   1, 
            RP7D,   1, 
            RP8D,   1, 
                    Offset (0x359C), 
            UP0D,   1, 
            UP1D,   1, 
            UP2D,   1, 
            UP3D,   1, 
            UP4D,   1, 
            UP5D,   1, 
            UP6D,   1, 
            UP7D,   1, 
            UP8D,   1, 
            UP9D,   1, 
            UPAD,   1, 
            UPBD,   1, 
            UPCD,   1, 
            UPDD,   1, 
                ,   1, 
                    Offset (0x359E)
        }
    }

    Scope (_SB.PCI0)
    {
        Device (GLAN)
        {
            Name (_ADR, 0x00190000)
            Name (_PRW, Package (0x02)
            {
                0x0D, 
                0x03
            })
        }

        Device (EHC1)
        {
            Name (_ADR, 0x001D0000)
            OperationRegion (PWKE, PCI_Config, 0x62, 0x04)
            Field (PWKE, DWordAcc, NoLock, Preserve)
            {
                    ,   1, 
                PWUC,   8
            }

            Method (_PSW, 1, NotSerialized)
            {
                If (Arg0)
                {
                    Store (Ones, PWUC)
                }
                Else
                {
                    Store (Zero, PWUC)
                }
            }

            Method (_S3D, 0, NotSerialized)
            {
                Return (0x02)
            }

            Method (_S4D, 0, NotSerialized)
            {
                Return (0x02)
            }

            Device (HUBN)
            {
                Name (_ADR, Zero)
                Device (PR01)
                {
                    Name (_ADR, One)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Package (0x01)
                    {
                        Buffer (0x10)
                        {
                            /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                            /* 0008 */    0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        }
                    })
                    Device (PR11)
                    {
                        Name (_ADR, One)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xE1, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                    }

                    Device (PR12)
                    {
                        Name (_ADR, 0x02)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xE1, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                    }

                    Device (PR13)
                    {
                        Name (_ADR, 0x03)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xE1, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                    }

                    Device (PR14)
                    {
                        Name (_ADR, 0x04)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xE1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        Alias (SBV1, SDGV)
                        Method (_DSM, 4, Serialized)
                        {
                            Name (_T_0, Zero)
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    If (LEqual (Arg1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        If (LEqual (SDGV, 0xFF))
                                        {
                                            Return (Zero)
                                        }
                                        Else
                                        {
                                            Return (One)
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                    }
                                }
                            }

                            Return (Zero)
                        }
                    }

                    Device (PR15)
                    {
                        Name (_ADR, 0x05)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xB1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        Alias (SBV2, SDGV)
                        Method (_DSM, 4, Serialized)
                        {
                            Name (_T_0, Zero)
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    If (LEqual (Arg1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        If (LEqual (SDGV, 0xFF))
                                        {
                                            Return (Zero)
                                        }
                                        Else
                                        {
                                            Return (One)
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                    }
                                }
                            }

                            Return (Zero)
                        }
                    }

                    Device (PR16)
                    {
                        Name (_ADR, 0x06)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xB1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        Alias (SBV1, SDGV)
                        Method (_DSM, 4, Serialized)
                        {
                            Name (_T_0, Zero)
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    If (LEqual (Arg1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        If (LEqual (SDGV, 0xFF))
                                        {
                                            Return (Zero)
                                        }
                                        Else
                                        {
                                            Return (One)
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                    }
                                }
                            }

                            Return (Zero)
                        }
                    }

                    Device (PR17)
                    {
                        Name (_ADR, 0x07)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xB1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        Alias (SBV2, SDGV)
                        Method (_DSM, 4, Serialized)
                        {
                            Name (_T_0, Zero)
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    If (LEqual (Arg1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        If (LEqual (SDGV, 0xFF))
                                        {
                                            Return (Zero)
                                        }
                                        Else
                                        {
                                            Return (One)
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                    }
                                }
                            }

                            Return (Zero)
                        }
                    }

                    Device (PR18)
                    {
                        Name (_ADR, 0x08)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xB1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                    }
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x0D, 
                0x03
            })
            Device (HUB0)
            {
                Name (_ADR, Zero)
                Device (PRT1)
                {
                    Name (_ADR, One)
                    Name (_UPC, Package (0x04)
                    {
                        Zero, 
                        0xFF, 
                        Zero, 
                        Zero
                    })
                    Device (UP03)
                    {
                        Name (_ADR, 0x03)
                        Name (_UPC, Package (0x04)
                        {
                            Zero, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                    }

                    Device (UP04)
                    {
                        Name (_ADR, 0x04)
                        Name (_UPC, Package (0x04)
                        {
                            Zero, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                    }

                    Device (UP06)
                    {
                        Name (_ADR, 0x06)
                        Name (_UPC, Package (0x04)
                        {
                            Zero, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                    }
                }
            }
        }

        Device (EHC2)
        {
            Name (_ADR, 0x001A0000)
            OperationRegion (PWKE, PCI_Config, 0x62, 0x04)
            Field (PWKE, DWordAcc, NoLock, Preserve)
            {
                    ,   1, 
                PWUC,   6
            }

            Method (_PSW, 1, NotSerialized)
            {
                If (Arg0)
                {
                    Store (Ones, PWUC)
                }
                Else
                {
                    Store (Zero, PWUC)
                }
            }

            Method (_S3D, 0, NotSerialized)
            {
                Return (0x02)
            }

            Method (_S4D, 0, NotSerialized)
            {
                Return (0x02)
            }

            Device (HUBN)
            {
                Name (_ADR, Zero)
                Device (PR01)
                {
                    Name (_ADR, One)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        Zero, 
                        Zero, 
                        Zero
                    })
                    Name (_PLD, Package (0x01)
                    {
                        Buffer (0x10)
                        {
                            /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                            /* 0008 */    0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        }
                    })
                    Device (PR11)
                    {
                        Name (_ADR, One)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xE1, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                    }

                    Device (PR12)
                    {
                        Name (_ADR, 0x02)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xE1, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        Alias (SBV1, SDGV)
                        Method (_DSM, 4, Serialized)
                        {
                            Name (_T_0, Zero)
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    If (LEqual (Arg1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        If (LEqual (SDGV, 0xFF))
                                        {
                                            Return (Zero)
                                        }
                                        Else
                                        {
                                            Return (One)
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                    }
                                }
                            }

                            Return (Zero)
                        }
                    }

                    Device (PR13)
                    {
                        Name (_ADR, 0x03)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xE1, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        Alias (SBV2, SDGV)
                        Method (_DSM, 4, Serialized)
                        {
                            Name (_T_0, Zero)
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    If (LEqual (Arg1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        If (LEqual (SDGV, 0xFF))
                                        {
                                            Return (Zero)
                                        }
                                        Else
                                        {
                                            Return (One)
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                    }
                                }
                            }

                            Return (Zero)
                        }
                    }

                    Device (PR14)
                    {
                        Name (_ADR, 0x04)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xE1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                    }

                    Device (PR15)
                    {
                        Name (_ADR, 0x05)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xB1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                    }

                    Device (PR16)
                    {
                        Name (_ADR, 0x06)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0xB1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                    }
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x0D, 
                0x03
            })
            Device (HUB0)
            {
                Name (_ADR, Zero)
                Device (PRT1)
                {
                    Name (_ADR, One)
                    Name (_UPC, Package (0x04)
                    {
                        Zero, 
                        0xFF, 
                        Zero, 
                        Zero
                    })
                    Device (MICD)
                    {
                        Name (_ADR, 0x03)
                        Name (_UPC, Package (0x04)
                        {
                            Zero, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                    }
                }
            }
        }

        Device (HDEF)
        {
            Name (_ADR, 0x001B0000)
            OperationRegion (HDAR, PCI_Config, 0x4C, 0x10)
            Field (HDAR, WordAcc, NoLock, Preserve)
            {
                DCKA,   1, 
                        Offset (0x01), 
                DCKM,   1, 
                    ,   6, 
                DCKS,   1, 
                        Offset (0x08), 
                    ,   15, 
                PMES,   1
            }

            Name (_PRW, Package (0x02)
            {
                0x0D, 
                0x03
            })
        }

        Device (RP01)
        {
            Name (_ADR, 0x001C0000)
            OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
            Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
            {
                        Offset (0x10), 
                L0SE,   1, 
                        Offset (0x11), 
                        Offset (0x12), 
                    ,   13, 
                LASX,   1, 
                        Offset (0x1A), 
                ABPX,   1, 
                    ,   2, 
                PDCX,   1, 
                    ,   2, 
                PDSX,   1, 
                        Offset (0x1B), 
                LSCX,   1, 
                        Offset (0x20), 
                        Offset (0x22), 
                PSPX,   1, 
                        Offset (0x28), 
                    ,   3, 
                DCTV,   1, 
                        Offset (0x2A), 
                        Offset (0x94), 
                LCTM,   1, 
                        Offset (0x98), 
                    ,   30, 
                HPEX,   1, 
                PMEX,   1, 
                    ,   30, 
                HPSX,   1, 
                PMSX,   1
            }

            Device (PXSX)
            {
                Name (_ADR, Zero)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
            }

            Method (HPME, 0, Serialized)
            {
                If (PMSX)
                {
                    Store (0xC8, Local0)
                    While (Local0)
                    {
                        Store (One, PMSX)
                        If (PMSX)
                        {
                            Decrement (Local0)
                        }
                        Else
                        {
                            Store (Zero, Local0)
                        }
                    }

                    Notify (PXSX, 0x02)
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x09, 
                0x03
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR04 ())
                }

                Return (PR04 ())
            }
        }

        Device (RP02)
        {
            Name (_ADR, 0x001C0001)
            OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
            Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
            {
                        Offset (0x10), 
                L0SE,   1, 
                        Offset (0x11), 
                        Offset (0x12), 
                    ,   13, 
                LASX,   1, 
                        Offset (0x1A), 
                ABPX,   1, 
                    ,   2, 
                PDCX,   1, 
                    ,   2, 
                PDSX,   1, 
                        Offset (0x1B), 
                LSCX,   1, 
                        Offset (0x20), 
                        Offset (0x22), 
                PSPX,   1, 
                        Offset (0x28), 
                    ,   3, 
                DCTV,   1, 
                        Offset (0x2A), 
                        Offset (0x94), 
                LCTM,   1, 
                        Offset (0x98), 
                    ,   30, 
                HPEX,   1, 
                PMEX,   1, 
                    ,   30, 
                HPSX,   1, 
                PMSX,   1
            }

            Device (PXSX)
            {
                Name (_ADR, Zero)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
            }

            Method (HPME, 0, Serialized)
            {
                If (PMSX)
                {
                    Store (0xC8, Local0)
                    While (Local0)
                    {
                        Store (One, PMSX)
                        If (PMSX)
                        {
                            Decrement (Local0)
                        }
                        Else
                        {
                            Store (Zero, Local0)
                        }
                    }

                    Notify (PXSX, 0x02)
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x09, 
                0x03
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR05 ())
                }

                Return (PR05 ())
            }
        }

        Device (RP03)
        {
            Name (_ADR, 0x001C0002)
            OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
            Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
            {
                        Offset (0x10), 
                L0SE,   1, 
                        Offset (0x11), 
                        Offset (0x12), 
                    ,   13, 
                LASX,   1, 
                        Offset (0x1A), 
                ABPX,   1, 
                    ,   2, 
                PDCX,   1, 
                    ,   2, 
                PDSX,   1, 
                        Offset (0x1B), 
                LSCX,   1, 
                        Offset (0x20), 
                        Offset (0x22), 
                PSPX,   1, 
                        Offset (0x28), 
                    ,   3, 
                DCTV,   1, 
                        Offset (0x2A), 
                        Offset (0x94), 
                LCTM,   1, 
                        Offset (0x98), 
                    ,   30, 
                HPEX,   1, 
                PMEX,   1, 
                    ,   30, 
                HPSX,   1, 
                PMSX,   1
            }

            Device (PXSX)
            {
                Name (_ADR, Zero)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
            }

            Method (HPME, 0, Serialized)
            {
                If (PMSX)
                {
                    Store (0xC8, Local0)
                    While (Local0)
                    {
                        Store (One, PMSX)
                        If (PMSX)
                        {
                            Decrement (Local0)
                        }
                        Else
                        {
                            Store (Zero, Local0)
                        }
                    }

                    Notify (PXSX, 0x02)
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x09, 
                0x03
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR06 ())
                }

                Return (PR06 ())
            }
        }

        Device (RP04)
        {
            Name (_ADR, 0x001C0003)
            OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
            Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
            {
                        Offset (0x10), 
                L0SE,   1, 
                        Offset (0x11), 
                        Offset (0x12), 
                    ,   13, 
                LASX,   1, 
                        Offset (0x1A), 
                ABPX,   1, 
                    ,   2, 
                PDCX,   1, 
                    ,   2, 
                PDSX,   1, 
                        Offset (0x1B), 
                LSCX,   1, 
                        Offset (0x20), 
                        Offset (0x22), 
                PSPX,   1, 
                        Offset (0x28), 
                    ,   3, 
                DCTV,   1, 
                        Offset (0x2A), 
                        Offset (0x94), 
                LCTM,   1, 
                        Offset (0x98), 
                    ,   30, 
                HPEX,   1, 
                PMEX,   1, 
                    ,   30, 
                HPSX,   1, 
                PMSX,   1
            }

            Device (PXSX)
            {
                Name (_ADR, Zero)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
            }

            Method (HPME, 0, Serialized)
            {
                If (PMSX)
                {
                    Store (0xC8, Local0)
                    While (Local0)
                    {
                        Store (One, PMSX)
                        If (PMSX)
                        {
                            Decrement (Local0)
                        }
                        Else
                        {
                            Store (Zero, Local0)
                        }
                    }

                    Notify (PXSX, 0x02)
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x09, 
                0x03
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR07 ())
                }

                Return (PR07 ())
            }
        }

        Device (RP05)
        {
            Name (_ADR, 0x001C0004)
            OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
            Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
            {
                        Offset (0x10), 
                L0SE,   1, 
                        Offset (0x11), 
                        Offset (0x12), 
                    ,   13, 
                LASX,   1, 
                        Offset (0x1A), 
                ABPX,   1, 
                    ,   2, 
                PDCX,   1, 
                    ,   2, 
                PDSX,   1, 
                        Offset (0x1B), 
                LSCX,   1, 
                        Offset (0x20), 
                        Offset (0x22), 
                PSPX,   1, 
                        Offset (0x28), 
                    ,   3, 
                DCTV,   1, 
                        Offset (0x2A), 
                        Offset (0x94), 
                LCTM,   1, 
                        Offset (0x98), 
                    ,   30, 
                HPEX,   1, 
                PMEX,   1, 
                    ,   30, 
                HPSX,   1, 
                PMSX,   1
            }

            Device (PXSX)
            {
                Name (_ADR, Zero)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
            }

            Method (HPME, 0, Serialized)
            {
                If (PMSX)
                {
                    Store (0xC8, Local0)
                    While (Local0)
                    {
                        Store (One, PMSX)
                        If (PMSX)
                        {
                            Decrement (Local0)
                        }
                        Else
                        {
                            Store (Zero, Local0)
                        }
                    }

                    Notify (PXSX, 0x02)
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x09, 
                0x03
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR08 ())
                }

                Return (PR08 ())
            }
        }

        Device (RP06)
        {
            Name (_ADR, 0x001C0005)
            OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
            Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
            {
                        Offset (0x10), 
                L0SE,   1, 
                        Offset (0x11), 
                        Offset (0x12), 
                    ,   13, 
                LASX,   1, 
                        Offset (0x1A), 
                ABPX,   1, 
                    ,   2, 
                PDCX,   1, 
                    ,   2, 
                PDSX,   1, 
                        Offset (0x1B), 
                LSCX,   1, 
                        Offset (0x20), 
                        Offset (0x22), 
                PSPX,   1, 
                        Offset (0x28), 
                    ,   3, 
                DCTV,   1, 
                        Offset (0x2A), 
                        Offset (0x94), 
                LCTM,   1, 
                        Offset (0x98), 
                    ,   30, 
                HPEX,   1, 
                PMEX,   1, 
                    ,   30, 
                HPSX,   1, 
                PMSX,   1
            }

            Device (PXSX)
            {
                Name (_ADR, Zero)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
            }

            Method (HPME, 0, Serialized)
            {
                If (PMSX)
                {
                    Store (0xC8, Local0)
                    While (Local0)
                    {
                        Store (One, PMSX)
                        If (PMSX)
                        {
                            Decrement (Local0)
                        }
                        Else
                        {
                            Store (Zero, Local0)
                        }
                    }

                    Notify (PXSX, 0x02)
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x09, 
                0x03
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR09 ())
                }

                Return (PR09 ())
            }
        }

        Device (RP07)
        {
            Name (_ADR, 0x001C0006)
            OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
            Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
            {
                        Offset (0x10), 
                L0SE,   1, 
                        Offset (0x11), 
                        Offset (0x12), 
                    ,   13, 
                LASX,   1, 
                        Offset (0x1A), 
                ABPX,   1, 
                    ,   2, 
                PDCX,   1, 
                    ,   2, 
                PDSX,   1, 
                        Offset (0x1B), 
                LSCX,   1, 
                        Offset (0x20), 
                        Offset (0x22), 
                PSPX,   1, 
                        Offset (0x28), 
                    ,   3, 
                DCTV,   1, 
                        Offset (0x2A), 
                        Offset (0x94), 
                LCTM,   1, 
                        Offset (0x98), 
                    ,   30, 
                HPEX,   1, 
                PMEX,   1, 
                    ,   30, 
                HPSX,   1, 
                PMSX,   1
            }

            Device (PXSX)
            {
                Name (_ADR, Zero)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
            }

            Method (HPME, 0, Serialized)
            {
                If (PMSX)
                {
                    Store (0xC8, Local0)
                    While (Local0)
                    {
                        Store (One, PMSX)
                        If (PMSX)
                        {
                            Decrement (Local0)
                        }
                        Else
                        {
                            Store (Zero, Local0)
                        }
                    }

                    Notify (PXSX, 0x02)
                }
            }

            Device (J38X)
            {
                Name (_ADR, Zero)
                OperationRegion (PCFG, PCI_Config, Zero, 0xFF)
                Field (PCFG, ByteAcc, NoLock, Preserve)
                {
                    VDID,   32, 
                            Offset (0x2C), 
                    SSID,   32, 
                            Offset (0xAC), 
                        ,   6, 
                    D3EF,   1, 
                            Offset (0xAD), 
                            Offset (0xB2), 
                    LAT0,   8, 
                            Offset (0xCF), 
                        ,   7, 
                    ATRB,   1, 
                            Offset (0xD3), 
                    PMC0,   8
                }

                Method (_STA, 0, NotSerialized)
                {
                    If (LNotEqual (VDID, 0xFFFFFFFF))
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (_RMV, 0, NotSerialized)
                {
                    Return (One)
                }
            }

            Device (J382)
            {
                Name (_ADR, 0x02)
                OperationRegion (PCFG, PCI_Config, Zero, 0xFF)
                Field (PCFG, ByteAcc, NoLock, Preserve)
                {
                    VDID,   32, 
                            Offset (0x2C), 
                    SSID,   32, 
                            Offset (0xAC), 
                        ,   6, 
                    D3EF,   1, 
                            Offset (0xAD), 
                            Offset (0xB2), 
                    LAT0,   8, 
                            Offset (0xCF), 
                        ,   7, 
                    ATRB,   1, 
                            Offset (0xD3), 
                    PMC0,   8
                }

                Method (_STA, 0, NotSerialized)
                {
                    If (LNotEqual (VDID, 0xFFFFFFFF))
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (_RMV, 0, NotSerialized)
                {
                    Return (One)
                }
            }

            Device (J383)
            {
                Name (_ADR, 0x03)
                OperationRegion (PCFG, PCI_Config, Zero, 0xFF)
                Field (PCFG, ByteAcc, NoLock, Preserve)
                {
                    VDID,   32, 
                            Offset (0x2C), 
                    SSID,   32, 
                            Offset (0xAC), 
                        ,   6, 
                    D3EF,   1, 
                            Offset (0xAD), 
                            Offset (0xB2), 
                    LAT0,   8, 
                            Offset (0xCF), 
                        ,   7, 
                    ATRB,   1, 
                            Offset (0xD3), 
                    PMC0,   8
                }

                Method (_STA, 0, NotSerialized)
                {
                    If (LNotEqual (VDID, 0xFFFFFFFF))
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (_RMV, 0, NotSerialized)
                {
                    Return (One)
                }
            }

            Device (J384)
            {
                Name (_ADR, 0x04)
                OperationRegion (PCFG, PCI_Config, Zero, 0xFF)
                Field (PCFG, ByteAcc, NoLock, Preserve)
                {
                    VDID,   32, 
                            Offset (0x2C), 
                    SSID,   32, 
                            Offset (0xAC), 
                        ,   6, 
                    D3EF,   1, 
                            Offset (0xAD), 
                            Offset (0xB2), 
                    LAT0,   8, 
                            Offset (0xCF), 
                        ,   7, 
                    ATRB,   1, 
                            Offset (0xD3), 
                    PMC0,   8
                }

                Method (_STA, 0, NotSerialized)
                {
                    If (LNotEqual (VDID, 0xFFFFFFFF))
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (_RMV, 0, NotSerialized)
                {
                    Return (One)
                }
            }

            Device (J387)
            {
                Name (_ADR, Zero)
                Method (_STA, 0, NotSerialized)
                {
                    If (^^^RP01.PDSX)
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (_RMV, 0, NotSerialized)
                {
                    If (_OSI ("Windows 2009"))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (One)
                    }
                }
            }

            Device (J386)
            {
                Name (_ADR, 0x02)
                Method (_RMV, 0, NotSerialized)
                {
                    If (_OSI ("Windows 2009"))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (One)
                    }
                }
            }

            Device (J388)
            {
                Name (_ADR, 0x03)
                Method (_RMV, 0, NotSerialized)
                {
                    If (_OSI ("Windows 2009"))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (One)
                    }
                }
            }

            Device (J389)
            {
                Name (_ADR, 0x04)
                Method (_RMV, 0, NotSerialized)
                {
                    If (_OSI ("Windows 2009"))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (One)
                    }
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x09, 
                0x03
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR0E)
                }

                Return (PR0E)
            }
        }

        Device (RP08)
        {
            Name (_ADR, 0x001C0007)
            OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
            Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
            {
                        Offset (0x10), 
                L0SE,   1, 
                        Offset (0x11), 
                        Offset (0x12), 
                    ,   13, 
                LASX,   1, 
                        Offset (0x1A), 
                ABPX,   1, 
                    ,   2, 
                PDCX,   1, 
                    ,   2, 
                PDSX,   1, 
                        Offset (0x1B), 
                LSCX,   1, 
                        Offset (0x20), 
                        Offset (0x22), 
                PSPX,   1, 
                        Offset (0x28), 
                    ,   3, 
                DCTV,   1, 
                        Offset (0x2A), 
                        Offset (0x94), 
                LCTM,   1, 
                        Offset (0x98), 
                    ,   30, 
                HPEX,   1, 
                PMEX,   1, 
                    ,   30, 
                HPSX,   1, 
                PMSX,   1
            }

            Device (PXSX)
            {
                Name (_ADR, Zero)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
            }

            Method (HPME, 0, Serialized)
            {
                If (PMSX)
                {
                    Store (0xC8, Local0)
                    While (Local0)
                    {
                        Store (One, PMSX)
                        If (PMSX)
                        {
                            Decrement (Local0)
                        }
                        Else
                        {
                            Store (Zero, Local0)
                        }
                    }

                    Notify (PXSX, 0x02)
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x09, 
                0x03
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR0F)
                }

                Return (PR0F)
            }
        }

        Device (SAT0)
        {
            Name (_ADR, 0x001F0002)
        }

        Device (SAT1)
        {
            Name (_ADR, 0x001F0005)
        }

        Device (SBUS)
        {
            Name (_ADR, 0x001F0003)
            OperationRegion (SMBP, PCI_Config, 0x40, 0xC0)
            Field (SMBP, DWordAcc, NoLock, Preserve)
            {
                    ,   2, 
                I2CE,   1
            }

            OperationRegion (SMPB, PCI_Config, 0x20, 0x04)
            Field (SMPB, DWordAcc, NoLock, Preserve)
            {
                    ,   5, 
                SBAR,   11
            }

            OperationRegion (SMBI, SystemIO, ShiftLeft (SBAR, 0x05), 0x10)
            Field (SMBI, ByteAcc, NoLock, Preserve)
            {
                HSTS,   8, 
                        Offset (0x02), 
                HCON,   8, 
                HCOM,   8, 
                TXSA,   8, 
                DAT0,   8, 
                DAT1,   8, 
                HBDR,   8, 
                PECR,   8, 
                RXSA,   8, 
                SDAT,   16
            }

            Method (SSXB, 2, Serialized)
            {
                If (STRT ())
                {
                    Return (Zero)
                }

                Store (Zero, I2CE)
                Store (0xBF, HSTS)
                Store (Arg0, TXSA)
                Store (Arg1, HCOM)
                Store (0x48, HCON)
                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (One)
                }

                Return (Zero)
            }

            Method (SRXB, 1, Serialized)
            {
                If (STRT ())
                {
                    Return (0xFFFF)
                }

                Store (Zero, I2CE)
                Store (0xBF, HSTS)
                Store (Or (Arg0, One), TXSA)
                Store (0x44, HCON)
                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (DAT0)
                }

                Return (0xFFFF)
            }

            Method (SWRB, 3, Serialized)
            {
                If (STRT ())
                {
                    Return (Zero)
                }

                Store (Zero, I2CE)
                Store (0xBF, HSTS)
                Store (Arg0, TXSA)
                Store (Arg1, HCOM)
                Store (Arg2, DAT0)
                Store (0x48, HCON)
                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (One)
                }

                Return (Zero)
            }

            Method (SRDB, 2, Serialized)
            {
                If (STRT ())
                {
                    Return (0xFFFF)
                }

                Store (Zero, I2CE)
                Store (0xBF, HSTS)
                Store (Or (Arg0, One), TXSA)
                Store (Arg1, HCOM)
                Store (0x48, HCON)
                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (DAT0)
                }

                Return (0xFFFF)
            }

            Method (SWRW, 3, Serialized)
            {
                If (STRT ())
                {
                    Return (Zero)
                }

                Store (Zero, I2CE)
                Store (0xBF, HSTS)
                Store (Arg0, TXSA)
                Store (Arg1, HCOM)
                And (Arg2, 0xFF, DAT1)
                And (ShiftRight (Arg2, 0x08), 0xFF, DAT0)
                Store (0x4C, HCON)
                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (One)
                }

                Return (Zero)
            }

            Method (SRDW, 2, Serialized)
            {
                If (STRT ())
                {
                    Return (0xFFFF)
                }

                Store (Zero, I2CE)
                Store (0xBF, HSTS)
                Store (Or (Arg0, One), TXSA)
                Store (Arg1, HCOM)
                Store (0x4C, HCON)
                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (Or (ShiftLeft (DAT0, 0x08), DAT1))
                }

                Return (0xFFFFFFFF)
            }

            Method (SBLW, 4, Serialized)
            {
                If (STRT ())
                {
                    Return (Zero)
                }

                Store (Arg3, I2CE)
                Store (0xBF, HSTS)
                Store (Arg0, TXSA)
                Store (Arg1, HCOM)
                Store (SizeOf (Arg2), DAT0)
                Store (Zero, Local1)
                Store (DerefOf (Index (Arg2, Zero)), HBDR)
                Store (0x54, HCON)
                While (LGreater (SizeOf (Arg2), Local1))
                {
                    Store (0x0FA0, Local0)
                    While (LAnd (LNot (And (HSTS, 0x80)), Local0))
                    {
                        Decrement (Local0)
                        Stall (0x32)
                    }

                    If (LNot (Local0))
                    {
                        KILL ()
                        Return (Zero)
                    }

                    Store (0x80, HSTS)
                    Increment (Local1)
                    If (LGreater (SizeOf (Arg2), Local1))
                    {
                        Store (DerefOf (Index (Arg2, Local1)), HBDR)
                    }
                }

                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (One)
                }

                Return (Zero)
            }

            Method (SBLR, 3, Serialized)
            {
                Name (TBUF, Buffer (0x0100) {})
                If (STRT ())
                {
                    Return (Zero)
                }

                Store (Arg2, I2CE)
                Store (0xBF, HSTS)
                Store (Or (Arg0, One), TXSA)
                Store (Arg1, HCOM)
                Store (0x54, HCON)
                Store (0x0FA0, Local0)
                While (LAnd (LNot (And (HSTS, 0x80)), Local0))
                {
                    Decrement (Local0)
                    Stall (0x32)
                }

                If (LNot (Local0))
                {
                    KILL ()
                    Return (Zero)
                }

                Store (DAT0, Index (TBUF, Zero))
                Store (0x80, HSTS)
                Store (One, Local1)
                While (LLess (Local1, DerefOf (Index (TBUF, Zero))))
                {
                    Store (0x0FA0, Local0)
                    While (LAnd (LNot (And (HSTS, 0x80)), Local0))
                    {
                        Decrement (Local0)
                        Stall (0x32)
                    }

                    If (LNot (Local0))
                    {
                        KILL ()
                        Return (Zero)
                    }

                    Store (HBDR, Index (TBUF, Local1))
                    Store (0x80, HSTS)
                    Increment (Local1)
                }

                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (TBUF)
                }

                Return (Zero)
            }

            Method (STRT, 0, Serialized)
            {
                Store (0xC8, Local0)
                While (Local0)
                {
                    If (And (HSTS, 0x40))
                    {
                        Decrement (Local0)
                        Sleep (One)
                        If (LEqual (Local0, Zero))
                        {
                            Return (One)
                        }
                    }
                    Else
                    {
                        Store (Zero, Local0)
                    }
                }

                Store (0x0FA0, Local0)
                While (Local0)
                {
                    If (And (HSTS, One))
                    {
                        Decrement (Local0)
                        Stall (0x32)
                        If (LEqual (Local0, Zero))
                        {
                            KILL ()
                        }
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Return (One)
            }

            Method (COMP, 0, Serialized)
            {
                Store (0x0FA0, Local0)
                While (Local0)
                {
                    If (And (HSTS, 0x02))
                    {
                        Return (One)
                    }
                    Else
                    {
                        Decrement (Local0)
                        Stall (0x32)
                        If (LEqual (Local0, Zero))
                        {
                            KILL ()
                        }
                    }
                }

                Return (Zero)
            }

            Method (KILL, 0, Serialized)
            {
                Or (HCON, 0x02, HCON)
                Or (HSTS, 0xFF, HSTS)
            }
        }
    }

    Scope (_SB.PCI0.SAT0)
    {
        Device (PRT3)
        {
            Name (_ADR, 0x0003FFFF)
            Method (_DSM, 4, NotSerialized)
            {
                Name (_T_1, Zero)
                Name (_T_0, Zero)
                If (LEqual (Arg0, Buffer (0x10)
                        {
                            /* 0000 */    0x30, 0xEF, 0xFA, 0xBD, 0xBB, 0xAE, 0xDE, 0x11, 
                            /* 0008 */    0x8A, 0x39, 0x08, 0x00, 0x20, 0x0C, 0x9A, 0x66
                        }))
                {
                    Store (ToInteger (Arg2), _T_0)
                    If (LEqual (_T_0, Zero))
                    {
                        Store (ToInteger (Arg1), _T_1)
                        If (LEqual (_T_1, One))
                        {
                            If (LEqual (PFLV, FDTP))
                            {
                                Return (Buffer (One)
                                {
                                    0x00
                                })
                            }

                            Return (Buffer (One)
                            {
                                0x0F
                            })
                        }
                        Else
                        {
                            Return (Buffer (One)
                            {
                                0x00
                            })
                        }
                    }
                    Else
                    {
                        If (LEqual (_T_0, One))
                        {
                            Return (One)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x02))
                            {
                                Store (Zero, GPE3)
                                If (LEqual (And (GL00, 0x08), 0x08))
                                {
                                    Or (GIV0, 0x08, GIV0)
                                }
                                Else
                                {
                                    And (GIV0, 0xF7, GIV0)
                                }

                                And (GL08, 0xEF, GL08)
                                Sleep (0xC8)
                                Store (One, GPS3)
                                Store (One, GPE3)
                                Return (One)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x03))
                                {
                                    Store (Zero, GPE3)
                                    Store (One, GPS3)
                                    Or (GL08, 0x10, GL08)
                                    Return (One)
                                }
                                Else
                                {
                                    Return (Zero)
                                }
                            }
                        }
                    }
                }
                Else
                {
                    Return (Zero)
                }
            }
        }
    }

    Scope (_GPE)
    {
        Method (_L13, 0, NotSerialized)
        {
            If (LEqual (PFLV, FDTP))
            {
                Return (Zero)
            }

            Store (Zero, GPE3)
            Or (GL08, 0x10, GL08)
            Notify (\_SB.PCI0.SAT0, 0x82)
            Return (Zero)
        }
    }

    Scope (_SB.PCI0)
    {
        Device (PEG0)
        {
            Name (_ADR, 0x00010000)
            Name (_PRW, Package (0x02)
            {
                0x09, 
                0x04
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR02 ())
                }

                Return (PR02 ())
            }

            Device (PEGP)
            {
                Name (_ADR, Zero)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
            }
        }

        Device (PEG1)
        {
            Name (_ADR, 0x00010001)
            Name (_PRW, Package (0x02)
            {
                0x09, 
                0x04
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR0A ())
                }

                Return (PR0A ())
            }
        }

        Device (PEG2)
        {
            Name (_ADR, 0x00010002)
            Name (_PRW, Package (0x02)
            {
                0x09, 
                0x04
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR0B ())
                }

                Return (PR0B ())
            }
        }

        Device (PEG3)
        {
            Name (_ADR, 0x00060000)
            Name (_PRW, Package (0x02)
            {
                0x09, 
                0x04
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR0C)
                }

                Return (PR0C)
            }
        }

        Device (GFX0)
        {
            Name (_ADR, 0x00020000)
            Method (PCPC, 0, NotSerialized)
            {
                ECST (0x6F)
            }

            Method (PAPR, 0, NotSerialized)
            {
            }

            Method (_DOS, 1, NotSerialized)
            {
                Store (And (Arg0, 0x07), DSEN)
                If (LEqual (And (Arg0, 0x03), Zero))
                {
                    If (CondRefOf (HDOS))
                    {
                        HDOS ()
                    }
                }
            }

            Method (_DOD, 0, NotSerialized)
            {
                If (CondRefOf (IDAB))
                {
                    IDAB ()
                }
                Else
                {
                    Store (Zero, NDID)
                    If (LNotEqual (DIDL, Zero))
                    {
                        Store (SDDL (DIDL), DID1)
                    }

                    If (LNotEqual (DDL2, Zero))
                    {
                        Store (SDDL (DDL2), DID2)
                    }

                    If (LNotEqual (DDL3, Zero))
                    {
                        Store (SDDL (DDL3), DID3)
                    }

                    If (LNotEqual (DDL4, Zero))
                    {
                        Store (SDDL (DDL4), DID4)
                    }

                    If (LNotEqual (DDL5, Zero))
                    {
                        Store (SDDL (DDL5), DID5)
                    }

                    If (LNotEqual (DDL6, Zero))
                    {
                        Store (SDDL (DDL6), DID6)
                    }

                    If (LNotEqual (DDL7, Zero))
                    {
                        Store (SDDL (DDL7), DID7)
                    }

                    If (LNotEqual (DDL8, Zero))
                    {
                        Store (SDDL (DDL8), DID8)
                    }
                }

                If (LEqual (NDID, One))
                {
                    Name (TMP1, Package (0x01)
                    {
                        0xFFFFFFFF
                    })
                    Store (Or (0x00010000, DID1), Index (TMP1, Zero))
                    Return (TMP1)
                }

                If (LEqual (NDID, 0x02))
                {
                    Name (TMP2, Package (0x02)
                    {
                        0xFFFFFFFF, 
                        0xFFFFFFFF
                    })
                    Store (Or (0x00010000, DID1), Index (TMP2, Zero))
                    Store (Or (0x00010000, DID2), Index (TMP2, One))
                    Return (TMP2)
                }

                If (LEqual (NDID, 0x03))
                {
                    Name (TMP3, Package (0x03)
                    {
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF
                    })
                    Store (Or (0x00010000, DID1), Index (TMP3, Zero))
                    Store (Or (0x00010000, DID2), Index (TMP3, One))
                    Store (Or (0x00010000, DID3), Index (TMP3, 0x02))
                    Return (TMP3)
                }

                If (LEqual (NDID, 0x04))
                {
                    Name (TMP4, Package (0x04)
                    {
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF
                    })
                    Store (Or (0x00010000, DID1), Index (TMP4, Zero))
                    Store (Or (0x00010000, DID2), Index (TMP4, One))
                    Store (Or (0x00010000, DID3), Index (TMP4, 0x02))
                    Store (Or (0x00010000, DID4), Index (TMP4, 0x03))
                    Return (TMP4)
                }

                If (LEqual (NDID, 0x05))
                {
                    Name (TMP5, Package (0x05)
                    {
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF
                    })
                    Store (Or (0x00010000, DID1), Index (TMP5, Zero))
                    Store (Or (0x00010000, DID2), Index (TMP5, One))
                    Store (Or (0x00010000, DID3), Index (TMP5, 0x02))
                    Store (Or (0x00010000, DID4), Index (TMP5, 0x03))
                    Store (Or (0x00010000, DID5), Index (TMP5, 0x04))
                    Return (TMP5)
                }

                If (LEqual (NDID, 0x06))
                {
                    Name (TMP6, Package (0x06)
                    {
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF
                    })
                    Store (Or (0x00010000, DID1), Index (TMP6, Zero))
                    Store (Or (0x00010000, DID2), Index (TMP6, One))
                    Store (Or (0x00010000, DID3), Index (TMP6, 0x02))
                    Store (Or (0x00010000, DID4), Index (TMP6, 0x03))
                    Store (Or (0x00010000, DID5), Index (TMP6, 0x04))
                    Store (Or (0x00010000, DID6), Index (TMP6, 0x05))
                    Return (TMP6)
                }

                If (LEqual (NDID, 0x07))
                {
                    Name (TMP7, Package (0x07)
                    {
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF
                    })
                    Store (Or (0x00010000, DID1), Index (TMP7, Zero))
                    Store (Or (0x00010000, DID2), Index (TMP7, One))
                    Store (Or (0x00010000, DID3), Index (TMP7, 0x02))
                    Store (Or (0x00010000, DID4), Index (TMP7, 0x03))
                    Store (Or (0x00010000, DID5), Index (TMP7, 0x04))
                    Store (Or (0x00010000, DID6), Index (TMP7, 0x05))
                    Store (Or (0x00010000, DID7), Index (TMP7, 0x06))
                    Return (TMP7)
                }

                If (LEqual (NDID, 0x08))
                {
                    Name (TMP8, Package (0x08)
                    {
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF
                    })
                    Store (Or (0x00010000, DID1), Index (TMP8, Zero))
                    Store (Or (0x00010000, DID2), Index (TMP8, One))
                    Store (Or (0x00010000, DID3), Index (TMP8, 0x02))
                    Store (Or (0x00010000, DID4), Index (TMP8, 0x03))
                    Store (Or (0x00010000, DID5), Index (TMP8, 0x04))
                    Store (Or (0x00010000, DID6), Index (TMP8, 0x05))
                    Store (Or (0x00010000, DID7), Index (TMP8, 0x06))
                    Store (Or (0x00010000, DID8), Index (TMP8, 0x07))
                    Return (TMP8)
                }

                Return (Package (0x01)
                {
                    0x0400
                })
            }

            Device (DD01)
            {
                Method (_ADR, 0, Serialized)
                {
                    If (LEqual (DID1, Zero))
                    {
                        Return (One)
                    }
                    Else
                    {
                        Return (And (0xFFFF, DID1))
                    }
                }

                Method (_DCS, 0, NotSerialized)
                {
                    Return (CDDS (DID1))
                }

                Method (_DGS, 0, NotSerialized)
                {
                    If (CondRefOf (SNXD))
                    {
                        Return (NXD1)
                    }

                    Return (NDDS (DID1))
                }

                Method (_DSS, 1, NotSerialized)
                {
                    If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                    {
                        Store (NSTE, CSTE)
                    }
                }
            }

            Device (DD02)
            {
                Method (_ADR, 0, Serialized)
                {
                    If (LEqual (DID2, Zero))
                    {
                        Return (0x02)
                    }
                    Else
                    {
                        Return (And (0xFFFF, DID2))
                    }
                }

                Method (_DCS, 0, NotSerialized)
                {
                    If (LEqual (LIDS, Zero))
                    {
                        Return (Zero)
                    }

                    Return (CDDS (DID2))
                }

                Method (_DGS, 0, NotSerialized)
                {
                    If (CondRefOf (SNXD))
                    {
                        Return (NXD2)
                    }

                    Return (NDDS (DID2))
                }

                Method (_DSS, 1, NotSerialized)
                {
                    If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                    {
                        Store (NSTE, CSTE)
                    }
                }

                Method (_BCL, 0, NotSerialized)
                {
                    Return (IBCL)
                }

                Method (_BCM, 1, NotSerialized)
                {
                    IBCM (Arg0)
                }

                Method (_BQC, 0, NotSerialized)
                {
                    Return (EBRL)
                }
            }

            Device (DD03)
            {
                Method (_ADR, 0, Serialized)
                {
                    If (LEqual (DID3, Zero))
                    {
                        Return (0x03)
                    }
                    Else
                    {
                        Return (And (0xFFFF, DID3))
                    }
                }

                Method (_DCS, 0, NotSerialized)
                {
                    If (LEqual (DID3, Zero))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (CDDS (DID3))
                    }
                }

                Method (_DGS, 0, NotSerialized)
                {
                    If (CondRefOf (SNXD))
                    {
                        Return (NXD3)
                    }

                    Return (NDDS (DID3))
                }

                Method (_DSS, 1, NotSerialized)
                {
                    If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                    {
                        Store (NSTE, CSTE)
                    }
                }
            }

            Device (DD04)
            {
                Method (_ADR, 0, Serialized)
                {
                    If (LEqual (DID4, Zero))
                    {
                        Return (0x04)
                    }
                    Else
                    {
                        Return (And (0xFFFF, DID4))
                    }
                }

                Method (_DCS, 0, NotSerialized)
                {
                    If (LEqual (DID4, Zero))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (CDDS (DID4))
                    }
                }

                Method (_DGS, 0, NotSerialized)
                {
                    If (CondRefOf (SNXD))
                    {
                        Return (NXD4)
                    }

                    Return (NDDS (DID4))
                }

                Method (_DSS, 1, NotSerialized)
                {
                    If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                    {
                        Store (NSTE, CSTE)
                    }
                }
            }

            Device (DD05)
            {
                Method (_ADR, 0, Serialized)
                {
                    If (LEqual (DID5, Zero))
                    {
                        Return (0x05)
                    }
                    Else
                    {
                        Return (And (0xFFFF, DID5))
                    }
                }

                Method (_DCS, 0, NotSerialized)
                {
                    If (LEqual (DID5, Zero))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (CDDS (DID5))
                    }
                }

                Method (_DGS, 0, NotSerialized)
                {
                    If (CondRefOf (SNXD))
                    {
                        Return (NXD5)
                    }

                    Return (NDDS (DID5))
                }

                Method (_DSS, 1, NotSerialized)
                {
                    If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                    {
                        Store (NSTE, CSTE)
                    }
                }
            }

            Device (DD06)
            {
                Method (_ADR, 0, Serialized)
                {
                    If (LEqual (DID6, Zero))
                    {
                        Return (0x06)
                    }
                    Else
                    {
                        Return (And (0xFFFF, DID6))
                    }
                }

                Method (_DCS, 0, NotSerialized)
                {
                    If (LEqual (DID6, Zero))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (CDDS (DID6))
                    }
                }

                Method (_DGS, 0, NotSerialized)
                {
                    If (CondRefOf (SNXD))
                    {
                        Return (NXD6)
                    }

                    Return (NDDS (DID6))
                }

                Method (_DSS, 1, NotSerialized)
                {
                    If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                    {
                        Store (NSTE, CSTE)
                    }
                }
            }

            Device (DD07)
            {
                Method (_ADR, 0, Serialized)
                {
                    If (LEqual (DID7, Zero))
                    {
                        Return (0x07)
                    }
                    Else
                    {
                        Return (And (0xFFFF, DID7))
                    }
                }

                Method (_DCS, 0, NotSerialized)
                {
                    If (LEqual (DID7, Zero))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (CDDS (DID7))
                    }
                }

                Method (_DGS, 0, NotSerialized)
                {
                    If (CondRefOf (SNXD))
                    {
                        Return (NXD7)
                    }

                    Return (NDDS (DID7))
                }

                Method (_DSS, 1, NotSerialized)
                {
                    If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                    {
                        Store (NSTE, CSTE)
                    }
                }
            }

            Device (DD08)
            {
                Method (_ADR, 0, Serialized)
                {
                    If (LEqual (DID8, Zero))
                    {
                        Return (0x08)
                    }
                    Else
                    {
                        Return (And (0xFFFF, DID8))
                    }
                }

                Method (_DCS, 0, NotSerialized)
                {
                    If (LEqual (DID8, Zero))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (CDDS (DID8))
                    }
                }

                Method (_DGS, 0, NotSerialized)
                {
                    If (CondRefOf (SNXD))
                    {
                        Return (NXD8)
                    }

                    Return (NDDS (DID8))
                }

                Method (_DSS, 1, NotSerialized)
                {
                    If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                    {
                        Store (NSTE, CSTE)
                    }
                }
            }

            Method (SDDL, 1, NotSerialized)
            {
                Increment (NDID)
                Store (And (Arg0, 0x0F0F), Local0)
                Or (0x80000000, Local0, Local1)
                If (LEqual (DIDL, Local0))
                {
                    Return (Local1)
                }

                If (LEqual (DDL2, Local0))
                {
                    Return (Local1)
                }

                If (LEqual (DDL3, Local0))
                {
                    Return (Local1)
                }

                If (LEqual (DDL4, Local0))
                {
                    Return (Local1)
                }

                If (LEqual (DDL5, Local0))
                {
                    Return (Local1)
                }

                If (LEqual (DDL6, Local0))
                {
                    Return (Local1)
                }

                If (LEqual (DDL7, Local0))
                {
                    Return (Local1)
                }

                If (LEqual (DDL8, Local0))
                {
                    Return (Local1)
                }

                Return (Zero)
            }

            Method (CDDS, 1, NotSerialized)
            {
                Store (And (Arg0, 0x0F0F), Local0)
                If (LEqual (Zero, Local0))
                {
                    Return (0x1D)
                }

                If (LEqual (CADL, Local0))
                {
                    Return (0x1F)
                }

                If (LEqual (CAL2, Local0))
                {
                    Return (0x1F)
                }

                If (LEqual (CAL3, Local0))
                {
                    Return (0x1F)
                }

                If (LEqual (CAL4, Local0))
                {
                    Return (0x1F)
                }

                If (LEqual (CAL5, Local0))
                {
                    Return (0x1F)
                }

                If (LEqual (CAL6, Local0))
                {
                    Return (0x1F)
                }

                If (LEqual (CAL7, Local0))
                {
                    Return (0x1F)
                }

                If (LEqual (CAL8, Local0))
                {
                    Return (0x1F)
                }

                Return (0x1D)
            }

            Method (NDDS, 1, NotSerialized)
            {
                Store (And (Arg0, 0x0F0F), Local0)
                If (LEqual (Zero, Local0))
                {
                    Return (Zero)
                }

                If (LEqual (NADL, Local0))
                {
                    Return (One)
                }

                If (LEqual (NDL2, Local0))
                {
                    Return (One)
                }

                If (LEqual (NDL3, Local0))
                {
                    Return (One)
                }

                If (LEqual (NDL4, Local0))
                {
                    Return (One)
                }

                If (LEqual (NDL5, Local0))
                {
                    Return (One)
                }

                If (LEqual (NDL6, Local0))
                {
                    Return (One)
                }

                If (LEqual (NDL7, Local0))
                {
                    Return (One)
                }

                If (LEqual (NDL8, Local0))
                {
                    Return (One)
                }

                Return (Zero)
            }

            Scope (^^PCI0)
            {
                OperationRegion (MCHP, PCI_Config, 0x40, 0xC0)
                Field (MCHP, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x60), 
                    TASM,   10, 
                            Offset (0x62)
                }
            }

            OperationRegion (IGDP, PCI_Config, 0x40, 0xC0)
            Field (IGDP, AnyAcc, NoLock, Preserve)
            {
                        Offset (0x12), 
                    ,   1, 
                GIVD,   1, 
                    ,   2, 
                GUMA,   3, 
                        Offset (0x14), 
                    ,   4, 
                GMFN,   1, 
                        Offset (0x18), 
                        Offset (0xA4), 
                ASLE,   8, 
                        Offset (0xA8), 
                GSSE,   1, 
                GSSB,   14, 
                GSES,   1, 
                        Offset (0xB0), 
                    ,   12, 
                CDVL,   1, 
                        Offset (0xB2), 
                        Offset (0xB4), 
                PWMC,   8, 
                LBPC,   8, 
                        Offset (0xBC), 
                ASLS,   32
            }

            OperationRegion (IGDM, SystemMemory, ASLB, 0x2000)
            Field (IGDM, AnyAcc, NoLock, Preserve)
            {
                SIGN,   128, 
                SIZE,   32, 
                OVER,   32, 
                SVER,   256, 
                VVER,   128, 
                GVER,   128, 
                MBOX,   32, 
                DMOD,   32, 
                        Offset (0x100), 
                DRDY,   32, 
                CSTS,   32, 
                CEVT,   32, 
                        Offset (0x120), 
                DIDL,   32, 
                DDL2,   32, 
                DDL3,   32, 
                DDL4,   32, 
                DDL5,   32, 
                DDL6,   32, 
                DDL7,   32, 
                DDL8,   32, 
                CPDL,   32, 
                CPL2,   32, 
                CPL3,   32, 
                CPL4,   32, 
                CPL5,   32, 
                CPL6,   32, 
                CPL7,   32, 
                CPL8,   32, 
                CADL,   32, 
                CAL2,   32, 
                CAL3,   32, 
                CAL4,   32, 
                CAL5,   32, 
                CAL6,   32, 
                CAL7,   32, 
                CAL8,   32, 
                NADL,   32, 
                NDL2,   32, 
                NDL3,   32, 
                NDL4,   32, 
                NDL5,   32, 
                NDL6,   32, 
                NDL7,   32, 
                NDL8,   32, 
                ASLP,   32, 
                TIDX,   32, 
                CHPD,   32, 
                CLID,   32, 
                CDCK,   32, 
                SXSW,   32, 
                EVTS,   32, 
                CNOT,   32, 
                NRDY,   32, 
                        Offset (0x200), 
                SCIE,   1, 
                GEFC,   4, 
                GXFC,   3, 
                GESF,   8, 
                        Offset (0x204), 
                PARM,   32, 
                DSLP,   32, 
                        Offset (0x300), 
                ARDY,   32, 
                ASLC,   32, 
                TCHE,   32, 
                ALSI,   32, 
                BCLP,   32, 
                PFIT,   32, 
                CBLV,   32, 
                BC00,   8, 
                BP00,   8, 
                BC01,   8, 
                BP01,   8, 
                BC02,   8, 
                BP02,   8, 
                BC03,   8, 
                BP03,   8, 
                BC04,   8, 
                BP04,   8, 
                BC05,   8, 
                BP05,   8, 
                BC06,   8, 
                BP06,   8, 
                BC07,   8, 
                BP07,   8, 
                BC08,   8, 
                BP08,   8, 
                BC09,   8, 
                BP09,   8, 
                BC0A,   8, 
                BP0A,   8, 
                        Offset (0x344), 
                CPFM,   32, 
                EPFM,   32, 
                PLUT,   592, 
                PFMB,   32, 
                CCDV,   32, 
                PCFT,   32, 
                        Offset (0x400), 
                GVD1,   49152, 
                PHED,   32, 
                BDDC,   2048
            }

            Name (DBTB, Package (0x15)
            {
                Zero, 
                0x07, 
                0x38, 
                0x01C0, 
                0x0E00, 
                0x3F, 
                0x01C7, 
                0x0E07, 
                0x01F8, 
                0x0E38, 
                0x0FC0, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                0x7000, 
                0x7007, 
                0x7038, 
                0x71C0, 
                0x7E00
            })
            Name (CDCT, Package (0x05)
            {
                Package (0x02)
                {
                    0xE4, 
                    0x0140
                }, 

                Package (0x02)
                {
                    0xDE, 
                    0x014D
                }, 

                Package (0x02)
                {
                    0xDE, 
                    0x014D
                }, 

                Package (0x02)
                {
                    Zero, 
                    Zero
                }, 

                Package (0x02)
                {
                    0xDE, 
                    0x014D
                }
            })
            Name (SUCC, One)
            Name (NVLD, 0x02)
            Name (CRIT, 0x04)
            Name (NCRT, 0x06)
            Method (GSCI, 0, Serialized)
            {
                Method (GBDA, 0, Serialized)
                {
                    If (LEqual (GESF, Zero))
                    {
                        Store (0x0679, PARM)
                        Store (Zero, GESF)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, One))
                    {
                        Store (0x0240, PARM)
                        Store (Zero, GESF)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x04))
                    {
                        And (PARM, 0xEFFF0000, PARM)
                        And (PARM, ShiftLeft (DerefOf (Index (DBTB, IBTT)), 0x10), 
                            PARM)
                        Or (IBTT, PARM, PARM)
                        Store (Zero, GESF)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x05))
                    {
                        Store (IPSC, PARM)
                        Or (PARM, ShiftLeft (IPAT, 0x08), PARM)
                        Add (PARM, 0x0100, PARM)
                        Or (PARM, ShiftLeft (LIDS, 0x10), PARM)
                        Add (PARM, 0x00010000, PARM)
                        Or (PARM, ShiftLeft (IBIA, 0x14), PARM)
                        Store (Zero, GESF)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x06))
                    {
                        Store (ITVF, PARM)
                        Or (PARM, ShiftLeft (ITVM, 0x04), PARM)
                        Store (Zero, GESF)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x07))
                    {
                        Store (GIVD, PARM)
                        XOr (PARM, One, PARM)
                        Or (PARM, ShiftLeft (GMFN, One), PARM)
                        Or (PARM, 0x1800, PARM)
                        Or (PARM, ShiftLeft (IDMS, 0x11), PARM)
                        Or (ShiftLeft (DerefOf (Index (DerefOf (Index (CDCT, HVCO)), CDVL
                            )), 0x15), PARM, PARM)
                        Store (One, GESF)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x0A))
                    {
                        Store (Zero, PARM)
                        If (ISSC)
                        {
                            Or (PARM, 0x03, PARM)
                        }

                        Store (Zero, GESF)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x0B))
                    {
                        Store (KSV0, PARM)
                        Store (KSV1, GESF)
                        Return (SUCC)
                    }

                    Store (Zero, GESF)
                    Return (CRIT)
                }

                Method (SBCB, 0, Serialized)
                {
                    If (LEqual (GESF, Zero))
                    {
                        Store (Zero, PARM)
                        Store (0x000F87FD, PARM)
                        Store (Zero, GESF)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, One))
                    {
                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x03))
                    {
                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x04))
                    {
                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x05))
                    {
                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x06))
                    {
                        Store (And (PARM, 0x0F), ITVF)
                        Store (ShiftRight (And (PARM, 0xF0), 0x04), ITVM)
                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x07))
                    {
                        If (LEqual (PARM, Zero))
                        {
                            Store (CLID, Local0)
                            If (And (0x80000000, Local0))
                            {
                                And (CLID, 0x0F, CLID)
                                GLID (CLID)
                            }
                        }

                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x08))
                    {
                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x09))
                    {
                        And (PARM, 0xFF, IBTT)
                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x0A))
                    {
                        And (PARM, 0xFF, IPSC)
                        If (And (ShiftRight (PARM, 0x08), 0xFF))
                        {
                            And (ShiftRight (PARM, 0x08), 0xFF, IPAT)
                            Decrement (IPAT)
                        }

                        And (ShiftRight (PARM, 0x14), 0x07, IBIA)
                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x0B))
                    {
                        And (ShiftRight (PARM, One), One, IF1E)
                        If (And (PARM, 0x0001E000))
                        {
                            And (ShiftRight (PARM, 0x0D), 0x0F, IDMS)
                        }
                        Else
                        {
                            And (ShiftRight (PARM, 0x11), 0x0F, IDMS)
                        }

                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x10))
                    {
                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x11))
                    {
                        Store (ShiftLeft (LIDS, 0x08), PARM)
                        Add (PARM, 0x0100, PARM)
                        Store (Zero, GESF)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x12))
                    {
                        If (And (PARM, One))
                        {
                            If (LEqual (ShiftRight (PARM, One), One))
                            {
                                Store (One, ISSC)
                            }
                            Else
                            {
                                Store (Zero, GESF)
                                Return (CRIT)
                            }
                        }
                        Else
                        {
                            Store (Zero, ISSC)
                        }

                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x13))
                    {
                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    If (LEqual (GESF, 0x14))
                    {
                        And (PARM, 0x0F, PAVP)
                        Store (Zero, GESF)
                        Store (Zero, PARM)
                        Return (SUCC)
                    }

                    Store (Zero, GESF)
                    Return (SUCC)
                }

                If (LEqual (GEFC, 0x04))
                {
                    Store (GBDA (), GXFC)
                }

                If (LEqual (GEFC, 0x06))
                {
                    Store (SBCB (), GXFC)
                }

                Store (Zero, GEFC)
                Store (One, SCIS)
                Store (Zero, GSSE)
                Store (Zero, SCIE)
                Return (Zero)
            }

            Method (PDRD, 0, NotSerialized)
            {
                If (LNot (DRDY))
                {
                    Sleep (ASLP)
                }

                Return (LNot (DRDY))
            }

            Method (PSTS, 0, NotSerialized)
            {
                If (LGreater (CSTS, 0x02))
                {
                    Sleep (ASLP)
                }

                Return (LEqual (CSTS, 0x03))
            }

            Method (GNOT, 2, NotSerialized)
            {
                If (PDRD ())
                {
                    Return (One)
                }

                Store (Arg0, CEVT)
                Store (0x03, CSTS)
                If (LAnd (LEqual (CHPD, Zero), LEqual (Arg1, Zero)))
                {
                    If (LOr (LGreater (OSYS, 0x07D0), LLess (OSYS, 0x07D6)))
                    {
                        Notify (PCI0, Arg1)
                    }
                    Else
                    {
                        Notify (GFX0, Arg1)
                    }
                }

                If (CondRefOf (HNOT))
                {
                    HNOT (Arg0)
                }
                Else
                {
                    Notify (GFX0, 0x80)
                }

                Return (Zero)
            }

            Method (GHDS, 1, NotSerialized)
            {
                Store (Arg0, TIDX)
                Return (GNOT (One, Zero))
            }

            Method (GLID, 1, NotSerialized)
            {
                Store (Arg0, CLID)
                Return (GNOT (0x02, Zero))
            }

            Method (GDCK, 1, NotSerialized)
            {
                Store (Arg0, CDCK)
                Return (GNOT (0x04, Zero))
            }

            Method (PARD, 0, NotSerialized)
            {
                If (LNot (ARDY))
                {
                    Sleep (ASLP)
                }

                Return (LNot (ARDY))
            }

            Method (AINT, 2, NotSerialized)
            {
                If (LNot (And (TCHE, ShiftLeft (One, Arg0))))
                {
                    Return (One)
                }

                If (PARD ())
                {
                    Return (One)
                }

                If (LEqual (Arg0, 0x02))
                {
                    If (CPFM)
                    {
                        And (CPFM, 0x0F, Local0)
                        And (EPFM, 0x0F, Local1)
                        If (LEqual (Local0, One))
                        {
                            If (And (Local1, 0x06))
                            {
                                Store (0x06, PFIT)
                            }
                            Else
                            {
                                If (And (Local1, 0x08))
                                {
                                    Store (0x08, PFIT)
                                }
                                Else
                                {
                                    Store (One, PFIT)
                                }
                            }
                        }

                        If (LEqual (Local0, 0x06))
                        {
                            If (And (Local1, 0x08))
                            {
                                Store (0x08, PFIT)
                            }
                            Else
                            {
                                If (And (Local1, One))
                                {
                                    Store (One, PFIT)
                                }
                                Else
                                {
                                    Store (0x06, PFIT)
                                }
                            }
                        }

                        If (LEqual (Local0, 0x08))
                        {
                            If (And (Local1, One))
                            {
                                Store (One, PFIT)
                            }
                            Else
                            {
                                If (And (Local1, 0x06))
                                {
                                    Store (0x06, PFIT)
                                }
                                Else
                                {
                                    Store (0x08, PFIT)
                                }
                            }
                        }
                    }
                    Else
                    {
                        XOr (PFIT, 0x07, PFIT)
                    }

                    Or (PFIT, 0x80000000, PFIT)
                    Store (0x04, ASLC)
                }
                Else
                {
                    If (LEqual (Arg0, One))
                    {
                        Store (Divide (Multiply (Arg1, 0xFF), 0x64, ), BCLP)
                        Or (BCLP, 0x80000000, BCLP)
                        Store (0x02, ASLC)
                    }
                    Else
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            Store (Arg1, ALSI)
                            Store (One, ASLC)
                        }
                        Else
                        {
                            Return (One)
                        }
                    }
                }

                Store (One, ASLE)
                Return (Zero)
            }

            Method (SCIP, 0, NotSerialized)
            {
                If (LNotEqual (OVER, Zero))
                {
                    Return (LNot (GSMI))
                }

                Return (Zero)
            }
        }
    }

    OperationRegion (PBIC, PCI_Config, Zero, 0xF0)
    Field (PBIC, DWordAcc, NoLock, Preserve)
    {
                Offset (0x7C), 
        SR0,    32, 
        SR1,    32, 
        SR2,    32, 
        SR3,    32, 
        SR4,    32, 
        SR5,    32, 
        SR6,    32, 
        SR7,    32, 
        SR8,    32, 
        SR9,    32
    }

    OperationRegion (IBUS, PCI_Config, 0xD0, 0xE0)
    Field (IBUS, DWordAcc, NoLock, Preserve)
    {
            ,   26, 
        TOLM,   6, 
            ,   26, 
        TOHM,   38, 
                Offset (0xB0), 
        VTEN,   1, 
            ,   11, 
        VTBA,   20
    }

    Scope (_SB)
    {
        Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Name (_PRW, Package (0x02)
            {
                0x18, 
                0x03
            })
            Method (_LID, 0, NotSerialized)
            {
                If (ECON)
                {
                    If (^^PCI0.LPCB.EC0.LDS0)
                    {
                        Store (Zero, LIDS)
                        Return (Zero)
                    }
                    Else
                    {
                        Store (One, LIDS)
                        Return (One)
                    }
                }
                Else
                {
                    Store (One, LIDS)
                    Return (One)
                }
            }

            Method (_PSW, 1, NotSerialized)
            {
                If (ECON)
                {
                    If (Arg0)
                    {
                        Store (One, ^^PCI0.LPCB.EC0.WLID)
                    }
                    Else
                    {
                        Store (Zero, ^^PCI0.LPCB.EC0.WLID)
                    }
                }
            }
        }
    }

    Scope (_SB.PCI0.RP02.PXSX)
    {
        Method (_PSW, 1, NotSerialized)
        {
            Store (Arg0, ^^^LPCB.EC0.LNON)
        }
    }

    Scope (_TZ)
    {
        Name (T15S, 0x69)
        Name (T90S, 0x5A)
        Name (T10S, 0x63)
        Name (T85S, 0x54)
        Name (T15T, 0x67)
        Name (T90T, 0x58)
        Name (T10T, 0x61)
        Name (T85T, 0x52)
        ThermalZone (TZ00)
        {
            Method (_CRT, 0, Serialized)
            {
                Name (_T_0, Zero)
                Store (\_SB.CPXX, _T_0)
                If (LEqual (_T_0, Zero))
                {
                    Return (Add (0x0AAC, Multiply (T15S, 0x0A)))
                }
                Else
                {
                    If (LEqual (_T_0, One))
                    {
                        Return (Add (0x0AAC, Multiply (T85S, 0x0A)))
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x02))
                        {
                            Return (Add (0x0AAC, Multiply (T90S, 0x0A)))
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x03))
                            {
                                Return (Add (0x0AAC, Multiply (T10S, 0x0A)))
                            }
                        }
                    }
                }
            }

            Method (_SCP, 1, Serialized)
            {
                Store (Arg0, CTYP)
            }

            Method (_TMP, 0, Serialized)
            {
                If (ECON)
                {
                    If (Zero)
                    {
                        If (LGreaterEqual (DTS1, DTS2))
                        {
                            Store (DTS1, Local0)
                        }
                        Else
                        {
                            Store (DTS2, Local0)
                        }

                        If (Or (LLess (Local0, 0x23), LGreater (Local0, 0x73)))
                        {
                            Store (0x23, Local0)
                        }

                        Store (Local0, \_SB.PCI0.LPCB.EC0.RG5A)
                    }
                    Else
                    {
                        Store (\_SB.PCI0.LPCB.EC0.RTMP, Local0)
                        If (Or (LLess (Local0, 0x23), LGreater (Local0, 0x73)))
                        {
                            Store (0x23, Local0)
                        }
                    }

                    Return (Add (0x0AAC, Multiply (Local0, 0x0A)))
                }
                Else
                {
                    Return (0x0BB8)
                }
            }

            Method (_PSL, 0, Serialized)
            {
                If (LEqual (TCNT, 0x08))
                {
                    Return (Package (0x08)
                    {
                        \_PR.CPU0, 
                        \_PR.CPU1, 
                        \_PR.CPU2, 
                        \_PR.CPU3, 
                        \_PR.CPU4, 
                        \_PR.CPU5, 
                        \_PR.CPU6, 
                        \_PR.CPU7
                    })
                }

                If (LEqual (TCNT, 0x04))
                {
                    Return (Package (0x04)
                    {
                        \_PR.CPU0, 
                        \_PR.CPU1, 
                        \_PR.CPU2, 
                        \_PR.CPU3
                    })
                }

                If (LEqual (TCNT, 0x02))
                {
                    Return (Package (0x02)
                    {
                        \_PR.CPU0, 
                        \_PR.CPU1
                    })
                }

                Return (Package (0x01)
                {
                    \_PR.CPU0
                })
            }

            Method (_PSV, 0, Serialized)
            {
                Name (_T_0, Zero)
                Store (\_SB.CPXX, _T_0)
                If (LEqual (_T_0, Zero))
                {
                    Return (Add (0x0AAC, Multiply (T15T, 0x0A)))
                }
                Else
                {
                    If (LEqual (_T_0, One))
                    {
                        Return (Add (0x0AAC, Multiply (T85T, 0x0A)))
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x02))
                        {
                            Return (Add (0x0AAC, Multiply (T90T, 0x0A)))
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x03))
                            {
                                Return (Add (0x0AAC, Multiply (T10T, 0x0A)))
                            }
                        }
                    }
                }
            }

            Method (_TC1, 0, Serialized)
            {
                Return (0x02)
            }

            Method (_TC2, 0, Serialized)
            {
                Return (0x03)
            }

            Method (_TSP, 0, Serialized)
            {
                Return (0x64)
            }
        }
    }

    Scope (_SB)
    {
        OperationRegion (EXCO, SystemIO, 0x72, 0x02)
        Field (EXCO, ByteAcc, NoLock, Preserve)
        {
            INDX,   8, 
            DATA,   8
        }

        IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
        {
                    Offset (0x80), 
            BRNS,   4, 
            FL07,   1, 
            FL17,   1, 
            FL06,   1, 
            FL10,   1, 
            PLID,   8, 
            OK3G,   1, 
            INS4,   1, 
                    Offset (0x83), 
            THLE,   8, 
            SSLE,   8, 
                ,   1, 
            CPXX,   2, 
                    Offset (0x86), 
                    Offset (0x88), 
                ,   3, 
            BDTP,   1, 
                    Offset (0x89), 
                    Offset (0x8A), 
            GCDE,   4, 
            DADD,   4, 
            CCDM,   1, 
                    Offset (0x8C), 
            SGCN,   2, 
            MBTT,   2, 
            SGST,   2, 
            VGAD,   2, 
            PLTP,   1, 
            CORE,   1, 
            CALS,   1, 
                ,   1, 
            NVGG,   1, 
                    Offset (0x8E), 
                    Offset (0x8F), 
            OPDF,   1, 
            OPST,   1, 
                    Offset (0x90), 
                    Offset (0xD0), 
            D2R1,   8, 
            D2R2,   8, 
            D2R3,   5, 
            DGPU,   1, 
            RFST,   1, 
                    Offset (0xD3), 
                    Offset (0xE0), 
            EDI1,   4, 
            EDI2,   4, 
            EDI3,   4, 
            EDI4,   4, 
                    Offset (0xE3), 
                    Offset (0xE4), 
            KCTE,   4, 
                    Offset (0xE5), 
                    Offset (0xF0), 
            S4CT,   8
        }
    }

    Scope (_SB.PCI0.LPCB)
    {
        Device (EC0)
        {
            Name (_HID, EisaId ("PNP0C09"))
            Name (_UID, One)
            Name (_GPE, 0x17)
            Method (_CRS, 0, NotSerialized)
            {
                Name (BFFR, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x0062,             // Range Minimum
                        0x0062,             // Range Maximum
                        0x00,               // Alignment
                        0x01,               // Length
                        )
                    IO (Decode16,
                        0x0066,             // Range Minimum
                        0x0066,             // Range Maximum
                        0x00,               // Alignment
                        0x01,               // Length
                        )
                })
                Return (BFFR)
            }

            OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
            Field (ERAM, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x04), 
                CMCM,   8, 
                CMD1,   8, 
                CMD2,   8, 
                CMD3,   8, 
                        Offset (0x18), 
                SMPR,   8, 
                SMST,   8, 
                SMAD,   8, 
                SMCM,   8, 
                SMD0,   256, 
                BCNT,   8, 
                SMAA,   8, 
                BATD,   16, 
                SW2S,   1, 
                    ,   3, 
                BAUF,   1, 
                        Offset (0x41), 
                    ,   4, 
                CFAN,   1, 
                PFN2,   1, 
                FVIS,   1, 
                PFLG,   1, 
                        Offset (0x43), 
                TMSS,   2, 
                    ,   2, 
                BANK,   4, 
                        Offset (0x45), 
                VFAN,   1, 
                        Offset (0x46), 
                RL01,   1, 
                RD01,   1, 
                RF01,   1, 
                RP07,   1, 
                RB01,   1, 
                RC01,   1, 
                    ,   1, 
                R701,   1, 
                R801,   1, 
                RM01,   1, 
                RI01,   1, 
                    ,   1, 
                    ,   1, 
                    ,   1, 
                RA01,   1, 
                RR01,   1, 
                RL10,   1, 
                RD10,   1, 
                RF10,   1, 
                RP10,   1, 
                RB10,   1, 
                RC10,   1, 
                    ,   1, 
                R710,   1, 
                R810,   1, 
                RM10,   1, 
                RI10,   1, 
                    ,   1, 
                    ,   1, 
                    ,   1, 
                RA10,   1, 
                RR10,   1, 
                WL01,   1, 
                WD01,   1, 
                WF01,   1, 
                WP01,   1, 
                WB01,   1, 
                WC01,   1, 
                    ,   1, 
                W701,   1, 
                W801,   1, 
                WM01,   1, 
                WI01,   1, 
                    ,   1, 
                    ,   1, 
                    ,   1, 
                WA01,   1, 
                WR01,   1, 
                WL10,   1, 
                WD10,   1, 
                WF10,   1, 
                WP10,   1, 
                WB10,   1, 
                WC10,   1, 
                    ,   1, 
                W710,   1, 
                W810,   1, 
                WM10,   1, 
                WI10,   1, 
                    ,   1, 
                    ,   1, 
                    ,   1, 
                WA10,   1, 
                WR10,   1, 
                LIDE,   1, 
                BAYE,   1, 
                EFDE,   1, 
                PRDE,   1, 
                BRBE,   1, 
                CRTE,   1, 
                    ,   1, 
                W7BE,   1, 
                W8BE,   1, 
                PMEE,   1, 
                INTE,   1, 
                    ,   1, 
                    ,   1, 
                    ,   1, 
                DB2E,   1, 
                DB3E,   1, 
                        Offset (0x52), 
                    ,   1, 
                    ,   1, 
                    ,   1, 
                    ,   1, 
                BAYS,   1, 
                W7BS,   1, 
                PRDS,   1, 
                        Offset (0x53), 
                PBSS,   1, 
                ACIO,   1, 
                NOVO,   1, 
                LDS0,   1, 
                    ,   1, 
                    ,   1, 
                    ,   1, 
                        Offset (0x54), 
                SCIM,   8, 
                        Offset (0x57), 
                RG57,   8, 
                RTMP,   8, 
                RG59,   8, 
                RG5A,   8, 
                RG5B,   8, 
                LOCP,   1, 
                        Offset (0x5D), 
                THTB,   8, 
                VGAD,   1, 
                MBTP,   1, 
                CPTP,   1, 
                TJXX,   2, 
                CPUW,   2, 
                        Offset (0x5F), 
                CFN2,   1, 
                SFN2,   1, 
                TPNT,   1, 
                    ,   2, 
                LNON,   1, 
                        Offset (0x60), 
                BHCD,   8, 
                BAHL,   8, 
                BAHH,   8, 
                        Offset (0x66), 
                BLVL,   8, 
                WLSE,   1, 
                BTDE,   1, 
                CCDE,   1, 
                WWAE,   1, 
                    ,   1, 
                    ,   1, 
                    ,   1, 
                KBMF,   1, 
                        Offset (0x6A), 
                BATS,   16, 
                BATC,   1, 
                        Offset (0x71), 
                MBTS,   1, 
                MBTF,   1, 
                        Offset (0x72), 
                MBTC,   1, 
                    ,   2, 
                MBNH,   1, 
                    ,   2, 
                TRCM,   1, 
                        Offset (0x74), 
                    ,   2, 
                MBUD,   1, 
                        Offset (0x77), 
                BA1C,   8, 
                        Offset (0x7E), 
                BA1T,   8, 
                        Offset (0x81), 
                SBTS,   1, 
                SBTF,   1, 
                        Offset (0x82), 
                SBTC,   1, 
                        Offset (0x84), 
                    ,   2, 
                SBUD,   1, 
                        Offset (0x87), 
                BA2C,   8, 
                        Offset (0x96), 
                CFS0,   8, 
                CFS1,   9, 
                        Offset (0x9B), 
                    ,   1, 
                PSIE,   1, 
                    ,   1, 
                PCBP,   1, 
                    ,   1, 
                AECK,   1, 
                        Offset (0x9C), 
                        Offset (0xA0), 
                POD0,   8, 
                POD1,   8, 
                        Offset (0xAD), 
                    ,   5, 
                        Offset (0xAE), 
                        Offset (0xB9), 
                SEBT,   8, 
                        Offset (0xBB), 
                SLB0,   8, 
                SLB1,   8, 
                SLB2,   8, 
                        Offset (0xBF), 
                GSWS,   1, 
                RFSS,   1, 
                WRFS,   1, 
                BTSS,   1, 
                CCDS,   1, 
                BLIS,   1, 
                G3RS,   1, 
                TPDS,   1, 
                        Offset (0xC1), 
                MCUR,   16, 
                MBRM,   16, 
                MBVG,   16, 
                        Offset (0xC8), 
                ACUR,   16, 
                ABRM,   16, 
                ABVG,   16, 
                        Offset (0xCF), 
                DLYC,   8, 
                EBPL,   1, 
                        Offset (0xD2), 
                    ,   6, 
                APWR,   1, 
                DLYE,   1, 
                EAT0,   8, 
                EAT1,   8, 
                EAT2,   8, 
                DBPL,   8, 
                        Offset (0xD8), 
                LUXH,   8, 
                LUXL,   8, 
                        Offset (0xDB), 
                ANYK,   1, 
                    ,   1, 
                    ,   1, 
                    ,   1, 
                WLID,   1, 
                        Offset (0xDE), 
                EBLV,   8, 
                EAT3,   8, 
                B1FC,   16, 
                B2FC,   16, 
                AALS,   1, 
                    ,   4, 
                DALS,   1, 
                        Offset (0xE5), 
                PBLF,   1, 
                    ,   1, 
                CLVF,   1, 
                    ,   4, 
                CREG,   1, 
                EAT4,   8, 
                GQKS,   7, 
                        Offset (0xE8), 
                    ,   7, 
                ONEK,   1, 
                        Offset (0xEB), 
                LOMD,   1, 
                CBDE,   1, 
                        Offset (0xED), 
                SPL0,   1, 
                SPL1,   1, 
                SPL2,   1, 
                SPL3,   1, 
                ADT0,   1, 
                SKK0,   1, 
                SKK1,   1, 
                SKK2,   1, 
                    ,   4, 
                ADTC,   3, 
                THFL,   1, 
                        Offset (0xF4), 
                    ,   4, 
                Q9XB,   1, 
                        Offset (0xF5), 
                    ,   7, 
                ODD0,   1, 
                    ,   2, 
                GPUN,   1, 
                ODD1,   2, 
                        Offset (0xF9), 
                    ,   1, 
                    ,   1, 
                ODDP,   1, 
                IMON,   1, 
                NOEN,   1, 
                    ,   1, 
                SBTM,   1, 
                        Offset (0xFA), 
                STCC,   8, 
                MLED,   1, 
                        Offset (0xFC), 
                SPCC,   16
            }

            Name (OPST, Zero)
            Name (BATO, Zero)
            Name (BATN, Zero)
            Name (BATF, 0xC0)
            Device (ALSD)
            {
                Name (_HID, "ACPI0008")
                Method (_STA, 0, NotSerialized)
                {
                    If (LEqual (ALSE, 0x02))
                    {
                        Return (0x0B)
                    }

                    Return (Zero)
                }

                Method (_ALI, 0, NotSerialized)
                {
                    Return (Or (ShiftLeft (LHIH, 0x08), LLOW))
                }

                Name (_ALR, Package (0x05)
                {
                    Package (0x02)
                    {
                        0x46, 
                        Zero
                    }, 

                    Package (0x02)
                    {
                        0x49, 
                        0x0A
                    }, 

                    Package (0x02)
                    {
                        0x55, 
                        0x50
                    }, 

                    Package (0x02)
                    {
                        0x64, 
                        0x012C
                    }, 

                    Package (0x02)
                    {
                        0x96, 
                        0x03E8
                    }
                })
            }

            Method (_REG, 2, NotSerialized)
            {
                If (LAnd (LEqual (Arg0, 0x03), LEqual (Arg1, One)))
                {
                    Store (One, ECON)
                    Store (One, AECK)
                    UPBR ()
                    PHSR (0x8B)
                    Store (One, CCDS)
                    If (GSWS)
                    {
                        If (WLSE)
                        {
                            Store (FL07, WRFS)
                            Store (FL07, GO12)
                        }
                        Else
                        {
                            Store (Zero, WRFS)
                            Store (Zero, GO12)
                        }

                        If (BTDE)
                        {
                            Store (FL10, BTSS)
                            If (FL10)
                            {
                                Store (Zero, GO35)
                            }
                            Else
                            {
                                Store (One, GO35)
                            }
                        }
                        Else
                        {
                            Store (Zero, BTSS)
                            Store (Zero, GO35)
                        }

                        If (WWAE)
                        {
                            Store (FL17, G3RS)
                            Store (FL17, GO48)
                        }
                        Else
                        {
                            Store (Zero, G3RS)
                            Store (Zero, GO48)
                        }

                        If (LOr (WRFS, BTSS))
                        {
                            Store (One, GO52)
                        }
                        Else
                        {
                            Store (Zero, GO52)
                        }
                    }
                    Else
                    {
                        Store (Zero, WRFS)
                        Store (One, BTSS)
                        Store (Zero, G3RS)
                        Store (Zero, GO12)
                        Store (One, GO35)
                        Store (Zero, GO52)
                    }

                    If (DGPU)
                    {
                        Store (Zero, GO45)
                    }
                    Else
                    {
                        If (^^^^OPST)
                        {
                            Store (Zero, GO45)
                        }
                        Else
                        {
                            Store (One, GO45)
                        }
                    }

                    If (LEqual (OSYS, 0x07D9))
                    {
                        Store (One, FVIS)
                    }
                    Else
                    {
                        Store (Zero, FVIS)
                        Store (Zero, AALS)
                    }

                    Store (One, ^^^GFX0.CLID)
                    Store (0x0A, POD1)
                }

                If (SW2S)
                {
                    Store (Zero, ^^^RP07.J38X.D3EF)
                }
                Else
                {
                    Store (One, ^^^RP07.J38X.D3EF)
                }

                If (LNot (PLTP))
                {
                    Store (Zero, ^^^RP03.DCTV)
                    Store (One, ^^^RP03.LCTM)
                }

                Store (Zero, INS4)
                Store (Zero, S4CT)
                _QE9 ()
            }

            Method (BPOL, 1, NotSerialized)
            {
                Store (Arg0, DBPL)
                Store (One, EBPL)
            }

            Mutex (CMUT, 0x00)
            Method (CMC2, 3, NotSerialized)
            {
                Acquire (CMUT, 0xFFFF)
                Store (Arg2, CMD2)
                Store (Arg1, CMD1)
                Store (Arg0, CMCM)
                While (CMCM) {}
                Release (CMUT)
            }

            Name (TIM1, Zero)
            Method (_Q09, 0, NotSerialized)
            {
                Notify (BAT1, 0x80)
                Notify (BAT1, Zero)
                Notify (ACAD, Zero)
                BPOL (0x3C)
            }

            Method (_Q20, 0, NotSerialized)
            {
                If (And (SMST, 0x40))
                {
                    Store (SMAA, Local0)
                    If (LEqual (Local0, 0x14))
                    {
                        SELE ()
                        If (And (0x40, BATF))
                        {
                            Notify (BAT1, 0x81)
                        }

                        If (And (0x02, BATF))
                        {
                            Notify (ACAD, Zero)
                            UPBR ()
                            PNOT ()
                        }

                        Notify (BAT1, 0x80)
                        Store (BATD, BATO)
                        And (SMST, 0xBF, SMST)
                    }
                }
            }

            Method (UPAC, 0, NotSerialized)
            {
                If (SW2S)
                {
                    Or (BATD, 0xC0, BATD)
                    Or (BATO, 0xC0, BATO)
                }
                Else
                {
                    And (BATD, 0xFF3F, BATD)
                    And (BATO, 0xFF3F, BATO)
                }
            }

            Method (SELE, 0, NotSerialized)
            {
                Store (BATD, BATN)
                Store (Zero, BATF)
                If (And (0xC0, BATN))
                {
                    Or (BATF, One, BATF)
                }

                If (And (0x0300, BATN))
                {
                    Or (BATF, 0x04, BATF)
                }

                And (BATN, One, Local0)
                And (BATO, One, Local1)
                If (Local0)
                {
                    Or (BATF, 0x0100, BATF)
                }
                Else
                {
                    And (BATF, 0xFEFF, BATF)
                }

                If (Not (LEqual (Local0, Local1)))
                {
                    Or (BATF, 0x40, BATF)
                }

                And (BATN, 0xC0, Local0)
                And (BATO, 0xC0, Local1)
                If (Not (LEqual (Local0, Local1)))
                {
                    Or (BATF, 0x02, BATF)
                }

                If (And (One, BATF))
                {
                    If (And (0x04, BATF))
                    {
                        If (And (BATN, 0x10))
                        {
                            Or (BATF, 0x10, BATF)
                        }
                    }
                }
            }

            Method (_Q69, 0, NotSerialized)
            {
                Notify (BAT1, 0x81)
                Notify (BAT1, 0x80)
            }

            Method (_Q26, 0, NotSerialized)
            {
                If (^^^RP07.PDSX)
                {
                    Store (Zero, ^^^RP07.J38X.D3EF)
                }
                Else
                {
                    PHSR (0x9F)
                }

                Notify (BAT1, 0x80)
                Notify (ACAD, 0x80)
            }

            Method (_Q27, 0, NotSerialized)
            {
                Store (One, ^^^RP07.J38X.D3EF)
                Notify (ACAD, 0x80)
            }

            Mutex (Q70X, 0x00)
            Name (BCSM, Zero)
            Method (_Q70, 0, NotSerialized)
            {
                Store (0x70, P80H)
                Acquire (Q70X, 0xFFFF)
                Store (One, BCSM)
                If (LEqual (MBTT, Zero))
                {
                    Notify (^^^GFX0.DD02, 0x86)
                }
                Else
                {
                    If (LAnd (LEqual (OSYS, 0x07D9), LEqual (SGST, 0x02)))
                    {
                        Notify (^^^GFX0.DD02, 0x86)
                    }
                    Else
                    {
                        Notify (^^^PEG0.PEGP.DD02, 0x86)
                    }
                }

                Sleep (0x64)
                Store (Zero, BCSM)
                Release (Q70X)
            }

            Method (_Q72, 0, NotSerialized)
            {
                Store ("_Q72 : Temperature Down", Debug)
                Store (0x72, P80H)
            }

            Method (_Q78, 0, NotSerialized)
            {
                Store (0x78, P80H)
                If (LNot (DGPU))
                {
                    Store (^^^^OPST, OPST)
                    If (LEqual (Zero, OPST))
                    {
                        Store (One, ^^^^OPST)
                        Store (Zero, GO45)
                    }
                    Else
                    {
                        Store (Zero, ^^^^OPST)
                        Store (One, GO45)
                    }
                }
                Else
                {
                    Store (Zero, GO45)
                }

                Notify (^^^PEG0.PEGP, 0xDF)
            }

            Method (_Q79, 0, NotSerialized)
            {
                Store ("_Q79 : Switchable HK event", Debug)
                If (GO36)
                {
                    Store (0x40, ^^^GFX0.DSWR)
                    Sleep (0x01F4)
                    Notify (GFX0, 0x81)
                }
            }

            Mutex (Q80X, 0x00)
            Method (_Q80, 0, NotSerialized)
            {
                Acquire (Q80X, 0xFFFF)
                Store (0x80, P80H)
                Store ("_Q80 : Temperature Up", Debug)
                Notify (\_TZ.TZ00, 0x80)
                Release (Q80X)
            }

            Method (_Q81, 0, NotSerialized)
            {
                Store ("_Q81 : Temperature Down", Debug)
                Notify (\_TZ.TZ00, 0x80)
            }

            Method (_Q8F, 0, NotSerialized)
            {
                Store ("_Q8F : Hot Key Event", Debug)
                Store (0x8F, P80H)
                If (CCDE)
                {
                    If (CCDS)
                    {
                        PHSR (0x8B)
                    }
                    Else
                    {
                        PHSR (0x8C)
                    }
                }

                If (GSWS)
                {
                    If (WLSE)
                    {
                        Store (WRFS, GO12)
                    }

                    If (BTDE)
                    {
                        If (BTSS)
                        {
                            Store (Zero, GO35)
                        }
                        Else
                        {
                            Store (One, GO35)
                        }
                    }

                    If (WWAE)
                    {
                        Store (G3RS, GO48)
                    }

                    If (LOr (WRFS, BTSS))
                    {
                        Store (One, GO52)
                    }
                    Else
                    {
                        Store (Zero, GO52)
                    }
                }
                Else
                {
                    Store (Zero, GO12)
                    Store (One, GO35)
                    Store (Zero, GO52)
                }

                If (GSWS)
                {
                    Store (GO12, FL07)
                    Store (Not (GO35), FL10)
                }

                Store ("_Q8F : Hot Key Event Finished", Debug)
            }

            Method (DRST, 0, NotSerialized)
            {
                Store ("_DAA : Hot Key Event", Debug)
                Store (0xAA, P80H)
                If (GSWS)
                {
                    If (WLSE)
                    {
                        If (FL07)
                        {
                            Store (One, GO24)
                        }
                        Else
                        {
                            Store (Zero, GO24)
                        }
                    }

                    If (BTDE)
                    {
                        If (FL10)
                        {
                            Store (One, GO35)
                        }
                        Else
                        {
                            Store (Zero, GO35)
                        }
                    }

                    If (WWAE)
                    {
                        If (FL17)
                        {
                            Store (One, GO48)
                        }
                        Else
                        {
                            Store (Zero, GO48)
                        }
                    }
                }
                Else
                {
                    Store (Zero, GO48)
                    Store (Zero, GO24)
                    Store (Zero, GO35)
                }
            }

            Method (_Q90, 0, NotSerialized)
            {
                Store (0x90, P80H)
                If (LGreaterEqual (OSYS, 0x07D6))
                {
                    If (IGDS)
                    {
                        And (^^^GFX0.CBLV, 0xFF, IBLV)
                        If (LNotEqual (IBLV, IBC0))
                        {
                            And (^^^GFX0.CBLV, 0xFF, IBC0)
                            IBCC (IBC0)
                        }

                        Notify (^^^GFX0.DD02, 0x86)
                        PHSR (0x96)
                        Sleep (0x64)
                        And (^^^GFX0.CBLV, 0xFF, IBC0)
                        IBCC (IBC0)
                    }
                    Else
                    {
                        Notify (^^^PEG0.PEGP.DD02, 0x87)
                        PHSR (0x96)
                    }
                }
                Else
                {
                    PHSR (0x96)
                    If (IGDS)
                    {
                        Store (BRNS, Local0)
                        Subtract (0x0A, Local0, Local0)
                        Store (DerefOf (Index (PNLS, Local0)), Local1)
                        ISBC (Local1)
                    }

                    Store (BRNS, BLVL)
                }

                _Q41 ()
            }

            Method (_Q91, 0, NotSerialized)
            {
                Store (0x91, P80H)
                If (LGreaterEqual (OSYS, 0x07D6))
                {
                    If (IGDS)
                    {
                        And (^^^GFX0.CBLV, 0xFF, IBLV)
                        If (LNotEqual (IBLV, IBC0))
                        {
                            And (^^^GFX0.CBLV, 0xFF, IBC0)
                            IBCC (IBC0)
                        }

                        Notify (^^^GFX0.DD02, 0x87)
                        PHSR (0x97)
                        Sleep (0x64)
                        And (^^^GFX0.CBLV, 0xFF, IBC0)
                        IBCC (IBC0)
                    }
                    Else
                    {
                        Notify (^^^PEG0.PEGP.DD02, 0x87)
                        PHSR (0x97)
                    }
                }
                Else
                {
                    PHSR (0x97)
                    If (IGDS)
                    {
                        Store (BRNS, Local0)
                        Subtract (0x0A, Local0, Local0)
                        Store (DerefOf (Index (PNLS, Local0)), Local1)
                        ISBC (Local1)
                    }

                    Store (BRNS, BLVL)
                }

                _Q41 ()
            }

            Mutex (SXXX, 0x00)
            Method (_Q92, 0, NotSerialized)
            {
                Store ("_Q92 : Switch Display Event", Debug)
                Store (0x92, P80H)
                If (LNot (^VPC0.APDT))
                {
                    Store (Zero, ^VPC0.GCPU)
                    Acquire (SXXX, 0xFFFF)
                    If (IGDS)
                    {
                        Store (VDDD, Local0)
                        If (LEqual (Local0, 0x0B))
                        {
                            ^^^GFX0.GHDS (One)
                        }
                        Else
                        {
                            ^^^GFX0.GHDS (Zero)
                        }
                    }
                    Else
                    {
                    }

                    Release (SXXX)
                    Store (One, ^VPC0.GCPU)
                }

                Store ("_Q92 : End of Switch Display Event", Debug)
            }

            Method (_Q93, 0, NotSerialized)
            {
                Store (0x93, P80H)
                Sleep (0xC8)
                Store (Zero, GPUN)
            }

            Method (_Q94, 0, NotSerialized)
            {
                Store (0x94, P80H)
                Store (LNot (BLIS), GO23)
            }

            Method (_QE0, 0, NotSerialized)
            {
                Store ("_QE0 : LID Switch Event", Debug)
                Store (0xE0, P80H)
                If (IGDS)
                {
                    If (LDS0)
                    {
                        Store (Zero, LIDS)
                    }
                    Else
                    {
                        Store (One, LIDS)
                        If (LNot (LOr (LOr (LEqual (^^^GFX0.CPDL, ^^^GFX0.DDL2), LEqual (^^^GFX0.CPL2, ^^^GFX0.DDL2)), 
                            LEqual (^^^GFX0.CPL2, ^^^GFX0.DDL2))))
                        {
                            Store (One, ^^^GFX0.CLID)
                        }

                        If (LAnd (LGreater (OSYS, 0x07D0), LLess (OSYS, 0x07D6)))
                        {
                            ^^^GFX0.GLID (One)
                        }
                    }
                }

                Notify (LID, 0x80)
                Store ("_QE0 : End of LID Switch Event", Debug)
            }

            Method (_QE2, 0, NotSerialized)
            {
                Store (0xE2, P80H)
                Notify (SLPB, 0x80)
            }

            Method (_Q44, 0, NotSerialized)
            {
                Store (0x44, P80H)
                If (OK3G)
                {
                    ^^^^WMI2.CMD3 (0x85)
                }
            }

            Mutex (QE4X, 0x00)
            Method (_QE4, 0, NotSerialized)
            {
                Acquire (QE4X, 0xFFFF)
                Store (0xE4, P80H)
                Store (One, SKK0)
                Sleep (0x32)
                Store (One, \_PR.CPU0._PPC)
                PNOT ()
                Sleep (0x32)
                Store (One, \_PR.CPU1._PPC)
                PNOT ()
                Sleep (0x32)
                Release (QE4X)
            }

            Mutex (QE5X, 0x00)
            Method (_QE5, 0, NotSerialized)
            {
                Acquire (QE5X, 0xFFFF)
                Store (0xE5, P80H)
                Store (Zero, SKK0)
                Store (Zero, SKK1)
                Store (Zero, SKK2)
                Sleep (0x32)
                Store (Zero, \_PR.CPU0._PPC)
                PNOT ()
                Sleep (0x32)
                Store (Zero, \_PR.CPU1._PPC)
                PNOT ()
                Sleep (0x32)
                Release (QE5X)
            }

            Mutex (QE6X, 0x00)
            Method (_QE6, 0, NotSerialized)
            {
                Acquire (QE6X, 0xFFFF)
                Store (0xE6, P80H)
                Store (One, SKK1)
                Sleep (0x32)
                Store (0x02, \_PR.CPU0._PPC)
                PNOT ()
                Sleep (0x32)
                Store (0x02, \_PR.CPU1._PPC)
                PNOT ()
                Sleep (0x32)
                Release (QE6X)
            }

            Mutex (QE7X, 0x00)
            Method (_QE7, 0, NotSerialized)
            {
                Acquire (QE7X, 0xFFFF)
                Store (0xE7, P80H)
                Store (One, SKK2)
                Sleep (0x32)
                Store (0x03, \_PR.CPU0._PPC)
                PNOT ()
                Sleep (0x32)
                Store (0x03, \_PR.CPU1._PPC)
                PNOT ()
                Sleep (0x32)
                Release (QE7X)
            }

            Mutex (QE8X, 0x00)
            Method (_QE8, 0, NotSerialized)
            {
                Acquire (QE8X, 0xFFFF)
                Store (0xB5, SSMP)
                Sleep (0x50)
                Store (0xB7, SSMP)
                Store (One, THFL)
                Release (QE8X)
            }

            Mutex (QE9X, 0x00)
            Method (_QE9, 0, NotSerialized)
            {
                Acquire (QE9X, 0xFFFF)
                Store (0xB6, SSMP)
                Sleep (0x50)
                Store (0xB7, SSMP)
                Store (Zero, ADTC)
                Store (Zero, THFL)
                Release (QE9X)
            }

            Mutex (QEAX, 0x00)
            Method (_QEA, 0, NotSerialized)
            {
                If (LEqual (Zero, ADT0))
                {
                    If (LEqual (Zero, SPL2))
                    {
                        Acquire (QEAX, 0xFFFF)
                        Store (0xEA, P80H)
                        Store (One, SPL2)
                        Sleep (0x32)
                        Store (0x03, \_PR.CPU0._PPC)
                        PNOT ()
                        Sleep (0x32)
                        Store (0x03, \_PR.CPU1._PPC)
                        PNOT ()
                        Sleep (0x32)
                        Release (QEAX)
                    }
                }
            }

            Mutex (QEBX, 0x00)
            Method (_QEB, 0, NotSerialized)
            {
                If (LEqual (Zero, ADT0))
                {
                    If (LNotEqual (SPL1, One))
                    {
                        If (LNotEqual (SPL2, One))
                        {
                            If (LNotEqual (SPL3, One))
                            {
                                Acquire (QEBX, 0xFFFF)
                                Store (0xEB, P80H)
                                Store (One, SPL0)
                                Sleep (0x32)
                                Store (0x02, \_PR.CPU0._PPC)
                                PNOT ()
                                Sleep (0x32)
                                Store (0x02, \_PR.CPU1._PPC)
                                PNOT ()
                                Sleep (0x32)
                                Release (QEBX)
                            }
                        }
                    }
                }
            }

            Mutex (QECX, 0x00)
            Method (_QEC, 0, NotSerialized)
            {
                If (LEqual (Zero, ADT0))
                {
                    If (LEqual (Zero, SPL1))
                    {
                        Acquire (QECX, 0xFFFF)
                        Store (0xEC, P80H)
                        Store (One, SPL1)
                        Sleep (0x32)
                        Store (0x03, \_PR.CPU0._PPC)
                        PNOT ()
                        Sleep (0x32)
                        Store (0x03, \_PR.CPU1._PPC)
                        PNOT ()
                        Sleep (0x32)
                        Release (QECX)
                    }
                }
            }

            Mutex (QEDX, 0x00)
            Method (_QED, 0, NotSerialized)
            {
                If (LEqual (Zero, ADT0))
                {
                    If (LEqual (Zero, SPL3))
                    {
                        Acquire (QEDX, 0xFFFF)
                        Store (0xED, P80H)
                        Store (One, SPL3)
                        Sleep (0x32)
                        Store (0x03, \_PR.CPU0._PPC)
                        PNOT ()
                        Sleep (0x32)
                        Store (0x03, \_PR.CPU1._PPC)
                        PNOT ()
                        Sleep (0x32)
                        Release (QEDX)
                    }
                }
            }

            Mutex (QEEX, 0x00)
            Method (_QEE, 0, NotSerialized)
            {
                If (LEqual (Zero, ADT0))
                {
                    Acquire (QEEX, 0xFFFF)
                    Store (0xEE, P80H)
                    Store (Zero, SPL0)
                    Store (Zero, SPL1)
                    Store (Zero, SPL2)
                    Store (Zero, SPL3)
                    Sleep (0x32)
                    Store (Zero, \_PR.CPU0._PPC)
                    PNOT ()
                    Sleep (0x32)
                    Store (Zero, \_PR.CPU1._PPC)
                    PNOT ()
                    Sleep (0x32)
                    Release (QEEX)
                }
            }

            Mutex (ATMR, 0x00)
            Method (ATMQ, 1, NotSerialized)
            {
                Store (Arg0, SSLE)
                Acquire (ATMR, 0xFFFF)
                If (And (PDC0, 0x08))
                {
                    Store (SSLE, \_PR.CPU0._PPC)
                }

                If (And (PDC1, 0x08))
                {
                    \_PR.CPU1._PPC ()
                }

                If (And (PDC2, 0x08))
                {
                    \_PR.CPU2._PPC ()
                }

                If (And (PDC3, 0x08))
                {
                    \_PR.CPU3._PPC ()
                }

                If (And (PDC4, 0x08))
                {
                    \_PR.CPU4._PPC ()
                }

                If (And (PDC5, 0x08))
                {
                    \_PR.CPU5._PPC ()
                }

                If (And (PDC6, 0x08))
                {
                    \_PR.CPU6._PPC ()
                }

                If (And (PDC7, 0x08))
                {
                    \_PR.CPU7._PPC ()
                }

                Sleep (0x32)
                PNOT ()
                Release (ATMR)
            }

            Field (ERAM, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x1C), 
                SMW0,   16
            }

            Field (ERAM, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x1C), 
                SMB0,   8
            }

            Field (ERAM, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x1C), 
                FLD0,   64
            }

            Field (ERAM, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x1C), 
                FLD1,   128
            }

            Field (ERAM, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x1C), 
                FLD2,   192
            }

            Field (ERAM, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x1C), 
                FLD3,   256
            }

            Mutex (MUT0, 0x00)
            Method (SMRD, 4, NotSerialized)
            {
                If (LNot (ECON))
                {
                    Return (0xFF)
                }

                If (LNotEqual (Arg0, 0x07))
                {
                    If (LNotEqual (Arg0, 0x09))
                    {
                        If (LNotEqual (Arg0, 0x0B))
                        {
                            Return (0x19)
                        }
                    }
                }

                Acquire (MUT0, 0xFFFF)
                Store (0x04, Local0)
                While (LGreater (Local0, One))
                {
                    And (SMST, 0x40, SMST)
                    Store (Arg2, SMCM)
                    Store (Arg1, SMAD)
                    Store (Arg0, SMPR)
                    Store (Zero, Local3)
                    While (LNot (And (SMST, 0xBF, Local1)))
                    {
                        Sleep (0x02)
                        Increment (Local3)
                        If (LEqual (Local3, 0x32))
                        {
                            And (SMST, 0x40, SMST)
                            Store (Arg2, SMCM)
                            Store (Arg1, SMAD)
                            Store (Arg0, SMPR)
                            Store (Zero, Local3)
                        }
                    }

                    If (LEqual (Local1, 0x80))
                    {
                        Store (Zero, Local0)
                    }
                    Else
                    {
                        Decrement (Local0)
                    }
                }

                If (Local0)
                {
                    Store (And (Local1, 0x1F), Local0)
                }
                Else
                {
                    If (LEqual (Arg0, 0x07))
                    {
                        Store (SMB0, Arg3)
                    }

                    If (LEqual (Arg0, 0x09))
                    {
                        Store (SMW0, Arg3)
                    }

                    If (LEqual (Arg0, 0x0B))
                    {
                        Store (BCNT, Local3)
                        ShiftRight (0x0100, 0x03, Local2)
                        If (LGreater (Local3, Local2))
                        {
                            Store (Local2, Local3)
                        }

                        If (LLess (Local3, 0x11))
                        {
                            Store (FLD1, Local2)
                        }
                        Else
                        {
                            If (LLess (Local3, 0x19))
                            {
                                Store (FLD2, Local2)
                            }
                            Else
                            {
                                Store (FLD3, Local2)
                            }
                        }

                        Increment (Local3)
                        Store (Buffer (Local3) {}, Local4)
                        Decrement (Local3)
                        Store (Zero, Local5)
                        While (LGreater (Local3, Local5))
                        {
                            GBFE (Local2, Local5, RefOf (Local6))
                            PBFE (Local4, Local5, Local6)
                            Increment (Local5)
                        }

                        PBFE (Local4, Local5, Zero)
                        Store (Local4, Arg3)
                    }
                }

                Release (MUT0)
                Return (Local0)
            }

            Method (SMWR, 4, NotSerialized)
            {
                If (LNot (ECON))
                {
                    Return (0xFF)
                }

                If (LNotEqual (Arg0, 0x06))
                {
                    If (LNotEqual (Arg0, 0x08))
                    {
                        If (LNotEqual (Arg0, 0x0A))
                        {
                            Return (0x19)
                        }
                    }
                }

                Acquire (MUT0, 0xFFFF)
                Store (0x04, Local0)
                While (LGreater (Local0, One))
                {
                    If (LEqual (Arg0, 0x06))
                    {
                        Store (Arg3, SMB0)
                    }

                    If (LEqual (Arg0, 0x08))
                    {
                        Store (Arg3, SMW0)
                    }

                    If (LEqual (Arg0, 0x0A))
                    {
                        Store (Arg3, SMD0)
                    }

                    And (SMST, 0x40, SMST)
                    Store (Arg2, SMCM)
                    Store (Arg1, SMAD)
                    Store (Arg0, SMPR)
                    Store (Zero, Local3)
                    While (LNot (And (SMST, 0xBF, Local1)))
                    {
                        Sleep (0x02)
                        Increment (Local3)
                        If (LEqual (Local3, 0x32))
                        {
                            And (SMST, 0x40, SMST)
                            Store (Arg2, SMCM)
                            Store (Arg1, SMAD)
                            Store (Arg0, SMPR)
                            Store (Zero, Local3)
                        }
                    }

                    If (LEqual (Local1, 0x80))
                    {
                        Store (Zero, Local0)
                    }
                    Else
                    {
                        Decrement (Local0)
                    }
                }

                If (Local0)
                {
                    Store (And (Local1, 0x1F), Local0)
                }

                Release (MUT0)
                Return (Local0)
            }
        }
    }

    Scope (_SB)
    {
        Device (ACAD)
        {
            Name (_HID, "ACPI0003")
            Name (_PCL, Package (0x01)
            {
                _SB
            })
            Method (_PSR, 0, NotSerialized)
            {
                If (ECON)
                {
                    Store (^^PCI0.LPCB.EC0.SW2S, PWRS)
                }

                Return (PWRS)
            }
        }
    }

    Scope (_SB)
    {
        Method (VTOB, 1, NotSerialized)
        {
            Store (One, Local0)
            ShiftLeft (Local0, Arg0, Local0)
            Return (Local0)
        }

        Method (BTOV, 1, NotSerialized)
        {
            ShiftRight (Arg0, One, Local0)
            Store (Zero, Local1)
            While (Local0)
            {
                Increment (Local1)
                ShiftRight (Local0, One, Local0)
            }

            Return (Local1)
        }

        Method (MKWD, 2, NotSerialized)
        {
            If (And (Arg1, 0x80))
            {
                Store (0xFFFF0000, Local0)
            }
            Else
            {
                Store (Zero, Local0)
            }

            Or (Local0, Arg0, Local0)
            Or (Local0, ShiftLeft (Arg1, 0x08), Local0)
            Return (Local0)
        }

        Method (POSW, 1, NotSerialized)
        {
            If (And (Arg0, 0x8000))
            {
                If (LEqual (Arg0, 0xFFFF))
                {
                    Return (0xFFFFFFFF)
                }
                Else
                {
                    Not (Arg0, Local0)
                    Increment (Local0)
                    And (Local0, 0xFFFF, Local0)
                    Return (Local0)
                }
            }
            Else
            {
                Return (Arg0)
            }
        }

        Method (GBFE, 3, NotSerialized)
        {
            CreateByteField (Arg0, Arg1, TIDX)
            Store (TIDX, Arg2)
        }

        Method (PBFE, 3, NotSerialized)
        {
            CreateByteField (Arg0, Arg1, TIDX)
            Store (Arg2, TIDX)
        }

        Method (ITOS, 1, NotSerialized)
        {
            Store (Buffer (0x09)
                {
                    /* 0000 */    0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0008 */    0x00
                }, Local0)
            Store (Buffer (0x11)
                {
                    "0123456789ABCDEF"
                }, Local7)
            Store (0x08, Local1)
            Store (Zero, Local2)
            Store (Zero, Local3)
            While (Local1)
            {
                Decrement (Local1)
                And (ShiftRight (Arg0, ShiftLeft (Local1, 0x02)), 0x0F, Local4)
                If (Local4)
                {
                    Store (Ones, Local3)
                }

                If (Local3)
                {
                    GBFE (Local7, Local4, RefOf (Local5))
                    PBFE (Local0, Local2, Local5)
                    Increment (Local2)
                }
            }

            Return (Local0)
        }

        Device (BAT1)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_UID, One)
            Name (_PCL, Package (0x01)
            {
                _SB
            })
            Name (PBIF, Package (0x0D)
            {
                One, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                One, 
                0xFFFFFFFF, 
                0xFA, 
                0x64, 
                0x0A, 
                0x19, 
                "BAT1", 
                " ", 
                " ", 
                " "
            })
            Name (PBST, Package (0x04)
            {
                Zero, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x2710
            })
            Name (BAST, Zero)
            Name (USBW, Zero)
            Name (B1ST, 0x0F)
            Name (B1WT, Zero)
            Method (_STA, 0, NotSerialized)
            {
                If (ECON)
                {
                    If (^^PCI0.LPCB.EC0.MBTS)
                    {
                        Store (0x1F, B1ST)
                    }
                    Else
                    {
                        Store (0x0F, B1ST)
                    }
                }
                Else
                {
                    Store (0x0F, B1ST)
                }

                Return (B1ST)
            }

            Method (_BIF, 0, NotSerialized)
            {
                If (ECON)
                {
                    If (^^PCI0.LPCB.EC0.MBTS)
                    {
                        UPBI ()
                    }
                    Else
                    {
                        IVBI ()
                    }
                }
                Else
                {
                    IVBI ()
                }

                Return (PBIF)
            }

            Method (_BST, 0, NotSerialized)
            {
                If (ECON)
                {
                    If (^^PCI0.LPCB.EC0.MBTS)
                    {
                        UPBS ()
                    }
                    Else
                    {
                        IVBS ()
                    }
                }
                Else
                {
                    IVBS ()
                }

                Return (PBST)
            }

            Method (UPBI, 0, NotSerialized)
            {
                Store (^^PCI0.LPCB.EC0.B1FC, Index (PBIF, 0x02))
                Store (0x1FFF, Local2)
                ^^PCI0.LPCB.EC0.SMWR (0x08, 0x14, One, Local2)
                ^^PCI0.LPCB.EC0.SMRD (0x09, 0x14, One, RefOf (Local3))
                If (LEqual (Local2, Or (Local3, 0x0FFF)))
                {
                    If (LNot (^^PCI0.LPCB.EC0.SMRD (0x09, 0x16, 0x18, RefOf (Local1))))
                    {
                        Store (Local1, Index (PBIF, One))
                        Store (Divide (Local1, 0x0A, ), Index (PBIF, 0x05))
                        Store (Divide (Multiply (Local1, 0x03), 0x64, ), Index (
                            PBIF, 0x06))
                    }

                    If (LNot (^^PCI0.LPCB.EC0.SMRD (0x09, 0x16, 0x19, RefOf (Local1))))
                    {
                        Store (Local1, Index (PBIF, 0x04))
                    }

                    If (LNot (^^PCI0.LPCB.EC0.MBUD))
                    {
                        PHSR (0x8A)
                        Store (BATI, Index (PBIF, 0x09))
                    }

                    If (LNot (^^PCI0.LPCB.EC0.MBUD))
                    {
                        PHSR (0x83)
                        Store (BATI, Index (PBIF, 0x0C))
                        Store (One, ^^PCI0.LPCB.EC0.MBUD)
                    }
                }

                Store ("LION", Index (PBIF, 0x0B))
                Store (One, Index (PBIF, Zero))
            }

            Method (UPBS, 0, NotSerialized)
            {
                Store (^^PCI0.LPCB.EC0.MCUR, Local5)
                Store (POSW (Local5), Index (PBST, One))
                Store (^^PCI0.LPCB.EC0.MBRM, Index (PBST, 0x02))
                Store (^^PCI0.LPCB.EC0.MBVG, Index (PBST, 0x03))
                If (^^PCI0.LPCB.EC0.MBTF)
                {
                    Store (Zero, Index (PBST, Zero))
                }
                Else
                {
                    If (LNotEqual (Local5, Zero))
                    {
                        Store (0xB1, P80H)
                        If (^^PCI0.LPCB.EC0.MBTC)
                        {
                            Store (0x02, Index (PBST, Zero))
                        }
                        Else
                        {
                            Store (One, Index (PBST, Zero))
                        }
                    }
                    Else
                    {
                        If (^^PCI0.LPCB.EC0.MBTC)
                        {
                            Store (0x02, Index (PBST, Zero))
                        }
                        Else
                        {
                            Store (Zero, Index (PBST, Zero))
                        }

                        If (^^PCI0.LPCB.EC0.TRCM)
                        {
                            Store (0x02, Index (PBST, Zero))
                        }
                        Else
                        {
                            Store (Zero, Index (PBST, Zero))
                        }
                    }
                }
            }

            Method (IVBI, 0, NotSerialized)
            {
                Store (0xFFFFFFFF, Index (PBIF, One))
                Store (0xFFFFFFFF, Index (PBIF, 0x02))
                Store (0xFFFFFFFF, Index (PBIF, 0x04))
                Store ("Bad", Index (PBIF, 0x09))
                Store ("      ", Index (PBIF, 0x0A))
                Store ("Bad", Index (PBIF, 0x0B))
                Store ("Bad", Index (PBIF, 0x0C))
            }

            Method (IVBS, 0, NotSerialized)
            {
                Store (Zero, Index (PBST, Zero))
                Store (0xFFFFFFFF, Index (PBST, One))
                Store (0xFFFFFFFF, Index (PBST, 0x02))
                Store (0x2710, Index (PBST, 0x03))
            }
        }
    }

    Scope (_SB)
    {
        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
        }

        Device (SLPB)
        {
            Name (_HID, EisaId ("PNP0C0E"))
        }

        Device (WMI2)
        {
            Name (_HID, "PNP0C14")
            Name (_UID, Zero)
            Name (CMBF, Buffer (0x03)
            {
                0x00, 0x00, 0x00
            })
            Name (BUF1, Buffer (0x40)
            {
                /* 0000 */    0x01, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 
                /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                /* 0010 */    0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 
                /* 0018 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                /* 0020 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                /* 0028 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                /* 0030 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                /* 0038 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
            })
            Name (BUF2, Buffer (0x40)
            {
                /* 0000 */    0x02, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                /* 0010 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                /* 0018 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                /* 0020 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                /* 0028 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                /* 0030 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                /* 0038 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
            })
            Name (INBF, Buffer (0x80)
            {
                /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0020 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0028 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0030 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0038 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0040 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0048 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0050 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0058 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0060 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0068 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0070 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                /* 0078 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
            })
            CreateByteField (CMBF, Zero, EVID)
            CreateByteField (CMBF, One, ACID)
            CreateByteField (CMBF, 0x02, DA01)
            CreateByteField (BUF1, One, EID1)
            CreateByteField (BUF1, 0x02, ERQ0)
            CreateByteField (BUF1, 0x03, BRIL)
            CreateByteField (BUF1, 0x04, SKEY)
            CreateByteField (BUF1, 0x08, BLUE)
            CreateByteField (BUF1, 0x09, WLAN)
            CreateByteField (BUF1, 0x0A, WL3G)
            CreateByteField (BUF1, 0x0B, WMAX)
            CreateByteField (BUF1, 0x0C, GLSW)
            CreateByteField (BUF1, 0x10, TPST)
            CreateByteField (BUF1, 0x11, SLMD)
            CreateByteField (BUF1, 0x12, SBR0)
            CreateByteField (BUF1, 0x13, SBR1)
            CreateByteField (BUF1, 0x14, SBR2)
            CreateByteField (BUF1, 0x15, SBBR)
            CreateByteField (BUF1, 0x16, SBLI)
            CreateBitField (BUF1, 0x10, AP00)
            CreateBitField (BUF1, 0x11, AP01)
            CreateBitField (BUF1, 0x12, AP02)
            CreateBitField (BUF1, 0x13, AP03)
            CreateBitField (BUF1, 0x14, AP04)
            CreateBitField (BUF1, 0x15, AP05)
            CreateBitField (BUF1, 0x16, AP06)
            CreateBitField (BUF1, 0x17, AP07)
            CreateByteField (BUF1, 0x20, PD00)
            CreateByteField (BUF1, 0x21, PD01)
            CreateByteField (BUF1, 0x22, PD02)
            CreateByteField (BUF1, 0x23, PD03)
            CreateByteField (BUF1, 0x24, PD04)
            CreateByteField (BUF1, 0x25, PD05)
            CreateByteField (BUF1, 0x26, PD06)
            CreateByteField (BUF1, 0x27, PD07)
            CreateByteField (BUF2, One, EID2)
            CreateByteField (BUF2, 0x08, BIV0)
            CreateByteField (BUF2, 0x09, BIV1)
            CreateByteField (BUF2, 0x0A, BIV2)
            CreateByteField (BUF2, 0x0B, BIV3)
            CreateByteField (BUF2, 0x0C, BIV4)
            CreateByteField (BUF2, 0x0D, BIV5)
            CreateByteField (BUF2, 0x0E, BIV6)
            CreateByteField (BUF2, 0x0F, BIV7)
            CreateByteField (BUF2, 0x10, WMIV)
            CreateByteField (BUF2, 0x18, BRMX)
            CreateByteField (BUF2, 0x20, BAT1)
            CreateByteField (BUF2, 0x21, BAT2)
            CreateByteField (BUF2, 0x22, ACDC)
            CreateByteField (BUF2, 0x23, CPUT)
            CreateByteField (BUF2, 0x24, VGAT)
            CreateByteField (BUF2, 0x25, CDT1)
            CreateByteField (BUF2, 0x26, CDT2)
            CreateByteField (BUF2, 0x27, FSP1)
            CreateByteField (BUF2, 0x28, FSP2)
            CreateByteField (INBF, Zero, BY00)
            CreateByteField (INBF, One, BY01)
            CreateByteField (INBF, 0x02, BY02)
            CreateByteField (INBF, 0x03, BY03)
            CreateByteField (INBF, 0x04, BY04)
            CreateByteField (INBF, 0x05, BY05)
            CreateByteField (INBF, 0x06, BY06)
            CreateByteField (INBF, 0x07, BY07)
            CreateByteField (INBF, 0x08, BY08)
            CreateByteField (INBF, 0x09, BY09)
            CreateByteField (INBF, 0x0A, BY10)
            CreateByteField (INBF, 0x0B, BY11)
            CreateByteField (INBF, 0x0C, BY12)
            CreateByteField (INBF, 0x0D, BY13)
            CreateByteField (INBF, 0x0E, BY14)
            CreateByteField (INBF, 0x0F, BY15)
            CreateByteField (INBF, 0x10, BY16)
            CreateByteField (INBF, 0x11, BY17)
            CreateByteField (INBF, 0x12, BY18)
            CreateByteField (INBF, 0x13, BY19)
            CreateByteField (INBF, 0x14, BY20)
            CreateByteField (INBF, 0x15, BY21)
            CreateByteField (INBF, 0x16, BY22)
            CreateByteField (INBF, 0x17, BY23)
            CreateByteField (INBF, 0x18, BY24)
            CreateByteField (INBF, 0x19, BY25)
            CreateByteField (INBF, 0x1A, BY26)
            CreateByteField (INBF, 0x1B, BY27)
            CreateByteField (INBF, 0x1C, BY28)
            CreateByteField (INBF, 0x1D, BY29)
            CreateByteField (INBF, 0x1E, BY30)
            CreateByteField (INBF, 0x1F, BY31)
            Method (_INI, 0, NotSerialized)
            {
                SBSW ()
                Store (0x10, WMIV)
                Store (BRNS, BRMX)
            }

            Name (_WDG, Buffer (0x3C)
            {
                /* 0000 */    0x20, 0x0F, 0xBC, 0xAB, 0xA1, 0x8E, 0xD1, 0x11, 
                /* 0008 */    0x00, 0xA0, 0xC9, 0x06, 0x29, 0x10, 0x00, 0x00, 
                /* 0010 */    0x80, 0x00, 0x01, 0x08, 0x40, 0x0F, 0xBC, 0xAB, 
                /* 0018 */    0xA1, 0x8E, 0xD1, 0x11, 0x00, 0xA0, 0xC9, 0x06, 
                /* 0020 */    0x29, 0x10, 0x00, 0x00, 0x49, 0x4F, 0x01, 0x01, 
                /* 0028 */    0x21, 0x12, 0x90, 0x05, 0x66, 0xD5, 0xD1, 0x11, 
                /* 0030 */    0xB2, 0xF0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0x10, 
                /* 0038 */    0x41, 0x45, 0x01, 0x00
            })
            Method (WQIO, 1, NotSerialized)
            {
                Store ("======== WMI WQIO ========", Debug)
                CMD1 (One, 0x02)
                CMD1 (0x02, 0x02)
                Concatenate (BUF2, BUF1, Local0)
                Return (Local0)
            }

            Mutex (MSIO, 0x00)
            Method (WSIO, 2, Serialized)
            {
                Store ("======== WMI WSIO ========", Debug)
                Acquire (MSIO, 0xFFFF)
                CPSR (Arg1)
                Release (MSIO)
            }

            Method (CPSR, 1, NotSerialized)
            {
                Name (_T_0, Zero)
                Store (Arg0, INBF)
                Store (BY00, _T_0)
                If (LEqual (_T_0, One))
                {
                    If (LNotEqual (BY01, 0x10))
                    {
                        Return (Zero)
                    }
                }
                Else
                {
                    Return (Zero)
                }

                CMD0 (BY08, BY09, BY10, One, BY16)
                Return (One)
            }

            Method (_WED, 1, NotSerialized)
            {
                Return (UWEA (EVID, ACID, DA01))
            }

            Method (CMD1, 2, NotSerialized)
            {
                CMD0 (Arg0, Arg1, Zero, Zero, Zero)
            }

            Method (CMD2, 3, NotSerialized)
            {
                CMD0 (Arg0, Arg1, Arg2, Zero, Zero)
            }

            Method (CMD3, 1, NotSerialized)
            {
                CMD0 (0x19, One, One, One, Arg0)
            }

            Mutex (MCD0, 0x00)
            Method (CMD0, 5, Serialized)
            {
                If (LAnd (ERQ0, LEqual (Arg2, One)))
                {
                    Store (Arg0, EVID)
                    Store (Arg1, ACID)
                    Store (Arg4, DA01)
                    Notify (WMI2, 0x80)
                }
                Else
                {
                    Acquire (MCD0, 0xFFFF)
                    UWED (Arg0, Arg1, Arg4)
                    Release (MCD0)
                }
            }

            Mutex (WXXX, 0x00)
            Method (UWED, 3, NotSerialized)
            {
                Name (_T_6, Zero)
                Name (_T_5, Zero)
                Name (_T_4, Zero)
                Name (_T_3, Zero)
                Name (_T_2, Zero)
                Name (_T_1, Zero)
                Name (_T_0, Zero)
                Store (Arg0, _T_0)
                If (LEqual (_T_0, One))
                {
                    Store (Arg0, EID1)
                    SBSW ()
                    Return (BUF1)
                }
                Else
                {
                    If (LEqual (_T_0, 0x02))
                    {
                        Store (Arg0, EID2)
                        Return (BUF2)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x08))
                        {
                            Store (Arg0, EID1)
                            If (Arg2)
                            {
                                Store (One, AP00)
                            }
                            Else
                            {
                                Store (Zero, AP00)
                            }

                            Return (BUF1)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x09))
                            {
                                Store (Arg0, EID1)
                                If (Arg2)
                                {
                                    Store (One, AP01)
                                }
                                Else
                                {
                                    Store (Zero, AP01)
                                }

                                Return (BUF1)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x0A))
                                {
                                    Store (Arg0, EID1)
                                    Store (Zero, AP02)
                                    Store (Zero, SBLI)
                                    Return (BUF1)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x0B))
                                    {
                                        Store (Arg0, EID1)
                                        If (Arg2)
                                        {
                                            Store (One, AP03)
                                        }
                                        Else
                                        {
                                            Store (Zero, AP03)
                                        }

                                        Return (BUF1)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x0C))
                                        {
                                            Store (Arg0, EID1)
                                            If (Arg2)
                                            {
                                                Store (One, AP04)
                                            }
                                            Else
                                            {
                                                Store (Zero, AP04)
                                            }

                                            Return (BUF1)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x0D))
                                            {
                                                Store (Arg0, EID1)
                                                If (Arg2)
                                                {
                                                    Store (One, AP05)
                                                }
                                                Else
                                                {
                                                    Store (Zero, AP05)
                                                }

                                                Return (BUF1)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x0E))
                                                {
                                                    Store (Arg0, EID1)
                                                    If (Arg2)
                                                    {
                                                        Store (One, AP06)
                                                    }
                                                    Else
                                                    {
                                                        Store (Zero, AP06)
                                                    }

                                                    Return (BUF1)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x0F))
                                                    {
                                                        Store (Arg0, EID1)
                                                        If (Arg2)
                                                        {
                                                            Store (One, AP07)
                                                        }
                                                        Else
                                                        {
                                                            Store (Zero, AP07)
                                                        }

                                                        Return (BUF1)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_0, 0x19))
                                                        {
                                                            Store (Arg0, EID1)
                                                            Store (Arg2, SKEY)
                                                            Return (BUF1)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_0, 0x2A))
                                                            {
                                                                Store (Arg0, EID1)
                                                                Store (^^PCI0.LPCB.EC0.SLB0, SBR0)
                                                                Store (^^PCI0.LPCB.EC0.SLB1, SBR1)
                                                                Store (^^PCI0.LPCB.EC0.SLB2, SBR2)
                                                                Return (BUF1)
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (_T_0, 0x2B))
                                                                {
                                                                    Store (Arg0, EID1)
                                                                    Store (Arg1, _T_1)
                                                                    If (LEqual (_T_1, One))
                                                                    {
                                                                        SBSW ()
                                                                    }
                                                                    Else
                                                                    {
                                                                        If (LEqual (_T_1, 0x03))
                                                                        {
                                                                            Store (Arg2, _T_2)
                                                                            If (LEqual (_T_2, Zero))
                                                                            {
                                                                                Store (Zero, SBBR)
                                                                                SBSV ()
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (_T_2, One))
                                                                                {
                                                                                    Store (One, SBBR)
                                                                                    SBSV ()
                                                                                }
                                                                                Else
                                                                                {
                                                                                    If (LEqual (_T_2, 0x10))
                                                                                    {
                                                                                        Store (Zero, SBLI)
                                                                                        SBSV ()
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                        If (LEqual (_T_2, 0x11))
                                                                                        {
                                                                                            Store (One, SBLI)
                                                                                            SBSV ()
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }

                                                                    Return (BUF1)
                                                                }
                                                                Else
                                                                {
                                                                    If (LEqual (_T_0, 0x30))
                                                                    {
                                                                        Acquire (WXXX, 0xFFFF)
                                                                        Store (Arg0, EID1)
                                                                        Store (Arg1, _T_3)
                                                                        If (LEqual (_T_3, 0x03))
                                                                        {
                                                                            Store (Arg2, _T_4)
                                                                            If (LEqual (_T_4, 0x02)) {}
                                                                            Else
                                                                            {
                                                                                If (LEqual (_T_4, 0x03)) {}
                                                                                Else
                                                                                {
                                                                                    If (LEqual (_T_4, 0x04))
                                                                                    {
                                                                                        Store (One, ^^PCI0.LPCB.EC0.TPDS)
                                                                                        Store (One, ^^PCI0.LPCB.EC0.TPNT)
                                                                                        If (^^PCI0.LPCB.EC0.CCDE)
                                                                                        {
                                                                                            PHSR (0x8B)
                                                                                            Store (One, ^^PCI0.LPCB.EC0.CCDS)
                                                                                        }
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                        If (LEqual (_T_4, 0x05)) {}
                                                                                        Else
                                                                                        {
                                                                                            If (LEqual (_T_4, 0x06)) {}
                                                                                            Else
                                                                                            {
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                        Else
                                                                        {
                                                                        }

                                                                        Release (WXXX)
                                                                        Return (BUF1)
                                                                    }
                                                                    Else
                                                                    {
                                                                        If (LEqual (_T_0, 0x60))
                                                                        {
                                                                            Store (Arg0, EID1)
                                                                            Store (Arg1, _T_5)
                                                                            If (LEqual (_T_5, 0x03))
                                                                            {
                                                                                Store (Arg2, _T_6)
                                                                                If (LEqual (_T_6, Zero))
                                                                                {
                                                                                    Store (Zero, ^^PCI0.LPCB.EC0.MLED)
                                                                                }
                                                                                Else
                                                                                {
                                                                                    If (LEqual (_T_6, One))
                                                                                    {
                                                                                        Store (One, ^^PCI0.LPCB.EC0.MLED)
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                    }
                                                                                }
                                                                            }
                                                                            Else
                                                                            {
                                                                            }

                                                                            Return (BUF1)
                                                                        }
                                                                        Else
                                                                        {
                                                                            Return (BUF1)
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            Method (SBSW, 0, NotSerialized)
            {
                Store (Zero, SBLI)
                Store (Zero, SBBR)
            }

            Mutex (MEC0, 0x00)
            Method (SBSV, 0, Serialized)
            {
            }

            Method (UWEA, 3, NotSerialized)
            {
                Name (_T_0, Zero)
                Store (Arg0, _T_0)
                If (LEqual (_T_0, 0x19))
                {
                    Store (Arg0, EID1)
                    Store (Arg2, SKEY)
                    Return (BUF1)
                }
                Else
                {
                    If (LEqual (_T_0, 0x2A))
                    {
                        Store (Arg0, EID1)
                        Store (^^PCI0.LPCB.EC0.SLB0, SBR0)
                        Store (^^PCI0.LPCB.EC0.SLB1, SBR1)
                        Store (^^PCI0.LPCB.EC0.SLB2, SBR2)
                        Return (BUF1)
                    }
                    Else
                    {
                        Return (BUF1)
                    }
                }
            }

            Name (WQAE, Buffer (0x02CB)
            {
                /* 0000 */    0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00, 
                /* 0008 */    0xBB, 0x02, 0x00, 0x00, 0x3C, 0x09, 0x00, 0x00, 
                /* 0010 */    0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54, 
                /* 0018 */    0x18, 0x5E, 0x84, 0x00, 0x01, 0x06, 0x18, 0x42, 
                /* 0020 */    0x10, 0x05, 0x10, 0x8A, 0x23, 0x81, 0x42, 0x04, 
                /* 0028 */    0x8A, 0x40, 0xA4, 0x00, 0x30, 0x28, 0x0D, 0x20, 
                /* 0030 */    0x92, 0x03, 0x21, 0x17, 0x4C, 0x4C, 0x00, 0xB7, 
                /* 0038 */    0x04, 0x78, 0x15, 0x60, 0x53, 0x80, 0x49, 0x10, 
                /* 0040 */    0xF5, 0xEF, 0x0F, 0x51, 0x12, 0x1C, 0x4A, 0x08, 
                /* 0048 */    0x84, 0x24, 0x0A, 0x30, 0x2F, 0x40, 0xB7, 0x00, 
                /* 0050 */    0xC3, 0x02, 0x6C, 0x0B, 0x30, 0x2D, 0xC0, 0x31, 
                /* 0058 */    0x24, 0x95, 0x06, 0x4E, 0x09, 0x2C, 0x05, 0x42, 
                /* 0060 */    0x42, 0x05, 0x28, 0x17, 0xE0, 0x5B, 0x80, 0x76, 
                /* 0068 */    0x44, 0x49, 0x16, 0x60, 0x19, 0x46, 0x04, 0x1E, 
                /* 0070 */    0x05, 0x43, 0xE3, 0xD0, 0xD8, 0x61, 0x58, 0x26, 
                /* 0078 */    0x98, 0x06, 0x71, 0x18, 0x65, 0x23, 0x8B, 0xC0, 
                /* 0080 */    0xB8, 0x9D, 0x0A, 0x90, 0x2B, 0x40, 0x98, 0x00, 
                /* 0088 */    0xF1, 0xA8, 0xC2, 0x68, 0x0E, 0x8A, 0x88, 0x86, 
                /* 0090 */    0x46, 0x89, 0x19, 0x13, 0x81, 0xED, 0x1C, 0x5B, 
                /* 0098 */    0xA3, 0x38, 0x95, 0xC2, 0x05, 0x48, 0xC7, 0xD0, 
                /* 00A0 */    0x08, 0x8E, 0xEB, 0x58, 0xB8, 0x2D, 0x01, 0x06, 
                /* 00A8 */    0x05, 0x38, 0x9C, 0x8C, 0x50, 0x0A, 0x02, 0xD5, 
                /* 00B0 */    0x68, 0x42, 0x84, 0x0B, 0x19, 0x26, 0x44, 0xCC, 
                /* 00B8 */    0x18, 0xC6, 0x3E, 0x97, 0x48, 0x07, 0x50, 0xF3, 
                /* 00C0 */    0xC8, 0x08, 0xD2, 0xB1, 0x05, 0x8A, 0x15, 0x22, 
                /* 00C8 */    0xC1, 0x11, 0x1D, 0x0A, 0x46, 0x06, 0x84, 0x3C, 
                /* 00D0 */    0x0B, 0xB0, 0x3E, 0x46, 0x42, 0x60, 0xF7, 0xB3, 
                /* 00D8 */    0x90, 0x42, 0x04, 0x4D, 0xE3, 0xAC, 0x6A, 0x14, 
                /* 00E0 */    0xA0, 0x0C, 0x43, 0x43, 0x29, 0x4E, 0x80, 0x45, 
                /* 00E8 */    0x2C, 0x19, 0x43, 0x11, 0x44, 0x84, 0xB3, 0x8A, 
                /* 00F0 */    0x62, 0xB0, 0x08, 0xA1, 0xE2, 0x19, 0xF5, 0xFC, 
                /* 00F8 */    0x82, 0xD4, 0x06, 0x2B, 0x90, 0x68, 0xC1, 0x8C, 
                /* 0100 */    0xC0, 0xEC, 0x0F, 0x82, 0xC4, 0x7F, 0x17, 0xE8, 
                /* 0108 */    0x44, 0xE0, 0x48, 0xA3, 0x41, 0x9D, 0x02, 0x12, 
                /* 0110 */    0x3C, 0x15, 0x78, 0x7A, 0x07, 0xE6, 0x51, 0x19, 
                /* 0118 */    0xE4, 0x4C, 0xCF, 0xAC, 0xCE, 0xE3, 0x00, 0x19, 
                /* 0120 */    0x38, 0xC3, 0x4A, 0xD0, 0xC1, 0xF9, 0x00, 0x8A, 
                /* 0128 */    0x6B, 0x40, 0xFD, 0xFF, 0x2F, 0x06, 0x8F, 0x05, 
                /* 0130 */    0x6C, 0x94, 0xE1, 0x30, 0x43, 0xF4, 0x4C, 0xC3, 
                /* 0138 */    0x9D, 0xC0, 0x21, 0x32, 0x40, 0x8F, 0xE8, 0x89, 
                /* 0140 */    0x00, 0x3B, 0xB5, 0x93, 0x39, 0xFD, 0x52, 0x05, 
                /* 0148 */    0x98, 0x9D, 0xBD, 0x26, 0x99, 0xE0, 0x78, 0x7C, 
                /* 0150 */    0x0E, 0xF0, 0x7C, 0x4E, 0x38, 0x81, 0xE5, 0x0F, 
                /* 0158 */    0x02, 0x35, 0x32, 0x43, 0x7B, 0xA4, 0xA7, 0xF5, 
                /* 0160 */    0x3A, 0xE0, 0x83, 0x80, 0x09, 0x2C, 0xF6, 0x30, 
                /* 0168 */    0x41, 0xC7, 0x03, 0x7E, 0xC5, 0x37, 0x03, 0x21, 
                /* 0170 */    0xBC, 0x33, 0x78, 0xBE, 0x86, 0xD5, 0xD9, 0x42, 
                /* 0178 */    0x46, 0x56, 0xE1, 0xF1, 0xD0, 0xA3, 0x84, 0x41, 
                /* 0180 */    0xCF, 0xE6, 0x78, 0x9E, 0x09, 0x0E, 0x36, 0xC6, 
                /* 0188 */    0x2B, 0x83, 0x09, 0x1C, 0x18, 0x42, 0x16, 0x20, 
                /* 0190 */    0x24, 0x6A, 0xE0, 0xF4, 0x54, 0xC1, 0x4F, 0x0D, 
                /* 0198 */    0x2F, 0x17, 0x3E, 0x17, 0x3C, 0x29, 0xB0, 0xB1, 
                /* 01A0 */    0x9C, 0x92, 0xCF, 0x1D, 0x1E, 0x1A, 0x7C, 0x91, 
                /* 01A8 */    0xA7, 0x09, 0xD0, 0x9C, 0x25, 0x30, 0xB3, 0xF2, 
                /* 01B0 */    0x59, 0x82, 0x0F, 0x86, 0x1F, 0x0D, 0xD8, 0xA0, 
                /* 01B8 */    0xF8, 0x20, 0x3C, 0xD6, 0xC8, 0xC7, 0x6E, 0x81, 
                /* 01C0 */    0x10, 0x92, 0x35, 0x66, 0xE8, 0xF7, 0x09, 0x0F, 
                /* 01C8 */    0xC2, 0x47, 0x89, 0xC0, 0x0C, 0x16, 0x37, 0x66, 
                /* 01D0 */    0xFB, 0x15, 0x80, 0x10, 0xFA, 0x05, 0xE4, 0x24, 
                /* 01D8 */    0x9E, 0x3E, 0x22, 0x24, 0xF8, 0xFF, 0x3F, 0x70, 
                /* 01E0 */    0xB0, 0x49, 0xF1, 0x41, 0x61, 0x08, 0x3C, 0x48, 
                /* 01E8 */    0xFC, 0x00, 0xF8, 0x39, 0x22, 0x70, 0xEC, 0xB0, 
                /* 01F0 */    0x07, 0x10, 0x3A, 0xBA, 0x87, 0xE3, 0x03, 0x49, 
                /* 01F8 */    0x84, 0xBA, 0x20, 0x74, 0x3A, 0x31, 0xC2, 0x01, 
                /* 0200 */    0x44, 0xE9, 0xFD, 0x06, 0x40, 0x08, 0x3C, 0xCD, 
                /* 0208 */    0x43, 0xC0, 0x8C, 0xD3, 0x43, 0xE0, 0x03, 0x68, 
                /* 0210 */    0x75, 0x76, 0x44, 0xE9, 0xA4, 0x90, 0xA3, 0xE2, 
                /* 0218 */    0x63, 0xC2, 0x0E, 0x80, 0x8B, 0x3C, 0xD4, 0x50, 
                /* 0220 */    0xD1, 0x8F, 0x02, 0xC9, 0x82, 0x41, 0x9D, 0x6B, 
                /* 0228 */    0x00, 0x57, 0x90, 0x8F, 0x0E, 0x60, 0xB9, 0x34, 
                /* 0230 */    0xF0, 0x73, 0x43, 0xB8, 0x83, 0x08, 0x12, 0x32, 
                /* 0238 */    0x42, 0x98, 0x27, 0x9A, 0x78, 0x4F, 0x34, 0x9E, 
                /* 0240 */    0x51, 0x9F, 0x07, 0x1A, 0x90, 0x0D, 0xC8, 0x07, 
                /* 0248 */    0x1A, 0x18, 0xFF, 0xFF, 0x03, 0x0D, 0xB8, 0x22, 
                /* 0250 */    0xBE, 0x4D, 0x74, 0xF8, 0xF0, 0x81, 0x06, 0xE0, 
                /* 0258 */    0x87, 0x98, 0x03, 0x0D, 0x1A, 0xDA, 0x77, 0x03, 
                /* 0260 */    0xDF, 0x67, 0x70, 0xD1, 0x21, 0x74, 0xBA, 0xF0, 
                /* 0268 */    0x79, 0x06, 0x78, 0x00, 0xE2, 0xEF, 0x23, 0xE7, 
                /* 0270 */    0xEC, 0xB9, 0x18, 0x90, 0xC9, 0x3B, 0x4D, 0x40, 
                /* 0278 */    0xFB, 0xFF, 0x9F, 0x26, 0xF0, 0x43, 0xF3, 0x18, 
                /* 0280 */    0x4E, 0x3D, 0xD8, 0xD3, 0x96, 0xEF, 0x05, 0x3E, 
                /* 0288 */    0xD4, 0xC0, 0x0C, 0x70, 0xA8, 0x01, 0xDD, 0x88, 
                /* 0290 */    0x70, 0x87, 0x1A, 0xB0, 0xC0, 0xBD, 0x69, 0xB0, 
                /* 0298 */    0x33, 0x0D, 0x30, 0x19, 0x01, 0x57, 0x68, 0xD3, 
                /* 02A0 */    0xA7, 0x46, 0xA3, 0x56, 0x0D, 0xCA, 0xD4, 0x28, 
                /* 02A8 */    0xD3, 0xA0, 0x56, 0x9F, 0x4A, 0x8D, 0x19, 0x3B, 
                /* 02B0 */    0x13, 0x90, 0x37, 0x83, 0x86, 0xEA, 0x48, 0x20, 
                /* 02B8 */    0x34, 0x18, 0x85, 0x40, 0x1C, 0x8A, 0x4E, 0x20, 
                /* 02C0 */    0x96, 0xE4, 0x01, 0x84, 0x09, 0x5C, 0x81, 0x40, 
                /* 02C8 */    0xFC, 0xFF, 0x07
            })
        }
    }

    Scope (_SB.PCI0.LPCB.EC0)
    {
        Field (ERAM, ByteAcc, Lock, Preserve)
        {
                    Offset (0xF2), 
            VCMD,   8, 
            VDAT,   8, 
            VSTA,   8
        }

        Device (VPC0)
        {
            Name (_HID, "VPC2004")
            Name (_UID, Zero)
            Name (_VPC, Zero)
            Name (VPCD, Zero)
            Name (OUTB, Buffer (0x10) {})
            CreateByteField (OUTB, Zero, BT00)
            CreateByteField (OUTB, One, BT01)
            CreateByteField (OUTB, 0x02, BT02)
            CreateByteField (OUTB, 0x03, BT03)
            CreateByteField (OUTB, 0x04, BT04)
            CreateByteField (OUTB, 0x05, BT05)
            CreateByteField (OUTB, 0x06, BT06)
            CreateByteField (OUTB, 0x07, BT07)
            CreateByteField (OUTB, 0x08, BT08)
            CreateByteField (OUTB, 0x09, BT09)
            CreateByteField (OUTB, 0x0A, BT0A)
            CreateByteField (OUTB, 0x0B, BT0B)
            CreateByteField (OUTB, 0x0C, BT0C)
            CreateByteField (OUTB, 0x0D, BT0D)
            CreateByteField (OUTB, 0x0E, BT0E)
            CreateByteField (OUTB, 0x0F, BT0F)
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }

            Method (_CFG, 0, NotSerialized)
            {
                Store (One, AECK)
                Store (ILDD (), Local0)
                Or (Local0, 0x06, Local0)
                Store (Local0, _VPC)
                Return (_VPC)
            }

            Method (VPCR, 1, Serialized)
            {
                If (LEqual (Arg0, One))
                {
                    Store (VCMD, VPCD)
                }
                Else
                {
                    Store (VDAT, VPCD)
                }

                Return (VPCD)
            }

            Method (VPCW, 2, Serialized)
            {
                If (LEqual (Arg0, One))
                {
                    Store (Arg1, VCMD)
                }
                Else
                {
                    Store (Arg1, VDAT)
                }

                Return (Zero)
            }

            Mutex (VXXX, 0x00)
            Name (GCPU, One)
            Method (VPCM, 2, Serialized)
            {
                Name (_T_0, Zero)
                Acquire (VXXX, 0xFFFF)
                Store (ToInteger (Arg0), _T_0)
                If (LEqual (_T_0, 0x12))
                {
                    Store (BLVL, Local0)
                }
                Else
                {
                    If (LEqual (_T_0, 0x13))
                    {
                        Store (Arg1, BLVL)
                        Store (BLVL, Local0)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x29))
                        {
                            Store (GCPU, Local0)
                        }
                        Else
                        {
                            Store (0x77, P80H)
                            Store ("No Match Case in VPCM", Debug)
                        }
                    }
                }

                Store (Local0, VDAT)
                Store (Zero, VCMD)
                Release (VXXX)
            }

            Name (APDT, Zero)
            Method (APPC, 1, Serialized)
            {
                Store (Arg0, APDT)
                Return (Zero)
            }

            Method (DBSL, 0, NotSerialized)
            {
                Return (Package (0x0B)
                {
                    0x64, 
                    0x5F, 
                    0x55, 
                    0x4B, 
                    0x41, 
                    0x37, 
                    0x2D, 
                    0x23, 
                    0x19, 
                    0x0F, 
                    0x05
                })
            }

            Method (SALS, 1, Serialized)
            {
                Name (_T_0, Zero)
                Store (0xF7, P80H)
                Store (ToInteger (Arg0), _T_0)
                If (LEqual (_T_0, Zero))
                {
                    Store (Zero, AALS)
                }
                Else
                {
                    If (LEqual (_T_0, One))
                    {
                        Store (Zero, AALS)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x04))
                        {
                            Store (One, CREG)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x05))
                            {
                                Store (Zero, CREG)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x06))
                                {
                                    Store (Zero, AALS)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x07))
                                    {
                                        Store (Zero, CREG)
                                    }
                                }
                            }
                        }
                    }
                }

                Return (Zero)
            }

            Method (SBSL, 1, Serialized)
            {
                Return (Zero)
            }

            Method (HASL, 1, Serialized)
            {
                Return (Zero)
            }

            Method (STHT, 1, Serialized)
            {
                Return (Zero)
            }

            Name (VPCY, Zero)
            Method (ILDD, 0, NotSerialized)
            {
                Store (Zero, VPCY)
                If (CORE)
                {
                    Or (VPCY, 0x00800000, VPCY)
                }

                Or (VPCY, 0x00700000, VPCY)
                If (CCDE)
                {
                    Or (VPCY, 0x00080000, VPCY)
                }

                If (WLSE)
                {
                    Or (VPCY, 0x00040000, VPCY)
                }

                If (WWAE)
                {
                    Or (VPCY, 0x00020000, VPCY)
                }

                If (BTDE)
                {
                    Or (VPCY, 0x00010000, VPCY)
                }

                If (LOr (LEqual (^^^^GFX0.CPL2, 0x0300), LEqual (^^^^GFX0.CPL3, 0x0300)))
                {
                    Or (VPCY, 0x0800, VPCY)
                }
                Else
                {
                    And (VPCY, 0xFFFFF7FF, VPCY)
                }

                If (LEqual (MBTT, Zero))
                {
                    Or (VPCY, 0x0100, VPCY)
                }
                Else
                {
                    If (LEqual (MBTT, One))
                    {
                        Or (VPCY, 0x0200, VPCY)
                    }
                    Else
                    {
                    }
                }

                Return (VPCY)
            }

            Method (GBMD, 0, NotSerialized)
            {
                Store (BAHL, Local0)
                Or (Local0, ShiftLeft (BAHH, 0x08), Local0)
                Or (Local0, 0x10000000, Local0)
                Return (Local0)
            }

            Method (SBMC, 1, NotSerialized)
            {
                Store (Arg0, BHCD)
                Sleep (0x1E)
            }

            Method (MHST, 1, NotSerialized)
            {
                Store (One, P80H)
                Store (One, ATMM)
                Store (Arg0, ATIN)
                Store (ATIN, EAT0)
                Store (ShiftRight (ATIN, 0x08), EAT1)
                Store (ShiftRight (ATIN, 0x10), EAT2)
                Store (ShiftRight (ATIN, 0x18), EAT3)
                Store (ATMM, EAT4)
                Sleep (0x64)
                Store (Zero, Local0)
                If (LEqual (Arg0, Zero))
                {
                    Store (ATA0, Local0)
                    Or (Local0, ShiftLeft (ATA1, 0x08), Local0)
                    Or (Local0, 0x01010000, Local0)
                }
                Else
                {
                    If (LEqual (Arg0, 0x40))
                    {
                        Store (0x01010001, Local0)
                    }
                    Else
                    {
                        Store (ATA0, Local0)
                        Or (Local0, ShiftLeft (ATA1, 0x08), Local0)
                        Or (Local0, ShiftLeft (ATA2, 0x10), Local0)
                        Or (Local0, ShiftLeft (ATA3, 0x18), Local0)
                    }
                }

                Return (Local0)
            }

            Method (MHTT, 1, NotSerialized)
            {
                Store (0x02, P80H)
                Store (0x02, ATMM)
                Store (Arg0, ATIN)
                Store (ATIN, EAT0)
                Store (ShiftRight (ATIN, 0x08), EAT1)
                Store (ShiftRight (ATIN, 0x10), EAT2)
                Store (ShiftRight (ATIN, 0x18), EAT3)
                Store (ATMM, EAT4)
                Sleep (0x64)
                Store (Zero, Local0)
                Store (ATA0, Local0)
                Or (Local0, ShiftLeft (ATA1, 0x08), Local0)
                Or (Local0, ShiftLeft (ATA2, 0x10), Local0)
                Or (Local0, ShiftLeft (ATA3, 0x18), Local0)
                Return (Local0)
            }

            Method (MHBT, 1, NotSerialized)
            {
                Store (0x03, P80H)
                Store (0x03, ATMM)
                Store (Arg0, ATIN)
                Store (ATIN, EAT0)
                Store (ShiftRight (ATIN, 0x08), EAT1)
                Store (ShiftRight (ATIN, 0x10), EAT2)
                Store (ShiftRight (ATIN, 0x18), EAT3)
                Store (ATMM, EAT4)
                Sleep (0x64)
                Store (ATA0, BT00)
                Store (ATA1, BT01)
                Store (ATA2, BT02)
                Store (ATA3, BT03)
                Store (ATA4, BT04)
                Store (ATA5, BT05)
                Store (ATA6, BT06)
                Store (ATA7, BT07)
                Store (ATA8, BT08)
                Store (ATA9, BT09)
                Store (ATAA, BT0A)
                Store (ATAB, BT0B)
                Store (ATAC, BT0C)
                Store (ATAD, BT0D)
                Store (ATAE, BT0E)
                Store (Zero, BT0F)
                Return (OUTB)
            }

            Method (MHFT, 1, NotSerialized)
            {
                Store (0x04, P80H)
                Store (0x04, ATMM)
                Store (Arg0, ATIN)
                Store (ATIN, EAT0)
                Store (ShiftRight (ATIN, 0x08), EAT1)
                Store (ShiftRight (ATIN, 0x10), EAT2)
                Store (ShiftRight (ATIN, 0x18), EAT3)
                Store (ATMM, EAT4)
                Sleep (0x64)
                Store (Zero, Local0)
                Store (ATA0, Local0)
                Or (Local0, ShiftLeft (ATA1, 0x08), Local0)
                Return (Local0)
            }

            Name (MHC1, Zero)
            Method (MHCT, 1, NotSerialized)
            {
                Name (_T_0, Zero)
                Store (0x05, P80H)
                Acquire (VXXX, 0xFFFF)
                Store (Arg0, MHC1)
                Store (Arg0, Local0)
                If (LEqual (Local0, 0xFFFFFFFF))
                {
                    Store (Zero, MHC1)
                    Or (MHC1, THLE, MHC1)
                    Or (MHC1, 0x0400, MHC1)
                    Or (MHC1, ShiftLeft (SSLE, 0x10), MHC1)
                    Or (MHC1, 0x0C000000, MHC1)
                }
                Else
                {
                    And (MHC1, 0x00FF001F, MHC1)
                    And (Local0, 0x1F, Local0)
                    Store (ToInteger (Local0), _T_0)
                    If (LEqual (_T_0, Zero))
                    {
                        PHSR (0x90)
                    }
                    Else
                    {
                        If (LEqual (_T_0, One))
                        {
                            PHSR (0x91)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x02))
                            {
                                PHSR (0x92)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x03))
                                {
                                    PHSR (0x93)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x04))
                                    {
                                        PHSR (0x94)
                                    }
                                }
                            }
                        }
                    }

                    And (MHC1, 0x00FF0000, Local0)
                    ShiftRight (Local0, 0x10, Local0)
                    ATMQ (Local0)
                }

                Release (VXXX)
                Return (MHC1)
            }

            Method (SVCR, 1, Serialized)
            {
                If (LEqual (Arg0, 0x02))
                {
                    Store (Zero, IMON)
                }

                Store (0x78, P80H)
                If (LEqual (Arg0, 0x03))
                {
                    Store (One, IMON)
                }

                VPDG (Arg0)
                If (LEqual (Arg0, 0x04))
                {
                    Store (One, SBTM)
                    Store (Zero, GO45)
                    Store (Zero, GO52)
                }

                If (LEqual (Arg0, 0x05))
                {
                    Store (Zero, SBTM)
                    Store (One, GO45)
                    Store (One, GO52)
                }
            }

            Method (SHDC, 1, Serialized)
            {
                If (Arg0)
                {
                    Store (One, NOEN)
                }
                Else
                {
                    Store (Zero, NOEN)
                }
            }
        }

        Method (VPDG, 1, NotSerialized)
        {
            Store (DB06, DB07)
            Store (DB05, DB06)
            Store (DB04, DB05)
            Store (DB03, DB04)
            Store (DB02, DB03)
            Store (DB01, DB02)
            Store (DB00, DB01)
            Store (Arg0, DB00)
        }

        Method (VPDC, 0, NotSerialized)
        {
            Store (Zero, DB07)
            Store (Zero, DB06)
            Store (Zero, DB05)
            Store (Zero, DB04)
            Store (Zero, DB03)
            Store (Zero, DB02)
            Store (Zero, DB01)
            Store (Zero, DB00)
        }

        Method (_Q41, 0, NotSerialized)
        {
            Store (0x41, P80H)
            Notify (VPC0, 0x80)
            Store (Zero, GPUN)
        }

        Name (VQ00, Zero)
        Name (VQ01, 0x64)
        Method (_Q42, 0, NotSerialized)
        {
            Store (0x42, P80H)
            Store (BLVL, VQ00)
            If (LNotEqual (BRNS, VQ00))
            {
                If (LGreaterEqual (OSYS, 0x07D6))
                {
                    If (LEqual (VQ00, Zero))
                    {
                        Store (DerefOf (Index (IBCL, 0x02)), VQ01)
                    }
                    Else
                    {
                        If (LEqual (VQ00, One))
                        {
                            Store (DerefOf (Index (IBCL, 0x03)), VQ01)
                        }
                        Else
                        {
                            If (LEqual (VQ00, 0x02))
                            {
                                Store (DerefOf (Index (IBCL, 0x04)), VQ01)
                            }
                            Else
                            {
                                If (LEqual (VQ00, 0x03))
                                {
                                    Store (DerefOf (Index (IBCL, 0x05)), VQ01)
                                }
                                Else
                                {
                                    If (LEqual (VQ00, 0x04))
                                    {
                                        Store (DerefOf (Index (IBCL, 0x06)), VQ01)
                                    }
                                    Else
                                    {
                                        If (LEqual (VQ00, 0x05))
                                        {
                                            Store (DerefOf (Index (IBCL, 0x07)), VQ01)
                                        }
                                        Else
                                        {
                                            If (LEqual (VQ00, 0x06))
                                            {
                                                Store (DerefOf (Index (IBCL, 0x08)), VQ01)
                                            }
                                            Else
                                            {
                                                If (LEqual (VQ00, 0x07))
                                                {
                                                    Store (DerefOf (Index (IBCL, 0x09)), VQ01)
                                                }
                                                Else
                                                {
                                                    If (LEqual (VQ00, 0x08))
                                                    {
                                                        Store (DerefOf (Index (IBCL, 0x0A)), VQ01)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (VQ00, 0x09))
                                                        {
                                                            Store (DerefOf (Index (IBCL, 0x0B)), VQ01)
                                                        }
                                                        Else
                                                        {
                                                            Store (DerefOf (Index (IBCL, 0x0C)), VQ01)
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    Store (VQ00, BRNS)
                    Sleep (0x64)
                    IBCC (IBC0)
                }

                If (LEqual (VQ00, Zero))
                {
                    Increment (VQ00)
                    Store (VQ00, BRNS)
                    PHSR (0x97)
                    If (LGreaterEqual (OSYS, 0x07D6))
                    {
                        Notify (^^^PEG0.PEGP.DD02, 0x86)
                    }
                }
                Else
                {
                    Decrement (VQ00)
                    Store (VQ00, BRNS)
                    PHSR (0x96)
                    If (LGreaterEqual (OSYS, 0x07D6))
                    {
                        Notify (^^^PEG0.PEGP.DD02, 0x87)
                    }
                }

                If (LAnd (LLess (OSYS, 0x07D6), IGDS))
                {
                    Store (BRNS, Local0)
                    Subtract (0x0A, Local0, Local0)
                    Store (DerefOf (Index (PNLS, Local0)), Local1)
                    ISBC (Local1)
                }

                _Q41 ()
            }
        }
    }

    Name (_S0, Package (0x04)
    {
        Zero, 
        Zero, 
        Zero, 
        Zero
    })
    If (SS1)
    {
        Name (_S1, Package (0x04)
        {
            One, 
            Zero, 
            Zero, 
            Zero
        })
    }

    If (SS3)
    {
        Name (_S3, Package (0x04)
        {
            0x05, 
            Zero, 
            Zero, 
            Zero
        })
    }

    If (SS4)
    {
        Name (_S4, Package (0x04)
        {
            0x06, 
            Zero, 
            Zero, 
            Zero
        })
    }

    Name (_S5, Package (0x04)
    {
        0x07, 
        Zero, 
        Zero, 
        Zero
    })
    Method (PTS, 1, NotSerialized)
    {
        If (Arg0) {}
    }

    Method (WAK, 1, NotSerialized)
    {
    }
}

Attachment: z370.sh
Description: Bourne shell script


References