/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20160108-64
 * Copyright (c) 2000 - 2016 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of dsdt.dat, Tue Mar 22 02:02:07 2016
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x0000A74B (42827)
 *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
 *     Checksum         0xF9
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "CB-01   "
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "MSFT"
 *     Compiler Version 0x01000013 (16777235)
 */
DefinitionBlock ("dsdt.aml", "DSDT", 1, "LENOVO", "CB-01   ", 0x00000001)
{

    External (_PR_.C000._PPC, UnknownObj)
    External (_PR_.C001._PPC, UnknownObj)
    External (_PR_.C002._PPC, UnknownObj)
    External (_PR_.C003._PPC, UnknownObj)

    OperationRegion (DBG0, SystemIO, 0x80, One)
    Field (DBG0, ByteAcc, NoLock, Preserve)
    {
        IO80,   8
    }

    OperationRegion (DEB2, SystemIO, 0x80, 0x02)
    Field (DEB2, WordAcc, NoLock, Preserve)
    {
        P80H,   16
    }

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

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

    OperationRegion (PMRG, SystemIO, 0x0CD6, 0x02)
    Field (PMRG, ByteAcc, NoLock, Preserve)
    {
        PMRI,   8,
        PMRD,   8
    }

    IndexField (PMRI, PMRD, ByteAcc, NoLock, Preserve)
    {
        Offset (0x24),
        MMSO,   32,
        Offset (0x60),
        P1EB,   16,
        Offset (0xC8),
            ,   2,
        SPRE,   1,
        TPDE,   1,
        Offset (0xF0),
            ,   3,
        RSTU,   1
    }

    OperationRegion (GSMM, SystemMemory, MMSO, 0x1000)
    Field (GSMM, AnyAcc, NoLock, Preserve)
    {
        Offset (0x132),
            ,   7,
        GP51,   1,
        Offset (0x136),
            ,   7,
        GP55,   1,
        Offset (0x13A),
            ,   7,
        GP59,   1,
        Offset (0x13F),
            ,   7,
        GP64,   1,
        Offset (0x160),
            ,   7,
        GE01,   1,
        Offset (0x16A),
            ,   7,
        GE11,   1,
            ,   7,
        GE12,   1,
        Offset (0x16E),
            ,   7,
        BATS,   1,
        Offset (0x1FF),
            ,   1,
        G01S,   1,
        Offset (0x203),
            ,   1,
        G01E,   1,
        Offset (0x207),
            ,   1,
        TR01,   1,
        Offset (0x20B),
            ,   1,
        TL01,   1,
        Offset (0x20D),
            ,   7,
        ACIR,   1,
        Offset (0x287),
            ,   1,
        CLPS,   1,
        Offset (0x298),
            ,   7,
        G15A,   1,
        Offset (0x2AF),
            ,   2,
        SLPS,   2,
        Offset (0x376),
        EPNM,   1,
        DPPF,   1,
        Offset (0x3BA),
            ,   6,
        PWDE,   1,
        Offset (0x3BD),
            ,   5,
        ALLS,   1,
        Offset (0x3DE),
        BLNK,   2,
        Offset (0x3EF),
        PHYD,   1,
        Offset (0xE80),
            ,   2,
        ECES,   1
    }

    OperationRegion (P1E0, SystemIO, P1EB, 0x04)
    Field (P1E0, ByteAcc, NoLock, Preserve)
    {
            ,   14,
        PEWS,   1,
        WSTA,   1,
            ,   14,
        PEWD,   1
    }

    OperationRegion (IOCC, SystemIO, 0x0400, 0x80)
    Field (IOCC, ByteAcc, NoLock, Preserve)
    {
        Offset (0x01),
            ,   2,
        RTCS,   1
    }

    Name (PCM1, Zero)
    Name (IW1S, Zero)
    Name (IW2S, Zero)
    Method (OT80, 1, NotSerialized)
    {
        APMD = Arg0
        APMC = 0xE5
        Stall (0xFF)
        Stall (0xFF)
        Stall (0xFF)
        Stall (0xFF)
        Stall (0xFF)
        Stall (0xFF)
    }

    Name (PS48, Zero)
    Name (PS49, Zero)
    Name (PS4A, Zero)
    Name (PS4B, Zero)
    Name (PRWP, Package (0x02)
    {
        Zero,
        Zero
    })
    Method (GPRW, 2, NotSerialized)
    {
        PRWP [Zero] = Arg0
        PRWP [One] = Arg1
        If (((DAS3 == Zero) && (DAS1 == Zero)))
        {
            If ((Arg1 <= 0x03))
            {
                PRWP [One] = Zero
            }
        }
        ElseIf (((DAS3 == Zero) && (Arg1 == 0x03)))
        {
            PRWP [One] = One
        }

        Return (PRWP) /* \PRWP */
    }

    Method (SPTS, 1, NotSerialized)
    {
        If ((Arg0 == 0x03))
        {
            RSTU = Zero
        }

        CLPS = One
        SLPS = One
        PEWS = PEWS /* \PEWS */
    }

    Method (SWAK, 1, NotSerialized)
    {
        If ((Arg0 == 0x03))
        {
            RSTU = One
        }

        PEWS = PEWS /* \PEWS */
        PEWD = Zero
    }

    Method (TRMD, 1, NotSerialized)
    {
        SPRE = Arg0
        TPDE = Arg0
    }

    Method (CHKH, 0, NotSerialized)
    {
    }

    OperationRegion (MBOX, SystemMemory, 0xDFEBEA18, 0x00000352)
    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,
        ACPV,   8,
        TPMD,   8,
        TPMO,   8,
        TPMC,   8,
        TPMM,   8,
        TPCC,   8,
        TPLC,   8,
        TPLR,   32,
        QBOT,   8,
        QTBT,   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,
        POPD,   16,
        USPW,   16,
        HDPW,   16,
        SAHP,   16,
        SAHF,   8,
        SUVF,   8,
        USRF,   8,
        UMPW,   8,
        SMHP,   16,
        SAMP,   16,
        SAMF,   8,
        SPFA,   8,
        SPFB,   8,
        SPFC,   8,
        SPFD,   8,
        SPFE,   8,
        SPFF,   8,
        SPFG,   8,
        SPFH,   8,
        SPFI,   8,
        SPFJ,   8,
        SPFK,   8,
        SPFL,   8,
        SPFM,   8,
        SPFN,   8,
        SPFO,   8,
        SPFP,   8,
        SPFQ,   8,
        SPFR,   8,
        SPFS,   8,
        SPFT,   8,
        SPFU,   8,
        SPFV,   8,
        SPFW,   8,
        SPFX,   8,
        SPFY,   8,
        SPFZ,   8,
        SPF0,   8,
        SPF1,   8,
        SPF2,   8,
        SPF3,   8,
        SPF4,   8,
        SPF5,   8,
        CRD0,   8,
        CRD1,   8,
        CRD2,   8,
        CRD3,   8,
        CRD4,   8,
        CRD5,   8,
        CRD6,   8,
        CRD7,   8,
        SPCR,   8,
        KRSV,   64,
        LIMF,   8,
        LIMS,   8,
        IGMT,   8,
        PWST,   8,
        PNOW,   8,
        FNON,   8,
        TRON,   8,
        PCRR,   8,
        C4EN,   8,
        C43D,   8,
        MPST,   8,
        VTSP,   8,
        VTFT,   8,
        PFMP,   8,
        PVAT,   8,
        OHC0,   8,
        OHC1,   8,
        OHC2,   8,
        OHC3,   8,
        EHC0,   8,
        EHC1,   8,
        EHC2,   8,
        SATE,   8,
        EC1E,   8,
        ESVM,   8,
        MCLC,   8,
        MCLV,   8,
        HTFR,   8,
        HTWD,   8,
        GSPL,   8,
        P2G2,   8,
        P2LA,   8,
        P2LW,   8,
        P2SP,   8,
        P2LI,   8,
        P2CM,   8,
        P3G2,   8,
        P3GL,   8,
        P3LA,   8,
        P3LW,   8,
        P3SP,   8,
        P3LI,   8,
        P3CM,   8,
        P4G2,   8,
        P4LA,   8,
        P4LI,   8,
        P4CM,   8,
        P5G2,   8,
        P5LA,   8,
        P5LI,   8,
        P5CM,   8,
        P6G2,   8,
        P6LA,   8,
        P6LI,   8,
        P6CM,   8,
        P7G2,   8,
        P7LA,   8,
        P7LI,   8,
        P7CM,   8,
        P8LA,   8,
        P8VT,   8,
        P8CM,   8,
        P9G2,   8,
        P9LA,   8,
        P9LI,   8,
        P9CM,   8,
        PAG2,   8,
        PALA,   8,
        PALI,   8,
        PACM,   8,
        UMAR,   8,
        CPST,   8,
        OSCS,   8,
        SSSW,   8,
        OBLS,   8,
        SVFS,   8,
        AHCM,   8,
        AORS,   8,
        XGPS,   8,
        CMEN,   8,
        CMPC,   8,
        CMHT,   8,
        CBIF,   8,
        TCFN,   8,
        LDIS,   8,
        GFL0,   8,
        GL0C,   8,
        GL0M,   8,
        GFL1,   8,
        GL1C,   8,
        GL1M,   8,
        GFL2,   8,
        GL2C,   8,
        GL2M,   8,
        GFL3,   8,
        GL3C,   8,
        GL3M,   8,
        ALST,   8,
        TPMS,   8,
        HDAU,   8,
        WLSH,   8,
        CTFW,   8,
        PSIC,   8,
        LASO,   8,
        SSCL,   8,
        SMSO,   8,
        SMMS,   8,
        CMEW,   8,
        SOTP,   8,
        NSVC,   8,
        HXMD,   8,
        ILST,   8,
        PSDM,   8,
        TCP0,   8,
        TCP1,   8,
        ATNB,   8,
        PCP0,   8,
        PCP1,   8,
        PWMN,   8,
        TNBH,   8,
        THTE,   8,
        ADSC,   8,
        ACTM,   8,
        DCTM,   8,
        CBCC,   8,
        ONTM,   8,
        OFTM,   8,
        PHCT,   8,
        PHFQ,   8,
        TMZE,   8,
        NDPS,   8,
        LPTY,   8,
        VDRM,   8,
        ILSW,   8,
        EXUS,   8,
        PWPL,   8,
        AFUC,   8,
        SP0P,   8,
        SP1P,   8,
        SP2P,   8,
        SP3P,   8,
        SP4P,   8,
        SP5P,   8,
        FCRD,   8,
        M92D,   8,
        RELT,   8,
        OLOR,   8,
        ILOR,   8,
        AIRC,   8,
        TRAN,   8,
        CRSV,   640,
        TPRV,   1760,
        L5IG,   8,
        L5OW,   8,
        L5WF,   8,
        L5OM,   8,
        L5MF,   8,
        L5PB,   8,
        LVOL,   8,
        LCST,   8,
        L5PD,   8,
        TPVD,   8,
        ORSV,   472,
        Offset (0x2EE),
        LRTO,   8,
        DRSV,   792
    }

    OperationRegion (NVST, SystemMemory, 0xDFEBED6A, 0x0000012D)
    Field (NVST, AnyAcc, Lock, Preserve)
    {
        SMIF,   8,
        PRM0,   8,
        PRM1,   8,
        BRTL,   8,
        TLST,   8,
        IGDS,   8,
        LCDA,   16,
        CSTE,   16,
        NSTE,   16,
        CADL,   16,
        PADL,   16,
        LIDS,   8,
        PWRS,   8,
        BVAL,   32,
        ADDL,   16,
        BCMD,   8,
        DID,    32,
        INFO,   2048,
        TOML,   8,
        TOMH,   8,
        CEBP,   8,
        C0LS,   8,
        C1LS,   8,
        C0HS,   8,
        C1HS,   8,
        ROMS,   32,
        MUXF,   8,
        PDDN,   8,
        CPUS,   8,
        TPDF,   8,
        CPUN,   8
    }

    Method (SCMP, 2, NotSerialized)
    {
        Name (STG1, Buffer (0x50) {})
        Name (STG2, Buffer (0x50) {})
        STG1 = Arg0
        STG2 = Arg1
        If ((SizeOf (Arg0) != SizeOf (Arg1)))
        {
            Return (Zero)
        }

        Local0 = Zero
        While ((Local0 < SizeOf (Arg0)))
        {
            If ((DerefOf (STG1 [Local0]) != DerefOf (STG2 [Local0]
                )))
            {
                Return (Zero)
            }

            Local0++
        }

        Return (One)
    }

    Name (WNOS, Zero)
    Method (CKOS, 0, NotSerialized)
    {
        If ((WNOS == Zero))
        {
            If (SCMP (_OS, "Microsoft Windows"))
            {
                WNOS = One
            }

            If (SCMP (_OS, "Microsoft Windows NT"))
            {
                WNOS = 0x02
            }

            If (SCMP (_OS, "Microsoft WindowsME: Millennium Edition"))
            {
                WNOS = 0x03
            }

            If (CondRefOf (_OSI, Local0))
            {
                If (SCMP (_OS, "Windows 2006"))
                {
                    WNOS = 0x05
                }
                ElseIf (SCMP (_OS, "Windows 2009"))
                {
                    WNOS = 0x06
                }
                Else
                {
                    WNOS = 0x04
                }
            }
        }

        Return (WNOS) /* \WNOS */
    }

    Name (MYOS, Zero)
    Name (HTTS, Zero)
    Method (SEQL, 2, Serialized)
    {
        Local0 = SizeOf (Arg0)
        Local1 = SizeOf (Arg1)
        If ((Local0 != Local1))
        {
            Return (Zero)
        }

        Name (BUF0, Buffer (Local0) {})
        BUF0 = Arg0
        Name (BUF1, Buffer (Local0) {})
        BUF1 = Arg1
        Local2 = Zero
        While ((Local2 < Local0))
        {
            Local3 = DerefOf (BUF0 [Local2])
            Local4 = DerefOf (BUF1 [Local2])
            If ((Local3 != Local4))
            {
                Return (Zero)
            }

            Local2++
        }

        Return (One)
    }

    Name (OSTB, Ones)
    Name (TPOS, Zero)
    Name (LINX, Zero)
    Name (OSSP, Zero)
    Method (OSTP, 0, NotSerialized)
    {
        If ((OSTB == Ones))
        {
            If (CondRefOf (_OSI, Local0))
            {
                OSTB = Zero
                TPOS = Zero
                If (_OSI ("Windows 2001"))
                {
                    OSTB = 0x08
                    TPOS = 0x08
                }

                If (_OSI ("Windows 2001.1"))
                {
                    OSTB = 0x20
                    TPOS = 0x20
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    OSTB = 0x10
                    TPOS = 0x10
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    OSTB = 0x11
                    TPOS = 0x11
                }

                If (_OSI ("Windows 2001 SP3"))
                {
                    OSTB = 0x12
                    TPOS = 0x12
                }

                If (_OSI ("Windows 2006"))
                {
                    OSTB = 0x40
                    TPOS = 0x40
                }

                If (_OSI ("Windows 2006 SP1"))
                {
                    OSTB = 0x41
                    TPOS = 0x41
                    OSSP = One
                }

                If (_OSI ("Windows 2009"))
                {
                    OSSP = One
                    OSTB = 0x50
                    TPOS = 0x50
                }

                If (_OSI ("Linux"))
                {
                    LINX = One
                    OSTB = 0x80
                    TPOS = 0x80
                }
            }
            ElseIf (CondRefOf (_OS, Local0))
            {
                If (SEQL (_OS, "Microsoft Windows"))
                {
                    OSTB = One
                    TPOS = One
                }
                ElseIf (SEQL (_OS, "Microsoft WindowsME: Millennium Edition"))
                {
                    OSTB = 0x02
                    TPOS = 0x02
                }
                ElseIf (SEQL (_OS, "Microsoft Windows NT"))
                {
                    OSTB = 0x04
                    TPOS = 0x04
                }
                Else
                {
                    OSTB = Zero
                    TPOS = Zero
                }
            }
            Else
            {
                OSTB = Zero
                TPOS = Zero
            }
        }

        Return (OSTB) /* \OSTB */
    }

    Scope (_PR)
    {
        Processor (C000, 0x00, 0x00000410, 0x06) {}
        Processor (C001, 0x01, 0x00000000, 0x00) {}
        Processor (C002, 0x02, 0x00000000, 0x00) {}
        Processor (C003, 0x03, 0x00000000, 0x00) {}
    }

    Name (ECON, Zero)
    Name (APTG, Zero)
    Name (APEJ, Zero)
    Name (APSD, Zero)
    Name (_S0, Package (0x04)  // _S0_: S0 System State
    {
        Zero,
        Zero,
        Zero,
        Zero
    })
    If ((DAS1 == One))
    {
        Name (_S1, Package (0x04)  // _S1_: S1 System State
        {
            One,
            Zero,
            Zero,
            Zero
        })
    }

    If ((DAS3 == One))
    {
        Name (_S3, Package (0x04)  // _S3_: S3 System State
        {
            0x03,
            Zero,
            Zero,
            Zero
        })
    }

    Name (_S4, Package (0x04)  // _S4_: S4 System State
    {
        0x04,
        Zero,
        Zero,
        Zero
    })
    Name (_S5, Package (0x04)  // _S5_: S5 System State
    {
        0x05,
        Zero,
        Zero,
        Zero
    })
    Scope (_GPE)
    {
        Method (_L08, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
        {
            Notify (\_SB.PCI0.PB2, 0x02) // Device Wake
            Notify (\_SB.PCI0.PB4, 0x02) // Device Wake
            Notify (\_SB.PCI0.PB5, 0x02) // Device Wake
            Notify (\_SB.PCI0.PB6, 0x02) // Device Wake
            Notify (\_SB.PCI0.PB7, 0x02) // Device Wake
            Notify (\_SB.PCI0.PB9, 0x02) // Device Wake
            Notify (\_SB.PCI0.PB10, 0x02) // Device Wake
        }

        Method (_L04, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
        {
            Notify (\_SB.PCI0.P2P, 0x02) // Device Wake
            Notify (\_SB.PWRB, 0x02) // Device Wake
        }

        Method (_L18, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
        {
            Notify (\_SB.PCI0.USB0, 0x02) // Device Wake
            Notify (\_SB.PCI0.USB1, 0x02) // Device Wake
            Notify (\_SB.PCI0.USB2, 0x02) // Device Wake
            Notify (\_SB.PCI0.USB3, 0x02) // Device Wake
            Notify (\_SB.PCI0.USB4, 0x02) // Device Wake
            Notify (\_SB.PCI0.USB5, 0x02) // Device Wake
            Notify (\_SB.PCI0.USB6, 0x02) // Device Wake
            Notify (\_SB.PWRB, 0x02) // Device Wake
        }

        Method (_L12, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
        {
            Notify (\_SB.PCI0.PB4, 0x02) // Device Wake
            Notify (\_SB.PCI0.PB5, 0x02) // Device Wake
            Notify (\_SB.PCI0.PB6, 0x02) // Device Wake
            Notify (\_SB.PCI0.PB7, 0x02) // Device Wake
            Notify (\_SB.PWRB, 0x02) // Device Wake
        }

        Method (_L15, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
        {
            P80H = 0x15
            Name (HPOK, Zero)
            Sleep (0xC8)
            If (\_SB.PCI0.SMBS.GE21)
            {
                \_SB.PCI0.SMBS.E21C = Zero
                P80H = 0x0F05
            }
            Else
            {
                \_SB.PCI0.SMBS.E21C = One
                P80H = 0x0205
            }

            Notify (\_SB.PCI0.SPB0, Zero) // Bus Check
        }
    }

    Scope (_TZ)
    {
        Name (DTMP, 0x0BBA)
        Name (DAC0, 0x0CA0)
        Name (DPSV, 0x1088)
        Name (TBSE, 0x0AAC)
        Name (DCRT, 0x127C)
        ThermalZone (THRM)
        {
            Method (_TMP, 0, NotSerialized)  // _TMP: Temperature
            {
                If ((\_SB.PCI0.LPC0.EC0.ECK == One))
                {
                    Local0 = (\_SB.PCI0.LPC0.EC0.CTMP * 0x0A)
                    Local0 += 0x0AAC
                    Return (Local0)
                }

                Return (DTMP) /* \_TZ_.DTMP */
            }

            Method (_AC0, 0, NotSerialized)  // _ACx: Active Cooling
            {
                Return (DAC0) /* \_TZ_.DAC0 */
            }

            Method (_CRT, 0, NotSerialized)  // _CRT: Critical Temperature
            {
                Return (DCRT) /* \_TZ_.DCRT */
            }

            Method (_PSV, 0, NotSerialized)  // _PSV: Passive Temperature
            {
                Return (DPSV) /* \_TZ_.DPSV */
            }

            Method (_PSL, 0, Serialized)  // _PSL: Passive List
            {
                If ((CPUN == One))
                {
                    Return (Package (0x01)
                    {
                        \_PR.C000
                    })
                }
                ElseIf ((CPUN == 0x02))
                {
                    Return (Package (0x02)
                    {
                        \_PR.C000,
                        \_PR.C001
                    })
                }
                ElseIf ((CPUN == 0x03))
                {
                    Return (Package (0x03)
                    {
                        \_PR.C000,
                        \_PR.C001,
                        \_PR.C002
                    })
                }
                ElseIf ((CPUN == 0x04))
                {
                    Return (Package (0x04)
                    {
                        \_PR.C000,
                        \_PR.C001,
                        \_PR.C002,
                        \_PR.C003
                    })
                }
            }

            Name (_TC1, 0x02)  // _TC1: Thermal Constant 1
            Name (_TC2, 0x05)  // _TC2: Thermal Constant 2
            Name (_TSP, 0x012C)  // _TSP: Thermal Sampling Period
        }

        ThermalZone (THR1)
        {
            Method (_TMP, 0, NotSerialized)  // _TMP: Temperature
            {
                If ((\_SB.PCI0.LPC0.EC0.ECK == One))
                {
                    Local0 = (\_SB.PCI0.LPC0.EC0.SKTA * 0x0A)
                    Local0 += 0x0AAC
                    Return (Local0)
                }

                Return (DTMP) /* \_TZ_.DTMP */
            }

            Method (_AC0, 0, NotSerialized)  // _ACx: Active Cooling
            {
                Return (DAC0) /* \_TZ_.DAC0 */
            }

            Method (_CRT, 0, NotSerialized)  // _CRT: Critical Temperature
            {
                Return (DCRT) /* \_TZ_.DCRT */
            }

            Method (_PSV, 0, NotSerialized)  // _PSV: Passive Temperature
            {
                Return (DPSV) /* \_TZ_.DPSV */
            }

            Method (_PSL, 0, Serialized)  // _PSL: Passive List
            {
                Return (Package (0x02)
                {
                    \_PR.C000,
                    \_PR.C001
                })
            }

            Name (_TC1, 0x02)  // _TC1: Thermal Constant 1
            Name (_TC2, 0x05)  // _TC2: Thermal Constant 2
            Name (_TSP, 0x012C)  // _TSP: Thermal Sampling Period
        }
    }

    Name (GPIC, Zero)
    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
    {
        GPIC = Arg0
        If (GPIC)
        {
            \_SB.DSPI ()
        }
    }

    Method (_PTS, 1, NotSerialized)  // _PTS: Prepare To Sleep
    {
        SPTS (Arg0)
        If ((Arg0 == One))
        {
            IO80 = 0x51
            \_SB.S80H (0x51)
        }

        If ((Arg0 == 0x03))
        {
            IO80 = 0x53
            \_SB.S80H (0x53)
            Local0 = \_SB.PCI0.LPC0.EC0.ADPT
            If (Local0)
            {
                \_SB.PCI0.LPC0.EC0.UWAK = One
            }
            Else
            {
                \_SB.PCI0.LPC0.EC0.UWAK = Zero
            }

            \_SB.PCI0.LPC0.EC0.UWAK = One
            \_SB.PCI0.SMBS.SLPS = One
        }

        If ((Arg0 == 0x04))
        {
            IO80 = 0x54
            \_SB.S80H (0x54)
            \_SB.GSMI (0x82)
            \_SB.PCI0.SMBS.SLPS = One
            \_SB.PCI0.SMBS.RSTU = One
        }

        If ((Arg0 == 0x05))
        {
            IO80 = 0x55
            \_SB.S80H (0x55)
            \_SB.GSMI (0x03)
        }
    }

    Method (_WAK, 1, NotSerialized)  // _WAK: Wake
    {
        SWAK (Arg0)
        If ((Arg0 == One))
        {
            IO80 = 0xE1
            \_SB.S80H (0xE1)
            \_SB.PCI0.P2P.PR4B = 0xF1
        }

        If ((Arg0 == 0x03))
        {
            IO80 = 0xE3
            \_SB.S80H (0xE3)
            \_SB.PCI0.SATA.ELDS ()
            \_SB.PCI0.AMD3.HTCS ()
            \_SB.PCI0.SMBS.E06C = Zero
        }

        If ((Arg0 == 0x04))
        {
            IO80 = 0xE4
            \_SB.S80H (0xE4)
            \_SB.PCI0._INI ()
            \_SB.PCI0.SATA.ELDS ()
            Notify (\_SB.PWRB, 0x02) // Device Wake
        }

        Return (Zero)
    }

    Scope (_SB)
    {
        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */)  // _HID: Hardware ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0B)
            }
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
            Name (_ADR, Zero)  // _ADR: Address
            OperationRegion (SCTH, PCI_Config, 0x7A, One)
            Field (SCTH, ByteAcc, NoLock, Preserve)
            {
                RSMF,   1
            }

            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                If ((GPIC == Zero)) {}
                Else
                {
                    DSPI ()
                }

                OSTP ()
                CHKH ()
                If (CondRefOf (_OSI, Local0))
                {
                    MYOS = Zero
                }
                ElseIf ((SizeOf (_OS) == 0x14))
                {
                    MYOS = One
                }
                ElseIf ((SizeOf (_OS) == 0x27))
                {
                    MYOS = 0x02
                }
                Else
                {
                    MYOS = 0x03
                }

                ^AMD3.HTCS ()
            }

            OperationRegion (NBMS, PCI_Config, 0x60, 0x08)
            Field (NBMS, DWordAcc, NoLock, Preserve)
            {
                MIDX,   32,
                MIDR,   32
            }

            Mutex (NBMM, 0x00)
            Method (NBMR, 1, NotSerialized)
            {
                Acquire (NBMM, 0xFFFF)
                Local0 = (Arg0 & 0x7F)
                MIDX = Local0
                Local0 = MIDR /* \_SB_.PCI0.MIDR */
                MIDX = 0x7F
                Release (NBMM)
                Return (Local0)
            }

            Method (NBMW, 2, NotSerialized)
            {
                Acquire (NBMM, 0xFFFF)
                Local0 = (Arg0 & 0x7F)
                Local0 |= 0x80
                MIDX = Local0
                MIDR = Arg1
                MIDX = Local0 &= 0x7F
                Release (NBMM)
            }

            OperationRegion (NBXP, PCI_Config, 0xE0, 0x08)
            Field (NBXP, DWordAcc, NoLock, Preserve)
            {
                NBXI,   32,
                NBXD,   32
            }

            Mutex (NBXM, 0x00)
            Method (NBXR, 1, NotSerialized)
            {
                Acquire (NBXM, 0xFFFF)
                NBXI = Arg0
                Local0 = NBXD /* \_SB_.PCI0.NBXD */
                NBXI = Zero
                Release (NBXM)
                Return (Local0)
            }

            Method (NBXW, 2, NotSerialized)
            {
                Acquire (NBXM, 0xFFFF)
                NBXI = Arg0
                NBXD = Arg1
                NBXI = Zero
                Release (NBXM)
            }

            Method (GFXM, 0, NotSerialized)
            {
                Local0 = NBMR (0x08)
                Local0 &= 0x0F
                Return (Local0)
            }

            Method (GPPM, 0, NotSerialized)
            {
                Local0 = NBMR (0x31)
                Local0 &= 0x0F
                Return (Local0)
            }

            Method (XPTR, 2, NotSerialized)
            {
                If (((Arg0 < 0x02) && (Arg0 > 0x07)))
                {
                    Return (Zero)
                }
                Else
                {
                    Local0 = One
                    If ((Arg0 < 0x04))
                    {
                        Local1 = (Arg0 + 0x02)
                    }
                    Else
                    {
                        Local1 = (Arg0 + 0x11)
                    }

                    Local0 <<= Local1
                    Local2 = NBMR (0x08)
                    If (Arg1)
                    {
                        Local2 &= ~Local0
                    }
                    Else
                    {
                        Local2 |= Local0
                    }

                    NBMW (0x08, Local2)
                    Return (Ones)
                }
            }

            Method (GPPX, 0, NotSerialized)
            {
                Local0 = NBMR (0x2D)
                Local0 >>= 0x07
                Local0 &= 0x0F
                Return (Local0)
            }

            Name (_UID, One)  // _UID: Unique ID
            Name (_BBN, Zero)  // _BBN: BIOS Bus Number
            Name (SUPP, Zero)
            Name (CTRL, Zero)
            Name (AMHP, Zero)
            Method (XOSC, 4, NotSerialized)
            {
                CreateDWordField (Arg3, Zero, CDW1)
                CreateDWordField (Arg3, 0x04, CDW2)
                CreateDWordField (Arg3, 0x08, CDW3)
                If ((OSTB != 0x41))
                {
                    CDW1 |= 0x02
                    Return (Arg3)
                }

                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
                {
                    SUPP = CDW2 /* \_SB_.PCI0.XOSC.CDW2 */
                    CTRL = CDW3 /* \_SB_.PCI0.XOSC.CDW3 */
                    If (((SUPP & 0x16) != 0x16))
                    {
                        (CTRL & 0x1E)
                    }

                    CTRL &= 0x1D
                    If (~(CDW1 & One))
                    {
                        If ((CTRL & One)) {}
                        If ((CTRL & 0x04))
                        {
                            ^SMBS.EPNM = One
                            ^SMBS.DPPF = Zero
                            ^SMBS.PWDE = One
                        }
                        Else
                        {
                            ^SMBS.EPNM = Zero
                            ^SMBS.DPPF = One
                            ^SMBS.PWDE = Zero
                        }

                        If ((CTRL & 0x10)) {}
                    }

                    If ((Arg1 != One))
                    {
                        CDW1 |= 0x08
                    }

                    If ((CDW3 != CTRL))
                    {
                        CDW1 |= 0x10
                    }

                    CDW3 = CTRL /* \_SB_.PCI0.CTRL */
                    Return (Arg3)
                }
                Else
                {
                    CDW1 |= 0x04
                    Return (Arg3)
                }
            }

            Method (TOM, 0, NotSerialized)
            {
                Local0 = (TOML * 0x00010000)
                Local1 = (TOMH * 0x01000000)
                Local0 += Local1
                Return (Local0)
            }

            OperationRegion (NBBR, PCI_Config, 0x1C, 0x08)
            Field (NBBR, DWordAcc, NoLock, Preserve)
            {
                BR3L,   32,
                BR3H,   32
            }

            OperationRegion (NBBI, PCI_Config, 0x84, 0x04)
            Field (NBBI, DWordAcc, NoLock, Preserve)
            {
                PARB,   32
            }

            Name (PX3L, 0x80000000)
            Name (PX3H, 0x80000000)
            Name (PX3S, 0x10000000)
            Name (PX3K, 0xF0000000)
            Mutex (BR3X, 0x00)
            Method (BR3M, 0, NotSerialized)
            {
                Local0 = PARB /* \_SB_.PCI0.PARB */
                Local0 >>= 0x10
                Local0 &= 0x07
                If (Local0)
                {
                    Local1 = (One << Local0)
                    Local1 = (0x1000 - Local1)
                    Local1 <<= 0x14
                    PX3K = Local1
                    Local1 = (One << Local0)
                    Local1 *= 0x00100000
                    PX3S = Local1
                }

                Acquire (BR3X, 0xFFFF)
                Local0 = NBMR (Zero)
                Local0 &= 0xFFFFFFF7
                NBMW (Zero, Local0)
                Local0 = BR3L /* \_SB_.PCI0.BR3L */
                Local0 &= PX3K /* \_SB_.PCI0.PX3K */
                PX3L = Local0
                Local0 = BR3H /* \_SB_.PCI0.BR3H */
                Local0 &= 0xFF
                PX3H = Local0
                Local0 = NBMR (Zero)
                Local0 |= 0x08
                NBMW (Zero, Local0)
                Release (BR3X)
                Return (PX3L) /* \_SB_.PCI0.PX3L */
            }

            Name (CRES, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, SubDecode,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x00FF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0100,             // Length
                    0x00,, )
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x0CF7,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0CF8,             // Length
                    0x00,, , TypeStatic)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0D00,             // Range Minimum
                    0xFFFF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0xF300,             // Length
                    ,, , TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000A0000,         // Range Minimum
                    0x000BFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00020000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadOnly,
                    0x00000000,         // Granularity
                    0x000C0000,         // Range Minimum
                    0x000C3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadOnly,
                    0x00000000,         // Granularity
                    0x000C4000,         // Range Minimum
                    0x000C7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadOnly,
                    0x00000000,         // Granularity
                    0x000C8000,         // Range Minimum
                    0x000CBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadOnly,
                    0x00000000,         // Granularity
                    0x000CC000,         // Range Minimum
                    0x000CFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D0000,         // Range Minimum
                    0x000D3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D4000,         // Range Minimum
                    0x000D7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D8000,         // Range Minimum
                    0x000DBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000DC000,         // Range Minimum
                    0x000DFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E0000,         // Range Minimum
                    0x000E3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E4000,         // Range Minimum
                    0x000E7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E8000,         // Range Minimum
                    0x000EBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000EC000,         // Range Minimum
                    0x000EFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0xFFFDFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    0x00,, _Y00, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xF0000000,         // Range Minimum
                    0xFED3FFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x10000000,         // Length
                    0x00,, _Y01, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFED45000,         // Range Minimum
                    0xFFFFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x012BB000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                IO (Decode16,
                    0x0CF8,             // Range Minimum
                    0x0CF8,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
            })
            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateDWordField (CRES, \_SB.PCI0._Y00._MIN, BTMN)  // _MIN: Minimum Base Address
                CreateDWordField (CRES, \_SB.PCI0._Y00._MAX, BTMX)  // _MAX: Maximum Base Address
                CreateDWordField (CRES, \_SB.PCI0._Y00._LEN, BTLN)  // _LEN: Length
                CreateDWordField (CRES, \_SB.PCI0._Y01._MIN, BTN1)  // _MIN: Minimum Base Address
                CreateDWordField (CRES, \_SB.PCI0._Y01._MAX, BTX1)  // _MAX: Maximum Base Address
                CreateDWordField (CRES, \_SB.PCI0._Y01._LEN, BTL1)  // _LEN: Length
                BTMN = TOM ()
                BTLN = (BR3M () - BTMN) /* \_SB_.PCI0._CRS.BTMN */
                BTMX = ((BTMN + BTLN) - One)
                Local0 = PX3S /* \_SB_.PCI0.PX3S */
                Local0 += BR3M ()
                BTN1 = Local0
                Local1 = BTX1 /* \_SB_.PCI0._CRS.BTX1 */
                Local2 = (Local1 - Local0)
                BTL1 = Local2
                Return (CRES) /* \_SB_.PCI0.CRES */
            }

            Device (MEMR)
            {
                Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (MEM1, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x00000000,         // Address Length
                        _Y02)
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x00000000,         // Address Length
                        _Y03)
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x00000000,         // Address Length
                        _Y04)
                    Memory32Fixed (ReadWrite,
                        0xFED80000,         // Address Base
                        0x00001000,         // Address Length
                        )
                })
                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y02._BAS, MB01)  // _BAS: Base Address
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y02._LEN, ML01)  // _LEN: Length
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y03._BAS, MB02)  // _BAS: Base Address
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y03._LEN, ML02)  // _LEN: Length
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y04._BAS, PEBS)  // _BAS: Base Address
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y04._LEN, PELN)  // _LEN: Length
                    If (GPIC)
                    {
                        MB01 = 0xFEC00000
                        MB02 = 0xFEE00000
                        ML01 = 0x1000
                        ML02 = 0x1000
                    }

                    PEBS = BR3M ()
                    PELN = PX3S /* \_SB_.PCI0.PX3S */
                    Return (MEM1) /* \_SB_.PCI0.MEMR.MEM1 */
                }
            }

            OperationRegion (NBRV, PCI_Config, 0x08, One)
            Field (NBRV, ByteAcc, NoLock, Preserve)
            {
                PREV,   8
            }

            Method (XCMP, 2, NotSerialized)
            {
                If ((0x10 != SizeOf (Arg0)))
                {
                    Return (Zero)
                }

                If ((0x10 != SizeOf (Arg1)))
                {
                    Return (Zero)
                }

                Local0 = Zero
                While ((Local0 < 0x10))
                {
                    If ((DerefOf (Arg0 [Local0]) != DerefOf (Arg1 [Local0]
                        )))
                    {
                        Return (Zero)
                    }

                    Local0++
                }

                Return (One)
            }

            Method (AFN0, 0, Serialized)
            {
                If ((PDDN == One))
                {
                    ^AGP.VGA.AFN0 ()
                }

                If ((PDDN == 0x02))
                {
                    ^PB2.VGA.AFN0 ()
                }

                If ((PDDN == 0x03))
                {
                    ^PB3.VGA.AFN0 ()
                }
            }

            Method (AFN1, 1, Serialized)
            {
            }

            Method (AFN2, 2, Serialized)
            {
            }

            Method (AFN3, 2, Serialized)
            {
                If ((PDDN == One))
                {
                    ^AGP.VGA.AFN3 (Arg0, Arg1)
                }

                If ((PDDN == 0x02))
                {
                    ^PB2.VGA.AFN3 (Arg0, Arg1)
                }

                If ((PDDN == 0x03))
                {
                    ^PB3.VGA.AFN3 (Arg0, Arg1)
                }
            }

            Method (AFN4, 1, Serialized)
            {
                If ((PDDN == One))
                {
                    ^AGP.VGA.AFN4 (Arg0)
                }

                If ((PDDN == 0x02))
                {
                    ^PB2.VGA.AFN4 (Arg0)
                }

                If ((PDDN == 0x03))
                {
                    ^PB3.VGA.AFN4 (Arg0)
                }
            }

            Method (AFN5, 0, Serialized)
            {
                If ((PDDN == One))
                {
                    ^AGP.VGA.AFN5 ()
                }

                If ((PDDN == 0x02))
                {
                    ^PB2.VGA.AFN5 ()
                }

                If ((PDDN == 0x03))
                {
                    ^PB3.VGA.AFN5 ()
                }
            }

            Method (AFN6, 0, Serialized)
            {
                If ((PDDN == One))
                {
                    ^AGP.VGA.AFN6 ()
                }

                If ((PDDN == 0x02))
                {
                    ^PB2.VGA.AFN6 ()
                }

                If ((PDDN == 0x03))
                {
                    ^PB3.VGA.AFN6 ()
                }
            }

            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
            {
                If ((GPIC == Zero))
                {
                    Return (PICM) /* \_SB_.PCI0.PICM */
                }
                Else
                {
                    Return (APIC) /* \_SB_.PCI0.APIC */
                }
            }

            Name (PICM, Package (0x31)
            {
                Package (0x04)
                {
                    0x0001FFFF,
                    Zero,
                    LNKC,
                    Zero
                },

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                Package (0x04)
                {
                    0x0009FFFF,
                    Zero,
                    LNKB,
                    Zero
                },

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                Package (0x04)
                {
                    0x0015FFFF,
                    0x03,
                    LNKD,
                    Zero
                }
            })
            Name (APIC, Package (0x31)
            {
                Package (0x04)
                {
                    0x0001FFFF,
                    Zero,
                    Zero,
                    0x12
                },

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                Package (0x04)
                {
                    0x0015FFFF,
                    0x03,
                    Zero,
                    0x13
                }
            })
            Device (AGP)
            {
                Name (_ADR, 0x00010000)  // _ADR: Address
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If ((GPIC == Zero))
                    {
                        Return (PIC) /* \_SB_.PCI0.AGP_.PIC_ */
                    }
                    Else
                    {
                        Return (APIC) /* \_SB_.PCI0.AGP_.APIC */
                    }
                }

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

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

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

                    Package (0x04)
                    {
                        0x0005FFFF,
                        0x03,
                        LNKB,
                        Zero
                    }
                })
                Name (APIC, Package (0x04)
                {
                    Package (0x04)
                    {
                        0x0005FFFF,
                        Zero,
                        Zero,
                        0x12
                    },

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

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

                    Package (0x04)
                    {
                        0x0005FFFF,
                        0x03,
                        Zero,
                        0x11
                    }
                })
                Name (PXEN, 0x80000000)
                Name (PXID, 0x00020000)
                Name (PXMX, 0x80000000)
                Device (VGA)
                {
                    Name (_ADR, 0x00050000)  // _ADR: Address
                    Name (DOSA, Zero)
                    Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching
                    {
                        DOSA = Arg0
                    }

                    Method (_DOD, 0, NotSerialized)  // _DOD: Display Output Devices
                    {
                        Name (DODL, Package (0x05)
                        {
                            0x00010100,
                            0x00010110,
                            0x0200,
                            0x00010210,
                            0x00010220
                        })
                        Return (DODL) /* \_SB_.PCI0.AGP_.VGA_._DOD.DODL */
                    }

                    Device (LCD)
                    {
                        Name (_ADR, 0x0110)  // _ADR: Address
                        Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
                        {
                            Return (Package (0x0D)
                            {
                                0x46,
                                0x28,
                                Zero,
                                0x0A,
                                0x14,
                                0x1E,
                                0x28,
                                0x32,
                                0x3C,
                                0x46,
                                0x50,
                                0x5A,
                                0x64
                            })
                        }

                        Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
                        {
                            P80H = 0x35
                            Divide (Arg0, 0x0A, Local0, Local1)
                            ^^^^LPC0.EC0.BRTS = Local1
                        }

                        Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
                        {
                            Local0 = (^^^^LPC0.EC0.BRTS * 0x0A)
                            Return (Local0)
                        }
                    }

                    Name (ATIB, Buffer (0x0100) {})
                    Method (ATIF, 2, Serialized)
                    {
                        If ((Arg0 == Zero))
                        {
                            Return (AF00 ())
                        }

                        If ((Arg0 == One))
                        {
                            Return (AF01 ())
                        }

                        If ((Arg0 == 0x02))
                        {
                            Return (AF02 ())
                        }

                        If ((Arg0 == 0x03))
                        {
                            Return (AF03 (DerefOf (Arg1 [0x02]), DerefOf (Arg1 [0x04])))
                        }

                        If ((Arg0 == 0x0F))
                        {
                            Return (AF15 ())
                        }
                        Else
                        {
                            CreateWordField (ATIB, Zero, SSZE)
                            CreateWordField (ATIB, 0x02, VERN)
                            CreateDWordField (ATIB, 0x04, NMSK)
                            CreateDWordField (ATIB, 0x08, SFUN)
                            SSZE = Zero
                            VERN = Zero
                            NMSK = Zero
                            SFUN = Zero
                            Return (ATIB) /* \_SB_.PCI0.AGP_.VGA_.ATIB */
                        }
                    }

                    Method (AF00, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, VERN)
                        CreateDWordField (ATIB, 0x04, NMSK)
                        CreateDWordField (ATIB, 0x08, SFUN)
                        SSZE = 0x0C
                        VERN = One
                        If ((PXEN == 0x80000000))
                        {
                            NMSK = 0x11
                        }
                        Else
                        {
                            NMSK = 0x51
                        }

                        MSKN = NMSK /* \_SB_.PCI0.AGP_.VGA_.AF00.NMSK */
                        SFUN = 0x4007
                        Return (ATIB) /* \_SB_.PCI0.AGP_.VGA_.ATIB */
                    }

                    Method (AF01, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, VMSK)
                        CreateDWordField (ATIB, 0x06, FLGS)
                        SSZE = 0x0A
                        VMSK = 0x0B
                        SSZE = 0x0A
                        FLGS = 0x0B
                        Return (ATIB) /* \_SB_.PCI0.AGP_.VGA_.ATIB */
                    }

                    Name (PSBR, Buffer (0x04)
                    {
                         0x00, 0x00, 0x00, 0x00                           /* .... */
                    })
                    Name (MSKN, Zero)
                    Name (SEXM, Zero)
                    Name (STHG, Zero)
                    Name (STHI, Zero)
                    Name (SFPG, Zero)
                    Name (SFPI, Zero)
                    Name (SSPS, Zero)
                    Name (SSDM, 0x0A)
                    Name (SCDY, Zero)
                    Name (SACT, Buffer (0x07)
                    {
                         0x01, 0x02, 0x08, 0x80, 0x03, 0x09, 0x81         /* ....... */
                    })
                    Method (AF02, 0, NotSerialized)
                    {
                        CreateBitField (PSBR, Zero, PDSW)
                        CreateBitField (PSBR, One, PEXM)
                        CreateBitField (PSBR, 0x02, PTHR)
                        CreateBitField (PSBR, 0x03, PFPS)
                        CreateBitField (PSBR, 0x04, PSPS)
                        CreateBitField (PSBR, 0x05, PDCC)
                        CreateBitField (PSBR, 0x06, PXPS)
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, PSBI)
                        CreateByteField (ATIB, 0x06, EXPM)
                        CreateByteField (ATIB, 0x07, THRM)
                        CreateByteField (ATIB, 0x08, THID)
                        CreateByteField (ATIB, 0x09, FPWR)
                        CreateByteField (ATIB, 0x0A, FPID)
                        CreateByteField (ATIB, 0x0B, SPWR)
                        SSZE = 0x0C
                        PSBI = PSBR /* \_SB_.PCI0.AGP_.VGA_.PSBR */
                        If (PDSW)
                        {
                            PDSW = Zero
                        }

                        If (PEXM)
                        {
                            EXPM = SEXM /* \_SB_.PCI0.AGP_.VGA_.SEXM */
                            SEXM = Zero
                            PEXM = Zero
                        }

                        If (PTHR)
                        {
                            THRM = STHG /* \_SB_.PCI0.AGP_.VGA_.STHG */
                            THID = STHI /* \_SB_.PCI0.AGP_.VGA_.STHI */
                            STHG = Zero
                            STHI = Zero
                            PTHR = Zero
                        }

                        If (PFPS)
                        {
                            FPWR = SFPG /* \_SB_.PCI0.AGP_.VGA_.SFPG */
                            FPWR = SFPI /* \_SB_.PCI0.AGP_.VGA_.SFPI */
                            SFPG = Zero
                            SFPI = Zero
                            PFPS = Zero
                        }

                        If (PSPS)
                        {
                            SPWR = SSPS /* \_SB_.PCI0.AGP_.VGA_.SSPS */
                            PSPS = Zero
                        }

                        If (PXPS)
                        {
                            PXPS = Zero
                        }

                        Return (ATIB) /* \_SB_.PCI0.AGP_.VGA_.ATIB */
                    }

                    Method (AF03, 2, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, SSDP)
                        CreateWordField (ATIB, 0x04, SCDP)
                        SSDP = Arg0
                        SCDP = Arg1
                        Name (NXTD, 0x06)
                        Name (CIDX, 0x06)
                        Local1 = SSDP /* \_SB_.PCI0.AGP_.VGA_.AF03.SSDP */
                        Local1 &= 0x8B
                        Local2 = SCDP /* \_SB_.PCI0.AGP_.VGA_.AF03.SCDP */
                        If (CondRefOf (^^^^LID._LID, Local4))
                        {
                            Local2 &= 0xFFFFFFFE
                            Local2 |= ^^^^LID._LID ()
                        }
                        Else
                        {
                            Local2 |= One
                        }

                        P80H = Local2
                        Local0 = Zero
                        While ((Local0 < SizeOf (SACT)))
                        {
                            Local3 = DerefOf (SACT [Local0])
                            If ((Local3 == Local1))
                            {
                                CIDX = Local0
                                Local0 = SizeOf (SACT)
                            }
                            Else
                            {
                                Local0++
                            }
                        }

                        Local0 = CIDX /* \_SB_.PCI0.AGP_.VGA_.AF03.CIDX */
                        While ((Local0 < SizeOf (SACT)))
                        {
                            Local0++
                            If ((Local0 == SizeOf (SACT)))
                            {
                                Local0 = Zero
                            }

                            Local3 = DerefOf (SACT [Local0])
                            If (((Local3 & Local2) == Local3))
                            {
                                NXTD = Local0
                                Local0 = SizeOf (SACT)
                            }
                        }

                        If ((NXTD == SizeOf (SACT)))
                        {
                            SSDP = Zero
                        }
                        Else
                        {
                            Local0 = NXTD /* \_SB_.PCI0.AGP_.VGA_.AF03.NXTD */
                            Local3 = DerefOf (SACT [Local0])
                            SSDP &= 0xFFFFFFF4
                            SSDP |= Local3
                        }

                        SSZE = 0x04
                        P80H = SSDP /* \_SB_.PCI0.AGP_.VGA_.AF03.SSDP */
                        Return (ATIB) /* \_SB_.PCI0.AGP_.VGA_.ATIB */
                    }

                    Method (AFN0, 0, Serialized)
                    {
                        If ((MSKN & One))
                        {
                            CreateBitField (PSBR, Zero, PDSW)
                            PDSW = One
                            Notify (VGA, 0x81) // Information Change
                        }
                    }

                    Method (AFN3, 2, Serialized)
                    {
                        If ((MSKN & 0x08))
                        {
                            Local0 = Arg0
                            SFPI = Local0
                            Local0 = Arg1
                            SFPG = Local0 &= 0x03
                            CreateBitField (PSBR, 0x03, PFPS)
                            PFPS = One
                            Notify (VGA, 0x81) // Information Change
                        }
                    }

                    Method (AFN4, 1, Serialized)
                    {
                        If ((MSKN & 0x10))
                        {
                            Local0 = Arg0
                            Local1 = SSPS /* \_SB_.PCI0.AGP_.VGA_.SSPS */
                            SSPS = Local0
                            If ((Local0 == Local1)) {}
                            Else
                            {
                                CreateBitField (PSBR, 0x04, PSPS)
                                PSPS = One
                                Notify (VGA, 0x81) // Information Change
                            }
                        }
                    }

                    Method (AFN5, 0, Serialized)
                    {
                        If ((MSKN & 0x20))
                        {
                            CreateBitField (PSBR, 0x05, PDCC)
                            PDCC = One
                            Notify (VGA, 0x81) // Information Change
                        }
                    }

                    Method (AFN6, 0, Serialized)
                    {
                        If ((MSKN & 0x40))
                        {
                            CreateBitField (PSBR, 0x06, PXPS)
                            PXPS = One
                            Notify (VGA, 0x81) // Information Change
                        }
                    }

                    Method (AF15, 0, NotSerialized)
                    {
                        P80H = 0xFF
                        CreateWordField (ATIB, 0x02, DSZE)
                        DSZE = 0x08
                        Acquire (^^^LPC0.PSMX, 0xFFFF)
                        BCMD = 0x8D
                        DID = 0x0F
                        INFO = ATIB /* \_SB_.PCI0.AGP_.VGA_.ATIB */
                        BSMI (Zero)
                        ATIB = INFO /* \INFO */
                        Release (^^^LPC0.PSMX)
                        Return (ATIB) /* \_SB_.PCI0.AGP_.VGA_.ATIB */
                    }
                }

                Scope (VGA)
                {
                    OperationRegion (REVD, SystemMemory, 0xDFEBCE98, 0x00000008)
                    Field (REVD, AnyAcc, NoLock, Preserve)
                    {
                        SROM,   32,
                        VROM,   32
                    }

                    Name (TVGA, Buffer (0x0004)
                    {
                         0x00                                             /* . */
                    })
                    Method (XTRM, 2, Serialized)
                    {
                        Local0 = (Arg0 + Arg1)
                        If ((Local0 <= SROM))
                        {
                            Local1 = (Arg1 * 0x08)
                            Local2 = (Arg0 * 0x08)
                            TVGA = VROM /* \_SB_.PCI0.AGP_.VGA_.VROM */
                            CreateField (TVGA, Local2, Local1, TEMP)
                            Name (RETB, Buffer (Arg1) {})
                            RETB = TEMP /* \_SB_.PCI0.AGP_.VGA_.XTRM.TEMP */
                            Return (RETB) /* \_SB_.PCI0.AGP_.VGA_.XTRM.RETB */
                        }
                        ElseIf ((Arg0 < SROM))
                        {
                            Local3 = (SROM - Arg0)
                            Local1 = (Local3 * 0x08)
                            Local2 = (Arg0 * 0x08)
                            TVGA = VROM /* \_SB_.PCI0.AGP_.VGA_.VROM */
                            CreateField (TVGA, Local2, Local1, TEM)
                            Name (RETC, Buffer (Local3) {})
                            RETC = TEM /* \_SB_.PCI0.AGP_.VGA_.XTRM.TEM_ */
                            Return (RETC) /* \_SB_.PCI0.AGP_.VGA_.XTRM.RETC */
                        }
                        Else
                        {
                            Name (RETD, Buffer (One) {})
                            Return (RETD) /* \_SB_.PCI0.AGP_.VGA_.XTRM.RETD */
                        }
                    }
                }

                Scope (VGA)
                {
                    Name (ATPB, Buffer (0x0100) {})
                    Name (DSID, Ones)
                    Name (HSID, Ones)
                    Name (CNT0, Buffer (0x05)
                    {
                         0x05, 0x00, 0x00, 0x10, 0x01                     /* ..... */
                    })
                    Name (CNT1, Buffer (0x05)
                    {
                         0x05, 0x01, 0x00, 0x00, 0x01                     /* ..... */
                    })
                    Name (CNT2, Buffer (0x05)
                    {
                         0x07, 0x03, 0x00, 0x10, 0x02                     /* ..... */
                    })
                    Name (CNT3, Buffer (0x05)
                    {
                         0x07, 0x07, 0x00, 0x20, 0x02                     /* ... . */
                    })
                    Name (CNT4, Buffer (0x05)
                    {
                         0x00, 0x09, 0x00, 0x30, 0x02                     /* ...0. */
                    })
                    Name (CNT5, Buffer (0x05)
                    {
                         0x05, 0x00, 0x01, 0x10, 0x01                     /* ..... */
                    })
                    Name (CNT6, Buffer (0x05)
                    {
                         0x05, 0x01, 0x01, 0x00, 0x01                     /* ..... */
                    })
                    Name (CNT7, Buffer (0x05)
                    {
                         0x07, 0x03, 0x01, 0x10, 0x02                     /* ..... */
                    })
                    Name (CNT8, Buffer (0x05)
                    {
                         0x07, 0x07, 0x01, 0x20, 0x02                     /* ... . */
                    })
                    Name (CNT9, Buffer (0x05)
                    {
                         0x00, 0x09, 0x01, 0x30, 0x02                     /* ...0. */
                    })
                    Method (ATPX, 2, Serialized)
                    {
                        If ((Arg0 == Zero))
                        {
                            Return (PX00 ())
                        }

                        If ((Arg0 == One))
                        {
                            Return (PX01 ())
                        }

                        If ((Arg0 == 0x02))
                        {
                            PX02 (DerefOf (Arg1 [0x02]))
                            Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */
                        }

                        If ((Arg0 == 0x03))
                        {
                            PX03 (DerefOf (Arg1 [0x02]))
                            Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */
                        }

                        If ((Arg0 == 0x04))
                        {
                            PX04 (DerefOf (Arg1 [0x02]))
                            Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */
                        }

                        If ((Arg0 == 0x08))
                        {
                            Return (PX08 ())
                        }

                        If ((Arg0 == 0x09))
                        {
                            Return (PX09 ())
                        }

                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, VERN)
                        CreateDWordField (ATPB, 0x04, SFUN)
                        SSZE = Zero
                        VERN = Zero
                        SFUN = Zero
                        Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */
                    }

                    Method (PX00, 0, NotSerialized)
                    {
                        P80H = 0xE0
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, VERN)
                        CreateDWordField (ATPB, 0x04, SFUN)
                        SSZE = 0x08
                        VERN = One
                        If ((PXEN == 0x80000000))
                        {
                            SFUN = Zero
                            Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */
                        }

                        If ((PXMX == 0x80000000))
                        {
                            SFUN = 0x018F
                        }
                        Else
                        {
                            SFUN = 0x0182
                        }

                        If ((PXID == ^^^PB3._ADR))
                        {
                            Local0 = ^^^PB3.VGA.SVID /* \_SB_.PCI0.PB3_.VGA_.SVID */
                            Local1 = ^^^PB3.HDAU.SVID /* \_SB_.PCI0.PB3_.HDAU.SVID */
                        }
                        Else
                        {
                            Local0 = ^^^PB2.VGA.SVID /* \_SB_.PCI0.PB2_.VGA_.SVID */
                            Local1 = ^^^PB2.HDAU.SVID /* \_SB_.PCI0.PB2_.HDAU.SVID */
                        }

                        If ((Local0 != Ones))
                        {
                            DSID = Local0
                        }

                        If ((Local1 != Ones))
                        {
                            HSID = Local1
                        }

                        Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */
                    }

                    Method (PX01, 0, NotSerialized)
                    {
                        P80H = 0xE1
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateDWordField (ATPB, 0x02, VMSK)
                        CreateDWordField (ATPB, 0x06, FLGS)
                        SSZE = 0x0A
                        VMSK = 0x7F
                        FLGS = 0x4B
                        Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */
                    }

                    Method (PX02, 1, NotSerialized)
                    {
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateByteField (ATPB, 0x02, PWST)
                        SSZE = 0x03
                        PWST = (Arg0 & One)
                        Name (HPOK, Zero)
                        If (PWST)
                        {
                            P80H = 0x11E2
                            ^^^SMBS.G45O = One
                            ^^^SMBS.G45E = Zero
                            Sleep (0x0A)
                            ^^^SMBS.G55O = One
                            ^^^SMBS.G55E = Zero
                            Sleep (0x64)
                            ^^^SMBS.MX32 = One
                            While ((^^^SMBS.G32I == Zero)) {}
                            ^^^SMBS.G35O = One
                            ^^^SMBS.G35E = Zero
                            P80H = 0x12E2
                            HPOK = Zero
                            Sleep (0x64)
                            Sleep (0x64)
                            If ((PXID == ^^^PB3._ADR))
                            {
                                XPTR (0x03, One)
                            }
                            Else
                            {
                                XPTR (0x02, One)
                            }

                            Sleep (0x14)
                            Local2 = Zero
                            While ((Local2 < 0x0F))
                            {
                                If ((PXID == ^^^PB3._ADR))
                                {
                                    ^^^PB3.PDC3 = One
                                }
                                Else
                                {
                                    ^^^PB2.PDC2 = One
                                }

                                Local4 = One
                                Local5 = 0xC8
                                While ((Local4 && Local5))
                                {
                                    If ((PXID == ^^^PB3._ADR))
                                    {
                                        Local6 = ^^^PB3.XPRD (0xA5)
                                    }
                                    Else
                                    {
                                        Local6 = ^^^PB2.XPRD (0xA5)
                                    }

                                    Local6 &= 0x7F
                                    If (((Local6 >= 0x10) && (Local6 != 0x7F)))
                                    {
                                        Local4 = Zero
                                    }
                                    Else
                                    {
                                        Sleep (0x05)
                                        Local5--
                                    }
                                }

                                If (!Local4)
                                {
                                    If ((PXID == ^^^PB3._ADR))
                                    {
                                        Local5 = ^^^PB3.XPDL ()
                                    }
                                    Else
                                    {
                                        Local5 = ^^^PB2.XPDL ()
                                    }

                                    If (Local5)
                                    {
                                        If ((PXID == ^^^PB3._ADR))
                                        {
                                            ^^^PB3.XPRT ()
                                        }
                                        Else
                                        {
                                            ^^^PB2.XPRT ()
                                        }

                                        Sleep (0x05)
                                        Local2++
                                    }
                                    ElseIf ((PXID == ^^^PB3._ADR))
                                    {
                                        MUXF = 0x18
                                    }
                                    Else
                                    {
                                        MUXF = 0x10
                                    }
                                }
                                Else
                                {
                                    Local2 = 0x10
                                }
                            }

                            If (!HPOK)
                            {
                                P80H = 0x13E2
                                If ((PXID == ^^^PB3._ADR))
                                {
                                    Local7 = ^^^PB3.VGA.DVID /* \_SB_.PCI0.PB3_.VGA_.DVID */
                                }
                                Else
                                {
                                    Local7 = ^^^PB2.VGA.DVID /* \_SB_.PCI0.PB2_.VGA_.DVID */
                                }

                                Sleep (0x0A)
                                Local4 = One
                                Local5 = 0x05
                                While ((Local4 && Local5))
                                {
                                    If ((PXID == ^^^PB3._ADR))
                                    {
                                        Local6 = ^^^PB3.XPRD (0xA5)
                                    }
                                    Else
                                    {
                                        Local6 = ^^^PB2.XPRD (0xA5)
                                    }

                                    Local6 &= 0x7F
                                    If ((Local6 <= 0x04))
                                    {
                                        Local4 = Zero
                                    }
                                    ElseIf ((PXID == ^^^PB3._ADR))
                                    {
                                        Local7 = ^^^PB3.VGA.DVID /* \_SB_.PCI0.PB3_.VGA_.DVID */
                                    }
                                    Else
                                    {
                                        Local7 = ^^^PB2.VGA.DVID /* \_SB_.PCI0.PB2_.VGA_.DVID */
                                    }
                                }

                                If ((PXID == ^^^PB3._ADR))
                                {
                                    XPTR (0x03, Zero)
                                }
                                Else
                                {
                                    XPTR (0x02, Zero)
                                }
                            }

                            P80H = 0x14E2
                        }
                        Else
                        {
                            P80H = 0x02E2
                            If ((PXID == ^^^PB3._ADR))
                            {
                                MUXF = 0x18
                            }
                            Else
                            {
                                MUXF = 0x10
                            }

                            BCMD = 0x85
                            BSMI (Zero)
                            ^^^SMBS.G35O = Zero
                            ^^^SMBS.G35E = Zero
                            ^^^SMBS.G55O = Zero
                            ^^^SMBS.G55E = Zero
                            Sleep (0x0A)
                            ^^^SMBS.G45O = Zero
                            ^^^SMBS.G45E = Zero
                            P80H = 0x03E2
                            If ((PXID == ^^^PB3._ADR))
                            {
                                ^^^PB3.PDC3 = One
                                Local7 = ^^^PB3.VGA.DVID /* \_SB_.PCI0.PB3_.VGA_.DVID */
                            }
                            Else
                            {
                                ^^^PB2.PDC2 = One
                                Local7 = ^^^PB2.VGA.DVID /* \_SB_.PCI0.PB2_.VGA_.DVID */
                            }

                            Sleep (0x0A)
                            Local4 = One
                            Local5 = 0x05
                            While ((Local4 && Local5))
                            {
                                If ((PXID == ^^^PB3._ADR))
                                {
                                    Local6 = ^^^PB3.XPRD (0xA5)
                                }
                                Else
                                {
                                    Local6 = ^^^PB2.XPRD (0xA5)
                                }

                                Local6 &= 0x7F
                                If ((Local6 <= 0x04))
                                {
                                    Local4 = Zero
                                }
                                ElseIf ((PXID == ^^^PB3._ADR))
                                {
                                    Local7 = ^^^PB3.VGA.DVID /* \_SB_.PCI0.PB3_.VGA_.DVID */
                                }
                                Else
                                {
                                    Local7 = ^^^PB2.VGA.DVID /* \_SB_.PCI0.PB2_.VGA_.DVID */
                                }
                            }

                            If ((PXID == ^^^PB3._ADR))
                            {
                                XPTR (0x03, Zero)
                            }
                            Else
                            {
                                XPTR (0x02, Zero)
                            }

                            HPOK = 0x02
                            P80H = 0x04E2
                        }

                        If (HPOK)
                        {
                            If (((HPOK == One) && (DSID != Ones)))
                            {
                                If ((PXID == ^^^PB3._ADR))
                                {
                                    Local7 = DSID /* \_SB_.PCI0.AGP_.VGA_.DSID */
                                    ^^^PB3.VGA.SMID = Local7
                                    Sleep (0x0A)
                                    Local7 = HSID /* \_SB_.PCI0.AGP_.VGA_.HSID */
                                    If ((Local7 != Ones))
                                    {
                                        ^^^PB3.HDAU.SMID = Local7
                                    }
                                }
                                Else
                                {
                                    Local7 = DSID /* \_SB_.PCI0.AGP_.VGA_.DSID */
                                    ^^^PB2.VGA.SMID = Local7
                                    Sleep (0x0A)
                                    Local7 = HSID /* \_SB_.PCI0.AGP_.VGA_.HSID */
                                    If ((Local7 != Ones))
                                    {
                                        ^^^PB2.HDAU.SMID = Local7
                                    }
                                }

                                Sleep (0x0A)
                            }

                            If ((PXID == ^^^PB3._ADR))
                            {
                                Notify (PB3, Zero) // Bus Check
                            }
                            Else
                            {
                                Notify (PB2, Zero) // Bus Check
                            }
                        }
                    }

                    Method (PX03, 1, NotSerialized)
                    {
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, DPSW)
                        SSZE = 0x04
                        DPSW = (Arg0 & One)
                        If (DPSW)
                        {
                            P80H = 0x02E3
                            ^^^SMBS.G06O = One
                            ^^^SMBS.G06E = Zero
                        }
                        Else
                        {
                            P80H = 0x01E3
                            ^^^SMBS.G06O = Zero
                            ^^^SMBS.G06E = Zero
                        }
                    }

                    Method (PX04, 1, NotSerialized)
                    {
                        P80H = 0xE4
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, ICSW)
                        SSZE = 0x04
                        ICSW = (Arg0 & One)
                        If (ICSW)
                        {
                            P80H = 0x02E4
                            ^^^SMBS.G20O = One
                            ^^^SMBS.G20E = Zero
                        }
                        Else
                        {
                            P80H = 0x01E4
                            ^^^SMBS.G20O = Zero
                            ^^^SMBS.G20E = Zero
                        }
                    }

                    Method (PX08, 0, NotSerialized)
                    {
                        P80H = 0xE8
                        CreateWordField (ATPB, Zero, CNUM)
                        CreateWordField (ATPB, 0x02, CSSZ)
                        CNUM = 0x0A
                        CSSZ = 0x05
                        CreateField (ATPB, 0x20, 0x28, CTI0)
                        CTI0 = CNT0 /* \_SB_.PCI0.AGP_.VGA_.CNT0 */
                        CreateField (ATPB, 0x48, 0x28, CTI1)
                        CTI1 = CNT1 /* \_SB_.PCI0.AGP_.VGA_.CNT1 */
                        CreateField (ATPB, 0x70, 0x28, CTI2)
                        CreateByteField (CNT2, Zero, FLG2)
                        If ((LPTY == One))
                        {
                            If ((M92D == One))
                            {
                                FLG2 = Zero
                            }

                            If ((M92D == 0x02))
                            {
                                FLG2 = 0x07
                            }
                        }

                        CTI2 = CNT2 /* \_SB_.PCI0.AGP_.VGA_.CNT2 */
                        CreateField (ATPB, 0x98, 0x28, CTI3)
                        CreateByteField (CNT3, Zero, FLG3)
                        If ((LPTY == Zero))
                        {
                            FLG3 = 0x07
                        }

                        If ((LPTY == One))
                        {
                            FLG3 = Zero
                            If ((M92D == 0x02))
                            {
                                FLG3 = 0x07
                            }
                        }

                        If ((LPTY == 0x02))
                        {
                            FLG3 = Zero
                            If ((M92D == 0x02))
                            {
                                FLG3 = 0x07
                            }
                        }

                        CTI3 = CNT3 /* \_SB_.PCI0.AGP_.VGA_.CNT3 */
                        CreateField (ATPB, 0xC0, 0x28, CTI4)
                        CTI4 = CNT4 /* \_SB_.PCI0.AGP_.VGA_.CNT4 */
                        CreateField (ATPB, 0xE8, 0x28, CTI5)
                        CTI5 = CNT5 /* \_SB_.PCI0.AGP_.VGA_.CNT5 */
                        CreateField (ATPB, 0x0110, 0x28, CTI6)
                        CTI6 = CNT6 /* \_SB_.PCI0.AGP_.VGA_.CNT6 */
                        CreateField (ATPB, 0x0138, 0x28, CTI7)
                        CreateByteField (CNT7, Zero, FLG7)
                        If ((LPTY == One))
                        {
                            If ((M92D == One))
                            {
                                FLG7 = Zero
                            }

                            If ((M92D == 0x02))
                            {
                                FLG7 = 0x07
                            }
                        }

                        CTI7 = CNT7 /* \_SB_.PCI0.AGP_.VGA_.CNT7 */
                        CreateField (ATPB, 0x0160, 0x28, CTI8)
                        CreateByteField (CNT8, Zero, FLG8)
                        If ((LPTY == Zero))
                        {
                            FLG8 = 0x07
                        }

                        If ((LPTY == One))
                        {
                            FLG8 = Zero
                        }

                        If ((LPTY == 0x02))
                        {
                            FLG8 = Zero
                        }

                        If ((M92D == 0x02))
                        {
                            FLG8 = 0x07
                        }

                        CTI8 = CNT8 /* \_SB_.PCI0.AGP_.VGA_.CNT8 */
                        CreateField (ATPB, 0x0188, 0x28, CTI9)
                        CreateByteField (CNT9, Zero, FLG9)
                        If ((M92D == 0x02))
                        {
                            FLG9 = 0x07
                        }

                        CTI9 = CNT9 /* \_SB_.PCI0.AGP_.VGA_.CNT9 */
                        Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */
                    }

                    Method (PX09, 0, NotSerialized)
                    {
                        P80H = 0xE9
                        CreateWordField (ATPB, Zero, CNUM)
                        CreateWordField (ATPB, 0x02, CSSZ)
                        CNUM = Zero
                        CSSZ = Zero
                        CreateByteField (ATPB, 0x04, ATI0)
                        CreateByteField (ATPB, 0x05, HPD0)
                        CreateByteField (ATPB, 0x06, DDC0)
                        ATI0 = Zero
                        HPD0 = Zero
                        DDC0 = Zero
                        CreateByteField (ATPB, 0x07, ATI1)
                        CreateByteField (ATPB, 0x08, HPD1)
                        CreateByteField (ATPB, 0x09, DDC1)
                        ATI1 = Zero
                        HPD1 = Zero
                        DDC1 = Zero
                        Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */
                    }
                }
            }

            Device (PB2)
            {
                Name (_ADR, 0x00020000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    If ((WKPM == One))
                    {
                        Return (GPRW (0x08, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (GPIC)
                    {
                        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
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF,
                                Zero,
                                LNKC,
                                Zero
                            },

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

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

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

                OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
                Field (XPCB, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x10),
                    LKCN,   16,
                    LKST,   16,
                    Offset (0x1A),
                        ,   3,
                    PDC2,   1,
                        ,   2,
                    PDS2,   1,
                    Offset (0x1B),
                    HPCS,   1,
                    Offset (0x20),
                    Offset (0x22),
                    PMES,   1
                }

                OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
                Field (XPRI, ByteAcc, NoLock, Preserve)
                {
                    XPIR,   32,
                    XPID,   32
                }

                OperationRegion (XPEX, SystemMemory, 0xF8010100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28),
                    VC02,   32
                }

                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32,
                    PCMS,   32,
                    Offset (0x18),
                    SBUS,   32
                }

                Method (XPDL, 0, NotSerialized)
                {
                    If ((VC02 & 0x00020000))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (XPRD, 1, NotSerialized)
                {
                    XPIR = Arg0
                    Local0 = XPID /* \_SB_.PCI0.PB2_.XPID */
                    XPIR = Zero
                    Return (Local0)
                }

                Method (XPWR, 2, NotSerialized)
                {
                    XPIR = Arg0
                    XPID = Arg1
                    XPIR = Zero
                }

                Method (XPRT, 0, NotSerialized)
                {
                    Local0 = XPRD (0xA2)
                    Local0 &= 0xFFFFFFF8
                    Local1 = (Local0 >> 0x04)
                    Local1 &= 0x07
                    Local0 |= Local1
                    Local0 |= 0x0100
                    XPWR (0xA2, Local0)
                }

                Method (XPLP, 1, NotSerialized)
                {
                    Local0 = NBMR (0x08)
                    Local0 >>= 0x08
                    Local0 &= 0x0F
                    If (Local0)
                    {
                        Local1 = 0x0F0F
                    }
                    Else
                    {
                        Local1 = 0xFFFF
                    }

                    Local2 = NBXR (0x65)
                    If (Arg0)
                    {
                        Local2 &= ~Local1
                    }
                    Else
                    {
                        Local2 |= Local1
                    }

                    NBXW (0x65, Local2)
                }

                Method (XPLL, 1, NotSerialized)
                {
                    Local0 = NBMR (0x08)
                    Local0 >>= 0x08
                    Local0 &= 0x0F
                    If (Local0)
                    {
                        Local2 = NBMR (0x07)
                        If ((Local2 && 0x0201F000))
                        {
                            Local1 = 0x00550050
                            Local2 = NBXR (0x65)
                            If ((~Local2 && 0xF0F0))
                            {
                                Local3 = 0x00110010
                            }

                            Local3 = Local1
                        }
                        Else
                        {
                            Local1 = 0x00110010
                            Local3 = Local1
                            Local2 = NBXR (0x65)
                            If ((~Local2 && 0xFFFF))
                            {
                                Local3 = Zero
                            }
                        }

                        Local2 = NBMR (0x2E)
                        If (Arg0)
                        {
                            Local2 &= ~Local1
                        }
                        Else
                        {
                            Local2 |= Local3
                        }

                        NBMW (0x2E, Local2)
                    }
                    Else
                    {
                        Local2 = NBMR (0x07)
                        If ((Local2 && 0x0201F000))
                        {
                            Local1 = 0x00550050
                            Local2 = NBXR (0x65)
                            If ((Local2 && 0xFFFF))
                            {
                                Local3 = 0x00110010
                            }

                            Local3 = Local1
                        }
                        Else
                        {
                            Local1 = 0x00110010
                            Local3 = Local1
                            Local2 = NBXR (0x65)
                            If ((Local2 && 0xFFFF))
                            {
                                Local3 = Zero
                            }
                        }

                        Local2 = NBMR (0x2E)
                        If (Arg0)
                        {
                            Local2 &= ~Local1
                        }
                        Else
                        {
                            Local2 |= Local3
                        }

                        NBMW (0x2E, Local2)
                    }
                }

                Method (XPR2, 0, NotSerialized)
                {
                    Local0 = LKCN /* \_SB_.PCI0.PB2_.LKCN */
                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    Local0 |= 0x20
                    LKCN = Local0
                    Local1 = 0x64
                    Local2 = One
                    While ((Local1 && Local2))
                    {
                        Sleep (One)
                        Local3 = LKST /* \_SB_.PCI0.PB2_.LKST */
                        If ((Local3 & 0x0800))
                        {
                            Local1--
                        }
                        Else
                        {
                            Local2 = Zero
                        }
                    }

                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    If (!Local2)
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Device (VGA)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (PCFG, PCI_Config, Zero, 0x50)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32,
                        Offset (0x2C),
                        SVID,   32,
                        Offset (0x4C),
                        SMID,   32
                    }

                    Name (DOSA, Zero)
                    Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching
                    {
                        DOSA = Arg0
                    }

                    Method (_DOD, 0, NotSerialized)  // _DOD: Display Output Devices
                    {
                        Name (DODL, Package (0x05)
                        {
                            0x00010100,
                            0x00010110,
                            0x0200,
                            0x00010210,
                            0x00010220
                        })
                        Return (DODL) /* \_SB_.PCI0.PB2_.VGA_._DOD.DODL */
                    }

                    Device (LCD)
                    {
                        Name (_ADR, 0x0110)  // _ADR: Address
                        Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
                        {
                            Return (Package (0x0D)
                            {
                                0x46,
                                0x28,
                                Zero,
                                0x0A,
                                0x14,
                                0x1E,
                                0x28,
                                0x32,
                                0x3C,
                                0x46,
                                0x50,
                                0x5A,
                                0x64
                            })
                        }

                        Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
                        {
                            P80H = 0x35
                            Divide (Arg0, 0x0A, Local0, Local1)
                            ^^^^LPC0.EC0.BRTS = Local1
                        }

                        Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
                        {
                            Local0 = (^^^^LPC0.EC0.BRTS * 0x0A)
                            Return (Local0)
                        }
                    }

                    Name (ATIB, Buffer (0x0100) {})
                    Method (ATIF, 2, Serialized)
                    {
                        If ((Arg0 == Zero))
                        {
                            Return (AF00 ())
                        }

                        If ((Arg0 == One))
                        {
                            Return (AF01 ())
                        }

                        If ((Arg0 == 0x02))
                        {
                            Return (AF02 ())
                        }

                        If ((Arg0 == 0x03))
                        {
                            Return (AF03 (DerefOf (Arg1 [0x02]), DerefOf (Arg1 [0x04])))
                        }

                        If ((Arg0 == 0x0F))
                        {
                            Return (AF15 ())
                        }
                        Else
                        {
                            CreateWordField (ATIB, Zero, SSZE)
                            CreateWordField (ATIB, 0x02, VERN)
                            CreateDWordField (ATIB, 0x04, NMSK)
                            CreateDWordField (ATIB, 0x08, SFUN)
                            SSZE = Zero
                            VERN = Zero
                            NMSK = Zero
                            SFUN = Zero
                            Return (ATIB) /* \_SB_.PCI0.PB2_.VGA_.ATIB */
                        }
                    }

                    Method (AF00, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, VERN)
                        CreateDWordField (ATIB, 0x04, NMSK)
                        CreateDWordField (ATIB, 0x08, SFUN)
                        SSZE = 0x0C
                        VERN = One
                        If ((^^^AGP.PXEN == 0x80000000))
                        {
                            NMSK = 0x11
                        }
                        Else
                        {
                            NMSK = 0x51
                        }

                        MSKN = NMSK /* \_SB_.PCI0.PB2_.VGA_.AF00.NMSK */
                        SFUN = 0x4007
                        Return (ATIB) /* \_SB_.PCI0.PB2_.VGA_.ATIB */
                    }

                    Method (AF01, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, VMSK)
                        CreateDWordField (ATIB, 0x06, FLGS)
                        SSZE = 0x0A
                        VMSK = 0x0B
                        SSZE = 0x0A
                        FLGS = 0x0B
                        Return (ATIB) /* \_SB_.PCI0.PB2_.VGA_.ATIB */
                    }

                    Name (PSBR, Buffer (0x04)
                    {
                         0x00, 0x00, 0x00, 0x00                           /* .... */
                    })
                    Name (MSKN, Zero)
                    Name (SEXM, Zero)
                    Name (STHG, Zero)
                    Name (STHI, Zero)
                    Name (SFPG, Zero)
                    Name (SFPI, Zero)
                    Name (SSPS, Zero)
                    Name (SSDM, 0x0A)
                    Name (SCDY, Zero)
                    Name (SACT, Buffer (0x07)
                    {
                         0x01, 0x02, 0x08, 0x80, 0x03, 0x09, 0x81         /* ....... */
                    })
                    Method (AF02, 0, NotSerialized)
                    {
                        CreateBitField (PSBR, Zero, PDSW)
                        CreateBitField (PSBR, One, PEXM)
                        CreateBitField (PSBR, 0x02, PTHR)
                        CreateBitField (PSBR, 0x03, PFPS)
                        CreateBitField (PSBR, 0x04, PSPS)
                        CreateBitField (PSBR, 0x05, PDCC)
                        CreateBitField (PSBR, 0x06, PXPS)
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, PSBI)
                        CreateByteField (ATIB, 0x06, EXPM)
                        CreateByteField (ATIB, 0x07, THRM)
                        CreateByteField (ATIB, 0x08, THID)
                        CreateByteField (ATIB, 0x09, FPWR)
                        CreateByteField (ATIB, 0x0A, FPID)
                        CreateByteField (ATIB, 0x0B, SPWR)
                        SSZE = 0x0C
                        PSBI = PSBR /* \_SB_.PCI0.PB2_.VGA_.PSBR */
                        If (PDSW)
                        {
                            PDSW = Zero
                        }

                        If (PEXM)
                        {
                            EXPM = SEXM /* \_SB_.PCI0.PB2_.VGA_.SEXM */
                            SEXM = Zero
                            PEXM = Zero
                        }

                        If (PTHR)
                        {
                            THRM = STHG /* \_SB_.PCI0.PB2_.VGA_.STHG */
                            THID = STHI /* \_SB_.PCI0.PB2_.VGA_.STHI */
                            STHG = Zero
                            STHI = Zero
                            PTHR = Zero
                        }

                        If (PFPS)
                        {
                            FPWR = SFPG /* \_SB_.PCI0.PB2_.VGA_.SFPG */
                            FPWR = SFPI /* \_SB_.PCI0.PB2_.VGA_.SFPI */
                            SFPG = Zero
                            SFPI = Zero
                            PFPS = Zero
                        }

                        If (PSPS)
                        {
                            SPWR = SSPS /* \_SB_.PCI0.PB2_.VGA_.SSPS */
                            PSPS = Zero
                        }

                        If (PXPS)
                        {
                            PXPS = Zero
                        }

                        Return (ATIB) /* \_SB_.PCI0.PB2_.VGA_.ATIB */
                    }

                    Method (AF03, 2, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, SSDP)
                        CreateWordField (ATIB, 0x04, SCDP)
                        SSDP = Arg0
                        SCDP = Arg1
                        Name (NXTD, 0x06)
                        Name (CIDX, 0x06)
                        Local1 = SSDP /* \_SB_.PCI0.PB2_.VGA_.AF03.SSDP */
                        Local1 &= 0x8B
                        Local2 = SCDP /* \_SB_.PCI0.PB2_.VGA_.AF03.SCDP */
                        If (CondRefOf (^^^^LID._LID, Local4))
                        {
                            Local2 &= 0xFFFFFFFE
                            Local2 |= ^^^^LID._LID ()
                        }
                        Else
                        {
                            Local2 |= One
                        }

                        P80H = Local2
                        Local0 = Zero
                        While ((Local0 < SizeOf (SACT)))
                        {
                            Local3 = DerefOf (SACT [Local0])
                            If ((Local3 == Local1))
                            {
                                CIDX = Local0
                                Local0 = SizeOf (SACT)
                            }
                            Else
                            {
                                Local0++
                            }
                        }

                        Local0 = CIDX /* \_SB_.PCI0.PB2_.VGA_.AF03.CIDX */
                        While ((Local0 < SizeOf (SACT)))
                        {
                            Local0++
                            If ((Local0 == SizeOf (SACT)))
                            {
                                Local0 = Zero
                            }

                            Local3 = DerefOf (SACT [Local0])
                            If (((Local3 & Local2) == Local3))
                            {
                                NXTD = Local0
                                Local0 = SizeOf (SACT)
                            }
                        }

                        If ((NXTD == SizeOf (SACT)))
                        {
                            SSDP = Zero
                        }
                        Else
                        {
                            Local0 = NXTD /* \_SB_.PCI0.PB2_.VGA_.AF03.NXTD */
                            Local3 = DerefOf (SACT [Local0])
                            SSDP &= 0xFFFFFFF4
                            SSDP |= Local3
                        }

                        SSZE = 0x04
                        P80H = SSDP /* \_SB_.PCI0.PB2_.VGA_.AF03.SSDP */
                        Return (ATIB) /* \_SB_.PCI0.PB2_.VGA_.ATIB */
                    }

                    Method (AFN0, 0, Serialized)
                    {
                        If ((MSKN & One))
                        {
                            CreateBitField (PSBR, Zero, PDSW)
                            PDSW = One
                            Notify (VGA, 0x81) // Information Change
                        }
                    }

                    Method (AFN3, 2, Serialized)
                    {
                        If ((MSKN & 0x08))
                        {
                            Local0 = Arg0
                            SFPI = Local0
                            Local0 = Arg1
                            SFPG = Local0 &= 0x03
                            CreateBitField (PSBR, 0x03, PFPS)
                            PFPS = One
                            Notify (VGA, 0x81) // Information Change
                        }
                    }

                    Method (AFN4, 1, Serialized)
                    {
                        If ((MSKN & 0x10))
                        {
                            Local0 = Arg0
                            Local1 = SSPS /* \_SB_.PCI0.PB2_.VGA_.SSPS */
                            SSPS = Local0
                            If ((Local0 == Local1)) {}
                            Else
                            {
                                CreateBitField (PSBR, 0x04, PSPS)
                                PSPS = One
                                Notify (VGA, 0x81) // Information Change
                            }
                        }
                    }

                    Method (AFN5, 0, Serialized)
                    {
                        If ((MSKN & 0x20))
                        {
                            CreateBitField (PSBR, 0x05, PDCC)
                            PDCC = One
                            Notify (VGA, 0x81) // Information Change
                        }
                    }

                    Method (AFN6, 0, Serialized)
                    {
                        If ((MSKN & 0x40))
                        {
                            CreateBitField (PSBR, 0x06, PXPS)
                            PXPS = One
                            Notify (VGA, 0x81) // Information Change
                        }
                    }

                    Method (AF15, 0, NotSerialized)
                    {
                        P80H = 0xFF
                        CreateWordField (ATIB, 0x02, DSZE)
                        DSZE = 0x08
                        Acquire (^^^LPC0.PSMX, 0xFFFF)
                        BCMD = 0x8D
                        DID = 0x0F
                        INFO = ATIB /* \_SB_.PCI0.PB2_.VGA_.ATIB */
                        BSMI (Zero)
                        ATIB = INFO /* \INFO */
                        Release (^^^LPC0.PSMX)
                        Return (ATIB) /* \_SB_.PCI0.PB2_.VGA_.ATIB */
                    }
                }

                Device (HDAU)
                {
                    Name (_ADR, One)  // _ADR: Address
                    OperationRegion (PCFG, PCI_Config, Zero, 0x50)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32,
                        Offset (0x2C),
                        SVID,   32,
                        Offset (0x4C),
                        SMID,   32
                    }
                }
            }

            Device (PB3)
            {
                Name (_ADR, 0x00030000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    If ((WKPM == One))
                    {
                        Return (GPRW (0x08, 0x04))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }

                Name (_HPP, Package (0x04)  // _HPP: Hot Plug Parameters
                {
                    0x10,
                    0x40,
                    One,
                    Zero
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (GPIC)
                    {
                        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
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF,
                                Zero,
                                LNKD,
                                Zero
                            },

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

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

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

                OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
                Field (XPCB, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x10),
                    LKCN,   16,
                    LKST,   16,
                    Offset (0x1A),
                        ,   3,
                    PDC3,   1,
                        ,   2,
                    PDS3,   1,
                    Offset (0x1B),
                    HPCS,   1,
                    Offset (0x20),
                    Offset (0x22),
                    PMES,   1
                }

                OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
                Field (XPRI, ByteAcc, NoLock, Preserve)
                {
                    XPIR,   32,
                    XPID,   32
                }

                OperationRegion (XPEX, SystemMemory, 0xF8018100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28),
                    VC0S,   32
                }

                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32,
                    PCMS,   32,
                    Offset (0x18),
                    SBUS,   32
                }

                Method (XPDL, 0, NotSerialized)
                {
                    If ((VC0S & 0x00020000))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (XPRD, 1, NotSerialized)
                {
                    XPIR = Arg0
                    Local0 = XPID /* \_SB_.PCI0.PB3_.XPID */
                    XPIR = Zero
                    Return (Local0)
                }

                Method (XPWR, 2, NotSerialized)
                {
                    XPIR = Arg0
                    XPID = Arg1
                    XPIR = Zero
                }

                Method (XPRT, 0, NotSerialized)
                {
                    Local0 = XPRD (0xA2)
                    Local0 &= 0xFFFFFFF8
                    Local1 = (Local0 >> 0x04)
                    Local1 &= 0x07
                    Local0 |= Local1
                    Local0 |= 0x0100
                    XPWR (0xA2, Local0)
                }

                Method (XPLP, 1, NotSerialized)
                {
                    Local0 = NBMR (0x08)
                    Local0 >>= 0x08
                    Local0 &= 0x0F
                    If (Local0)
                    {
                        Local1 = 0xF0F0
                        Local2 = NBXR (0x65)
                        If (Arg0)
                        {
                            Local2 &= ~Local1
                        }
                        Else
                        {
                            Local2 |= Local1
                        }

                        NBXW (0x65, Local2)
                    }
                }

                Method (XPLL, 1, NotSerialized)
                {
                    Local0 = NBMR (0x08)
                    Local0 >>= 0x08
                    Local0 &= 0x0F
                    If (Local0)
                    {
                        Local2 = NBMR (0x07)
                        If ((Local2 && 0x0201F000))
                        {
                            Local1 = 0x00440040
                            Local3 = Local1
                        }
                        Else
                        {
                            Local1 = 0x00550050
                            Local3 = Local1
                            Local2 = NBXR (0x65)
                            If ((~Local2 && 0x0F0F))
                            {
                                Local3 = 0x00440040
                            }
                        }

                        Local2 = NBMR (0x2E)
                        If (Arg0)
                        {
                            Local2 &= ~Local1
                        }
                        Else
                        {
                            Local2 |= Local3
                        }

                        NBMW (0x2E, Local2)
                    }
                }

                Method (XPR2, 0, NotSerialized)
                {
                    Local0 = LKCN /* \_SB_.PCI0.PB3_.LKCN */
                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    Local0 |= 0x20
                    LKCN = Local0
                    Local1 = 0x64
                    Local2 = One
                    While ((Local1 && Local2))
                    {
                        Sleep (One)
                        Local3 = LKST /* \_SB_.PCI0.PB3_.LKST */
                        If ((Local3 & 0x0800))
                        {
                            Local1--
                        }
                        Else
                        {
                            Local2 = Zero
                        }
                    }

                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    If (!Local2)
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (XPPB, 0, NotSerialized)
                {
                    Local0 = _ADR /* \_SB_.PCI0.PB3_._ADR */
                    Local1 = (Local0 << 0x10)
                    Local1 = (Local0 >> 0x03)
                    Local2 = (Local0 & 0x0F)
                    Local3 = (Local1 | Local2)
                    Return (Local3)
                }

                Method (XPPR, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        XPLL (One)
                        XPLP (One)
                        Sleep (0xC8)
                        XPTR ((XPPB () << 0x03), One)
                        Sleep (0x14)
                    }
                    Else
                    {
                        XPTR ((XPPB () << 0x03), Zero)
                        XPLP (Zero)
                        XPLL (Zero)
                    }

                    Return (Ones)
                }

                Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
                {
                    If ((XCMP (Arg0, ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */) == One))
                    {
                        If ((Arg2 == Zero))
                        {
                            Return (Buffer (One)
                            {
                                 0x2D                                             /* - */
                            })
                        }

                        If ((Arg2 == 0x02))
                        {
                            P80H = 0xAA02
                            Return (Package (0x01)
                            {
                                Package (0x04)
                                {
                                    0x02,
                                    0x80,
                                    Zero,
                                    0x0C
                                }
                            })
                        }

                        If ((Arg2 == 0x03))
                        {
                            P80H = 0xAA03
                            Local0 = DerefOf (Arg3 [Zero])
                            If ((Local0 == 0x80))
                            {
                                Return (Package (0x01)
                                {
                                    Package (0x02)
                                    {
                                        "en",
                                        Unicode ("ATI XGP Slot")
                                    }
                                })
                            }
                            Else
                            {
                                Return (Package (0x01)
                                {
                                    Package (0x02)
                                    {
                                        "en",
                                        Unicode ("Unknown")
                                    }
                                })
                            }
                        }

                        If ((Arg2 == 0x05))
                        {
                            If ((Arg1 == One))
                            {
                                Return (One)
                            }
                        }

                        Return (One)
                    }

                    Return (Buffer (One)
                    {
                         0x00                                             /* . */
                    })
                }

                Device (VGA)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (PCFG, PCI_Config, Zero, 0x50)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32,
                        Offset (0x2C),
                        SVID,   32,
                        Offset (0x4C),
                        SMID,   32
                    }

                    Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
                    {
                        If ((^^^AGP.PXMX != 0x80000000))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            Return (One)
                        }
                    }

                    Name (DOSA, Zero)
                    Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching
                    {
                        DOSA = Arg0
                    }

                    Method (_DOD, 0, NotSerialized)  // _DOD: Display Output Devices
                    {
                        Name (DODL, Package (0x05)
                        {
                            0x00010100,
                            0x00010110,
                            0x0200,
                            0x00010210,
                            0x00010220
                        })
                        Return (DODL) /* \_SB_.PCI0.PB3_.VGA_._DOD.DODL */
                    }

                    Device (LCD)
                    {
                        Name (_ADR, 0x0110)  // _ADR: Address
                        Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
                        {
                            Return (Package (0x0D)
                            {
                                0x46,
                                0x28,
                                Zero,
                                0x0A,
                                0x14,
                                0x1E,
                                0x28,
                                0x32,
                                0x3C,
                                0x46,
                                0x50,
                                0x5A,
                                0x64
                            })
                        }

                        Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
                        {
                            P80H = 0x35
                            Divide (Arg0, 0x0A, Local0, Local1)
                            ^^^^LPC0.EC0.BRTS = Local1
                        }

                        Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
                        {
                            Local0 = (^^^^LPC0.EC0.BRTS * 0x0A)
                            Return (Local0)
                        }
                    }

                    Name (ATIB, Buffer (0x0100) {})
                    Method (ATIF, 2, Serialized)
                    {
                        If ((Arg0 == Zero))
                        {
                            Return (AF00 ())
                        }

                        If ((Arg0 == One))
                        {
                            Return (AF01 ())
                        }

                        If ((Arg0 == 0x02))
                        {
                            Return (AF02 ())
                        }

                        If ((Arg0 == 0x03))
                        {
                            Return (AF03 (DerefOf (Arg1 [0x02]), DerefOf (Arg1 [0x04])))
                        }

                        If ((Arg0 == 0x0F))
                        {
                            Return (AF15 ())
                        }
                        Else
                        {
                            CreateWordField (ATIB, Zero, SSZE)
                            CreateWordField (ATIB, 0x02, VERN)
                            CreateDWordField (ATIB, 0x04, NMSK)
                            CreateDWordField (ATIB, 0x08, SFUN)
                            SSZE = Zero
                            VERN = Zero
                            NMSK = Zero
                            SFUN = Zero
                            Return (ATIB) /* \_SB_.PCI0.PB3_.VGA_.ATIB */
                        }
                    }

                    Method (AF00, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, VERN)
                        CreateDWordField (ATIB, 0x04, NMSK)
                        CreateDWordField (ATIB, 0x08, SFUN)
                        SSZE = 0x0C
                        VERN = One
                        If ((^^^AGP.PXEN == 0x80000000))
                        {
                            NMSK = 0x11
                        }
                        Else
                        {
                            NMSK = 0x51
                        }

                        MSKN = NMSK /* \_SB_.PCI0.PB3_.VGA_.AF00.NMSK */
                        SFUN = 0x4007
                        Return (ATIB) /* \_SB_.PCI0.PB3_.VGA_.ATIB */
                    }

                    Method (AF01, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, VMSK)
                        CreateDWordField (ATIB, 0x06, FLGS)
                        SSZE = 0x0A
                        VMSK = 0x0B
                        SSZE = 0x0A
                        FLGS = 0x0B
                        Return (ATIB) /* \_SB_.PCI0.PB3_.VGA_.ATIB */
                    }

                    Name (PSBR, Buffer (0x04)
                    {
                         0x00, 0x00, 0x00, 0x00                           /* .... */
                    })
                    Name (MSKN, Zero)
                    Name (SEXM, Zero)
                    Name (STHG, Zero)
                    Name (STHI, Zero)
                    Name (SFPG, Zero)
                    Name (SFPI, Zero)
                    Name (SSPS, Zero)
                    Name (SSDM, 0x0A)
                    Name (SCDY, Zero)
                    Name (SACT, Buffer (0x07)
                    {
                         0x01, 0x02, 0x08, 0x80, 0x03, 0x09, 0x81         /* ....... */
                    })
                    Method (AF02, 0, NotSerialized)
                    {
                        CreateBitField (PSBR, Zero, PDSW)
                        CreateBitField (PSBR, One, PEXM)
                        CreateBitField (PSBR, 0x02, PTHR)
                        CreateBitField (PSBR, 0x03, PFPS)
                        CreateBitField (PSBR, 0x04, PSPS)
                        CreateBitField (PSBR, 0x05, PDCC)
                        CreateBitField (PSBR, 0x06, PXPS)
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, PSBI)
                        CreateByteField (ATIB, 0x06, EXPM)
                        CreateByteField (ATIB, 0x07, THRM)
                        CreateByteField (ATIB, 0x08, THID)
                        CreateByteField (ATIB, 0x09, FPWR)
                        CreateByteField (ATIB, 0x0A, FPID)
                        CreateByteField (ATIB, 0x0B, SPWR)
                        SSZE = 0x0C
                        PSBI = PSBR /* \_SB_.PCI0.PB3_.VGA_.PSBR */
                        If (PDSW)
                        {
                            PDSW = Zero
                        }

                        If (PEXM)
                        {
                            EXPM = SEXM /* \_SB_.PCI0.PB3_.VGA_.SEXM */
                            SEXM = Zero
                            PEXM = Zero
                        }

                        If (PTHR)
                        {
                            THRM = STHG /* \_SB_.PCI0.PB3_.VGA_.STHG */
                            THID = STHI /* \_SB_.PCI0.PB3_.VGA_.STHI */
                            STHG = Zero
                            STHI = Zero
                            PTHR = Zero
                        }

                        If (PFPS)
                        {
                            FPWR = SFPG /* \_SB_.PCI0.PB3_.VGA_.SFPG */
                            FPWR = SFPI /* \_SB_.PCI0.PB3_.VGA_.SFPI */
                            SFPG = Zero
                            SFPI = Zero
                            PFPS = Zero
                        }

                        If (PSPS)
                        {
                            SPWR = SSPS /* \_SB_.PCI0.PB3_.VGA_.SSPS */
                            PSPS = Zero
                        }

                        If (PXPS)
                        {
                            PXPS = Zero
                        }

                        Return (ATIB) /* \_SB_.PCI0.PB3_.VGA_.ATIB */
                    }

                    Method (AF03, 2, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, SSDP)
                        CreateWordField (ATIB, 0x04, SCDP)
                        SSDP = Arg0
                        SCDP = Arg1
                        Name (NXTD, 0x06)
                        Name (CIDX, 0x06)
                        Local1 = SSDP /* \_SB_.PCI0.PB3_.VGA_.AF03.SSDP */
                        Local1 &= 0x8B
                        Local2 = SCDP /* \_SB_.PCI0.PB3_.VGA_.AF03.SCDP */
                        If (CondRefOf (^^^^LID._LID, Local4))
                        {
                            Local2 &= 0xFFFFFFFE
                            Local2 |= ^^^^LID._LID ()
                        }
                        Else
                        {
                            Local2 |= One
                        }

                        P80H = Local2
                        Local0 = Zero
                        While ((Local0 < SizeOf (SACT)))
                        {
                            Local3 = DerefOf (SACT [Local0])
                            If ((Local3 == Local1))
                            {
                                CIDX = Local0
                                Local0 = SizeOf (SACT)
                            }
                            Else
                            {
                                Local0++
                            }
                        }

                        Local0 = CIDX /* \_SB_.PCI0.PB3_.VGA_.AF03.CIDX */
                        While ((Local0 < SizeOf (SACT)))
                        {
                            Local0++
                            If ((Local0 == SizeOf (SACT)))
                            {
                                Local0 = Zero
                            }

                            Local3 = DerefOf (SACT [Local0])
                            If (((Local3 & Local2) == Local3))
                            {
                                NXTD = Local0
                                Local0 = SizeOf (SACT)
                            }
                        }

                        If ((NXTD == SizeOf (SACT)))
                        {
                            SSDP = Zero
                        }
                        Else
                        {
                            Local0 = NXTD /* \_SB_.PCI0.PB3_.VGA_.AF03.NXTD */
                            Local3 = DerefOf (SACT [Local0])
                            SSDP &= 0xFFFFFFF4
                            SSDP |= Local3
                        }

                        SSZE = 0x04
                        P80H = SSDP /* \_SB_.PCI0.PB3_.VGA_.AF03.SSDP */
                        Return (ATIB) /* \_SB_.PCI0.PB3_.VGA_.ATIB */
                    }

                    Method (AFN0, 0, Serialized)
                    {
                        If ((MSKN & One))
                        {
                            CreateBitField (PSBR, Zero, PDSW)
                            PDSW = One
                            Notify (VGA, 0x81) // Information Change
                        }
                    }

                    Method (AFN3, 2, Serialized)
                    {
                        If ((MSKN & 0x08))
                        {
                            Local0 = Arg0
                            SFPI = Local0
                            Local0 = Arg1
                            SFPG = Local0 &= 0x03
                            CreateBitField (PSBR, 0x03, PFPS)
                            PFPS = One
                            Notify (VGA, 0x81) // Information Change
                        }
                    }

                    Method (AFN4, 1, Serialized)
                    {
                        If ((MSKN & 0x10))
                        {
                            Local0 = Arg0
                            Local1 = SSPS /* \_SB_.PCI0.PB3_.VGA_.SSPS */
                            SSPS = Local0
                            If ((Local0 == Local1)) {}
                            Else
                            {
                                CreateBitField (PSBR, 0x04, PSPS)
                                PSPS = One
                                Notify (VGA, 0x81) // Information Change
                            }
                        }
                    }

                    Method (AFN5, 0, Serialized)
                    {
                        If ((MSKN & 0x20))
                        {
                            CreateBitField (PSBR, 0x05, PDCC)
                            PDCC = One
                            Notify (VGA, 0x81) // Information Change
                        }
                    }

                    Method (AFN6, 0, Serialized)
                    {
                        If ((MSKN & 0x40))
                        {
                            CreateBitField (PSBR, 0x06, PXPS)
                            PXPS = One
                            Notify (VGA, 0x81) // Information Change
                        }
                    }

                    Method (AF15, 0, NotSerialized)
                    {
                        P80H = 0xFF
                        CreateWordField (ATIB, 0x02, DSZE)
                        DSZE = 0x08
                        Acquire (^^^LPC0.PSMX, 0xFFFF)
                        BCMD = 0x8D
                        DID = 0x0F
                        INFO = ATIB /* \_SB_.PCI0.PB3_.VGA_.ATIB */
                        BSMI (Zero)
                        ATIB = INFO /* \INFO */
                        Release (^^^LPC0.PSMX)
                        Return (ATIB) /* \_SB_.PCI0.PB3_.VGA_.ATIB */
                    }
                }

                Device (HDAU)
                {
                    Name (_ADR, One)  // _ADR: Address
                    OperationRegion (PCFG, PCI_Config, Zero, 0x50)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32,
                        Offset (0x2C),
                        SVID,   32,
                        Offset (0x4C),
                        SMID,   32
                    }
                }
            }

            Device (PB4)
            {
                Name (_ADR, 0x00040000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    If ((WKPM == One))
                    {
                        Return (GPRW (0x08, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (GPIC)
                    {
                        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
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF,
                                Zero,
                                LNKA,
                                Zero
                            },

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

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

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

                OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
                Field (XPCB, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x10),
                    LKCN,   16,
                    LKST,   16,
                    Offset (0x1A),
                        ,   3,
                    PDC4,   1,
                        ,   2,
                    PDS4,   1,
                    Offset (0x1B),
                    HPCS,   1,
                    Offset (0x20),
                    Offset (0x22),
                    PMES,   1
                }

                OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
                Field (XPRI, ByteAcc, NoLock, Preserve)
                {
                    XPIR,   32,
                    XPID,   32
                }

                OperationRegion (XPEX, SystemMemory, 0xF8020100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28),
                    VC0S,   32
                }

                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32,
                    PCMS,   32,
                    Offset (0x18),
                    SBUS,   32
                }

                Method (XPDL, 0, NotSerialized)
                {
                    Local0 = Zero
                    If ((VC0S & 0x00020000))
                    {
                        Local0 = Ones
                    }

                    Return (Local0)
                }

                Method (XPRD, 1, NotSerialized)
                {
                    XPIR = Arg0
                    Local0 = XPID /* \_SB_.PCI0.PB4_.XPID */
                    XPIR = Zero
                    Return (Local0)
                }

                Method (XPWR, 2, NotSerialized)
                {
                    XPIR = Arg0
                    XPID = Arg1
                    XPIR = Zero
                }

                Method (XPRT, 0, NotSerialized)
                {
                    Local0 = XPRD (0xA2)
                    Local0 &= 0xFFFFFFF8
                    Local1 = (Local0 >> 0x04)
                    Local1 &= 0x07
                    Local0 |= Local1
                    Local0 |= 0x0100
                    XPWR (0xA2, Local0)
                }

                Method (XPLP, 1, NotSerialized)
                {
                    Local1 = 0x1010
                    Local2 = NBXR (0x00010065)
                    If (Arg0)
                    {
                        Local2 &= ~Local1
                    }
                    Else
                    {
                        Local2 |= Local1
                    }

                    NBXW (0x00010065, Local2)
                }

                Method (XPR2, 0, NotSerialized)
                {
                    Local0 = LKCN /* \_SB_.PCI0.PB4_.LKCN */
                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    Local0 |= 0x20
                    LKCN = Local0
                    Local1 = 0x64
                    Local2 = One
                    While ((Local1 && Local2))
                    {
                        Sleep (One)
                        Local3 = LKST /* \_SB_.PCI0.PB4_.LKST */
                        If ((Local3 & 0x0800))
                        {
                            Local1--
                        }
                        Else
                        {
                            Local2 = Zero
                        }
                    }

                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    If (!Local2)
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (GFXM, 0, NotSerialized)
                {
                    Local0 = NBMR (0x08)
                    Local0 >>= 0x08
                    Local0 &= 0x0F
                    Return (Local0)
                }

                Method (XPLL, 1, NotSerialized)
                {
                    Local0 = GFXM ()
                    Local1 = XPPB ()
                    Local2 = Zero
                    If ((0x10 == Local1))
                    {
                        Local2 = One
                        Local3 = 0x00770070
                        If (Local0)
                        {
                            Local3 = 0x00330030
                        }
                    }

                    If (((0x18 == Local1) && Local0))
                    {
                        Local2 = One
                        Local3 = 0x00440040
                    }

                    Local0 = NBMR (0x07)
                    Local1 = NBXR (0x65)
                    If ((Local0 && 0x0201F000))
                    {
                        Local4 = 0x00440040
                        Local5 = Local4
                        If ((~Local1 && 0xF0F0))
                        {
                            Local5 = Zero
                        }
                    }
                    Else
                    {
                        Local4 = 0x00110010
                        Local5 = Local4
                        If ((~Local1 && 0x0F0F))
                        {
                            Local5 = Zero
                        }
                    }

                    If (Local2)
                    {
                        Local6 = (Local3 | Local4)
                        Local0 = (Local5 & Local4)
                        Local7 = (Local3 | Local0)
                        Local0 = NBMR (0x2E)
                        If (Arg0)
                        {
                            Local0 &= ~Local6
                        }
                        Else
                        {
                            Local0 |= Local7
                        }

                        NBMW (0x2E, Local0)
                    }
                }

                Method (XPPB, 0, NotSerialized)
                {
                    Local0 = _ADR /* \_SB_.PCI0.PB4_._ADR */
                    Local1 = (Local0 << 0x10)
                    Local1 = (Local0 >> 0x03)
                    Local2 = (Local0 & 0x0F)
                    Local3 = (Local1 | Local2)
                    Return (Local3)
                }

                Method (XPPR, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        XPLL (One)
                        XPLP (One)
                        Sleep (0xC8)
                        XPTR ((XPPB () << 0x03), One)
                        Sleep (0x14)
                    }
                    Else
                    {
                        XPTR ((XPPB () << 0x03), Zero)
                        XPLP (Zero)
                        XPLL (Zero)
                    }

                    Return (Ones)
                }

                Device (XPDV)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (PCFG, PCI_Config, Zero, 0xFF)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32,
                        PCMS,   32,
                        Offset (0xDC),
                        DISF,   32
                    }
                }
            }

            Device (PB5)
            {
                Name (_ADR, 0x00050000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    If ((WKPM == One))
                    {
                        Return (GPRW (0x08, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (GPIC)
                    {
                        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
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF,
                                Zero,
                                LNKB,
                                Zero
                            },

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

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

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

                OperationRegion (XPEX, SystemMemory, 0xF8020100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28),
                    VC0S,   32
                }

                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32,
                    PCMS,   32,
                    Offset (0x18),
                    SBUS,   32
                }

                OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
                Field (XPCB, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x10),
                    LKCN,   16,
                    LKST,   16,
                    Offset (0x1A),
                        ,   3,
                    PSDC,   1,
                        ,   2,
                    PSDS,   1,
                    Offset (0x1B),
                    HPCS,   1,
                    Offset (0x20),
                    Offset (0x22),
                    PMES,   1
                }

                OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
                Field (XPRI, ByteAcc, NoLock, Preserve)
                {
                    XPIR,   32,
                    XPID,   32
                }

                Method (XPDL, 0, NotSerialized)
                {
                    Local0 = Zero
                    If ((VC0S & 0x00020000))
                    {
                        Local0 = Ones
                    }

                    Return (Local0)
                }

                Method (XPRD, 1, NotSerialized)
                {
                    XPIR = Arg0
                    Local0 = XPID /* \_SB_.PCI0.PB5_.XPID */
                    XPIR = Zero
                    Return (Local0)
                }

                Method (XPWR, 2, NotSerialized)
                {
                    XPIR = Arg0
                    XPID = Arg1
                    XPIR = Zero
                }

                Method (XPRT, 0, NotSerialized)
                {
                    Local0 = XPRD (0xA2)
                    Local0 &= 0xFFFFFFF8
                    Local1 = (Local0 >> 0x04)
                    Local1 &= 0x07
                    Local0 |= Local1
                    Local0 |= 0x0100
                    XPWR (0xA2, Local0)
                }

                Method (XPPB, 0, NotSerialized)
                {
                    Local0 = _ADR /* \_SB_.PCI0.PB5_._ADR */
                    Local1 = (Local0 >> 0x10)
                    Local1 = (Local1 << 0x03)
                    Local2 = (Local0 & 0x0F)
                    Local3 = (Local1 | Local2)
                    Return (Local3)
                }

                Method (XPCN, 0, NotSerialized)
                {
                    Local1 = Zero
                    Local0 = XPPB ()
                    If ((0x04 > Local0))
                    {
                        Local1 = Zero
                    }

                    If ((0x08 > Local0))
                    {
                        Local1 = 0x00010000
                    }

                    If ((0x0B > Local0))
                    {
                        Local1 = 0x00020000
                    }

                    Return (Local1)
                }

                Method (XPPD, 0, NotSerialized)
                {
                    Local0 = XPPB ()
                    Local2 = GPPX ()
                    Local3 = GFXM ()
                    Local1 = Zero
                    If ((0x10 == Local0))
                    {
                        Local1 = 0xFFFF
                        If (Local3)
                        {
                            Local1 = 0x0F0F
                        }
                    }

                    If ((0x18 == Local0))
                    {
                        Local1 = 0xF0F0
                    }

                    If ((0x20 == Local0))
                    {
                        Local1 = 0x1010
                    }

                    If ((0x28 == Local0))
                    {
                        Local1 = 0x2020
                    }

                    If ((0x30 == Local0))
                    {
                        Local1 = 0x4040
                    }

                    If ((0x38 == Local0))
                    {
                        Local1 = 0x8080
                    }

                    If ((0x48 == Local0))
                    {
                        Local1 = Zero
                        If ((0x02 == Local2))
                        {
                            Local1 = 0x0303
                        }

                        If ((0x03 == Local2))
                        {
                            Local1 = 0x0101
                        }
                    }

                    If ((0x50 == Local0))
                    {
                        Local1 = Zero
                        If ((0x03 == Local2))
                        {
                            Local1 = 0x0202
                        }
                    }

                    Return (Local1)
                }

                Method (XPLP, 1, NotSerialized)
                {
                    Local1 = XPPD ()
                    If ((Zero != Local1))
                    {
                        Local2 = NBXR ((0x65 + XPCN ()))
                        If (Arg0)
                        {
                            Local2 &= ~Local1
                        }
                        Else
                        {
                            Local2 |= Local1
                        }

                        NBXW ((0x65 + XPCN ()), Local2)
                    }
                }

                Method (XPR2, 0, NotSerialized)
                {
                    Local0 = LKCN /* \_SB_.PCI0.PB5_.LKCN */
                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    Local0 |= 0x20
                    LKCN = Local0
                    Local1 = 0x64
                    Local2 = One
                    While ((Local1 && Local2))
                    {
                        Sleep (One)
                        Local3 = LKST /* \_SB_.PCI0.PB5_.LKST */
                        If ((Local3 & 0x0800))
                        {
                            Local1--
                        }
                        Else
                        {
                            Local2 = Zero
                        }
                    }

                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    If (!Local2)
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (XPLL, 1, NotSerialized)
                {
                    Local0 = GFXM ()
                    Local1 = XPPB ()
                    Local2 = Zero
                    If ((0x10 == Local1))
                    {
                        Local2 = One
                        Local3 = 0x00770070
                        If (Local0)
                        {
                            Local3 = 0x00330030
                        }
                    }

                    If (((0x18 == Local1) && Local0))
                    {
                        Local2 = One
                        Local3 = 0x00440040
                    }

                    Local0 = NBMR (0x07)
                    Local1 = NBXR (0x65)
                    If ((Local0 && 0x0201F000))
                    {
                        Local4 = 0x00440040
                        Local5 = Local4
                        If ((~Local1 && 0xF0F0))
                        {
                            Local5 = Zero
                        }
                    }
                    Else
                    {
                        Local4 = 0x00110010
                        Local5 = Local4
                        If ((~Local1 && 0x0F0F))
                        {
                            Local5 = Zero
                        }
                    }

                    If (Local2)
                    {
                        Local6 = (Local3 | Local4)
                        Local0 = (Local5 & Local4)
                        Local7 = (Local3 | Local0)
                        Local0 = NBMR (0x2E)
                        If (Arg0)
                        {
                            Local0 &= ~Local6
                        }
                        Else
                        {
                            Local0 |= Local7
                        }

                        NBMW (0x2E, Local0)
                    }
                }

                Method (XPPR, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        XPLL (One)
                        XPLP (One)
                        Sleep (0xC8)
                        XPTR ((XPPB () << 0x03), One)
                        Sleep (0x14)
                    }
                    Else
                    {
                        XPTR ((XPPB () << 0x03), Zero)
                        XPLP (Zero)
                        XPLL (Zero)
                    }

                    Return (Ones)
                }

                Device (XPDV)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32,
                        PCMS,   32
                    }
                }
            }

            Device (PB6)
            {
                Name (_ADR, 0x00060000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    If ((WKPM == One))
                    {
                        Return (GPRW (0x08, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (GPIC)
                    {
                        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
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF,
                                Zero,
                                LNKC,
                                Zero
                            },

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

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

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

                OperationRegion (XPEX, SystemMemory, 0xF8020100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28),
                    VC0S,   32
                }

                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32,
                    PCMS,   32,
                    Offset (0x18),
                    SBUS,   32
                }

                OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
                Field (XPCB, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x10),
                    LKCN,   16,
                    LKST,   16,
                    Offset (0x1A),
                        ,   3,
                    PSDC,   1,
                        ,   2,
                    PSDS,   1,
                    Offset (0x1B),
                    HPCS,   1,
                    Offset (0x20),
                    Offset (0x22),
                    PMES,   1
                }

                OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
                Field (XPRI, ByteAcc, NoLock, Preserve)
                {
                    XPIR,   32,
                    XPID,   32
                }

                Method (XPDL, 0, NotSerialized)
                {
                    Local0 = Zero
                    If ((VC0S & 0x00020000))
                    {
                        Local0 = Ones
                    }

                    Return (Local0)
                }

                Method (XPRD, 1, NotSerialized)
                {
                    XPIR = Arg0
                    Local0 = XPID /* \_SB_.PCI0.PB6_.XPID */
                    XPIR = Zero
                    Return (Local0)
                }

                Method (XPWR, 2, NotSerialized)
                {
                    XPIR = Arg0
                    XPID = Arg1
                    XPIR = Zero
                }

                Method (XPRT, 0, NotSerialized)
                {
                    Local0 = XPRD (0xA2)
                    Local0 &= 0xFFFFFFF8
                    Local1 = (Local0 >> 0x04)
                    Local1 &= 0x07
                    Local0 |= Local1
                    Local0 |= 0x0100
                    XPWR (0xA2, Local0)
                }

                Method (XPPB, 0, NotSerialized)
                {
                    Local0 = _ADR /* \_SB_.PCI0.PB6_._ADR */
                    Local1 = (Local0 >> 0x10)
                    Local1 = (Local1 << 0x03)
                    Local2 = (Local0 & 0x0F)
                    Local3 = (Local1 | Local2)
                    Return (Local3)
                }

                Method (XPCN, 0, NotSerialized)
                {
                    Local1 = Zero
                    Local0 = XPPB ()
                    If ((0x04 > Local0))
                    {
                        Local1 = Zero
                    }

                    If ((0x08 > Local0))
                    {
                        Local1 = 0x00010000
                    }

                    If ((0x0B > Local0))
                    {
                        Local1 = 0x00020000
                    }

                    Return (Local1)
                }

                Method (XPPD, 0, NotSerialized)
                {
                    Local0 = XPPB ()
                    Local2 = GPPX ()
                    Local3 = GFXM ()
                    Local1 = Zero
                    If ((0x10 == Local0))
                    {
                        Local1 = 0xFFFF
                        If (Local3)
                        {
                            Local1 = 0x0F0F
                        }
                    }

                    If ((0x18 == Local0))
                    {
                        Local1 = 0xF0F0
                    }

                    If ((0x20 == Local0))
                    {
                        Local1 = 0x1010
                    }

                    If ((0x28 == Local0))
                    {
                        Local1 = 0x2020
                    }

                    If ((0x30 == Local0))
                    {
                        Local1 = 0x4040
                    }

                    If ((0x38 == Local0))
                    {
                        Local1 = 0x8080
                    }

                    If ((0x48 == Local0))
                    {
                        Local1 = Zero
                        If ((0x02 == Local2))
                        {
                            Local1 = 0x0303
                        }

                        If ((0x03 == Local2))
                        {
                            Local1 = 0x0101
                        }
                    }

                    If ((0x50 == Local0))
                    {
                        Local1 = Zero
                        If ((0x03 == Local2))
                        {
                            Local1 = 0x0202
                        }
                    }

                    Return (Local1)
                }

                Method (XPLP, 1, NotSerialized)
                {
                    Local1 = XPPD ()
                    If ((Zero != Local1))
                    {
                        Local2 = NBXR ((0x65 + XPCN ()))
                        If (Arg0)
                        {
                            Local2 &= ~Local1
                        }
                        Else
                        {
                            Local2 |= Local1
                        }

                        NBXW ((0x65 + XPCN ()), Local2)
                    }
                }

                Method (XPR2, 0, NotSerialized)
                {
                    Local0 = LKCN /* \_SB_.PCI0.PB6_.LKCN */
                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    Local0 |= 0x20
                    LKCN = Local0
                    Local1 = 0x64
                    Local2 = One
                    While ((Local1 && Local2))
                    {
                        Sleep (One)
                        Local3 = LKST /* \_SB_.PCI0.PB6_.LKST */
                        If ((Local3 & 0x0800))
                        {
                            Local1--
                        }
                        Else
                        {
                            Local2 = Zero
                        }
                    }

                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    If (!Local2)
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (XPLL, 1, NotSerialized)
                {
                    Local0 = GFXM ()
                    Local1 = XPPB ()
                    Local2 = Zero
                    If ((0x10 == Local1))
                    {
                        Local2 = One
                        Local3 = 0x00770070
                        If (Local0)
                        {
                            Local3 = 0x00330030
                        }
                    }

                    If (((0x18 == Local1) && Local0))
                    {
                        Local2 = One
                        Local3 = 0x00440040
                    }

                    Local0 = NBMR (0x07)
                    Local1 = NBXR (0x65)
                    If ((Local0 && 0x0201F000))
                    {
                        Local4 = 0x00440040
                        Local5 = Local4
                        If ((~Local1 && 0xF0F0))
                        {
                            Local5 = Zero
                        }
                    }
                    Else
                    {
                        Local4 = 0x00110010
                        Local5 = Local4
                        If ((~Local1 && 0x0F0F))
                        {
                            Local5 = Zero
                        }
                    }

                    If (Local2)
                    {
                        Local6 = (Local3 | Local4)
                        Local0 = (Local5 & Local4)
                        Local7 = (Local3 | Local0)
                        Local0 = NBMR (0x2E)
                        If (Arg0)
                        {
                            Local0 &= ~Local6
                        }
                        Else
                        {
                            Local0 |= Local7
                        }

                        NBMW (0x2E, Local0)
                    }
                }

                Method (XPPR, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        XPLL (One)
                        XPLP (One)
                        Sleep (0xC8)
                        XPTR ((XPPB () << 0x03), One)
                        Sleep (0x14)
                    }
                    Else
                    {
                        XPTR ((XPPB () << 0x03), Zero)
                        XPLP (Zero)
                        XPLL (Zero)
                    }

                    Return (Ones)
                }

                Device (XPDV)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32,
                        PCMS,   32
                    }
                }
            }

            Device (PB7)
            {
                Name (_ADR, 0x00070000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    If ((WKPM == One))
                    {
                        Return (GPRW (0x08, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (GPIC)
                    {
                        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
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF,
                                Zero,
                                LNKD,
                                Zero
                            },

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

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

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

                OperationRegion (XPEX, SystemMemory, 0xF8020100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28),
                    VC0S,   32
                }

                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32,
                    PCMS,   32,
                    Offset (0x18),
                    SBUS,   32
                }

                OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
                Field (XPCB, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x10),
                    LKCN,   16,
                    LKST,   16,
                    Offset (0x1A),
                        ,   3,
                    PSDC,   1,
                        ,   2,
                    PSDS,   1,
                    Offset (0x1B),
                    HPCS,   1,
                    Offset (0x20),
                    Offset (0x22),
                    PMES,   1
                }

                OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
                Field (XPRI, ByteAcc, NoLock, Preserve)
                {
                    XPIR,   32,
                    XPID,   32
                }

                Method (XPDL, 0, NotSerialized)
                {
                    Local0 = Zero
                    If ((VC0S & 0x00020000))
                    {
                        Local0 = Ones
                    }

                    Return (Local0)
                }

                Method (XPRD, 1, NotSerialized)
                {
                    XPIR = Arg0
                    Local0 = XPID /* \_SB_.PCI0.PB7_.XPID */
                    XPIR = Zero
                    Return (Local0)
                }

                Method (XPWR, 2, NotSerialized)
                {
                    XPIR = Arg0
                    XPID = Arg1
                    XPIR = Zero
                }

                Method (XPRT, 0, NotSerialized)
                {
                    Local0 = XPRD (0xA2)
                    Local0 &= 0xFFFFFFF8
                    Local1 = (Local0 >> 0x04)
                    Local1 &= 0x07
                    Local0 |= Local1
                    Local0 |= 0x0100
                    XPWR (0xA2, Local0)
                }

                Method (XPPB, 0, NotSerialized)
                {
                    Local0 = _ADR /* \_SB_.PCI0.PB7_._ADR */
                    Local1 = (Local0 >> 0x10)
                    Local1 = (Local1 << 0x03)
                    Local2 = (Local0 & 0x0F)
                    Local3 = (Local1 | Local2)
                    Return (Local3)
                }

                Method (XPCN, 0, NotSerialized)
                {
                    Local1 = Zero
                    Local0 = XPPB ()
                    If ((0x04 > Local0))
                    {
                        Local1 = Zero
                    }

                    If ((0x08 > Local0))
                    {
                        Local1 = 0x00010000
                    }

                    If ((0x0B > Local0))
                    {
                        Local1 = 0x00020000
                    }

                    Return (Local1)
                }

                Method (XPPD, 0, NotSerialized)
                {
                    Local0 = XPPB ()
                    Local2 = GPPX ()
                    Local3 = GFXM ()
                    Local1 = Zero
                    If ((0x10 == Local0))
                    {
                        Local1 = 0xFFFF
                        If (Local3)
                        {
                            Local1 = 0x0F0F
                        }
                    }

                    If ((0x18 == Local0))
                    {
                        Local1 = 0xF0F0
                    }

                    If ((0x20 == Local0))
                    {
                        Local1 = 0x1010
                    }

                    If ((0x28 == Local0))
                    {
                        Local1 = 0x2020
                    }

                    If ((0x30 == Local0))
                    {
                        Local1 = 0x4040
                    }

                    If ((0x38 == Local0))
                    {
                        Local1 = 0x8080
                    }

                    If ((0x48 == Local0))
                    {
                        Local1 = Zero
                        If ((0x02 == Local2))
                        {
                            Local1 = 0x0303
                        }

                        If ((0x03 == Local2))
                        {
                            Local1 = 0x0101
                        }
                    }

                    If ((0x50 == Local0))
                    {
                        Local1 = Zero
                        If ((0x03 == Local2))
                        {
                            Local1 = 0x0202
                        }
                    }

                    Return (Local1)
                }

                Method (XPLP, 1, NotSerialized)
                {
                    Local1 = XPPD ()
                    If ((Zero != Local1))
                    {
                        Local2 = NBXR ((0x65 + XPCN ()))
                        If (Arg0)
                        {
                            Local2 &= ~Local1
                        }
                        Else
                        {
                            Local2 |= Local1
                        }

                        NBXW ((0x65 + XPCN ()), Local2)
                    }
                }

                Method (XPR2, 0, NotSerialized)
                {
                    Local0 = LKCN /* \_SB_.PCI0.PB7_.LKCN */
                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    Local0 |= 0x20
                    LKCN = Local0
                    Local1 = 0x64
                    Local2 = One
                    While ((Local1 && Local2))
                    {
                        Sleep (One)
                        Local3 = LKST /* \_SB_.PCI0.PB7_.LKST */
                        If ((Local3 & 0x0800))
                        {
                            Local1--
                        }
                        Else
                        {
                            Local2 = Zero
                        }
                    }

                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    If (!Local2)
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (XPLL, 1, NotSerialized)
                {
                    Local0 = GFXM ()
                    Local1 = XPPB ()
                    Local2 = Zero
                    If ((0x10 == Local1))
                    {
                        Local2 = One
                        Local3 = 0x00770070
                        If (Local0)
                        {
                            Local3 = 0x00330030
                        }
                    }

                    If (((0x18 == Local1) && Local0))
                    {
                        Local2 = One
                        Local3 = 0x00440040
                    }

                    Local0 = NBMR (0x07)
                    Local1 = NBXR (0x65)
                    If ((Local0 && 0x0201F000))
                    {
                        Local4 = 0x00440040
                        Local5 = Local4
                        If ((~Local1 && 0xF0F0))
                        {
                            Local5 = Zero
                        }
                    }
                    Else
                    {
                        Local4 = 0x00110010
                        Local5 = Local4
                        If ((~Local1 && 0x0F0F))
                        {
                            Local5 = Zero
                        }
                    }

                    If (Local2)
                    {
                        Local6 = (Local3 | Local4)
                        Local0 = (Local5 & Local4)
                        Local7 = (Local3 | Local0)
                        Local0 = NBMR (0x2E)
                        If (Arg0)
                        {
                            Local0 &= ~Local6
                        }
                        Else
                        {
                            Local0 |= Local7
                        }

                        NBMW (0x2E, Local0)
                    }
                }

                Method (XPPR, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        XPLL (One)
                        XPLP (One)
                        Sleep (0xC8)
                        XPTR ((XPPB () << 0x03), One)
                        Sleep (0x14)
                    }
                    Else
                    {
                        XPTR ((XPPB () << 0x03), Zero)
                        XPLP (Zero)
                        XPLL (Zero)
                    }

                    Return (Ones)
                }

                Device (XPDV)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32,
                        PCMS,   32
                    }
                }
            }

            Device (PB9)
            {
                Name (_ADR, 0x00090000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    If ((WKPM == One))
                    {
                        Return (GPRW (0x08, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (GPIC)
                    {
                        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
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF,
                                Zero,
                                LNKB,
                                Zero
                            },

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

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

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

                OperationRegion (XPEX, SystemMemory, 0xF8020100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28),
                    VC0S,   32
                }

                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32,
                    PCMS,   32,
                    Offset (0x18),
                    SBUS,   32
                }

                OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
                Field (XPCB, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x10),
                    LKCN,   16,
                    LKST,   16,
                    Offset (0x1A),
                        ,   3,
                    PSDC,   1,
                        ,   2,
                    PSDS,   1,
                    Offset (0x1B),
                    HPCS,   1,
                    Offset (0x20),
                    Offset (0x22),
                    PMES,   1
                }

                OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
                Field (XPRI, ByteAcc, NoLock, Preserve)
                {
                    XPIR,   32,
                    XPID,   32
                }

                Method (XPDL, 0, NotSerialized)
                {
                    Local0 = Zero
                    If ((VC0S & 0x00020000))
                    {
                        Local0 = Ones
                    }

                    Return (Local0)
                }

                Method (XPRD, 1, NotSerialized)
                {
                    XPIR = Arg0
                    Local0 = XPID /* \_SB_.PCI0.PB9_.XPID */
                    XPIR = Zero
                    Return (Local0)
                }

                Method (XPWR, 2, NotSerialized)
                {
                    XPIR = Arg0
                    XPID = Arg1
                    XPIR = Zero
                }

                Method (XPRT, 0, NotSerialized)
                {
                    Local0 = XPRD (0xA2)
                    Local0 &= 0xFFFFFFF8
                    Local1 = (Local0 >> 0x04)
                    Local1 &= 0x07
                    Local0 |= Local1
                    Local0 |= 0x0100
                    XPWR (0xA2, Local0)
                }

                Method (XPPB, 0, NotSerialized)
                {
                    Local0 = _ADR /* \_SB_.PCI0.PB9_._ADR */
                    Local1 = (Local0 >> 0x10)
                    Local1 = (Local1 << 0x03)
                    Local2 = (Local0 & 0x0F)
                    Local3 = (Local1 | Local2)
                    Return (Local3)
                }

                Method (XPCN, 0, NotSerialized)
                {
                    Local1 = Zero
                    Local0 = XPPB ()
                    If ((0x04 > Local0))
                    {
                        Local1 = Zero
                    }

                    If ((0x08 > Local0))
                    {
                        Local1 = 0x00010000
                    }

                    If ((0x0B > Local0))
                    {
                        Local1 = 0x00020000
                    }

                    Return (Local1)
                }

                Method (XPPD, 0, NotSerialized)
                {
                    Local0 = XPPB ()
                    Local2 = GPPX ()
                    Local3 = GFXM ()
                    Local1 = Zero
                    If ((0x10 == Local0))
                    {
                        Local1 = 0xFFFF
                        If (Local3)
                        {
                            Local1 = 0x0F0F
                        }
                    }

                    If ((0x18 == Local0))
                    {
                        Local1 = 0xF0F0
                    }

                    If ((0x20 == Local0))
                    {
                        Local1 = 0x1010
                    }

                    If ((0x28 == Local0))
                    {
                        Local1 = 0x2020
                    }

                    If ((0x30 == Local0))
                    {
                        Local1 = 0x4040
                    }

                    If ((0x38 == Local0))
                    {
                        Local1 = 0x8080
                    }

                    If ((0x48 == Local0))
                    {
                        Local1 = Zero
                        If ((0x02 == Local2))
                        {
                            Local1 = 0x0303
                        }

                        If ((0x03 == Local2))
                        {
                            Local1 = 0x0101
                        }
                    }

                    If ((0x50 == Local0))
                    {
                        Local1 = Zero
                        If ((0x03 == Local2))
                        {
                            Local1 = 0x0202
                        }
                    }

                    Return (Local1)
                }

                Method (XPLP, 1, NotSerialized)
                {
                    Local1 = XPPD ()
                    If ((Zero != Local1))
                    {
                        Local2 = NBXR ((0x65 + XPCN ()))
                        If (Arg0)
                        {
                            Local2 &= ~Local1
                        }
                        Else
                        {
                            Local2 |= Local1
                        }

                        NBXW ((0x65 + XPCN ()), Local2)
                    }
                }

                Method (XPR2, 0, NotSerialized)
                {
                    Local0 = LKCN /* \_SB_.PCI0.PB9_.LKCN */
                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    Local0 |= 0x20
                    LKCN = Local0
                    Local1 = 0x64
                    Local2 = One
                    While ((Local1 && Local2))
                    {
                        Sleep (One)
                        Local3 = LKST /* \_SB_.PCI0.PB9_.LKST */
                        If ((Local3 & 0x0800))
                        {
                            Local1--
                        }
                        Else
                        {
                            Local2 = Zero
                        }
                    }

                    Local0 &= 0xFFFFFFDF
                    LKCN = Local0
                    If (!Local2)
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (XPLL, 1, NotSerialized)
                {
                    Local0 = GFXM ()
                    Local1 = XPPB ()
                    Local2 = Zero
                    If ((0x10 == Local1))
                    {
                        Local2 = One
                        Local3 = 0x00770070
                        If (Local0)
                        {
                            Local3 = 0x00330030
                        }
                    }

                    If (((0x18 == Local1) && Local0))
                    {
                        Local2 = One
                        Local3 = 0x00440040
                    }

                    Local0 = NBMR (0x07)
                    Local1 = NBXR (0x65)
                    If ((Local0 && 0x0201F000))
                    {
                        Local4 = 0x00440040
                        Local5 = Local4
                        If ((~Local1 && 0xF0F0))
                        {
                            Local5 = Zero
                        }
                    }
                    Else
                    {
                        Local4 = 0x00110010
                        Local5 = Local4
                        If ((~Local1 && 0x0F0F))
                        {
                            Local5 = Zero
                        }
                    }

                    If (Local2)
                    {
                        Local6 = (Local3 | Local4)
                        Local0 = (Local5 & Local4)
                        Local7 = (Local3 | Local0)
                        Local0 = NBMR (0x2E)
                        If (Arg0)
                        {
                            Local0 &= ~Local6
                        }
                        Else
                        {
                            Local0 |= Local7
                        }

                        NBMW (0x2E, Local0)
                    }
                }

                Method (XPPR, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        XPLL (One)
                        XPLP (One)
                        Sleep (0xC8)
                        XPTR ((XPPB () << 0x03), One)
                        Sleep (0x14)
                    }
                    Else
                    {
                        XPTR ((XPPB () << 0x03), Zero)
                        XPLP (Zero)
                        XPLL (Zero)
                    }

                    Return (Ones)
                }

                Device (XPDV)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32,
                        PCMS,   32
                    }
                }
            }

            Device (PB10)
            {
                Name (_ADR, 0x000A0000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    If ((WKPM == One))
                    {
                        Return (GPRW (0x08, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (GPIC)
                    {
                        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
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF,
                                Zero,
                                LNKC,
                                Zero
                            },

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

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

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

            Device (SPB0)
            {
                Name (_ADR, 0x00150000)  // _ADR: Address
                Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
                {
                    0x08,
                    0x04
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (GPIC)
                    {
                        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
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF,
                                Zero,
                                LNKA,
                                Zero
                            },

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

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

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

                Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
                {
                    If ((XCMP (Arg0, ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */) == One))
                    {
                        If ((Arg2 == Zero))
                        {
                            Return (Buffer (One)
                            {
                                 0x21                                             /* ! */
                            })
                        }

                        If ((Arg2 == 0x05))
                        {
                            If ((Arg1 == One))
                            {
                                Return (One)
                            }
                        }

                        Return (One)
                    }

                    Return (Buffer (One)
                    {
                         0x00                                             /* . */
                    })
                }

                Method (XPPB, 0, NotSerialized)
                {
                    Local0 = _ADR /* \_SB_.PCI0.SPB0._ADR */
                    Local1 = (Local0 >> 0x10)
                    Local2 = (Local1 << 0x03)
                    Local1 = (Local0 & 0x0F)
                    Local3 = (Local1 | Local2)
                    Return (Local3)
                }

                Device (NCRD)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32,
                        PCMS,   32
                    }
                }
            }

            Device (SPB1)
            {
                Name (_ADR, 0x00150001)  // _ADR: Address
                Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
                {
                    0x18,
                    0x04
                })
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (GPIC)
                    {
                        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
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF,
                                Zero,
                                LNKB,
                                Zero
                            },

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

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

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

                Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
                {
                    If ((XCMP (Arg0, ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */) == One))
                    {
                        If ((Arg2 == Zero))
                        {
                            Return (Buffer (One)
                            {
                                 0x21                                             /* ! */
                            })
                        }

                        If ((Arg2 == 0x05))
                        {
                            If ((Arg1 == One))
                            {
                                Return (One)
                            }
                        }

                        Return (One)
                    }

                    Return (Buffer (One)
                    {
                         0x00                                             /* . */
                    })
                }

                Method (XPPB, 0, NotSerialized)
                {
                    Local0 = _ADR /* \_SB_.PCI0.SPB1._ADR */
                    Local1 = (Local0 >> 0x10)
                    Local2 = (Local1 << 0x03)
                    Local1 = (Local0 & 0x0F)
                    Local3 = (Local1 | Local2)
                    Return (Local3)
                }

                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32,
                    PCMS,   32,
                    Offset (0x18),
                    SBUS,   32
                }

                Device (XPDV)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32,
                        PCMS,   32
                    }
                }
            }

            Device (HPET)
            {
                Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    If ((^^SMBS.HPAD && Ones))
                    {
                        If ((WNOS == 0x05))
                        {
                            Return (0x0F)
                        }
                    }

                    Return (Zero)
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Name (BUF0, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {0}
                        IRQNoFlags ()
                            {8}
                        Memory32Fixed (ReadOnly,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            _Y05)
                    })
                    CreateDWordField (BUF0, \_SB.PCI0.HPET._CRS._Y05._BAS, HPEB)  // _BAS: Base Address
                    Local0 = ^^SMBS.HPAD /* \_SB_.PCI0.SMBS.HPAD */
                    HPEB = (Local0 & 0xFFFFFFC0)
                    Return (BUF0) /* \_SB_.PCI0.HPET._CRS.BUF0 */
                }
            }

            Device (AZAL)
            {
                Name (_ADR, 0x00140002)  // _ADR: Address
            }

            Device (GEC)
            {
                Name (_ADR, 0x00140006)  // _ADR: Address
                Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
                {
                    0x1A,
                    0x04
                })
            }

            Device (USB0)
            {
                Name (_ADR, 0x00120000)  // _ADR: Address
                OperationRegion (U0CS, PCI_Config, 0xC4, 0x04)
                Field (U0CS, DWordAcc, NoLock, Preserve)
                {
                    U0EN,   2
                }

                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x18, 0x03))
                }

                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)  // _S4D: S4 Device State
                {
                    Return (0x02)
                }
            }

            Device (USB1)
            {
                Name (_ADR, 0x00130000)  // _ADR: Address
                OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
                Field (U1CS, DWordAcc, NoLock, Preserve)
                {
                    U1EN,   2
                }

                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)  // _S4D: S4 Device State
                {
                    Return (0x02)
                }
            }

            Device (USB2)
            {
                Name (_ADR, 0x00160000)  // _ADR: Address
                OperationRegion (U2CS, PCI_Config, 0xC4, 0x04)
                Field (U2CS, DWordAcc, NoLock, Preserve)
                {
                    U2EN,   2
                }

                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x18, 0x03))
                }

                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)  // _S4D: S4 Device State
                {
                    Return (0x02)
                }
            }

            Device (USB3)
            {
                Name (_ADR, 0x00140005)  // _ADR: Address
                OperationRegion (U3CS, PCI_Config, 0xC4, 0x04)
                Field (U3CS, DWordAcc, NoLock, Preserve)
                {
                    U3EN,   2
                }

                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)  // _S4D: S4 Device State
                {
                    Return (0x02)
                }
            }

            Device (USB4)
            {
                Name (_ADR, 0x00120002)  // _ADR: Address
            }

            Device (USB5)
            {
                Name (_ADR, 0x00130002)  // _ADR: Address
            }

            Device (USB6)
            {
                Name (_ADR, 0x00160002)  // _ADR: Address
            }

            Scope (USB0)
            {
                Device (RHUB)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Device (PRT3)
                    {
                        Name (_ADR, 0x03)  // _ADR: Address
                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
                        {
                            0xFF,
                            0xFF,
                            Zero,
                            Zero
                        })
                        Name (_PLD, ToPLD ()  // _PLD: Physical Location of Device
                }
            }

            Scope (USB1)
            {
                Device (RHUB)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Device (PRT1)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
                        {
                            0xFF,
                            0xFF,
                            Zero,
                            Zero
                        })
                        Name (_PLD, ToPLD ()  // _PLD: Physical Location of Device
                    }

                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)  // _ADR: Address
                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
                        {
                            0xFF,
                            0xFF,
                            Zero,
                            Zero
                        })
                        Name (_PLD, ToPLD ()  // _PLD: Physical Location of Device
                    }
                }
            }

            Scope (USB2)
            {
                Device (RHUB)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Device (PRT1)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
                        {
                            0xFF,
                            0xFF,
                            Zero,
                            Zero
                        })
                        Name (_PLD, ToPLD ()  // _PLD: Physical Location of Device
                    }

                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)  // _ADR: Address
                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
                        {
                            0xFF,
                            0xFF,
                            Zero,
                            Zero
                        })
                        Name (_PLD, ToPLD ()  // _PLD: Physical Location of Device
                    }
                }
            }

            Scope (USB5)
            {
                Device (RHUB)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Device (PRT1)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
                        {
                            0xFF,
                            0xFF,
                            Zero,
                            Zero
                        })
                        Name (_PLD, ToPLD ()  // _PLD: Physical Location of Device
                    }

                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)  // _ADR: Address
                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
                        {
                            0xFF,
                            0xFF,
                            Zero,
                            Zero
                        })
                        Name (_PLD, ToPLD ()  // _PLD: Physical Location of Device
                    }
                }
            }

            Scope (USB6)
            {
                Device (RHUB)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Device (PRT1)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
                        {
                            0xFF,
                            0xFF,
                            Zero,
                            Zero
                        })
                        Name (_PLD, ToPLD ()  // _PLD: Physical Location of Device
                    }

                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)  // _ADR: Address
                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
                        {
                            0xFF,
                            0xFF,
                            Zero,
                            Zero
                        })
                        Name (_PLD, ToPLD ()  // _PLD: Physical Location of Device
                    }
                }
            }

            Device (SMBS)
            {
                Name (_ADR, 0x00140000)  // _ADR: Address
                OperationRegion (IRQF, PCI_Config, Zero, 0x0100)
                Field (IRQF, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x08),
                    RVID,   8,
                    Offset (0x62),
                    IRQK,   1,
                    IRQM,   1,
                    Offset (0x63),
                    Offset (0xAD),
                    SA1E,   1,
                        ,   3,
                    SA2E,   1,
                    Offset (0xB4),
                    HPAD,   32,
                    Offset (0xE1),
                        ,   6,
                    ACIR,   1,
                    Offset (0xF8),
                    EIDX,   8,
                    Offset (0xFC),
                    EDAT,   32
                }

                OperationRegion (PMIO, SystemIO, 0x0CD6, 0x02)
                Field (PMIO, ByteAcc, NoLock, Preserve)
                {
                    INPM,   8,
                    DAPM,   8
                }

                IndexField (INPM, DAPM, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x24),
                    MMSO,   32,
                    Offset (0x60),
                    P1EB,   16,
                    Offset (0xF0),
                        ,   3,
                    RSTU,   1
                }

                OperationRegion (ERMM, SystemMemory, MMSO, 0x1000)
                Field (ERMM, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x105),
                        ,   5,
                    G06E,   1,
                    G06O,   1,
                    G06I,   1,
                        ,   5,
                    G07E,   1,
                    G07O,   1,
                    G07I,   1,
                    Offset (0x10A),
                        ,   5,
                    G11E,   1,
                    G11O,   1,
                    G11I,   1,
                        ,   5,
                    G12E,   1,
                    G12O,   1,
                    G12I,   1,
                        ,   5,
                    G13E,   1,
                    G13O,   1,
                    G13I,   1,
                        ,   5,
                    G14E,   1,
                    G14O,   1,
                    G14I,   1,
                        ,   5,
                    G15E,   1,
                    G15O,   1,
                    G15I,   1,
                        ,   5,
                    G16E,   1,
                    G16O,   1,
                    G16I,   1,
                    Offset (0x113),
                        ,   5,
                    G20E,   1,
                    G20O,   1,
                    G20I,   1,
                        ,   5,
                    G21E,   1,
                    G21O,   1,
                    G21I,   1,
                    Offset (0x11A),
                        ,   5,
                    G27E,   1,
                    G27O,   1,
                    G27I,   1,
                    Offset (0x11F),
                        ,   5,
                    G32E,   1,
                    G32O,   1,
                    G32I,   1,
                    Offset (0x122),
                        ,   5,
                    G35E,   1,
                    G35O,   1,
                    G35I,   1,
                    Offset (0x128),
                    GP41,   8,
                    Offset (0x12B),
                        ,   5,
                    G44E,   1,
                    G44O,   1,
                    G44I,   1,
                        ,   5,
                    G45E,   1,
                    G45O,   1,
                    G45I,   1,
                    GP46,   8,
                    Offset (0x132),
                        ,   5,
                    G51E,   1,
                    G51O,   1,
                    G51I,   1,
                    Offset (0x136),
                        ,   5,
                    G55E,   1,
                    G55O,   1,
                    G55I,   1,
                    Offset (0x13A),
                        ,   5,
                    G59E,   1,
                    G59O,   1,
                    G59I,   1,
                    Offset (0x13E),
                    GP63,   8,
                        ,   5,
                    G64E,   1,
                    G64O,   1,
                    G64I,   1,
                    Offset (0x164),
                        ,   7,
                    GE05,   1,
                        ,   5,
                    G66E,   1,
                    G66O,   1,
                    G66I,   1,
                    Offset (0x16A),
                    GE11,   8,
                    Offset (0x16E),
                        ,   7,
                    GE15,   1,
                        ,   7,
                    GE16,   1,
                    Offset (0x174),
                        ,   7,
                    GE21,   1,
                        ,   7,
                    GE22,   1,
                    Offset (0x1A5),
                    GPA6,   8,
                    Offset (0x1A9),
                        ,   5,
                    GAAE,   1,
                    GAAO,   1,
                    GAAI,   1,
                    Offset (0x1AE),
                        ,   5,
                    PD0E,   1,
                    PD0O,   1,
                    PD0I,   1,
                        ,   5,
                    PD1E,   1,
                    PD1O,   1,
                    PD1I,   1,
                        ,   5,
                    GB1E,   1,
                    GB1O,   1,
                    GB1I,   1,
                        ,   5,
                    GB2E,   1,
                    GB2O,   1,
                    GB2I,   1,
                        ,   5,
                    GB3E,   1,
                    GB3O,   1,
                    GB3I,   1,
                        ,   5,
                    GB4E,   1,
                    GB4O,   1,
                    GB4I,   1,
                        ,   5,
                    GB5E,   1,
                    GB5O,   1,
                    GB5I,   1,
                        ,   5,
                    GB6E,   1,
                    GB6O,   1,
                    GB6I,   1,
                    Offset (0x1FF),
                        ,   1,
                    E01S,   1,
                        ,   3,
                    E05S,   1,
                        ,   9,
                    E15S,   1,
                    E16S,   1,
                        ,   4,
                    E21S,   1,
                    E22S,   1,
                    Offset (0x203),
                        ,   1,
                    E01E,   1,
                        ,   3,
                    E05E,   1,
                        ,   9,
                    E15E,   1,
                    E16E,   1,
                        ,   4,
                    E21E,   1,
                    E22E,   1,
                    Offset (0x207),
                        ,   1,
                    E01C,   1,
                        ,   3,
                    E05C,   1,
                    E06C,   1,
                        ,   8,
                    E15C,   1,
                    E16C,   1,
                        ,   4,
                    E21C,   1,
                    E22C,   1,
                    Offset (0x20B),
                        ,   1,
                    E01L,   1,
                        ,   3,
                    E05L,   1,
                        ,   9,
                    E15L,   1,
                    E16L,   1,
                        ,   6,
                    E22L,   1,
                    Offset (0x287),
                        ,   1,
                    CLPS,   1,
                    Offset (0x298),
                        ,   7,
                    G15A,   1,
                    Offset (0x2AF),
                        ,   2,
                    SLPS,   2,
                    Offset (0x361),
                        ,   6,
                    MT3A,   1,
                    Offset (0x376),
                    EPNM,   1,
                    DPPF,   1,
                    Offset (0x3BA),
                        ,   6,
                    PWDE,   1,
                    Offset (0x3BD),
                        ,   5,
                    ALLS,   1,
                    Offset (0x3C7),
                        ,   2,
                    TFTE,   1,
                    Offset (0x3DE),
                    BLNK,   2,
                    Offset (0x3EF),
                    PHYD,   1,
                    Offset (0x3FF),
                    F0CT,   8,
                    F0MS,   8,
                    F0FQ,   8,
                    F0LD,   8,
                    F0MD,   8,
                    F0MP,   8,
                    LT0L,   8,
                    LT0H,   8,
                    MT0L,   8,
                    MT0H,   8,
                    HT0L,   8,
                    HT0H,   8,
                    LRG0,   8,
                    LHC0,   8,
                    Offset (0x40F),
                    F1CT,   8,
                    F1MS,   8,
                    F1FQ,   8,
                    F1LD,   8,
                    F1MD,   8,
                    F1MP,   8,
                    LT1L,   8,
                    LT1H,   8,
                    MT1L,   8,
                    MT1H,   8,
                    HT1L,   8,
                    HT1H,   8,
                    LRG1,   8,
                    LHC1,   8,
                    Offset (0x41F),
                    F2CT,   8,
                    F2MS,   8,
                    F2FQ,   8,
                    F2LD,   8,
                    F2MD,   8,
                    F2MP,   8,
                    LT2L,   8,
                    LT2H,   8,
                    MT2L,   8,
                    MT2H,   8,
                    HT2L,   8,
                    HT2H,   8,
                    LRG2,   8,
                    LHC2,   8,
                    Offset (0x42F),
                    F3CT,   8,
                    F3MS,   8,
                    F3FQ,   8,
                    F3LD,   8,
                    F3MD,   8,
                    F3MP,   8,
                    LT3L,   8,
                    LT3H,   8,
                    MT3L,   8,
                    MT3H,   8,
                    HT3L,   8,
                    HT3H,   8,
                    LRG3,   8,
                    LHC3,   8,
                    Offset (0xD06),
                    MX07,   8,
                    Offset (0xD0E),
                    MX15,   8,
                    MX16,   8,
                    Offset (0xD14),
                    MX21,   8,
                    Offset (0xD1A),
                    MX27,   8,
                    Offset (0xD1F),
                    MX32,   8,
                    Offset (0xD2B),
                    MX44,   8,
                    Offset (0xD3A),
                    MX59,   8,
                    Offset (0xD65),
                    M102,   8,
                    Offset (0xDAE),
                    M175,   8,
                    M176,   8,
                    Offset (0xDB3),
                    M180,   8,
                    Offset (0xDB5),
                    M182,   8,
                    Offset (0xE01),
                    MS02,   8,
                    MS03,   8,
                    MS04,   8,
                    Offset (0xE3F),
                    MS40,   8,
                    Offset (0xE80),
                        ,   2,
                    ECES,   1
                }

                OperationRegion (P1E0, SystemIO, P1EB, 0x04)
                Field (P1E0, ByteAcc, NoLock, Preserve)
                {
                        ,   14,
                    PEWS,   1,
                    WSTA,   1,
                        ,   14,
                    PEWD,   1
                }
            }

            Device (LPC0)
            {
                Name (_ADR, 0x00140003)  // _ADR: Address
                Mutex (PSMX, 0x00)
                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0081,             // Range Minimum
                            0x0081,             // Range Maximum
                            0x01,               // Alignment
                            0x0F,               // Length
                            )
                        IO (Decode16,
                            0x00C0,             // Range Minimum
                            0x00C0,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                        DMA (Compatibility, NotBusMaster, Transfer8_16, )
                            {4}
                    })
                }

                Device (COPR)
                {
                    Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x00F0,             // Range Minimum
                            0x00F0,             // Range Maximum
                            0x01,               // Alignment
                            0x0F,               // Length
                            )
                        IRQNoFlags ()
                            {13}
                    })
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0020,             // Range Minimum
                            0x0020,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A0,             // Range Minimum
                            0x00A0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {2}
                    })
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                    Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
                    {
                        If ((^^^SMBS.HPAD && Ones))
                        {
                            Return (BUF0) /* \_SB_.PCI0.LPC0.RTC_.BUF0 */
                        }

                        Return (BUF1) /* \_SB_.PCI0.LPC0.RTC_.BUF1 */
                    }
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800") /* Microsoft Sound System Compatible Device */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0061,             // Range Minimum
                            0x0061,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                    })
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */)  // _HID: Hardware ID
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {0}
                    })
                    Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
                    {
                        If ((^^^SMBS.HPAD && Ones))
                        {
                            Return (BUF0) /* \_SB_.PCI0.LPC0.TMR_.BUF0 */
                        }

                        Return (BUF1) /* \_SB_.PCI0.LPC0.TMR_.BUF1 */
                    }
                }

                Device (KBC0)
                {
                    Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {1}
                    })
                }

                Device (MSS0)
                {
                    Name (_HID, EisaId ("SYN0728"))  // _HID: Hardware ID
                    Name (_CID, Package (0x03)  // _CID: Compatible ID
                    {
                        EisaId ("SYN0700"),
                        EisaId ("SYN0002"),
                        EisaId ("PNP0F13") /* PS/2 Mouse */
                    })
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        If ((TPDF < 0x03))
                        {
                            Return (0x0F)
                        }

                        Return (Zero)
                    }

                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IRQ (Edge, ActiveHigh, Exclusive, )
                            {12}
                    })
                }

                Device (MSS1)
                {
                    Name (_HID, EisaId ("ETD0600"))  // _HID: Hardware ID
                    Name (_CID, Package (0x02)  // _CID: Compatible ID
                    {
                        EisaId ("PNP0F13") /* PS/2 Mouse */,
                        EisaId ("ETD0001")
                    })
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        If ((TPDF >= 0x03))
                        {
                            Return (0x0F)
                        }

                        Return (Zero)
                    }

                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IRQ (Edge, ActiveHigh, Exclusive, )
                            {12}
                    })
                }

                Device (SYSR)
                {
                    Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0010,             // Range Minimum
                            0x0010,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x002E,             // Range Minimum
                            0x002E,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0072,             // Range Minimum
                            0x0072,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0080,             // Range Minimum
                            0x0080,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x00B0,             // Range Minimum
                            0x00B0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0092,             // Range Minimum
                            0x0092,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0400,             // Range Minimum
                            0x0400,             // Range Maximum
                            0x01,               // Alignment
                            0xD0,               // Length
                            )
                        IO (Decode16,
                            0x04D0,             // Range Minimum
                            0x04D0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x04D6,             // Range Minimum
                            0x04D6,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0680,             // Range Minimum
                            0x0680,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                        IO (Decode16,
                            0x077A,             // Range Minimum
                            0x077A,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0C00,             // Range Minimum
                            0x0C00,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0C14,             // Range Minimum
                            0x0C14,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0C50,             // Range Minimum
                            0x0C50,             // Range Maximum
                            0x01,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0C6C,             // Range Minimum
                            0x0C6C,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0C6F,             // Range Minimum
                            0x0C6F,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0CD0,             // Range Minimum
                            0x0CD0,             // Range Maximum
                            0x01,               // Alignment
                            0x0C,               // Length
                            )
                        IO (Decode16,
                            0xE02C,             // Range Minimum
                            0xE02C,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                    })
                }

                Device (MEM)
                {
                    Name (_HID, EisaId ("PNP0C01") /* System Board */)  // _HID: Hardware ID
                    Name (MSRC, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly,
                            0x000E0000,         // Address Base
                            0x00020000,         // Address Length
                            )
                        Memory32Fixed (ReadWrite,
                            0xFFF00000,         // Address Base
                            0x00100000,         // Address Length
                            _Y06)
                    })
                    Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                    {
                        CreateDWordField (MSRC, \_SB.PCI0.LPC0.MEM._Y06._LEN, PSIZ)  // _LEN: Length
                        CreateDWordField (MSRC, \_SB.PCI0.LPC0.MEM._Y06._BAS, PBAS)  // _BAS: Base Address
                        PSIZ = ROMS /* \ROMS */
                        Local0 = (ROMS - One)
                        PBAS = (Ones - Local0)
                        Return (MSRC) /* \_SB_.PCI0.LPC0.MEM_.MSRC */
                    }
                }

                Method (ECOK, 0, NotSerialized)
                {
                    If ((^EC0.ECK == One))
                    {
                        Return (One)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Device (EC0)
                {
                    Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */)  // _HID: Hardware ID
                    Name (_GPE, 0x03)  // _GPE: General Purpose Events
                    Name (ECK, Zero)
                    Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                    {
                        Name (BFFR, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0062,             // Range Minimum
                                0x0062,             // Range Maximum
                                0x00,               // Alignment
                                0x01,               // Length
                                )
                            IO (Decode16,
                                0x0066,             // Range Minimum
                                0x0066,             // Range Maximum
                                0x00,               // Alignment
                                0x01,               // Length
                                )
                        })
                        Return (BFFR) /* \_SB_.PCI0.LPC0.EC0_._CRS.BFFR */
                    }

                    OperationRegion (ECF2, EmbeddedControl, Zero, 0xFF)
                    Field (ECF2, ByteAcc, Lock, Preserve)
                    {
                        VCMD,   8,
                        VDAT,   8,
                        VSTA,   8
                    }

                    Device (VPC0)
                    {
                        Name (_HID, "VPC2004")  // _HID: Hardware ID
                        Name (_UID, Zero)  // _UID: Unique ID
                        Name (_VPC, 0x0070E100)
                        Name (VPCD, Zero)
                        Method (_STA, 0, NotSerialized)  // _STA: Status
                        {
                            Return (0x0F)
                        }

                        Method (_CFG, 0, NotSerialized)
                        {
                            Local0 = _VPC /* \_SB_.PCI0.LPC0.EC0_.VPC0._VPC */
                            Local0 &= 0xFFFF
                            Local1 = Zero
                            Local0 |= 0xE000
                            Local0 |= 0x0200
                            If (ECOK ())
                            {
                                If ((BTEX == One))
                                {
                                    Local1 |= One
                                }
                                Else
                                {
                                    Local1 &= 0xFE
                                }

                                If ((W3GE == One))
                                {
                                    Local1 |= 0x02
                                }
                                Else
                                {
                                    Local1 &= 0xFD
                                }

                                If ((WLEX == One))
                                {
                                    Local1 |= 0x04
                                }
                                Else
                                {
                                    Local1 &= 0xFB
                                }

                                If ((CMEX == One))
                                {
                                    Local1 |= 0x08
                                }
                                Else
                                {
                                    Local1 &= 0xF7
                                }
                            }

                            Local1 |= 0x70
                            Local1 &= 0x7F
                            Local1 *= 0x00010000
                            Local0 += Local1
                            _VPC = Local0
                            Return (_VPC) /* \_SB_.PCI0.LPC0.EC0_.VPC0._VPC */
                        }

                        Method (VPCR, 1, Serialized)
                        {
                            If ((Arg0 == One))
                            {
                                VPCD = VCMD /* \_SB_.PCI0.LPC0.EC0_.VCMD */
                            }
                            Else
                            {
                                VPCD = VDAT /* \_SB_.PCI0.LPC0.EC0_.VDAT */
                            }

                            Return (VPCD) /* \_SB_.PCI0.LPC0.EC0_.VPC0.VPCD */
                        }

                        Method (VPCW, 2, Serialized)
                        {
                            If ((Arg0 == One))
                            {
                                VCMD = Arg1
                            }
                            Else
                            {
                                VDAT = Arg1
                            }

                            Return (Zero)
                        }

                        Method (APPC, 1, Serialized)
                        {
                            APTG = Arg0
                            APEJ = Arg0
                            Return (Zero)
                        }

                        Method (DBSL, 0, NotSerialized)
                        {
                            Return (Package (0x0B)
                            {
                                0x64,
                                0x5A,
                                0x50,
                                0x46,
                                0x3C,
                                0x32,
                                0x28,
                                0x1E,
                                0x14,
                                0x0A,
                                Zero
                            })
                        }

                        Method (HALS, 0, NotSerialized)
                        {
                            If (One) {}
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Method (SALS, 1, Serialized)
                        {
                            If ((Arg0 == One)) {}
                            Else
                            {
                            }

                            Return (Zero)
                        }

                        Method (HODD, 0, NotSerialized)
                        {
                            Return (0xFF)
                        }

                        Method (SODD, 1, Serialized)
                        {
                            If ((Arg0 == One)) {}
                            Else
                            {
                            }

                            Return (Zero)
                        }

                        Method (BASL, 1, Serialized)
                        {
                            Local0 = Arg0
                            Local0 &= 0xFFFF
                            Local1 = (Arg0 & 0xFFFF0000)
                            Local1 = (Local1 / 0x00010000)
                            If (((Local0 == Zero) || (Local0 == Ones)))
                            {
                                P80H = Local0
                            }
                            Else
                            {
                                BCST = Local0
                                BCSP = Local1
                            }

                            Return (Zero)
                        }

                        Method (GBMD, 0, NotSerialized)
                        {
                            Local0 = 0x10000000
                            If ((Zero == EDCC))
                            {
                                Local0 |= One
                            }

                            If ((One == MBBD))
                            {
                                Local0 |= 0x08
                            }

                            If ((One == SBBD))
                            {
                                Local0 |= 0x10
                            }

                            If ((One == BTCM))
                            {
                                Local0 |= 0x40
                            }

                            Return (Local0)
                        }

                        Method (SBMC, 1, NotSerialized)
                        {
                            If ((Arg0 == Zero))
                            {
                                CDMB = Zero
                                EDCC = One
                                Return (Zero)
                            }

                            If ((Arg0 == One))
                            {
                                EDCC = Zero
                                CDMB = One
                                Return (Zero)
                            }

                            If ((Arg0 == 0x02))
                            {
                                CCSB = One
                                Return (Zero)
                            }

                            If ((Arg0 == 0x03))
                            {
                                BTSM = One
                                Return (Zero)
                            }

                            If ((Arg0 == 0x04))
                            {
                                BTCM = One
                                LBTM = Zero
                                Return (Zero)
                            }

                            If ((Arg0 == 0x05))
                            {
                                LBTM = One
                                BTCM = Zero
                                Return (Zero)
                            }

                            If ((Arg0 == 0x06))
                            {
                                CSBM = One
                                Return (Zero)
                            }

                            Return (Zero)
                        }

                        Method (SHDC, 1, NotSerialized)
                        {
                            IPEN = Arg0
                            Return (Zero)
                        }
                    }

                    Method (_Q44, 0, NotSerialized)  // _Qxx: EC Query
                    {
                        If ((ECK == One))
                        {
                            Notify (VPC0, 0x80) // Status Change
                        }
                    }

                    OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
                    Field (ERAM, ByteAcc, Lock, Preserve)
                    {
                        Offset (0x05),
                        WINV,   1,
                        Offset (0x06),
                        BCST,   8,
                        BCSP,   8,
                        BATM,   16,
                        EDCC,   1,
                        ALSC,   1,
                        CDMB,   1,
                        CCSB,   1,
                        BTSM,   1,
                        BTCM,   1,
                        LBTM,   1,
                        CSBM,   1,
                            ,   4,
                        IPEN,   1,
                        Offset (0x0F),
                        FNCM,   8,
                        Offset (0x19),
                        BATD,   56,
                        Offset (0x52),
                            ,   1,
                        MBBD,   1,
                        Offset (0x60),
                        SMPR,   8,
                        SMST,   8,
                        SMAD,   8,
                        SMCM,   8,
                        SMDR,   32,
                        BCNT,   8,
                        SMAA,   8,
                        SMD0,   8,
                        SMD1,   8,
                        Offset (0x90),
                        Offset (0x91),
                        Offset (0x92),
                        Offset (0x93),
                        Offset (0x94),
                        ERIB,   16,
                        ERBD,   8,
                        Offset (0x98),
                        Offset (0x99),
                        OSIF,   1,
                            ,   1,
                        THPD,   1,
                        Offset (0x9A),
                        BAL1,   1,
                        BAL2,   1,
                        BAL3,   1,
                        BAL4,   1,
                        BCL1,   1,
                        BCL2,   1,
                        BCL3,   1,
                        BCL4,   1,
                        BPU1,   1,
                        BPU2,   1,
                        BPU3,   1,
                        BPU4,   1,
                        BOS1,   1,
                        BOS2,   1,
                        BOS3,   1,
                        BOS4,   1,
                        PHDD,   1,
                        IFDD,   1,
                        IODD,   1,
                        SHDD,   1,
                        LS20,   1,
                        EFDD,   1,
                        ECRT,   1,
                        LANC,   1,
                        SBTN,   1,
                        VIDO,   1,
                        VOLD,   1,
                        VOLU,   1,
                        MUTE,   1,
                        CONT,   1,
                        BRGT,   1,
                        HBTN,   1,
                        S4SE,   1,
                        SKEY,   1,
                        BKEY,   1,
                        TKEY,   1,
                        FKEY,   1,
                        DVDM,   1,
                        DIGM,   1,
                        UWAK,   1,
                            ,   1,
                        LIDS,   1,
                        Offset (0xA0),
                            ,   6,
                        SWTH,   1,
                        HWTH,   1,
                        DKT0,   1,
                        DKT1,   1,
                            ,   2,
                        OSUD,   1,
                        OSDK,   1,
                        OSSU,   1,
                        DKCG,   1,
                        ODTS,   8,
                        OSTP,   3,
                        PCMQ,   1,
                        PCMR,   1,
                        ADPT,   1,
                        SYS6,   1,
                        SYS7,   1,
                        PWAK,   1,
                        MWAK,   1,
                        LWAK,   1,
                        RWAK,   1,
                            ,   2,
                        KWAK,   1,
                        MSWK,   1,
                        CCAC,   1,
                        AOAC,   1,
                        BLAC,   1,
                        PSRC,   1,
                        BOAC,   1,
                        LCAC,   1,
                        AAAC,   1,
                        ACAC,   1,
                        PCEC,   8,
                        THON,   8,
                        THSD,   8,
                        THEM,   8,
                        TCON,   8,
                        THRS,   8,
                        THSE,   8,
                        FSSN,   4,
                        FANU,   4,
                        PTVL,   3,
                            ,   3,
                        TTSR,   1,
                        TTHR,   1,
                        TSTH,   1,
                        TSBC,   1,
                        TSBF,   1,
                        TSPL,   1,
                        TSBT,   1,
                            ,   2,
                        THTA,   1,
                        CTMP,   8,
                        LTMP,   8,
                        SKTA,   8,
                        SKTB,   8,
                        SKTC,   8,
                        CDTS,   8,
                        NBTP,   8,
                        LANP,   1,
                        LCDS,   1,
                        Offset (0xB8),
                        BTDT,   1,
                        BTPW,   1,
                        CMEX,   1,
                        CMPS,   1,
                        BTSW,   1,
                        BTWK,   1,
                        BTLD,   1,
                        DVME,   1,
                        BRTS,   8,
                        CTRS,   8,
                        WLAT,   1,
                        BTAT,   1,
                        WLEX,   1,
                        BTEX,   1,
                        KLSW,   1,
                        WLOK,   1,
                        W3GE,   1,
                        W3GA,   1,
                        PJID,   8,
                        CPUN,   8,
                        THFN,   8,
                        MLED,   1,
                        SCHG,   1,
                        SCCF,   1,
                        SCPF,   1,
                        ACIS,   1,
                        Offset (0xC0),
                            ,   4,
                        BTMF,   3,
                        BTY0,   1,
                        BST0,   8,
                        BRC0,   16,
                        BSN0,   16,
                        BPV0,   16,
                        BDV0,   16,
                        BDC0,   16,
                        BFC0,   16,
                        GAU0,   8,
                        BSCY,   8,
                        BSCU,   16,
                        BAC0,   16,
                        BTW0,   8,
                        BATV,   8,
                        BPTC,   8,
                        BTTC,   8,
                        BTMA,   16,
                        BTSC,   8,
                        BCIX,   8,
                        CCBA,   8,
                        CBOT,   8,
                        BTSS,   16,
                        OVCC,   8,
                        CCFC,   8,
                        BADC,   8,
                        BSC1,   16,
                        BSC2,   16,
                        BSC3,   16,
                        BSC4,   16,
                        BDME,   16,
                        Offset (0xEE),
                        Offset (0xEF),
                        Offset (0xF0),
                        BTS1,   8,
                        BTS2,   8,
                            ,   1,
                        SBBD,   1
                    }

                    Method (PCLK, 0, NotSerialized)
                    {
                        Local0 = PTVL /* \_SB_.PCI0.LPC0.EC0_.PTVL */
                        P80H = Local0
                        \_PR.C000._PPC = Local0
                        If ((CPUN >= 0x02))
                        {
                            \_PR.C001._PPC = Local0
                            If ((CPUN >= 0x03))
                            {
                                \_PR.C002._PPC = Local0
                                If ((CPUN == 0x04))
                                {
                                    \_PR.C003._PPC = Local0
                                }
                            }
                        }

                        Notify (\_PR.C000, 0x80) // Performance Capability Change
                        If ((CPUN >= 0x02))
                        {
                            Notify (\_PR.C001, 0x80) // Performance Capability Change
                            If ((CPUN >= 0x03))
                            {
                                Notify (\_PR.C002, 0x80) // Performance Capability Change
                                If ((CPUN == 0x04))
                                {
                                    Notify (\_PR.C003, 0x80) // Performance Capability Change
                                }
                            }
                        }
                    }

                    Method (_REG, 2, NotSerialized)  // _REG: Region Availability
                    {
                        If ((Arg0 == 0x03))
                        {
                            ECON = Arg1
                            ECK = Arg1
                            If (((OSYS == 0x07D6) || (OSYS == 0x07D9)))
                            {
                                WINV = One
                            }
                            Else
                            {
                                WINV = Zero
                            }
                        }
                    }

                    Method (_Q11, 0, NotSerialized)  // _Qxx: EC Query
                    {
                        P80H = 0x11
                        Notify (^^^AGP.VGA.LCD, 0x87) // Device-Specific
                        Notify (^^^PB2.VGA.LCD, 0x87) // Device-Specific
                        Notify (^^^PB3.VGA.LCD, 0x87) // Device-Specific
                        Notify (VPC0, 0x80) // Status Change
                    }

                    Method (_Q12, 0, NotSerialized)  // _Qxx: EC Query
                    {
                        P80H = 0x12
                        Notify (^^^AGP.VGA.LCD, 0x86) // Device-Specific
                        Notify (^^^PB2.VGA.LCD, 0x86) // Device-Specific
                        Notify (^^^PB3.VGA.LCD, 0x86) // Device-Specific
                        Notify (VPC0, 0x80) // Status Change
                    }

                    Method (_Q1D, 0, NotSerialized)  // _Qxx: EC Query
                    {
                        P80H = 0x1D
                        Sleep (0x03E8)
                        PCLK ()
                        Notify (\_TZ.THRM, 0x80) // Thermal Status Change
                        Sleep (0x1E)
                    }

                    Method (_Q22, 0, NotSerialized)  // _Qxx: EC Query
                    {
                        Notify (BAT0, 0x80) // Status Change
                    }

                    Method (_Q25, 0, NotSerialized)  // _Qxx: EC Query
                    {
                        P80H = 0x25
                        Notify (BAT0, 0x81) // Information Change
                        Notify (BAT0, 0x80) // Status Change
                    }

                    Method (_Q37, 0, NotSerialized)  // _Qxx: EC Query
                    {
                        P80H = 0x37
                        Notify (ACAD, Zero) // Bus Check
                        Notify (BAT0, 0x80) // Status Change
                    }

                    Method (_Q38, 0, NotSerialized)  // _Qxx: EC Query
                    {
                        P80H = 0x38
                        Notify (ACAD, One) // Device Check
                        Notify (BAT0, 0x80) // Status Change
                    }

                    OperationRegion (CCLK, SystemIO, 0x0410, 0x04)
                    Field (CCLK, DWordAcc, NoLock, Preserve)
                    {
                            ,   1,
                        DUTY,   3,
                        THEN,   1
                    }

                    Mutex (FAMX, 0x00)
                    Method (FANG, 1, NotSerialized)
                    {
                        Acquire (FAMX, 0xFFFF)
                        ERIB = Arg0
                        Local0 = ERBD /* \_SB_.PCI0.LPC0.EC0_.ERBD */
                        Release (FAMX)
                        Return (Local0)
                    }

                    Method (FANW, 2, NotSerialized)
                    {
                        Acquire (FAMX, 0xFFFF)
                        ERIB = Arg0
                        ERBD = Arg1
                        Release (FAMX)
                        Return (Arg1)
                    }

                    Method (TUVR, 1, NotSerialized)
                    {
                        Return (0x03)
                    }

                    Method (THRO, 1, NotSerialized)
                    {
                        If ((Arg0 == Zero))
                        {
                            Return (THEN) /* \_SB_.PCI0.LPC0.EC0_.THEN */
                        }
                        ElseIf ((Arg0 == One))
                        {
                            Return (DUTY) /* \_SB_.PCI0.LPC0.EC0_.DUTY */
                        }
                        ElseIf ((Arg0 == 0x02))
                        {
                            Return (TTHR) /* \_SB_.PCI0.LPC0.EC0_.TTHR */
                        }
                        Else
                        {
                            Return (0xFF)
                        }
                    }

                    Method (CLCK, 1, NotSerialized)
                    {
                        If ((Arg0 == Zero))
                        {
                            THEN = Zero
                        }
                        Else
                        {
                            DUTY = Arg0
                            THEN = One
                        }

                        Return (THEN) /* \_SB_.PCI0.LPC0.EC0_.THEN */
                    }

                    Method (LVCK, 0, NotSerialized)
                    {
                        Return (0x38)
                    }

                    Method (AITL, 2, NotSerialized)
                    {
                        Local0 = Arg1
                        If ((Zero == APSD))
                        {
                            APSD = One
                            If ((Arg0 == 0x10))
                            {
                                APMD = Zero
                                APMC = 0x86
                                Return (0xF0)
                            }

                            If ((Arg0 == 0x11))
                            {
                                APMD = Zero
                                APMC = 0x87
                                Return (0xF0)
                            }

                            If ((Arg0 == 0x12))
                            {
                                APMD = Zero
                                APMC = 0x88
                                Return (0xF0)
                            }

                            If ((Arg0 == 0x13))
                            {
                                APMD = Zero
                                APMC = 0x89
                                Return (0xF0)
                            }
                        }
                        Else
                        {
                            Return (0xFE)
                        }

                        Return (0xFF)
                    }
                }

                Device (ACAD)
                {
                    Name (_HID, "ACPI0003" /* Power Source Device */)  // _HID: Hardware ID
                    Name (_PCL, Package (0x01)  // _PCL: Power Consumer List
                    {
                        _SB
                    })
                    Method (_PSR, 0, NotSerialized)  // _PSR: Power Source
                    {
                        If (ECOK ())
                        {
                            Return (^^EC0.ADPT) /* \_SB_.PCI0.LPC0.EC0_.ADPT */
                        }
                    }
                }

                Device (BAT0)
                {
                    Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */)  // _HID: Hardware ID
                    Name (_UID, One)  // _UID: Unique ID
                    Name (_PCL, Package (0x01)  // _PCL: Power Consumer List
                    {
                        _SB
                    })
                    Name (PBIF, Package (0x0D)
                    {
                        One,
                        0x0FA0,
                        0x0FA0,
                        One,
                        0x39D0,
                        0x0190,
                        0x78,
                        0x0108,
                        0x0EC4,
                        "Li_Ion 4000mA ",
                        "",
                        "LION",
                        "Compal "
                    })
                    Name (PBST, Package (0x04)
                    {
                        One,
                        Ones,
                        Ones,
                        0x39D0
                    })
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        If (ECON)
                        {
                            If (_OSI ("Windows 2006"))
                            {
                                ^^EC0.OSTP = One
                            }

                            If (_OSI ("Windows 2006 SP1"))
                            {
                                ^^EC0.OSTP = One
                            }

                            If (_OSI ("Windows 2009"))
                            {
                                ^^EC0.OSTP = 0x03
                            }

                            If (^^EC0.BAL1)
                            {
                                Return (0x1F)
                            }
                            Else
                            {
                                Return (0x0F)
                            }
                        }
                        Else
                        {
                            Return (0x1F)
                        }
                    }

                    Method (_BIF, 0, NotSerialized)  // _BIF: Battery Information
                    {
                        If (ECON)
                        {
                            PBIF [One] = ^^EC0.BDC0 /* \_SB_.PCI0.LPC0.EC0_.BDC0 */
                            PBIF [0x02] = ^^EC0.BFC0 /* \_SB_.PCI0.LPC0.EC0_.BFC0 */
                            PBIF [0x04] = ^^EC0.BDV0 /* \_SB_.PCI0.LPC0.EC0_.BDV0 */
                            Local2 = ^^EC0.BDC0 /* \_SB_.PCI0.LPC0.EC0_.BDC0 */
                            Divide (Local2, 0x64, Local6, Local2)
                            Local3 = (Local2 * 0x05)
                            PBIF [0x05] = Local3
                            Local4 = (Local2 * 0x03)
                            PBIF [0x06] = Local4
                            Local1 = ^^EC0.BTMF /* \_SB_.PCI0.LPC0.EC0_.BTMF */
                            If ((Local1 == One))
                            {
                                PBIF [0x09] = "GC86508SAT0 "
                                PBIF [0x0C] = "SANYO "
                            }
                            ElseIf ((Local1 == 0x02))
                            {
                                PBIF [0x09] = "GC86503SY90 "
                                PBIF [0x0C] = "SONY "
                            }
                            ElseIf ((Local1 == 0x06))
                            {
                                PBIF [0x09] = "GC86503CPG0 "
                                PBIF [0x0C] = "CELXPERT "
                            }
                            ElseIf ((Local1 == 0x07))
                            {
                                PBIF [0x09] = "GC86508SP60 "
                                PBIF [0x0C] = "SIMPLO "
                            }
                            Else
                            {
                                PBIF [0x09] = "BCL3100LiON "
                                PBIF [0x0C] = "LENOVO "
                            }
                        }

                        Return (PBIF) /* \_SB_.PCI0.LPC0.BAT0.PBIF */
                    }

                    Method (_BST, 0, NotSerialized)  // _BST: Battery Status
                    {
                        If (ECON)
                        {
                            Local0 = ^^EC0.BST0 /* \_SB_.PCI0.LPC0.EC0_.BST0 */
                            Local0 &= 0x07
                            PBST [Zero] = Local0
                            Local2 = ^^EC0.GAU0 /* \_SB_.PCI0.LPC0.EC0_.GAU0 */
                            Local3 = ^^EC0.BPV0 /* \_SB_.PCI0.LPC0.EC0_.BPV0 */
                            Local1 = ^^EC0.BFC0 /* \_SB_.PCI0.LPC0.EC0_.BFC0 */
                            If (Local2)
                            {
                                Local2 *= Local1
                                Divide (Local2, 0x64, Local6, Local2)
                                If (Local6)
                                {
                                    Local2++
                                }
                            }

                            Local1 = ^^EC0.BAC0 /* \_SB_.PCI0.LPC0.EC0_.BAC0 */
                            If (Local1 &= 0x8000)
                            {
                                Local1 = ^^EC0.BAC0 /* \_SB_.PCI0.LPC0.EC0_.BAC0 */
                                Local1 = (0xFFFF - Local1)
                            }
                            Else
                            {
                                Local1 = Zero
                            }

                            PBST [One] = Local1
                            PBST [0x02] = Local2
                            PBST [0x03] = Local3
                        }

                        Return (PBST) /* \_SB_.PCI0.LPC0.BAT0.PBST */
                    }
                }

                OperationRegion (LCLM, SystemIO, 0x0C50, 0x03)
                Field (LCLM, ByteAcc, NoLock, Preserve)
                {
                    CLMI,   8,
                    CLMD,   8,
                    CLGP,   8
                }

                IndexField (CLMI, CLMD, ByteAcc, NoLock, Preserve)
                {
                    IDRG,   8,
                    Offset (0x02),
                    TSTS,   8,
                    TINT,   8,
                    Offset (0x12),
                    I2CC,   8,
                    GPIO,   8
                }

                Method (RGPM, 0, NotSerialized)
                {
                    Local0 = GPIO /* \_SB_.PCI0.LPC0.GPIO */
                    Local0 &= 0xFFFFFF3F
                    GPIO = Local0
                    Local1 = CLGP /* \_SB_.PCI0.LPC0.CLGP */
                    Return (Local1)
                }
            }

            Device (P2P)
            {
                Name (_ADR, 0x00140004)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    If ((WKPM == One))
                    {
                        Return (GPRW (0x04, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x04, Zero))
                    }
                }

                OperationRegion (PCPC, PCI_Config, Zero, 0xFF)
                Field (PCPC, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x04),
                    PCMD,   8,
                    Offset (0x1C),
                    IOW1,   8,
                    IOW2,   8,
                    Offset (0x48),
                    PR48,   8,
                    PR49,   8,
                    PR4A,   8,
                    PR4B,   8
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If ((GPIC == Zero))
                    {
                        Return (PIC) /* \_SB_.PCI0.P2P_.PIC_ */
                    }
                    Else
                    {
                        Return (APIC) /* \_SB_.PCI0.P2P_.APIC */
                    }
                }

                Name (PIC, Package (0x0E)
                {
                    Package (0x04)
                    {
                        0x0004FFFF,
                        Zero,
                        LNKE,
                        Zero
                    },

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

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

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

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

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

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

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

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

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

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

                    Package (0x04)
                    {
                        0x0007FFFF,
                        One,
                        LNKH,
                        Zero
                    },

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

                    Package (0x04)
                    {
                        0x0007FFFF,
                        0x03,
                        LNKF,
                        Zero
                    }
                })
                Name (APIC, Package (0x0E)
                {
                    Package (0x04)
                    {
                        0x0004FFFF,
                        Zero,
                        Zero,
                        0x14
                    },

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

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

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

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

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

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

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

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

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

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

                    Package (0x04)
                    {
                        0x0007FFFF,
                        One,
                        Zero,
                        0x17
                    },

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

                    Package (0x04)
                    {
                        0x0007FFFF,
                        0x03,
                        Zero,
                        0x15
                    }
                })
            }

            Device (SATA)
            {
                Name (_ADR, 0x00110000)  // _ADR: Address
                Name (B5EN, Zero)
                Name (BA_5, Zero)
                Name (SBAR, 0xF2407000)
                OperationRegion (SATX, PCI_Config, Zero, 0x50)
                Field (SATX, AnyAcc, NoLock, Preserve)
                {
                    VIDI,   32,
                    Offset (0x0A),
                    STCL,   16,
                    Offset (0x24),
                    BA05,   32,
                    Offset (0x40),
                    SCWE,   1
                }

                Method (GBAA, 0, Serialized)
                {
                    BA_5 = BA05 /* \_SB_.PCI0.SATA.BA05 */
                    If (((BA_5 == Ones) || (STCL != 0x0101)))
                    {
                        B5EN = Zero
                        Return (SBAR) /* \_SB_.PCI0.SATA.SBAR */
                    }
                    Else
                    {
                        B5EN = One
                        Return (BA_5) /* \_SB_.PCI0.SATA.BA_5 */
                    }
                }

                OperationRegion (BAR5, SystemMemory, GBAA (), 0x1000)
                Field (BAR5, AnyAcc, NoLock, Preserve)
                {
                    Offset (0xF9),
                        ,   4,
                    ESP0,   1,
                    ESP1,   1,
                    ESP2,   1,
                    ESP3,   1,
                    ESP4,   1,
                    ESP5,   1,
                    Offset (0xFC),
                        ,   11,
                    ALPM,   1,
                    Offset (0x120),
                        ,   7,
                    BSY0,   1,
                    Offset (0x128),
                    DET0,   4,
                    Offset (0x129),
                    IPM0,   4,
                    Offset (0x1A0),
                        ,   7,
                    BSY1,   1,
                    Offset (0x1A8),
                    DET1,   4,
                    Offset (0x1A9),
                    IPM1,   4,
                    Offset (0x220),
                        ,   7,
                    BSY2,   1,
                    Offset (0x228),
                    DET2,   4,
                    Offset (0x229),
                    IPM2,   4,
                    Offset (0x2A0),
                        ,   7,
                    BSY3,   1,
                    Offset (0x2A8),
                    DET3,   4,
                    Offset (0x2A9),
                    IPM3,   4,
                    Offset (0x320),
                        ,   7,
                    BSY4,   1,
                    Offset (0x328),
                    DET4,   4,
                    Offset (0x329),
                    IPM4,   4,
                    Offset (0x3A0),
                        ,   7,
                    BSY5,   1,
                    Offset (0x3A8),
                    DET5,   4,
                    Offset (0x3A9),
                    IPM5,   4
                }

                Method (ELDS, 0, NotSerialized)
                {
                    SCWE = One
                    ESP0 = Zero
                    ESP1 = Zero
                    ALPM = Zero
                    SCWE = Zero
                }

                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    ELDS ()
                    GBAA ()
                }

                Device (PRID)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Name (SPTM, Buffer (0x14)
                    {
                        /* 0000 */  0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,  /* x....... */
                        /* 0008 */  0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,  /* x....... */
                        /* 0010 */  0x1F, 0x00, 0x00, 0x00                           /* .... */
                    })
                    Method (_GTM, 0, NotSerialized)  // _GTM: Get Timing Mode
                    {
                        Return (SPTM) /* \_SB_.PCI0.SATA.PRID.SPTM */
                    }

                    Method (_STM, 3, NotSerialized)  // _STM: Set Timing Mode
                    {
                        SPTM = Arg0
                    }

                    Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                    {
                        GBAA ()
                        If ((((TPOS >= 0x40) || (TPOS == 0x04)) && B5EN))
                        {
                            If (IPM0)
                            {
                                Local0 = 0x32
                                While (((BSY0 == One) && Local0))
                                {
                                    Sleep (0xFA)
                                    Local0--
                                }
                            }

                            If (IPM2)
                            {
                                Local0 = 0x32
                                While (((BSY2 == One) && Local0))
                                {
                                    Sleep (0xFA)
                                    Local0--
                                }
                            }
                        }
                    }

                    Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                    {
                    }

                    Device (P_D0)
                    {
                        Name (_ADR, Zero)  // _ADR: Address
                        Method (_STA, 0, NotSerialized)  // _STA: Status
                        {
                            GBAA ()
                            If ((B5EN == Zero))
                            {
                                Return (Zero)
                            }

                            If ((DET0 == 0x03))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Name (S12P, Zero)
                        Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                        {
                            GBAA ()
                            If ((((TPOS < 0x40) && (TPOS != 0x04)) && B5EN))
                            {
                                Local0 = 0x32
                                While (((BSY0 == One) && Local0))
                                {
                                    Sleep (0xFA)
                                    Local0--
                                }
                            }
                        }

                        Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                        {
                        }

                        Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
                        {
                            Local0 = Buffer (0x07)
                                {
                                     0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF         /* .F..... */
                                }
                            Return (Local0)
                        }
                    }

                    Device (P_D1)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Method (_STA, 0, NotSerialized)  // _STA: Status
                        {
                            GBAA ()
                            If ((B5EN == Zero))
                            {
                                Return (Zero)
                            }

                            If ((DET2 == 0x03))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Name (S12P, Zero)
                        Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                        {
                            GBAA ()
                            If ((((TPOS < 0x40) && (TPOS != 0x04)) && B5EN))
                            {
                                Local0 = 0x32
                                While (((BSY2 == One) && Local0))
                                {
                                    Sleep (0xFA)
                                    Local0--
                                }
                            }
                        }

                        Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                        {
                        }

                        Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
                        {
                            Local0 = Buffer (0x07)
                                {
                                     0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF         /* .F..... */
                                }
                            Return (Local0)
                        }
                    }
                }

                Device (SECD)
                {
                    Name (_ADR, 0x02)  // _ADR: Address
                    Name (SPTM, Buffer (0x14)
                    {
                        /* 0000 */  0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,  /* x....... */
                        /* 0008 */  0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,  /* x....... */
                        /* 0010 */  0x1F, 0x00, 0x00, 0x00                           /* .... */
                    })
                    Method (_GTM, 0, NotSerialized)  // _GTM: Get Timing Mode
                    {
                        Return (SPTM) /* \_SB_.PCI0.SATA.SECD.SPTM */
                    }

                    Method (_STM, 3, NotSerialized)  // _STM: Set Timing Mode
                    {
                        SPTM = Arg0
                    }

                    Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                    {
                        GBAA ()
                        If ((((TPOS >= 0x40) || (TPOS == 0x04)) && B5EN))
                        {
                            If (IPM1)
                            {
                                Local0 = 0x32
                                While (((BSY1 == One) && Local0))
                                {
                                    Sleep (0xFA)
                                    Local0--
                                }
                            }

                            If (IPM3)
                            {
                                Local0 = 0x32
                                While (((BSY3 == One) && Local0))
                                {
                                    Sleep (0xFA)
                                    Local0--
                                }
                            }
                        }
                    }

                    Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                    {
                    }

                    Device (S_D0)
                    {
                        Name (_ADR, Zero)  // _ADR: Address
                        Method (_STA, 0, NotSerialized)  // _STA: Status
                        {
                            GBAA ()
                            If ((B5EN == Zero))
                            {
                                Return (Zero)
                            }

                            If ((DET1 == 0x03))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                        {
                            GBAA ()
                            If ((((TPOS < 0x40) && (TPOS != 0x04)) && B5EN))
                            {
                                Local0 = 0x32
                                While (((BSY1 == One) && Local0))
                                {
                                    Sleep (0xFA)
                                    Local0--
                                }
                            }
                        }

                        Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                        {
                        }

                        Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
                        {
                            Local0 = Buffer (0x07)
                                {
                                     0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF         /* .F..... */
                                }
                            Return (Local0)
                        }
                    }

                    Device (S_D1)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Method (_STA, 0, NotSerialized)  // _STA: Status
                        {
                            GBAA ()
                            If ((B5EN == Zero))
                            {
                                Return (Zero)
                            }

                            If ((DET3 == 0x03))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                        {
                            GBAA ()
                            If ((((TPOS < 0x40) && (TPOS != 0x04)) && B5EN))
                            {
                                Local0 = 0x32
                                While (((BSY3 == One) && Local0))
                                {
                                    Sleep (0xFA)
                                    Local0--
                                }
                            }
                        }

                        Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                        {
                        }

                        Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
                        {
                            Local0 = Buffer (0x07)
                                {
                                     0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF         /* .F..... */
                                }
                            Return (Local0)
                        }
                    }
                }

                Device (PRT2)
                {
                    Name (_ADR, 0x02)  // _ADR: Address
                    Device (ESAT)
                    {
                        Name (_ADR, Zero)  // _ADR: Address
                        Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
                        {
                            Return (One)
                        }
                    }
                }
            }

            Device (IDE)
            {
                Name (_ADR, 0x00140001)  // _ADR: Address
                Name (UDMT, Package (0x08)
                {
                    0x78,
                    0x5A,
                    0x3C,
                    0x2D,
                    0x1E,
                    0x14,
                    Zero,
                    Zero
                })
                Name (PIOT, Package (0x06)
                {
                    0x0258,
                    0x0186,
                    0x010E,
                    0xB4,
                    0x78,
                    Zero
                })
                Name (PITR, Package (0x06)
                {
                    0x99,
                    0x47,
                    0x34,
                    0x22,
                    0x20,
                    0x99
                })
                Name (MDMT, Package (0x04)
                {
                    0x01E0,
                    0x96,
                    0x78,
                    Zero
                })
                Name (MDTR, Package (0x04)
                {
                    0x77,
                    0x21,
                    0x20,
                    0xFF
                })
                OperationRegion (IDE, PCI_Config, 0x40, 0x20)
                Field (IDE, WordAcc, NoLock, Preserve)
                {
                    PPIT,   16,
                    SPIT,   16,
                    PMDT,   16,
                    SMDT,   16,
                    PPIC,   8,
                    SPIC,   8,
                    PPIM,   8,
                    SPIM,   8,
                    Offset (0x14),
                    PUDC,   2,
                    SUDC,   2,
                    Offset (0x16),
                    PUDM,   8,
                    SUDM,   8
                }

                Method (GETT, 1, NotSerialized)
                {
                    Local0 = (Arg0 & 0x0F)
                    Local1 = (Arg0 >> 0x04)
                    Return ((0x1E * ((Local0 + One) + (Local1 + One)
                        )))
                }

                Method (GTM, 1, NotSerialized)
                {
                    CreateByteField (Arg0, Zero, PIT1)
                    CreateByteField (Arg0, One, PIT0)
                    CreateByteField (Arg0, 0x02, MDT1)
                    CreateByteField (Arg0, 0x03, MDT0)
                    CreateByteField (Arg0, 0x04, PICX)
                    CreateByteField (Arg0, 0x05, UDCX)
                    CreateByteField (Arg0, 0x06, UDMX)
                    Name (BUF, Buffer (0x14)
                    {
                        /* 0000 */  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,  /* ........ */
                        /* 0008 */  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,  /* ........ */
                        /* 0010 */  0x00, 0x00, 0x00, 0x00                           /* .... */
                    })
                    CreateDWordField (BUF, Zero, PIO0)
                    CreateDWordField (BUF, 0x04, DMA0)
                    CreateDWordField (BUF, 0x08, PIO1)
                    CreateDWordField (BUF, 0x0C, DMA1)
                    CreateDWordField (BUF, 0x10, FLAG)
                    If ((PICX & One))
                    {
                        Return (BUF) /* \_SB_.PCI0.IDE_.GTM_.BUF_ */
                    }

                    PIO0 = GETT (PIT0)
                    PIO1 = GETT (PIT1)
                    If ((UDCX & One))
                    {
                        FLAG |= One
                        DMA0 = DerefOf (UDMT [(UDMX & 0x0F)])
                    }
                    ElseIf ((MDT0 != 0xFF))
                    {
                        DMA0 = GETT (MDT0)
                    }

                    If ((UDCX & 0x02))
                    {
                        FLAG |= 0x04
                        DMA1 = DerefOf (UDMT [(UDMX >> 0x04)])
                    }
                    ElseIf ((MDT1 != 0xFF))
                    {
                        DMA1 = GETT (MDT1)
                    }

                    FLAG |= 0x1A
                    Return (BUF) /* \_SB_.PCI0.IDE_.GTM_.BUF_ */
                }

                Method (STM, 3, NotSerialized)
                {
                    CreateDWordField (Arg0, Zero, PIO0)
                    CreateDWordField (Arg0, 0x04, DMA0)
                    CreateDWordField (Arg0, 0x08, PIO1)
                    CreateDWordField (Arg0, 0x0C, DMA1)
                    CreateDWordField (Arg0, 0x10, FLAG)
                    Name (BUF, Buffer (0x07)
                    {
                         0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00         /* ....... */
                    })
                    CreateByteField (BUF, Zero, PIT1)
                    CreateByteField (BUF, One, PIT0)
                    CreateByteField (BUF, 0x02, MDT1)
                    CreateByteField (BUF, 0x03, MDT0)
                    CreateByteField (BUF, 0x04, PIMX)
                    CreateByteField (BUF, 0x05, UDCX)
                    CreateByteField (BUF, 0x06, UDMX)
                    Local0 = Match (PIOT, MLE, PIO0, MTR, Zero, Zero)
                    Divide (Local0, 0x05, Local0)
                    Local1 = Match (PIOT, MLE, PIO1, MTR, Zero, Zero)
                    Divide (Local1, 0x05, Local1)
                    PIMX = ((Local1 << 0x04) | Local0)
                    PIT0 = DerefOf (PITR [Local0])
                    PIT1 = DerefOf (PITR [Local1])
                    If ((FLAG & One))
                    {
                        Local0 = Match (UDMT, MLE, DMA0, MTR, Zero, Zero)
                        Divide (Local0, 0x06, Local0)
                        UDMX |= Local0
                        UDCX |= One
                    }
                    ElseIf ((DMA0 != Ones))
                    {
                        Local0 = Match (MDMT, MLE, DMA0, MTR, Zero, Zero)
                        MDT0 = DerefOf (MDTR [Local0])
                    }

                    If ((FLAG & 0x04))
                    {
                        Local0 = Match (UDMT, MLE, DMA1, MTR, Zero, Zero)
                        Divide (Local0, 0x06, Local0)
                        UDMX |= (Local0 << 0x04)
                        UDCX |= 0x02
                    }
                    ElseIf ((DMA1 != Ones))
                    {
                        Local0 = Match (MDMT, MLE, DMA1, MTR, Zero, Zero)
                        MDT1 = DerefOf (MDTR [Local0])
                    }

                    Return (BUF) /* \_SB_.PCI0.IDE_.STM_.BUF_ */
                }

                Method (GTF, 2, NotSerialized)
                {
                    CreateByteField (Arg1, Zero, MDT1)
                    CreateByteField (Arg1, One, MDT0)
                    CreateByteField (Arg1, 0x02, PIMX)
                    CreateByteField (Arg1, 0x03, UDCX)
                    CreateByteField (Arg1, 0x04, UDMX)
                    If ((Arg0 == 0xA0))
                    {
                        Local0 = (PIMX & 0x0F)
                        Local1 = MDT0 /* \_SB_.PCI0.IDE_.GTF_.MDT0 */
                        Local2 = (UDCX & One)
                        Local3 = (UDMX & 0x0F)
                    }
                    Else
                    {
                        Local0 = (PIMX >> 0x04)
                        Local1 = MDT1 /* \_SB_.PCI0.IDE_.GTF_.MDT1 */
                        Local2 = (UDCX & 0x02)
                        Local3 = (UDMX >> 0x04)
                    }

                    Name (BUF, Buffer (0x0E)
                    {
                        /* 0000 */  0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x03,  /* ........ */
                        /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF               /* ...... */
                    })
                    CreateByteField (BUF, One, PMOD)
                    CreateByteField (BUF, 0x08, DMOD)
                    CreateByteField (BUF, 0x05, CMDA)
                    CreateByteField (BUF, 0x0C, CMDB)
                    CMDA = Arg0
                    CMDB = Arg0
                    PMOD = (Local0 | 0x08)
                    If (Local2)
                    {
                        DMOD = (Local3 | 0x40)
                    }
                    ElseIf ((Local1 != 0xFF))
                    {
                        Local4 = Match (MDMT, MLE, GETT (Local1), MTR, Zero, Zero)
                        If ((Local4 < 0x03))
                        {
                            DMOD = (0x20 | Local4)
                        }
                    }

                    Return (BUF) /* \_SB_.PCI0.IDE_.GTF_.BUF_ */
                }

                Device (PRID)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Method (_GTM, 0, NotSerialized)  // _GTM: Get Timing Mode
                    {
                        Name (BUF, Buffer (0x07)
                        {
                             0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00         /* ....... */
                        })
                        CreateWordField (BUF, Zero, VPIT)
                        CreateWordField (BUF, 0x02, VMDT)
                        CreateByteField (BUF, 0x04, VPIC)
                        CreateByteField (BUF, 0x05, VUDC)
                        CreateByteField (BUF, 0x06, VUDM)
                        VPIT = PPIT /* \_SB_.PCI0.IDE_.PPIT */
                        VMDT = PMDT /* \_SB_.PCI0.IDE_.PMDT */
                        VPIC = PPIC /* \_SB_.PCI0.IDE_.PPIC */
                        VUDC = PUDC /* \_SB_.PCI0.IDE_.PUDC */
                        VUDM = PUDM /* \_SB_.PCI0.IDE_.PUDM */
                        Return (GTM (BUF))
                    }

                    Method (_STM, 3, NotSerialized)  // _STM: Set Timing Mode
                    {
                        Name (BUF, Buffer (0x07)
                        {
                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00         /* ....... */
                        })
                        CreateWordField (BUF, Zero, VPIT)
                        CreateWordField (BUF, 0x02, VMDT)
                        CreateByteField (BUF, 0x04, VPIM)
                        CreateByteField (BUF, 0x05, VUDC)
                        CreateByteField (BUF, 0x06, VUDM)
                        BUF = STM (Arg0, Arg1, Arg2)
                        PPIT = VPIT /* \_SB_.PCI0.IDE_.PRID._STM.VPIT */
                        PMDT = VMDT /* \_SB_.PCI0.IDE_.PRID._STM.VMDT */
                        PPIM = VPIM /* \_SB_.PCI0.IDE_.PRID._STM.VPIM */
                        PUDC = VUDC /* \_SB_.PCI0.IDE_.PRID._STM.VUDC */
                        PUDM = VUDM /* \_SB_.PCI0.IDE_.PRID._STM.VUDM */
                    }

                    Device (P_D0)
                    {
                        Name (_ADR, Zero)  // _ADR: Address
                        Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
                        {
                            Name (BUF, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00                     /* ..... */
                            })
                            CreateWordField (BUF, Zero, VMDT)
                            CreateByteField (BUF, 0x02, VPIM)
                            CreateByteField (BUF, 0x03, VUDC)
                            CreateByteField (BUF, 0x04, VUDM)
                            VMDT = PMDT /* \_SB_.PCI0.IDE_.PMDT */
                            VPIM = PPIM /* \_SB_.PCI0.IDE_.PPIM */
                            VUDC = PUDC /* \_SB_.PCI0.IDE_.PUDC */
                            VUDM = PUDM /* \_SB_.PCI0.IDE_.PUDM */
                            Return (GTF (0xA0, BUF))
                        }
                    }

                    Device (P_D1)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
                        {
                            Name (BUF, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00                     /* ..... */
                            })
                            CreateWordField (BUF, Zero, VMDT)
                            CreateByteField (BUF, 0x02, VPIM)
                            CreateByteField (BUF, 0x03, VUDC)
                            CreateByteField (BUF, 0x04, VUDM)
                            VMDT = PMDT /* \_SB_.PCI0.IDE_.PMDT */
                            VPIM = PPIM /* \_SB_.PCI0.IDE_.PPIM */
                            VUDC = PUDC /* \_SB_.PCI0.IDE_.PUDC */
                            VUDM = PUDM /* \_SB_.PCI0.IDE_.PUDM */
                            Return (GTF (0xB0, BUF))
                        }
                    }
                }

                Device (SECD)
                {
                    Name (_ADR, One)  // _ADR: Address
                    Method (_GTM, 0, NotSerialized)  // _GTM: Get Timing Mode
                    {
                        Name (BUF, Buffer (0x07)
                        {
                             0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00         /* ....... */
                        })
                        CreateWordField (BUF, Zero, VPIT)
                        CreateWordField (BUF, 0x02, VMDT)
                        CreateByteField (BUF, 0x04, VPIC)
                        CreateByteField (BUF, 0x05, VUDC)
                        CreateByteField (BUF, 0x06, VUDM)
                        VPIT = SPIT /* \_SB_.PCI0.IDE_.SPIT */
                        VMDT = SMDT /* \_SB_.PCI0.IDE_.SMDT */
                        VPIC = SPIC /* \_SB_.PCI0.IDE_.SPIC */
                        VUDC = SUDC /* \_SB_.PCI0.IDE_.SUDC */
                        VUDM = SUDM /* \_SB_.PCI0.IDE_.SUDM */
                        Return (GTM (BUF))
                    }

                    Method (_STM, 3, NotSerialized)  // _STM: Set Timing Mode
                    {
                        Name (BUF, Buffer (0x07)
                        {
                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00         /* ....... */
                        })
                        CreateWordField (BUF, Zero, VPIT)
                        CreateWordField (BUF, 0x02, VMDT)
                        CreateByteField (BUF, 0x04, VPIM)
                        CreateByteField (BUF, 0x05, VUDC)
                        CreateByteField (BUF, 0x06, VUDM)
                        BUF = STM (Arg0, Arg1, Arg2)
                        SPIT = VPIT /* \_SB_.PCI0.IDE_.SECD._STM.VPIT */
                        SMDT = VMDT /* \_SB_.PCI0.IDE_.SECD._STM.VMDT */
                        SPIM = VPIM /* \_SB_.PCI0.IDE_.SECD._STM.VPIM */
                        SUDC = VUDC /* \_SB_.PCI0.IDE_.SECD._STM.VUDC */
                        SUDM = VUDM /* \_SB_.PCI0.IDE_.SECD._STM.VUDM */
                    }

                    Device (S_D0)
                    {
                        Name (_ADR, Zero)  // _ADR: Address
                        Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
                        {
                            Name (BUF, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00                     /* ..... */
                            })
                            CreateWordField (BUF, Zero, VMDT)
                            CreateByteField (BUF, 0x02, VPIM)
                            CreateByteField (BUF, 0x03, VUDC)
                            CreateByteField (BUF, 0x04, VUDM)
                            VMDT = SMDT /* \_SB_.PCI0.IDE_.SMDT */
                            VPIM = SPIM /* \_SB_.PCI0.IDE_.SPIM */
                            VUDC = SUDC /* \_SB_.PCI0.IDE_.SUDC */
                            VUDM = SUDM /* \_SB_.PCI0.IDE_.SUDM */
                            Return (GTF (0xA0, BUF))
                        }
                    }

                    Device (S_D1)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
                        {
                            Name (BUF, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00                     /* ..... */
                            })
                            CreateWordField (BUF, Zero, VMDT)
                            CreateByteField (BUF, 0x02, VPIM)
                            CreateByteField (BUF, 0x03, VUDC)
                            CreateByteField (BUF, 0x04, VUDM)
                            VMDT = SMDT /* \_SB_.PCI0.IDE_.SMDT */
                            VPIM = SPIM /* \_SB_.PCI0.IDE_.SPIM */
                            VUDC = SUDC /* \_SB_.PCI0.IDE_.SUDC */
                            VUDM = SUDM /* \_SB_.PCI0.IDE_.SUDM */
                            Return (GTF (0xB0, BUF))
                        }
                    }
                }
            }

            Name (AFCB, Buffer (0x9C) {})
            Device (AFD)
            {
                Name (_HID, "AFD0001")  // _HID: Hardware ID
                Name (HDD0, 0x80000000)
                Name (DAT5, Buffer (0x0E)
                {
                    /* 0000 */  0x0E, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF,  /* ........ */
                    /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00               /* ...... */
                })
                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    If ((AFUC == Zero))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Method (AFCM, 3, NotSerialized)
                {
                    Arg0 &= 0xFF
                    If ((Arg0 == Zero))
                    {
                        Return (AFC0 ())
                    }

                    If ((Arg0 == One))
                    {
                        Return (AFC1 ())
                    }

                    If ((Arg0 == 0x02))
                    {
                        Return (AFC2 (Arg1, Arg2))
                    }
                    Else
                    {
                        CreateWordField (AFCB, Zero, SSZE)
                        CreateWordField (AFCB, 0x02, VERN)
                        CreateDWordField (AFCB, 0x04, SFUN)
                        SSZE = Zero
                        VERN = Zero
                        SFUN = Zero
                        Return (AFCB) /* \_SB_.PCI0.AFCB */
                    }
                }

                Method (AFC0, 0, NotSerialized)
                {
                    P80H = 0xAF00
                    CreateWordField (AFCB, Zero, SSZE)
                    CreateWordField (AFCB, 0x02, VERN)
                    CreateDWordField (AFCB, 0x04, SFUN)
                    SSZE = 0x08
                    VERN = One
                    SFUN = 0x03
                    P80H = 0xAE00
                    Return (AFCB) /* \_SB_.PCI0.AFCB */
                }

                Method (AFC1, 0, NotSerialized)
                {
                    P80H = 0xAF01
                    CreateWordField (AFCB, Zero, SSZE)
                    CreateWordField (AFCB, 0x02, ESZ0)
                    CreateWordField (AFCB, 0x04, CCD0)
                    CreateWordField (AFCB, 0x06, EBU0)
                    CreateWordField (AFCB, 0x08, CFG0)
                    CreateWordField (AFCB, 0x0A, PCA0)
                    CreateWordField (AFCB, 0x0C, DCP0)
                    CreateWordField (AFCB, 0x0E, DRA0)
                    ESZ0 = 0x0E
                    EBU0 = 0x02
                    CFG0 = Zero
                    PCA0 = 0x88
                    If ((^^SATA.VIDI == 0x43901002))
                    {
                        EBU0 = One
                        CCD0 = 0x0101
                        DCP0 = Zero
                        DRA0 = Zero
                    }

                    If ((^^SATA.VIDI == 0x43911002))
                    {
                        CCD0 = 0x0106
                        DCP0 = Zero
                        DRA0 = Zero
                    }

                    If ((^^SATA.VIDI == 0x43921002))
                    {
                        CCD0 = 0x0104
                        DCP0 = Zero
                        DRA0 = Zero
                    }

                    If ((^^SATA.VIDI == 0x43931002))
                    {
                        CCD0 = 0x0104
                        DCP0 = Zero
                        DRA0 = Zero
                    }

                    If ((^^SATA.VIDI == 0x43941002))
                    {
                        CCD0 = 0x0106
                        DCP0 = Zero
                        DRA0 = Zero
                    }

                    CreateWordField (AFCB, 0x10, ESZ1)
                    CreateWordField (AFCB, 0x12, CCD1)
                    CreateWordField (AFCB, 0x14, EBU1)
                    CreateWordField (AFCB, 0x16, CFG1)
                    CreateWordField (AFCB, 0x18, PCA1)
                    CreateWordField (AFCB, 0x1A, DCP1)
                    CreateWordField (AFCB, 0x1C, DRA1)
                    ESZ1 = 0x0E
                    EBU1 = 0x02
                    CFG1 = Zero
                    PCA1 = 0x88
                    If ((^^SATA.VIDI == 0x43901002))
                    {
                        EBU1 = One
                        CCD1 = 0x0101
                        DCP1 = One
                        DRA1 = Zero
                    }

                    If ((^^SATA.VIDI == 0x43911002))
                    {
                        CCD1 = 0x0106
                        DCP1 = One
                        DRA1 = Zero
                    }

                    If ((^^SATA.VIDI == 0x43921002))
                    {
                        CCD1 = 0x0104
                        DCP1 = Zero
                        DRA1 = Zero
                    }

                    If ((^^SATA.VIDI == 0x43931002))
                    {
                        CCD1 = 0x0104
                        DCP1 = Zero
                        DRA1 = Zero
                    }

                    If ((^^SATA.VIDI == 0x43941002))
                    {
                        CCD1 = 0x0106
                        DCP1 = One
                        DRA1 = Zero
                    }

                    CreateWordField (AFCB, 0x1E, ESZ2)
                    CreateWordField (AFCB, 0x20, CCD2)
                    CreateWordField (AFCB, 0x22, EBU2)
                    CreateWordField (AFCB, 0x24, CFG2)
                    CreateWordField (AFCB, 0x26, PCA2)
                    CreateWordField (AFCB, 0x28, DCP2)
                    CreateWordField (AFCB, 0x2A, DRA2)
                    ESZ2 = 0x0E
                    EBU2 = 0x02
                    CFG2 = Zero
                    PCA2 = 0x88
                    If ((^^SATA.VIDI == 0x43901002))
                    {
                        EBU2 = One
                        CCD2 = 0x0101
                        DCP2 = Zero
                        DRA2 = One
                    }

                    If ((^^SATA.VIDI == 0x43911002))
                    {
                        CCD2 = 0x0106
                        DCP2 = 0x02
                        DRA2 = Zero
                    }

                    If ((^^SATA.VIDI == 0x43921002))
                    {
                        CCD2 = 0x0104
                        DCP2 = Zero
                        DRA2 = Zero
                    }

                    If ((^^SATA.VIDI == 0x43931002))
                    {
                        CCD2 = 0x0104
                        DCP2 = Zero
                        DRA2 = Zero
                    }

                    If ((^^SATA.VIDI == 0x43941002))
                    {
                        CCD2 = 0x0106
                        DCP2 = 0x02
                        DRA2 = Zero
                    }

                    CreateField (AFCB, 0x0240, 0x70, IDX5)
                    CreateByteField (DAT5, 0x07, BUS5)
                    If ((^^AGP.PXEN == 0x80000000))
                    {
                        BUS5 = 0xFF
                    }
                    ElseIf ((^^AGP.PXID == ^^PB2._ADR))
                    {
                        Local0 = ^^PB2.SBUS /* \_SB_.PCI0.PB2_.SBUS */
                    }

                    IDX5 = DAT5 /* \_SB_.PCI0.AFD_.DAT5 */
                    SSZE = 0x9C
                    P80H = 0xAE01
                    Return (AFCB) /* \_SB_.PCI0.AFCB */
                }

                Method (AFC2, 2, NotSerialized)
                {
                    P80H = 0xAF02
                    CreateDWordField (AFCB, Zero, FLAG)
                    CreateByteField (AFCB, 0x04, PWST)
                    CreateByteField (AFCB, 0x05, DIND)
                    PWST = (Arg0 & 0xFF)
                    DIND = (Arg1 & 0xFF)
                    If ((HDD0 == 0x80000000))
                    {
                        ^^SMBS.GAAO = Zero
                        ^^SMBS.GAAE = Zero
                        ^^SMBS.MX15 = One
                        ^^SMBS.MX44 = One
                        ^^SMBS.MX16 = One
                        If (^^SATA.IPM0)
                        {
                            ^^SMBS.G15O = One
                            ^^SMBS.G15E = Zero
                            Sleep (0xC8)
                        }

                        If (^^SATA.IPM1)
                        {
                            ^^SMBS.G44O = One
                            ^^SMBS.G44E = Zero
                            Sleep (0xC8)
                        }

                        If (^^SATA.IPM2)
                        {
                            ^^SMBS.G16O = One
                            ^^SMBS.G16E = Zero
                            Sleep (0xC8)
                        }
                    }

                    If ((HDD0 == 0x80000000))
                    {
                        If (^^SATA.IPM0)
                        {
                            HDD0 = One
                        }
                        Else
                        {
                            HDD0 = Zero
                        }
                    }

                    If ((DIND == Zero))
                    {
                        ^^SMBS.MX15 = One
                        If ((PWST == Zero))
                        {
                            If ((^^SATA.VIDI == 0x43901002))
                            {
                                Notify (^^SATA.PRID.P_D0, 0x03) // Eject Request
                            }

                            If ((^^SATA.VIDI == 0x43911002))
                            {
                                Notify (^^SATA.PRID, 0x03) // Eject Request
                            }

                            If ((^^SATA.VIDI == 0x43921002)) {}
                            If ((^^SATA.VIDI == 0x43931002)) {}
                            If ((^^SATA.VIDI == 0x43941002)) {}
                            FLAG = Zero
                        }

                        If ((PWST == One))
                        {
                            ^^SMBS.GAAO = Zero
                            ^^SMBS.GAAE = Zero
                            ^^SMBS.G15O = One
                            ^^SMBS.G15E = Zero
                            Sleep (0x03E8)
                            If ((^^SATA.VIDI == 0x43901002))
                            {
                                Notify (^^SATA.PRID.P_D0, One) // Device Check
                            }

                            If ((^^SATA.VIDI == 0x43911002))
                            {
                                Notify (^^SATA.PRID, One) // Device Check
                            }

                            If ((^^SATA.VIDI == 0x43921002)) {}
                            If ((^^SATA.VIDI == 0x43931002)) {}
                            If ((^^SATA.VIDI == 0x43941002)) {}
                            FLAG = One
                        }

                        If ((PWST == 0xFF))
                        {
                            FLAG = ^^SMBS.G15O /* \_SB_.PCI0.SMBS.G15O */
                        }
                    }

                    If ((DIND == 0x02))
                    {
                        ^^SMBS.MX16 = One
                        If ((PWST == Zero))
                        {
                            If ((^^SATA.VIDI == 0x43901002))
                            {
                                Notify (^^SATA.PRID.P_D1, 0x03) // Eject Request
                            }

                            If ((^^SATA.VIDI == 0x43911002))
                            {
                                Notify (^^SATA.SECD, 0x03) // Eject Request
                            }

                            If ((^^SATA.VIDI == 0x43921002)) {}
                            If ((^^SATA.VIDI == 0x43931002)) {}
                            If ((^^SATA.VIDI == 0x43941002)) {}
                            FLAG = Zero
                        }

                        If ((PWST == One))
                        {
                            ^^SMBS.GAAO = Zero
                            ^^SMBS.GAAE = Zero
                            ^^SMBS.G16O = One
                            ^^SMBS.G16E = Zero
                            Sleep (0x03E8)
                            If ((^^SATA.VIDI == 0x43901002))
                            {
                                Notify (^^SATA.PRID.P_D1, One) // Device Check
                            }

                            If ((^^SATA.VIDI == 0x43911002))
                            {
                                Notify (^^SATA.SECD, One) // Device Check
                            }

                            If ((^^SATA.VIDI == 0x43921002)) {}
                            If ((^^SATA.VIDI == 0x43931002)) {}
                            If ((^^SATA.VIDI == 0x43941002)) {}
                            FLAG = One
                        }

                        If ((PWST == 0xFF))
                        {
                            FLAG = ^^SMBS.G16O /* \_SB_.PCI0.SMBS.G16O */
                        }
                    }

                    If ((DIND == 0x05))
                    {
                        If ((^^AGP.PXEN == 0x80000000))
                        {
                            FLAG = ^^SMBS.G45O /* \_SB_.PCI0.SMBS.G45O */
                            FLAG |= 0x80
                            Return (FLAG) /* \_SB_.PCI0.AFD_.AFC2.FLAG */
                        }

                        If ((PWST == Zero))
                        {
                            If ((^^AGP.PXMX == 0x80000000))
                            {
                                Notify (^^PB2.VGA, 0x03) // Eject Request
                            }
                            Else
                            {
                                Notify (^^PB3.VGA, 0x03) // Eject Request
                            }

                            FLAG = Zero
                        }

                        If ((PWST == One))
                        {
                            ^^AGP.VGA.PX02 (One)
                            If ((^^AGP.PXMX == 0x80000000))
                            {
                                Notify (^^PB2.VGA, One) // Device Check
                            }
                            Else
                            {
                                Notify (^^PB3.VGA, One) // Device Check
                            }

                            FLAG = One
                        }

                        If ((PWST == 0xFF))
                        {
                            FLAG = ^^SMBS.G45O /* \_SB_.PCI0.SMBS.G45O */
                        }
                    }

                    P80H = 0xAE02
                    Return (FLAG) /* \_SB_.PCI0.AFD_.AFC2.FLAG */
                }
            }

            Scope (PB2.VGA)
            {
                Method (_EJX, 1, NotSerialized)
                {
                    Sleep (0x28)
                    ^^^AGP.VGA.PX02 (Zero)
                    Sleep (0x28)
                }
            }

            Scope (PB3.VGA)
            {
                Method (_EJX, 1, NotSerialized)
                {
                    Sleep (0x28)
                    ^^^AGP.VGA.PX02 (Zero)
                    Sleep (0x28)
                }
            }

            Device (AMD3)
            {
                Name (_ADR, 0x00180003)  // _ADR: Address
                OperationRegion (HTCR, PCI_Config, 0x64, 0x04)
                Field (HTCR, ByteAcc, NoLock, Preserve)
                {
                    HTCE,   1,
                    Offset (0x02),
                    HTTL,   7,
                    Offset (0x03),
                    HTHY,   4
                }

                Method (HTCS, 0, NotSerialized)
                {
                    Local0 = 0x73
                    Local0 -= 0x34
                    HTTL = (Local0 * 0x02)
                    Local0 = 0x07
                    HTHY = (Local0 * 0x02)
                    HTCE = One
                }
            }
        }

        OperationRegion (PIRQ, SystemIO, 0x0C00, 0x02)
        Field (PIRQ, ByteAcc, NoLock, Preserve)
        {
            PIDX,   8,
            PDAT,   8
        }

        IndexField (PIDX, PDAT, ByteAcc, NoLock, Preserve)
        {
            PIRA,   8,
            PIRB,   8,
            PIRC,   8,
            PIRD,   8,
            PIRE,   8,
            PIRF,   8,
            PIRG,   8,
            PIRH,   8,
            Offset (0x10),
            PIRS,   8,
            Offset (0x13),
            HDAD,   8,
            Offset (0x15),
            GEC,    8,
            Offset (0x30),
            USB1,   8,
            USB2,   8,
            USB3,   8,
            USB4,   8,
            USB5,   8,
            USB6,   8,
            USB7,   8,
            Offset (0x40),
            IDE,    8,
            SATA,   8,
            Offset (0x50),
            GPP0,   8,
            GPP1,   8,
            GPP2,   8,
            GPP3,   8
        }

        OperationRegion (KBDD, SystemIO, 0x64, One)
        Field (KBDD, ByteAcc, NoLock, Preserve)
        {
            PD64,   8
        }

        Method (DSPI, 0, NotSerialized)
        {
            INTA (0x1F)
            INTB (0x1F)
            INTC (0x1F)
            INTD (0x1F)
            Local1 = PD64 /* \_SB_.PD64 */
            PIRE = 0x1F
            PIRF = 0x1F
            PIRG = 0x1F
            PIRH = 0x1F
        }

        Method (INTA, 1, NotSerialized)
        {
            PIRA = Arg0
            HDAD = Arg0
            GEC = Arg0
            GPP0 = Arg0
            GPP0 = Arg0
        }

        Method (INTB, 1, NotSerialized)
        {
            PIRB = Arg0
            USB2 = Arg0
            USB4 = Arg0
            USB6 = Arg0
            GPP1 = Arg0
            IDE = Arg0
        }

        Method (INTC, 1, NotSerialized)
        {
            PIRC = Arg0
            USB1 = Arg0
            USB3 = Arg0
            USB5 = Arg0
            USB7 = Arg0
            GPP2 = Arg0
        }

        Method (INTD, 1, NotSerialized)
        {
            PIRD = Arg0
            SATA = Arg0
            GPP3 = Arg0
        }

        Name (PRS1, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {3,4,5,7,10,11,12,14,15}
        })
        Name (BUFA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {15}
        })
        Name (IPRA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,10,11}
        })
        Name (IPRB, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,10,11}
        })
        Name (IPRC, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,10,11}
        })
        Name (IPRD, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,10,11}
        })
        Device (LNKA)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, One)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRA)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                INTA (0x1F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRA) /* \_SB_.PIRA */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRA = Local0
            }
        }

        Device (LNKB)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x02)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRB)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                INTB (0x1F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRB) /* \_SB_.PIRB */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRB = Local0
            }
        }

        Device (LNKC)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x03)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRC)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                INTC (0x1F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRC) /* \_SB_.PIRC */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRC = Local0
            }
        }

        Device (LNKD)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x04)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRD)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                INTD (0x1F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRD) /* \_SB_.PIRD */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRD = Local0
            }
        }

        Device (LNKE)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x05)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRE)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                PIRE = 0x1F
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRE) /* \_SB_.PIRE */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRE = Local0
            }
        }

        Device (LNKF)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x06)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRF)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                PIRF = 0x1F
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRF) /* \_SB_.PIRF */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRF = Local0
            }
        }

        Device (LNKG)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x07)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRG)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                PIRG = 0x1F
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRG) /* \_SB_.PIRG */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRG = Local0
            }
        }

        Device (LNKH)
        {
            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x08)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRH)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRS1) /* \_SB_.PRS1 */
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                PIRH = 0x1F
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                IRQX = (One << PIRH) /* \_SB_.PIRH */
                Return (BUFA) /* \_SB_.BUFA */
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Local0--
                PIRH = Local0
            }
        }

        Method (GSMI, 1, NotSerialized)
        {
            APMD = Arg0
            APMC = 0xE4
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
        }

        Method (S80H, 1, NotSerialized)
        {
            APMD = Arg0
            APMC = 0xE5
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
        }

        Method (BSMI, 1, NotSerialized)
        {
            APMD = Arg0
            APMC = 0xBE
            Stall (0xFF)
        }

        Device (SLPB)
        {
            Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */)  // _HID: Hardware ID
        }

        Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D") /* Lid Device */)  // _HID: Hardware ID
            Method (_LID, 0, NotSerialized)  // _LID: Lid Status
            {
                Local0 = (^^PCI0.SMBS.G66I & One)
                Return (Local0)
            }

            Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
            {
                0x06,
                0x03
            })
        }

        Scope (\_GPE)
        {
            Method (_L06, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
            {
                Local0 = (\_SB.PCI0.SMBS.G66I & One)
                If (\_SB.PCI0.SMBS.E06C)
                {
                    Sleep (0x14)
                    If ((Local0 & One))
                    {
                        \_SB.PCI0.SMBS.E06C = Zero
                        P80H = 0xC001
                    }
                }
                Else
                {
                    Sleep (0x14)
                    If (!(Local0 & One))
                    {
                        \_SB.PCI0.SMBS.E06C = One
                        P80H = 0xC000
                    }
                }

                Notify (\_SB.LID, 0x80) // Status Change
            }
        }
    }
}