All pastes #1415222 Raw Edit

toshiba L300-1fo acpi DSDT

public text v1 · immutable
#1415222 ·published 2009-05-07 12:34 UTC
rendered paste body
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20081204
 *
 * Disassembly of DSDT.aml, Thu May  7 13:22:06 2009
 *
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x00008F1A (36634)
 *     Revision         0x01 **** ACPI 1.0, no 64-bit math support
 *     Checksum         0x66
 *     OEM ID           "TOSINV"
 *     OEM Table ID     "TOSINV00"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "MSFT"
 *     Compiler Version 0x01000013 (16777235)
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "TOSINV", "TOSINV00", 0x00000001)
{
    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 (MCHB, 0xFED10000)
    Name (MCHL, 0x4000)
    Name (EGPB, 0xFED19000)
    Name (EGPL, 0x1000)
    Name (DMIB, 0xFED18000)
    Name (DMIL, 0x1000)
    Name (IFPB, 0xFED14000)
    Name (IFPL, 0x1000)
    Name (PEBS, 0xE0000000)
    Name (PELN, 0x10000000)
    Name (TTTB, 0xFED20000)
    Name (TTTL, 0x00020000)
    Name (SMBS, 0xEFA0)
    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, 0x40)
    Name (APCB, 0xFEC00000)
    Name (APCL, 0x1000)
    Name (PM30, 0x0430)
    Name (SRCB, 0xFED1C000)
    Name (SRCL, 0x4000)
    Name (SUSW, 0xFF)
    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 (ITKE, Zero)
    Name (TRTP, One)
    Name (TRTD, 0x02)
    Name (TRTI, 0x03)
    Name (GCDD, One)
    Name (DSTA, 0x0A)
    Name (DSLO, 0x0C)
    Name (DSLC, 0x0E)
    Name (PITS, 0x10)
    Name (SBCS, 0x12)
    Name (SALS, 0x13)
    Name (LSSS, 0x2A)
    Name (PSSS, 0x2B)
    Name (SOOT, 0x35)
    Name (ESCS, 0x48)
    Name (PDBR, 0x4D)
    Name (SMBL, 0x10)
    OperationRegion (GPIO, SystemIO, 0x0500, 0x3C)
    Field (GPIO, ByteAcc, NoLock, Preserve)
    {
                Offset (0x0C), 
            ,   17, 
        BTRS,   1, 
            ,   11, 
        GP29,   1, 
                Offset (0x10), 
                Offset (0x38), 
            ,   1, 
            ,   1, 
        CPEN,   1, 
            ,   4, 
        GP39,   1, 
            ,   7
    }

    OperationRegion (PMBA, SystemIO, 0x0400, 0x80)
    Field (PMBA, ByteAcc, NoLock, Preserve)
    {
                Offset (0x10), 
            ,   1, 
        THDT,   4, 
                Offset (0x28), 
            ,   2, 
        SPST,   1, 
                Offset (0x30), 
            ,   4, 
        SSMI,   1, 
                Offset (0x42), 
            ,   1, 
        GPEC,   1, 
                Offset (0x64), 
            ,   9, 
        SCIS,   1, 
                Offset (0x66)
    }

    OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000)
    Field (RCRB, DWordAcc, Lock, Preserve)
    {
                Offset (0x1000), 
                Offset (0x3000), 
                Offset (0x3404), 
        HPAS,   2, 
            ,   5, 
        HPAE,   1, 
                Offset (0x3418), 
            ,   1, 
        PATD,   1, 
        SATD,   1, 
        SMBD,   1, 
        HDAD,   1, 
                Offset (0x341A), 
        RP1D,   1, 
        RP2D,   1, 
        RP3D,   1, 
        RP4D,   1, 
        RP5D,   1, 
        RP6D,   1
    }

    OperationRegion (MBOX, SystemMemory, 0xB7CBE918, 0x000002BC)
    Field (MBOX, AnyAcc, NoLock, Preserve)
    {
        PCI1,   8, 
        PCI2,   8, 
        PCI3,   8, 
        PCI4,   8, 
        PCI5,   8, 
        PCI6,   8, 
        PCI7,   8, 
        PCI8,   8, 
        NLCK,   8, 
        ZIPE,   8, 
        COMA,   8, 
        CAIO,   8, 
        CAIP,   8, 
        CAMD,   8, 
        CADA,   8, 
        COMB,   8, 
        CBIO,   8, 
        CBIP,   8, 
        CBMD,   8, 
        CBDA,   8, 
        FHSD,   8, 
        COMC,   8, 
        CCIO,   8, 
        CCIP,   8, 
        CCMD,   8, 
        CCDA,   8, 
        COMD,   8, 
        CDIO,   8, 
        CDIP,   8, 
        CDMD,   8, 
        CDDA,   8, 
        LPT1,   8, 
        L1IO,   8, 
        L1IP,   8, 
        L1MD,   8, 
        L1DA,   8, 
        LPT2,   8, 
        L2IO,   8, 
        L2IP,   8, 
        L2MD,   8, 
        L2DA,   8, 
        LPT3,   8, 
        L3IO,   8, 
        L3IP,   8, 
        L3MD,   8, 
        L3DA,   8, 
        FDDC,   8, 
        FDWP,   8, 
        HGMP,   8, 
        LGMP,   8, 
        MIDI,   8, 
        AZLA,   8, 
        AUDO,   8, 
        MODM,   8, 
        IDEC,   8, 
        SSED,   8, 
        PACT,   8, 
        SCFG,   8, 
        AMOD,   8, 
        IMOD,   8, 
        LCFG,   8, 
        IDLY,   8, 
        PMTP,   8, 
        PMIO,   8, 
        PMBM,   8, 
        PMTM,   8, 
        PSTP,   8, 
        PSIO,   8, 
        PSBM,   8, 
        PSTM,   8, 
        IDE0,   8, 
        IDE1,   8, 
        IDE2,   8, 
        IDE3,   8, 
        IDE4,   8, 
        IDE5,   8, 
        IDE6,   8, 
        IDE7,   8, 
        HIUB,   8, 
        LUBS,   8, 
        PLYT,   8, 
        EDCG,   8, 
        SDFY,   8, 
        SDTC,   8, 
        SDRP,   8, 
        SDCL,   8, 
        SDRC,   8, 
        SDRE,   8, 
        FC2L,   8, 
        FC3L,   8, 
        FCS4,   8, 
        APIM,   8, 
        HPTS,   8, 
        HPTA,   8, 
        EMAS,   8, 
        VGAO,   8, 
        SOFF,   8, 
        KBPO,   8, 
        MSPO,   8, 
        USBB,   8, 
        EVTL,   8, 
        SYBE,   8, 
        ETLC,   8, 
        AC30,   8, 
        TPMD,   8, 
        TPMO,   8, 
        TPMC,   8, 
        TPMM,   8, 
        TPCC,   8, 
        TPLC,   8, 
        TPLR,   32, 
        QBOT,   8, 
        BOTQ,   8, 
        PBOT,   8, 
        M256,   8, 
        PEGF,   8, 
        OSYS,   16, 
        BMTP,   8, 
        BNPT,   8, 
        LNMT,   8, 
        NBTO,   8, 
        NABD,   8, 
        NEBD,   8, 
        NLBD,   8, 
        DFBT,   16, 
        NPSP,   16, 
        LANG,   8, 
        UACL,   8, 
        SUPS,   8, 
        DVET,   8, 
        S3RS,   8, 
        DAS1,   8, 
        DAS3,   8, 
        WKPM,   8, 
        WKMD,   8, 
        WKS5,   8, 
        HOUR,   8, 
        MINS,   8, 
        SECS,   8, 
        DOFM,   8, 
        NBTV,   64, 
        BTOD,   64, 
        SPVP,   16, 
        POPW,   16, 
        USPW,   16, 
        HDPW,   16, 
        KRSV,   480, 
        LANE,   8, 
        AORS,   8, 
        P0HP,   8, 
        P1HP,   8, 
        P4HP,   8, 
        P5HP,   8, 
        P0IL,   8, 
        P1IL,   8, 
        P2IL,   8, 
        PEGS,   8, 
        D2F1,   8, 
        IGMT,   8, 
        DTSZ,   8, 
        CLKC,   8, 
        CKSC,   8, 
        BOTT,   8, 
        PANT,   8, 
        TVTP,   8, 
        U201,   8, 
        U202,   8, 
        U111,   8, 
        U112,   8, 
        U113,   8, 
        U114,   8, 
        U115,   8, 
        UPPC,   8, 
        UP00,   8, 
        UP01,   8, 
        UP02,   8, 
        UP03,   8, 
        UP04,   8, 
        UP05,   8, 
        UP06,   8, 
        UP07,   8, 
        UP08,   8, 
        UP09,   8, 
        UP10,   8, 
        UP11,   8, 
        P80R,   8, 
        WDOG,   8, 
        WDTO,   16, 
        WDTB,   16, 
        MASF,   8, 
        MAMT,   8, 
        ABXP,   8, 
        SPIL,   8, 
        PWDW,   8, 
        HETO,   8, 
        AWTR,   16, 
        EOPT,   8, 
        ASFB,   8, 
        MBTX,   8, 
        IDER,   8, 
        SOLE,   8, 
        PRE0,   8, 
        PRE1,   8, 
        PRE2,   8, 
        PRE3,   8, 
        PRE4,   8, 
        PRE5,   8, 
        PRA0,   8, 
        PRA1,   8, 
        PRA2,   8, 
        PRA3,   8, 
        PRA4,   8, 
        PRA5,   8, 
        PRV0,   8, 
        PRV1,   8, 
        PRV2,   8, 
        PRV3,   8, 
        PRV4,   8, 
        PRV5,   8, 
        PAA0,   8, 
        PAA1,   8, 
        PAA2,   8, 
        PAA3,   8, 
        PAA4,   8, 
        PAA5,   8, 
        L0S0,   8, 
        L0S1,   8, 
        L0S2,   8, 
        L0S3,   8, 
        L0S4,   8, 
        L0S5,   8, 
        AL10,   8, 
        AL11,   8, 
        AL12,   8, 
        AL13,   8, 
        AL14,   8, 
        AL15,   8, 
        PES0,   8, 
        PES1,   8, 
        PES2,   8, 
        PES3,   8, 
        PES4,   8, 
        PES5,   8, 
        PRU0,   8, 
        PRU1,   8, 
        PRU2,   8, 
        PRU3,   8, 
        PRU4,   8, 
        PRU5,   8, 
        PRF0,   8, 
        PRF1,   8, 
        PRF2,   8, 
        PRF3,   8, 
        PRF4,   8, 
        PRF5,   8, 
        PRN0,   8, 
        PRN1,   8, 
        PRN2,   8, 
        PRN3,   8, 
        PRN4,   8, 
        PRN5,   8, 
        PRC0,   8, 
        PRC1,   8, 
        PRC2,   8, 
        PRC3,   8, 
        PRC4,   8, 
        PRC5,   8, 
        CTD0,   8, 
        CTD1,   8, 
        CTD2,   8, 
        CTD3,   8, 
        CTD4,   8, 
        CTD5,   8, 
        PIE0,   8, 
        PIE1,   8, 
        PIE2,   8, 
        PIE3,   8, 
        PIE4,   8, 
        PIE5,   8, 
        SFE0,   8, 
        SFE1,   8, 
        SFE2,   8, 
        SFE3,   8, 
        SFE4,   8, 
        SFE5,   8, 
        SNE0,   8, 
        SNE1,   8, 
        SNE2,   8, 
        SNE3,   8, 
        SNE4,   8, 
        SNE5,   8, 
        SCE0,   8, 
        SCE1,   8, 
        SCE2,   8, 
        SCE3,   8, 
        SCE4,   8, 
        SCE5,   8, 
        MCE0,   8, 
        MCE1,   8, 
        MCE2,   8, 
        MCE3,   8, 
        MCE4,   8, 
        MCE5,   8, 
        PCE0,   8, 
        PCE1,   8, 
        PCE2,   8, 
        PCE3,   8, 
        PCE4,   8, 
        PCE5,   8, 
        PTC0,   8, 
        PTC1,   8, 
        PTC2,   8, 
        PTC3,   8, 
        PTC4,   8, 
        PTC5,   8, 
        DAPM,   8, 
        DPMA,   8, 
        DL0S,   8, 
        DAL1,   8, 
        PEGA,   8, 
        PGAA,   8, 
        PGL0,   8, 
        PL0A,   8, 
        PGL1,   8, 
        PGES,   8, 
        PAVP,   8, 
        ISTC,   8, 
        TRML,   8, 
        FNON,   8, 
        TRON,   8, 
        NXMD,   8, 
        PCRR,   8, 
        C4EN,   8, 
        C43D,   8, 
        EMTT,   8, 
        PROH,   8, 
        DFSB,   8, 
        TUBM,   8, 
        TSTE,   8, 
        BPST,   8, 
        QKS4,   8, 
        POPU,   8, 
        POPD,   8, 
        C4ET,   8, 
        NXFE,   8, 
        VTST,   8, 
        VTFE,   8, 
        S5FG,   8, 
        CSTS,   8, 
        ENCS,   8, 
        DEC4,   8, 
        HC4E,   8, 
        ENC6,   8, 
        CSTR,   8, 
        CMPE,   8, 
        CSMD,   8, 
        DTSE,   8, 
        DTSC,   8, 
        RAID,   8, 
        PSHM,   8, 
        PEXC,   8, 
        DTST,   8, 
        TXTS,   8, 
        VTDE,   8, 
        SMRR,   8, 
        CART,   8, 
        CATT,   8, 
        ITPM,   8, 
        STBE,   8, 
        PEBE,   8, 
        PCBE,   8, 
        EHBE,   8, 
        UHBE,   8, 
        HABE,   8, 
        MTME,   8, 
        MTSD,   8, 
        MTML,   8, 
        ERS2,   8, 
        GLPM,   8, 
        CRSV,   520, 
        ISTM,   8, 
        ISTS,   8, 
        PTDV,   8, 
        WKOL,   8, 
        WOWL,   8, 
        WLEX,   8, 
        ICIR,   8, 
        IREX,   8, 
        IWEX,   8, 
        CRWK,   8, 
        ILED,   8, 
        XDBT,   8, 
        TBMM,   8, 
        TMEX,   8, 
        AKWE,   8, 
        SSPW,   8, 
        TM01,   8, 
        TM02,   8, 
        HDD0,   8, 
        HDD1,   8, 
        HDD2,   8, 
        HDD3,   8, 
        HDD4,   8, 
        HDD5,   8, 
        USCM,   8, 
        HCEC,   8, 
        RPON,   8, 
        RPOF,   8, 
        HDDC,   8, 
        MFGM,   8, 
        IDAF,   8, 
        DVLK,   8, 
        LKST,   8, 
        LKBT,   8, 
        ORSV,   288, 
        HPOP,   8, 
        LOCF,   8, 
        PSTA,   8, 
        CCMP,   8, 
        DTP1,   8, 
        SCBK,   8, 
        SCBF,   8, 
        DRSV,   744
    }

    OperationRegion (IO_T, SystemIO, 0x0800, 0x10)
    Field (IO_T, ByteAcc, NoLock, Preserve)
    {
                Offset (0x02), 
                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, 0x08)
    Field (IO_D, ByteAcc, NoLock, Preserve)
    {
        TRPD,   8
    }

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

    OperationRegion (NVST, SystemMemory, 0xB7CBEBD4, 0x0000018B)
    Field (NVST, AnyAcc, Lock, Preserve)
    {
        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, 
        CRTT,   8, 
                Offset (0x15), 
        DTS1,   8, 
        DTS2,   8, 
        DTSF,   8, 
        BNUM,   8, 
        APIC,   8, 
        PCP0,   8, 
        PCP1,   8, 
        PPCM,   8, 
        PPMF,   32, 
        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, 
        BDSP,   8, 
        PTY1,   8, 
        PTY2,   8, 
        PSCL,   8, 
        TVF1,   8, 
        TVF2,   8, 
        GETM,   8, 
        BLCS,   8, 
        BRTL,   8, 
        ALSE,   8, 
        ALAF,   8, 
        LLOW,   8, 
        LHIH,   8, 
        EMAE,   8, 
        EMAP,   16, 
        EMAL,   16, 
        MEFE,   8, 
        DSTS,   8, 
        TPMP,   8, 
        TPME,   8, 
        GTF0,   56, 
        GTF2,   56, 
        IDEM,   8, 
        GTF1,   56, 
        BID,    8, 
        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, 
        IPC,    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, 
        DSEN,   8, 
        ECON,   8, 
        GPIC,   8, 
        CTYP,   8, 
        L01C,   8, 
        VFN0,   8, 
        VFN1,   8, 
        LCDA,   16, 
        BVAL,   32, 
        KSV0,   32, 
        KSV1,   8, 
        USBM,   32, 
        TPID,   8, 
                Offset (0x100), 
        ACPS,   8, 
        CPUS,   8, 
        CPUL,   8, 
        ECRO,   8, 
        ECRM,   8, 
        ECRS,   8, 
        ECRD,   8, 
        REVD,   8
    }

    Name (PWBS, Zero)
    Name (ACBS, Zero)
    Name (ACBW, Zero)
    Mutex (MUTS, 0x00)
    Mutex (MUTE, 0x00)
    OperationRegion (PSMI, SystemIO, 0xB2, 0x02)
    Field (PSMI, ByteAcc, NoLock, Preserve)
    {
        APMC,   8, 
        APMD,   8
    }

    Field (NVST, AnyAcc, Lock, Preserve)
    {
                Offset (0x108), 
        EGST,   8, 
        LCDS,   4, 
        CECS,   1, 
        CECP,   1, 
        HDMI,   1, 
        HKMD,   1, 
        TSBK,   1, 
        SDAT,   1, 
        DCIR,   1, 
        DBTN,   2, 
        HKEM,   1, 
        HSEM,   1, 
        IECC,   1, 
        HSWK,   8, 
        LCMD,   8, 
        SVCF,   8, 
        SWB0,   32, 
        SWB1,   32, 
        SWB2,   32, 
        SWB3,   32, 
        SWB4,   32, 
        SWB5,   32, 
        SWB6,   32, 
        SWB7,   32, 
        KYB0,   32, 
        KYB1,   32, 
        KYB2,   32, 
        KYB3,   32, 
        KYB4,   32, 
        KYB5,   32, 
        KYB6,   32, 
        KYB7,   32, 
        VALC,   208, 
        IEC0,   8, 
        IEC1,   8, 
        IEC2,   8, 
        CECC,   8, 
        CECE,   32, 
        CECI,   16, 
        CECZ,   8, 
        CECF,   8, 
        CEC1,   32, 
        CEC2,   32, 
        CEC3,   32, 
        CEC4,   32, 
        CEC5,   32
    }

    OperationRegion (WNBD, SystemMemory, 0xFF800100, 0x80)
    Field (WNBD, ByteAcc, Lock, Preserve)
    {
                Offset (0x02), 
        LRPM,   8, 
        HRPM,   8, 
        RCPU,   8, 
        EVCT,   8, 
                Offset (0x08), 
            ,   4, 
        PERN,   1, 
        ECSL,   1, 
                Offset (0x09), 
        DLCK,   8, 
        VGAT,   8, 
        THRF,   3, 
                Offset (0x17), 
        FKST,   2, 
                Offset (0x18), 
        CMW1,   32, 
        CMW2,   32, 
        CMW3,   32, 
        CMW4,   32, 
        CMW5,   32, 
        CMR1,   32, 
        CMR2,   32, 
        CMR3,   32, 
        CMR4,   32, 
        CMR5,   32, 
        EC92,   8, 
        EC93,   8, 
        EC94,   8, 
        EC95,   8, 
        EC96,   8, 
        EC99,   8, 
        EC9A,   8, 
        EC9C,   8, 
        EC9D,   8, 
        EC9E,   8, 
        EC9F,   8, 
        ECA0,   8, 
        ECA2,   8, 
        ECA3,   8, 
        ECA4,   8, 
        ECA5,   8, 
        ECA7,   8, 
        ECA8,   8, 
        ECA9,   8, 
        ECAA,   8, 
        ECAB,   8, 
        ECAC,   8, 
        ECAD,   8, 
        ECAE,   8, 
        ECAF,   8, 
        ECB6,   8, 
        ECB8,   8, 
        ECB9,   8, 
        ECBA,   8, 
        ECBD,   8, 
        ECBE,   8, 
        ECBF,   8, 
        ECC0,   8, 
        ECC1,   8, 
        ECC2,   8, 
        ECC5,   8, 
        ECC6,   8, 
        ECC8,   8, 
        ECC9,   8, 
        ECCA,   8, 
        ECCB,   8, 
        ECD7,   8, 
        ECDB,   8, 
        ECDF,   8, 
        ECE2,   8, 
        ECE3,   8
    }

    Method (RDEC, 3, Serialized)
    {
        Acquire (MUTE, 0xFFFF)
        Store (Arg0, ECRO)
        Store (Arg1, ECRM)
        Store (Arg2, ECRS)
        FLNK (0xFF, 0x0E)
        Store (ECRD, Local0)
        Release (MUTE)
        Return (Local0)
    }

    Method (WREC, 4, Serialized)
    {
        Acquire (MUTE, 0xFFFF)
        Store (Arg0, ECRO)
        Store (Arg1, ECRM)
        Store (Arg2, ECRS)
        Store (Arg3, ECRD)
        FLNK (0xFF, 0x0F)
        Release (MUTE)
    }

    Method (FLNK, 2, Serialized)
    {
        If (LEqual (IECC, Zero))
        {
            Add (IEC2, 0x03, IEC2)
            Decrement (IEC1)
            Subtract (IEC0, 0x0B, IEC0)
            Store (One, IECC)
        }

        If (LEqual (Arg0, 0xFF))
        {
            Store (Arg1, SVCF)
        }
        Else
        {
            Store (Arg1, SWB0)
        }

        Store (Arg0, LCMD)
        Store (0xFF, APMD)
        Store (0xE3, APMC)
        Return (And (SWB0, 0xFF))
    }

    Method (CECK, 0, NotSerialized)
    {
        Store (0x08, Local2)
        While (Local2)
        {
            If (LEqual (CMW1, Ones))
            {
                If (LEqual (CMW2, Ones))
                {
                    If (LEqual (CMW3, Ones))
                    {
                        If (LEqual (CMW4, Ones))
                        {
                            If (LEqual (CMW5, Ones))
                            {
                                Store (One, Local2)
                            }
                        }
                    }
                }
            }

            If (LNotEqual (Local2, One))
            {
                Sleep (0x96)
            }

            Decrement (Local2)
        }
    }

    Method (CHKB, 1, Serialized)
    {
        If (LEqual (SDAT, Zero))
        {
            Acquire (MUTS, 0xFFFF)
            FLNK (0xCF, Zero)
            Store (ShiftRight (SWB0, 0x08), Local0)
            Release (MUTS)
            Store (And (ShiftRight (Local0, One), One), DCIR)
            Store (And (ShiftRight (Local0, 0x03), 0x03), DBTN)
            Store (One, SDAT)
        }

        Store (0x0F, Local0)
        If (LEqual (Arg0, Zero))
        {
            If (LEqual (DCIR, Zero))
            {
                Store (Zero, Local0)
            }
        }
        Else
        {
            If (LEqual (Arg0, One))
            {
                If (LEqual (And (DBTN, One), Zero))
                {
                    Store (Zero, Local0)
                }
            }
        }

        Return (Local0)
    }

    Device (_SB.HSB1)
    {
        Name (_HID, EisaId ("PNP0C32"))
        Name (_UID, One)
        Method (_STA, 0, NotSerialized)
        {
            If (LLess (OSYS, 0x07D6))
            {
                Return (Zero)
            }
            Else
            {
                Return (CHKB (One))
            }
        }

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

    Device (_SB.HSB2)
    {
        Name (_HID, EisaId ("PNP0C32"))
        Name (_UID, 0x02)
        Method (_STA, 0, NotSerialized)
        {
            If (LLess (OSYS, 0x07D6))
            {
                Return (Zero)
            }
            Else
            {
                Return (CHKB (One))
            }
        }

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

    Device (_SB.VALZ)
    {
        Name (_HID, "TOS1900")
        Name (PTST, 0xFF)
        Method (_DDN, 0, NotSerialized)
        {
            Return ("VALZeneral")
        }

        Method (ENAB, 0, NotSerialized)
        {
            Acquire (MUTS, 0xFFFF)
            If (LEqual (TSBK, Zero))
            {
                FLNK (0x14, Zero)
            }

            Store (One, TSBK)
            Release (MUTS)
        }

        Method (INFO, 0, NotSerialized)
        {
            Acquire (MUTS, 0xFFFF)
            Store (Zero, Local0)
            If (LNotEqual (CECC, Zero))
            {
                FLNK (0xFF, 0x03)
                If (LNotEqual (CECE, Zero))
                {
                    Release (MUTS)
                    Return (CECE)
                }
                Else
                {
                    FLNK (0xFF, 0x04)
                }
            }

            If (LNotEqual (KYB0, Zero))
            {
                Store (And (KYB0, 0xFF), Local0)
                ShiftRight (KYB0, 0x08, KYB0)
                If (LEqual (KYB0, Zero))
                {
                    If (LNotEqual (KYB1, Zero))
                    {
                        Store (KYB1, KYB0)
                        Store (KYB2, KYB1)
                        Store (KYB3, KYB2)
                        Store (KYB4, KYB3)
                        Store (KYB5, KYB4)
                        Store (KYB6, KYB5)
                        Store (KYB7, KYB6)
                        Store (Zero, KYB7)
                    }
                }
            }
            Else
            {
                If (LNotEqual (EVCT, Zero))
                {
                    FLNK (0x11, EVCT)
                    Store (And (KYB0, 0xFF), Local0)
                    ShiftRight (KYB0, 0x08, KYB0)
                }
                Else
                {
                    Release (MUTS)
                    Return (Zero)
                }
            }

            If (LEqual (Local0, 0xFE))
            {
                Store (Zero, Local0)
            }

            If (LEqual (And (Local0, 0xF0), 0x90))
            {
                Add (Local0, 0x0B00, Local0)
            }

            Add (Local0, 0x0100, Local0)
            Release (MUTS)
            Return (Local0)
        }

        Method (SPFC, 6, Serialized)
        {
            Acquire (MUTS, 0xFFFF)
            Name (RETP, Package (0x06)
            {
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (CAG0, Package (0x1A)
            {
                Zero, 
                0xF300050E, 
                0xF400050E, 
                0xFE00001E, 
                0xFE000011, 
                0xFE000056, 
                0xFE000062, 
                0xFE00007F, 
                0xFE00C000, 
                0xFF00001E, 
                0xFF000056, 
                0xFF00005A, 
                0xFF00007F, 
                0xFF00C000, 
                0xF3000154, 
                0xF4000154, 
                0xF3000155, 
                0xF4000155, 
                0xFE00008F, 
                0xFF00008F, 
                0xFE000047, 
                0xF300014E, 
                0xF400014E, 
                0xFF000047, 
                0xFE000061, 
                0xFF000061
            })
            Name (FLNC, Buffer (0x1A)
            {
                /* 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
            })
            Store (VALC, FLNC)
            Store (0x8000, Index (RETP, Zero))
            CreateDWordField (Arg0, Zero, ARGA)
            CreateDWordField (Arg1, Zero, ARGB)
            CreateDWordField (Arg2, Zero, ARGC)
            CreateDWordField (Arg3, Zero, ARGD)
            CreateDWordField (Arg4, Zero, ARGE)
            CreateDWordField (Arg5, Zero, ARGF)
            Store (0x19, Local6)
            While (Local6)
            {
                Store (DerefOf (Index (CAG0, Local6)), Local1)
                Add (ShiftLeft (ARGA, 0x10), And (ARGB, 0xFFFF), Local2)
                If (LEqual (Local2, Local1))
                {
                    Store (DerefOf (Index (FLNC, Local6)), Local5)
                    Break
                }

                Decrement (Local6)
            }

            If (LEqual (Local6, One))
            {
                If (LEqual (PTST, 0xFF))
                {
                    Store (FLNK (Local5, 0x0F), PTST)
                }

                Store (PTST, Index (RETP, 0x02))
                Store (Zero, Index (RETP, Zero))
            }
            Else
            {
                If (LEqual (Local6, 0x02))
                {
                    If (LEqual (And (ARGC, 0xFFFE), Zero))
                    {
                        Store (ARGC, PTST)
                        FLNK (Local5, ARGC)
                        Store (Zero, Index (RETP, Zero))
                    }
                }
                Else
                {
                    If (LEqual (Local6, 0x03))
                    {
                        Store (One, Local0)
                        If (LEqual (HKEM, One))
                        {
                            Store (0x03, Local0)
                        }

                        If (LEqual (HSEM, One))
                        {
                            Add (Local0, 0x08, Local0)
                        }

                        Store (Local0, Index (RETP, 0x02))
                        Store (Zero, Index (RETP, Zero))
                    }
                    Else
                    {
                        If (LEqual (Local6, 0x04))
                        {
                            Or (Or (Or (ARGC, ARGD), ARGE), ARGF, Local0)
                            If (LEqual (Local0, Zero))
                            {
                                Store (LCDS, Local0)
                                ShiftLeft (Local0, 0x08, Local0)
                                If (LEqual (LCDS, 0x0F))
                                {
                                    Store (0xFFFF, Local0)
                                }

                                Store (Local0, Index (RETP, 0x02))
                                Store (Zero, Index (RETP, Zero))
                            }
                        }
                        Else
                        {
                            If (LEqual (Local6, 0x05))
                            {
                                If (LEqual (ARGD, One))
                                {
                                    If (LNotEqual (And (EC93, 0x22), Zero))
                                    {
                                        Add (ShiftLeft (And (EC93, 0x08), 0x06), ShiftRight (And (
                                            EC93, 0x10), 0x04), Index (RETP, 0x02))
                                        Store (Zero, Index (RETP, Zero))
                                    }
                                }
                            }
                            Else
                            {
                                If (LEqual (Local6, 0x06))
                                {
                                    Store (EGST, Index (RETP, 0x03))
                                    Store (Zero, Index (RETP, Zero))
                                }
                                Else
                                {
                                    If (LEqual (Local6, 0x07))
                                    {
                                        Store (Zero, Local0)
                                        Store (FLNK (Local5, 0xFF), Local0)
                                        Store (Local0, Index (RETP, 0x02))
                                        Store (One, Index (RETP, 0x03))
                                        Store (Zero, Index (RETP, Zero))
                                    }
                                    Else
                                    {
                                        If (LEqual (Local6, 0x08))
                                        {
                                            If (LEqual (ARGC, 0x03))
                                            {
                                                Store (Zero, Index (RETP, 0x03))
                                                If (LEqual (HDMI, One))
                                                {
                                                    ShiftLeft (FLNK (Local5, 0xFF), 0x04, Local0)
                                                    Store (And (Local0, 0x10), Index (RETP, 0x03))
                                                }

                                                Store (Zero, Index (RETP, Zero))
                                            }
                                        }
                                        Else
                                        {
                                            If (LEqual (Local6, 0x09))
                                            {
                                                If (LEqual (And (ARGC, One), One))
                                                {
                                                    Store (And (ShiftRight (ARGC, One), One), Local0)
                                                    Store (Local0, HKEM)
                                                    WREC (0xDB, 0x10, 0x04, Local0)
                                                    Store (And (ShiftRight (ARGC, 0x03), One), Local0)
                                                    Store (Local0, HSEM)
                                                    WREC (0xDB, 0x20, 0x05, Local0)
                                                    If (LEqual (Local0, Zero))
                                                    {
                                                        If (LEqual (HSWK, 0xDC))
                                                        {
                                                            Notify (HSB1, 0x02)
                                                            Store (Zero, HSWK)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (HSWK, 0xDD))
                                                            {
                                                                Notify (HSB2, 0x02)
                                                                Store (Zero, HSWK)
                                                            }
                                                        }
                                                    }

                                                    Store (Zero, Index (RETP, Zero))
                                                }
                                            }
                                            Else
                                            {
                                                If (LEqual (Local6, 0x0A))
                                                {
                                                    If (LEqual (ARGD, 0x0200))
                                                    {
                                                        If (LNotEqual (FLNK (Local5, ARGC), 0xFF))
                                                        {
                                                            Store (Zero, Index (RETP, Zero))
                                                        }
                                                    }
                                                }
                                                Else
                                                {
                                                    If (LEqual (Local6, 0x0B))
                                                    {
                                                        If (LEqual (ARGD, One))
                                                        {
                                                            If (LEqual (And (ARGC, 0xFFFC), Zero))
                                                            {
                                                                If (LEqual (And (ARGC, 0x03), 0x02))
                                                                {
                                                                    Store (0x07, Local0)
                                                                }
                                                                Else
                                                                {
                                                                    ShiftLeft (ARGC, One, Local0)
                                                                    Add (Local0, One, Local0)
                                                                }

                                                                FLNK (Local5, Local0)
                                                                Store (Zero, Index (RETP, Zero))
                                                            }
                                                        }
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (Local6, 0x0C))
                                                        {
                                                            If (LEqual (And (ARGC, 0xFFFE), Zero))
                                                            {
                                                                FLNK (Local5, ARGC)
                                                                Store (Zero, Index (RETP, Zero))
                                                            }
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (Local6, 0x0D))
                                                            {
                                                                If (LEqual (ARGC, Zero))
                                                                {
                                                                    If (LEqual (And (ARGD, 0xFFFE), Zero))
                                                                    {
                                                                        Store (Zero, Index (RETP, Zero))
                                                                    }
                                                                }
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (Local6, 0x0E))
                                                                {
                                                                    Or (Or (Or (ARGC, ARGD), ARGE), ARGF, Local0)
                                                                    If (LEqual (Local0, Zero))
                                                                    {
                                                                        Store (CECS, Index (RETP, 0x02))
                                                                        Store (One, Index (RETP, 0x04))
                                                                        Store (One, Index (RETP, Zero))
                                                                    }
                                                                }
                                                                Else
                                                                {
                                                                    If (LEqual (Local6, 0x0F))
                                                                    {
                                                                        If (LEqual (And (ARGC, 0xFFFE), Zero))
                                                                        {
                                                                            Store (ARGC, CECS)
                                                                            FLNK (0xFF, One)
                                                                            Store (One, Index (RETP, Zero))
                                                                        }
                                                                        Else
                                                                        {
                                                                            Store (0x8300, Index (RETP, Zero))
                                                                        }
                                                                    }
                                                                    Else
                                                                    {
                                                                        If (LEqual (Local6, 0x10))
                                                                        {
                                                                            Store (CECP, Index (RETP, 0x02))
                                                                            Store (Zero, Index (RETP, One))
                                                                            Store (One, Index (RETP, Zero))
                                                                        }
                                                                        Else
                                                                        {
                                                                            If (LEqual (Local6, 0x11))
                                                                            {
                                                                                If (LEqual (And (ARGC, 0xFFFE), Zero))
                                                                                {
                                                                                    Store (ARGC, CECP)
                                                                                    FLNK (0xFF, 0x02)
                                                                                    Store (One, Index (RETP, Zero))
                                                                                }
                                                                                Else
                                                                                {
                                                                                    Store (0x8300, Index (RETP, Zero))
                                                                                }
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (Local6, 0x12))
                                                                                {
                                                                                    Or (Or (ARGD, ARGE), ARGF, Local0)
                                                                                    If (LEqual (Local0, Zero))
                                                                                    {
                                                                                        Store (One, Local0)
                                                                                        If (LEqual (ARGC, 0xC1))
                                                                                        {
                                                                                            FLNK (0xFF, 0x10)
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            If (LEqual (ARGC, 0xC3))
                                                                                            {
                                                                                                FLNK (0xFF, 0x11)
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                If (LEqual (ARGC, 0xC4))
                                                                                                {
                                                                                                    FLNK (0xFF, 0x12)
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    If (LEqual (ARGC, 0xC5))
                                                                                                    {
                                                                                                        FLNK (0xFF, 0x13)
                                                                                                    }
                                                                                                    Else
                                                                                                    {
                                                                                                        If (LEqual (ARGC, 0xC7))
                                                                                                        {
                                                                                                            FLNK (0xFF, 0x14)
                                                                                                        }
                                                                                                        Else
                                                                                                        {
                                                                                                            If (LEqual (ARGC, 0xC8))
                                                                                                            {
                                                                                                                FLNK (0xFF, 0x15)
                                                                                                            }
                                                                                                            Else
                                                                                                            {
                                                                                                                Store (Zero, Local0)
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }

                                                                                        If (LEqual (Local0, One))
                                                                                        {
                                                                                            Store (CEC1, Index (RETP, One))
                                                                                            Store (CEC2, Index (RETP, 0x02))
                                                                                            Store (CEC3, Index (RETP, 0x03))
                                                                                            Store (CEC4, Index (RETP, 0x04))
                                                                                            Store (CEC5, Index (RETP, 0x05))
                                                                                            Store (Zero, Index (RETP, Zero))
                                                                                        }
                                                                                    }
                                                                                }
                                                                                Else
                                                                                {
                                                                                    If (LEqual (Local6, 0x13))
                                                                                    {
                                                                                        Store (And (ARGB, 0x00FF0000), Local0)
                                                                                        If (LEqual (Local0, 0x00C00000))
                                                                                        {
                                                                                            If (LEqual (And (ARGB, 0xFF000000), Zero))
                                                                                            {
                                                                                                CECK ()
                                                                                                And (ARGC, 0xFFFF, Local1)
                                                                                                Add (ShiftLeft (ARGD, 0x10), Local1, CMW1)
                                                                                                Add (ShiftRight (ARGD, 0x10), ShiftLeft (ARGE, 0x10), CMW2)
                                                                                                Add (ShiftRight (ARGE, 0x10), ShiftLeft (ARGF, 0x10), CMW3)
                                                                                                And (ARGC, 0xFFFF0000, Local1)
                                                                                                Add (ShiftRight (ARGF, 0x10), Local1, CMW4)
                                                                                                Store (Zero, CMW5)
                                                                                                FLNK (0xFF, 0x16)
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                CECK ()
                                                                                                Add (ShiftRight (ARGB, 0x18), 0x1000, Local1)
                                                                                                Add (Local1, ShiftLeft (ARGC, 0x10), CMW1)
                                                                                                Add (ShiftRight (ARGC, 0x10), ShiftLeft (ARGD, 0x10), CMW2)
                                                                                                Add (ShiftRight (ARGD, 0x10), ShiftLeft (ARGE, 0x10), CMW3)
                                                                                                Add (ShiftRight (ARGE, 0x10), ShiftLeft (ARGF, 0x10), CMW4)
                                                                                                Store (ShiftRight (ARGF, 0x10), CMW5)
                                                                                                FLNK (0xFF, 0x17)
                                                                                            }

                                                                                            Store (Zero, Index (RETP, Zero))
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            If (LEqual (Local0, 0x00C20000))
                                                                                            {
                                                                                                CECK ()
                                                                                                And (ARGB, 0xFF000000, Local1)
                                                                                                Add (Local1, 0x00800000, Local1)
                                                                                                Add (ShiftRight (Local1, 0x10), ShiftLeft (ARGC, 0x10), CMW1)
                                                                                                Add (ShiftRight (ARGC, 0x10), ShiftLeft (ARGD, 0x10), CMW2)
                                                                                                Add (ShiftRight (ARGD, 0x10), ShiftLeft (ARGE, 0x10), CMW3)
                                                                                                Add (ShiftRight (ARGE, 0x10), ShiftLeft (ARGF, 0x10), CMW4)
                                                                                                Store (ShiftRight (ARGF, 0x10), CMW5)
                                                                                                FLNK (0xFF, 0x18)
                                                                                                Store (Zero, Index (RETP, Zero))
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                If (LEqual (Local0, 0x00C90000))
                                                                                                {
                                                                                                    Or (Or (ARGD, ARGE), ARGF, Local0)
                                                                                                    If (LEqual (Local0, Zero))
                                                                                                    {
                                                                                                        If (LEqual (And (ARGC, 0xFFFFFF00), Zero))
                                                                                                        {
                                                                                                            Store (ARGC, CEC2)
                                                                                                            FLNK (0xFF, 0x19)
                                                                                                            Store (Zero, Index (RETP, Zero))
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                        If (LEqual (Local6, 0x14))
                                                                                        {
                                                                                            Or (Or (ARGD, ARGE), ARGF, Local0)
                                                                                            If (LEqual (Local0, Zero))
                                                                                            {
                                                                                                Store (Zero, Index (RETP, 0x02))
                                                                                                If (LEqual (HSWK, 0xE8))
                                                                                                {
                                                                                                    Store (0x0131, Index (RETP, 0x02))
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    If (LEqual (HSWK, 0xE9))
                                                                                                    {
                                                                                                        Store (0x20, Index (RETP, 0x02))
                                                                                                        Store (0x90, Index (RETP, 0x03))
                                                                                                    }
                                                                                                }

                                                                                                Store (Zero, Index (RETP, Zero))
                                                                                            }
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            If (LEqual (Local6, 0x17))
                                                                                            {
                                                                                                Or (Or (ARGD, ARGE), ARGF, Local0)
                                                                                                If (LEqual (Local0, Zero))
                                                                                                {
                                                                                                    If (LEqual (ARGC, 0x5A00))
                                                                                                    {
                                                                                                        If (LEqual (HSWK, 0xE9))
                                                                                                        {
                                                                                                            Store (Zero, HSWK)
                                                                                                        }

                                                                                                        If (LEqual (HSWK, 0xE8))
                                                                                                        {
                                                                                                            Store (Zero, HSWK)
                                                                                                        }

                                                                                                        Store (Zero, Index (RETP, Zero))
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                If (LEqual (Local6, 0x18))
                                                                                                {
                                                                                                    Or (Or (Or (ARGC, ARGD), ARGE), ARGF, Local0)
                                                                                                    If (LEqual (Local0, Zero))
                                                                                                    {
                                                                                                        Store (FLNK (Local5, 0xFF), Local0)
                                                                                                        If (LNotEqual (Local0, 0xFF))
                                                                                                        {
                                                                                                            Store (Zero, Index (RETP, Zero))
                                                                                                            Store (Local0, Index (RETP, 0x02))
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    If (LEqual (Local6, 0x19))
                                                                                                    {
                                                                                                        Or (Or (ARGD, ARGE), ARGF, Local0)
                                                                                                        If (LEqual (Local0, Zero))
                                                                                                        {
                                                                                                            If (LEqual (And (ARGC, 0xFFFE), Zero))
                                                                                                            {
                                                                                                                Store (ARGC, Local1)
                                                                                                                Store (FLNK (Local5, Local1), Local0)
                                                                                                                If (LNotEqual (Local0, 0xFF))
                                                                                                                {
                                                                                                                    Store (Zero, Index (RETP, Zero))
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            Release (MUTS)
            Return (RETP)
        }

        Method (_STA, 0, NotSerialized)
        {
            If (LLess (OSYS, 0x07D6))
            {
                Return (Zero)
            }
            Else
            {
                Return (0x0B)
            }
        }
    }

    Device (_SB.FWEX)
    {
        Name (_HID, "TOS1901")
        Method (FWES, 1, NotSerialized)
        {
            Acquire (MUTS, 0xFFFF)
            Name (FWEB, Buffer (0x20) {})
            Store (DerefOf (Index (Arg0, Zero)), Local4)
            Store (Zero, Local7)
            If (LEqual (Local4, One))
            {
                If (^^PCI0.LPC.EC0.ECOK)
                {
                    Store (RCPU, Index (FWEB, Zero))
                    Store (VGAT, Index (FWEB, One))
                    Store (LRPM, Index (FWEB, 0x02))
                    Store (HRPM, Index (FWEB, 0x03))
                    Store (Zero, Index (FWEB, 0x04))
                    Store (Zero, Index (FWEB, 0x05))
                    Store (RDEC (0xA0, 0xFF, Zero), Index (FWEB, 0x06))
                }

                Release (MUTS)
                Return (FWEB)
            }

            If (LEqual (Local4, 0x81))
            {
                Store (DerefOf (Index (Arg0, One)), Local0)
                If (LEqual (Local0, 0xFF))
                {
                    Store (EVCT, Local0)
                    Store (Local0, Index (FWEB, Zero))
                    Release (MUTS)
                    Return (FWEB)
                }
                Else
                {
                    If (LEqual (Local0, 0xFE))
                    {
                        Store (FKST, Local0)
                        Store (Local0, Index (FWEB, Zero))
                        Release (MUTS)
                        Return (FWEB)
                    }
                    Else
                    {
                        Store (One, Local7)
                    }
                }
            }

            Store (0x20, Local0)
            Store (One, Local1)
            Store (Zero, Local3)
            While (Local0)
            {
                Store (ShiftLeft (DerefOf (Index (Arg0, Local1)), 0x18), Local2)
                Add (And (ShiftRight (Local3, 0x08), 0x00FFFFFF), Local2, Local3)
                If (LEqual (Local1, 0x04))
                {
                    Store (Local3, Local5)
                    Store (Local3, SWB0)
                }
                Else
                {
                    If (LEqual (Local1, 0x08))
                    {
                        Store (Local3, SWB1)
                    }
                    Else
                    {
                        If (LEqual (Local1, 0x0C))
                        {
                            Store (Local3, SWB2)
                        }
                        Else
                        {
                            If (LEqual (Local1, 0x10))
                            {
                                Store (Local3, SWB3)
                            }
                            Else
                            {
                                If (LEqual (Local1, 0x14))
                                {
                                    Store (Local3, SWB4)
                                }
                                Else
                                {
                                    If (LEqual (Local1, 0x18))
                                    {
                                        Store (Local3, SWB5)
                                    }
                                    Else
                                    {
                                        If (LEqual (Local1, 0x1C))
                                        {
                                            Store (Local3, SWB6)
                                        }
                                        Else
                                        {
                                            If (LEqual (Local1, 0x20))
                                            {
                                                Store (Local3, SWB7)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Decrement (Local0)
                Add (Local1, One, Local1)
            }

            If (LEqual (Local7, One))
            {
                Store (0x11, Local4)
                Store (EVCT, Local5)
            }

            FLNK (Local4, Local5)
            Store (SWB0, Local1)
            Store (Zero, Local2)
            While (LNotEqual (Local2, 0x20))
            {
                If (LEqual (Local2, 0x04))
                {
                    Store (SWB1, Local1)
                }
                Else
                {
                    If (LEqual (Local2, 0x08))
                    {
                        Store (SWB2, Local1)
                    }
                    Else
                    {
                        If (LEqual (Local2, 0x0C))
                        {
                            Store (SWB3, Local1)
                        }
                        Else
                        {
                            If (LEqual (Local2, 0x10))
                            {
                                Store (SWB4, Local1)
                            }
                            Else
                            {
                                If (LEqual (Local2, 0x14))
                                {
                                    Store (SWB5, Local1)
                                }
                                Else
                                {
                                    If (LEqual (Local2, 0x18))
                                    {
                                        Store (SWB6, Local1)
                                    }
                                    Else
                                    {
                                        If (LEqual (Local2, 0x1C))
                                        {
                                            Store (SWB7, Local1)
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Store (Local1, Index (FWEB, Local2))
                Divide (Local1, 0x0100, Local0, Local1)
                Add (Local2, One, Local2)
            }

            Store (Zero, Local0)
            If (LNotEqual (LCMD, Zero))
            {
                Store (Zero, Local2)
                While (LNotEqual (Local2, 0x20))
                {
                    Store (0xFF, Index (FWEB, Local2))
                    Add (Local2, One, Local2)
                }
            }

            Store (Local0, SWB0)
            Store (Local0, SWB1)
            Store (Local0, SWB2)
            Store (Local0, SWB3)
            Store (Local0, SWB4)
            Store (Local0, SWB5)
            Store (Local0, SWB6)
            Store (Local0, SWB7)
            If (LEqual (Local7, One))
            {
                Store (EVCT, Index (FWEB, 0x1F))
            }

            Release (MUTS)
            Return (FWEB)
        }

        Method (_STA, 0, NotSerialized)
        {
            If (LLess (OSYS, 0x07D0))
            {
                Return (Zero)
            }
            Else
            {
                Return (0x0B)
            }
        }
    }

    Method (WFNK, 1, NotSerialized)
    {
        Acquire (MUTS, 0xFFFF)
        If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
        {
            Store (And (ShiftRight (ECB6, 0x03), One), Local0)
            If (LNotEqual (Local0, PWBS))
            {
                WREC (0xB6, 0x08, 0x03, PWBS)
            }

            If (LNotEqual (ECC8, ACBS))
            {
                WREC (0xC8, 0xFF, Zero, ACBS)
            }

            If (LNotEqual (ECC9, ACBW))
            {
                WREC (0xC9, 0xFF, Zero, ACBW)
            }
        }

        If (LGreater (OSYS, 0x07D5))
        {
            If (LEqual (Arg0, 0x04))
            {
                Store (HKMD, Local0)
                WREC (0xDB, One, Zero, Local0)
            }

            If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
            {
                Store (HKEM, Local0)
                WREC (0xDB, 0x10, 0x04, Local0)
                Store (HSEM, Local0)
                WREC (0xDB, 0x20, 0x05, Local0)
                FLNK (0x10, One)
                FLNK (0x15, 0xFF)
                FLNK (0xFF, 0x22)
            }

            If (LNotEqual (EVCT, Zero))
            {
                FLNK (0x11, EVCT)
                If (LEqual (RDEC (0xDB, 0x20, 0x05), Zero))
                {
                    Store (And (KYB0, 0xFF), Local0)
                    If (LEqual (Local0, 0xDC))
                    {
                        Notify (\_SB.HSB1, 0x02)
                    }
                    Else
                    {
                        If (LEqual (Local0, 0xDD))
                        {
                            Notify (\_SB.HSB2, 0x02)
                        }
                        Else
                        {
                            Store (KYB0, HSWK)
                        }
                    }

                    Store (Zero, KYB0)
                }
            }
        }
        Else
        {
            If (LNotEqual (EVCT, Zero))
            {
                Notify (\_SB.FWEX, 0x80)
            }

            FLNK (0x15, 0xFF)
        }

        FLNK (0xFF, 0x30)
        Release (MUTS)
    }

    Method (SFNK, 1, NotSerialized)
    {
        Acquire (MUTS, 0xFFFF)
        If (LGreater (OSYS, 0x07D5))
        {
            Store (Zero, HSWK)
            If (LEqual (Arg0, 0x04))
            {
                Store (RDEC (0xDB, One, Zero), HKMD)
            }
        }

        If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
        {
            Store (And (ShiftRight (ECB6, 0x03), One), PWBS)
            Store (ECC8, ACBS)
            Store (ECC9, ACBW)
        }
        Else
        {
            If (LEqual (Arg0, 0x05))
            {
                If (LEqual (ECC8, Zero))
                {
                    WREC (0xC8, 0xFF, Zero, 0x3F)
                    If (LEqual (ECC9, Zero))
                    {
                        WREC (0xC9, 0xFF, Zero, 0x03)
                    }
                }
            }
        }

        If (LGreater (Arg0, 0x02))
        {
            FLNK (0xFF, 0x21)
        }

        Release (MUTS)
    }

    Scope (_PR)
    {
        Processor (CPU0, 0x01, 0x00000410, 0x06) {}
        Processor (CPU1, 0x02, 0x00000410, 0x06) {}
        Processor (CPU2, 0x03, 0x00000410, 0x06) {}
        Processor (CPU3, 0x04, 0x00000410, 0x06) {}
    }

    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)
    }

    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)
    }

    OperationRegion (CMS1, SystemIO, 0x72, 0x02)
    Field (CMS1, ByteAcc, NoLock, Preserve)
    {
        CMSI,   8, 
        CMSD,   8
    }

    Method (CMSW, 2, NotSerialized)
    {
        Store (Arg0, CMSI)
        Store (Arg1, CMSD)
    }

    Method (_PTS, 1, NotSerialized)
    {
        Acquire (MUTS, 0xFFFF)
        \_SB.OSMI (0xFF)
        Release (MUTS)
        If (LEqual (Arg0, 0x03))
        {
            Store (0x53, P80H)
        }

        If (LEqual (Arg0, 0x04))
        {
            CMSW (0x3F, 0x3F)
        }

        SFNK (Arg0)
        Return (Zero)
    }

    Method (_WAK, 1, NotSerialized)
    {
        If (LEqual (Arg0, 0x03))
        {
            If (LAnd (DTSE, CMPE))
            {
                Store (0x14, DTSF)
                Store (Zero, TRPD)
            }

            Store (One, SSMI)
            Acquire (MUTS, 0xFFFF)
            \_SB.OSMI (0xC2)
            Release (MUTS)
            Notify (\_SB.PCI0.EXP5, Zero)
            If (SCFG)
            {
                FLNK (0xFF, 0x31)
                If (\_SB.PCI0.LPC.EC0.ECOK)
                {
                    Store (Zero, \_SB.PCI0.LPC.EC0.SATC)
                    WREC (0xD4, 0xFF, Zero, 0x1E)
                }
            }

            Store (0xE3, P80H)
        }

        If (LEqual (Arg0, 0x04))
        {
            If (LAnd (DTSE, CMPE))
            {
                Store (0x14, DTSF)
                Store (Zero, TRPD)
            }

            If (\_SB.PCI0.LPC.EC0.ECOK)
            {
                If (RDEC (0xA2, 0xFF, Zero))
                {
                    Notify (\_SB.PWRB, 0x02)
                }
            }

            If (SCFG)
            {
                FLNK (0xFF, 0x31)
                If (\_SB.PCI0.LPC.EC0.ECOK)
                {
                    Store (Zero, \_SB.PCI0.LPC.EC0.SATC)
                    WREC (0xD4, 0xFF, Zero, 0x1E)
                }
            }

            Store (0xE4, P80H)
        }

        Acquire (MUTS, 0xFFFF)
        FLNK (0x16, 0xF1)
        Release (MUTS)
        WFNK (Arg0)
        Return (Zero)
    }

    If (LEqual (DAS3, One))
    {
        Name (_S3, Package (0x04)
        {
            0x05, 
            0x05, 
            Zero, 
            Zero
        })
    }

    Name (_S4, Package (0x04)
    {
        0x06, 
        0x06, 
        Zero, 
        Zero
    })
    Name (_S5, Package (0x04)
    {
        0x07, 
        0x07, 
        Zero, 
        Zero
    })
    Scope (_GPE)
    {
        Method (_L01, 0, NotSerialized)
        {
            If (LAnd (LEqual (RP1D, Zero), \_SB.PCI0.EXP1.HPCS))
            {
                Sleep (0x64)
                If (\_SB.PCI0.EXP1.PDC1)
                {
                    Store (One, \_SB.PCI0.EXP1.PDC1)
                    Store (One, \_SB.PCI0.EXP1.HPCS)
                    Notify (\_SB.PCI0.EXP1, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.EXP1.HPCS)
                }
            }

            If (LAnd (LEqual (RP2D, Zero), \_SB.PCI0.EXP2.HPCS))
            {
                Sleep (0x64)
                If (\_SB.PCI0.EXP2.PDC2)
                {
                    Store (One, \_SB.PCI0.EXP2.PDC2)
                    Store (One, \_SB.PCI0.EXP2.HPCS)
                    Notify (\_SB.PCI0.EXP2, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.EXP2.HPCS)
                }
            }

            If (LAnd (LEqual (RP3D, Zero), \_SB.PCI0.EXP3.HPCS))
            {
                Sleep (0x64)
                If (\_SB.PCI0.EXP3.PDC3)
                {
                    Store (One, \_SB.PCI0.EXP3.PDC3)
                    Store (One, \_SB.PCI0.EXP3.HPCS)
                    Notify (\_SB.PCI0.EXP3, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.EXP3.HPCS)
                }
            }

            If (LAnd (LEqual (RP4D, Zero), \_SB.PCI0.EXP4.HPCS))
            {
                Sleep (0x64)
                If (\_SB.PCI0.EXP4.PDC4)
                {
                    Store (One, \_SB.PCI0.EXP4.PDC4)
                    Store (One, \_SB.PCI0.EXP4.HPCS)
                    Notify (\_SB.PCI0.EXP4, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.EXP4.HPCS)
                }
            }

            If (LAnd (LEqual (RP5D, Zero), \_SB.PCI0.EXP5.HPCS))
            {
                Sleep (0x64)
                If (\_SB.PCI0.EXP5.PDC5)
                {
                    Store (One, \_SB.PCI0.EXP5.PDC5)
                    Store (One, \_SB.PCI0.EXP5.HPCS)
                    Notify (\_SB.PCI0.EXP5, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.EXP5.HPCS)
                }
            }

            If (LAnd (LEqual (RP6D, Zero), \_SB.PCI0.EXP6.HPCS))
            {
                Sleep (0x64)
                If (\_SB.PCI0.EXP6.PDC6)
                {
                    Store (One, \_SB.PCI0.EXP6.PDC6)
                    Store (One, \_SB.PCI0.EXP6.HPCS)
                    Notify (\_SB.PCI0.EXP6, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.EXP6.HPCS)
                }
            }
        }

        Method (_L06, 0, NotSerialized)
        {
            If (\_SB.PCI0.OVGA.GSSE)
            {
                \_SB.PCI0.OVGA.GSCI ()
            }
            Else
            {
                Store (One, SCIS)
            }
        }

        Method (_L03, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.UHC1, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }

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

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

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

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

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

    Scope (_TZ)
    {
        PowerResource (FN00, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)
            {
                Return (One)
            }

            Method (_ON, 0, Serialized)
            {
            }

            Method (_OFF, 0, Serialized)
            {
            }
        }

        Device (FAN)
        {
            Name (_HID, EisaId ("PNP0C0B"))
            Name (_UID, Zero)
            Name (_PR0, Package (0x01)
            {
                FN00
            })
        }

        ThermalZone (THRM)
        {
            Method (_TMP, 0, Serialized)
            {
                If (\_SB.PCI0.LPC.EC0.ECOK)
                {
                    Store (RDEC (0x9C, 0xFF, Zero), Local0)
                    Return (Add (0x0AAC, Multiply (Local0, 0x0A)))
                }

                Return (0x0BB8)
            }

            Method (_AC0, 0, Serialized)
            {
                If (LLess (FNON, 0x28))
                {
                    Return (0x0D68)
                }
                Else
                {
                    Return (Add (0x0AAC, Multiply (FNON, 0x0A)))
                }
            }

            Method (_PSV, 0, Serialized)
            {
                If (LNotEqual (PERN, One))
                {
                    If (LLess (TRON, 0x64))
                    {
                        Return (0x0E58)
                    }
                    Else
                    {
                        Return (0x0EF8)
                    }
                }
                Else
                {
                    If (LLess (TRON, 0x64))
                    {
                        Return (0x0EBC)
                    }
                    Else
                    {
                        Return (0x0F20)
                    }
                }
            }

            Method (_CRT, 0, Serialized)
            {
                If (LNotEqual (PERN, One))
                {
                    If (LLess (TRON, 0x64))
                    {
                        Return (0x0E58)
                    }
                    Else
                    {
                        Return (0x0EF8)
                    }
                }
                Else
                {
                    If (LLess (TRON, 0x64))
                    {
                        Return (0x0EBC)
                    }
                    Else
                    {
                        Return (0x0F20)
                    }
                }
            }

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

            Name (_AL0, Package (0x01)
            {
                FAN
            })
            Method (_PSL, 0, Serialized)
            {
                If (CMPE)
                {
                    Return (Package (0x02)
                    {
                        \_PR.CPU0, 
                        \_PR.CPU1
                    })
                }

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

            Name (_TC1, 0x02)
            Name (_TC2, 0x05)
            Name (_TSP, 0x012C)
        }
    }

    Method (GETP, 1, Serialized)
    {
        If (LEqual (And (Arg0, 0x09), Zero))
        {
            Return (Ones)
        }

        If (LEqual (And (Arg0, 0x09), 0x08))
        {
            Return (0x0384)
        }

        ShiftRight (And (Arg0, 0x0300), 0x08, Local0)
        ShiftRight (And (Arg0, 0x3000), 0x0C, Local1)
        Return (Multiply (0x1E, Subtract (0x09, Add (Local0, Local1))
            ))
    }

    Method (GDMA, 5, Serialized)
    {
        If (Arg0)
        {
            If (Arg1)
            {
                Return (0x14)
            }

            If (Arg2)
            {
                Return (Multiply (Subtract (0x04, Arg3), 0x0F))
            }

            Return (Multiply (Subtract (0x04, Arg3), 0x1E))
        }

        Return (Ones)
    }

    Method (GETT, 1, Serialized)
    {
        Return (Multiply (0x1E, Subtract (0x09, Add (And (ShiftRight (Arg0, 0x02
            ), 0x03), And (Arg0, 0x03)))))
    }

    Method (GETF, 3, Serialized)
    {
        Name (TMPF, Zero)
        If (Arg0)
        {
            Or (TMPF, One, TMPF)
        }

        If (And (Arg2, 0x02))
        {
            Or (TMPF, 0x02, TMPF)
        }

        If (Arg1)
        {
            Or (TMPF, 0x04, TMPF)
        }

        If (And (Arg2, 0x20))
        {
            Or (TMPF, 0x08, TMPF)
        }

        If (And (Arg2, 0x4000))
        {
            Or (TMPF, 0x10, TMPF)
        }

        Return (TMPF)
    }

    Method (SETP, 3, Serialized)
    {
        If (LGreater (Arg0, 0xF0))
        {
            Return (0x08)
        }
        Else
        {
            If (And (Arg1, 0x02))
            {
                If (LAnd (LLessEqual (Arg0, 0x78), And (Arg2, 0x02)))
                {
                    Return (0x2301)
                }

                If (LAnd (LLessEqual (Arg0, 0xB4), And (Arg2, One)))
                {
                    Return (0x2101)
                }
            }

            Return (0x1001)
        }
    }

    Method (SDMA, 1, Serialized)
    {
        If (LLessEqual (Arg0, 0x14))
        {
            Return (One)
        }

        If (LLessEqual (Arg0, 0x1E))
        {
            Return (0x02)
        }

        If (LLessEqual (Arg0, 0x2D))
        {
            Return (One)
        }

        If (LLessEqual (Arg0, 0x3C))
        {
            Return (0x02)
        }

        If (LLessEqual (Arg0, 0x5A))
        {
            Return (One)
        }

        Return (Zero)
    }

    Method (SETT, 3, Serialized)
    {
        If (And (Arg1, 0x02))
        {
            If (LAnd (LLessEqual (Arg0, 0x78), And (Arg2, 0x02)))
            {
                Return (0x0B)
            }

            If (LAnd (LLessEqual (Arg0, 0xB4), And (Arg2, One)))
            {
                Return (0x09)
            }
        }

        Return (0x04)
    }

    Scope (_SB)
    {
        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
        }

        Device (LID0)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Method (_LID, 0, NotSerialized)
            {
                If (^^PCI0.LPC.EC0.ECOK)
                {
                    If (RDEC (0x92, One, Zero))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (One)
                    }
                }
                Else
                {
                    Return (One)
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x0D, 
                0x04
            })
            Method (_PSW, 1, NotSerialized)
            {
                If (Arg0)
                {
                    If (RDEC (0x92, One, Zero))
                    {
                        WREC (0xB6, One, Zero, One)
                    }
                    Else
                    {
                        WREC (0xB6, One, Zero, Zero)
                    }
                }
                Else
                {
                    WREC (0xB6, One, Zero, Zero)
                }
            }
        }

        Device (ADP0)
        {
            Name (_PCL, Package (0x01)
            {
                _SB
            })
            Name (_HID, "ACPI0003")
            Method (_PSR, 0, NotSerialized)
            {
                If (^^PCI0.LPC.EC0.ECOK)
                {
                    And (ShiftRight (EC92, 0x03), One, Local0)
                    If (Local0)
                    {
                        Return (One)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Else
                {
                    Return (One)
                }
            }

            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }
        }

        Device (BAT0)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_UID, One)
            Name (_PCL, Package (0x01)
            {
                _SB
            })
            Name (BIF1, Package (0x0D)
            {
                One, 
                0x10CC, 
                0x10CC, 
                One, 
                0x3A98, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                "PA3478U-1BAS/BRS", 
                "0000", 
                "Li-ion", 
                ""
            })
            Method (_STA, 0, NotSerialized)
            {
                If (^^PCI0.LPC.EC0.ECOK)
                {
                    If (And (EC94, One))
                    {
                        Return (0x1F)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }
                Else
                {
                    Return (0x0F)
                }
            }

            Name (BST1, Package (0x04)
            {
                One, 
                0x0A90, 
                0x1000, 
                0x23A0
            })
            Method (_BIF, 0, NotSerialized)
            {
                If (^^PCI0.LPC.EC0.ECOK)
                {
                    Store (ECAE, Local0)
                    Store (ECAF, Local5)
                    ShiftLeft (Local5, 0x08, Local5)
                    Add (Local0, Local5, Local0)
                    Store (Local0, Index (BIF1, 0x04))
                    Store (ECAA, Local0)
                    Store (ECAB, Local5)
                    ShiftLeft (Local5, 0x08, Local5)
                    Add (Local0, Local5, Local0)
                    Store (Local0, Index (BIF1, 0x02))
                    Store (ECAC, Local1)
                    Store (ECAD, Local5)
                    ShiftLeft (Local5, 0x08, Local5)
                    Add (Local1, Local5, Local1)
                    Store (Local1, Index (BIF1, One))
                    Store (Local0, Index (BIF1, 0x08))
                    Store (ECDF, Local0)
                    If (LEqual (Local0, 0x05))
                    {
                        If (LEqual (And (ECE2, 0x04), 0x04))
                        {
                            Store ("PA3537U-1BRS", Index (BIF1, 0x09))
                        }
                        Else
                        {
                            Store ("PA3535U-1BRS", Index (BIF1, 0x09))
                        }
                    }

                    If (LEqual (Local0, 0x04))
                    {
                        If (LEqual (And (ECE2, 0x04), 0x04))
                        {
                            Store ("PA3536U-1BRS", Index (BIF1, 0x09))
                        }
                        Else
                        {
                            Store ("PA3534U-1BRS", Index (BIF1, 0x09))
                        }
                    }

                    If (LEqual (Local0, 0x03))
                    {
                        Store ("PA3533U-1BRS", Index (BIF1, 0x09))
                    }

                    If (LEqual (Local0, 0x02))
                    {
                        If (LEqual (And (ECE2, 0x04), 0x04))
                        {
                            Store ("PA3537U-1BAS", Index (BIF1, 0x09))
                        }
                        Else
                        {
                            Store ("PA3535U-1BAS", Index (BIF1, 0x09))
                        }
                    }

                    If (LEqual (Local0, One))
                    {
                        If (LEqual (And (ECE2, 0x04), 0x04))
                        {
                            Store ("PA3536U-1BAS", Index (BIF1, 0x09))
                        }
                        Else
                        {
                            Store ("PA3534U-1BAS", Index (BIF1, 0x09))
                        }
                    }

                    If (LEqual (Local0, Zero))
                    {
                        Store ("PA3533U-1BAS", Index (BIF1, 0x09))
                    }

                    Store (ECB9, Local0)
                    Store (ECBA, Local5)
                    ShiftLeft (Local5, 0x08, Local5)
                    Add (Local0, Local5, Local0)
                    Store (ITOS (Local0), Local1)
                    Store (Local1, Index (BIF1, 0x0A))
                }
                Else
                {
                    Store (Ones, Index (BIF1, One))
                    Store (Ones, Index (BIF1, 0x04))
                }

                Return (BIF1)
            }

            Method (_BST, 0, NotSerialized)
            {
                If (^^PCI0.LPC.EC0.ECOK)
                {
                    And (ShiftRight (EC94, 0x04), One, Local1)
                    And (EC95, One, Local0)
                    ShiftLeft (Local1, One, Local2)
                    Or (Local0, Local2, Local3)
                    Store (ECC6, Local2)
                    Multiply (Local2, 0x0100, Local1)
                    Store (ECC5, Local0)
                    Add (Local1, Local0, Local1)
                    Store (Local1, Index (BST1, One))
                    Store (ECA4, Local0)
                    If (LLess (Local0, 0x0F))
                    {
                        Or (Local3, 0x04, Local3)
                    }

                    Store (Local3, Index (BST1, Zero))
                    Store (DerefOf (Index (BIF1, 0x02)), Local1)
                    Multiply (Local1, Local0, Local2)
                    Divide (Local2, 0x64, Local3, Local2)
                    Add (Local2, One, Local2)
                    Store (Local2, Index (BST1, 0x02))
                    Store (DerefOf (Index (BIF1, 0x04)), Local3)
                    Store (Local3, Index (BST1, 0x03))
                }
                Else
                {
                    Store (One, Index (BST1, Zero))
                    Store (Ones, Index (BST1, One))
                    Store (Ones, Index (BST1, 0x02))
                    Store (Ones, Index (BST1, 0x03))
                }

                Return (BST1)
            }
        }

        Method (ITOS, 1, NotSerialized)
        {
            Store ("", Local0)
            Store (0x04, Local1)
            While (Local1)
            {
                Decrement (Local1)
                And (ShiftRight (Arg0, ShiftLeft (Local1, 0x02)), 0x0F, Local4)
                Store (DerefOf (Index (CHAR, Local4)), Local2)
                Concatenate (Local0, Local2, Local5)
                Store (Local5, Local0)
            }

            Return (Local0)
        }

        Name (CHAR, Package (0x10)
        {
            "0", 
            "1", 
            "2", 
            "3", 
            "4", 
            "5", 
            "6", 
            "7", 
            "8", 
            "9", 
            "A", 
            "B", 
            "C", 
            "D", 
            "E", 
            "F"
        })
        Device (BT)
        {
            Name (_HID, "TOS6205")
            Method (_STA, 0, NotSerialized)
            {
                And (ShiftRight (EC93, 0x05), One, Local2)
                Store (Zero, Local0)
                If (Local2)
                {
                    Store (0x0F, Local0)
                }

                Return (Local0)
            }

            Method (BTST, 0, NotSerialized)
            {
                Store (Zero, Local0)
                If (LEqual (And (EC93, 0x20), 0x20))
                {
                    And (EC93, 0xC0, Local0)
                    If (LEqual (And (EC93, 0x10), 0x10))
                    {
                        Add (Local0, One, Local0)
                    }
                }

                Return (Local0)
            }

            Method (AUSB, 0, NotSerialized)
            {
            }

            Method (DUSB, 0, NotSerialized)
            {
                Store (Zero, BTRS)
                Acquire (MUTS, 0xFFFF)
                FLNK (0x16, 0xFC)
                Release (MUTS)
                Sleep (0x96)
            }

            Method (BTPO, 0, NotSerialized)
            {
                Store (RDEC (0x93, 0x20, 0x05), Local2)
                If (Local2)
                {
                    Store (RDEC (0x93, 0x10, 0x04), Local3)
                    If (Local3)
                    {
                        WREC (0x93, 0x80, 0x07, One)
                        WREC (0x93, 0x40, 0x06, One)
                        Acquire (MUTS, 0xFFFF)
                        FLNK (0x16, 0xFA)
                        Release (MUTS)
                        Store (One, BTRS)
                    }
                }
            }

            Method (BTPF, 0, NotSerialized)
            {
                If (^^PCI0.LPC.EC0.ECOK)
                {
                    Store (RDEC (0x93, 0x20, 0x05), Local2)
                    If (Local2)
                    {
                        Sleep (0xFA)
                    }
                }
            }
        }

        OperationRegion (PSMI, SystemIO, 0xB2, 0x02)
        Field (PSMI, ByteAcc, NoLock, Preserve)
        {
            APMC,   8, 
            APMD,   8
        }

        Method (OSMI, 1, NotSerialized)
        {
            Store (Arg0, APMD)
            Store (0xBE, APMC)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A08"))
            Name (_CID, EisaId ("PNP0A03"))
            Name (_ADR, Zero)
            Method (_INI, 0, NotSerialized)
            {
                If (CondRefOf (_OSI, Local0))
                {
                    If (_OSI ("Linux"))
                    {
                        Store (0x03E8, OSYS)
                    }
                    Else
                    {
                        Store (0x07D0, 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 2006"))
                        {
                            Store (0x07D6, OSYS)
                        }

                        If (LNotEqual (OSYS, 0x07D6))
                        {
                            If (_OSI ("Windows 2006 SP1"))
                            {
                                Store (0x07D6, OSYS)
                            }
                            Else
                            {
                                If (_OSI ("Windows 2006 SP2"))
                                {
                                    Store (0x07D6, OSYS)
                                }
                            }
                        }
                    }
                }
            }

            Name (_BBN, Zero)
            OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
            Field (HBUS, DWordAcc, NoLock, Preserve)
            {
                EPEN,   1, 
                    ,   11, 
                EPBR,   20, 
                        Offset (0x08), 
                MHEN,   1, 
                    ,   13, 
                MHBR,   18, 
                        Offset (0x20), 
                PXEN,   1, 
                PXSZ,   2, 
                    ,   23, 
                PXBR,   6, 
                        Offset (0x28), 
                DIEN,   1, 
                    ,   11, 
                DIBR,   20, 
                        Offset (0x30), 
                IPEN,   1, 
                    ,   11, 
                IPBR,   20, 
                        Offset (0x50), 
                    ,   4, 
                PM0H,   2, 
                        Offset (0x51), 
                PM1L,   2, 
                    ,   2, 
                PM1H,   2, 
                        Offset (0x52), 
                PM2L,   2, 
                    ,   2, 
                PM2H,   2, 
                        Offset (0x53), 
                PM3L,   2, 
                    ,   2, 
                PM3H,   2, 
                        Offset (0x54), 
                PM4L,   2, 
                    ,   2, 
                PM4H,   2, 
                        Offset (0x55), 
                PM5L,   2, 
                    ,   2, 
                PM5H,   2, 
                        Offset (0x56), 
                PM6L,   2, 
                    ,   2, 
                PM6H,   2, 
                        Offset (0x57), 
                    ,   7, 
                HENA,   1, 
                        Offset (0x62), 
                TUUD,   16, 
                        Offset (0x70), 
                    ,   4, 
                TLUD,   12, 
                        Offset (0x89), 
                    ,   3, 
                GTSE,   1, 
                        Offset (0x8A)
            }

            OperationRegion (MCHT, SystemMemory, 0xFED11000, 0xFF)
            Field (MCHT, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x1E), 
                T0IS,   16, 
                        Offset (0x5E), 
                T1IS,   16, 
                        Offset (0xEF), 
                ESCS,   8
            }

            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
                    ,, _Y00, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C4000,         // Range Minimum
                    0x000C7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, _Y01, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C8000,         // Range Minimum
                    0x000CBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, _Y02, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000CC000,         // Range Minimum
                    0x000CFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, _Y03, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D0000,         // Range Minimum
                    0x000D3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, _Y04, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D4000,         // Range Minimum
                    0x000D7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, _Y05, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D8000,         // Range Minimum
                    0x000DBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, _Y06, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000DC000,         // Range Minimum
                    0x000DFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, _Y07, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E0000,         // Range Minimum
                    0x000E3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, _Y08, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E4000,         // Range Minimum
                    0x000E7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, _Y09, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E8000,         // Range Minimum
                    0x000EBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, _Y0A, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000EC000,         // Range Minimum
                    0x000EFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, _Y0B, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000F0000,         // Range Minimum
                    0x000FFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00010000,         // Length
                    ,, _Y0C, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0xFEBFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    ,, _Y0D, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFED40000,         // Range Minimum
                    0xFED44FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
            })
            Method (_CRS, 0, Serialized)
            {
                If (PM1L)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y00._LEN, C0LN)
                    Store (Zero, C0LN)
                }

                If (LEqual (PM1L, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y00._RW, C0RW)
                    Store (Zero, C0RW)
                }

                If (PM1H)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y01._LEN, C4LN)
                    Store (Zero, C4LN)
                }

                If (LEqual (PM1H, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y01._RW, C4RW)
                    Store (Zero, C4RW)
                }

                If (PM2L)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y02._LEN, C8LN)
                    Store (Zero, C8LN)
                }

                If (LEqual (PM2L, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y02._RW, C8RW)
                    Store (Zero, C8RW)
                }

                If (PM2H)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y03._LEN, CCLN)
                    Store (Zero, CCLN)
                }

                If (LEqual (PM2H, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y03._RW, CCRW)
                    Store (Zero, CCRW)
                }

                If (PM3L)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y04._LEN, D0LN)
                    Store (Zero, D0LN)
                }

                If (LEqual (PM3L, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y04._RW, D0RW)
                    Store (Zero, D0RW)
                }

                If (PM3H)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y05._LEN, D4LN)
                    Store (Zero, D4LN)
                }

                If (LEqual (PM3H, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y05._RW, D4RW)
                    Store (Zero, D4RW)
                }

                If (PM4L)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y06._LEN, D8LN)
                    Store (Zero, D8LN)
                }

                If (LEqual (PM4L, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y06._RW, D8RW)
                    Store (Zero, D8RW)
                }

                If (PM4H)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y07._LEN, DCLN)
                    Store (Zero, DCLN)
                }

                If (LEqual (PM4H, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y07._RW, DCRW)
                    Store (Zero, DCRW)
                }

                If (PM5L)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y08._LEN, E0LN)
                    Store (Zero, E0LN)
                }

                If (LEqual (PM5L, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y08._RW, E0RW)
                    Store (Zero, E0RW)
                }

                If (PM5H)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y09._LEN, E4LN)
                    Store (Zero, E4LN)
                }

                If (LEqual (PM5H, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y09._RW, E4RW)
                    Store (Zero, E4RW)
                }

                If (PM6L)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y0A._LEN, E8LN)
                    Store (Zero, E8LN)
                }

                If (LEqual (PM6L, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y0A._RW, E8RW)
                    Store (Zero, E8RW)
                }

                If (PM6H)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y0B._LEN, ECLN)
                    Store (Zero, ECLN)
                }

                If (LEqual (PM6H, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y0B._RW, ECRW)
                    Store (Zero, ECRW)
                }

                If (PM0H)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y0C._LEN, F0LN)
                    Store (Zero, F0LN)
                }

                If (LEqual (PM0H, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, F0RW)
                    Store (Zero, F0RW)
                }

                CreateDWordField (BUF0, \_SB.PCI0._Y0D._MIN, M1MN)
                CreateDWordField (BUF0, \_SB.PCI0._Y0D._MAX, M1MX)
                CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, M1LN)
                ShiftLeft (TLUD, 0x14, M1MN)
                Add (Subtract (M1MX, M1MN), One, M1LN)
                Return (BUF0)
            }

            Method (_PRT, 0, NotSerialized)
            {
                If (LEqual (GPIC, Zero))
                {
                    Return (Package (0x1B)
                    {
                        Package (0x04)
                        {
                            0x0001FFFF, 
                            Zero, 
                            ^LPC.LNKA, 
                            Zero
                        }, 

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

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

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

                        Package (0x04)
                        {
                            0x0002FFFF, 
                            Zero, 
                            ^LPC.LNKA, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x0003FFFF, 
                            Zero, 
                            ^LPC.LNKA, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x0003FFFF, 
                            One, 
                            ^LPC.LNKB, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x0003FFFF, 
                            0x02, 
                            ^LPC.LNKC, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x0003FFFF, 
                            0x03, 
                            ^LPC.LNKD, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x0019FFFF, 
                            Zero, 
                            ^LPC.LNKE, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x001AFFFF, 
                            Zero, 
                            ^LPC.LNKA, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x001AFFFF, 
                            One, 
                            ^LPC.LNKF, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x001AFFFF, 
                            0x02, 
                            ^LPC.LNKC, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x001AFFFF, 
                            0x03, 
                            ^LPC.LNKD, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x001BFFFF, 
                            Zero, 
                            ^LPC.LNKG, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x001CFFFF, 
                            Zero, 
                            ^LPC.LNKB, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x001CFFFF, 
                            One, 
                            ^LPC.LNKA, 
                            Zero
                        }, 

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

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

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            Zero, 
                            ^LPC.LNKH, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            One, 
                            ^LPC.LNKD, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x02, 
                            ^LPC.LNKC, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x03, 
                            ^LPC.LNKA, 
                            Zero
                        }, 

                        Package (0x04)
                        {
                            0x001FFFFF, 
                            Zero, 
                            ^LPC.LNKC, 
                            Zero
                        }, 

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

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

                        Package (0x04)
                        {
                            0x001FFFFF, 
                            0x03, 
                            ^LPC.LNKA, 
                            Zero
                        }
                    })
                }
                Else
                {
                    Return (Package (0x1B)
                    {
                        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)
                        {
                            0x0002FFFF, 
                            Zero, 
                            Zero, 
                            0x10
                        }, 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            Device (OVGA)
            {
                Name (_ADR, 0x00020000)
                Name (BCML, 0x64)
                Method (_STA, 0, NotSerialized)
                {
                    If (IGDS)
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Method (_DOS, 1, NotSerialized)
                {
                    Store (And (Arg0, 0x07), DSEN)
                }

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

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

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

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

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

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

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

                    If (LEqual (NDID, 0x03))
                    {
                        Name (TMP3, Package (0x03)
                        {
                            Ones, 
                            Ones, 
                            Ones
                        })
                        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)
                        {
                            Ones, 
                            Ones, 
                            Ones, 
                            Ones
                        })
                        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 (LGreater (NDID, 0x04))
                    {
                        Name (TMP5, Package (0x05)
                        {
                            Ones, 
                            Ones, 
                            Ones, 
                            Ones, 
                            Ones
                        })
                        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)
                    }

                    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)
                    {
                        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)
                    {
                        Return (CDDS (DID2))
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (NDDS (DID2))
                    }

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

                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)
                    {
                        Return (NDDS (DID3))
                    }

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

                    Name (BRLV, Package (0x0A)
                    {
                        0x5A, 
                        0x23, 
                        0x0A, 
                        0x19, 
                        0x23, 
                        0x32, 
                        0x3C, 
                        0x4B, 
                        0x5A, 
                        0x64
                    })
                    Method (_BCL, 0, NotSerialized)
                    {
                        Return (BRLV)
                    }

                    Method (_BQC, 0, Serialized)
                    {
                        Return (BCML)
                    }

                    Method (_BCM, 1, Serialized)
                    {
                        Acquire (MUTS, 0xFFFF)
                        Store (Arg0, BCML)
                        Store (SizeOf (BRLV), Local0)
                        While (Local0)
                        {
                            Decrement (Local0)
                            Store (DerefOf (Index (BRLV, Local0)), Local1)
                            If (LEqual (Arg0, Local1))
                            {
                                Break
                            }
                        }

                        Subtract (Local0, 0x02, Local0)
                        Store (Local0, BRTL)
                        OSMI (0xA2)
                        Release (MUTS)
                    }
                }

                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)
                    {
                        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)
                    {
                        Return (NDDS (DID5))
                    }

                    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)
                {
                    If (LEqual (CADL, And (Arg0, 0x0F0F)))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL2, And (Arg0, 0x0F0F)))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL3, And (Arg0, 0x0F0F)))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL4, And (Arg0, 0x0F0F)))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL5, And (Arg0, 0x0F0F)))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL6, And (Arg0, 0x0F0F)))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL7, And (Arg0, 0x0F0F)))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL8, And (Arg0, 0x0F0F)))
                    {
                        Return (0x1F)
                    }

                    Return (0x1D)
                }

                Method (NDDS, 1, NotSerialized)
                {
                    If (LEqual (NADL, And (Arg0, 0x0F0F)))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL2, And (Arg0, 0x0F0F)))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL3, And (Arg0, 0x0F0F)))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL4, And (Arg0, 0x0F0F)))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL5, And (Arg0, 0x0F0F)))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL6, And (Arg0, 0x0F0F)))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL7, And (Arg0, 0x0F0F)))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL8, And (Arg0, 0x0F0F)))
                    {
                        Return (One)
                    }

                    Return (Zero)
                }

                Method (STBL, 1, NotSerialized)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        Store (0x0400, NADL)
                        Store (Zero, NDL2)
                    }

                    If (LEqual (CADL, 0x0100))
                    {
                        If (LEqual (CAL2, Zero))
                        {
                            Store (0x0400, NADL)
                            Store (Zero, NDL2)
                        }
                    }

                    If (LEqual (CADL, 0x0400))
                    {
                        If (LEqual (CAL2, 0x0100))
                        {
                            Store (0x0100, NADL)
                            Store (Zero, NDL2)
                        }
                    }

                    If (LEqual (CADL, 0x03))
                    {
                        Store (0x0400, NADL)
                        Store (0x0200, NDL2)
                    }

                    If (LEqual (CADL, 0x0400))
                    {
                        If (LEqual (CAL2, Zero))
                        {
                            Store (0x0100, NADL)
                            Store (0x0400, NDL2)
                        }
                    }
                }

                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 (0xB5), 
                    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, 
                    BCLM,   320, 
                    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))
                        {
                            Acquire (MUTS, 0xFFFF)
                            OSMI (0x56)
                            Store (PRM1, PARM)
                            Store (Zero, GESF)
                            Release (MUTS)
                            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 (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))
                        {
                            Acquire (MUTS, 0xFFFF)
                            Store (PARM, PRM0)
                            OSMI (0x57)
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Release (MUTS)
                            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 (OVGA, Arg1)
                        }
                    }

                    Notify (OVGA, 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 (Zero, LBPC)
                    Return (Zero)
                }

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

                    Return (Zero)
                }
            }

            Device (P32)
            {
                Name (_ADR, 0x001E0000)
                Method (_PRW, 0, NotSerialized)
                {
                    If (LEqual (WKPM, One))
                    {
                        Return (Package (0x02)
                        {
                            0x0B, 
                            0x04
                        })
                    }
                    Else
                    {
                        Return (Package (0x02)
                        {
                            0x0B, 
                            Zero
                        })
                    }
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (LEqual (GPIC, Zero))
                    {
                        Return (Package (0x01)
                        {
                            Package (0x04)
                            {
                                0x0006FFFF, 
                                Zero, 
                                ^^LPC.LNKC, 
                                Zero
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x01)
                        {
                            Package (0x04)
                            {
                                0x0006FFFF, 
                                Zero, 
                                Zero, 
                                0x12
                            }
                        })
                    }
                }
            }

            Device (LPC)
            {
                Name (_ADR, 0x001F0000)
                OperationRegion (PRR0, PCI_Config, 0x60, 0x04)
                Field (PRR0, AnyAcc, NoLock, Preserve)
                {
                    PIRA,   8, 
                    PIRB,   8, 
                    PIRC,   8, 
                    PIRD,   8
                }

                OperationRegion (PRR1, PCI_Config, 0x68, 0x04)
                Field (PRR1, AnyAcc, NoLock, Preserve)
                {
                    PIRE,   8, 
                    PIRF,   8, 
                    PIRG,   8, 
                    PIRH,   8
                }

                OperationRegion (PRR2, PCI_Config, 0x80, 0x02)
                Field (PRR2, AnyAcc, NoLock, Preserve)
                {
                    IODL,   8, 
                    IODH,   8
                }

                Device (LNKA)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, One)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRA, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRA, 0x80, PIRA)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {0}
                        })
                        CreateWordField (BUF0, One, IRQW)
                        If (And (PIRA, 0x80))
                        {
                            Store (Zero, Local0)
                        }
                        Else
                        {
                            Store (One, Local0)
                        }

                        ShiftLeft (Local0, And (PIRA, 0x0F), IRQW)
                        Return (BUF0)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {3,4,5,7,9,10,11,12}
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, One, IRQW)
                        FindSetRightBit (IRQW, Local0)
                        If (LNotEqual (IRQW, Zero))
                        {
                            And (Local0, 0x7F, Local0)
                            Decrement (Local0)
                        }
                        Else
                        {
                            Or (Local0, 0x80, Local0)
                        }

                        Store (Local0, PIRA)
                    }
                }

                Device (LNKB)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x02)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRB, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRB, 0x80, PIRB)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {0}
                        })
                        CreateWordField (BUF0, One, IRQW)
                        If (And (PIRB, 0x80))
                        {
                            Store (Zero, Local0)
                        }
                        Else
                        {
                            Store (One, Local0)
                        }

                        ShiftLeft (Local0, And (PIRB, 0x0F), IRQW)
                        Return (BUF0)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {3,4,5,7,9,10,11,12}
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, One, IRQW)
                        FindSetRightBit (IRQW, Local0)
                        If (LNotEqual (IRQW, Zero))
                        {
                            And (Local0, 0x7F, Local0)
                            Decrement (Local0)
                        }
                        Else
                        {
                            Or (Local0, 0x80, Local0)
                        }

                        Store (Local0, PIRB)
                    }
                }

                Device (LNKC)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x03)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRC, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRC, 0x80, PIRC)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {0}
                        })
                        CreateWordField (BUF0, One, IRQW)
                        If (And (PIRC, 0x80))
                        {
                            Store (Zero, Local0)
                        }
                        Else
                        {
                            Store (One, Local0)
                        }

                        ShiftLeft (Local0, And (PIRC, 0x0F), IRQW)
                        Return (BUF0)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {3,4,5,7,9,10,11,12}
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, One, IRQW)
                        FindSetRightBit (IRQW, Local0)
                        If (LNotEqual (IRQW, Zero))
                        {
                            And (Local0, 0x7F, Local0)
                            Decrement (Local0)
                        }
                        Else
                        {
                            Or (Local0, 0x80, Local0)
                        }

                        Store (Local0, PIRC)
                    }
                }

                Device (LNKD)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x04)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRD, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRD, 0x80, PIRD)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {0}
                        })
                        CreateWordField (BUF0, One, IRQW)
                        If (And (PIRD, 0x80))
                        {
                            Store (Zero, Local0)
                        }
                        Else
                        {
                            Store (One, Local0)
                        }

                        ShiftLeft (Local0, And (PIRD, 0x0F), IRQW)
                        Return (BUF0)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {3,4,5,7,9,10,11,12}
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, One, IRQW)
                        FindSetRightBit (IRQW, Local0)
                        If (LNotEqual (IRQW, Zero))
                        {
                            And (Local0, 0x7F, Local0)
                            Decrement (Local0)
                        }
                        Else
                        {
                            Or (Local0, 0x80, Local0)
                        }

                        Store (Local0, PIRD)
                    }
                }

                Device (LNKE)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x05)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRE, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRE, 0x80, PIRE)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {0}
                        })
                        CreateWordField (BUF0, One, IRQW)
                        If (And (PIRE, 0x80))
                        {
                            Store (Zero, Local0)
                        }
                        Else
                        {
                            Store (One, Local0)
                        }

                        ShiftLeft (Local0, And (PIRE, 0x0F), IRQW)
                        Return (BUF0)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {3,4,5,7,9,10,11,12}
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, One, IRQW)
                        FindSetRightBit (IRQW, Local0)
                        If (LNotEqual (IRQW, Zero))
                        {
                            And (Local0, 0x7F, Local0)
                            Decrement (Local0)
                        }
                        Else
                        {
                            Or (Local0, 0x80, Local0)
                        }

                        Store (Local0, PIRE)
                    }
                }

                Device (LNKF)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x06)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRF, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRF, 0x80, PIRF)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {0}
                        })
                        CreateWordField (BUF0, One, IRQW)
                        If (And (PIRF, 0x80))
                        {
                            Store (Zero, Local0)
                        }
                        Else
                        {
                            Store (One, Local0)
                        }

                        ShiftLeft (Local0, And (PIRF, 0x0F), IRQW)
                        Return (BUF0)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {3,4,5,7,9,10,11,12}
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, One, IRQW)
                        FindSetRightBit (IRQW, Local0)
                        If (LNotEqual (IRQW, Zero))
                        {
                            And (Local0, 0x7F, Local0)
                            Decrement (Local0)
                        }
                        Else
                        {
                            Or (Local0, 0x80, Local0)
                        }

                        Store (Local0, PIRF)
                    }
                }

                Device (LNKG)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x07)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRG, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRG, 0x80, PIRG)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {0}
                        })
                        CreateWordField (BUF0, One, IRQW)
                        If (And (PIRG, 0x80))
                        {
                            Store (Zero, Local0)
                        }
                        Else
                        {
                            Store (One, Local0)
                        }

                        ShiftLeft (Local0, And (PIRG, 0x0F), IRQW)
                        Return (BUF0)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {3,4,5,7,9,10,11,12}
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, One, IRQW)
                        FindSetRightBit (IRQW, Local0)
                        If (LNotEqual (IRQW, Zero))
                        {
                            And (Local0, 0x7F, Local0)
                            Decrement (Local0)
                        }
                        Else
                        {
                            Or (Local0, 0x80, Local0)
                        }

                        Store (Local0, PIRG)
                    }
                }

                Device (LNKH)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x08)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRH, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRH, 0x80, PIRH)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {0}
                        })
                        CreateWordField (BUF0, One, IRQW)
                        If (And (PIRH, 0x80))
                        {
                            Store (Zero, Local0)
                        }
                        Else
                        {
                            Store (One, Local0)
                        }

                        ShiftLeft (Local0, And (PIRH, 0x0F), IRQW)
                        Return (BUF0)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {3,4,5,7,9,10,11,12}
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, One, IRQW)
                        FindSetRightBit (IRQW, Local0)
                        If (LNotEqual (IRQW, Zero))
                        {
                            And (Local0, 0x7F, Local0)
                            Decrement (Local0)
                        }
                        Else
                        {
                            Or (Local0, 0x80, Local0)
                        }

                        Store (Local0, PIRH)
                    }
                }

                Device (SYSR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    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,
                            0x164E,             // Range Minimum
                            0x164E,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0061,             // Range Minimum
                            0x0061,             // 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,
                            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,
                            0x0800,             // Range Minimum
                            0x0800,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0810,             // Range Minimum
                            0x0810,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IO (Decode16,
                            0x0820,             // Range Minimum
                            0x0820,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IO (Decode16,
                            0x0400,             // Range Minimum
                            0x0400,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                        IO (Decode16,
                            0x0500,             // Range Minimum
                            0x0500,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                        IO (Decode16,
                            0x0580,             // Range Minimum
                            0x0580,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                        IO (Decode16,
                            0x0600,             // Range Minimum
                            0x0600,             // Range Maximum
                            0x01,               // Alignment
                            0x28,               // Length
                            )
                        IO (Decode16,
                            0x0068,             // Range Minimum
                            0x0068,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x006C,             // Range Minimum
                            0x006C,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        Memory32Fixed (ReadWrite,
                            0xF8000000,         // Address Base
                            0x04000000,         // Address Length
                            )
                        Memory32Fixed (ReadWrite,
                            0xFED1C000,         // Address Base
                            0x00004000,         // Address Length
                            )
                        Memory32Fixed (ReadWrite,
                            0xFED10000,         // Address Base
                            0x00004000,         // Address Length
                            )
                        Memory32Fixed (ReadWrite,
                            0xFED18000,         // Address Base
                            0x00001000,         // Address Length
                            )
                        Memory32Fixed (ReadWrite,
                            0xFED19000,         // Address Base
                            0x00001000,         // Address Length
                            )
                        Memory32Fixed (ReadWrite,
                            0xFEC00000,         // Address Base
                            0x00001000,         // Address Length
                            )
                        Memory32Fixed (ReadWrite,
                            0xFED20000,         // Address Base
                            0x00070000,         // Address Length
                            )
                        Memory32Fixed (ReadWrite,
                            0xFEE00000,         // Address Base
                            0x00001000,         // Address Length
                            )
                        Memory32Fixed (ReadOnly,
                            0xFF800000,         // Address Base
                            0x00800000,         // Address Length
                            )
                    })
                }

                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 (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        If (LEqual (HPTS, One))
                        {
                            Return (BUF0)
                        }
                        Else
                        {
                            Return (BUF1)
                        }
                    }
                }

                Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {0}
                        IRQNoFlags ()
                            {8}
                        Memory32Fixed (ReadOnly,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            _Y0E)
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSYS, 0x07D1))
                        {
                            If (LEqual (HPTS, One))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                        Else
                        {
                            If (HPTS)
                            {
                                Return (0x0B)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }

                    Method (_CRS, 0, Serialized)
                    {
                        If (LEqual (HPTS, One))
                        {
                            CreateDWordField (BUF0, \_SB.PCI0.LPC.HPET._Y0E._BAS, HPT0)
                            If (LEqual (HPTA, One))
                            {
                                Store (0xFED01000, HPT0)
                            }

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

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

                        Return (BUF0)
                    }
                }

                Device (PIC)
                {
                    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 (FPU)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x00F0,             // Range Minimum
                            0x00F0,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {13}
                    })
                }

                Device (TIMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (BUF0, 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
                            )
                    })
                    Name (BUF1, 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}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        If (HPTS)
                        {
                            Return (BUF0)
                        }

                        Return (BUF1)
                    }
                }

                Device (KBC)
                {
                    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}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }
                }

                Device (MOUE)
                {
                    Method (_HID, 0, NotSerialized)
                    {
                        If (LEqual (TPID, One))
                        {
                            Return (0x130FD041)
                        }

                        Return (0x13192E4F)
                    }

                    Name (_CID, Package (0x03)
                    {
                        EisaId ("SYN1900"), 
                        EisaId ("SYN0002"), 
                        EisaId ("PNP0F13")
                    })
                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQ (Edge, ActiveHigh, Exclusive, )
                            {12}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (PTDV)
                        {
                            Return (0x0F)
                        }

                        Return (Zero)
                    }
                }

                Device (WCIR)
                {
                    Method (_STA, 0, NotSerialized)
                    {
                        If (GP29)
                        {
                            If (ICIR)
                            {
                                Return (0x0F)
                            }
                        }

                        Return (Zero)
                    }

                    Method (_HID, 0, NotSerialized)
                    {
                        If (LLess (OSYS, 0x07D6))
                        {
                            Return (0x2310A35C)
                        }

                        Return (0x2010A35C)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0620,             // Range Minimum
                            0x0620,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IO (Decode16,
                            0x0600,             // Range Minimum
                            0x0600,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                        IRQ (Edge, ActiveHigh, Exclusive, )
                            {4}
                    })
                }

                Device (EC0)
                {
                    Name (_HID, EisaId ("PNP0C09"))
                    Name (_GPE, 0x16)
                    Name (ECOK, Zero)
                    Name (SATC, Zero)
                    Method (_REG, 2, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x03))
                        {
                            If (LEqual (Arg1, One))
                            {
                                Store (One, ECOK)
                                Store (KSST, Local0)
                                Notify (ADP0, Zero)
                                Notify (BAT0, 0x80)
                                Acquire (MUTS, 0xFFFF)
                                FLNK (0xFF, 0x22)
                                If (LGreater (OSYS, 0x07D5))
                                {
                                    WREC (0xDB, One, Zero, One)
                                    FLNK (0x14, One)
                                    Store (One, HKEM)
                                    WREC (0xDB, 0x10, 0x04, One)
                                    Store (One, HSEM)
                                    WREC (0xDB, 0x20, 0x05, One)
                                    If (LNotEqual (EVCT, Zero))
                                    {
                                        FLNK (0x11, EVCT)
                                        Store (And (KYB0, 0xFF), HSWK)
                                        Store (Zero, KYB0)
                                    }

                                    FLNK (0x10, One)
                                    FLNK (0x15, 0xFF)
                                }
                                Else
                                {
                                    WREC (0xDB, One, Zero, Zero)
                                    FLNK (0x15, 0xFF)
                                }

                                Release (MUTS)
                                _Q41 ()
                            }
                            Else
                            {
                                Store (Zero, ECOK)
                            }
                        }

                        Acquire (MUTS, 0xFFFF)
                        FLNK (0x30, Zero)
                        Release (MUTS)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0062,             // Range Minimum
                            0x0062,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0066,             // Range Minimum
                            0x0066,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                    })
                    OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
                    Field (ERAM, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x90), 
                                Offset (0x91), 
                                Offset (0x92), 
                        LIDE,   1, 
                        DOCK,   1, 
                        FNST,   1, 
                        ACST,   1, 
                            ,   1, 
                            ,   1, 
                            ,   1, 
                                Offset (0x93), 
                        SMIE,   1, 
                        WLST,   1, 
                        BTRT,   1, 
                        WLIF,   1, 
                        KSST,   1, 
                        BTST,   1, 
                        BION,   1, 
                        BTON,   1, 
                        B1EX,   1, 
                            ,   3, 
                        B1CG,   1, 
                                Offset (0x95), 
                        B1DC,   1, 
                            ,   3, 
                        B1CF,   1, 
                                Offset (0x96), 
                        L1B1,   1, 
                            ,   3, 
                        L1B2,   1, 
                                Offset (0x97), 
                        CPTO,   8, 
                                Offset (0x99), 
                        BL1P,   7, 
                                Offset (0x9A), 
                        BL2P,   7, 
                                Offset (0x9B), 
                                Offset (0x9C), 
                        CCTV,   8, 
                        CCLT,   8, 
                        CCHT,   8, 
                        CCST,   8, 
                        CFAS,   8, 
                                Offset (0xA2), 
                        WKSV,   8, 
                        BNDT,   8, 
                        B1PT,   8, 
                                Offset (0xA7), 
                        BLEC,   1, 
                                Offset (0xA8), 
                        B1RL,   8, 
                        B1RH,   8, 
                        B1FL,   8, 
                        B1FH,   8, 
                        B1DL,   8, 
                        B1DH,   8, 
                        B1VL,   8, 
                        B1VH,   8, 
                                Offset (0xB4), 
                        OTCD,   8, 
                                Offset (0xB6), 
                        WKLD,   1, 
                        WKKY,   1, 
                        WKLN,   1, 
                                Offset (0xB8), 
                            ,   1, 
                        SWI4,   1, 
                        SDPF,   1, 
                                Offset (0xB9), 
                        B1SL,   8, 
                        B1SH,   8, 
                        POHV,   8, 
                                Offset (0xBD), 
                        B1PL,   8, 
                        B1PH,   8, 
                                Offset (0xC1), 
                        THOF,   8, 
                        THON,   8, 
                        VFON,   8, 
                        VFOF,   8, 
                        BPRL,   8, 
                        BPRH,   8, 
                                Offset (0xC8), 
                        BUT0,   1, 
                        BUT1,   1, 
                        BUT2,   1, 
                        BUT3,   1, 
                        BUT4,   1, 
                        BUT5,   1, 
                            ,   1, 
                                Offset (0xC9), 
                        BU0W,   1, 
                        BU1W,   1, 
                        BU2W,   1, 
                        BU3W,   1, 
                        BU4W,   1, 
                        BU5W,   1, 
                            ,   1, 
                                Offset (0xCA), 
                        PDSE,   8, 
                        VGAL,   8, 
                        ECTR,   8, 
                                Offset (0xCF), 
                        VGAR,   8, 
                                Offset (0xD1), 
                        VGAS,   8, 
                                Offset (0xD7), 
                        CPUT,   8, 
                                Offset (0xD9), 
                        PANT,   8, 
                                Offset (0xDB), 
                        VKEY,   1, 
                            ,   3, 
                        KEMU,   1, 
                        HEMU,   1, 
                                Offset (0xDF), 
                        BCEL,   8, 
                                Offset (0xE3), 
                        CCIR,   1
                    }

                    Method (_Q11, 0, NotSerialized)
                    {
                        Store (0x11, P80H)
                        Acquire (MUTS, 0xFFFF)
                        OSMI (0xC2)
                        Release (MUTS)
                        Notify (\_TZ.THRM, 0x81)
                    }

                    Method (_Q13, 0, NotSerialized)
                    {
                        Store (0x13, P80H)
                        Notify (ADP0, Zero)
                        Notify (BAT0, 0x80)
                        Notify (BAT0, 0x81)
                    }

                    Method (_Q14, 0, NotSerialized)
                    {
                        Notify (LID0, 0x80)
                    }

                    Method (_Q19, 0, NotSerialized)
                    {
                        Store (0x19, P80H)
                        Notify (ADP0, Zero)
                        Notify (BAT0, 0x80)
                        Notify (BAT0, 0x81)
                    }

                    Method (_Q25, 0, NotSerialized)
                    {
                        If (IGDS)
                        {
                            If (^^^PEGP.VGA.DOSA)
                            {
                                Acquire (MUTS, 0xFFFF)
                                OSMI (0xA7)
                                Release (MUTS)
                                ^^^PEGP.VGA.UDCS ()
                            }
                            Else
                            {
                                ^^^PEGP.VGA.UDCS ()
                                Notify (^^^PEGP.VGA, 0x80)
                            }

                            ^^^PEGP.VGA.UDGS ()
                        }
                        Else
                        {
                            If (DSEN)
                            {
                                Acquire (MUTS, 0xFFFF)
                                OSMI (0xA8)
                                Increment (NSTE)
                                If (LGreater (NSTE, 0x04))
                                {
                                    Store (Zero, NSTE)
                                }

                                OSMI (0xA7)
                                Release (MUTS)
                            }
                            Else
                            {
                                ^^^OVGA.STBL (One)
                                ^^^OVGA.GHDS (One)
                            }
                        }
                    }

                    Method (_Q26, 0, NotSerialized)
                    {
                        If (IGDS)
                        {
                            Store (Zero, ^^^PEGP.VGA.CRT._DGS)
                            Store (One, ^^^PEGP.VGA.LCD._DGS)
                            Store (Zero, ^^^PEGP.VGA.TV._DGS)
                            Store (Zero, ^^^PEGP.VGA.CSTT)
                            Notify (^^^PEGP.VGA, 0x80)
                        }
                        Else
                        {
                            If (DSEN)
                            {
                                Acquire (MUTS, 0xFFFF)
                                Store (Zero, NSTE)
                                OSMI (0xA7)
                                Release (MUTS)
                            }
                            Else
                            {
                                If (LLess (OSYS, 0x07D6))
                                {
                                    ^^^OVGA.STBL (Zero)
                                    ^^^OVGA.GHDS (One)
                                }
                                Else
                                {
                                    ^^^OVGA.GHDS (0x02)
                                }
                            }
                        }
                    }

                    Method (_Q27, 0, NotSerialized)
                    {
                    }

                    Method (_Q28, 0, NotSerialized)
                    {
                        If (ECOK)
                        {
                            If (LEqual (And (EC93, 0x30), 0x30))
                            {
                                WREC (0x93, 0x80, 0x07, One)
                                WREC (0x93, 0x40, 0x06, One)
                                Store (One, BTRS)
                            }
                        }

                        Notify (BT, Zero)
                    }

                    Method (_Q29, 0, NotSerialized)
                    {
                        If (ECOK)
                        {
                            If (LEqual (And (EC93, 0x30), 0x30))
                            {
                                WREC (0x93, 0x80, 0x07, Zero)
                                WREC (0x93, 0x40, 0x06, Zero)
                                Store (Zero, BTRS)
                            }
                        }

                        Notify (BT, Zero)
                    }

                    Method (_Q31, 0, NotSerialized)
                    {
                        Acquire (MUTS, 0xFFFF)
                        If (LLess (OSYS, 0x07D6))
                        {
                            If (LEqual (THRF, Zero))
                            {
                                Store (Zero, PRM0)
                            }
                            Else
                            {
                                Store (One, PRM0)
                            }

                            OSMI (0xC0)
                        }
                        Else
                        {
                            If (LEqual (THRF, Zero))
                            {
                                Store (Zero, THDT)
                            }
                            Else
                            {
                                Store (0x18, THDT)
                            }
                        }

                        Release (MUTS)
                        Notify (\_TZ.THRM, 0x81)
                    }

                    Method (_Q32, 0, NotSerialized)
                    {
                    }

                    Method (_Q33, 0, NotSerialized)
                    {
                    }

                    Method (_Q34, 0, NotSerialized)
                    {
                    }

                    Method (_Q40, 0, NotSerialized)
                    {
                        Acquire (MUTS, 0xFFFF)
                        OSMI (0xC1)
                        Release (MUTS)
                        Notify (\_TZ.THRM, 0x81)
                    }

                    Method (_Q41, 0, NotSerialized)
                    {
                        Store (And (CPUS, 0x80), Local0)
                        Store (And (CPUS, 0x7F), Local1)
                        If (LEqual (Local0, Zero))
                        {
                            If (LEqual (THRF, Zero))
                            {
                                Store (CPUL, ACPS)
                            }
                            Else
                            {
                                Decrement (Local1)
                                Store (Local1, ACPS)
                            }
                        }

                        Notify (\_PR.CPU0, 0x80)
                        Sleep (0x64)
                        Notify (\_PR.CPU1, 0x80)
                    }

                    Method (CMRC, 0, Serialized)
                    {
                        Store (Ones, CMR1)
                        Store (Ones, CMR2)
                        Store (Ones, CMR3)
                        Store (Ones, CMR4)
                        Store (Ones, CMR5)
                    }

                    Method (CMWC, 0, Serialized)
                    {
                        Store (Ones, CMW1)
                        Store (Ones, CMW2)
                        Store (Ones, CMW3)
                        Store (Ones, CMW4)
                        Store (Ones, CMW5)
                    }

                    Method (CMRR, 0, Serialized)
                    {
                        Store (CMR1, CEC1)
                        Store (CMR2, CEC2)
                        Store (CMR3, CEC3)
                        Store (CMR4, CEC4)
                        Store (CMR5, CEC5)
                        CMRC ()
                    }

                    Method (CECR, 0, Serialized)
                    {
                        If (LEqual (CMR1, Ones))
                        {
                            If (LEqual (CMR2, Ones))
                            {
                                If (LEqual (CMR3, Ones))
                                {
                                    If (LEqual (CMR4, Ones))
                                    {
                                        If (LEqual (CMR5, Ones))
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                        }

                        Return (One)
                    }

                    Method (_Q50, 0, NotSerialized)
                    {
                        If (TSBK)
                        {
                            Acquire (MUTS, 0xFFFF)
                            Store (0x1581, CECI)
                            FLNK (0xFF, 0x05)
                            Release (MUTS)
                            Notify (VALZ, 0x80)
                        }
                    }

                    Method (_Q51, 0, NotSerialized)
                    {
                        If (TSBK)
                        {
                            Acquire (MUTS, 0xFFFF)
                            Store (0x1580, CECI)
                            FLNK (0xFF, 0x05)
                            Release (MUTS)
                            Notify (VALZ, 0x80)
                        }
                    }

                    Method (_Q52, 0, NotSerialized)
                    {
                        If (TSBK)
                        {
                            Acquire (MUTS, 0xFFFF)
                            If (LEqual (CECR (), One))
                            {
                                CMRR ()
                                FLNK (0xFF, 0x06)
                                Store (0x1500, CECI)
                                FLNK (0xFF, 0x05)
                                Release (MUTS)
                                Notify (VALZ, 0x80)
                            }
                            Else
                            {
                                Release (MUTS)
                            }
                        }
                    }

                    Method (_Q53, 0, NotSerialized)
                    {
                        If (TSBK)
                        {
                            Acquire (MUTS, 0xFFFF)
                            If (LEqual (CECR (), One))
                            {
                                CMRR ()
                                FLNK (0xFF, 0x07)
                                Store (0x1501, CECI)
                                FLNK (0xFF, 0x05)
                                Release (MUTS)
                                Notify (VALZ, 0x80)
                            }
                            Else
                            {
                                Release (MUTS)
                            }
                        }
                    }

                    Method (_Q54, 0, NotSerialized)
                    {
                        If (TSBK)
                        {
                            Acquire (MUTS, 0xFFFF)
                            If (LEqual (CECR (), One))
                            {
                                CMRR ()
                                FLNK (0xFF, 0x08)
                                Store (0x1502, CECI)
                                FLNK (0xFF, 0x05)
                                Release (MUTS)
                                Notify (VALZ, 0x80)
                            }
                            Else
                            {
                                Release (MUTS)
                            }
                        }
                    }

                    Method (_Q55, 0, NotSerialized)
                    {
                        If (TSBK)
                        {
                            Acquire (MUTS, 0xFFFF)
                            If (LEqual (CECR (), One))
                            {
                                Add (And (CMR1, 0xFF), 0x1400, CECI)
                                And (CECI, 0xFF, CECZ)
                                FLNK (0xFF, 0x05)
                                CMRC ()
                                Release (MUTS)
                                Notify (VALZ, 0x80)
                            }
                            Else
                            {
                                Release (MUTS)
                            }
                        }
                    }

                    Method (_Q56, 0, NotSerialized)
                    {
                        If (TSBK)
                        {
                            Acquire (MUTS, 0xFFFF)
                            If (LEqual (CECR (), One))
                            {
                                Add (And (CMR1, 0xFF), 0x1600, CECI)
                                FLNK (0xFF, 0x05)
                                CMRC ()
                                Release (MUTS)
                                Notify (VALZ, 0x80)
                            }
                            Else
                            {
                                Release (MUTS)
                            }
                        }
                    }

                    Method (_Q59, 0, NotSerialized)
                    {
                        Acquire (MUTS, 0xFFFF)
                        FLNK (0x16, 0xFB)
                        Release (MUTS)
                    }

                    Method (_Q60, 0, NotSerialized)
                    {
                        If (LLess (OSYS, 0x07D6))
                        {
                            Notify (FWEX, 0x80)
                        }
                        Else
                        {
                            If (TSBK)
                            {
                                Notify (VALZ, 0x80)
                            }
                            Else
                            {
                                If (LNotEqual (EVCT, Zero))
                                {
                                    Acquire (MUTS, 0xFFFF)
                                    FLNK (0x11, EVCT)
                                    Store (And (KYB0, 0xFF), Local0)
                                    Store (Zero, KYB0)
                                    Release (MUTS)
                                }
                            }
                        }
                    }

                    Method (_Q61, 0, NotSerialized)
                    {
                        Notify (HSB1, 0x80)
                    }

                    Method (_Q62, 0, NotSerialized)
                    {
                        Notify (HSB2, 0x80)
                    }

                    Method (_Q63, 0, NotSerialized)
                    {
                        If (IGDS)
                        {
                            Notify (^^^PEGP.VGA.LCD, 0x87)
                        }
                        Else
                        {
                            Notify (^^^OVGA.DD03, 0x87)
                        }
                    }

                    Method (_Q64, 0, NotSerialized)
                    {
                        If (IGDS)
                        {
                            Notify (^^^PEGP.VGA.LCD, 0x86)
                        }
                        Else
                        {
                            Notify (^^^OVGA.DD03, 0x86)
                        }
                    }

                    Method (_Q71, 0, NotSerialized)
                    {
                        Acquire (MUTS, 0xFFFF)
                        OSMI (0xFD)
                        Release (MUTS)
                    }

                    Method (_Q80, 0, NotSerialized)
                    {
                        If (Not (GP39))
                        {
                            Acquire (MUTS, 0xFFFF)
                            Store (0x80, APMD)
                            Store (0xBE, APMC)
                            Release (MUTS)
                        }
                    }

                    Method (_Q81, 0, NotSerialized)
                    {
                        If (Not (GP39))
                        {
                            Acquire (MUTS, 0xFFFF)
                            Store (0x81, APMD)
                            Store (0xBE, APMC)
                            Release (MUTS)
                        }
                    }

                    Method (_Q98, 0, NotSerialized)
                    {
                        If (ECOK)
                        {
                            If (LLess (SATC, 0x05))
                            {
                                If (SCFG)
                                {
                                    FLNK (0xFF, 0x31)
                                }

                                Increment (SATC)
                                WREC (0xD4, 0xFF, Zero, 0x1E)
                            }
                        }
                    }
                }
            }

            Device (UHC1)
            {
                Name (_ADR, 0x001D0000)
                Name (_PRW, Package (0x02)
                {
                    0x03, 
                    0x03
                })
                OperationRegion (USBR, PCI_Config, 0xC4, One)
                Field (USBR, AnyAcc, NoLock, Preserve)
                {
                    URES,   8
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        Store (Zero, URES)
                    }

                    If (LEqual (Arg0, One))
                    {
                        Store (0x03, URES)
                    }
                }
            }

            Device (UHC2)
            {
                Name (_ADR, 0x001D0001)
                Name (_PRW, Package (0x02)
                {
                    0x04, 
                    0x03
                })
                OperationRegion (USBR, PCI_Config, 0xC4, One)
                Field (USBR, AnyAcc, NoLock, Preserve)
                {
                    URES,   8
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        Store (Zero, URES)
                    }

                    If (LEqual (Arg0, One))
                    {
                        Store (0x03, URES)
                    }
                }
            }

            Device (UHC3)
            {
                Name (_ADR, 0x001D0002)
                OperationRegion (USBR, PCI_Config, 0xC4, One)
                Field (USBR, AnyAcc, NoLock, Preserve)
                {
                    URES,   8
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        Store (Zero, URES)
                    }

                    If (LEqual (Arg0, One))
                    {
                        Store (0x03, URES)
                    }
                }
            }

            Device (UHC4)
            {
                Name (_ADR, 0x001A0000)
                OperationRegion (USBR, PCI_Config, 0xC4, One)
                Field (USBR, AnyAcc, NoLock, Preserve)
                {
                    URES,   8
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        Store (Zero, URES)
                    }

                    If (LEqual (Arg0, One))
                    {
                        Store (0x03, URES)
                    }
                }
            }

            Device (UHC5)
            {
                Name (_ADR, 0x001A0001)
                OperationRegion (USBR, PCI_Config, 0xC4, One)
                Field (USBR, AnyAcc, NoLock, Preserve)
                {
                    URES,   8
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        Store (Zero, URES)
                    }

                    If (LEqual (Arg0, One))
                    {
                        Store (0x03, URES)
                    }
                }
            }

            Device (ECHI)
            {
                Name (_ADR, 0x001D0007)
                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
                OperationRegion (USBR, PCI_Config, 0xC4, One)
                Field (USBR, AnyAcc, NoLock, Preserve)
                {
                    URES,   8
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        Store (Zero, URES)
                    }

                    If (LEqual (Arg0, One))
                    {
                        Store (0x03, URES)
                    }
                }
            }

            Device (EHII)
            {
                Name (_ADR, 0x001A0007)
                OperationRegion (USBR, PCI_Config, 0xC4, One)
                Field (USBR, AnyAcc, NoLock, Preserve)
                {
                    URES,   8
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        Store (Zero, URES)
                    }

                    If (LEqual (Arg0, One))
                    {
                        Store (0x03, URES)
                    }
                }
            }

            Device (EXP1)
            {
                Name (_ADR, 0x001C0000)
                OperationRegion (P1CS, PCI_Config, 0x40, 0x0100)
                Field (P1CS, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x10), 
                        ,   4, 
                    LKD1,   1, 
                            Offset (0x1A), 
                    ABP1,   1, 
                        ,   2, 
                    PDC1,   1, 
                        ,   2, 
                    PDS1,   1, 
                            Offset (0x20), 
                    RID1,   16, 
                    PSP1,   1, 
                    PPP1,   1, 
                            Offset (0x9C), 
                        ,   30, 
                    HPCS,   1, 
                    PMCS,   1
                }

                Device (PXS1)
                {
                    Name (_ADR, Zero)
                }

                Method (_PRW, 0, NotSerialized)
                {
                    If (WKOL)
                    {
                        Return (Package (0x02)
                        {
                            0x09, 
                            0x04
                        })
                    }

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

                Method (_PRT, 0, NotSerialized)
                {
                    If (LEqual (GPIC, Zero))
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                Zero, 
                                ^^LPC.LNKA, 
                                Zero
                            }, 

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

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

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x03, 
                                ^^LPC.LNKD, 
                                Zero
                            }
                        })
                    }
                    Else
                    {
                        Return (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
                            }
                        })
                    }
                }
            }

            Device (EXP2)
            {
                Name (_ADR, 0x001C0001)
                OperationRegion (P2CS, PCI_Config, 0x40, 0x0100)
                Field (P2CS, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x10), 
                        ,   4, 
                    LKD2,   1, 
                            Offset (0x1A), 
                    ABP2,   1, 
                        ,   2, 
                    PDC2,   1, 
                        ,   2, 
                    PDS2,   1, 
                            Offset (0x20), 
                    RID2,   16, 
                    PSP2,   1, 
                    PPP2,   1, 
                            Offset (0x9C), 
                        ,   30, 
                    HPCS,   1, 
                    PMCS,   1
                }

                Device (PXS2)
                {
                    Name (_ADR, Zero)
                }

                Method (_PRW, 0, NotSerialized)
                {
                    If (WOWL)
                    {
                        Return (Package (0x02)
                        {
                            0x09, 
                            0x04
                        })
                    }

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

                Method (_PRT, 0, NotSerialized)
                {
                    If (LEqual (GPIC, Zero))
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                Zero, 
                                ^^LPC.LNKB, 
                                Zero
                            }, 

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

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

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x03, 
                                ^^LPC.LNKA, 
                                Zero
                            }
                        })
                    }
                    Else
                    {
                        Return (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
                            }
                        })
                    }
                }
            }

            Device (EXP3)
            {
                Name (_ADR, 0x001C0002)
                OperationRegion (P3CS, PCI_Config, 0x40, 0x0100)
                Field (P3CS, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x10), 
                        ,   4, 
                    LKD3,   1, 
                            Offset (0x1A), 
                    ABP3,   1, 
                        ,   2, 
                    PDC3,   1, 
                        ,   2, 
                    PDS3,   1, 
                            Offset (0x20), 
                    RID3,   16, 
                    PSP3,   1, 
                    PPP3,   1, 
                            Offset (0x9C), 
                        ,   30, 
                    HPCS,   1, 
                    PMCS,   1
                }

                Device (PXS3)
                {
                    Name (_ADR, Zero)
                }

                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LEqual (GPIC, Zero))
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                Zero, 
                                ^^LPC.LNKC, 
                                Zero
                            }, 

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

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

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x03, 
                                ^^LPC.LNKB, 
                                Zero
                            }
                        })
                    }
                    Else
                    {
                        Return (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
                            }
                        })
                    }
                }
            }

            Device (EXP4)
            {
                Name (_ADR, 0x001C0003)
                OperationRegion (P4CS, PCI_Config, 0x40, 0x0100)
                Field (P4CS, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x10), 
                        ,   4, 
                    LKD4,   1, 
                            Offset (0x1A), 
                    ABP4,   1, 
                        ,   2, 
                    PDC4,   1, 
                        ,   2, 
                    PDS4,   1, 
                            Offset (0x20), 
                    RID4,   16, 
                    PSP4,   1, 
                    PPP4,   1, 
                            Offset (0x9C), 
                        ,   30, 
                    HPCS,   1, 
                    PMCS,   1
                }

                Device (PXS4)
                {
                    Name (_ADR, Zero)
                }

                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LEqual (GPIC, Zero))
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                Zero, 
                                ^^LPC.LNKD, 
                                Zero
                            }, 

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

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

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x03, 
                                ^^LPC.LNKC, 
                                Zero
                            }
                        })
                    }
                    Else
                    {
                        Return (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
                            }
                        })
                    }
                }
            }

            Device (EXP5)
            {
                Name (_ADR, 0x001C0004)
                OperationRegion (P5CS, PCI_Config, 0x40, 0x0100)
                Field (P5CS, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x10), 
                        ,   4, 
                    LKD5,   1, 
                            Offset (0x1A), 
                    ABP5,   1, 
                        ,   2, 
                    PDC5,   1, 
                        ,   2, 
                    PDS5,   1, 
                            Offset (0x20), 
                    RID5,   16, 
                    PSP5,   1, 
                    PPP5,   1, 
                            Offset (0x9C), 
                        ,   30, 
                    HPCS,   1, 
                    PMCS,   1
                }

                Device (PXS5)
                {
                    Name (_ADR, Zero)
                    Method (_RMV, 0, NotSerialized)
                    {
                        Return (One)
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LEqual (GPIC, Zero))
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                Zero, 
                                ^^LPC.LNKA, 
                                Zero
                            }, 

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

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

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x03, 
                                ^^LPC.LNKD, 
                                Zero
                            }
                        })
                    }
                    Else
                    {
                        Return (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
                            }
                        })
                    }
                }
            }

            Device (EXP6)
            {
                Name (_ADR, 0x001C0005)
                OperationRegion (P6CS, PCI_Config, 0x40, 0x0100)
                Field (P6CS, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x10), 
                        ,   4, 
                    LKD6,   1, 
                            Offset (0x1A), 
                    ABP6,   1, 
                        ,   2, 
                    PDC6,   1, 
                        ,   2, 
                    PDS6,   1, 
                            Offset (0x20), 
                    RID6,   16, 
                    PSP6,   1, 
                    PPP6,   1, 
                            Offset (0x9C), 
                        ,   30, 
                    HPCS,   1, 
                    PMCS,   1
                }

                Device (PXS6)
                {
                    Name (_ADR, Zero)
                    Method (_RMV, 0, NotSerialized)
                    {
                        Return (One)
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LEqual (GPIC, Zero))
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                Zero, 
                                ^^LPC.LNKB, 
                                Zero
                            }, 

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

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

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x03, 
                                ^^LPC.LNKA, 
                                Zero
                            }
                        })
                    }
                    Else
                    {
                        Return (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
                            }
                        })
                    }
                }
            }

            Device (AZAL)
            {
                Name (_ADR, 0x001B0000)
                Method (_PRW, 0, NotSerialized)
                {
                    If (LEqual (WKMD, One))
                    {
                        Return (Package (0x02)
                        {
                            0x0D, 
                            0x04
                        })
                    }
                    Else
                    {
                        Return (Package (0x02)
                        {
                            0x0D, 
                            Zero
                        })
                    }
                }
            }

            Device (PEGP)
            {
                Name (_ADR, 0x00010000)
                Method (_PRT, 0, NotSerialized)
                {
                    If (LEqual (GPIC, Zero))
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                Zero, 
                                ^^LPC.LNKA, 
                                Zero
                            }, 

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

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

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x03, 
                                ^^LPC.LNKD, 
                                Zero
                            }
                        })
                    }
                    Else
                    {
                        Return (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
                            }
                        })
                    }
                }

                Device (VGA)
                {
                    Name (_ADR, Zero)
                    Name (CSTT, Zero)
                    Name (DOSA, One)
                    Name (BCML, 0x64)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (IGDS)
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        UDCS ()
                        UDGS ()
                    }

                    Method (_DOS, 1, NotSerialized)
                    {
                        Store (Arg0, DOSA)
                    }

                    Method (_DOD, 0, NotSerialized)
                    {
                        Return (Package (0x03)
                        {
                            0x00010100, 
                            0x00010110, 
                            0x00010200
                        })
                    }

                    Device (CRT)
                    {
                        Name (_ADR, 0x0100)
                        Name (_DCS, 0x1F)
                        Name (_DGS, Zero)
                        Method (_DSS, 1, NotSerialized)
                        {
                            And (_DCS, 0xFFFFFFFD, _DCS)
                            And (Arg0, One, Local0)
                            ShiftLeft (Local0, One, Local0)
                            Or (_DCS, Local0, _DCS)
                        }
                    }

                    Device (LCD)
                    {
                        Name (_ADR, 0x0110)
                        Name (_DCS, 0x1F)
                        Name (_DGS, Zero)
                        Method (_DSS, 1, NotSerialized)
                        {
                            And (_DCS, 0xFFFFFFFD, _DCS)
                            And (Arg0, One, Local0)
                            ShiftLeft (Local0, One, Local0)
                            Or (_DCS, Local0, _DCS)
                        }

                        Name (BRLV, Package (0x0A)
                        {
                            0x5A, 
                            0x23, 
                            0x0A, 
                            0x19, 
                            0x23, 
                            0x32, 
                            0x3C, 
                            0x4B, 
                            0x5A, 
                            0x64
                        })
                        Method (_BCL, 0, NotSerialized)
                        {
                            Return (BRLV)
                        }

                        Method (_BQC, 0, Serialized)
                        {
                            Return (BCML)
                        }

                        Method (_BCM, 1, Serialized)
                        {
                            Acquire (MUTS, 0xFFFF)
                            Store (Arg0, BCML)
                            Store (SizeOf (BRLV), Local0)
                            While (Local0)
                            {
                                Decrement (Local0)
                                Store (DerefOf (Index (BRLV, Local0)), Local1)
                                If (LEqual (Arg0, Local1))
                                {
                                    Break
                                }
                            }

                            Subtract (Local0, 0x02, Local0)
                            Store (Local0, BRTL)
                            OSMI (0xA2)
                            Release (MUTS)
                        }
                    }

                    Device (TV)
                    {
                        Name (_ADR, 0x0200)
                        Name (_DCS, 0x0F)
                        Name (_DGS, Zero)
                        Method (_DSS, 1, NotSerialized)
                        {
                            And (_DCS, 0xFFFFFFFD, _DCS)
                            And (Arg0, One, Local0)
                            ShiftLeft (Local0, One, Local0)
                            Or (_DCS, Local0, _DCS)
                        }
                    }

                    Method (UDCS, 0, NotSerialized)
                    {
                        And (^LCD._DCS, 0xFFFFFFFD, ^LCD._DCS)
                        And (^CRT._DCS, 0xFFFFFFFD, ^CRT._DCS)
                        And (^TV._DCS, 0xFFFFFFFD, ^TV._DCS)
                        Acquire (MUTS, 0xFFFF)
                        OSMI (0xA8)
                        Release (MUTS)
                        If (LEqual (CSTT, Zero))
                        {
                            Or (^LCD._DCS, 0x02, ^LCD._DCS)
                        }

                        If (LEqual (CSTT, One))
                        {
                            Or (^LCD._DCS, 0x02, ^LCD._DCS)
                            Or (^CRT._DCS, 0x02, ^CRT._DCS)
                        }

                        If (LEqual (CSTT, 0x02))
                        {
                            Or (^CRT._DCS, 0x02, ^CRT._DCS)
                        }

                        If (LEqual (CSTT, 0x03))
                        {
                            Or (^LCD._DCS, 0x02, ^LCD._DCS)
                            Or (^TV._DCS, 0x02, ^TV._DCS)
                        }

                        If (LEqual (CSTT, 0x04))
                        {
                            Or (^TV._DCS, 0x02, ^TV._DCS)
                        }
                    }

                    Method (UDGS, 0, NotSerialized)
                    {
                        And (^LCD._DGS, 0xFFFFFFFE, ^LCD._DGS)
                        And (^CRT._DGS, 0xFFFFFFFE, ^CRT._DGS)
                        And (^TV._DGS, 0xFFFFFFFE, ^TV._DGS)
                        And (^LCD._DCS, 0x02, Local1)
                        And (^CRT._DCS, 0x02, Local2)
                        And (^TV._DCS, 0x02, Local3)
                        ShiftRight (Local1, One, Local1)
                        ShiftLeft (Local3, One, Local3)
                        Or (Local1, Local2, Local1)
                        Or (Local1, Local3, Local1)
                        Increment (CSTT)
                        If (LGreater (CSTT, 0x04))
                        {
                            Store (Zero, CSTT)
                        }

                        If (LEqual (CSTT, Zero))
                        {
                            Or (^LCD._DGS, One, ^LCD._DGS)
                        }

                        If (LEqual (CSTT, One))
                        {
                            Or (^LCD._DGS, One, ^LCD._DGS)
                            Or (^CRT._DGS, One, ^CRT._DGS)
                        }

                        If (LEqual (CSTT, 0x02))
                        {
                            Or (^CRT._DGS, One, ^CRT._DGS)
                        }

                        If (LEqual (CSTT, 0x03))
                        {
                            Or (^LCD._DGS, One, ^LCD._DGS)
                            Or (^TV._DGS, One, ^TV._DGS)
                        }

                        If (LEqual (CSTT, 0x04))
                        {
                            Or (^TV._DGS, One, ^TV._DGS)
                        }

                        Store (CSTT, NSTE)
                    }

                    Name (ATIB, Buffer (0x80) {})
                    Method (ATIF, 2, NotSerialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            Return (AF00 ())
                        }

                        If (LEqual (Arg0, 0x05))
                        {
                            Return (AF05 ())
                        }

                        If (LEqual (Arg0, 0x06))
                        {
                            AF06 (Arg1)
                            Return (ATIB)
                        }
                        Else
                        {
                            CreateWordField (ATIB, Zero, SSZE)
                            CreateWordField (ATIB, 0x02, VERN)
                            CreateDWordField (ATIB, 0x04, NMSK)
                            CreateDWordField (ATIB, 0x08, SFUN)
                            Store (Zero, SSZE)
                            Store (Zero, VERN)
                            Store (Zero, NMSK)
                            Store (Zero, SFUN)
                            Return (ATIB)
                        }
                    }

                    Method (AF00, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, VERN)
                        CreateDWordField (ATIB, 0x04, NMSK)
                        CreateDWordField (ATIB, 0x08, SFUN)
                        Store (0x0C, SSZE)
                        Store (One, VERN)
                        Store (Zero, NMSK)
                        Store (0x30, SFUN)
                        Return (ATIB)
                    }

                    Method (AF05, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateByteField (ATIB, 0x02, TSEF)
                        CreateByteField (ATIB, 0x03, TVIF)
                        Store (0x04, SSZE)
                        Store (Zero, TSEF)
                        Acquire (MUTS, 0xFFFF)
                        OSMI (0x56)
                        Store (PRM1, TVIF)
                        Release (MUTS)
                        Return (ATIB)
                    }

                    Method (AF06, 1, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateByteField (ATIB, 0x02, TSEF)
                        CreateByteField (ATIB, 0x03, TVIF)
                        Store (0x04, SSZE)
                        Store (Zero, TSEF)
                        Store (Arg0, TVIF)
                        Acquire (MUTS, 0xFFFF)
                        Store (TVIF, PRM0)
                        OSMI (0x57)
                        Release (MUTS)
                    }
                }
            }

            Device (SAT0)
            {
                Name (_ADR, 0x001F0002)
                Device (LOC4)
                {
                    Name (_ADR, 0x0004FFFF)
                    Method (_RMV, 0, NotSerialized)
                    {
                        If (SCFG)
                        {
                            FLNK (0xFF, 0x31)
                        }

                        Return (One)
                    }
                }

                Device (CHA4)
                {
                    Name (_ADR, 0x04)
                    Device (ESTA)
                    {
                        Name (_ADR, Zero)
                        Method (_RMV, 0, NotSerialized)
                        {
                            If (SCFG)
                            {
                                FLNK (0xFF, 0x31)
                            }

                            Return (One)
                        }
                    }
                }

                OperationRegion (SACS, PCI_Config, 0x40, 0xC0)
                Field (SACS, DWordAcc, NoLock, Preserve)
                {
                    PRIT,   16, 
                    SECT,   16, 
                    PSIT,   4, 
                    SSIT,   4, 
                            Offset (0x08), 
                    SYNC,   4, 
                            Offset (0x0A), 
                    SDT0,   2, 
                        ,   2, 
                    SDT1,   2, 
                            Offset (0x0B), 
                    SDT2,   2, 
                        ,   2, 
                    SDT3,   2, 
                            Offset (0x14), 
                    ICR0,   4, 
                    ICR1,   4, 
                    ICR2,   4, 
                    ICR3,   4, 
                    ICR4,   4, 
                    ICR5,   4, 
                            Offset (0x50), 
                    MAPV,   2
                }

                Device (PRID)
                {
                    Name (_ADR, Zero)
                    Method (_GTM, 0, NotSerialized)
                    {
                        If (LEqual (SCFG, Zero))
                        {
                            Name (PBUF, Buffer (0x14)
                            {
                                /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0010 */    0x00, 0x00, 0x00, 0x00
                            })
                            CreateDWordField (PBUF, Zero, PIO0)
                            CreateDWordField (PBUF, 0x04, DMA0)
                            CreateDWordField (PBUF, 0x08, PIO1)
                            CreateDWordField (PBUF, 0x0C, DMA1)
                            CreateDWordField (PBUF, 0x10, FLAG)
                            Store (GETP (PRIT), PIO0)
                            Store (GDMA (And (SYNC, One), And (ICR3, One), 
                                And (ICR0, One), SDT0, And (ICR1, One)), DMA0)
                            If (LEqual (DMA0, Ones))
                            {
                                Store (PIO0, DMA0)
                            }

                            If (And (PRIT, 0x4000))
                            {
                                If (LEqual (And (PRIT, 0x90), 0x80))
                                {
                                    Store (0x0384, PIO1)
                                }
                                Else
                                {
                                    Store (GETT (PSIT), PIO1)
                                }
                            }
                            Else
                            {
                                Store (Ones, PIO1)
                            }

                            Store (GDMA (And (SYNC, 0x02), And (ICR3, 0x02), 
                                And (ICR0, 0x02), SDT1, And (ICR1, 0x02)), DMA1)
                            If (LEqual (DMA1, Ones))
                            {
                                Store (PIO1, DMA1)
                            }

                            Store (GETF (And (SYNC, One), And (SYNC, 0x02), 
                                PRIT), FLAG)
                            Return (PBUF)
                        }
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        If (LEqual (SCFG, Zero))
                        {
                            CreateDWordField (Arg0, Zero, PIO0)
                            CreateDWordField (Arg0, 0x04, DMA0)
                            CreateDWordField (Arg0, 0x08, PIO1)
                            CreateDWordField (Arg0, 0x0C, DMA1)
                            CreateDWordField (Arg0, 0x10, FLAG)
                            If (LEqual (SizeOf (Arg1), 0x0200))
                            {
                                And (PRIT, 0x40F0, PRIT)
                                And (SYNC, 0x0E, SYNC)
                                Store (Zero, SDT0)
                                And (ICR0, 0x0E, ICR0)
                                And (ICR1, 0x0E, ICR1)
                                And (ICR3, 0x0E, ICR3)
                                And (ICR5, 0x0E, ICR5)
                                CreateWordField (Arg1, 0x62, W490)
                                CreateWordField (Arg1, 0x6A, W530)
                                CreateWordField (Arg1, 0x7E, W630)
                                CreateWordField (Arg1, 0x80, W640)
                                CreateWordField (Arg1, 0xB0, W880)
                                CreateWordField (Arg1, 0xBA, W930)
                                Or (PRIT, 0x8004, PRIT)
                                If (LAnd (And (FLAG, 0x02), And (W490, 0x0800)))
                                {
                                    Or (PRIT, 0x02, PRIT)
                                }

                                Or (PRIT, SETP (PIO0, W530, W640), PRIT)
                                If (And (FLAG, One))
                                {
                                    Or (SYNC, One, SYNC)
                                    Store (SDMA (DMA0), SDT0)
                                    If (LLess (DMA0, 0x1E))
                                    {
                                        Or (ICR3, One, ICR3)
                                    }

                                    If (LLess (DMA0, 0x3C))
                                    {
                                        Or (ICR0, One, ICR0)
                                    }

                                    Or (ICR1, One, ICR1)
                                }
                            }

                            If (LEqual (SizeOf (Arg2), 0x0200))
                            {
                                And (PRIT, 0x3F0F, PRIT)
                                Store (Zero, PSIT)
                                And (SYNC, 0x0D, SYNC)
                                Store (Zero, SDT1)
                                And (ICR0, 0x0D, ICR0)
                                And (ICR1, 0x0D, ICR1)
                                And (ICR3, 0x0D, ICR3)
                                And (ICR5, 0x0D, ICR5)
                                CreateWordField (Arg2, 0x62, W491)
                                CreateWordField (Arg2, 0x6A, W531)
                                CreateWordField (Arg2, 0x7E, W631)
                                CreateWordField (Arg2, 0x80, W641)
                                CreateWordField (Arg2, 0xB0, W881)
                                CreateWordField (Arg2, 0xBA, W931)
                                Or (PRIT, 0x8040, PRIT)
                                If (LAnd (And (FLAG, 0x08), And (W491, 0x0800)))
                                {
                                    Or (PRIT, 0x20, PRIT)
                                }

                                If (And (FLAG, 0x10))
                                {
                                    Or (PRIT, 0x4000, PRIT)
                                    If (LGreater (PIO1, 0xF0))
                                    {
                                        Or (PRIT, 0x80, PRIT)
                                    }
                                    Else
                                    {
                                        Or (PRIT, 0x10, PRIT)
                                        Store (SETT (PIO1, W531, W641), PSIT)
                                    }
                                }

                                If (And (FLAG, 0x04))
                                {
                                    Or (SYNC, 0x02, SYNC)
                                    Store (SDMA (DMA1), SDT1)
                                    If (LLess (DMA1, 0x1E))
                                    {
                                        Or (ICR3, 0x02, ICR3)
                                    }

                                    If (LLess (DMA1, 0x3C))
                                    {
                                        Or (ICR0, 0x02, ICR0)
                                    }

                                    Or (ICR1, 0x02, ICR1)
                                }
                            }
                        }
                    }

                    Device (P_D0)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (LEqual (SCFG, Zero))
                            {
                                Name (PIB0, Buffer (0x0E)
                                {
                                    /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                })
                                CreateByteField (PIB0, One, PMD0)
                                CreateByteField (PIB0, 0x08, DMD0)
                                If (And (PRIT, 0x02))
                                {
                                    If (LEqual (And (PRIT, 0x09), 0x08))
                                    {
                                        Store (0x08, PMD0)
                                    }
                                    Else
                                    {
                                        Store (0x0A, PMD0)
                                        ShiftRight (And (PRIT, 0x0300), 0x08, Local0)
                                        ShiftRight (And (PRIT, 0x3000), 0x0C, Local1)
                                        Add (Local0, Local1, Local2)
                                        If (LEqual (0x03, Local2))
                                        {
                                            Store (0x0B, PMD0)
                                        }

                                        If (LEqual (0x05, Local2))
                                        {
                                            Store (0x0C, PMD0)
                                        }
                                    }
                                }
                                Else
                                {
                                    Store (One, PMD0)
                                }

                                If (And (SYNC, One))
                                {
                                    Store (Or (SDT0, 0x40), DMD0)
                                    If (And (ICR1, One))
                                    {
                                        If (And (ICR0, One))
                                        {
                                            Add (DMD0, 0x02, DMD0)
                                        }

                                        If (And (ICR3, One))
                                        {
                                            Store (0x45, DMD0)
                                        }
                                    }
                                }
                                Else
                                {
                                    Or (Subtract (And (PMD0, 0x07), 0x02), 0x20, DMD0)
                                }

                                Return (PIB0)
                            }
                        }
                    }

                    Device (P_D1)
                    {
                        Name (_ADR, One)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (LEqual (SCFG, Zero))
                            {
                                Name (PIB1, Buffer (0x0E)
                                {
                                    /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03, 
                                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                                })
                                CreateByteField (PIB1, One, PMD1)
                                CreateByteField (PIB1, 0x08, DMD1)
                                If (And (PRIT, 0x20))
                                {
                                    If (LEqual (And (PRIT, 0x90), 0x80))
                                    {
                                        Store (0x08, PMD1)
                                    }
                                    Else
                                    {
                                        Add (And (PSIT, 0x03), ShiftRight (And (PSIT, 0x0C), 
                                            0x02), Local0)
                                        If (LEqual (0x05, Local0))
                                        {
                                            Store (0x0C, PMD1)
                                        }
                                        Else
                                        {
                                            If (LEqual (0x03, Local0))
                                            {
                                                Store (0x0B, PMD1)
                                            }
                                            Else
                                            {
                                                Store (0x0A, PMD1)
                                            }
                                        }
                                    }
                                }
                                Else
                                {
                                    Store (One, PMD1)
                                }

                                If (And (SYNC, 0x02))
                                {
                                    Store (Or (SDT1, 0x40), DMD1)
                                    If (And (ICR1, 0x02))
                                    {
                                        If (And (ICR0, 0x02))
                                        {
                                            Add (DMD1, 0x02, DMD1)
                                        }

                                        If (And (ICR3, 0x02))
                                        {
                                            Store (0x45, DMD1)
                                        }
                                    }
                                }
                                Else
                                {
                                    Or (Subtract (And (PMD1, 0x07), 0x02), 0x20, DMD1)
                                }

                                Return (PIB1)
                            }
                        }
                    }
                }

                Device (SECD)
                {
                    Name (_ADR, One)
                    Method (_GTM, 0, NotSerialized)
                    {
                        If (LEqual (SCFG, Zero))
                        {
                            Name (SBUF, Buffer (0x14)
                            {
                                /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0010 */    0x00, 0x00, 0x00, 0x00
                            })
                            CreateDWordField (SBUF, Zero, PIO0)
                            CreateDWordField (SBUF, 0x04, DMA0)
                            CreateDWordField (SBUF, 0x08, PIO1)
                            CreateDWordField (SBUF, 0x0C, DMA1)
                            CreateDWordField (SBUF, 0x10, FLAG)
                            Store (GETP (SECT), PIO0)
                            Store (GDMA (And (SYNC, 0x04), And (ICR3, 0x04), 
                                And (ICR0, 0x04), SDT2, And (ICR1, 0x04)), DMA0)
                            If (LEqual (DMA0, Ones))
                            {
                                Store (PIO0, DMA0)
                            }

                            If (And (SECT, 0x4000))
                            {
                                If (LEqual (And (SECT, 0x90), 0x80))
                                {
                                    Store (0x0384, PIO1)
                                }
                                Else
                                {
                                    Store (GETT (SSIT), PIO1)
                                }
                            }
                            Else
                            {
                                Store (Ones, PIO1)
                            }

                            Store (GDMA (And (SYNC, 0x08), And (ICR3, 0x08), 
                                And (ICR0, 0x08), SDT3, And (ICR1, 0x08)), DMA1)
                            If (LEqual (DMA1, Ones))
                            {
                                Store (PIO1, DMA1)
                            }

                            Store (GETF (And (SYNC, 0x04), And (SYNC, 0x08), 
                                SECT), FLAG)
                            Return (SBUF)
                        }
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        If (LEqual (SCFG, Zero))
                        {
                            CreateDWordField (Arg0, Zero, PIO0)
                            CreateDWordField (Arg0, 0x04, DMA0)
                            CreateDWordField (Arg0, 0x08, PIO1)
                            CreateDWordField (Arg0, 0x0C, DMA1)
                            CreateDWordField (Arg0, 0x10, FLAG)
                            If (LEqual (SizeOf (Arg1), 0x0200))
                            {
                                And (SECT, 0x40F0, SECT)
                                And (SYNC, 0x0B, SYNC)
                                Store (Zero, SDT2)
                                And (ICR0, 0x0B, ICR0)
                                And (ICR1, 0x0B, ICR1)
                                And (ICR3, 0x0B, ICR3)
                                And (ICR5, 0x0B, ICR5)
                                CreateWordField (Arg1, 0x62, W490)
                                CreateWordField (Arg1, 0x6A, W530)
                                CreateWordField (Arg1, 0x7E, W630)
                                CreateWordField (Arg1, 0x80, W640)
                                CreateWordField (Arg1, 0xB0, W880)
                                CreateWordField (Arg1, 0xBA, W930)
                                Or (SECT, 0x8004, SECT)
                                If (LAnd (And (FLAG, 0x02), And (W490, 0x0800)))
                                {
                                    Or (SECT, 0x02, SECT)
                                }

                                Or (SECT, SETP (PIO0, W530, W640), SECT)
                                If (And (FLAG, One))
                                {
                                    Or (SYNC, 0x04, SYNC)
                                    Store (SDMA (DMA0), SDT2)
                                    If (LLess (DMA0, 0x1E))
                                    {
                                        Or (ICR3, 0x04, ICR3)
                                    }

                                    If (LLess (DMA0, 0x3C))
                                    {
                                        Or (ICR0, 0x04, ICR0)
                                    }

                                    Or (ICR1, 0x04, ICR1)
                                }
                            }

                            If (LEqual (SizeOf (Arg2), 0x0200))
                            {
                                And (SECT, 0x3F0F, SECT)
                                Store (Zero, SSIT)
                                And (SYNC, 0x07, SYNC)
                                Store (Zero, SDT3)
                                And (ICR0, 0x07, ICR0)
                                And (ICR1, 0x07, ICR1)
                                And (ICR3, 0x07, ICR3)
                                And (ICR5, 0x07, ICR5)
                                CreateWordField (Arg2, 0x62, W491)
                                CreateWordField (Arg2, 0x6A, W531)
                                CreateWordField (Arg2, 0x7E, W631)
                                CreateWordField (Arg2, 0x80, W641)
                                CreateWordField (Arg2, 0xB0, W881)
                                CreateWordField (Arg2, 0xBA, W931)
                                Or (SECT, 0x8040, SECT)
                                If (LAnd (And (FLAG, 0x08), And (W491, 0x0800)))
                                {
                                    Or (SECT, 0x20, SECT)
                                }

                                If (And (FLAG, 0x10))
                                {
                                    Or (SECT, 0x4000, SECT)
                                    If (LGreater (PIO1, 0xF0))
                                    {
                                        Or (SECT, 0x80, SECT)
                                    }
                                    Else
                                    {
                                        Or (SECT, 0x10, SECT)
                                        Store (SETT (PIO1, W531, W641), SSIT)
                                    }
                                }

                                If (And (FLAG, 0x04))
                                {
                                    Or (SYNC, 0x08, SYNC)
                                    Store (SDMA (DMA1), SDT3)
                                    If (LLess (DMA1, 0x1E))
                                    {
                                        Or (ICR3, 0x08, ICR3)
                                    }

                                    If (LLess (DMA1, 0x3C))
                                    {
                                        Or (ICR0, 0x08, ICR0)
                                    }

                                    Or (ICR1, 0x08, ICR1)
                                }
                            }
                        }
                    }

                    Device (S_D0)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (LEqual (SCFG, Zero))
                            {
                                Name (SIB0, Buffer (0x0E)
                                {
                                    /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                })
                                CreateByteField (SIB0, One, PMD0)
                                CreateByteField (SIB0, 0x08, DMD0)
                                If (And (SECT, 0x02))
                                {
                                    If (LEqual (And (SECT, 0x09), 0x08))
                                    {
                                        Store (0x08, PMD0)
                                    }
                                    Else
                                    {
                                        Store (0x0A, PMD0)
                                        ShiftRight (And (SECT, 0x0300), 0x08, Local0)
                                        ShiftRight (And (SECT, 0x3000), 0x0C, Local1)
                                        Add (Local0, Local1, Local2)
                                        If (LEqual (0x03, Local2))
                                        {
                                            Store (0x0B, PMD0)
                                        }

                                        If (LEqual (0x05, Local2))
                                        {
                                            Store (0x0C, PMD0)
                                        }
                                    }
                                }
                                Else
                                {
                                    Store (One, PMD0)
                                }

                                If (And (SYNC, 0x04))
                                {
                                    Store (Or (SDT2, 0x40), DMD0)
                                    If (And (ICR1, 0x04))
                                    {
                                        If (And (ICR0, 0x04))
                                        {
                                            Add (DMD0, 0x02, DMD0)
                                        }

                                        If (And (ICR3, 0x04))
                                        {
                                            Store (0x45, DMD0)
                                        }
                                    }
                                }
                                Else
                                {
                                    Or (Subtract (And (PMD0, 0x07), 0x02), 0x20, DMD0)
                                }

                                Return (SIB0)
                            }
                        }
                    }

                    Device (S_D1)
                    {
                        Name (_ADR, One)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (LEqual (SCFG, Zero))
                            {
                                Name (SIB1, Buffer (0x0E)
                                {
                                    /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03, 
                                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                                })
                                CreateByteField (SIB1, One, PMD1)
                                CreateByteField (SIB1, 0x08, DMD1)
                                If (And (SECT, 0x20))
                                {
                                    If (LEqual (And (SECT, 0x90), 0x80))
                                    {
                                        Store (0x08, PMD1)
                                    }
                                    Else
                                    {
                                        Add (And (SSIT, 0x03), ShiftRight (And (SSIT, 0x0C), 
                                            0x02), Local0)
                                        If (LEqual (0x05, Local0))
                                        {
                                            Store (0x0C, PMD1)
                                        }
                                        Else
                                        {
                                            If (LEqual (0x03, Local0))
                                            {
                                                Store (0x0B, PMD1)
                                            }
                                            Else
                                            {
                                                Store (0x0A, PMD1)
                                            }
                                        }
                                    }
                                }
                                Else
                                {
                                    Store (One, PMD1)
                                }

                                If (And (SYNC, 0x08))
                                {
                                    Store (Or (SDT3, 0x40), DMD1)
                                    If (And (ICR1, 0x08))
                                    {
                                        If (And (ICR0, 0x08))
                                        {
                                            Add (DMD1, 0x02, DMD1)
                                        }

                                        If (And (ICR3, 0x08))
                                        {
                                            Store (0x45, DMD1)
                                        }
                                    }
                                }
                                Else
                                {
                                    Or (Subtract (And (PMD1, 0x07), 0x02), 0x20, DMD1)
                                }

                                Return (SIB1)
                            }
                        }
                    }
                }
            }

            Device (SAT1)
            {
                Name (_ADR, 0x001F0005)
                OperationRegion (SACS, PCI_Config, 0x40, 0xC0)
                Field (SACS, DWordAcc, NoLock, Preserve)
                {
                    PRIT,   16, 
                    SECT,   16, 
                    PSIT,   4, 
                    SSIT,   4, 
                            Offset (0x08), 
                    SYNC,   4, 
                            Offset (0x0A), 
                    SDT0,   2, 
                        ,   2, 
                    SDT1,   2, 
                            Offset (0x0B), 
                    SDT2,   2, 
                        ,   2, 
                    SDT3,   2, 
                            Offset (0x14), 
                    ICR0,   4, 
                    ICR1,   4, 
                    ICR2,   4, 
                    ICR3,   4, 
                    ICR4,   4, 
                    ICR5,   4, 
                            Offset (0x50), 
                    MAPV,   2
                }

                Device (PRID)
                {
                    Name (_ADR, Zero)
                    Method (_GTM, 0, NotSerialized)
                    {
                        If (LEqual (SCFG, Zero))
                        {
                            Name (PBUF, Buffer (0x14)
                            {
                                /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0010 */    0x00, 0x00, 0x00, 0x00
                            })
                            CreateDWordField (PBUF, Zero, PIO0)
                            CreateDWordField (PBUF, 0x04, DMA0)
                            CreateDWordField (PBUF, 0x08, PIO1)
                            CreateDWordField (PBUF, 0x0C, DMA1)
                            CreateDWordField (PBUF, 0x10, FLAG)
                            Store (GETP (PRIT), PIO0)
                            Store (GDMA (And (SYNC, One), And (ICR3, One), 
                                And (ICR0, One), SDT0, And (ICR1, One)), DMA0)
                            If (LEqual (DMA0, Ones))
                            {
                                Store (PIO0, DMA0)
                            }

                            If (And (PRIT, 0x4000))
                            {
                                If (LEqual (And (PRIT, 0x90), 0x80))
                                {
                                    Store (0x0384, PIO1)
                                }
                                Else
                                {
                                    Store (GETT (PSIT), PIO1)
                                }
                            }
                            Else
                            {
                                Store (Ones, PIO1)
                            }

                            Store (GDMA (And (SYNC, 0x02), And (ICR3, 0x02), 
                                And (ICR0, 0x02), SDT1, And (ICR1, 0x02)), DMA1)
                            If (LEqual (DMA1, Ones))
                            {
                                Store (PIO1, DMA1)
                            }

                            Store (GETF (And (SYNC, One), And (SYNC, 0x02), 
                                PRIT), FLAG)
                            Return (PBUF)
                        }
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        If (LEqual (SCFG, Zero))
                        {
                            CreateDWordField (Arg0, Zero, PIO0)
                            CreateDWordField (Arg0, 0x04, DMA0)
                            CreateDWordField (Arg0, 0x08, PIO1)
                            CreateDWordField (Arg0, 0x0C, DMA1)
                            CreateDWordField (Arg0, 0x10, FLAG)
                            If (LEqual (SizeOf (Arg1), 0x0200))
                            {
                                And (PRIT, 0x40F0, PRIT)
                                And (SYNC, 0x0E, SYNC)
                                Store (Zero, SDT0)
                                And (ICR0, 0x0E, ICR0)
                                And (ICR1, 0x0E, ICR1)
                                And (ICR3, 0x0E, ICR3)
                                And (ICR5, 0x0E, ICR5)
                                CreateWordField (Arg1, 0x62, W490)
                                CreateWordField (Arg1, 0x6A, W530)
                                CreateWordField (Arg1, 0x7E, W630)
                                CreateWordField (Arg1, 0x80, W640)
                                CreateWordField (Arg1, 0xB0, W880)
                                CreateWordField (Arg1, 0xBA, W930)
                                Or (PRIT, 0x8004, PRIT)
                                If (LAnd (And (FLAG, 0x02), And (W490, 0x0800)))
                                {
                                    Or (PRIT, 0x02, PRIT)
                                }

                                Or (PRIT, SETP (PIO0, W530, W640), PRIT)
                                If (And (FLAG, One))
                                {
                                    Or (SYNC, One, SYNC)
                                    Store (SDMA (DMA0), SDT0)
                                    If (LLess (DMA0, 0x1E))
                                    {
                                        Or (ICR3, One, ICR3)
                                    }

                                    If (LLess (DMA0, 0x3C))
                                    {
                                        Or (ICR0, One, ICR0)
                                    }

                                    Or (ICR1, One, ICR1)
                                }
                            }

                            If (LEqual (SizeOf (Arg2), 0x0200))
                            {
                                And (PRIT, 0x3F0F, PRIT)
                                Store (Zero, PSIT)
                                And (SYNC, 0x0D, SYNC)
                                Store (Zero, SDT1)
                                And (ICR0, 0x0D, ICR0)
                                And (ICR1, 0x0D, ICR1)
                                And (ICR3, 0x0D, ICR3)
                                And (ICR5, 0x0D, ICR5)
                                CreateWordField (Arg2, 0x62, W491)
                                CreateWordField (Arg2, 0x6A, W531)
                                CreateWordField (Arg2, 0x7E, W631)
                                CreateWordField (Arg2, 0x80, W641)
                                CreateWordField (Arg2, 0xB0, W881)
                                CreateWordField (Arg2, 0xBA, W931)
                                Or (PRIT, 0x8040, PRIT)
                                If (LAnd (And (FLAG, 0x08), And (W491, 0x0800)))
                                {
                                    Or (PRIT, 0x20, PRIT)
                                }

                                If (And (FLAG, 0x10))
                                {
                                    Or (PRIT, 0x4000, PRIT)
                                    If (LGreater (PIO1, 0xF0))
                                    {
                                        Or (PRIT, 0x80, PRIT)
                                    }
                                    Else
                                    {
                                        Or (PRIT, 0x10, PRIT)
                                        Store (SETT (PIO1, W531, W641), PSIT)
                                    }
                                }

                                If (And (FLAG, 0x04))
                                {
                                    Or (SYNC, 0x02, SYNC)
                                    Store (SDMA (DMA1), SDT1)
                                    If (LLess (DMA1, 0x1E))
                                    {
                                        Or (ICR3, 0x02, ICR3)
                                    }

                                    If (LLess (DMA1, 0x3C))
                                    {
                                        Or (ICR0, 0x02, ICR0)
                                    }

                                    Or (ICR1, 0x02, ICR1)
                                }
                            }
                        }
                    }

                    Device (P_D0)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (LEqual (SCFG, Zero))
                            {
                                Name (PIB0, Buffer (0x0E)
                                {
                                    /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                })
                                CreateByteField (PIB0, One, PMD0)
                                CreateByteField (PIB0, 0x08, DMD0)
                                If (And (PRIT, 0x02))
                                {
                                    If (LEqual (And (PRIT, 0x09), 0x08))
                                    {
                                        Store (0x08, PMD0)
                                    }
                                    Else
                                    {
                                        Store (0x0A, PMD0)
                                        ShiftRight (And (PRIT, 0x0300), 0x08, Local0)
                                        ShiftRight (And (PRIT, 0x3000), 0x0C, Local1)
                                        Add (Local0, Local1, Local2)
                                        If (LEqual (0x03, Local2))
                                        {
                                            Store (0x0B, PMD0)
                                        }

                                        If (LEqual (0x05, Local2))
                                        {
                                            Store (0x0C, PMD0)
                                        }
                                    }
                                }
                                Else
                                {
                                    Store (One, PMD0)
                                }

                                If (And (SYNC, One))
                                {
                                    Store (Or (SDT0, 0x40), DMD0)
                                    If (And (ICR1, One))
                                    {
                                        If (And (ICR0, One))
                                        {
                                            Add (DMD0, 0x02, DMD0)
                                        }

                                        If (And (ICR3, One))
                                        {
                                            Store (0x45, DMD0)
                                        }
                                    }
                                }
                                Else
                                {
                                    Or (Subtract (And (PMD0, 0x07), 0x02), 0x20, DMD0)
                                }

                                Return (PIB0)
                            }
                        }
                    }

                    Device (P_D1)
                    {
                        Name (_ADR, One)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (LEqual (SCFG, Zero))
                            {
                                Name (PIB1, Buffer (0x0E)
                                {
                                    /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03, 
                                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                                })
                                CreateByteField (PIB1, One, PMD1)
                                CreateByteField (PIB1, 0x08, DMD1)
                                If (And (PRIT, 0x20))
                                {
                                    If (LEqual (And (PRIT, 0x90), 0x80))
                                    {
                                        Store (0x08, PMD1)
                                    }
                                    Else
                                    {
                                        Add (And (PSIT, 0x03), ShiftRight (And (PSIT, 0x0C), 
                                            0x02), Local0)
                                        If (LEqual (0x05, Local0))
                                        {
                                            Store (0x0C, PMD1)
                                        }
                                        Else
                                        {
                                            If (LEqual (0x03, Local0))
                                            {
                                                Store (0x0B, PMD1)
                                            }
                                            Else
                                            {
                                                Store (0x0A, PMD1)
                                            }
                                        }
                                    }
                                }
                                Else
                                {
                                    Store (One, PMD1)
                                }

                                If (And (SYNC, 0x02))
                                {
                                    Store (Or (SDT1, 0x40), DMD1)
                                    If (And (ICR1, 0x02))
                                    {
                                        If (And (ICR0, 0x02))
                                        {
                                            Add (DMD1, 0x02, DMD1)
                                        }

                                        If (And (ICR3, 0x02))
                                        {
                                            Store (0x45, DMD1)
                                        }
                                    }
                                }
                                Else
                                {
                                    Or (Subtract (And (PMD1, 0x07), 0x02), 0x20, DMD1)
                                }

                                Return (PIB1)
                            }
                        }
                    }
                }

                Device (SECD)
                {
                    Name (_ADR, One)
                    Method (_GTM, 0, NotSerialized)
                    {
                        If (LEqual (SCFG, Zero))
                        {
                            Name (SBUF, Buffer (0x14)
                            {
                                /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0010 */    0x00, 0x00, 0x00, 0x00
                            })
                            CreateDWordField (SBUF, Zero, PIO0)
                            CreateDWordField (SBUF, 0x04, DMA0)
                            CreateDWordField (SBUF, 0x08, PIO1)
                            CreateDWordField (SBUF, 0x0C, DMA1)
                            CreateDWordField (SBUF, 0x10, FLAG)
                            Store (GETP (SECT), PIO0)
                            Store (GDMA (And (SYNC, 0x04), And (ICR3, 0x04), 
                                And (ICR0, 0x04), SDT2, And (ICR1, 0x04)), DMA0)
                            If (LEqual (DMA0, Ones))
                            {
                                Store (PIO0, DMA0)
                            }

                            If (And (SECT, 0x4000))
                            {
                                If (LEqual (And (SECT, 0x90), 0x80))
                                {
                                    Store (0x0384, PIO1)
                                }
                                Else
                                {
                                    Store (GETT (SSIT), PIO1)
                                }
                            }
                            Else
                            {
                                Store (Ones, PIO1)
                            }

                            Store (GDMA (And (SYNC, 0x08), And (ICR3, 0x08), 
                                And (ICR0, 0x08), SDT3, And (ICR1, 0x08)), DMA1)
                            If (LEqual (DMA1, Ones))
                            {
                                Store (PIO1, DMA1)
                            }

                            Store (GETF (And (SYNC, 0x04), And (SYNC, 0x08), 
                                SECT), FLAG)
                            Return (SBUF)
                        }
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        If (LEqual (SCFG, Zero))
                        {
                            CreateDWordField (Arg0, Zero, PIO0)
                            CreateDWordField (Arg0, 0x04, DMA0)
                            CreateDWordField (Arg0, 0x08, PIO1)
                            CreateDWordField (Arg0, 0x0C, DMA1)
                            CreateDWordField (Arg0, 0x10, FLAG)
                            If (LEqual (SizeOf (Arg1), 0x0200))
                            {
                                And (SECT, 0x40F0, SECT)
                                And (SYNC, 0x0B, SYNC)
                                Store (Zero, SDT2)
                                And (ICR0, 0x0B, ICR0)
                                And (ICR1, 0x0B, ICR1)
                                And (ICR3, 0x0B, ICR3)
                                And (ICR5, 0x0B, ICR5)
                                CreateWordField (Arg1, 0x62, W490)
                                CreateWordField (Arg1, 0x6A, W530)
                                CreateWordField (Arg1, 0x7E, W630)
                                CreateWordField (Arg1, 0x80, W640)
                                CreateWordField (Arg1, 0xB0, W880)
                                CreateWordField (Arg1, 0xBA, W930)
                                Or (SECT, 0x8004, SECT)
                                If (LAnd (And (FLAG, 0x02), And (W490, 0x0800)))
                                {
                                    Or (SECT, 0x02, SECT)
                                }

                                Or (SECT, SETP (PIO0, W530, W640), SECT)
                                If (And (FLAG, One))
                                {
                                    Or (SYNC, 0x04, SYNC)
                                    Store (SDMA (DMA0), SDT2)
                                    If (LLess (DMA0, 0x1E))
                                    {
                                        Or (ICR3, 0x04, ICR3)
                                    }

                                    If (LLess (DMA0, 0x3C))
                                    {
                                        Or (ICR0, 0x04, ICR0)
                                    }

                                    Or (ICR1, 0x04, ICR1)
                                }
                            }

                            If (LEqual (SizeOf (Arg2), 0x0200))
                            {
                                And (SECT, 0x3F0F, SECT)
                                Store (Zero, SSIT)
                                And (SYNC, 0x07, SYNC)
                                Store (Zero, SDT3)
                                And (ICR0, 0x07, ICR0)
                                And (ICR1, 0x07, ICR1)
                                And (ICR3, 0x07, ICR3)
                                And (ICR5, 0x07, ICR5)
                                CreateWordField (Arg2, 0x62, W491)
                                CreateWordField (Arg2, 0x6A, W531)
                                CreateWordField (Arg2, 0x7E, W631)
                                CreateWordField (Arg2, 0x80, W641)
                                CreateWordField (Arg2, 0xB0, W881)
                                CreateWordField (Arg2, 0xBA, W931)
                                Or (SECT, 0x8040, SECT)
                                If (LAnd (And (FLAG, 0x08), And (W491, 0x0800)))
                                {
                                    Or (SECT, 0x20, SECT)
                                }

                                If (And (FLAG, 0x10))
                                {
                                    Or (SECT, 0x4000, SECT)
                                    If (LGreater (PIO1, 0xF0))
                                    {
                                        Or (SECT, 0x80, SECT)
                                    }
                                    Else
                                    {
                                        Or (SECT, 0x10, SECT)
                                        Store (SETT (PIO1, W531, W641), SSIT)
                                    }
                                }

                                If (And (FLAG, 0x04))
                                {
                                    Or (SYNC, 0x08, SYNC)
                                    Store (SDMA (DMA1), SDT3)
                                    If (LLess (DMA1, 0x1E))
                                    {
                                        Or (ICR3, 0x08, ICR3)
                                    }

                                    If (LLess (DMA1, 0x3C))
                                    {
                                        Or (ICR0, 0x08, ICR0)
                                    }

                                    Or (ICR1, 0x08, ICR1)
                                }
                            }
                        }
                    }

                    Device (S_D0)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (LEqual (SCFG, Zero))
                            {
                                Name (SIB0, Buffer (0x0E)
                                {
                                    /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                })
                                CreateByteField (SIB0, One, PMD0)
                                CreateByteField (SIB0, 0x08, DMD0)
                                If (And (SECT, 0x02))
                                {
                                    If (LEqual (And (SECT, 0x09), 0x08))
                                    {
                                        Store (0x08, PMD0)
                                    }
                                    Else
                                    {
                                        Store (0x0A, PMD0)
                                        ShiftRight (And (SECT, 0x0300), 0x08, Local0)
                                        ShiftRight (And (SECT, 0x3000), 0x0C, Local1)
                                        Add (Local0, Local1, Local2)
                                        If (LEqual (0x03, Local2))
                                        {
                                            Store (0x0B, PMD0)
                                        }

                                        If (LEqual (0x05, Local2))
                                        {
                                            Store (0x0C, PMD0)
                                        }
                                    }
                                }
                                Else
                                {
                                    Store (One, PMD0)
                                }

                                If (And (SYNC, 0x04))
                                {
                                    Store (Or (SDT2, 0x40), DMD0)
                                    If (And (ICR1, 0x04))
                                    {
                                        If (And (ICR0, 0x04))
                                        {
                                            Add (DMD0, 0x02, DMD0)
                                        }

                                        If (And (ICR3, 0x04))
                                        {
                                            Store (0x45, DMD0)
                                        }
                                    }
                                }
                                Else
                                {
                                    Or (Subtract (And (PMD0, 0x07), 0x02), 0x20, DMD0)
                                }

                                Return (SIB0)
                            }
                        }
                    }

                    Device (S_D1)
                    {
                        Name (_ADR, One)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (LEqual (SCFG, Zero))
                            {
                                Name (SIB1, Buffer (0x0E)
                                {
                                    /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03, 
                                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                                })
                                CreateByteField (SIB1, One, PMD1)
                                CreateByteField (SIB1, 0x08, DMD1)
                                If (And (SECT, 0x20))
                                {
                                    If (LEqual (And (SECT, 0x90), 0x80))
                                    {
                                        Store (0x08, PMD1)
                                    }
                                    Else
                                    {
                                        Add (And (SSIT, 0x03), ShiftRight (And (SSIT, 0x0C), 
                                            0x02), Local0)
                                        If (LEqual (0x05, Local0))
                                        {
                                            Store (0x0C, PMD1)
                                        }
                                        Else
                                        {
                                            If (LEqual (0x03, Local0))
                                            {
                                                Store (0x0B, PMD1)
                                            }
                                            Else
                                            {
                                                Store (0x0A, PMD1)
                                            }
                                        }
                                    }
                                }
                                Else
                                {
                                    Store (One, PMD1)
                                }

                                If (And (SYNC, 0x08))
                                {
                                    Store (Or (SDT3, 0x40), DMD1)
                                    If (And (ICR1, 0x08))
                                    {
                                        If (And (ICR0, 0x08))
                                        {
                                            Add (DMD1, 0x02, DMD1)
                                        }

                                        If (And (ICR3, 0x08))
                                        {
                                            Store (0x45, DMD1)
                                        }
                                    }
                                }
                                Else
                                {
                                    Or (Subtract (And (PMD1, 0x07), 0x02), 0x20, DMD1)
                                }

                                Return (SIB1)
                            }
                        }
                    }
                }
            }
        }
    }
}