/*
 * 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)