You are not logged in.

#1 2012-11-09 00:14:01

kvanberendonck
Member
Registered: 2012-08-17
Posts: 45

[Solved] Need help with DSDT - 15 errors

I downloaded a tool designed for mac DSDT editing from the internet, for Windows (as Linux doesn't show battery properly yet).

Here's my system:

Toshiba Satellite L750D
AMD A8 APU
ATI 6620HD Discrete Graphics

On Linux, the following doesn't seem to work correctly:

- Fan spins very high and makes a lot of noise
- The battery BAT1 isn't even detected as a device and the only device under /sys/class/power_supply/ is ACAD, which is something else.

On Linux, I get the following errors which suggests a buggy DSDT table:

kyle@kyle-laptop ~ dmesg | grep ACPI
[    0.000000] BIOS-e820: [mem 0x00000000cf486000-0x00000000cf88efff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000cfbbf000-0x00000000cfebefff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000cfebf000-0x00000000cfef5fff] ACPI data
[    0.000000] ACPI: RSDP 00000000000fe020 00024 (v02 TOSQCI)
[    0.000000] ACPI: XSDT 00000000cfef5120 0007C (v01 TOSQCI TOSQCI00 00000001      01000013)
[    0.000000] ACPI: FACP 00000000cfef4000 000F4 (v04 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[    0.000000] ACPI: DSDT 00000000cfede000 112E5 (v01 TOSQCI TOSQCI00 F0000000 ACPI 00040000)
[    0.000000] ACPI: FACS 00000000cfc97000 00040
[    0.000000] ACPI: HPET 00000000cfef3000 00038 (v01 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[    0.000000] ACPI: APIC 00000000cfef2000 00084 (v02 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[    0.000000] ACPI: MCFG 00000000cfef1000 0003C (v01 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[    0.000000] ACPI: ASF! 00000000cfef0000 000A5 (v32 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[    0.000000] ACPI: BOOT 00000000cfedd000 00028 (v01 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[    0.000000] ACPI: SLIC 00000000cfedc000 00176 (v01 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[    0.000000] ACPI: WDRT 00000000cfedb000 00047 (v01 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[    0.000000] ACPI: MSDM 00000000cfeda000 00055 (v03 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[    0.000000] ACPI: SSDT 00000000cfed9000 00E28 (v01 AMD    POWERNOW 00000001 AMD  00000001)
[    0.000000] ACPI: SSDT 00000000cfed7000 0193D (v02    AMD     ALIB 00000001 MSFT 04000000)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x10228210 base: 0xfed00000
[    0.005191] ACPI: Core revision 20120320
[    0.005342] ACPI: Forced DSDT copy: length 0x112E5 copied locally, original unmapped
[    0.275625] PM: Registering ACPI NVS region [mem 0xcf486000-0xcf88efff] (4231168 bytes)
[    0.275717] PM: Registering ACPI NVS region [mem 0xcfbbf000-0xcfebefff] (3145728 bytes)
[    0.277613] ACPI: bus type pci registered
[    0.285292] ACPI: Added _OSI(Module Device)
[    0.285296] ACPI: Added _OSI(Processor Device)
[    0.285297] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.285299] ACPI: Added _OSI(Processor Aggregator Device)
[    0.285300] ACPI: Added _OSI(Linux)
[    0.287480] ACPI: EC: Look up EC in DSDT
[    0.328586] ACPI: Executed 1 blocks of module-level executable AML code
[    0.333711] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query honored via cmdline
[    0.334386] ACPI: Interpreter enabled
[    0.334389] ACPI: (supports S0 S3 S4 S5)
[    0.334404] ACPI: Using IOAPIC for interrupt routing
[    0.340413] ACPI: EC: GPE = 0x3, I/O: command/status = 0x66, data = 0x62
[    0.340624] ACPI: No dock devices found.
[    0.340630] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.340779] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.367355] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.367488] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PB2_._PRT]
[    0.367521] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PB4_._PRT]
[    0.367545] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PB5_._PRT]
[    0.367613] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P2P_._PRT]
[    0.367677]  pci0000:00: >Requesting ACPI _OSC control (0x1d)
[    0.367680]  pci0000:00: >ACPI _OSC request failed (AE_NOT_FOUND), returned control mask: 0x1d
[    0.367681] ACPI _OSC control for PCIe not granted, disabling ASPM
[    0.375952] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 7 10 11 12 14 15) *0
[    0.376034] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 7 10 11 12 14 15) *0
[    0.376110] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 7 10 11 12 14 15) *0
[    0.376163] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 7 10 11 12 14 15) *0
[    0.376204] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 7 10 11 12 14 15) *0
[    0.376235] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 7 10 11 12 14 15) *0
[    0.376268] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 7 10 11 12 14 15) *0
[    0.376300] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 7 10 11 12 14 15) *0
[    0.376629] PCI: Using ACPI for IRQ routing
[    0.388090] pnp: PnP ACPI init
[    0.388113] ACPI: bus type pnp registered
[    0.388383] pnp 00:00: >Plug and Play ACPI device, IDs PNP0a08 PNP0a03 (active)
[    0.388482] system 00:01: >Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.388640] pnp 00:02: >Plug and Play ACPI device, IDs PNP0103 (active)
[    0.388760] pnp 00:03: >Plug and Play ACPI device, IDs PNP0200 (active)
[    0.388819] pnp 00:04: >Plug and Play ACPI device, IDs PNP0c04 (active)
[    0.388910] pnp 00:05: >Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.388963] pnp 00:06: >Plug and Play ACPI device, IDs PNP0800 (active)
[    0.389048] pnp 00:07: >Plug and Play ACPI device, IDs PNP0303 (active)
[    0.389133] pnp 00:08: >Plug and Play ACPI device, IDs TOS0200 SYN1000 SYN0002 PNP0f13 (active)
[    0.389261] system 00:09: >Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.389348] system 00:0a: >Plug and Play ACPI device, IDs PNP0c01 (active)
[    0.389762] pnp: PnP ACPI: found 11 devices
[    0.389764] ACPI: ACPI bus type pnp unregistered
[    1.799341] ACPI: bus type usb registered
[    6.119883] toshiba_bluetooth: Detected Toshiba ACPI Bluetooth device - installing RFKill handler
[    6.162801] ACPI: acpi_idle registered with cpuidle
[    6.189958] ACPI: Power Button [PWRB]
[    6.190091] ACPI: Lid Switch [LID]
[    6.190142] ACPI: Power Button [PWRF]
[    6.550426] ACPI Exception: AE_AML_PACKAGE_LIMIT, Index (0x0000000000000011) is beyond end of object (20120320/exoparg2-418)
[    6.550437] ACPI Error: Method parse/execution failed [\_SB_.BAT1.UBIX] (Node ffff880203e8a168), AE_AML_PACKAGE_LIMIT (20120320/psparse-536)
[    6.550443] ACPI Error: Method parse/execution failed [\_SB_.BAT1._BIX] (Node ffff880203e8a0f0), AE_AML_PACKAGE_LIMIT (20120320/psparse-536)
[    6.550449] ACPI Exception: AE_AML_PACKAGE_LIMIT, Evaluating _BIX (20120320/battery-419)
[    6.595368] ACPI: AC Adapter [ACAD] (on-line)
[    6.747736] ACPI: Video Device [VGA] (multi-head: yes  rom: no  post: no)
[    6.758044] ACPI: Thermal Zone [THRM] (55 C)
[    6.758620] ACPI: Video Device [VGA1] (multi-head: yes  rom: no  post: no)
[    7.772864] toshiba_acpi: Toshiba Laptop ACPI Extras version 0.19
[    7.876001] ACPI Warning: 0x0000000000000b00-0x0000000000000b07 SystemIO conflicts with Region \_SB_.PCI0.SMBS.SMB0 1 (20120320/utaddress-251)
[    7.876019] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   19.440618] ACPI: Power Button [PWRB]
[   19.441155] ACPI: Lid Switch [LID]
[   19.441886] ACPI: Power Button [PWRF]
kyle@kyle-laptop ~ 

Of interest;

[    6.550426] ACPI Exception: AE_AML_PACKAGE_LIMIT, Index (0x0000000000000011) is beyond end of object (20120320/exoparg2-418)
[    6.550437] ACPI Error: Method parse/execution failed [\_SB_.BAT1.UBIX] (Node ffff880203e8a168), AE_AML_PACKAGE_LIMIT (20120320/psparse-536)
[    6.550443] ACPI Error: Method parse/execution failed [\_SB_.BAT1._BIX] (Node ffff880203e8a0f0), AE_AML_PACKAGE_LIMIT (20120320/psparse-536)
[    6.550449] ACPI Exception: AE_AML_PACKAGE_LIMIT, Evaluating _BIX (20120320/battery-419)

I have no idea how to fix this. So, I'm outsourcing help smile

Here's the original DSDT which I extract:

DefinitionBlock ("DSDT.aml", "DSDT", 1, "TOSQCI", "TOSQCI00", 0xF0000000)
{
    External (ALIB, MethodObj)    // 2 Arguments
    External (\_SB_.ALIB, MethodObj)    // 5 Arguments
    External (\_PR_.C003._PPC)
    External (\_PR_.C002._PPC)
    External (\_PR_.C001._PPC)
    External (\_PR_.C000._PPC, IntObj)
    OperationRegion (DBG0, SystemIO, 0x80, One)
    Field (DBG0, ByteAcc, NoLock, Preserve)
    {
        IO80,   8
    }
    OperationRegion (DBG1, SystemIO, 0x80, 0x02)
    Field (DBG1, 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 (0x50), 
        HPAD,   32, 
        Offset (0x60), 
        P1EB,   16, 
        Offset (0xC8), 
            ,   2, 
        SPRE,   1, 
        TPDE,   1, 
        Offset (0xF0), 
            ,   3, 
        RSTU,   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 (PRWP, Package (0x02)
    {
        Zero, 
        Zero
    })
    Method (GPRW, 2, NotSerialized)
    {
        Store (Arg0, Index (PRWP, Zero))
        Store (Arg1, Index (PRWP, One))
        If (LAnd (LEqual (DAS3, Zero), LEqual (DAS1, Zero)))
        {
            If (LLessEqual (Arg1, 0x03))
            {
                Store (Zero, Index (PRWP, One))
            }
        }
        Else
        {
            If (LAnd (LEqual (DAS3, Zero), LEqual (Arg1, 0x03)))
            {
                Store (Zero, Index (PRWP, One))
            }
            If (LAnd (LEqual (DAS1, Zero), LEqual (Arg1, One)))
            {
                Store (Zero, Index (PRWP, One))
            }
        }
        Return (PRWP)
    }
    Method (SPTS, 1, NotSerialized)
    {
        If (LEqual (Arg0, 0x03))
        {
            Store (Zero, RSTU)
        }
        Store (One, \_SB.PCI0.SMBS.CLPS)
        Store (One, \_SB.PCI0.SMBS.SLPS)
        Store (PEWS, PEWS)
    }
    Method (SWAK, 1, NotSerialized)
    {
        If (LEqual (Arg0, 0x03))
        {
            Store (One, RSTU)
        }
        Store (PEWS, PEWS)
        Store (One, \_SB.PCI0.SMBS.PWDE)
        Store (Zero, PEWD)
    }
    Method (CHKH, 0, NotSerialized)
    {
        If (\_SB.PCI0.SMBS.G05S)
        {
            Store (One, \_SB.PCI0.SMBS.G05T)
        }
        Else
        {
            Store (Zero, \_SB.PCI0.SMBS.G05T)
        }
        Store (Not (\_SB.PCI0.SMBS.GE16), \_SB.PCI0.SMBS.G16T)
    }
    OperationRegion (GNVS, SystemMemory, 0xCFEBCE18, 0x00000013)
    Field (GNVS, AnyAcc, NoLock, Preserve)
    {
        DAS1,   8, 
        DAS3,   8, 
        TNBH,   8, 
        TCP0,   8, 
        TCP1,   8, 
        ATNB,   8, 
        PCP0,   8, 
        PCP1,   8, 
        PWMN,   8, 
        LPTY,   8, 
        M92D,   8, 
        WKPM,   8, 
        ALST,   8, 
        AFUC,   8, 
        EXUS,   8, 
        AIRC,   8, 
        WLSH,   8, 
        TSSS,   8, 
        ODZC,   8
    }
    OperationRegion (OGNS, SystemMemory, 0xCFEBDD98, 0x00000255)
    Field (OGNS, AnyAcc, Lock, Preserve)
    {
        OG00,   8, 
        OG01,   8, 
        OG02,   8, 
        OG03,   8, 
        OG04,   8, 
        OG05,   8, 
        OG06,   8, 
        OG07,   8, 
        OG08,   8, 
        OG09,   8, 
        OG10,   8, 
        OG11,   8, 
        OG12,   8, 
        OG13,   8, 
        OG14,   8, 
        OG15,   8, 
        OG16,   8, 
        OG17,   8, 
        OG18,   8, 
        OG19,   8, 
        OG20,   8, 
        BLK0,   32, 
        BLK1,   32, 
        BLK2,   32, 
        BLK3,   32, 
        BLK4,   32, 
        BLK5,   32, 
        BTEN,   1, 
        WLAN,   1, 
        WN3G,   1, 
        ENSR,   2, 
        CCDE,   1, 
        DACB,   1, 
        TPDV,   1, 
        WOLI,   1, 
        CIRE,   1, 
        FGPE,   1, 
        HDME,   1, 
        CPUD,   1, 
        PCIL,   1, 
        FBBS,   1, 
        SWKS,   1, 
        OWNS,   4096, 
        DVDI,   160, 
        OWN0,   8, 
        OWN1,   8, 
        HEUE,   8, 
        BEUE,   8, 
        VEVT,   16, 
        FEVT,   16, 
        NEVT,   16, 
        OPR0,   8, 
        OPR1,   8, 
        OPR2,   8, 
        KBIN,   8, 
        SLPB,   32
    }
    OperationRegion (NVST, SystemMemory, 0xCFEBED61, 0x0000012A)
    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
    }
    Method (SCMP, 2, NotSerialized)
    {
        Name (STG1, Buffer (0x50) {})
        Name (STG2, Buffer (0x50) {})
        Store (Arg0, STG1)
        Store (Arg1, STG2)
        If (LNotEqual (SizeOf (Arg0), SizeOf (Arg1)))
        {
            Return (Zero)
        }
        Store (Zero, Local0)
        While (LLess (Local0, SizeOf (Arg0)))
        {
            If (LNotEqual (DerefOf (Index (STG1, Local0)), DerefOf (Index (
                STG2, Local0))))
            {
                Return (Zero)
            }
            Increment (Local0)
        }
        Return (One)
    }
    Name (WNOS, Zero)
    Name (MYOS, Zero)
    Name (HTTS, Zero)
    Name (OSTB, Ones)
    Name (TPOS, Zero)
    Name (LINX, Zero)
    Name (OSSP, Zero)
    Method (CKOS, 0, NotSerialized)
    {
        If (LEqual (WNOS, Zero))
        {
            If (SCMP (_OS, "Microsoft Windows"))
            {
                Store (One, WNOS)
            }
            If (SCMP (_OS, "Microsoft Windows NT"))
            {
                Store (0x02, WNOS)
            }
            If (SCMP (_OS, "Microsoft WindowsME: Millennium Edition"))
            {
                Store (0x03, WNOS)
            }
            If (SCMP (_OS, "Windows 2012"))
            {
                Store (0x07, WNOS)
            }
            If (CondRefOf (\_OSI, Local0))
            {
                If (SCMP (_OS, "Windows 2006"))
                {
                    Store (0x05, WNOS)
                }
                Else
                {
                    If (SCMP (_OS, "Windows 2009"))
                    {
                        Store (0x06, WNOS)
                    }
                    Else
                    {
                        Store (0x04, WNOS)
                    }
                }
            }
        }
        Return (WNOS)
    }
    Method (SEQL, 2, Serialized)
    {
        Store (SizeOf (Arg0), Local0)
        Store (SizeOf (Arg1), Local1)
        If (LNotEqual (Local0, Local1))
        {
            Return (Zero)
        }
        Name (BUF0, Buffer (Local0) {})
        Store (Arg0, BUF0)
        Name (BUF1, Buffer (Local0) {})
        Store (Arg1, BUF1)
        Store (Zero, Local2)
        While (LLess (Local2, Local0))
        {
            Store (DerefOf (Index (BUF0, Local2)), Local3)
            Store (DerefOf (Index (BUF1, Local2)), Local4)
            If (LNotEqual (Local3, Local4))
            {
                Return (Zero)
            }
            Increment (Local2)
        }
        Return (One)
    }
    Method (OSTP, 0, NotSerialized)
    {
        If (LEqual (OSTB, Ones))
        {
            If (CondRefOf (\_OSI, Local0))
            {
                Store (Zero, OSTB)
                Store (Zero, TPOS)
                If (_OSI ("Windows 2001"))
                {
                    Store (0x08, OSTB)
                    Store (0x08, TPOS)
                }
                If (_OSI ("Windows 2001.1"))
                {
                    Store (0x20, OSTB)
                    Store (0x20, TPOS)
                }
                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (0x10, OSTB)
                    Store (0x10, TPOS)
                }
                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (0x11, OSTB)
                    Store (0x11, TPOS)
                }
                If (_OSI ("Windows 2001 SP3"))
                {
                    Store (0x12, OSTB)
                    Store (0x12, TPOS)
                }
                If (_OSI ("Windows 2006"))
                {
                    Store (0x40, OSTB)
                    Store (0x40, TPOS)
                }
                If (_OSI ("Windows 2006 SP1"))
                {
                    Store (0x41, OSTB)
                    Store (0x41, TPOS)
                    Store (One, OSSP)
                }
                If (_OSI ("Windows 2009"))
                {
                    Store (One, OSSP)
                    Store (0x50, OSTB)
                    Store (0x50, TPOS)
                }
                If (_OSI ("Linux"))
                {
                    Store (One, LINX)
                    Store (0x80, OSTB)
                    Store (0x80, TPOS)
                }
            }
            Else
            {
                If (CondRefOf (\_OS, Local0))
                {
                    If (SEQL (_OS, "Microsoft Windows"))
                    {
                        Store (One, OSTB)
                        Store (One, TPOS)
                    }
                    Else
                    {
                        If (SEQL (_OS, "Microsoft WindowsME: Millennium Edition"))
                        {
                            Store (0x02, OSTB)
                            Store (0x02, TPOS)
                        }
                        Else
                        {
                            If (SEQL (_OS, "Microsoft Windows NT"))
                            {
                                Store (0x04, OSTB)
                                Store (0x04, TPOS)
                            }
                            Else
                            {
                                Store (Zero, OSTB)
                                Store (Zero, TPOS)
                            }
                        }
                    }
                }
                Else
                {
                    Store (Zero, OSTB)
                    Store (Zero, TPOS)
                }
            }
        }
        Return (OSTB)
    }
    Method (VTOB, 1, NotSerialized)
    {
        Store (One, Local0)
        ShiftLeft (Local0, Arg0, Local0)
        Return (Local0)
    }
    Method (BTOV, 1, NotSerialized)
    {
        ShiftRight (Arg0, One, Local0)
        Store (Zero, Local1)
        While (Local0)
        {
            Increment (Local1)
            ShiftRight (Local0, One, Local0)
        }
        Return (Local1)
    }
    Method (MKWD, 2, NotSerialized)
    {
        If (And (Arg1, 0x80))
        {
            Store (0xFFFF0000, Local0)
        }
        Else
        {
            Store (Zero, Local0)
        }
        Or (Local0, Arg0, Local0)
        Or (Local0, ShiftLeft (Arg1, 0x08), Local0)
        Return (Local0)
    }
    Method (POSW, 1, NotSerialized)
    {
        If (And (Arg0, 0x8000))
        {
            If (LEqual (Arg0, 0xFFFF))
            {
                Return (Ones)
            }
            Else
            {
                Not (Arg0, Local0)
                Increment (Local0)
                And (Local0, 0xFFFF, Local0)
                Return (Local0)
            }
        }
        Else
        {
            Return (Arg0)
        }
    }
    Method (GBFE, 3, NotSerialized)
    {
        CreateByteField (Arg0, Arg1, TIDX)
        Store (TIDX, Arg2)
    }
    Method (PBFE, 3, NotSerialized)
    {
        CreateByteField (Arg0, Arg1, TIDX)
        Store (Arg2, TIDX)
    }
    Method (ITOS, 1, NotSerialized)
    {
        Store (Buffer (0x09)
            {
                /* 0000 */   0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                /* 0008 */   0x00
            }, Local0)
        Store (Buffer (0x11)
            {
                "0123456789ABCDEF"
            }, Local7)
        Store (0x08, Local1)
        Store (Zero, Local2)
        Store (Zero, Local3)
        While (Local1)
        {
            Decrement (Local1)
            And (ShiftRight (Arg0, ShiftLeft (Local1, 0x02)), 0x0F, Local4)
            If (Local4)
            {
                Store (Ones, Local3)
            }
            If (Local3)
            {
                GBFE (Local7, Local4, RefOf (Local5))
                PBFE (Local0, Local2, Local5)
                Increment (Local2)
            }
        }
        Return (Local0)
    }
    Scope (_PR)
    {
        Processor (C000, 0x00, 0x00000410, 0x06)
        {
        }
        Processor (C001, 0x01, 0x00000000, 0x00)
        {
        }
        Processor (C002, 0x02, 0x00000000, 0x00)
        {
        }
        Processor (C003, 0x03, 0x00000000, 0x00)
        {
        }
    }
    Name (_S0, Package (0x04)
    {
        Zero, 
        Zero, 
        Zero, 
        Zero
    })
    If (LEqual (DAS1, One)) {}
    If (LEqual (DAS3, One))
    {
        Name (_S3, Package (0x04)
        {
            0x03, 
            0x03, 
            Zero, 
            Zero
        })
    }
    Name (_S4, Package (0x04)
    {
        0x04, 
        0x04, 
        Zero, 
        Zero
    })
    Name (_S5, Package (0x04)
    {
        0x05, 
        0x05, 
        Zero, 
        Zero
    })
    Scope (_GPE)
    {
        Method (_L1C, 0, NotSerialized)
        {
            Store (0xFFFF, Local1)
            Store (\_SB.PCI0.SMBS.MIN, Local2)
            ShiftLeft (Local2, 0x08, Local1)
            Store (\_SB.PCI0.SMBS.SEC, Local2)
            Or (Local1, Local2, Local1)
            Store (Local1, P80H)
        }
        Method (_L08, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.PB2, 0x02)
            Notify (\_SB.PCI0.PB3, 0x02)
            Notify (\_SB.PCI0.PB4, 0x02)
            Notify (\_SB.PCI0.PB5, 0x02)
            Notify (\_SB.PCI0.PB6, 0x02)
            Notify (\_SB.PCI0.PB7, 0x02)
            Notify (\_SB.PCI0.SPB0, 0x02)
            Notify (\_SB.PCI0.SPB1, 0x02)
            Notify (\_SB.PCI0.SPB2, 0x02)
            Notify (\_SB.PCI0.SPB3, 0x02)
        }
        Name (XX05, Buffer (One)
        {
             0x05
        })
        Name (XX06, Buffer (One)
        {
             0x05
        })
        Method (_L05, 0, NotSerialized)
        {
            Name (HPOK, Zero)
            Sleep (0xC8)
            If (\_SB.PCI0.SMBS.GE05)
            {
                Store (Zero, \_SB.PCI0.SMBS.G05T)
            }
            Else
            {
                Store (One, \_SB.PCI0.SMBS.G05T)
            }
            Notify (\_SB.PCI0.SPB2, Zero)
        }
        Method (_L18, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.OHC1, 0x02)
            Notify (\_SB.PCI0.OHC2, 0x02)
            Notify (\_SB.PCI0.OHC3, 0x02)
            Notify (\_SB.PCI0.OHC4, 0x02)
            Notify (\_SB.PCI0.EHC1, 0x02)
            Notify (\_SB.PCI0.EHC2, 0x02)
            Notify (\_SB.PCI0.EHC3, 0x02)
            Notify (\_SB.PCI0.XHC0, 0x02)
            Notify (\_SB.PCI0.XHC1, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L09, 0, NotSerialized)
        {
            Store (0x4400, P80H)
            Store (\_SB.PCI0.SMBS.O012, Local0)
            Or (Local0, \_SB.PCI0.SMBS.O013, Local0)
            Or (Local0, \_SB.PCI0.SMBS.O014, Local0)
            CreateWordField (XX05, Zero, SZZE)
            CreateField (XX05, 0x10, 0x03, FUCC)
            CreateField (XX05, 0x13, 0x05, DEVV)
            CreateByteField (XX05, 0x03, BUSS)
            CreateByteField (XX05, 0x04, HPST)
            Store (0x05, SZZE)
            Store (Zero, BUSS)
            Store (0x05, DEVV)
            Store (Zero, FUCC)
            CreateWordField (XX06, Zero, SZZ6)
            CreateField (XX06, 0x10, 0x03, FUC6)
            CreateField (XX06, 0x13, 0x05, DEV6)
            CreateByteField (XX06, 0x03, BUS6)
            CreateByteField (XX06, 0x04, HPS6)
            Store (0x05, SZZ6)
            Store (Zero, BUS6)
            Store (0x06, DEV6)
            Store (Zero, FUC6)
            If (LEqual (Local0, One))
            {
                If (LEqual (WLSH, Zero))
                {
                    Store (One, \_SB.PCI0.SMBS.O012)
                    Store (One, \_SB.PCI0.SMBS.O013)
                    Store (One, \_SB.PCI0.SMBS.O014)
                    Store (Zero, \_SB.PCI0.SMBS.E012)
                    Store (Zero, \_SB.PCI0.SMBS.E013)
                    Store (Zero, \_SB.PCI0.SMBS.E014)
                }
                Else
                {
                    Store (Zero, HPST)
                    \_SB.ALIB (0x06, XX05, \_SB.ALIB (0x06, XX06, Store (One, \_SB.PCI0.SMBS.O012), Store (
                        One, \_SB.PCI0.SMBS.O013), Store (One, \_SB.PCI0.SMBS.O014)), Store (Zero, \_SB.PCI0.SMBS.E012), Store (Zero, \_SB.PCI0.SMBS.E013))
                    Store (Zero, \_SB.PCI0.SMBS.E014)
                }
            }
            If (LEqual (Local0, Zero))
            {
                If (LEqual (WLSH, Zero))
                {
                    Store (One, \_SB.PCI0.SMBS.E012)
                    Store (One, \_SB.PCI0.SMBS.E013)
                    Store (One, \_SB.PCI0.SMBS.E014)
                    Store (Zero, \_SB.PCI0.SMBS.O012)
                    Store (Zero, \_SB.PCI0.SMBS.O013)
                    Store (Zero, \_SB.PCI0.SMBS.O014)
                }
                Else
                {
                    Store (One, \_SB.PCI0.SMBS.E012)
                    Store (One, \_SB.PCI0.SMBS.E013)
                    Store (One, \_SB.PCI0.SMBS.E014)
                    Store (Zero, \_SB.PCI0.SMBS.O012)
                    Store (Zero, \_SB.PCI0.SMBS.O013)
                    Store (Zero, \_SB.PCI0.SMBS.O014)
                    Store (One, HPST)
                    \_SB.ALIB (0x06, XX05, \_SB.ALIB (0x06, XX06, \_SB.PCI0.PB5.XPPR (Zero), Sleep (0x14), 
                        Notify (\_SB.PCI0.PB5, Zero)), Notify (\_SB.PCI0.PB6, Zero), Notify (\_SB.PCI0.SPB0, Zero))
                }
            }
        }
        Method (_L0E, 0, NotSerialized)
        {
            CreateWordField (XX05, Zero, SZZE)
            CreateField (XX05, 0x10, 0x03, FUCC)
            CreateField (XX05, 0x13, 0x05, DEVV)
            CreateByteField (XX05, 0x03, BUSS)
            CreateByteField (XX05, 0x04, HPST)
            Store (0x05, SZZE)
            Store (Zero, BUSS)
            Store (0x03, DEVV)
            Store (Zero, FUCC)
            Name (HPOK, Zero)
            If (LGreaterEqual (OSTB, 0x40))
            {
                Sleep (0x14)
                If (\_SB.PCI0.SMBS.GE14)
                {
                    Store (Zero, \_SB.PCI0.SMBS.G14T)
                    Store (0x18, INFO)
                    Store (0x86, BCMD)
                    Sleep (0x64)
                    Sleep (0x64)
                    If (CondRefOf (\_SB.ALIB, Local0))
                    {
                        Store (Zero, HPST)
                        \_SB.ALIB (0x06, XX05, Else
                            {
                                \_SB.PCI0.PB3.XPPR (Zero)
                            }, Store (0x0F1A, P80H), Else
                            {
                                Store (One, \_SB.PCI0.SMBS.G14T)
                                If (CondRefOf (\_SB.ALIB, Local0))
                                {
                                    Store (One, HPST)
                                    \_SB.ALIB (0x06, XX05, Else
                                        {
                                            \_SB.PCI0.PB3.XPPR (One)
                                        }, Store (0x021A, P80H), Else
                                        {
                                            Sleep (0x14)
                                            If (\_SB.PCI0.SMBS.GE14)
                                            {
                                                Store (Zero, \_SB.PCI0.SMBS.G14T)
                                                Store (One, \_SB.PCI0.PB3.PDC2)
                                                Store (\_SB.PCI0.PB3.VGA.DVID, Local7)
                                                Sleep (0x0A)
                                                Store (One, Local4)
                                                Store (0x05, Local5)
                                                While (LAnd (Local4, Local5))
                                                {
                                                    Store (\_SB.PCI0.PB3.XPRD (0xA5), Local6)
                                                    And (Local6, 0x7F, Local6)
                                                    If (LLessEqual (Local6, 0x04))
                                                    {
                                                        Store (Zero, Local4)
                                                    }
                                                    Else
                                                    {
                                                        Store (\_SB.PCI0.PB3.VGA.DVID, Local7)
                                                        Sleep (0x05)
                                                        Decrement (Local5)
                                                    }
                                                }
                                                If (CondRefOf (\_SB.ALIB, Local0))
                                                {
                                                    Store (Zero, HPST)
                                                    \_SB.ALIB (0x06, XX05, Else
                                                        {
                                                            \_SB.PCI0.PB3.XPPR (Zero)
                                                        }, Store (One, HPOK), Store (0x1F1A, P80H))
                                                }
                                            }
                                            Else
                                            {
                                                Store (One, \_SB.PCI0.SMBS.G14T)
                                                Store (Zero, HPOK)
                                                If (CondRefOf (\_SB.ALIB, Local0))
                                                {
                                                    Store (One, HPST)
                                                    \_SB.ALIB (0x06, XX05, Else
                                                        {
                                                            \_SB.PCI0.PB3.XPPR (One)
                                                        }, Store (Zero, Local2), While (LLess (Local2, 0x0F))
                                                        {
                                                            Store (One, \_SB.PCI0.PB3.PDC2)
                                                            Store (One, Local4)
                                                            Store (0xC8, Local5)
                                                            While (LAnd (Local4, Local5))
                                                            {
                                                                Store (\_SB.PCI0.PB3.XPRD (0xA5), Local6)
                                                                And (Local6, 0x7F, Local6)
                                                                If (LAnd (LGreaterEqual (Local6, 0x10), LNotEqual (Local6, 0x7F)))
                                                                {
                                                                    Store (Zero, Local4)
                                                                }
                                                                Else
                                                                {
                                                                    Sleep (0x05)
                                                                    Decrement (Local5)
                                                                }
                                                            }
                                                            If (LNot (Local4))
                                                            {
                                                                Store (\_SB.PCI0.PB3.XPDL (), Local5)
                                                                If (Local5)
                                                                {
                                                                    \_SB.PCI0.PB3.XPRT ()
                                                                    Sleep (0x05)
                                                                    Increment (Local2)
                                                                }
                                                                Else
                                                                {
                                                                    Store (0x18, INFO)
                                                                    Store (0x87, BCMD)
                                                                    If (LEqual (\_SB.PCI0.PB3.XPR2 (), Ones))
                                                                    {
                                                                        Store (One, HPOK)
                                                                        Store (0x10, Local2)
                                                                    }
                                                                    Else
                                                                    {
                                                                        Store (Zero, HPOK)
                                                                        Store (0x10, Local2)
                                                                    }
                                                                }
                                                            }
                                                            Else
                                                            {
                                                                Store (0x10, Local2)
                                                            }
                                                        })
                                                }
                                                Store (0x121A, P80H)
                                                If (LNot (HPOK))
                                                {
                                                    Store (\_SB.PCI0.PB3.VGA.DVID, Local7)
                                                    Sleep (0x0A)
                                                    Store (One, Local4)
                                                    Store (0x05, Local5)
                                                    While (LAnd (Local4, Local5))
                                                    {
                                                        Store (\_SB.PCI0.PB3.XPRD (0xA5), Local6)
                                                        And (Local6, 0x7F, Local6)
                                                        If (LLessEqual (Local6, 0x04))
                                                        {
                                                            Store (Zero, Local4)
                                                        }
                                                        Else
                                                        {
                                                            Store (\_SB.PCI0.PB3.VGA.DVID, Local7)
                                                            Sleep (0x05)
                                                            Decrement (Local5)
                                                        }
                                                    }
                                                    If (CondRefOf (\_SB.ALIB, Local0))
                                                    {
                                                        Store (Zero, HPST)
                                                        \_SB.ALIB (0x06, XX05, Else
                                                            {
                                                                \_SB.PCI0.PB3.XPPR (Zero)
                                                            }, If (HPOK)
                                                            {
                                                                Notify (\_SB.PCI0.PB3, Zero)
                                                            })
                                                    }
                                                }
                                            }
                                        })
                                }
                            })
                    }
                }
            }
        }
        Method (_L10, 0, NotSerialized)
        {
            If (LEqual (ODZC, One))
            {
                If (\_SB.PCI0.SMBS.G16T)
                {
                    Sleep (0x14)
                    If (\_SB.PCI0.SMBS.GE16)
                    {
                        Store (Zero, \_SB.PCI0.SMBS.G16T)
                        If (LOr (LEqual (\_SB.PCI0.SATA.VIDI, 0x78001022), LEqual (\_SB.PCI0.SATA.VIDI, 0x78011022)))
                        {
                            Notify (\_SB.PCI0.AFD, 0x80)
                        }
                        If (LEqual (\_SB.PCI0.SATA.VIDI, 0x78041022))
                        {
                            If (LEqual (\_SB.PCI0.AFD.HDD0, One))
                            {
                                Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
                            }
                            Else
                            {
                                Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
                            }
                        }
                        Store (0xDF15, P80H)
                    }
                }
                Else
                {
                    Sleep (0x14)
                    If (LNot (\_SB.PCI0.SMBS.GE16))
                    {
                        Store (One, \_SB.PCI0.SMBS.G16T)
                        If (LOr (LEqual (\_SB.PCI0.SATA.VIDI, 0x78001022), LEqual (\_SB.PCI0.SATA.VIDI, 0x78011022)))
                        {
                            Notify (\_SB.PCI0.AFD, 0x80)
                        }
                        If (LEqual (\_SB.PCI0.SATA.VIDI, 0x78041022))
                        {
                            If (LEqual (\_SB.PCI0.AFD.HDD0, One))
                            {
                                Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
                            }
                            Else
                            {
                                Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
                            }
                        }
                        Store (0xDF14, P80H)
                    }
                }
            }
        }
    }
    Name (PICM, Zero)
    Name (GPIC, Zero)
    Method (_PIC, 1, NotSerialized)
    {
        Store (Arg0, PICM)
        Store (Arg0, GPIC)
        If (GPIC)
        {
            \_SB.DSPI ()
        }
    }
    Name (PTSF, Zero)
    Method (_PTS, 1, NotSerialized)
    {
        Store (One, PTSF)
        Store (One, \_SB.PCI0.LPC0.EC0.IESQ)
        SPTS (Arg0)
        If (LEqual (Arg0, One))
        {
            Store (0x51, IO80)
            \_SB.S80H (0x51)
        }
        If (LEqual (Arg0, 0x03))
        {
            If (\_SB.SSTS)
            {
                Store (Zero, \_SB.PCI0.LPC0.EC0.WLID)
            }
            Else
            {
                Store (One, \_SB.PCI0.LPC0.EC0.WLID)
            }
            Store (0x53, IO80)
            \_SB.S80H (0x53)
            Store (One, \_SB.PCI0.SMBS.SLPS)
        }
        If (LEqual (Arg0, 0x04))
        {
            Store (0x54, IO80)
            \_SB.S80H (0x54)
            Store (One, \_SB.PCI0.SMBS.SLPS)
            Store (One, RSTU)
            Store (One, \_SB.INS4)
            Store (One, \_SB.PCI0.LPC0.EC0.FLS4)
            If (\_SB.SSTS)
            {
                Store (Zero, \_SB.PCI0.LPC0.EC0.WLID)
            }
            Else
            {
                Store (One, \_SB.PCI0.LPC0.EC0.WLID)
            }
        }
        If (LEqual (Arg0, 0x05))
        {
            Store (0x55, IO80)
            \_SB.S80H (0x55)
            \_SB.GSMI (0x03)
        }
    }
    Method (_WAK, 1, NotSerialized)
    {
        Store (Zero, PTSF)
        SWAK (Arg0)
        If (LEqual (Arg0, One))
        {
            Store (0xE1, IO80)
            \_SB.S80H (0xE1)
            Store (0xF1, \_SB.PCI0.P2P.PR4B)
        }
        If (LEqual (Arg0, 0x03))
        {
            Store (0x55, \_SB.INS3)
            Store (One, \_SB.PCI0.LPC0.EC0.CPLE)
            Store (0xE3, IO80)
            \_SB.S80H (0xE3)
            CHKH ()
            If (\_SB.ECOK)
            {
                If (LGreaterEqual (TPOS, 0x40))
                {
                    If (LEqual (TPOS, 0x80))
                    {
                        Store (Zero, \_SB.PCI0.LPC0.EC0.OSTP)
                    }
                    Else
                    {
                        Store (One, \_SB.PCI0.LPC0.EC0.OSTP)
                    }
                }
                Else
                {
                    Store (Zero, \_SB.PCI0.LPC0.EC0.OSTP)
                }
                Notify (\_SB.BAT1, 0x81)
            }
            Notify (\_SB.PWRB, 0x02)
        }
        If (LEqual (Arg0, 0x04))
        {
            Store (0x55, \_SB.INS3)
            Store (Zero, \_SB.INS4)
            Store (0xE4, IO80)
            \_SB.S80H (0xE4)
            \_SB.PCI0._INI ()
            \_SB.PCI0.EHC1.STOS ()
            If (\_SB.ECOK)
            {
                If (LGreaterEqual (TPOS, 0x40))
                {
                    If (LEqual (TPOS, 0x80))
                    {
                        Store (Zero, \_SB.PCI0.LPC0.EC0.OSTP)
                    }
                    Else
                    {
                        Store (One, \_SB.PCI0.LPC0.EC0.OSTP)
                    }
                }
                Else
                {
                    Store (Zero, \_SB.PCI0.LPC0.EC0.OSTP)
                }
                Notify (\_SB.BAT1, 0x81)
            }
            Notify (\_SB.PWRB, 0x02)
            Return (Zero)
        }
    }
    Scope (_SI)
    {
        Method (_SST, 1, NotSerialized)
        {
            If (LEqual (Arg0, One))
            {
                Store ("===== SST Working =====", Debug)
            }
            If (LEqual (Arg0, 0x02))
            {
                Store ("===== SST Waking =====", Debug)
            }
            If (LEqual (Arg0, 0x03))
            {
                Store ("===== SST Sleeping =====", Debug)
            }
            If (LEqual (Arg0, 0x04))
            {
                Store ("===== SST Sleeping S4 =====", Debug)
            }
        }
    }
    Scope (_SB)
    {
        Name (ECOK, One)
        Name (INS3, Zero)
        Name (INS4, One)
        Name (WLWF, Zero)
        Name (L3WF, Zero)
        Name (DCNT, Zero)
        Name (SSTS, Zero)
        Name (LDSS, Zero)
        Method (GBFE, 3, NotSerialized)
        {
            CreateByteField (Arg0, Arg1, TIDX)
            Store (TIDX, Arg2)
        }
        Method (PBFE, 3, NotSerialized)
        {
            CreateByteField (Arg0, Arg1, TIDX)
            Store (Arg2, TIDX)
        }
        Method (ITOS, 1, NotSerialized)
        {
            Store (Buffer (0x09)
                {
                    /* 0000 */   0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                    /* 0008 */   0x00
                }, Local0)
            Store (Buffer (0x11)
                {
                    "0123456789ABCDEF"
                }, Local7)
            Store (0x08, Local1)
            Store (Zero, Local2)
            Store (Zero, Local3)
            While (Local1)
            {
                Decrement (Local1)
                And (ShiftRight (Arg0, ShiftLeft (Local1, 0x02)), 0x0F, Local4)
                If (Local4)
                {
                    Store (Ones, Local3)
                }
                If (Local3)
                {
                    GBFE (Local7, Local4, RefOf (Local5))
                    PBFE (Local0, Local2, Local5)
                    Increment (Local2)
                }
            }
            Return (Local0)
        }
        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0B)
            }
        }
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A08"))
            Name (_CID, EisaId ("PNP0A03"))
            Name (_ADR, Zero)
            OperationRegion (SCTH, PCI_Config, 0x7A, One)
            Field (SCTH, ByteAcc, NoLock, Preserve)
            {
                RSMF,   1
            }
            Method (_INI, 0, NotSerialized)
            {
                If (LEqual (GPIC, Zero)) {}
                Else
                {
                    DSPI ()
                }
                OSTP ()
                Store (0x07D0, MYOS)
                If (CondRefOf (\_OSI, Local0))
                {
                    If (_OSI ("Linux"))
                    {
                        Store (0x03E8, MYOS)
                    }
                    If (_OSI ("Windows 2001"))
                    {
                        Store (0x07D1, MYOS)
                    }
                    If (_OSI ("Windows 2001 SP1"))
                    {
                        Store (0x07D1, MYOS)
                    }
                    If (_OSI ("Windows 2001 SP2"))
                    {
                        Store (0x07D2, MYOS)
                    }
                    If (_OSI ("Windows 2006"))
                    {
                        Store (0x07D6, MYOS)
                    }
                    If (_OSI ("Windows 2009"))
                    {
                        Store (0x07D9, MYOS)
                    }
                    If (_OSI ("Windows 2012"))
                    {
                        Store (0x07DC, MYOS)
                    }
                }
            }
            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)
                And (Arg0, 0x7F, Local0)
                Store (Local0, MIDX)
                Store (MIDR, Local0)
                Store (0x7F, MIDX)
                Release (NBMM)
                Return (Local0)
            }
            Method (NBMW, 2, NotSerialized)
            {
                Acquire (NBMM, 0xFFFF)
                And (Arg0, 0x7F, Local0)
                Or (Local0, 0x80, Local0)
                Store (Local0, MIDX)
                Store (Arg1, MIDR)
                Store (And (Local0, 0x7F, Local0), MIDX)
                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)
                Store (Arg0, NBXI)
                Store (NBXD, Local0)
                Store (Zero, NBXI)
                Release (NBXM)
                Return (Local0)
            }
            Method (NBXW, 2, NotSerialized)
            {
                Acquire (NBXM, 0xFFFF)
                Store (Arg0, NBXI)
                Store (Arg1, NBXD)
                Store (Zero, NBXI)
                Release (NBXM)
            }
            Method (XPTR, 2, NotSerialized)
            {
                If (LAnd (LLess (Arg0, 0x02), LGreater (Arg0, 0x07)))
                {
                    Return (Zero)
                }
                Else
                {
                    If (LLess (Arg0, 0x04))
                    {
                        Subtract (Arg0, 0x02, Local1)
                        Store (0x01310800, Local0)
                    }
                    Else
                    {
                        Subtract (Arg0, 0x04, Local1)
                        Store (0x01300900, Local0)
                    }
                    Add (Local0, ShiftLeft (Local1, 0x08), Local0)
                    ShiftLeft (Local0, Local1, Local0)
                    NBXW (Local0, Arg1)
                    Return (Ones)
                }
            }
            Method (XPLP, 2, NotSerialized)
            {
            }
            Method (XPLL, 2, NotSerialized)
            {
            }
            Name (_UID, One)
            Name (_BBN, Zero)
            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 (LEqual (Arg0, Buffer (0x10)
                        {
                            /* 0000 */   0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40,
                            /* 0008 */   0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
                        }))
                {
                    Store (CDW2, SUPP)
                    Store (CDW3, CTRL)
                    And (CTRL, 0x1D, CTRL)
                    If (Not (And (CDW1, One)))
                    {
                        If (And (CTRL, One)) {}
                        If (And (CTRL, 0x10)) {}
                    }
                    If (LNotEqual (Arg1, One))
                    {
                        Or (CDW1, 0x08, CDW1)
                    }
                    If (LNotEqual (CDW3, CTRL))
                    {
                        Or (CDW1, 0x10, CDW1)
                    }
                    Store (CTRL, CDW3)
                    Return (Arg3)
                }
                Else
                {
                    Or (CDW1, 0x04, CDW1)
                    Return (Arg3)
                }
            }
            Method (TOM, 0, NotSerialized)
            {
                Multiply (TOML, 0x00010000, Local0)
                Multiply (TOMH, 0x01000000, Local1)
                Add (Local0, Local1, Local0)
                Return (Local0)
            }
            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
                    0x80000000,         // Range Minimum
                    0xF7FFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x77000000,         // Length
                    0x00,, _Y00, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFC000000,         // Range Minimum
                    0xFFFFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x04000000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)
                IO (Decode16,
                    0x0CF8,             // Range Minimum
                    0x0CF8,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
            })
            Method (_CRS, 0, NotSerialized)
            {
                CreateDWordField (CRES, \_SB.PCI0._Y00._MIN, BTMN)
                CreateDWordField (CRES, \_SB.PCI0._Y00._MAX, BTMX)
                CreateDWordField (CRES, \_SB.PCI0._Y00._LEN, BTLN)
                Store (TOM (), BTMN)
                Subtract (0xF8000000, BTMN, BTLN)
                Return (CRES)
            }
            Device (MEMR)
            {
                Name (_HID, EisaId ("PNP0C02"))
                Name (MEM1, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x00000000,         // Address Length
                        _Y01)
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x00000000,         // Address Length
                        _Y02)
                    Memory32Fixed (ReadWrite,
                        0xFF800000,         // Address Base
                        0x00000020,         // Address Length
                        )
                })
                Method (_CRS, 0, NotSerialized)
                {
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y01._BAS, MB01)
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y01._LEN, ML01)
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y02._BAS, MB02)
                    CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y02._LEN, ML02)
                    If (GPIC)
                    {
                        Store (0xFEC00000, MB01)
                        Store (0xFEE00000, MB02)
                        Store (0x1000, ML01)
                        Store (0x1000, ML02)
                    }
                    Return (MEM1)
                }
            }
            Method (XCMP, 2, NotSerialized)
            {
                If (LNotEqual (0x10, SizeOf (Arg0)))
                {
                    Return (Zero)
                }
                If (LNotEqual (0x10, SizeOf (Arg1)))
                {
                    Return (Zero)
                }
                Store (Zero, Local0)
                While (LLess (Local0, 0x10))
                {
                    If (LNotEqual (DerefOf (Index (Arg0, Local0)), DerefOf (Index (
                        Arg1, Local0))))
                    {
                        Return (Zero)
                    }
                    Increment (Local0)
                }
                Return (One)
            }
            Method (AFN0, 0, Serialized)
            {
                If (LEqual (PDDN, One))
                {
                    ^VGA.AFN0 ()
                }
                If (LEqual (PDDN, 0x02))
                {
                    ^PB2.VGA.AFN0 ()
                }
                If (LEqual (PDDN, 0x03))
                {
                    ^PB3.VGA.AFN0 ()
                }
            }
            Method (AFN1, 1, Serialized)
            {
            }
            Method (AFN2, 2, Serialized)
            {
            }
            Method (AFN3, 2, Serialized)
            {
                If (LEqual (PDDN, One))
                {
                    ^VGA.AFN3 (Arg0, Arg1)
                }
                If (LEqual (PDDN, 0x02))
                {
                    ^PB2.VGA.AFN3 (Arg0, Arg1)
                }
                If (LEqual (PDDN, 0x03))
                {
                    ^PB3.VGA.AFN3 (Arg0, Arg1)
                }
            }
            Method (AFN4, 1, Serialized)
            {
                If (LEqual (PDDN, One))
                {
                    ^VGA.AFN4 (Arg0)
                }
                If (LEqual (PDDN, 0x02))
                {
                    ^PB2.VGA.AFN4 (Arg0)
                }
                If (LEqual (PDDN, 0x03))
                {
                    ^PB3.VGA.AFN4 (Arg0)
                }
            }
            Method (AFN5, 0, Serialized)
            {
                If (LEqual (PDDN, One))
                {
                    ^VGA.AFN5 ()
                }
                If (LEqual (PDDN, 0x02))
                {
                    ^PB2.VGA.AFN5 ()
                }
                If (LEqual (PDDN, 0x03))
                {
                    ^PB3.VGA.AFN5 ()
                }
            }
            Method (AFN6, 0, Serialized)
            {
                If (LEqual (PDDN, One))
                {
                    ^VGA.AFN6 ()
                }
                If (LEqual (PDDN, 0x02))
                {
                    ^PB2.VGA.AFN6 ()
                }
                If (LEqual (PDDN, 0x03))
                {
                    ^PB3.VGA.AFN6 ()
                }
            }
            Name (PR00, Package (0x29)
            {
                Package (0x04)
                {
                    0x0010FFFF, 
                    Zero, 
                    LNKC, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0010FFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0011FFFF, 
                    Zero, 
                    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)
                {
                    0x0014FFFF, 
                    Zero, 
                    LNKA, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0014FFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0014FFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0014FFFF, 
                    0x03, 
                    LNKD, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0015FFFF, 
                    Zero, 
                    LNKC, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0015FFFF, 
                    One, 
                    LNKD, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0015FFFF, 
                    0x02, 
                    LNKA, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0015FFFF, 
                    0x03, 
                    LNKB, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0016FFFF, 
                    Zero, 
                    LNKC, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0016FFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0001FFFF, 
                    Zero, 
                    LNKC, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0001FFFF, 
                    One, 
                    LNKD, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0001FFFF, 
                    0x02, 
                    LNKA, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0001FFFF, 
                    0x03, 
                    LNKB, 
                    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)
                {
                    0x0004FFFF, 
                    Zero, 
                    LNKC, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0004FFFF, 
                    One, 
                    LNKD, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0004FFFF, 
                    0x02, 
                    LNKA, 
                    Zero
                }, 
                Package (0x04)
                {
                    0x0004FFFF, 
                    0x03, 
                    LNKB, 
                    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
                }
            })
            Name (AR00, Package (0x29)
            {
                Package (0x04)
                {
                    0x0010FFFF, 
                    Zero, 
                    Zero, 
                    0x12
                }, 
                Package (0x04)
                {
                    0x0010FFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 
                Package (0x04)
                {
                    0x0011FFFF, 
                    Zero, 
                    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)
                {
                    0x0014FFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 
                Package (0x04)
                {
                    0x0014FFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 
                Package (0x04)
                {
                    0x0014FFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 
                Package (0x04)
                {
                    0x0014FFFF, 
                    0x03, 
                    Zero, 
                    0x13
                }, 
                Package (0x04)
                {
                    0x0015FFFF, 
                    Zero, 
                    Zero, 
                    0x12
                }, 
                Package (0x04)
                {
                    0x0015FFFF, 
                    One, 
                    Zero, 
                    0x13
                }, 
                Package (0x04)
                {
                    0x0015FFFF, 
                    0x02, 
                    Zero, 
                    0x10
                }, 
                Package (0x04)
                {
                    0x0015FFFF, 
                    0x03, 
                    Zero, 
                    0x11
                }, 
                Package (0x04)
                {
                    0x0016FFFF, 
                    Zero, 
                    Zero, 
                    0x12
                }, 
                Package (0x04)
                {
                    0x0016FFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 
                Package (0x04)
                {
                    0x0001FFFF, 
                    Zero, 
                    Zero, 
                    0x12
                }, 
                Package (0x04)
                {
                    0x0001FFFF, 
                    One, 
                    Zero, 
                    0x13
                }, 
                Package (0x04)
                {
                    0x0001FFFF, 
                    0x02, 
                    Zero, 
                    0x10
                }, 
                Package (0x04)
                {
                    0x0001FFFF, 
                    0x03, 
                    Zero, 
                    0x11
                }, 
                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)
                {
                    0x0004FFFF, 
                    Zero, 
                    Zero, 
                    0x12
                }, 
                Package (0x04)
                {
                    0x0004FFFF, 
                    One, 
                    Zero, 
                    0x13
                }, 
                Package (0x04)
                {
                    0x0004FFFF, 
                    0x02, 
                    Zero, 
                    0x10
                }, 
                Package (0x04)
                {
                    0x0004FFFF, 
                    0x03, 
                    Zero, 
                    0x11
                }, 
                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
                }
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR00)
                }
                Return (PR00)
            }
            Device (VGA)
            {
                Name (_ADR, 0x00010000)
                Name (PXEN, 0x80000001)
                Name (PXID, 0x00020000)
                Name (PXMX, 0x80000001)
                Name (PXFX, 0x80000000)
                Name (PXDY, 0x80000001)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }
                Name (DOSA, Zero)
                Method (_DOS, 1, NotSerialized)
                {
                    Store (Arg0, DOSA)
                }
                Method (_DOD, 0, NotSerialized)
                {
                    Name (DODL, Package (0x05)
                    {
                        0x00010100, 
                        0x00010110, 
                        0x0200, 
                        0x00010210, 
                        0x00010220
                    })
                    Return (DODL)
                }
                Device (LCD)
                {
                    Name (_ADR, 0x0110)
                    Method (_BCL, 0, NotSerialized)
                    {
                        Return (Package (0x0A)
                        {
                            0x64, 
                            0x28, 
                            0x0A, 
                            0x14, 
                            0x1E, 
                            0x28, 
                            0x37, 
                            0x46, 
                            0x55, 
                            0x64
                        })
                    }
                    Method (_BCM, 1, Serialized)
                    {
                        Name (_T_0, Zero)
                        While (One)
                        {
                            Store (ToInteger (Arg0), _T_0)
                            If (LEqual (_T_0, 0x0A))
                            {
                                Store (Zero, Local1)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x14))
                                {
                                    Store (One, Local1)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x1E))
                                    {
                                        Store (0x02, Local1)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x28))
                                        {
                                            Store (0x03, Local1)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x37))
                                            {
                                                Store (0x04, Local1)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x46))
                                                {
                                                    Store (0x05, Local1)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x55))
                                                    {
                                                        Store (0x06, Local1)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_0, 0x64))
                                                        {
                                                            Store (0x07, Local1)
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            Break
                        }
                        Store (ToInteger (Local1), Local0)
                        If (LGreaterEqual (TPOS, 0x40))
                        {
                            Store (ToInteger (Local1), ^^^LPC0.EC0.BLVL)
                            ^^^LPC0.EC0.SVBN ()
                        }
                    }
                    Method (_BQC, 0, Serialized)
                    {
                        Name (_T_0, Zero)
                        If (LGreaterEqual (TPOS, 0x40))
                        {
                            Store (^^^LPC0.EC0.BLVL, Local0)
                            While (One)
                            {
                                Store (ToInteger (Local0), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Store (0x0A, Local1)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Store (0x14, Local1)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Store (0x1E, Local1)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x03))
                                            {
                                                Store (0x28, Local1)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x04))
                                                {
                                                    Store (0x37, Local1)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x05))
                                                    {
                                                        Store (0x46, Local1)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_0, 0x06))
                                                        {
                                                            Store (0x55, Local1)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_0, 0x07))
                                                            {
                                                                Store (0x64, Local1)
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                Break
                            }
                        }
                        Return (Local1)
                    }
                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (^^^LPC0.EC0.NXT0)
                    }
                }
                Device (CRT)
                {
                    Method (_ADR, 0, Serialized)
                    {
                        Return (0x0100)
                    }
                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (^^^LPC0.EC0.NXT1)
                    }
                }
                Device (HDMI)
                {
                    Method (_ADR, 0, Serialized)
                    {
                        Return (0x0210)
                    }
                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (^^^LPC0.EC0.NXT2)
                    }
                }
                Name (ATIB, Buffer (0x0100) {})
                Method (ATIF, 2, Serialized)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        Return (AF00 ())
                    }
                    If (LEqual (Arg0, One))
                    {
                        Return (AF01 ())
                    }
                    If (LEqual (Arg0, 0x02))
                    {
                        Return (AF02 ())
                    }
                    If (LEqual (Arg0, 0x03))
                    {
                        Return (AF03 (DerefOf (Index (Arg1, 0x02)), DerefOf (Index (Arg1, 
                            0x04))))
                    }
                    If (LEqual (Arg0, 0x0F))
                    {
                        Return (AF15 ())
                    }
                    Else
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, VERN)
                        CreateDWordField (ATIB, 0x04, NMSK)
                        CreateDWordField (ATIB, 0x08, SFUN)
                        Store (Zero, SSZE)
                        Store (Zero, VERN)
                        Store (Zero, NMSK)
                        Store (Zero, SFUN)
                        Return (ATIB)
                    }
                }
                Method (AF00, 0, NotSerialized)
                {
                    CreateWordField (ATIB, Zero, SSZE)
                    CreateWordField (ATIB, 0x02, VERN)
                    CreateDWordField (ATIB, 0x04, NMSK)
                    CreateDWordField (ATIB, 0x08, SFUN)
                    Store (0x0C, SSZE)
                    Store (One, VERN)
                    If (LEqual (PXEN, 0x80000000))
                    {
                        Store (0x11, NMSK)
                    }
                    Else
                    {
                        Store (0x51, NMSK)
                    }
                    Store (NMSK, MSKN)
                    Store (0x4007, SFUN)
                    Return (ATIB)
                }
                Method (AF01, 0, NotSerialized)
                {
                    CreateWordField (ATIB, Zero, SSZE)
                    CreateDWordField (ATIB, 0x02, VMSK)
                    CreateDWordField (ATIB, 0x06, FLGS)
                    Store (0x0A, SSZE)
                    Store (0x03, VMSK)
                    Store (One, FLGS)
                    Return (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)
                    Store (0x0C, SSZE)
                    Store (PSBR, PSBI)
                    If (PDSW)
                    {
                        Store (Zero, PDSW)
                    }
                    If (PEXM)
                    {
                        Store (SEXM, EXPM)
                        Store (Zero, SEXM)
                        Store (Zero, PEXM)
                    }
                    If (PTHR)
                    {
                        Store (STHG, THRM)
                        Store (STHI, THID)
                        Store (Zero, STHG)
                        Store (Zero, STHI)
                        Store (Zero, PTHR)
                    }
                    If (PFPS)
                    {
                        Store (SFPG, FPWR)
                        Store (SFPI, FPWR)
                        Store (Zero, SFPG)
                        Store (Zero, SFPI)
                        Store (Zero, PFPS)
                    }
                    If (PSPS)
                    {
                        Store (SSPS, SPWR)
                        Store (Zero, PSPS)
                    }
                    If (PXPS)
                    {
                        Store (Zero, PXPS)
                    }
                    Return (ATIB)
                }
                Method (AF03, 2, NotSerialized)
                {
                    CreateWordField (ATIB, Zero, SSZE)
                    CreateWordField (ATIB, 0x02, SSDP)
                    CreateWordField (ATIB, 0x04, SCDP)
                    Store (Arg0, SSDP)
                    Store (Arg1, SCDP)
                    Name (NXTD, 0x06)
                    Name (CIDX, 0x06)
                    Store (SSDP, Local1)
                    And (Local1, 0x8B, Local1)
                    Store (SCDP, Local2)
                    If (CondRefOf (\_SB.LID._LID, Local4))
                    {
                        And (Local2, 0xFFFFFFFE, Local2)
                        Or (Local2, ^^^LID._LID (), Local2)
                    }
                    Else
                    {
                        Or (Local2, One, Local2)
                    }
                    Store (Local2, P80H)
                    Store (Zero, Local0)
                    While (LLess (Local0, SizeOf (SACT)))
                    {
                        Store (DerefOf (Index (SACT, Local0)), Local3)
                        If (LEqual (Local3, Local1))
                        {
                            Store (Local0, CIDX)
                            Store (SizeOf (SACT), Local0)
                        }
                        Else
                        {
                            Increment (Local0)
                        }
                    }
                    Store (CIDX, Local0)
                    While (LLess (Local0, SizeOf (SACT)))
                    {
                        Increment (Local0)
                        If (LEqual (Local0, SizeOf (SACT)))
                        {
                            Store (Zero, Local0)
                        }
                        Store (DerefOf (Index (SACT, Local0)), Local3)
                        If (LEqual (And (Local3, Local2), Local3))
                        {
                            Store (Local0, NXTD)
                            Store (SizeOf (SACT), Local0)
                        }
                    }
                    If (LEqual (NXTD, SizeOf (SACT)))
                    {
                        Store (Zero, SSDP)
                    }
                    Else
                    {
                        Store (NXTD, Local0)
                        Store (DerefOf (Index (SACT, Local0)), Local3)
                        And (SSDP, 0xFFFFFFF4, SSDP)
                        Or (SSDP, Local3, SSDP)
                    }
                    Store (0x04, SSZE)
                    Store (SSDP, P80H)
                    Return (ATIB)
                }
                Method (AFN0, 0, Serialized)
                {
                    If (And (MSKN, One))
                    {
                        CreateBitField (PSBR, Zero, PDSW)
                        Store (One, PDSW)
                        Notify (VGA, 0x81)
                    }
                }
                Method (AFN3, 2, Serialized)
                {
                    If (And (MSKN, 0x08))
                    {
                        Store (Arg0, Local0)
                        Store (Local0, SFPI)
                        Store (Arg1, Local0)
                        Store (And (Local0, 0x03, Local0), SFPG)
                        CreateBitField (PSBR, 0x03, PFPS)
                        Store (One, PFPS)
                        Notify (VGA, 0x81)
                    }
                }
                Method (AFN4, 1, Serialized)
                {
                    If (And (MSKN, 0x10))
                    {
                        Store (Arg0, Local0)
                        Store (SSPS, Local1)
                        Store (Local0, SSPS)
                        If (LEqual (Local0, Local1)) {}
                        Else
                        {
                            CreateBitField (PSBR, 0x04, PSPS)
                            Store (One, PSPS)
                            Notify (VGA, 0x81)
                        }
                    }
                }
                Method (AFN5, 0, Serialized)
                {
                    If (And (MSKN, 0x20))
                    {
                        CreateBitField (PSBR, 0x05, PDCC)
                        Store (One, PDCC)
                        Notify (VGA, 0x81)
                    }
                }
                Method (AFN6, 0, Serialized)
                {
                    If (And (MSKN, 0x40))
                    {
                        CreateBitField (PSBR, 0x06, PXPS)
                        Store (One, PXPS)
                        Notify (VGA, 0x81)
                    }
                }
                Method (AF15, 0, NotSerialized)
                {
                    Store (0xFF, P80H)
                    CreateWordField (ATIB, 0x02, DSZE)
                    Store (0x08, DSZE)
                    Acquire (^^LPC0.PSMX, 0xFFFF)
                    Store (0x8D, BCMD)
                    Store (0x0F, DID)
                    Store (ATIB, INFO)
                    BSMI (Zero)
                    Store (INFO, ATIB)
                    Release (^^LPC0.PSMX)
                    Return (ATIB)
                }
                Scope (\_SB.PCI0.VGA)
                {
                    OperationRegion (REVD, SystemMemory, 0xCFC87018, 0x0000FA04)
                    Field (REVD, AnyAcc, NoLock, Preserve)
                    {
                        SROM,   32, 
                        VROM,   512000
                    }
                    Name (TVGA, Buffer (0xFA00)
                    {
                         0x00
                    })
                    Method (ATRM, 2, Serialized)
                    {
                        Add (Arg0, Arg1, Local0)
                        If (LLessEqual (Local0, SROM))
                        {
                            Multiply (Arg1, 0x08, Local1)
                            Multiply (Arg0, 0x08, Local2)
                            Store (VROM, TVGA)
                            CreateField (TVGA, Local2, Local1, TEMP)
                            Name (RETB, Buffer (Arg1) {})
                            Store (TEMP, RETB)
                            Return (RETB)
                        }
                        Else
                        {
                            If (LLess (Arg0, SROM))
                            {
                                Subtract (SROM, Arg0, Local3)
                                Multiply (Local3, 0x08, Local1)
                                Multiply (Arg0, 0x08, Local2)
                                Store (VROM, TVGA)
                                CreateField (TVGA, Local2, Local1, TEM)
                                Name (RETC, Buffer (Local3) {})
                                Store (TEM, RETC)
                                Return (RETC)
                            }
                            Else
                            {
                                Name (RETD, Buffer (One) {})
                                Return (RETD)
                            }
                        }
                    }
                }
                Scope (\_SB.PCI0.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
                    })
                    Name (CNT5, Buffer (0x05)
                    {
                         0x01, 0x00, 0x01, 0x10, 0x01
                    })
                    Name (CNT6, Buffer (0x05)
                    {
                         0x01, 0x01, 0x01, 0x00, 0x01
                    })
                    Name (CNT7, Buffer (0x05)
                    {
                         0x03, 0x03, 0x01, 0x10, 0x02
                    })
                    Name (CNT8, Buffer (0x05)
                    {
                         0x03, 0x07, 0x01, 0x20, 0x02
                    })
                    Name (CNT9, Buffer (0x05)
                    {
                         0x00, 0x09, 0x01, 0x30, 0x02
                    })
                    Method (ATPX, 2, Serialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            Return (PX00 ())
                        }
                        If (LEqual (Arg0, One))
                        {
                            Return (PX01 ())
                        }
                        If (LEqual (Arg0, 0x02))
                        {
                            PX02 (DerefOf (Index (Arg1, 0x02)))
                            Return (ATPB)
                        }
                        If (LEqual (Arg0, 0x03))
                        {
                            PX03 (DerefOf (Index (Arg1, 0x02)))
                            Return (ATPB)
                        }
                        If (LEqual (Arg0, 0x04))
                        {
                            PX04 (DerefOf (Index (Arg1, 0x02)))
                            Return (ATPB)
                        }
                        If (LEqual (Arg0, 0x08))
                        {
                            Return (PX08 ())
                        }
                        If (LEqual (Arg0, 0x09))
                        {
                            Return (PX09 ())
                        }
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, VERN)
                        CreateDWordField (ATPB, 0x04, SFUN)
                        Store (Zero, SSZE)
                        Store (Zero, VERN)
                        Store (Zero, SFUN)
                        Return (ATPB)
                    }
                    Method (PX00, 0, NotSerialized)
                    {
                        Store (0xE0, P80H)
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, VERN)
                        CreateDWordField (ATPB, 0x04, SFUN)
                        Store (0x08, SSZE)
                        Store (One, VERN)
                        If (LEqual (PXEN, 0x80000000))
                        {
                            Store (Zero, SFUN)
                            Return (ATPB)
                        }
                        If (LEqual (PXMX, 0x80000000))
                        {
                            Store (0x018F, SFUN)
                        }
                        Else
                        {
                            Store (0x0183, SFUN)
                        }
                        If (LEqual (PXDY, 0x80000001))
                        {
                            And (SFUN, 0xFFFFFFFD, SFUN)
                        }
                        If (LAnd (LEqual (PXDY, 0x80000001), LEqual (PXFX, 0x80000001)))
                        {
                            Or (SFUN, 0x02, SFUN)
                        }
                        If (LEqual (PXID, ^^PB2._ADR))
                        {
                            Store (^^PB2.VGA.SVID, Local0)
                            Store (^^PB2.HDAU.SVID, Local1)
                        }
                        Else
                        {
                            Store (^^PB3.VGA.SVID, Local0)
                            Store (^^PB3.HDAU.SVID, Local1)
                        }
                        If (LNotEqual (Local0, Ones))
                        {
                            Store (Local0, DSID)
                        }
                        If (LNotEqual (Local1, Ones))
                        {
                            Store (Local1, HSID)
                        }
                        Return (ATPB)
                    }
                    Method (PX01, 0, NotSerialized)
                    {
                        Store (0xE1, P80H)
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateDWordField (ATPB, 0x02, VMSK)
                        CreateDWordField (ATPB, 0x06, FLGS)
                        Store (0x0A, SSZE)
                        Store (0xFF, VMSK)
                        If (LEqual (PXMX, 0x80000000))
                        {
                            Store (0x4B, FLGS)
                        }
                        Else
                        {
                            Store (Zero, FLGS)
                            If (LEqual (PXDY, 0x80000001))
                            {
                                Or (FLGS, 0x80, FLGS)
                            }
                        }
                        Return (ATPB)
                    }
                    Method (PX02, 1, NotSerialized)
                    {
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateByteField (ATPB, 0x02, PWST)
                        Store (0x03, SSZE)
                        Store (Buffer (0x05) {}, Local7)
                        CreateWordField (Local7, Zero, SZZE)
                        CreateField (Local7, 0x10, 0x03, FUCC)
                        CreateField (Local7, 0x13, 0x05, DEVV)
                        CreateByteField (Local7, 0x03, BUSS)
                        CreateByteField (Local7, 0x04, HPST)
                        Store (0x05, SZZE)
                        Store (Zero, BUSS)
                        Store (Zero, FUCC)
                        Store (Buffer (0x04) {}, Local6)
                        CreateByteField (Local6, 0x02, HPOX)
                        And (Arg0, One, PWST)
                        Name (HPOK, Zero)
                        If (PWST)
                        {
                            Store (0x11E2, P80H)
                            Store (Zero, ^^SMBS.O044)
                            Store (Zero, ^^SMBS.E044)
                            Store (Zero, ^^SMBS.O045)
                            Store (Zero, ^^SMBS.E045)
                            Sleep (0x0A)
                            Store (One, ^^SMBS.O045)
                            Store (Zero, ^^SMBS.E045)
                            Sleep (0x0A)
                            Store (One, ^^SMBS.O055)
                            Store (Zero, ^^SMBS.E055)
                            Sleep (0x0A)
                            Store (One, ^^SMBS.O044)
                            Store (Zero, ^^SMBS.E044)
                            Store (0x12E2, P80H)
                            Store (Zero, HPOK)
                            Sleep (0x64)
                            Sleep (0x64)
                            If (LEqual (PXID, ^^PB2._ADR))
                            {
                                Store (0x02, DEVV)
                            }
                            Else
                            {
                                Store (0x03, DEVV)
                            }
                            Store (One, HPST)
                            Store (ALIB (0x06, Local7, Local6, Sleep (0x14), Store (Zero, Local2)), 
                                While (LLess (Local2, 0x0F))
                                {
                                    If (LEqual (PXID, ^^PB2._ADR))
                                    {
                                        Store (One, ^^PB2.PDC2)
                                    }
                                    Else
                                    {
                                        Store (One, ^^PB3.PDC2)
                                    }
                                    Store (One, Local4)
                                    Store (0xC8, Local5)
                                    While (LAnd (Local4, Local5))
                                    {
                                        If (LEqual (PXID, ^^PB2._ADR))
                                        {
                                            Store (^^PB2.XPRD (0xA5), Local0)
                                        }
                                        Else
                                        {
                                            Store (^^PB3.XPRD (0xA5), Local0)
                                        }
                                        And (Local0, 0x7F, Local0)
                                        If (LAnd (LGreaterEqual (Local0, 0x10), LNotEqual (Local0, 0x7F)))
                                        {
                                            Store (Zero, Local4)
                                        }
                                        Else
                                        {
                                            Sleep (0x05)
                                            Decrement (Local5)
                                        }
                                    }
                                    If (LNot (Local4))
                                    {
                                        If (LEqual (PXID, ^^PB2._ADR))
                                        {
                                            Store (^^PB2.XPDL (), Local5)
                                        }
                                        Else
                                        {
                                            Store (^^PB3.XPDL (), Local5)
                                        }
                                        If (Local5)
                                        {
                                            If (LEqual (PXID, ^^PB2._ADR))
                                            {
                                                ^^PB2.XPRT ()
                                            }
                                            Else
                                            {
                                                ^^PB3.XPRT ()
                                            }
                                            Sleep (0x05)
                                            Increment (Local2)
                                        }
                                        Else
                                        {
                                            Store (Zero, Local0)
                                            If (LEqual (PXID, ^^PB2._ADR))
                                            {
                                                If (LEqual (^^PB2.XPR2 (), Ones))
                                                {
                                                    Store (One, Local0)
                                                }
                                            }
                                            Else
                                            {
                                                If (LEqual (^^PB3.XPR2 (), Ones))
                                                {
                                                    Store (One, Local0)
                                                }
                                            }
                                            If (Local0)
                                            {
                                                Store (One, HPOK)
                                                Store (0x10, Local2)
                                            }
                                            Else
                                            {
                                                Store (Zero, HPOK)
                                                Store (0x10, Local2)
                                            }
                                        }
                                    }
                                    Else
                                    {
                                        Store (0x10, Local2)
                                    }
                                })
                            If (LNot (HPOK))
                            {
                                Store (0x13E2, P80H)
                                If (LEqual (PXID, ^^PB2._ADR))
                                {
                                    Store (^^PB2.VGA.DVID, Local1)
                                }
                                Else
                                {
                                    Store (^^PB3.VGA.DVID, Local1)
                                }
                                Sleep (0x0A)
                                Store (One, Local4)
                                Store (0x05, Local5)
                                While (LAnd (Local4, Local5))
                                {
                                    If (LEqual (PXID, ^^PB2._ADR))
                                    {
                                        Store (^^PB2.XPRD (0xA5), Local0)
                                    }
                                    Else
                                    {
                                        Store (^^PB3.XPRD (0xA5), Local0)
                                    }
                                    And (Local0, 0x7F, Local0)
                                    If (LLessEqual (Local0, 0x04))
                                    {
                                        Store (Zero, Local4)
                                    }
                                    Else
                                    {
                                        If (LEqual (PXID, ^^PB2._ADR))
                                        {
                                            Store (^^PB2.VGA.DVID, Local1)
                                        }
                                        Else
                                        {
                                            Store (^^PB3.VGA.DVID, Local1)
                                        }
                                        Sleep (0x05)
                                        Decrement (Local5)
                                    }
                                }
                                If (LEqual (PXID, ^^PB2._ADR))
                                {
                                    Store (0x02, DEVV)
                                }
                                Else
                                {
                                    Store (0x03, DEVV)
                                }
                                Store (Zero, HPST)
                                ALIB (0x06, Local7, Store (0x14E2, P80H), Else
                                    {
                                        Store (0x02E2, P80H)
                                        If (LEqual (PXID, ^^PB2._ADR))
                                        {
                                            Store (0x10, MUXF)
                                        }
                                        Else
                                        {
                                            Store (0x18, MUXF)
                                        }
                                        Store (Zero, ^^SMBS.O044)
                                        Store (Zero, ^^SMBS.E044)
                                        Store (Zero, ^^SMBS.O055)
                                        Store (Zero, ^^SMBS.E055)
                                        Sleep (0x0A)
                                        Store (Zero, ^^SMBS.O045)
                                        Store (Zero, ^^SMBS.E045)
                                        Store (0x03E2, P80H)
                                        If (LEqual (PXID, ^^PB2._ADR))
                                        {
                                            Store (One, ^^PB2.PDC2)
                                            Store (^^PB2.VGA.DVID, Local1)
                                        }
                                        Else
                                        {
                                            Store (One, ^^PB3.PDC2)
                                            Store (^^PB3.VGA.DVID, Local1)
                                        }
                                        Sleep (0x0A)
                                        Store (One, Local4)
                                        Store (0x05, Local5)
                                        While (LAnd (Local4, Local5))
                                        {
                                            If (LEqual (PXID, ^^PB2._ADR))
                                            {
                                                Store (^^PB2.XPRD (0xA5), Local0)
                                            }
                                            Else
                                            {
                                                Store (^^PB3.XPRD (0xA5), Local0)
                                            }
                                            And (Local0, 0x7F, Local0)
                                            If (LLessEqual (Local0, 0x04))
                                            {
                                                Store (Zero, Local4)
                                            }
                                            Else
                                            {
                                                If (LEqual (PXID, ^^PB2._ADR))
                                                {
                                                    Store (^^PB2.VGA.DVID, Local1)
                                                }
                                                Else
                                                {
                                                    Store (^^PB3.VGA.DVID, Local1)
                                                }
                                                Sleep (0x05)
                                                Decrement (Local5)
                                            }
                                        }
                                        If (LEqual (PXID, ^^PB2._ADR))
                                        {
                                            Store (0x02, DEVV)
                                        }
                                        Else
                                        {
                                            Store (0x03, DEVV)
                                        }
                                        Store (Zero, HPST)
                                        ALIB (0x06, Local7, Store (0x02, HPOK), Store (0x04E2, P80H), If (
                                            HPOK)
                                            {
                                                If (LAnd (LEqual (HPOK, One), LNotEqual (DSID, Ones)))
                                                {
                                                    Store (DSID, Local1)
                                                    If (LEqual (PXID, ^^PB2._ADR))
                                                    {
                                                        Store (Local1, ^^PB2.VGA.SMID)
                                                    }
                                                    Else
                                                    {
                                                        Store (Local1, ^^PB3.VGA.SMID)
                                                    }
                                                    Sleep (0x0A)
                                                    Store (HSID, Local1)
                                                    If (LNotEqual (Local1, Ones))
                                                    {
                                                        If (LEqual (PXID, ^^PB2._ADR))
                                                        {
                                                            Store (Local1, ^^PB2.HDAU.SMID)
                                                        }
                                                        Else
                                                        {
                                                            Store (Local1, ^^PB3.HDAU.SMID)
                                                        }
                                                    }
                                                    Sleep (0x0A)
                                                }
                                                If (LEqual (PXID, ^^PB2._ADR))
                                                {
                                                    Notify (PB2, Zero)
                                                }
                                                Else
                                                {
                                                    Notify (PB3, Zero)
                                                }
                                            })
                                    })
                            }
                        }
                    }
                    Method (PX03, 1, NotSerialized)
                    {
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, DPSW)
                        Store (0x04, SSZE)
                        And (Arg0, One, DPSW)
                    }
                    Method (PX04, 1, NotSerialized)
                    {
                        Store (0xE4, P80H)
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, ICSW)
                        Store (0x04, SSZE)
                        And (Arg0, One, ICSW)
                    }
                    Method (PX08, 0, NotSerialized)
                    {
                        Store (0xE8, P80H)
                        CreateWordField (ATPB, Zero, CNUM)
                        CreateWordField (ATPB, 0x02, CSSZ)
                        Store (0x0A, CNUM)
                        Store (0x05, CSSZ)
                        CreateField (ATPB, 0x20, 0x28, CTI0)
                        Store (CNT0, CTI0)
                        CreateField (ATPB, 0x48, 0x28, CTI1)
                        Store (CNT1, CTI1)
                        CreateField (ATPB, 0x70, 0x28, CTI2)
                        CreateByteField (CNT2, Zero, FLG2)
                        If (LEqual (LPTY, One))
                        {
                            If (LEqual (M92D, One))
                            {
                                Store (Zero, FLG2)
                            }
                            If (LEqual (M92D, 0x02))
                            {
                                Store (0x07, FLG2)
                            }
                        }
                        Store (CNT2, CTI2)
                        CreateField (ATPB, 0x98, 0x28, CTI3)
                        CreateByteField (CNT3, Zero, FLG3)
                        If (LEqual (LPTY, Zero))
                        {
                            Store (0x07, FLG3)
                        }
                        If (LEqual (LPTY, One))
                        {
                            Store (Zero, FLG3)
                        }
                        If (LEqual (LPTY, 0x02))
                        {
                            Store (Zero, FLG3)
                        }
                        If (LEqual (M92D, 0x02))
                        {
                            Store (0x07, FLG3)
                        }
                        Store (CNT3, CTI3)
                        CreateField (ATPB, 0xC0, 0x28, CTI4)
                        Store (CNT4, CTI4)
                        CreateField (ATPB, 0xE8, 0x28, CTI5)
                        Store (CNT5, CTI5)
                        CreateField (ATPB, 0x0110, 0x28, CTI6)
                        Store (CNT6, CTI6)
                        CreateField (ATPB, 0x0138, 0x28, CTI7)
                        CreateByteField (CNT7, Zero, FLG7)
                        If (LEqual (LPTY, One))
                        {
                            If (LEqual (M92D, One))
                            {
                                Store (Zero, FLG7)
                            }
                            If (LEqual (M92D, 0x02))
                            {
                                Store (Zero, FLG7)
                            }
                        }
                        Store (CNT7, CTI7)
                        CreateField (ATPB, 0x0160, 0x28, CTI8)
                        CreateByteField (CNT8, Zero, FLG8)
                        If (LEqual (LPTY, Zero))
                        {
                            Store (0x07, FLG8)
                        }
                        If (LEqual (LPTY, One))
                        {
                            Store (Zero, FLG8)
                        }
                        If (LEqual (LPTY, 0x02))
                        {
                            Store (Zero, FLG8)
                        }
                        If (LEqual (M92D, 0x02))
                        {
                            Store (0x07, FLG8)
                        }
                        Store (CNT8, CTI8)
                        CreateField (ATPB, 0x0188, 0x28, CTI9)
                        CreateByteField (CNT9, Zero, FLG9)
                        If (LEqual (M92D, 0x02))
                        {
                            Store (0x07, FLG9)
                        }
                        Store (CNT9, CTI9)
                        Return (ATPB)
                    }
                    Method (PX09, 0, NotSerialized)
                    {
                        Store (0xE9, P80H)
                        CreateWordField (ATPB, Zero, CNUM)
                        CreateWordField (ATPB, 0x02, CSSZ)
                        Store (Zero, CNUM)
                        Store (Zero, CSSZ)
                        CreateByteField (ATPB, 0x04, ATI0)
                        CreateByteField (ATPB, 0x05, HPD0)
                        CreateByteField (ATPB, 0x06, DDC0)
                        Store (Zero, ATI0)
                        Store (Zero, HPD0)
                        Store (Zero, DDC0)
                        CreateByteField (ATPB, 0x07, ATI1)
                        CreateByteField (ATPB, 0x08, HPD1)
                        CreateByteField (ATPB, 0x09, DDC1)
                        Store (Zero, ATI1)
                        Store (Zero, HPD1)
                        Store (Zero, DDC1)
                        Return (ATPB)
                    }
                }
                Name (AT00, Buffer (0xFF) {})
                Name (AT01, Buffer (0x03) {})
                Method (ATCS, 2, Serialized)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        ATC0 ()
                    }
                    If (LEqual (Arg0, One))
                    {
                        ATC1 ()
                    }
                    If (LEqual (Arg0, 0x02))
                    {
                        ATC2 (Arg1)
                    }
                    If (LEqual (Arg0, 0x03))
                    {
                        ATC3 ()
                    }
                    If (LEqual (Arg0, 0x04))
                    {
                        ATC4 (Arg1)
                    }
                    Return (AT00)
                }
                Method (ATC0, 0, NotSerialized)
                {
                    CreateWordField (AT00, Zero, SZZE)
                    CreateWordField (AT00, 0x02, INTF)
                    CreateDWordField (AT00, 0x04, SUPP)
                    Store (0x08, SZZE)
                    Store (One, INTF)
                    Store (0x0F, SUPP)
                }
                Method (ATC1, 0, Serialized)
                {
                    CreateWordField (AT00, Zero, SZZE)
                    CreateDWordField (AT00, 0x02, VFMK)
                    CreateDWordField (AT00, 0x06, FLAG)
                    CreateField (AT00, 0x30, One, DOCK)
                    Store (0x0A, SZZE)
                    Store (One, VFMK)
                    Store (Zero, FLAG)
                    Store (One, DOCK)
                }
                Method (ATC2, 1, Serialized)
                {
                    CreateField (Arg0, 0x10, 0x03, FUCC)
                    CreateField (Arg0, 0x13, 0x06, DEVV)
                    CreateByteField (Arg0, 0x03, BUSS)
                    CreateDWordField (Arg0, 0x04, VFMK)
                    CreateDWordField (Arg0, 0x06, FLAG)
                    CreateField (Arg0, 0x30, One, ADVC)
                    CreateField (Arg0, 0x31, One, WFCM)
                    CreateByteField (Arg0, 0x08, RQST)
                    CreateByteField (Arg0, 0x09, PFRQ)
                    CreateWordField (AT00, Zero, SZZE)
                    CreateByteField (AT00, 0x02, RETV)
                    Store (0x03, SZZE)
                    Store (One, RETV)
                    Store (ALIB (0x02, Arg0, AT00))
                }
                Method (ATC3, 0, Serialized)
                {
                    CreateWordField (AT00, Zero, SZZE)
                    CreateByteField (AT00, 0x02, RETV)
                    CreateWordField (AT01, Zero, SZZB)
                    CreateByteField (AT01, 0x02, PSPP)
                    Store (0x03, SZZE)
                    Store (One, RETV)
                    Store (0x03, SZZB)
                    Store (One, PSPP)
                    Store (ALIB (0x03, AT01, AT00))
                }
                Method (ATC4, 1, Serialized)
                {
                    CreateField (Arg0, 0x10, 0x03, FUCC)
                    CreateField (Arg0, 0x13, 0x06, DEVV)
                    CreateByteField (Arg0, 0x03, BUSS)
                    CreateByteField (Arg0, 0x04, NULN)
                    CreateWordField (AT00, Zero, SZZE)
                    CreateByteField (AT00, 0x02, NULM)
                    Store (0x03, SZZE)
                    Store (One, NULM)
                    Store (ALIB (0x04, Arg0, AT00))
                }
            }
            Device (PB2)
            {
                Name (_ADR, 0x00020000)
                Method (_PRW, 0, NotSerialized)
                {
                    If (LEqual (WKPM, One))
                    {
                        Return (GPRW (0x08, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }
                Name (PR02, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKC, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKD, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKA, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKB, 
                        Zero
                    }
                })
                Name (AR02, 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
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR02)
                    }
                    Return (PR02)
                }
                OperationRegion (XPEX, SystemMemory, 0xF8010100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28), 
                    VC0S,   32
                }
                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 (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32, 
                    Offset (0x18), 
                    SBUS,   32
                }
                Method (XPDL, 0, NotSerialized)
                {
                    If (And (VC0S, 0x00020000))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Mutex (XPPM, 0x00)
                Method (XPRD, 1, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (XPID, Local0)
                    Store (Zero, XPIR)
                    Release (XPPM)
                    Return (Local0)
                }
                Method (XPWR, 2, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (Arg1, XPID)
                    Store (Zero, XPIR)
                    Release (XPPM)
                }
                Method (XPRT, 0, NotSerialized)
                {
                    Store (XPRD (0xA2), Local0)
                    And (Local0, 0xFFFFFFF8, Local0)
                    ShiftRight (Local0, 0x04, Local1)
                    And (Local1, 0x07, Local1)
                    Or (Local0, Local1, Local0)
                    Or (Local0, 0x0100, Local0)
                    XPWR (0xA2, Local0)
                }
                Method (XPR2, 0, NotSerialized)
                {
                    Store (LKCN, Local0)
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    Or (Local0, 0x20, Local0)
                    Store (Local0, LKCN)
                    Store (0x64, Local1)
                    Store (One, Local2)
                    While (LAnd (Local1, Local2))
                    {
                        Sleep (One)
                        Store (LKST, Local3)
                        If (And (Local3, 0x0800))
                        {
                            Decrement (Local1)
                        }
                        Else
                        {
                            Store (Zero, Local2)
                        }
                    }
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    If (LNot (Local2))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Method (XPPB, 0, NotSerialized)
                {
                    Store (_ADR, Local0)
                    Store (ShiftRight (Local0, 0x10), Local1)
                    Store (ShiftLeft (Local1, 0x03), Local1)
                    Store (And (Local0, 0x0F), Local2)
                    Store (Or (Local1, Local2), Local3)
                    Return (Local3)
                }
                Method (XPPR, 1, NotSerialized)
                {
                    Name (HPOK, Zero)
                    Store (Zero, HPOK)
                    Store (ShiftLeft (XPPB (), 0x03), Local0)
                    If (Arg0)
                    {
                        XPLL (Local0, One)
                        XPLP (Local0, One)
                        Sleep (0xC8)
                        XPTR (Local0, One)
                        Store (0x0F, Local5)
                        While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
                        {
                            Store (One, PDC2)
                            Store (0x28, Local1)
                            While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
                            {
                                Store (XPRD (0xA5), Local2)
                                If (LEqual (And (Local2, 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LGreaterEqual (And (Local2, 0xFF), 0x04))
                                {
                                    Store (One, HPOK)
                                }
                                Decrement (Local1)
                            }
                            If (HPOK)
                            {
                                Store (And (XPRD (0xA5), 0xFF), Local2)
                                Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
                                If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
                                    Local3, 0x05))))
                                {
                                    Store (Zero, HPOK)
                                }
                            }
                            If (HPOK)
                            {
                                Store (0x07D0, Local1)
                                Store (Zero, HPOK)
                                While (LAnd (LNot (HPOK), Local1))
                                {
                                    Store (And (XPRD (0xA5), 0xFF), Local2)
                                    If (LEqual (Local2, 0x07))
                                    {
                                        Store (One, Local1)
                                        Store (XPDL (), Local4)
                                        If (Local4)
                                        {
                                            XPRT ()
                                            Decrement (Local5)
                                        }
                                    }
                                    If (LEqual (Local2, 0x10))
                                    {
                                        Store (One, HPOK)
                                    }
                                    Sleep (One)
                                    Decrement (Local1)
                                }
                            }
                        }
                    }
                    If (HPOK)
                    {
                        XPTR (Local0, Zero)
                        XPLP (Local0, Zero)
                        XPLL (Local0, Zero)
                    }
                    Return (Ones)
                }
                Device (VGA)
                {
                    Name (_ADR, Zero)
                    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)
                    {
                        Store (Arg0, DOSA)
                    }
                    Method (_DOD, 0, NotSerialized)
                    {
                        Name (DODL, Package (0x05)
                        {
                            0x00010100, 
                            0x00010110, 
                            0x0200, 
                            0x00010210, 
                            0x00010220
                        })
                        Return (DODL)
                    }
                    Device (LCD)
                    {
                        Name (_ADR, 0x0110)
                        Method (_BCL, 0, NotSerialized)
                        {
                            Return (Package (0x0A)
                            {
                                0x64, 
                                0x28, 
                                0x0A, 
                                0x14, 
                                0x1E, 
                                0x28, 
                                0x37, 
                                0x46, 
                                0x55, 
                                0x64
                            })
                        }
                        Method (_BCM, 1, Serialized)
                        {
                            Name (_T_0, Zero)
                            While (One)
                            {
                                Store (ToInteger (Arg0), _T_0)
                                If (LEqual (_T_0, 0x0A))
                                {
                                    Store (Zero, Local1)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x14))
                                    {
                                        Store (One, Local1)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x1E))
                                        {
                                            Store (0x02, Local1)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x28))
                                            {
                                                Store (0x03, Local1)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x37))
                                                {
                                                    Store (0x04, Local1)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x46))
                                                    {
                                                        Store (0x05, Local1)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_0, 0x55))
                                                        {
                                                            Store (0x06, Local1)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_0, 0x64))
                                                            {
                                                                Store (0x07, Local1)
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                Break
                            }
                            Store (ToInteger (Local1), Local0)
                            If (LGreaterEqual (TPOS, 0x40))
                            {
                                Store (ToInteger (Local1), ^^^^LPC0.EC0.BLVL)
                                ^^^^LPC0.EC0.SVBN ()
                            }
                        }
                        Method (_BQC, 0, Serialized)
                        {
                            Name (_T_0, Zero)
                            If (LGreaterEqual (TPOS, 0x40))
                            {
                                Store (^^^^LPC0.EC0.BLVL, Local0)
                                While (One)
                                {
                                    Store (ToInteger (Local0), _T_0)
                                    If (LEqual (_T_0, Zero))
                                    {
                                        Store (0x0A, Local1)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, One))
                                        {
                                            Store (0x14, Local1)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x02))
                                            {
                                                Store (0x1E, Local1)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x03))
                                                {
                                                    Store (0x28, Local1)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x04))
                                                    {
                                                        Store (0x37, Local1)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_0, 0x05))
                                                        {
                                                            Store (0x46, Local1)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_0, 0x06))
                                                            {
                                                                Store (0x55, Local1)
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (_T_0, 0x07))
                                                                {
                                                                    Store (0x64, Local1)
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    Break
                                }
                            }
                            Return (Local1)
                        }
                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (^^^^LPC0.EC0.NXT0)
                        }
                    }
                    Device (CRT)
                    {
                        Method (_ADR, 0, Serialized)
                        {
                            Return (0x0100)
                        }
                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (^^^^LPC0.EC0.NXT1)
                        }
                    }
                    Device (HDMI)
                    {
                        Method (_ADR, 0, Serialized)
                        {
                            Return (0x0210)
                        }
                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (^^^^LPC0.EC0.NXT2)
                        }
                    }
                    Name (ATIB, Buffer (0x0100) {})
                    Method (ATIF, 2, Serialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            Return (AF00 ())
                        }
                        If (LEqual (Arg0, One))
                        {
                            Return (AF01 ())
                        }
                        If (LEqual (Arg0, 0x02))
                        {
                            Return (AF02 ())
                        }
                        If (LEqual (Arg0, 0x03))
                        {
                            Return (AF03 (DerefOf (Index (Arg1, 0x02)), DerefOf (Index (Arg1, 
                                0x04))))
                        }
                        If (LEqual (Arg0, 0x0F))
                        {
                            Return (AF15 ())
                        }
                        Else
                        {
                            CreateWordField (ATIB, Zero, SSZE)
                            CreateWordField (ATIB, 0x02, VERN)
                            CreateDWordField (ATIB, 0x04, NMSK)
                            CreateDWordField (ATIB, 0x08, SFUN)
                            Store (Zero, SSZE)
                            Store (Zero, VERN)
                            Store (Zero, NMSK)
                            Store (Zero, SFUN)
                            Return (ATIB)
                        }
                    }
                    Method (AF00, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, VERN)
                        CreateDWordField (ATIB, 0x04, NMSK)
                        CreateDWordField (ATIB, 0x08, SFUN)
                        Store (0x0C, SSZE)
                        Store (One, VERN)
                        If (LEqual (^^^VGA.PXEN, 0x80000000))
                        {
                            Store (0x11, NMSK)
                        }
                        Else
                        {
                            Store (0x51, NMSK)
                        }
                        Store (NMSK, MSKN)
                        Store (0x4007, SFUN)
                        Return (ATIB)
                    }
                    Method (AF01, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, VMSK)
                        CreateDWordField (ATIB, 0x06, FLGS)
                        Store (0x0A, SSZE)
                        Store (0x03, VMSK)
                        Store (One, FLGS)
                        Return (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)
                        Store (0x0C, SSZE)
                        Store (PSBR, PSBI)
                        If (PDSW)
                        {
                            Store (Zero, PDSW)
                        }
                        If (PEXM)
                        {
                            Store (SEXM, EXPM)
                            Store (Zero, SEXM)
                            Store (Zero, PEXM)
                        }
                        If (PTHR)
                        {
                            Store (STHG, THRM)
                            Store (STHI, THID)
                            Store (Zero, STHG)
                            Store (Zero, STHI)
                            Store (Zero, PTHR)
                        }
                        If (PFPS)
                        {
                            Store (SFPG, FPWR)
                            Store (SFPI, FPWR)
                            Store (Zero, SFPG)
                            Store (Zero, SFPI)
                            Store (Zero, PFPS)
                        }
                        If (PSPS)
                        {
                            Store (SSPS, SPWR)
                            Store (Zero, PSPS)
                        }
                        If (PXPS)
                        {
                            Store (Zero, PXPS)
                        }
                        Return (ATIB)
                    }
                    Method (AF03, 2, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, SSDP)
                        CreateWordField (ATIB, 0x04, SCDP)
                        Store (Arg0, SSDP)
                        Store (Arg1, SCDP)
                        Name (NXTD, 0x06)
                        Name (CIDX, 0x06)
                        Store (SSDP, Local1)
                        And (Local1, 0x8B, Local1)
                        Store (SCDP, Local2)
                        If (CondRefOf (\_SB.LID._LID, Local4))
                        {
                            And (Local2, 0xFFFFFFFE, Local2)
                            Or (Local2, ^^^^LID._LID (), Local2)
                        }
                        Else
                        {
                            Or (Local2, One, Local2)
                        }
                        Store (Local2, P80H)
                        Store (Zero, Local0)
                        While (LLess (Local0, SizeOf (SACT)))
                        {
                            Store (DerefOf (Index (SACT, Local0)), Local3)
                            If (LEqual (Local3, Local1))
                            {
                                Store (Local0, CIDX)
                                Store (SizeOf (SACT), Local0)
                            }
                            Else
                            {
                                Increment (Local0)
                            }
                        }
                        Store (CIDX, Local0)
                        While (LLess (Local0, SizeOf (SACT)))
                        {
                            Increment (Local0)
                            If (LEqual (Local0, SizeOf (SACT)))
                            {
                                Store (Zero, Local0)
                            }
                            Store (DerefOf (Index (SACT, Local0)), Local3)
                            If (LEqual (And (Local3, Local2), Local3))
                            {
                                Store (Local0, NXTD)
                                Store (SizeOf (SACT), Local0)
                            }
                        }
                        If (LEqual (NXTD, SizeOf (SACT)))
                        {
                            Store (Zero, SSDP)
                        }
                        Else
                        {
                            Store (NXTD, Local0)
                            Store (DerefOf (Index (SACT, Local0)), Local3)
                            And (SSDP, 0xFFFFFFF4, SSDP)
                            Or (SSDP, Local3, SSDP)
                        }
                        Store (0x04, SSZE)
                        Store (SSDP, P80H)
                        Return (ATIB)
                    }
                    Method (AFN0, 0, Serialized)
                    {
                        If (And (MSKN, One))
                        {
                            CreateBitField (PSBR, Zero, PDSW)
                            Store (One, PDSW)
                            Notify (VGA, 0x81)
                        }
                    }
                    Method (AFN3, 2, Serialized)
                    {
                        If (And (MSKN, 0x08))
                        {
                            Store (Arg0, Local0)
                            Store (Local0, SFPI)
                            Store (Arg1, Local0)
                            Store (And (Local0, 0x03, Local0), SFPG)
                            CreateBitField (PSBR, 0x03, PFPS)
                            Store (One, PFPS)
                            Notify (VGA, 0x81)
                        }
                    }
                    Method (AFN4, 1, Serialized)
                    {
                        If (And (MSKN, 0x10))
                        {
                            Store (Arg0, Local0)
                            Store (SSPS, Local1)
                            Store (Local0, SSPS)
                            If (LEqual (Local0, Local1)) {}
                            Else
                            {
                                CreateBitField (PSBR, 0x04, PSPS)
                                Store (One, PSPS)
                                Notify (VGA, 0x81)
                            }
                        }
                    }
                    Method (AFN5, 0, Serialized)
                    {
                        If (And (MSKN, 0x20))
                        {
                            CreateBitField (PSBR, 0x05, PDCC)
                            Store (One, PDCC)
                            Notify (VGA, 0x81)
                        }
                    }
                    Method (AFN6, 0, Serialized)
                    {
                        If (And (MSKN, 0x40))
                        {
                            CreateBitField (PSBR, 0x06, PXPS)
                            Store (One, PXPS)
                            Notify (VGA, 0x81)
                        }
                    }
                    Method (AF15, 0, NotSerialized)
                    {
                        Store (0xFF, P80H)
                        CreateWordField (ATIB, 0x02, DSZE)
                        Store (0x08, DSZE)
                        Acquire (^^^LPC0.PSMX, 0xFFFF)
                        Store (0x8D, BCMD)
                        Store (0x0F, DID)
                        Store (ATIB, INFO)
                        BSMI (Zero)
                        Store (INFO, ATIB)
                        Release (^^^LPC0.PSMX)
                        Return (ATIB)
                    }
                    Name (AT00, Buffer (0xFF) {})
                    Name (AT01, Buffer (0x03) {})
                    Method (ATCS, 2, Serialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            ATC0 ()
                        }
                        If (LEqual (Arg0, One))
                        {
                            ATC1 ()
                        }
                        If (LEqual (Arg0, 0x02))
                        {
                            ATC2 (Arg1)
                        }
                        If (LEqual (Arg0, 0x03))
                        {
                            ATC3 ()
                        }
                        If (LEqual (Arg0, 0x04))
                        {
                            ATC4 (Arg1)
                        }
                        Return (AT00)
                    }
                    Method (ATC0, 0, NotSerialized)
                    {
                        CreateWordField (AT00, Zero, SZZE)
                        CreateWordField (AT00, 0x02, INTF)
                        CreateDWordField (AT00, 0x04, SUPP)
                        Store (0x08, SZZE)
                        Store (One, INTF)
                        Store (0x0F, SUPP)
                    }
                    Method (ATC1, 0, Serialized)
                    {
                        CreateWordField (AT00, Zero, SZZE)
                        CreateDWordField (AT00, 0x02, VFMK)
                        CreateDWordField (AT00, 0x06, FLAG)
                        CreateField (AT00, 0x30, One, DOCK)
                        Store (0x0A, SZZE)
                        Store (One, VFMK)
                        Store (Zero, FLAG)
                        Store (One, DOCK)
                    }
                    Method (ATC2, 1, Serialized)
                    {
                        CreateField (Arg0, 0x10, 0x03, FUCC)
                        CreateField (Arg0, 0x13, 0x06, DEVV)
                        CreateByteField (Arg0, 0x03, BUSS)
                        CreateDWordField (Arg0, 0x04, VFMK)
                        CreateDWordField (Arg0, 0x06, FLAG)
                        CreateField (Arg0, 0x30, One, ADVC)
                        CreateField (Arg0, 0x31, One, WFCM)
                        CreateByteField (Arg0, 0x08, RQST)
                        CreateByteField (Arg0, 0x09, PFRQ)
                        CreateWordField (AT00, Zero, SZZE)
                        CreateByteField (AT00, 0x02, RETV)
                        Store (0x03, SZZE)
                        Store (One, RETV)
                        Store (ALIB (0x02, Arg0, AT00))
                    }
                    Method (ATC3, 0, Serialized)
                    {
                        CreateWordField (AT00, Zero, SZZE)
                        CreateByteField (AT00, 0x02, RETV)
                        CreateWordField (AT01, Zero, SZZB)
                        CreateByteField (AT01, 0x02, PSPP)
                        Store (0x03, SZZE)
                        Store (One, RETV)
                        Store (0x03, SZZB)
                        Store (One, PSPP)
                        Store (ALIB (0x03, AT01, AT00))
                    }
                    Method (ATC4, 1, Serialized)
                    {
                        CreateField (Arg0, 0x10, 0x03, FUCC)
                        CreateField (Arg0, 0x13, 0x06, DEVV)
                        CreateByteField (Arg0, 0x03, BUSS)
                        CreateByteField (Arg0, 0x04, NULN)
                        CreateWordField (AT00, Zero, SZZE)
                        CreateByteField (AT00, 0x02, NULM)
                        Store (0x03, SZZE)
                        Store (One, NULM)
                        Store (ALIB (0x04, Arg0, AT00))
                    }
                    Method (_RMV, 0, NotSerialized)
                    {
                        If (LNotEqual (^^^VGA.PXMX, 0x80000000))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            If (LEqual (0x18, XPPB ()))
                            {
                                If (LNotEqual (^^^VGA.PXEN, 0x80000000))
                                {
                                    Return (Zero)
                                }
                                Else
                                {
                                    Return (One)
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }
                }
                Device (HDAU)
                {
                    Name (_ADR, One)
                    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)
                Method (_PRW, 0, NotSerialized)
                {
                    If (LEqual (WKPM, One))
                    {
                        Return (GPRW (0x08, 0x04))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }
                Method (_PRT, 0, NotSerialized)
                {
                    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, 0xF8018100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28), 
                    VC0S,   32
                }
                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 (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32, 
                    Offset (0x18), 
                    SBUS,   32
                }
                Method (XPDL, 0, NotSerialized)
                {
                    If (And (VC0S, 0x00020000))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Mutex (XPPM, 0x00)
                Method (XPRD, 1, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (XPID, Local0)
                    Store (Zero, XPIR)
                    Release (XPPM)
                    Return (Local0)
                }
                Method (XPWR, 2, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (Arg1, XPID)
                    Store (Zero, XPIR)
                    Release (XPPM)
                }
                Method (XPRT, 0, NotSerialized)
                {
                    Store (XPRD (0xA2), Local0)
                    And (Local0, 0xFFFFFFF8, Local0)
                    ShiftRight (Local0, 0x04, Local1)
                    And (Local1, 0x07, Local1)
                    Or (Local0, Local1, Local0)
                    Or (Local0, 0x0100, Local0)
                    XPWR (0xA2, Local0)
                }
                Method (XPR2, 0, NotSerialized)
                {
                    Store (LKCN, Local0)
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    Or (Local0, 0x20, Local0)
                    Store (Local0, LKCN)
                    Store (0x64, Local1)
                    Store (One, Local2)
                    While (LAnd (Local1, Local2))
                    {
                        Sleep (One)
                        Store (LKST, Local3)
                        If (And (Local3, 0x0800))
                        {
                            Decrement (Local1)
                        }
                        Else
                        {
                            Store (Zero, Local2)
                        }
                    }
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    If (LNot (Local2))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Method (XPPB, 0, NotSerialized)
                {
                    Store (_ADR, Local0)
                    Store (ShiftRight (Local0, 0x10), Local1)
                    Store (ShiftLeft (Local1, 0x03), Local1)
                    Store (And (Local0, 0x0F), Local2)
                    Store (Or (Local1, Local2), Local3)
                    Return (Local3)
                }
                Method (XPPR, 1, NotSerialized)
                {
                    Name (HPOK, Zero)
                    Store (Zero, HPOK)
                    Store (ShiftLeft (XPPB (), 0x03), Local0)
                    If (Arg0)
                    {
                        XPLL (Local0, One)
                        XPLP (Local0, One)
                        Sleep (0xC8)
                        XPTR (Local0, One)
                        Store (0x0F, Local5)
                        While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
                        {
                            Store (One, PDC2)
                            Store (0x28, Local1)
                            While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
                            {
                                Store (XPRD (0xA5), Local2)
                                If (LEqual (And (Local2, 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LGreaterEqual (And (Local2, 0xFF), 0x04))
                                {
                                    Store (One, HPOK)
                                }
                                Decrement (Local1)
                            }
                            If (HPOK)
                            {
                                Store (And (XPRD (0xA5), 0xFF), Local2)
                                Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
                                If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
                                    Local3, 0x05))))
                                {
                                    Store (Zero, HPOK)
                                }
                            }
                            If (HPOK)
                            {
                                Store (0x07D0, Local1)
                                Store (Zero, HPOK)
                                While (LAnd (LNot (HPOK), Local1))
                                {
                                    Store (And (XPRD (0xA5), 0xFF), Local2)
                                    If (LEqual (Local2, 0x07))
                                    {
                                        Store (One, Local1)
                                        Store (XPDL (), Local4)
                                        If (Local4)
                                        {
                                            XPRT ()
                                            Decrement (Local5)
                                        }
                                    }
                                    If (LEqual (Local2, 0x10))
                                    {
                                        Store (One, HPOK)
                                    }
                                    Sleep (One)
                                    Decrement (Local1)
                                }
                            }
                        }
                    }
                    If (HPOK)
                    {
                        XPTR (Local0, Zero)
                        XPLP (Local0, Zero)
                        XPLL (Local0, Zero)
                    }
                    Return (Ones)
                }
                Device (VGA)
                {
                    Name (_ADR, Zero)
                    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)
                    {
                        Store (Arg0, DOSA)
                    }
                    Method (_DOD, 0, NotSerialized)
                    {
                        Name (DODL, Package (0x05)
                        {
                            0x00010100, 
                            0x00010110, 
                            0x0200, 
                            0x00010210, 
                            0x00010220
                        })
                        Return (DODL)
                    }
                    Device (LCD)
                    {
                        Name (_ADR, 0x0110)
                        Method (_BCL, 0, NotSerialized)
                        {
                            Return (Package (0x0A)
                            {
                                0x64, 
                                0x28, 
                                0x0A, 
                                0x14, 
                                0x1E, 
                                0x28, 
                                0x37, 
                                0x46, 
                                0x55, 
                                0x64
                            })
                        }
                        Method (_BCM, 1, Serialized)
                        {
                            Name (_T_0, Zero)
                            While (One)
                            {
                                Store (ToInteger (Arg0), _T_0)
                                If (LEqual (_T_0, 0x0A))
                                {
                                    Store (Zero, Local1)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x14))
                                    {
                                        Store (One, Local1)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x1E))
                                        {
                                            Store (0x02, Local1)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x28))
                                            {
                                                Store (0x03, Local1)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x37))
                                                {
                                                    Store (0x04, Local1)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x46))
                                                    {
                                                        Store (0x05, Local1)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_0, 0x55))
                                                        {
                                                            Store (0x06, Local1)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_0, 0x64))
                                                            {
                                                                Store (0x07, Local1)
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                Break
                            }
                            Store (ToInteger (Local1), Local0)
                            If (LGreaterEqual (TPOS, 0x40))
                            {
                                Store (ToInteger (Local1), ^^^^LPC0.EC0.BLVL)
                                ^^^^LPC0.EC0.SVBN ()
                            }
                        }
                        Method (_BQC, 0, Serialized)
                        {
                            Name (_T_0, Zero)
                            If (LGreaterEqual (TPOS, 0x40))
                            {
                                Store (^^^^LPC0.EC0.BLVL, Local0)
                                While (One)
                                {
                                    Store (ToInteger (Local0), _T_0)
                                    If (LEqual (_T_0, Zero))
                                    {
                                        Store (0x0A, Local1)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, One))
                                        {
                                            Store (0x14, Local1)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x02))
                                            {
                                                Store (0x1E, Local1)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x03))
                                                {
                                                    Store (0x28, Local1)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x04))
                                                    {
                                                        Store (0x37, Local1)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_0, 0x05))
                                                        {
                                                            Store (0x46, Local1)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_0, 0x06))
                                                            {
                                                                Store (0x55, Local1)
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (_T_0, 0x07))
                                                                {
                                                                    Store (0x64, Local1)
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    Break
                                }
                            }
                            Return (Local1)
                        }
                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (^^^^LPC0.EC0.NXT0)
                        }
                    }
                    Device (CRT)
                    {
                        Method (_ADR, 0, Serialized)
                        {
                            Return (0x0100)
                        }
                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (^^^^LPC0.EC0.NXT1)
                        }
                    }
                    Device (HDMI)
                    {
                        Method (_ADR, 0, Serialized)
                        {
                            Return (0x0210)
                        }
                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (^^^^LPC0.EC0.NXT2)
                        }
                    }
                    Name (ATIB, Buffer (0x0100) {})
                    Method (ATIF, 2, Serialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            Return (AF00 ())
                        }
                        If (LEqual (Arg0, One))
                        {
                            Return (AF01 ())
                        }
                        If (LEqual (Arg0, 0x02))
                        {
                            Return (AF02 ())
                        }
                        If (LEqual (Arg0, 0x03))
                        {
                            Return (AF03 (DerefOf (Index (Arg1, 0x02)), DerefOf (Index (Arg1, 
                                0x04))))
                        }
                        If (LEqual (Arg0, 0x0F))
                        {
                            Return (AF15 ())
                        }
                        Else
                        {
                            CreateWordField (ATIB, Zero, SSZE)
                            CreateWordField (ATIB, 0x02, VERN)
                            CreateDWordField (ATIB, 0x04, NMSK)
                            CreateDWordField (ATIB, 0x08, SFUN)
                            Store (Zero, SSZE)
                            Store (Zero, VERN)
                            Store (Zero, NMSK)
                            Store (Zero, SFUN)
                            Return (ATIB)
                        }
                    }
                    Method (AF00, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, VERN)
                        CreateDWordField (ATIB, 0x04, NMSK)
                        CreateDWordField (ATIB, 0x08, SFUN)
                        Store (0x0C, SSZE)
                        Store (One, VERN)
                        If (LEqual (^^^VGA.PXEN, 0x80000000))
                        {
                            Store (0x11, NMSK)
                        }
                        Else
                        {
                            Store (0x51, NMSK)
                        }
                        Store (NMSK, MSKN)
                        Store (0x4007, SFUN)
                        Return (ATIB)
                    }
                    Method (AF01, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, VMSK)
                        CreateDWordField (ATIB, 0x06, FLGS)
                        Store (0x0A, SSZE)
                        Store (0x03, VMSK)
                        Store (One, FLGS)
                        Return (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)
                        Store (0x0C, SSZE)
                        Store (PSBR, PSBI)
                        If (PDSW)
                        {
                            Store (Zero, PDSW)
                        }
                        If (PEXM)
                        {
                            Store (SEXM, EXPM)
                            Store (Zero, SEXM)
                            Store (Zero, PEXM)
                        }
                        If (PTHR)
                        {
                            Store (STHG, THRM)
                            Store (STHI, THID)
                            Store (Zero, STHG)
                            Store (Zero, STHI)
                            Store (Zero, PTHR)
                        }
                        If (PFPS)
                        {
                            Store (SFPG, FPWR)
                            Store (SFPI, FPWR)
                            Store (Zero, SFPG)
                            Store (Zero, SFPI)
                            Store (Zero, PFPS)
                        }
                        If (PSPS)
                        {
                            Store (SSPS, SPWR)
                            Store (Zero, PSPS)
                        }
                        If (PXPS)
                        {
                            Store (Zero, PXPS)
                        }
                        Return (ATIB)
                    }
                    Method (AF03, 2, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, SSDP)
                        CreateWordField (ATIB, 0x04, SCDP)
                        Store (Arg0, SSDP)
                        Store (Arg1, SCDP)
                        Name (NXTD, 0x06)
                        Name (CIDX, 0x06)
                        Store (SSDP, Local1)
                        And (Local1, 0x8B, Local1)
                        Store (SCDP, Local2)
                        If (CondRefOf (\_SB.LID._LID, Local4))
                        {
                            And (Local2, 0xFFFFFFFE, Local2)
                            Or (Local2, ^^^^LID._LID (), Local2)
                        }
                        Else
                        {
                            Or (Local2, One, Local2)
                        }
                        Store (Local2, P80H)
                        Store (Zero, Local0)
                        While (LLess (Local0, SizeOf (SACT)))
                        {
                            Store (DerefOf (Index (SACT, Local0)), Local3)
                            If (LEqual (Local3, Local1))
                            {
                                Store (Local0, CIDX)
                                Store (SizeOf (SACT), Local0)
                            }
                            Else
                            {
                                Increment (Local0)
                            }
                        }
                        Store (CIDX, Local0)
                        While (LLess (Local0, SizeOf (SACT)))
                        {
                            Increment (Local0)
                            If (LEqual (Local0, SizeOf (SACT)))
                            {
                                Store (Zero, Local0)
                            }
                            Store (DerefOf (Index (SACT, Local0)), Local3)
                            If (LEqual (And (Local3, Local2), Local3))
                            {
                                Store (Local0, NXTD)
                                Store (SizeOf (SACT), Local0)
                            }
                        }
                        If (LEqual (NXTD, SizeOf (SACT)))
                        {
                            Store (Zero, SSDP)
                        }
                        Else
                        {
                            Store (NXTD, Local0)
                            Store (DerefOf (Index (SACT, Local0)), Local3)
                            And (SSDP, 0xFFFFFFF4, SSDP)
                            Or (SSDP, Local3, SSDP)
                        }
                        Store (0x04, SSZE)
                        Store (SSDP, P80H)
                        Return (ATIB)
                    }
                    Method (AFN0, 0, Serialized)
                    {
                        If (And (MSKN, One))
                        {
                            CreateBitField (PSBR, Zero, PDSW)
                            Store (One, PDSW)
                            Notify (VGA, 0x81)
                        }
                    }
                    Method (AFN3, 2, Serialized)
                    {
                        If (And (MSKN, 0x08))
                        {
                            Store (Arg0, Local0)
                            Store (Local0, SFPI)
                            Store (Arg1, Local0)
                            Store (And (Local0, 0x03, Local0), SFPG)
                            CreateBitField (PSBR, 0x03, PFPS)
                            Store (One, PFPS)
                            Notify (VGA, 0x81)
                        }
                    }
                    Method (AFN4, 1, Serialized)
                    {
                        If (And (MSKN, 0x10))
                        {
                            Store (Arg0, Local0)
                            Store (SSPS, Local1)
                            Store (Local0, SSPS)
                            If (LEqual (Local0, Local1)) {}
                            Else
                            {
                                CreateBitField (PSBR, 0x04, PSPS)
                                Store (One, PSPS)
                                Notify (VGA, 0x81)
                            }
                        }
                    }
                    Method (AFN5, 0, Serialized)
                    {
                        If (And (MSKN, 0x20))
                        {
                            CreateBitField (PSBR, 0x05, PDCC)
                            Store (One, PDCC)
                            Notify (VGA, 0x81)
                        }
                    }
                    Method (AFN6, 0, Serialized)
                    {
                        If (And (MSKN, 0x40))
                        {
                            CreateBitField (PSBR, 0x06, PXPS)
                            Store (One, PXPS)
                            Notify (VGA, 0x81)
                        }
                    }
                    Method (AF15, 0, NotSerialized)
                    {
                        Store (0xFF, P80H)
                        CreateWordField (ATIB, 0x02, DSZE)
                        Store (0x08, DSZE)
                        Acquire (^^^LPC0.PSMX, 0xFFFF)
                        Store (0x8D, BCMD)
                        Store (0x0F, DID)
                        Store (ATIB, INFO)
                        BSMI (Zero)
                        Store (INFO, ATIB)
                        Release (^^^LPC0.PSMX)
                        Return (ATIB)
                    }
                    Name (AT00, Buffer (0xFF) {})
                    Name (AT01, Buffer (0x03) {})
                    Method (ATCS, 2, Serialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            ATC0 ()
                        }
                        If (LEqual (Arg0, One))
                        {
                            ATC1 ()
                        }
                        If (LEqual (Arg0, 0x02))
                        {
                            ATC2 (Arg1)
                        }
                        If (LEqual (Arg0, 0x03))
                        {
                            ATC3 ()
                        }
                        If (LEqual (Arg0, 0x04))
                        {
                            ATC4 (Arg1)
                        }
                        Return (AT00)
                    }
                    Method (ATC0, 0, NotSerialized)
                    {
                        CreateWordField (AT00, Zero, SZZE)
                        CreateWordField (AT00, 0x02, INTF)
                        CreateDWordField (AT00, 0x04, SUPP)
                        Store (0x08, SZZE)
                        Store (One, INTF)
                        Store (0x0F, SUPP)
                    }
                    Method (ATC1, 0, Serialized)
                    {
                        CreateWordField (AT00, Zero, SZZE)
                        CreateDWordField (AT00, 0x02, VFMK)
                        CreateDWordField (AT00, 0x06, FLAG)
                        CreateField (AT00, 0x30, One, DOCK)
                        Store (0x0A, SZZE)
                        Store (One, VFMK)
                        Store (Zero, FLAG)
                        Store (One, DOCK)
                    }
                    Method (ATC2, 1, Serialized)
                    {
                        CreateField (Arg0, 0x10, 0x03, FUCC)
                        CreateField (Arg0, 0x13, 0x06, DEVV)
                        CreateByteField (Arg0, 0x03, BUSS)
                        CreateDWordField (Arg0, 0x04, VFMK)
                        CreateDWordField (Arg0, 0x06, FLAG)
                        CreateField (Arg0, 0x30, One, ADVC)
                        CreateField (Arg0, 0x31, One, WFCM)
                        CreateByteField (Arg0, 0x08, RQST)
                        CreateByteField (Arg0, 0x09, PFRQ)
                        CreateWordField (AT00, Zero, SZZE)
                        CreateByteField (AT00, 0x02, RETV)
                        Store (0x03, SZZE)
                        Store (One, RETV)
                        Store (ALIB (0x02, Arg0, AT00))
                    }
                    Method (ATC3, 0, Serialized)
                    {
                        CreateWordField (AT00, Zero, SZZE)
                        CreateByteField (AT00, 0x02, RETV)
                        CreateWordField (AT01, Zero, SZZB)
                        CreateByteField (AT01, 0x02, PSPP)
                        Store (0x03, SZZE)
                        Store (One, RETV)
                        Store (0x03, SZZB)
                        Store (One, PSPP)
                        Store (ALIB (0x03, AT01, AT00))
                    }
                    Method (ATC4, 1, Serialized)
                    {
                        CreateField (Arg0, 0x10, 0x03, FUCC)
                        CreateField (Arg0, 0x13, 0x06, DEVV)
                        CreateByteField (Arg0, 0x03, BUSS)
                        CreateByteField (Arg0, 0x04, NULN)
                        CreateWordField (AT00, Zero, SZZE)
                        CreateByteField (AT00, 0x02, NULM)
                        Store (0x03, SZZE)
                        Store (One, NULM)
                        Store (ALIB (0x04, Arg0, AT00))
                    }
                }
                Device (HDAU)
                {
                    Name (_ADR, One)
                    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)
                Name (_PRW, Package (0x02)
                {
                    0x08, 
                    0x04
                })
                Name (PR03, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKA, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKB, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKC, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKD, 
                        Zero
                    }
                })
                Name (AR03, 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
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR03)
                    }
                    Return (PR03)
                }
                OperationRegion (XPEX, SystemMemory, 0xF8020100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28), 
                    VC0S,   32
                }
                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 (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32, 
                    Offset (0x18), 
                    SBUS,   32
                }
                Method (XPDL, 0, NotSerialized)
                {
                    If (And (VC0S, 0x00020000))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Mutex (XPPM, 0x00)
                Method (XPRD, 1, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (XPID, Local0)
                    Store (Zero, XPIR)
                    Release (XPPM)
                    Return (Local0)
                }
                Method (XPWR, 2, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (Arg1, XPID)
                    Store (Zero, XPIR)
                    Release (XPPM)
                }
                Method (XPRT, 0, NotSerialized)
                {
                    Store (XPRD (0xA2), Local0)
                    And (Local0, 0xFFFFFFF8, Local0)
                    ShiftRight (Local0, 0x04, Local1)
                    And (Local1, 0x07, Local1)
                    Or (Local0, Local1, Local0)
                    Or (Local0, 0x0100, Local0)
                    XPWR (0xA2, Local0)
                }
                Method (XPR2, 0, NotSerialized)
                {
                    Store (LKCN, Local0)
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    Or (Local0, 0x20, Local0)
                    Store (Local0, LKCN)
                    Store (0x64, Local1)
                    Store (One, Local2)
                    While (LAnd (Local1, Local2))
                    {
                        Sleep (One)
                        Store (LKST, Local3)
                        If (And (Local3, 0x0800))
                        {
                            Decrement (Local1)
                        }
                        Else
                        {
                            Store (Zero, Local2)
                        }
                    }
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    If (LNot (Local2))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Method (XPPB, 0, NotSerialized)
                {
                    Store (_ADR, Local0)
                    Store (ShiftRight (Local0, 0x10), Local1)
                    Store (ShiftLeft (Local1, 0x03), Local1)
                    Store (And (Local0, 0x0F), Local2)
                    Store (Or (Local1, Local2), Local3)
                    Return (Local3)
                }
                Method (XPPR, 1, NotSerialized)
                {
                    Name (HPOK, Zero)
                    Store (Zero, HPOK)
                    Store (ShiftLeft (XPPB (), 0x03), Local0)
                    If (Arg0)
                    {
                        XPLL (Local0, One)
                        XPLP (Local0, One)
                        Sleep (0xC8)
                        XPTR (Local0, One)
                        Store (0x0F, Local5)
                        While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
                        {
                            Store (One, PDC2)
                            Store (0x28, Local1)
                            While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
                            {
                                Store (XPRD (0xA5), Local2)
                                If (LEqual (And (Local2, 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LGreaterEqual (And (Local2, 0xFF), 0x04))
                                {
                                    Store (One, HPOK)
                                }
                                Decrement (Local1)
                            }
                            If (HPOK)
                            {
                                Store (And (XPRD (0xA5), 0xFF), Local2)
                                Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
                                If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
                                    Local3, 0x05))))
                                {
                                    Store (Zero, HPOK)
                                }
                            }
                            If (HPOK)
                            {
                                Store (0x07D0, Local1)
                                Store (Zero, HPOK)
                                While (LAnd (LNot (HPOK), Local1))
                                {
                                    Store (And (XPRD (0xA5), 0xFF), Local2)
                                    If (LEqual (Local2, 0x07))
                                    {
                                        Store (One, Local1)
                                        Store (XPDL (), Local4)
                                        If (Local4)
                                        {
                                            XPRT ()
                                            Decrement (Local5)
                                        }
                                    }
                                    If (LEqual (Local2, 0x10))
                                    {
                                        Store (One, HPOK)
                                    }
                                    Sleep (One)
                                    Decrement (Local1)
                                }
                            }
                        }
                    }
                    If (HPOK)
                    {
                        XPTR (Local0, Zero)
                        XPLP (Local0, Zero)
                        XPLL (Local0, Zero)
                    }
                    Return (Ones)
                }
                Device (XPDV)
                {
                    Name (_ADR, Zero)
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32, 
                        PCMS,   32
                    }
                }
            }
            Device (PB5)
            {
                Name (_ADR, 0x00050000)
                Method (_PRW, 0, NotSerialized)
                {
                    If (LEqual (WKPM, One))
                    {
                        Return (GPRW (0x08, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }
                Name (PR04, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKB, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKC, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKD, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKA, 
                        Zero
                    }
                })
                Name (AR04, 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
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR04)
                    }
                    Return (PR04)
                }
                OperationRegion (XPEX, SystemMemory, 0xF8028100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28), 
                    VC0S,   32
                }
                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 (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32, 
                    Offset (0x18), 
                    SBUS,   32
                }
                Method (XPDL, 0, NotSerialized)
                {
                    If (And (VC0S, 0x00020000))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Mutex (XPPM, 0x00)
                Method (XPRD, 1, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (XPID, Local0)
                    Store (Zero, XPIR)
                    Release (XPPM)
                    Return (Local0)
                }
                Method (XPWR, 2, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (Arg1, XPID)
                    Store (Zero, XPIR)
                    Release (XPPM)
                }
                Method (XPRT, 0, NotSerialized)
                {
                    Store (XPRD (0xA2), Local0)
                    And (Local0, 0xFFFFFFF8, Local0)
                    ShiftRight (Local0, 0x04, Local1)
                    And (Local1, 0x07, Local1)
                    Or (Local0, Local1, Local0)
                    Or (Local0, 0x0100, Local0)
                    XPWR (0xA2, Local0)
                }
                Method (XPR2, 0, NotSerialized)
                {
                    Store (LKCN, Local0)
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    Or (Local0, 0x20, Local0)
                    Store (Local0, LKCN)
                    Store (0x64, Local1)
                    Store (One, Local2)
                    While (LAnd (Local1, Local2))
                    {
                        Sleep (One)
                        Store (LKST, Local3)
                        If (And (Local3, 0x0800))
                        {
                            Decrement (Local1)
                        }
                        Else
                        {
                            Store (Zero, Local2)
                        }
                    }
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    If (LNot (Local2))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Method (XPPB, 0, NotSerialized)
                {
                    Store (_ADR, Local0)
                    Store (ShiftRight (Local0, 0x10), Local1)
                    Store (ShiftLeft (Local1, 0x03), Local1)
                    Store (And (Local0, 0x0F), Local2)
                    Store (Or (Local1, Local2), Local3)
                    Return (Local3)
                }
                Method (XPPR, 1, NotSerialized)
                {
                    Name (HPOK, Zero)
                    Store (Zero, HPOK)
                    Store (ShiftLeft (XPPB (), 0x03), Local0)
                    If (Arg0)
                    {
                        XPLL (Local0, One)
                        XPLP (Local0, One)
                        Sleep (0xC8)
                        XPTR (Local0, One)
                        Store (0x0F, Local5)
                        While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
                        {
                            Store (One, PDC2)
                            Store (0x28, Local1)
                            While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
                            {
                                Store (XPRD (0xA5), Local2)
                                If (LEqual (And (Local2, 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LGreaterEqual (And (Local2, 0xFF), 0x04))
                                {
                                    Store (One, HPOK)
                                }
                                Decrement (Local1)
                            }
                            If (HPOK)
                            {
                                Store (And (XPRD (0xA5), 0xFF), Local2)
                                Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
                                If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
                                    Local3, 0x05))))
                                {
                                    Store (Zero, HPOK)
                                }
                            }
                            If (HPOK)
                            {
                                Store (0x07D0, Local1)
                                Store (Zero, HPOK)
                                While (LAnd (LNot (HPOK), Local1))
                                {
                                    Store (And (XPRD (0xA5), 0xFF), Local2)
                                    If (LEqual (Local2, 0x07))
                                    {
                                        Store (One, Local1)
                                        Store (XPDL (), Local4)
                                        If (Local4)
                                        {
                                            XPRT ()
                                            Decrement (Local5)
                                        }
                                    }
                                    If (LEqual (Local2, 0x10))
                                    {
                                        Store (One, HPOK)
                                    }
                                    Sleep (One)
                                    Decrement (Local1)
                                }
                            }
                        }
                    }
                    If (HPOK)
                    {
                        XPTR (Local0, Zero)
                        XPLP (Local0, Zero)
                        XPLL (Local0, Zero)
                    }
                    Return (Ones)
                }
                Device (XPDV)
                {
                    Name (_ADR, Zero)
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32, 
                        PCMS,   32
                    }
                }
            }
            Device (PB6)
            {
                Name (_ADR, 0x00060000)
                Method (_PRW, 0, NotSerialized)
                {
                    If (LEqual (WKPM, One))
                    {
                        Return (GPRW (0x08, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }
                Name (PR05, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKC, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKD, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKA, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKB, 
                        Zero
                    }
                })
                Name (AR05, 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
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR05)
                    }
                    Return (PR05)
                }
                OperationRegion (XPEX, SystemMemory, 0xF8030100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28), 
                    VC0S,   32
                }
                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 (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32, 
                    Offset (0x18), 
                    SBUS,   32
                }
                Method (XPDL, 0, NotSerialized)
                {
                    If (And (VC0S, 0x00020000))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Mutex (XPPM, 0x00)
                Method (XPRD, 1, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (XPID, Local0)
                    Store (Zero, XPIR)
                    Release (XPPM)
                    Return (Local0)
                }
                Method (XPWR, 2, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (Arg1, XPID)
                    Store (Zero, XPIR)
                    Release (XPPM)
                }
                Method (XPRT, 0, NotSerialized)
                {
                    Store (XPRD (0xA2), Local0)
                    And (Local0, 0xFFFFFFF8, Local0)
                    ShiftRight (Local0, 0x04, Local1)
                    And (Local1, 0x07, Local1)
                    Or (Local0, Local1, Local0)
                    Or (Local0, 0x0100, Local0)
                    XPWR (0xA2, Local0)
                }
                Method (XPR2, 0, NotSerialized)
                {
                    Store (LKCN, Local0)
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    Or (Local0, 0x20, Local0)
                    Store (Local0, LKCN)
                    Store (0x64, Local1)
                    Store (One, Local2)
                    While (LAnd (Local1, Local2))
                    {
                        Sleep (One)
                        Store (LKST, Local3)
                        If (And (Local3, 0x0800))
                        {
                            Decrement (Local1)
                        }
                        Else
                        {
                            Store (Zero, Local2)
                        }
                    }
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    If (LNot (Local2))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Method (XPPB, 0, NotSerialized)
                {
                    Store (_ADR, Local0)
                    Store (ShiftRight (Local0, 0x10), Local1)
                    Store (ShiftLeft (Local1, 0x03), Local1)
                    Store (And (Local0, 0x0F), Local2)
                    Store (Or (Local1, Local2), Local3)
                    Return (Local3)
                }
                Method (XPPR, 1, NotSerialized)
                {
                    Name (HPOK, Zero)
                    Store (Zero, HPOK)
                    Store (ShiftLeft (XPPB (), 0x03), Local0)
                    If (Arg0)
                    {
                        XPLL (Local0, One)
                        XPLP (Local0, One)
                        Sleep (0xC8)
                        XPTR (Local0, One)
                        Store (0x0F, Local5)
                        While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
                        {
                            Store (One, PDC2)
                            Store (0x28, Local1)
                            While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
                            {
                                Store (XPRD (0xA5), Local2)
                                If (LEqual (And (Local2, 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LGreaterEqual (And (Local2, 0xFF), 0x04))
                                {
                                    Store (One, HPOK)
                                }
                                Decrement (Local1)
                            }
                            If (HPOK)
                            {
                                Store (And (XPRD (0xA5), 0xFF), Local2)
                                Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
                                If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
                                    Local3, 0x05))))
                                {
                                    Store (Zero, HPOK)
                                }
                            }
                            If (HPOK)
                            {
                                Store (0x07D0, Local1)
                                Store (Zero, HPOK)
                                While (LAnd (LNot (HPOK), Local1))
                                {
                                    Store (And (XPRD (0xA5), 0xFF), Local2)
                                    If (LEqual (Local2, 0x07))
                                    {
                                        Store (One, Local1)
                                        Store (XPDL (), Local4)
                                        If (Local4)
                                        {
                                            XPRT ()
                                            Decrement (Local5)
                                        }
                                    }
                                    If (LEqual (Local2, 0x10))
                                    {
                                        Store (One, HPOK)
                                    }
                                    Sleep (One)
                                    Decrement (Local1)
                                }
                            }
                        }
                    }
                    If (HPOK)
                    {
                        XPTR (Local0, Zero)
                        XPLP (Local0, Zero)
                        XPLL (Local0, Zero)
                    }
                    Return (Ones)
                }
                Device (XPDV)
                {
                    Name (_ADR, Zero)
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32, 
                        PCMS,   32
                    }
                }
            }
            Device (PB7)
            {
                Name (_ADR, 0x00070000)
                Method (_PRW, 0, NotSerialized)
                {
                    If (LEqual (WKPM, One))
                    {
                        Return (GPRW (0x08, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x08, Zero))
                    }
                }
                Name (PR06, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKD, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKA, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKB, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKC, 
                        Zero
                    }
                })
                Name (AR06, 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
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR06)
                    }
                    Return (PR06)
                }
                OperationRegion (XPEX, SystemMemory, 0xF8038100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28), 
                    VC0S,   32
                }
                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 (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32, 
                    Offset (0x18), 
                    SBUS,   32
                }
                Method (XPDL, 0, NotSerialized)
                {
                    If (And (VC0S, 0x00020000))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Mutex (XPPM, 0x00)
                Method (XPRD, 1, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (XPID, Local0)
                    Store (Zero, XPIR)
                    Release (XPPM)
                    Return (Local0)
                }
                Method (XPWR, 2, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (Arg1, XPID)
                    Store (Zero, XPIR)
                    Release (XPPM)
                }
                Method (XPRT, 0, NotSerialized)
                {
                    Store (XPRD (0xA2), Local0)
                    And (Local0, 0xFFFFFFF8, Local0)
                    ShiftRight (Local0, 0x04, Local1)
                    And (Local1, 0x07, Local1)
                    Or (Local0, Local1, Local0)
                    Or (Local0, 0x0100, Local0)
                    XPWR (0xA2, Local0)
                }
                Method (XPR2, 0, NotSerialized)
                {
                    Store (LKCN, Local0)
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    Or (Local0, 0x20, Local0)
                    Store (Local0, LKCN)
                    Store (0x64, Local1)
                    Store (One, Local2)
                    While (LAnd (Local1, Local2))
                    {
                        Sleep (One)
                        Store (LKST, Local3)
                        If (And (Local3, 0x0800))
                        {
                            Decrement (Local1)
                        }
                        Else
                        {
                            Store (Zero, Local2)
                        }
                    }
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    If (LNot (Local2))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
                Method (XPPB, 0, NotSerialized)
                {
                    Store (_ADR, Local0)
                    Store (ShiftRight (Local0, 0x10), Local1)
                    Store (ShiftLeft (Local1, 0x03), Local1)
                    Store (And (Local0, 0x0F), Local2)
                    Store (Or (Local1, Local2), Local3)
                    Return (Local3)
                }
                Method (XPPR, 1, NotSerialized)
                {
                    Name (HPOK, Zero)
                    Store (Zero, HPOK)
                    Store (ShiftLeft (XPPB (), 0x03), Local0)
                    If (Arg0)
                    {
                        XPLL (Local0, One)
                        XPLP (Local0, One)
                        Sleep (0xC8)
                        XPTR (Local0, One)
                        Store (0x0F, Local5)
                        While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
                        {
                            Store (One, PDC2)
                            Store (0x28, Local1)
                            While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
                            {
                                Store (XPRD (0xA5), Local2)
                                If (LEqual (And (Local2, 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
                                {
                                    Store (One, Local1)
                                }
                                If (LGreaterEqual (And (Local2, 0xFF), 0x04))
                                {
                                    Store (One, HPOK)
                                }
                                Decrement (Local1)
                            }
                            If (HPOK)
                            {
                                Store (And (XPRD (0xA5), 0xFF), Local2)
                                Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
                                If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
                                    Local3, 0x05))))
                                {
                                    Store (Zero, HPOK)
                                }
                            }
                            If (HPOK)
                            {
                                Store (0x07D0, Local1)
                                Store (Zero, HPOK)
                                While (LAnd (LNot (HPOK), Local1))
                                {
                                    Store (And (XPRD (0xA5), 0xFF), Local2)
                                    If (LEqual (Local2, 0x07))
                                    {
                                        Store (One, Local1)
                                        Store (XPDL (), Local4)
                                        If (Local4)
                                        {
                                            XPRT ()
                                            Decrement (Local5)
                                        }
                                    }
                                    If (LEqual (Local2, 0x10))
                                    {
                                        Store (One, HPOK)
                                    }
                                    Sleep (One)
                                    Decrement (Local1)
                                }
                            }
                        }
                    }
                    If (HPOK)
                    {
                        XPTR (Local0, Zero)
                        XPLP (Local0, Zero)
                        XPLL (Local0, Zero)
                    }
                    Return (Ones)
                }
                Device (XPDV)
                {
                    Name (_ADR, Zero)
                    OperationRegion (PCFG, PCI_Config, Zero, 0xFF)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32, 
                        PCMS,   32, 
                        Offset (0xDC), 
                        DISF,   32
                    }
                }
            }
            Device (SPB0)
            {
                Name (_ADR, 0x00150000)
                Name (_PRW, Package (0x02)
                {
                    0x08, 
                    0x04
                })
                Name (PR0A, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKC, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKD, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKA, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKB, 
                        Zero
                    }
                })
                Name (AR0A, 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
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR0A)
                    }
                    Return (PR0A)
                }
                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32, 
                    PCMS,   32, 
                    Offset (0x18), 
                    SBUS,   32
                }
                Device (XPDV)
                {
                    Name (_ADR, Zero)
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32, 
                        PCMS,   32
                    }
                }
            }
            Device (SPB1)
            {
                Name (_ADR, 0x00150001)
                Name (_PRW, Package (0x02)
                {
                    0x08, 
                    0x04
                })
                Name (PR0B, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKD, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKA, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKB, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKC, 
                        Zero
                    }
                })
                Name (AR0B, 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
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR0B)
                    }
                    Return (PR0B)
                }
                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32, 
                    PCMS,   32, 
                    Offset (0x18), 
                    SBUS,   32
                }
                Device (XPDV)
                {
                    Name (_ADR, Zero)
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32, 
                        PCMS,   32
                    }
                }
            }
            Device (SPB2)
            {
                Name (_ADR, 0x00150002)
                Name (_PRW, Package (0x02)
                {
                    0x08, 
                    0x04
                })
                Name (PR0C, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKA, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKB, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKC, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKD, 
                        Zero
                    }
                })
                Name (AR0C, 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
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR0C)
                    }
                    Return (PR0C)
                }
                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32, 
                    PCMS,   32, 
                    Offset (0x18), 
                    SBUS,   32
                }
                Device (XPDV)
                {
                    Name (_ADR, Zero)
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32, 
                        PCMS,   32
                    }
                }
            }
            Device (SPB3)
            {
                Name (_ADR, 0x00150003)
                Name (_PRW, Package (0x02)
                {
                    0x08, 
                    0x04
                })
                Name (PR0D, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKB, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKC, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKD, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKA, 
                        Zero
                    }
                })
                Name (AR0D, 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
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR0D)
                    }
                    Return (PR0D)
                }
                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32, 
                    PCMS,   32, 
                    Offset (0x18), 
                    SBUS,   32
                }
                Device (XPDV)
                {
                    Name (_ADR, Zero)
                    OperationRegion (PCFG, PCI_Config, Zero, 0x08)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32, 
                        PCMS,   32
                    }
                }
            }
            Device (HPET)
            {
                Name (_HID, EisaId ("PNP0103"))
                Method (_STA, 0, NotSerialized)
                {
                    If (LEqual (And (HPAD, 0x03), 0x03))
                    {
                        If (LGreaterEqual (OSTB, 0x40))
                        {
                            Return (0x0F)
                        }
                        Store (And (HPAD, 0xFFFFFFE0), HPAD)
                        Return (One)
                    }
                    Return (One)
                }
                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUF0, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {0}
                        IRQNoFlags ()
                            {8}
                        Memory32Fixed (ReadOnly,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            _Y03)
                    })
                    CreateDWordField (BUF0, \_SB.PCI0.HPET._CRS._Y03._BAS, HPEB)
                    Store (HPAD, Local0)
                    And (Local0, 0xFFFFFC00, HPEB)
                    Return (BUF0)
                }
            }
            Device (AZAL)
            {
                Name (_ADR, 0x00140002)
                OperationRegion (PCI, PCI_Config, Zero, 0x0100)
                Field (PCI, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x42), 
                    DNSP,   1, 
                    DNSO,   1, 
                    ENSR,   1
                }
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x1B, 0x03))
                }
            }
            Device (GEC)
            {
                Name (_ADR, 0x00140006)
                Name (_PRW, Package (0x02)
                {
                    0x1A, 
                    0x04
                })
            }
            Device (OHC1)
            {
                Name (_ADR, 0x00120000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x18, 0x03))
                }
                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }
                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        If (^^LPC0.EC0.USCE)
                        {
                            Store (One, ^^LPC0.EC0.USNV)
                            Store (One, ^^SMBS.USRE)
                        }
                        Else
                        {
                            Store (One, ^^LPC0.EC0.USNV)
                            Store (One, ^^LPC0.EC0.USCV)
                            Store (One, ^^SMBS.USRE)
                        }
                    }
                    Else
                    {
                        If (^^LPC0.EC0.USCE)
                        {
                            Store (Zero, ^^LPC0.EC0.USNV)
                            Store (Zero, ^^SMBS.USRE)
                        }
                        Else
                        {
                            Store (Zero, ^^LPC0.EC0.USNV)
                            Store (Zero, ^^LPC0.EC0.USCV)
                            Store (Zero, ^^SMBS.USRE)
                        }
                    }
                }
            }
            Device (OHC2)
            {
                Name (_ADR, 0x00130000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x18, 0x03))
                }
                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }
                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }
            }
            Device (OHC3)
            {
                Name (_ADR, 0x00160000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x18, 0x03))
                }
                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }
                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }
            }
            Device (OHC4)
            {
                Name (_ADR, 0x00140005)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x18, 0x03))
                }
                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }
                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }
            }
            Device (EHC1)
            {
                Name (_ADR, 0x00120002)
                OperationRegion (PCFG, PCI_Config, 0xA0, 0x04)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    OSOW,   32
                }
                Method (STOS, 0, NotSerialized)
                {
                    Or (OSOW, 0x01000000, OSOW)
                }
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x18, 0x03))
                }
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        If (^^LPC0.EC0.USCE)
                        {
                            Store (One, ^^LPC0.EC0.USNV)
                            Store (One, ^^SMBS.USRE)
                        }
                        Else
                        {
                            Store (One, ^^LPC0.EC0.USNV)
                            Store (One, ^^LPC0.EC0.USCV)
                            Store (One, ^^SMBS.USRE)
                        }
                    }
                    Else
                    {
                        If (^^LPC0.EC0.USCE)
                        {
                            Store (Zero, ^^LPC0.EC0.USNV)
                            Store (Zero, ^^LPC0.EC0.USCV)
                            Store (Zero, ^^SMBS.USRE)
                        }
                        Else
                        {
                            Store (Zero, ^^LPC0.EC0.USNV)
                            Store (Zero, ^^SMBS.USRE)
                        }
                    }
                }
            }
            Device (EHC2)
            {
                Name (_ADR, 0x00130002)
                OperationRegion (PCFG, PCI_Config, 0xA0, 0x04)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    OSOW,   32
                }
                Method (STOS, 0, NotSerialized)
                {
                    Or (OSOW, 0x01000000, OSOW)
                }
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x18, 0x03))
                }
            }
            Device (EHC3)
            {
                Name (_ADR, 0x00160002)
                OperationRegion (PCFG, PCI_Config, 0xA0, 0x04)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    OSOW,   32
                }
                Method (STOS, 0, NotSerialized)
                {
                    Or (OSOW, 0x01000000, OSOW)
                }
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x18, 0x03))
                }
            }
            Device (XHC0)
            {
                Name (_ADR, 0x00100000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x18, 0x03))
                }
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        If (^^LPC0.EC0.USCE)
                        {
                            Store (One, ^^LPC0.EC0.USNV)
                            Store (One, ^^SMBS.USRE)
                        }
                        Else
                        {
                            Store (One, ^^LPC0.EC0.USNV)
                            Store (One, ^^LPC0.EC0.USCV)
                            Store (One, ^^SMBS.USRE)
                        }
                    }
                    Else
                    {
                        If (^^LPC0.EC0.USCE)
                        {
                            Store (Zero, ^^LPC0.EC0.USNV)
                            Store (Zero, ^^LPC0.EC0.USCV)
                            Store (Zero, ^^SMBS.USRE)
                        }
                        Else
                        {
                            Store (Zero, ^^LPC0.EC0.USNV)
                            Store (Zero, ^^SMBS.USRE)
                        }
                    }
                }
            }
            Device (XHC1)
            {
                Name (_ADR, 0x00100001)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x18, 0x03))
                }
            }
            Device (SMBS)
            {
                Name (_ADR, 0x00140000)
                OperationRegion (IRQF, PCI_Config, Zero, 0x0100)
                Field (IRQF, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x08), 
                    RVID,   8
                }
                OperationRegion (PMIO, SystemIO, 0x0CD6, 0x02)
                Field (PMIO, ByteAcc, NoLock, Preserve)
                {
                    INPM,   8, 
                    DAPM,   8
                }
                IndexField (INPM, DAPM, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x24), 
                    MMSO,   32, 
                    Offset (0x60), 
                    P1EB,   16, 
                    Offset (0xF0), 
                        ,   3, 
                    RSTU,   1, 
                        ,   3, 
                    USRE,   1
                }
                OperationRegion (ERMM, SystemMemory, MMSO, 0x1000)
                Field (ERMM, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x105), 
                        ,   5, 
                    E006,   1, 
                    O006,   1, 
                    I006,   1, 
                        ,   5, 
                    E007,   1, 
                    O007,   1, 
                    I007,   1, 
                    Offset (0x10A), 
                        ,   5, 
                    E011,   1, 
                    O011,   1, 
                    I011,   1, 
                        ,   5, 
                    E012,   1, 
                    O012,   1, 
                    I012,   1, 
                        ,   5, 
                    E013,   1, 
                    O013,   1, 
                    I013,   1, 
                        ,   5, 
                    E014,   1, 
                    O014,   1, 
                    I014,   1, 
                        ,   5, 
                    E015,   1, 
                    O015,   1, 
                    I015,   1, 
                        ,   5, 
                    E016,   1, 
                    O016,   1, 
                    I016,   1, 
                    Offset (0x113), 
                        ,   5, 
                    E020,   1, 
                    O020,   1, 
                    I020,   1, 
                        ,   5, 
                    E021,   1, 
                    O021,   1, 
                    I021,   1, 
                        ,   5, 
                    E022,   1, 
                    O022,   1, 
                    I022,   1, 
                        ,   5, 
                    E023,   1, 
                    O023,   1, 
                    I023,   1, 
                    Offset (0x11A), 
                        ,   5, 
                    E027,   1, 
                    O027,   1, 
                    I027,   1, 
                        ,   5, 
                    E028,   1, 
                    O028,   1, 
                    I028,   1, 
                    Offset (0x11F), 
                        ,   5, 
                    E032,   1, 
                    O032,   1, 
                    I032,   1, 
                    Offset (0x122), 
                        ,   5, 
                    E035,   1, 
                    O035,   1, 
                    I035,   1, 
                    Offset (0x128), 
                        ,   1, 
                    H041,   1, 
                    S041,   1, 
                    U041,   1, 
                    D041,   1, 
                    E041,   1, 
                    O041,   1, 
                    I041,   1, 
                    Offset (0x12B), 
                        ,   5, 
                    E044,   1, 
                    O044,   1, 
                    I044,   1, 
                        ,   5, 
                    E045,   1, 
                    O045,   1, 
                    I045,   1, 
                        ,   1, 
                    H046,   1, 
                    S046,   1, 
                    U046,   1, 
                    D046,   1, 
                    E046,   1, 
                    O046,   1, 
                    I046,   1, 
                    Offset (0x132), 
                        ,   5, 
                    E051,   1, 
                    O051,   1, 
                    I051,   1, 
                    Offset (0x134), 
                        ,   5, 
                    E053,   1, 
                    O053,   1, 
                    I053,   1, 
                    Offset (0x136), 
                        ,   5, 
                    E055,   1, 
                    O055,   1, 
                    I055,   1, 
                    Offset (0x138), 
                        ,   5, 
                    E057,   1, 
                    O057,   1, 
                    I057,   1, 
                        ,   5, 
                    E058,   1, 
                    O058,   1, 
                    I058,   1, 
                        ,   5, 
                    E059,   1, 
                    O059,   1, 
                    I059,   1, 
                    Offset (0x13C), 
                        ,   1, 
                    H061,   1, 
                    S061,   1, 
                    U061,   1, 
                    D061,   1, 
                    E061,   1, 
                    O061,   1, 
                    I061,   1, 
                        ,   1, 
                    H062,   1, 
                    S062,   1, 
                    U062,   1, 
                    D062,   1, 
                    E062,   1, 
                    O062,   1, 
                    I062,   1, 
                        ,   1, 
                    H063,   1, 
                    S063,   1, 
                    U063,   1, 
                    D063,   1, 
                    E063,   1, 
                    O063,   1, 
                    I063,   1, 
                        ,   1, 
                    H064,   1, 
                    S064,   1, 
                    U064,   1, 
                    D064,   1, 
                    E064,   1, 
                    O064,   1, 
                    I064,   1, 
                    Offset (0x141), 
                        ,   5, 
                    E066,   1, 
                    O066,   1, 
                    I066,   1, 
                    Offset (0x162), 
                        ,   7, 
                    GE03,   1, 
                        ,   7, 
                    GE04,   1, 
                        ,   7, 
                    GE05,   1, 
                    Offset (0x16A), 
                        ,   7, 
                    GE09,   1, 
                        ,   7, 
                    GE12,   1, 
                    Offset (0x16D), 
                        ,   7, 
                    GE14,   1, 
                        ,   7, 
                    GE15,   1, 
                        ,   7, 
                    GE16,   1, 
                    Offset (0x175), 
                        ,   7, 
                    GE22,   1, 
                    Offset (0x1A5), 
                        ,   5, 
                    E166,   1, 
                    O166,   1, 
                    I166,   1, 
                    Offset (0x1A9), 
                        ,   5, 
                    E170,   1, 
                    O170,   1, 
                    I170,   1, 
                    Offset (0x1AE), 
                        ,   5, 
                    E175,   1, 
                    O175,   1, 
                    I175,   1, 
                        ,   5, 
                    E176,   1, 
                    O176,   1, 
                    I176,   1, 
                        ,   5, 
                    E177,   1, 
                    O177,   1, 
                    I177,   1, 
                        ,   5, 
                    E178,   1, 
                    O178,   1, 
                    I178,   1, 
                        ,   5, 
                    E179,   1, 
                    O179,   1, 
                    I179,   1, 
                        ,   5, 
                    E180,   1, 
                    O180,   1, 
                    I180,   1, 
                        ,   5, 
                    E181,   1, 
                    O181,   1, 
                    I181,   1, 
                        ,   5, 
                    E182,   1, 
                    O182,   1, 
                    I182,   1, 
                    Offset (0x1B7), 
                        ,   3, 
                    U184,   1, 
                    D184,   1, 
                    E184,   1, 
                    O184,   1, 
                    I184,   1, 
                    Offset (0x1C4), 
                        ,   5, 
                    E197,   1, 
                    O197,   1, 
                    I197,   1, 
                    Offset (0x1C7), 
                        ,   5, 
                    E200,   1, 
                    O200,   1, 
                    I200,   1, 
                    Offset (0x1FF), 
                        ,   1, 
                    G01S,   1, 
                        ,   3, 
                    G05S,   1, 
                        ,   8, 
                    G14S,   1, 
                    G15S,   1, 
                    G16S,   1, 
                        ,   5, 
                    G22S,   1, 
                    G23S,   1, 
                    Offset (0x203), 
                        ,   1, 
                    G01E,   1, 
                        ,   3, 
                    G05E,   1, 
                        ,   8, 
                    G14E,   1, 
                    G15E,   1, 
                    G16E,   1, 
                        ,   5, 
                    G22E,   1, 
                    G23E,   1, 
                    Offset (0x207), 
                        ,   1, 
                    G01T,   1, 
                        ,   3, 
                    G05T,   1, 
                        ,   8, 
                    G14T,   1, 
                    G15T,   1, 
                    G16T,   1, 
                        ,   5, 
                    G22T,   1, 
                    G23T,   1, 
                    Offset (0x20B), 
                        ,   1, 
                    G01L,   1, 
                        ,   3, 
                    G05L,   1, 
                        ,   9, 
                    G15L,   1, 
                    G16L,   1, 
                        ,   5, 
                    G22L,   1, 
                    G23L,   1, 
                    Offset (0x287), 
                        ,   1, 
                    CLPS,   1, 
                    Offset (0x298), 
                        ,   7, 
                    G15A,   1, 
                    Offset (0x2AF), 
                        ,   2, 
                    SLPS,   2, 
                    Offset (0x32B), 
                    SM0E,   1, 
                    Offset (0x32D), 
                        ,   1, 
                    SM0S,   2, 
                    Offset (0x361), 
                        ,   6, 
                    MT3A,   1, 
                    Offset (0x376), 
                    EPNM,   1, 
                    DPPF,   1, 
                    Offset (0x3BA), 
                        ,   6, 
                    PWDE,   1, 
                    Offset (0x3BD), 
                        ,   5, 
                    ALLS,   1, 
                    Offset (0x3C7), 
                        ,   2, 
                    TFTE,   1, 
                    Offset (0x3DE), 
                    BLNK,   2, 
                    Offset (0x3EF), 
                    PHYD,   1, 
                    Offset (0x3FF), 
                    F0CT,   8, 
                    F0MS,   8, 
                    F0FQ,   8, 
                    F0LD,   8, 
                    F0MD,   8, 
                    F0MP,   8, 
                    LT0L,   8, 
                    LT0H,   8, 
                    MT0L,   8, 
                    MT0H,   8, 
                    HT0L,   8, 
                    HT0H,   8, 
                    LRG0,   8, 
                    LHC0,   8, 
                    Offset (0x40F), 
                    F1CT,   8, 
                    F1MS,   8, 
                    F1FQ,   8, 
                    F1LD,   8, 
                    F1MD,   8, 
                    F1MP,   8, 
                    LT1L,   8, 
                    LT1H,   8, 
                    MT1L,   8, 
                    MT1H,   8, 
                    HT1L,   8, 
                    HT1H,   8, 
                    LRG1,   8, 
                    LHC1,   8, 
                    Offset (0x41F), 
                    F2CT,   8, 
                    F2MS,   8, 
                    F2FQ,   8, 
                    F2LD,   8, 
                    F2MD,   8, 
                    F2MP,   8, 
                    LT2L,   8, 
                    LT2H,   8, 
                    MT2L,   8, 
                    MT2H,   8, 
                    HT2L,   8, 
                    HT2H,   8, 
                    LRG2,   8, 
                    LHC2,   8, 
                    Offset (0x42F), 
                    F3CT,   8, 
                    F3MS,   8, 
                    F3FQ,   8, 
                    F3LD,   8, 
                    F3MD,   8, 
                    F3MP,   8, 
                    LT3L,   8, 
                    LT3H,   8, 
                    MT3L,   8, 
                    MT3H,   8, 
                    HT3L,   8, 
                    HT3H,   8, 
                    LRG3,   8, 
                    LHC3,   8, 
                    Offset (0x6FF), 
                    SEC,    8, 
                    Offset (0x701), 
                    MIN,    8, 
                    Offset (0xD06), 
                    MX07,   8, 
                    Offset (0xD0E), 
                    MX15,   8, 
                    MX16,   8, 
                    Offset (0xD14), 
                    MX21,   8, 
                    MX22,   8, 
                    MX23,   8, 
                    Offset (0xD1A), 
                    MX27,   8, 
                    MX28,   8, 
                    Offset (0xD1F), 
                    MX32,   8, 
                    Offset (0xD2B), 
                    MX44,   8, 
                    Offset (0xD34), 
                    MX53,   8, 
                    Offset (0xD38), 
                    MX57,   8, 
                    MX58,   8, 
                    MX59,   8, 
                    Offset (0xD41), 
                    MX66,   8, 
                    Offset (0xD65), 
                    M102,   8, 
                    Offset (0xD6D), 
                    M110,   8, 
                    Offset (0xDA9), 
                    M170,   8, 
                    Offset (0xDAE), 
                    M175,   8, 
                    M176,   8, 
                    M177,   8, 
                    Offset (0xDB3), 
                    M180,   8, 
                    Offset (0xDB5), 
                    M182,   8, 
                    Offset (0xDC4), 
                    M197,   8, 
                    Offset (0xDC7), 
                    M200,   8, 
                    Offset (0xDFF), 
                    MS00,   8, 
                    MS01,   8, 
                    MS02,   8, 
                    MS03,   8, 
                    MS04,   8, 
                    Offset (0xE3F), 
                    MS40,   8, 
                    Offset (0xE80), 
                        ,   2, 
                    ECES,   1
                }
                Mutex (SBX0, 0x00)
                OperationRegion (SMB0, SystemIO, 0x0B00, 0x10)
                Field (SMB0, ByteAcc, NoLock, Preserve)
                {
                    HST0,   8, 
                    SLV0,   8, 
                    CNT0,   8, 
                    CMD0,   8, 
                    ADD0,   8, 
                    DT00,   8, 
                    DT10,   8, 
                    BLK0,   8
                }
                Method (WBD0, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    Store (Zero, Local2)
                    Store (HST0, Local3)
                    Store (And (Local3, 0x80), Local1)
                    While (LNotEqual (Local1, 0x80))
                    {
                        If (LLess (Local0, 0x0A))
                        {
                            Store (0x18, Local2)
                            Store (Zero, Local1)
                        }
                        Else
                        {
                            Sleep (0x0A)
                            Subtract (Local0, 0x0A, Local0)
                            Store (HST0, Local3)
                            Store (And (Local3, 0x80), Local1)
                        }
                    }
                    If (LNotEqual (Local2, 0x18))
                    {
                        Store (And (HST0, 0x1C), Local1)
                        If (Local1)
                        {
                            Store (0x07, Local2)
                        }
                    }
                    Return (Local2)
                }
                Method (WTC0, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    Store (0x07, Local2)
                    Store (One, Local1)
                    While (LEqual (Local1, One))
                    {
                        Store (And (HST0, 0x1D), Local3)
                        If (LNotEqual (Local3, Zero))
                        {
                            If (LEqual (Local3, One))
                            {
                                If (LLess (Local0, 0x0A))
                                {
                                    Store (0x18, Local2)
                                    Store (Zero, Local1)
                                }
                                Else
                                {
                                    Sleep (0x0A)
                                    Subtract (Local0, 0x0A, Local0)
                                }
                            }
                            Else
                            {
                                Store (0x07, Local2)
                                Store (Zero, Local1)
                            }
                        }
                        Else
                        {
                            Store (Zero, Local2)
                            Store (Zero, Local1)
                        }
                    }
                    Store (Or (HST0, 0x1F), HST0)
                    Return (Local2)
                }
                Method (SBR0, 3, NotSerialized)
                {
                    Store (Package (0x03)
                        {
                            0x07, 
                            Zero, 
                            Zero
                        }, Local0)
                    Store (And (Arg0, 0x5F), Local4)
                    If (LNotEqual (Local4, 0x03))
                    {
                        If (LNotEqual (Local4, 0x05))
                        {
                            If (LNotEqual (Local4, 0x07))
                            {
                                If (LNotEqual (Local4, 0x09))
                                {
                                    If (LNotEqual (Local4, 0x0B))
                                    {
                                        Store (0x19, Index (Local0, Zero))
                                        Return (Local0)
                                    }
                                }
                            }
                        }
                    }
                    If (LEqual (Acquire (SBX0, 0xFFFF), Zero))
                    {
                        Store (Or (ShiftLeft (Arg1, One), One), ADD0)
                        Store (Arg2, CMD0)
                        Store (Or (HST0, 0x1F), HST0)
                        Store (And (Arg0, 0xA0), Local1)
                        Store (Or (And (CNT0, 0x5F), Local1), CNT0)
                        If (LEqual (Local4, 0x03))
                        {
                            Store (Or (And (CNT0, 0xA0), 0x40), CNT0)
                        }
                        If (LEqual (Local4, 0x05))
                        {
                            Store (Or (And (CNT0, 0xA0), 0x44), CNT0)
                        }
                        If (LEqual (Local4, 0x07))
                        {
                            Store (Or (And (CNT0, 0xA0), 0x48), CNT0)
                        }
                        If (LEqual (Local4, 0x09))
                        {
                            Store (Or (And (CNT0, 0xA0), 0x4C), CNT0)
                        }
                        If (LEqual (Local4, 0x0B))
                        {
                            Store (Or (HST0, 0x80), HST0)
                            Store (Zero, DT00)
                            Store (Or (And (CNT0, 0xA0), 0x54), CNT0)
                        }
                        Store (WTC0 (0x03E8), Local1)
                        Store (Local1, Index (Local0, Zero))
                        If (LEqual (Local1, Zero))
                        {
                            If (LEqual (Local4, 0x05))
                            {
                                Store (One, Index (Local0, One))
                                Store (DT00, Index (Local0, 0x02))
                            }
                            If (LEqual (Local4, 0x07))
                            {
                                Store (One, Index (Local0, One))
                                Store (DT00, Index (Local0, 0x02))
                            }
                            If (LEqual (Local4, 0x09))
                            {
                                Store (0x02, Index (Local0, One))
                                Store (DT10, Local2)
                                ShiftLeft (Local2, 0x08, Local2)
                                Add (Local2, DT00, Local2)
                                Store (Local2, Index (Local0, 0x02))
                            }
                            If (LEqual (Local4, 0x0B))
                            {
                                Store (WBD0 (0x01F4), Local1)
                                If (LNotEqual (Local1, Zero))
                                {
                                    Store (Local1, Index (Local0, Zero))
                                }
                                Else
                                {
                                    Store (DT00, Index (Local0, One))
                                    Store (DT00, Local1)
                                    Store (CNT0, Local2)
                                    Store (Zero, Local2)
                                    While (LLess (Local2, Local1))
                                    {
                                        Add (0x02, Local2, Local3)
                                        Store (BLK0, Index (Local0, Local3))
                                        Add (One, Local2, Local2)
                                    }
                                    Store (Or (HST0, 0x80), HST0)
                                }
                            }
                        }
                        Store (And (CNT0, 0x5F), CNT0)
                        Release (SBX0)
                    }
                    Return (Local0)
                }
                Method (SBW0, 5, NotSerialized)
                {
                    Store (Package (0x01)
                        {
                            0x07
                        }, Local0)
                    Store (And (Arg0, 0x5F), Local4)
                    If (LNotEqual (Local4, 0x02))
                    {
                        If (LNotEqual (Local4, 0x04))
                        {
                            If (LNotEqual (Local4, 0x06))
                            {
                                If (LNotEqual (Local4, 0x08))
                                {
                                    If (LNotEqual (Local4, 0x0A))
                                    {
                                        Store (0x19, Index (Local0, Zero))
                                        Return (Local0)
                                    }
                                }
                            }
                        }
                    }
                    If (LEqual (Acquire (SBX0, 0xFFFF), Zero))
                    {
                        Store (ShiftLeft (Arg1, One), ADD0)
                        Store (Arg2, CMD0)
                        Store (Or (HST0, 0x1F), HST0)
                        Store (And (Arg0, 0xA0), Local1)
                        Store (Or (And (CNT0, 0x5F), Local1), CNT0)
                        If (LEqual (Local4, 0x02))
                        {
                            Store (Or (And (CNT0, 0xA0), 0x40), CNT0)
                        }
                        If (LEqual (Local4, 0x04))
                        {
                            Store (Or (And (CNT0, 0xA0), 0x44), CNT0)
                        }
                        If (LEqual (Local4, 0x06))
                        {
                            Store (Arg4, DT00)
                            Store (Or (And (CNT0, 0xA0), 0x48), CNT0)
                        }
                        If (LEqual (Local4, 0x08))
                        {
                            And (Arg4, 0xFF, DT00)
                            ShiftRight (Arg4, 0x08, DT10)
                            Store (Or (And (CNT0, 0xA0), 0x4C), CNT0)
                        }
                        If (LEqual (Local4, 0x0A))
                        {
                            Store (Or (HST0, 0x80), HST0)
                            Store (CNT0, Local1)
                            Store (Arg3, DT00)
                            Store (Zero, Local2)
                            While (LLess (Local2, Arg3))
                            {
                                Store (Index (Arg4, Local2), BLK0)
                                Add (One, Local2, Local2)
                            }
                            Store (Or (And (CNT0, 0xA0), 0x54), CNT0)
                        }
                        Store (WTC0 (0x03E8), Index (Local0, Zero))
                        Store (And (CNT0, 0x5F), CNT0)
                        Release (SBX0)
                    }
                    Return (Local0)
                }
            }
            Device (LPC0)
            {
                Name (_ADR, 0x00140003)
                Mutex (PSMX, 0x00)
                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0081,             // Range Minimum
                            0x0081,             // Range Maximum
                            0x01,               // Alignment
                            0x0F,               // Length
                            )
                        IO (Decode16,
                            0x00C0,             // Range Minimum
                            0x00C0,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                        DMA (Compatibility, NotBusMaster, Transfer8_16, )
                            {4}
                    })
                }
                Device (COPR)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x00F0,             // Range Minimum
                            0x00F0,             // Range Maximum
                            0x01,               // Alignment
                            0x0F,               // Length
                            )
                        IRQNoFlags ()
                            {13}
                    })
                }
                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0020,             // Range Minimum
                            0x0020,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A0,             // Range Minimum
                            0x00A0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {2}
                    })
                }
                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        If (LEqual (And (HPAD, 0x03), 0x03))
                        {
                            Return (BUF0)
                        }
                        Return (BUF1)
                    }
                }
                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0061,             // Range Minimum
                            0x0061,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                    })
                }
                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {0}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        If (LEqual (And (HPAD, 0x03), 0x03))
                        {
                            Return (BUF0)
                        }
                        Return (BUF1)
                    }
                }
                Device (KBC0)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {1}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LNotEqual (MYOS, 0x07DC))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }
                }
                Device (KBCE)
                {
                    Name (_HID, EisaId ("TOS1102"))
                    Name (_CID, EisaId ("PNP0303"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {1}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (MYOS, 0x07DC))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }
                }
                Device (MSE0)
                {
                    Name (_HID, EisaId ("TOS0200"))
                    Name (_CID, Package (0x03)
                    {
                        EisaId ("SYN1000"), 
                        EisaId ("SYN0002"), 
                        EisaId ("PNP0F13")
                    })
                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQ (Edge, ActiveHigh, Exclusive, )
                            {12}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }
                }
                Device (SYSR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0010,             // Range Minimum
                            0x0010,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x002E,             // Range Minimum
                            0x002E,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0072,             // Range Minimum
                            0x0072,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0080,             // Range Minimum
                            0x0080,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x00B0,             // Range Minimum
                            0x00B0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0092,             // Range Minimum
                            0x0092,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0400,             // Range Minimum
                            0x0400,             // Range Maximum
                            0x01,               // Alignment
                            0xD0,               // Length
                            )
                        IO (Decode16,
                            0x04D0,             // Range Minimum
                            0x04D0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x04D6,             // Range Minimum
                            0x04D6,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0550,             // Range Minimum
                            0x0550,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0680,             // Range Minimum
                            0x0680,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                        IO (Decode16,
                            0x077A,             // Range Minimum
                            0x077A,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0C00,             // Range Minimum
                            0x0C00,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0C14,             // Range Minimum
                            0x0C14,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0C50,             // Range Minimum
                            0x0C50,             // Range Maximum
                            0x01,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0C6C,             // Range Minimum
                            0x0C6C,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0C6F,             // Range Minimum
                            0x0C6F,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0CD0,             // Range Minimum
                            0x0CD0,             // Range Maximum
                            0x01,               // Alignment
                            0x0C,               // Length
                            )
                        IO (Decode16,
                            0x0840,             // Range Minimum
                            0x0840,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                    })
                }
                Device (MEM)
                {
                    Name (_HID, EisaId ("PNP0C01"))
                    Name (MSRC, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly,
                            0x000E0000,         // Address Base
                            0x00020000,         // Address Length
                            )
                        Memory32Fixed (ReadWrite,
                            0xFFF00000,         // Address Base
                            0x00100000,         // Address Length
                            _Y04)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (MSRC, \_SB.PCI0.LPC0.MEM._Y04._LEN, PSIZ)
                        CreateDWordField (MSRC, \_SB.PCI0.LPC0.MEM._Y04._BAS, PBAS)
                        Store (ROMS, PSIZ)
                        Subtract (ROMS, One, Local0)
                        Subtract (Ones, Local0, PBAS)
                        Return (MSRC)
                    }
                }
                Device (EC0)
                {
                    Name (_HID, EisaId ("PNP0C09"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0062,             // Range Minimum
                            0x0062,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0066,             // Range Minimum
                            0x0066,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                    })
                    Name (_GPE, 0x03)
                    Name (SEL0, 0xF0)
                    Name (BFLG, Zero)
                    Name (NXT0, Zero)
                    Name (NXT1, Zero)
                    Name (NXT2, Zero)
                    Method (_REG, 2, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x03))
                        {
                            Store (Arg1, Local0)
                            If (Local0)
                            {
                                Store (One, ECOK)
                            }
                            Else
                            {
                                Store (Zero, ECOK)
                            }
                        }
                        If (ECOK)
                        {
                            Store (One, ACIC)
                            If (LGreaterEqual (TPOS, 0x40))
                            {
                                If (LEqual (TPOS, 0x80))
                                {
                                    Store (Zero, OSTP)
                                }
                                Else
                                {
                                    Store (One, OSTP)
                                }
                            }
                            Else
                            {
                                Store (Zero, OSTP)
                            }
                            Store (0x03, RG59)
                            Store (BTEN, BLTH)
                            Store (WLAN, WLAN)
                            Store (One, CPLE)
                        }
                        If (LEqual (CPUD, Zero))
                        {
                            Store (Zero, \_PR.C000._PPC)
                            Notify (\_PR.C000, 0x80)
                            Sleep (0x0A)
                            Store (Zero, \_PR.C001._PPC)
                            Notify (\_PR.C001, 0x80)
                            Sleep (0x0A)
                            Store (Zero, \_PR.C002._PPC)
                            Notify (\_PR.C002, 0x80)
                            Sleep (0x0A)
                            Store (Zero, \_PR.C003._PPC)
                            Notify (\_PR.C003, 0x80)
                            Sleep (0x0A)
                        }
                        Else
                        {
                            Store (0x06, \_PR.C000._PPC)
                            Notify (\_PR.C000, 0x80)
                            Sleep (0x0A)
                            Store (0x06, \_PR.C001._PPC)
                            Notify (\_PR.C001, 0x80)
                            Sleep (0x0A)
                            Store (0x06, \_PR.C002._PPC)
                            Notify (\_PR.C002, 0x80)
                            Sleep (0x0A)
                            Store (0x06, \_PR.C003._PPC)
                            Notify (\_PR.C003, 0x80)
                            Sleep (0x0A)
                        }
                    }
                    OperationRegion (EMEM, SystemMemory, 0xFF808001, 0x013F)
                    Field (EMEM, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x04), 
                        CMCM,   8, 
                        CMD1,   8, 
                        CMD2,   8, 
                        CMD3,   8, 
                        Offset (0x18), 
                        SMPR,   8, 
                        SMST,   8, 
                        MBMN,   80, 
                        MBPN,   96, 
                        GPB1,   8, 
                        GPB2,   8, 
                        GPB3,   8, 
                        GPB4,   8, 
                        GPB5,   8, 
                        GPB6,   8, 
                        GPB7,   8, 
                        GPB8,   8, 
                        MAXS,   8, 
                        Offset (0x3D), 
                        SMAA,   8, 
                        Offset (0x40), 
                        ACDF,   1, 
                            ,   1, 
                        PFLG,   1, 
                        Offset (0x41), 
                            ,   4, 
                        FPR1,   1, 
                        FLS4,   1, 
                        S5LW,   1, 
                        Offset (0x42), 
                        Offset (0x43), 
                        TMSS,   2, 
                            ,   2, 
                        BANK,   3, 
                        WLID,   1, 
                            ,   2, 
                        HPCF,   1, 
                        USCE,   1, 
                        FLS3,   1, 
                            ,   1, 
                        PWBT,   1, 
                        WLS5,   1, 
                        CBTA,   1, 
                        Offset (0x46), 
                        RL01,   1, 
                        RD01,   1, 
                        RF01,   1, 
                        RP01,   1, 
                        RB01,   1, 
                        RC01,   1, 
                            ,   1, 
                        R701,   1, 
                        R801,   1, 
                        RM01,   1, 
                        RI01,   1, 
                            ,   1, 
                            ,   1, 
                            ,   1, 
                        RA01,   1, 
                        RR01,   1, 
                        RL10,   1, 
                        RD10,   1, 
                        RF10,   1, 
                        RP10,   1, 
                        RB10,   1, 
                        RC10,   1, 
                            ,   1, 
                        R710,   1, 
                        LLED,   1, 
                        RM10,   1, 
                        RI10,   1, 
                            ,   1, 
                            ,   1, 
                            ,   1, 
                        FBES,   1, 
                        ECOF,   1, 
                            ,   1, 
                        BAYE,   1, 
                        PRDE,   1, 
                        WP01,   1, 
                        WB01,   1, 
                        WC01,   1, 
                            ,   1, 
                        W701,   1, 
                        W801,   1, 
                        WM01,   1, 
                        WI01,   1, 
                            ,   1, 
                            ,   1, 
                            ,   1, 
                        WA01,   1, 
                        WR01,   1, 
                            ,   1, 
                        BAYI,   1, 
                        PRCT,   1, 
                        WP10,   1, 
                        WB10,   1, 
                        DSPL,   1, 
                        LIDS,   1, 
                        W710,   1, 
                        W810,   1, 
                        WM10,   1, 
                        WI10,   1, 
                            ,   1, 
                            ,   1, 
                            ,   1, 
                        WA10,   1, 
                        WR10,   1, 
                        Offset (0x50), 
                        SLPM,   3, 
                            ,   2, 
                        POLG,   1, 
                        HSFG,   1, 
                        Offset (0x51), 
                        BLVL,   8, 
                        SLPL,   8, 
                        DOFF,   8, 
                        Offset (0x57), 
                        RG57,   8, 
                        CTMP,   8, 
                        RG59,   8, 
                        FSP2,   16, 
                        FSPD,   16, 
                        Offset (0x60), 
                        WLAN,   1, 
                        BLTH,   1, 
                        CPLE,   1, 
                        KSWH,   1, 
                            ,   2, 
                        RFST,   1, 
                        BTHE,   1, 
                        TPAD,   1, 
                            ,   1, 
                        WN3G,   1, 
                        USBP,   1, 
                            ,   1, 
                        W3GE,   1, 
                        Offset (0x63), 
                            ,   7, 
                        VGAF,   1, 
                        Offset (0x65), 
                            ,   1, 
                        TMOD,   1, 
                        Offset (0x70), 
                        BTMD,   8, 
                        MBTS,   1, 
                        MBTF,   1, 
                        Offset (0x72), 
                            ,   3, 
                        LION,   1, 
                            ,   1, 
                        MBTC,   1, 
                        Offset (0x74), 
                            ,   3, 
                        BA3C,   1, 
                        ACIC,   1, 
                        Offset (0x75), 
                        BATS,   16, 
                        BA1C,   8, 
                        MCLC,   8, 
                        Offset (0x7A), 
                        MTEM,   16, 
                        MBMD,   16, 
                        MCUR,   16, 
                        MBRM,   16, 
                        MBVG,   16, 
                        Offset (0x87), 
                        BA2C,   8, 
                        LFCC,   16, 
                        BTSN,   16, 
                        BTDC,   16, 
                        BTDV,   16, 
                        BTMN,   8, 
                        Offset (0x93), 
                        BTST,   8, 
                        Offset (0xA0), 
                        HDX1,   16, 
                        HDY1,   16, 
                        HDZ1,   16, 
                        HDX2,   16, 
                        HDY2,   16, 
                        HDZ2,   16, 
                        HDX3,   16, 
                        HDY3,   16, 
                        HDZ3,   16, 
                        HDX4,   16, 
                        HDY4,   16, 
                        HDZ4,   16, 
                        Offset (0xB9), 
                        EXCC,   8, 
                        PPBC,   8, 
                        RFSC,   8, 
                        ACAC,   8, 
                        BTCC,   8, 
                        PAOC,   8, 
                        FPOC,   8, 
                        VOLC,   8, 
                        Offset (0xC3), 
                        EPFE,   8, 
                        EPFF,   8, 
                        PWM1,   8, 
                        PWM2,   8, 
                        ACVO,   8, 
                        ACCU,   16, 
                        ACCA,   8, 
                        REFT,   8, 
                        Offset (0xCE), 
                        PECL,   1, 
                        PECB,   1, 
                        PECC,   1, 
                        Offset (0xD0), 
                        EBPL,   1, 
                            ,   1, 
                        USCV,   1, 
                            ,   2, 
                        USNV,   1, 
                        IESQ,   1, 
                        Offset (0xD1), 
                        PWRE,   1, 
                        LPWR,   1, 
                        Offset (0xD2), 
                            ,   6, 
                        VAUX,   1, 
                        Offset (0xD4), 
                        S3WT,   1, 
                            ,   3, 
                        WS3W,   1, 
                        Offset (0xD6), 
                        DBPL,   8, 
                        Offset (0xDE), 
                        PLID,   8, 
                        Offset (0xE0), 
                        CSV1,   16, 
                        CSV2,   16, 
                        CSV3,   16, 
                        CSV4,   16, 
                        CTTO,   8, 
                        CTTB,   8, 
                        DE4L,   8, 
                        DE4H,   8, 
                        DE5L,   8, 
                        DE5H,   8, 
                        Offset (0xEF), 
                        DALB,   8, 
                        OSTP,   1, 
                        CIRF,   1, 
                            ,   4, 
                        HEUE,   1, 
                        BEUE,   1, 
                        MBEV,   8, 
                        VEVT,   16, 
                        FEVT,   16, 
                        NEVT,   16, 
                        Offset (0x120), 
                        BLV0,   8, 
                        BLV1,   8, 
                        BLV2,   8, 
                        BLV3,   8, 
                        BLV4,   8, 
                        BLV5,   8, 
                        BLV6,   8, 
                        BLV7,   8
                    }
                    Method (APOL, 1, NotSerialized)
                    {
                        Store (Arg0, DBPL)
                        Store (One, EBPL)
                    }
                    Name (PSTA, Zero)
                    Method (CPOL, 1, NotSerialized)
                    {
                        If (LEqual (PSTA, Zero))
                        {
                            If (LNotEqual (ECOK, Zero))
                            {
                                APOL (Arg0)
                                Store (One, PSTA)
                            }
                        }
                    }
                    Method (_Q20, 0, NotSerialized)
                    {
                        Store (0x20, P80H)
                        If (ECOK)
                        {
                            If (And (SMST, 0x40))
                            {
                                Store (SMAA, Local0)
                                If (LEqual (Local0, 0x14))
                                {
                                    And (SMST, 0xBF, SMST)
                                    Store (PWRE, Local1)
                                    If (Local1)
                                    {
                                        Store (Zero, PWRE)
                                        Store (0x12, BFLG)
                                        CPOL (One)
                                    }
                                }
                                If (LEqual (Local0, 0x16))
                                {
                                    And (SMST, 0xBF, SMST)
                                    Store (0x04, ^^^^BAT1.BCRI)
                                    Notify (BAT1, 0x80)
                                }
                                Else
                                {
                                    Store (Zero, ^^^^BAT1.BCRI)
                                }
                            }
                            If (ACDF)
                            {
                                If (LEqual (CPUD, Zero))
                                {
                                    If (INP4)
                                    {
                                        Store (Zero, \_PR.C000._PPC)
                                        Notify (\_PR.C000, 0x80)
                                        Sleep (0x0A)
                                        Store (Zero, \_PR.C001._PPC)
                                        Notify (\_PR.C001, 0x80)
                                        Sleep (0x0A)
                                        Store (Zero, \_PR.C002._PPC)
                                        Notify (\_PR.C002, 0x80)
                                        Sleep (0x0A)
                                        Store (Zero, \_PR.C003._PPC)
                                        Notify (\_PR.C003, 0x80)
                                        Sleep (0x0A)
                                        Store (Zero, INP4)
                                        Store (\_PR.C000._PPC, Local0)
                                        Store (Local0, P80H)
                                        Sleep (0x64)
                                    }
                                }
                                Else
                                {
                                    Store (0x06, \_PR.C000._PPC)
                                    Notify (\_PR.C000, 0x80)
                                    Sleep (0x0A)
                                    Store (0x06, \_PR.C001._PPC)
                                    Notify (\_PR.C001, 0x80)
                                    Sleep (0x0A)
                                    Store (0x06, \_PR.C002._PPC)
                                    Notify (\_PR.C002, 0x80)
                                    Sleep (0x0A)
                                    Store (0x06, \_PR.C003._PPC)
                                    Notify (\_PR.C003, 0x80)
                                    Sleep (0x0A)
                                    Store (\_PR.C000._PPC, Local0)
                                    Store (Local0, P80H)
                                    Sleep (0x0A)
                                }
                            }
                            Else
                            {
                                If (LEqual (CPUD, One))
                                {
                                    Store (0x06, \_PR.C000._PPC)
                                    Notify (\_PR.C000, 0x80)
                                    Sleep (0x0A)
                                    Store (0x06, \_PR.C001._PPC)
                                    Notify (\_PR.C001, 0x80)
                                    Sleep (0x0A)
                                    Store (0x06, \_PR.C002._PPC)
                                    Notify (\_PR.C002, 0x80)
                                    Sleep (0x0A)
                                    Store (0x06, \_PR.C003._PPC)
                                    Notify (\_PR.C003, 0x80)
                                    Sleep (0x0A)
                                }
                                Store (\_PR.C000._PPC, Local0)
                                Store (Local0, P80H)
                                Sleep (0x64)
                            }
                        }
                    }
                    Name (CPUC, One)
                    Name (CONT, Zero)
                    Method (_Q09, 0, NotSerialized)
                    {
                        Store (0x09, P80H)
                        If (ECOK)
                        {
                            Store (Zero, PSTA)
                            ^^^^BAT1.BSTA ()
                            FSMI (0x92, Zero)
                            Notify (ACAD, 0x80)
                            Notify (BAT1, 0x80)
                            If (^^^^BAT1.BTCH)
                            {
                                ^^^^BAT1.UBIF ()
                                Notify (BAT1, 0x81)
                                Store (Zero, ^^^^BAT1.BTCH)
                            }
                        }
                        Store (0xB0, P80H)
                        If (ACDF) {}
                        Else
                        {
                        }
                    }
                    Name (GSFB, Zero)
                    Name (GSST, Zero)
                    Name (G71F, Zero)
                    Method (_Q76, 0, NotSerialized)
                    {
                        If (LGreaterEqual (^^^^TVAP.VZOK, One))
                        {
                            Store (0x76, P80H)
                            ^^^^TVAP.EVNT (0xC0)
                        }
                    }
                    Method (_Q77, 0, NotSerialized)
                    {
                        If (LGreaterEqual (^^^^TVAP.VZOK, One))
                        {
                            Store (0x77, P80H)
                            ^^^^TVAP.EVNT (0xC1)
                        }
                    }
                    Method (_Q78, 0, NotSerialized)
                    {
                        If (LGreaterEqual (^^^^TVAP.VZOK, One))
                        {
                            Store (0x78, P80H)
                            ^^^^TVAP.EVNT (0xC2)
                        }
                    }
                    Method (_Q79, 0, NotSerialized)
                    {
                        If (LGreaterEqual (^^^^TVAP.VZOK, One))
                        {
                            Store (0x79, P80H)
                            ^^^^TVAP.EVNT (0xC3)
                        }
                    }
                    Method (_Q9B, 0, NotSerialized)
                    {
                        Store (0x11, P80H)
                        Store (One, LDSS)
                        Notify (LID, 0x80)
                    }
                    Method (_Q9C, 0, NotSerialized)
                    {
                        Store (0x22, P80H)
                        Store (Zero, LDSS)
                        Notify (LID, 0x80)
                    }
                    Method (SVBN, 0, NotSerialized)
                    {
                        Store (BLVL, Local0)
                        If (LEqual (Local0, Zero))
                        {
                            Store (BLV0, OWNS)
                        }
                        Else
                        {
                            If (LEqual (Local0, One))
                            {
                                Store (BLV1, OWNS)
                            }
                            Else
                            {
                                If (LEqual (Local0, 0x02))
                                {
                                    Store (BLV2, OWNS)
                                }
                                Else
                                {
                                    If (LEqual (Local0, 0x03))
                                    {
                                        Store (BLV3, OWNS)
                                    }
                                    Else
                                    {
                                        If (LEqual (Local0, 0x04))
                                        {
                                            Store (BLV4, OWNS)
                                        }
                                        Else
                                        {
                                            If (LEqual (Local0, 0x05))
                                            {
                                                Store (BLV5, OWNS)
                                            }
                                            Else
                                            {
                                                If (LEqual (Local0, 0x06))
                                                {
                                                    Store (BLV6, OWNS)
                                                }
                                                Else
                                                {
                                                    Store (BLV7, OWNS)
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        FSMI (0x22, One)
                    }
                    Method (_Q0E, 0, NotSerialized)
                    {
                        Store (0x0E, P80H)
                        FSMI (0x99, One)
                        If (LEqual (OPR1, One))
                        {
                            Store (One, NXT0)
                            Store (Zero, NXT1)
                            Store (Zero, NXT2)
                        }
                        Else
                        {
                            If (LEqual (OPR1, 0x02))
                            {
                                Store (Zero, NXT0)
                                Store (One, NXT1)
                                Store (Zero, NXT2)
                            }
                            Else
                            {
                                If (LEqual (OPR1, 0x03))
                                {
                                    Store (One, NXT0)
                                    Store (One, NXT1)
                                    Store (Zero, NXT2)
                                }
                                Else
                                {
                                    If (LEqual (OPR1, 0x04))
                                    {
                                        Store (Zero, NXT0)
                                        Store (Zero, NXT1)
                                        Store (One, NXT2)
                                    }
                                    Else
                                    {
                                        If (LEqual (OPR1, 0x05))
                                        {
                                            Store (One, NXT0)
                                            Store (Zero, NXT1)
                                            Store (One, NXT2)
                                        }
                                        Else
                                        {
                                            Store (One, NXT0)
                                            Store (Zero, NXT1)
                                            Store (Zero, NXT2)
                                        }
                                    }
                                }
                            }
                        }
                        Notify (VGA, 0x80)
                    }
                    Method (_Q0F, 0, NotSerialized)
                    {
                        Store (0x0F, P80H)
                        Store (BLVL, Local0)
                        Store (OSTP, Local1)
                        If (Local1)
                        {
                            If (Local0)
                            {
                                Decrement (Local0)
                            }
                            Else
                            {
                                Store (Zero, Local0)
                            }
                            Store (Local0, BLVL)
                        }
                        SVBN ()
                        Notify (^^^VGA.LCD, 0x87)
                        Notify (^^^PB3.VGA.LCD, 0x87)
                    }
                    Method (_Q10, 0, NotSerialized)
                    {
                        Store (0x10, P80H)
                        Store (BLVL, Local0)
                        Store (OSTP, Local1)
                        If (Local1)
                        {
                            If (LLess (Local0, 0x07))
                            {
                                Increment (Local0)
                            }
                            Else
                            {
                                Store (0x07, Local0)
                            }
                            Store (Local0, BLVL)
                        }
                        SVBN ()
                        Notify (^^^VGA.LCD, 0x86)
                        Notify (^^^PB3.VGA.LCD, 0x86)
                    }
                    Name (INP4, Zero)
                    Method (_Q8D, 0, NotSerialized)
                    {
                        FSMI (0x90, Zero)
                        Store (One, INP4)
                        Store (0x8D, P80H)
                        Sleep (0x64)
                        Store (One, \_PR.C000._PPC)
                        Notify (\_PR.C000, 0x80)
                        Sleep (0x64)
                        Store (One, \_PR.C001._PPC)
                        Notify (\_PR.C001, 0x80)
                        Sleep (0x64)
                        Store (One, \_PR.C002._PPC)
                        Notify (\_PR.C002, 0x80)
                        Sleep (0x64)
                        Store (One, \_PR.C003._PPC)
                        Notify (\_PR.C003, 0x80)
                        Sleep (0x96)
                        Store (\_PR.C000._PPC, Local0)
                        Store (Local0, P80H)
                    }
                    Method (_Q8E, 0, NotSerialized)
                    {
                        Store (0x8E, P80H)
                        If (LEqual (CPUD, Zero))
                        {
                            Store (Zero, \_PR.C000._PPC)
                            Notify (\_PR.C000, 0x80)
                            Sleep (0x64)
                            Store (Zero, \_PR.C001._PPC)
                            Notify (\_PR.C001, 0x80)
                            Sleep (0x64)
                            Store (Zero, \_PR.C002._PPC)
                            Notify (\_PR.C002, 0x80)
                            Sleep (0x64)
                            Store (Zero, \_PR.C003._PPC)
                            Notify (\_PR.C003, 0x80)
                            Sleep (0x96)
                        }
                        Store (\_PR.C000._PPC, Local0)
                        FSMI (0x91, Zero)
                        Store (Local0, P80H)
                    }
                    Method (_QA0, 0, NotSerialized)
                    {
                        Store (0xA0, P80H)
                        FSMI (0x5A, Zero)
                    }
                    Method (_QA1, 0, NotSerialized)
                    {
                        Store (0xA1, P80H)
                        FSMI (0x5B, Zero)
                    }
                    Method (_Q01, 0, NotSerialized)
                    {
                        Store (One, P80H)
                        Notify (BT, 0x90)
                    }
                    Method (_Q02, 0, NotSerialized)
                    {
                        Store (0x02, P80H)
                        Store (One, ^^^^TVAP.VRFS)
                        Notify (BT, 0x90)
                    }
                    Method (_Q03, 0, NotSerialized)
                    {
                        Store (0x03, P80H)
                        And (DALB, 0x0F, Local0)
                        If (Local0)
                        {
                            Notify (DAL1, 0x80)
                        }
                    }
                    Method (_Q90, 0, NotSerialized)
                    {
                        Store (0x90, P80H)
                        ^^^^TVAP.EVNT (0x02)
                    }
                    Method (_Q91, 0, NotSerialized)
                    {
                        Store (0x91, P80H)
                        ^^^^TVAP.EVNT (0x03)
                        Sleep (0x05)
                        ^^^^TVAP.EVNT (0x04)
                    }
                    Method (_Q92, 0, NotSerialized)
                    {
                        Store (0x92, P80H)
                        ^^^^TVAP.EVNT (0x02)
                        Sleep (0x05)
                        ^^^^TVAP.EVNT (0x03)
                        Sleep (0x05)
                        ^^^^TVAP.EVNT (0x04)
                    }
                    Method (_QB0, 0, NotSerialized)
                    {
                        Store (0xB0, P80H)
                        Store (PECL, Local0)
                        If (Local0)
                        {
                            ^^^^TVAP.EVNT (0xB2)
                        }
                    }
                    Method (_QB1, 0, NotSerialized)
                    {
                        Store (0xB1, P80H)
                        Store (PECL, Local0)
                        If (Local0)
                        {
                            Store (One, P80H)
                            ^^^^TVAP.EVNT (0xB3)
                        }
                    }
                    Method (_QB6, 0, NotSerialized)
                    {
                        Store (0xB6, P80H)
                        If (LGreaterEqual (^^^^TVAP.VZOK, One))
                        {
                            Store (PECC, Local0)
                            If (Local0)
                            {
                                ^^^^TVAP.EVNT (0xB6)
                            }
                        }
                    }
                    Method (_QB7, 0, NotSerialized)
                    {
                        Store (0xB7, P80H)
                        If (LGreaterEqual (^^^^TVAP.VZOK, One))
                        {
                            Store (PECC, Local0)
                            If (Local0)
                            {
                                ^^^^TVAP.EVNT (0xB7)
                            }
                        }
                    }
                    Method (_QB4, 0, NotSerialized)
                    {
                        Store (0xB4, P80H)
                        If (LGreaterEqual (^^^^TVAP.VZOK, One))
                        {
                            While (One)
                            {
                                If (LEqual (^^^^TVAP.VZOK, One))
                                {
                                    Break
                                }
                                Sleep (0x64)
                            }
                            ^^^^TVAP.EVNT (0xB4)
                        }
                    }
                    Method (_QB5, 0, NotSerialized)
                    {
                        Store (0xB5, P80H)
                        If (LGreaterEqual (^^^^TVAP.VZOK, One))
                        {
                            While (One)
                            {
                                If (LEqual (^^^^TVAP.VZOK, One))
                                {
                                    Break
                                }
                                Sleep (0x64)
                            }
                            ^^^^TVAP.EVNT (0xB5)
                        }
                    }
                    Method (_Q9A, 0, NotSerialized)
                    {
                        Store (DE4L, Local0)
                        If (LEqual (Local0, One))
                        {
                            Store (0x03, Local1)
                        }
                        Else
                        {
                            If (LEqual (Local0, 0x02))
                            {
                                Store (0x02, Local1)
                            }
                            Else
                            {
                                If (LEqual (Local0, 0x03))
                                {
                                    Store (One, Local1)
                                }
                                Else
                                {
                                    If (LEqual (Local0, 0x04))
                                    {
                                        Store (Zero, Local1)
                                    }
                                    Else
                                    {
                                        Store (Zero, Local1)
                                    }
                                }
                            }
                        }
                        Store (Local1, \_PR.C000._PPC)
                        Notify (\_PR.C000, 0x80)
                        Sleep (0x64)
                        Store (Local1, \_PR.C001._PPC)
                        Notify (\_PR.C001, 0x80)
                        Sleep (0x64)
                        Store (Local1, \_PR.C002._PPC)
                        Notify (\_PR.C000, 0x80)
                        Sleep (0x64)
                        Store (Local1, \_PR.C003._PPC)
                        Notify (\_PR.C001, 0x80)
                        Sleep (0x64)
                    }
                    Device (DAL1)
                    {
                        Name (_HID, EisaId ("PNP0C32"))
                        Name (_UID, One)
                        Method (_STA, 0, NotSerialized)
                        {
                            If (LOr (LEqual (TPOS, 0x40), LGreaterEqual (TPOS, 0x50)))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                        Method (GHID, 0, NotSerialized)
                        {
                            And (DALB, 0x08, Local0)
                            If (Local0)
                            {
                                Notify (DAL1, 0x02)
                            }
                            Return (Buffer (One)
                            {
                                 0x01
                            })
                        }
                    }
                }
                OperationRegion (LCLM, SystemIO, 0x0C50, 0x03)
                Field (LCLM, ByteAcc, NoLock, Preserve)
                {
                    CLMI,   8, 
                    CLMD,   8, 
                    CLGP,   8
                }
                IndexField (CLMI, CLMD, ByteAcc, NoLock, Preserve)
                {
                    IDRG,   8, 
                    Offset (0x02), 
                    TSTS,   8, 
                    TINT,   8, 
                    Offset (0x12), 
                    I2CC,   8, 
                    GPIO,   8
                }
                Method (RGPM, 0, NotSerialized)
                {
                    Store (GPIO, Local0)
                    And (Local0, 0xFFFFFF3F, Local0)
                    Store (Local0, GPIO)
                    Store (CLGP, Local1)
                    Return (Local1)
                }
            }
            Device (P2P)
            {
                Name (_ADR, 0x00140004)
                Method (_PRW, 0, NotSerialized)
                {
                    If (LEqual (WKPM, One))
                    {
                        Return (GPRW (0x04, 0x05))
                    }
                    Else
                    {
                        Return (GPRW (0x04, Zero))
                    }
                }
                OperationRegion (PCPC, PCI_Config, Zero, 0xFF)
                Field (PCPC, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x04), 
                    PCMD,   8, 
                    Offset (0x1C), 
                    IOW1,   8, 
                    IOW2,   8, 
                    Offset (0x48), 
                    PR48,   8, 
                    PR49,   8, 
                    PR4A,   8, 
                    PR4B,   8
                }
                Method (_PRT, 0, NotSerialized)
                {
                    If (LEqual (GPIC, Zero))
                    {
                        Return (PIC)
                    }
                    Else
                    {
                        Return (APIC)
                    }
                }
                Name (PIC, Package (0x0E)
                {
                    Package (0x04)
                    {
                        0x0004FFFF, 
                        Zero, 
                        LNKE, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0004FFFF, 
                        One, 
                        LNKF, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0005FFFF, 
                        Zero, 
                        LNKE, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0005FFFF, 
                        One, 
                        LNKF, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x02, 
                        LNKG, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x03, 
                        LNKH, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0006FFFF, 
                        Zero, 
                        LNKF, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0006FFFF, 
                        One, 
                        LNKG, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0006FFFF, 
                        0x02, 
                        LNKH, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0006FFFF, 
                        0x03, 
                        LNKE, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0007FFFF, 
                        Zero, 
                        LNKG, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0007FFFF, 
                        One, 
                        LNKH, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0007FFFF, 
                        0x02, 
                        LNKE, 
                        Zero
                    }, 
                    Package (0x04)
                    {
                        0x0007FFFF, 
                        0x03, 
                        LNKF, 
                        Zero
                    }
                })
                Name (APIC, Package (0x0E)
                {
                    Package (0x04)
                    {
                        0x0004FFFF, 
                        Zero, 
                        Zero, 
                        0x14
                    }, 
                    Package (0x04)
                    {
                        0x0004FFFF, 
                        One, 
                        Zero, 
                        0x15
                    }, 
                    Package (0x04)
                    {
                        0x0005FFFF, 
                        Zero, 
                        Zero, 
                        0x14
                    }, 
                    Package (0x04)
                    {
                        0x0005FFFF, 
                        One, 
                        Zero, 
                        0x15
                    }, 
                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x02, 
                        Zero, 
                        0x16
                    }, 
                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x03, 
                        Zero, 
                        0x17
                    }, 
                    Package (0x04)
                    {
                        0x0006FFFF, 
                        Zero, 
                        Zero, 
                        0x15
                    }, 
                    Package (0x04)
                    {
                        0x0006FFFF, 
                        One, 
                        Zero, 
                        0x16
                    }, 
                    Package (0x04)
                    {
                        0x0006FFFF, 
                        0x02, 
                        Zero, 
                        0x17
                    }, 
                    Package (0x04)
                    {
                        0x0006FFFF, 
                        0x03, 
                        Zero, 
                        0x14
                    }, 
                    Package (0x04)
                    {
                        0x0007FFFF, 
                        Zero, 
                        Zero, 
                        0x16
                    }, 
                    Package (0x04)
                    {
                        0x0007FFFF, 
                        One, 
                        Zero, 
                        0x17
                    }, 
                    Package (0x04)
                    {
                        0x0007FFFF, 
                        0x02, 
                        Zero, 
                        0x14
                    }, 
                    Package (0x04)
                    {
                        0x0007FFFF, 
                        0x03, 
                        Zero, 
                        0x15
                    }
                })
            }
            Device (SATA)
            {
                Name (_ADR, 0x00110000)
                Name (B5EN, Zero)
                Name (BA_5, Zero)
                Name (SBAR, 0xF034F000)
                OperationRegion (SATX, PCI_Config, Zero, 0x28)
                Field (SATX, AnyAcc, NoLock, Preserve)
                {
                    VIDI,   32, 
                    Offset (0x0A), 
                    STCL,   16, 
                    Offset (0x24), 
                    BA05,   32
                }
                Method (GBAA, 0, Serialized)
                {
                    Store (BA05, BA_5)
                    If (LOr (LEqual (BA_5, Ones), LNotEqual (STCL, 0x0101)))
                    {
                        Store (Zero, B5EN)
                        Return (SBAR)
                    }
                    Else
                    {
                        Store (One, B5EN)
                        Return (BA_5)
                    }
                }
                OperationRegion (BAR5, SystemMemory, GBAA (), 0x1000)
                Field (BAR5, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x120), 
                        ,   7, 
                    BSY0,   1, 
                    Offset (0x128), 
                    DET0,   4, 
                    Offset (0x129), 
                    IPM0,   4, 
                    Offset (0x1A0), 
                        ,   7, 
                    BSY1,   1, 
                    Offset (0x1A8), 
                    DET1,   4, 
                    Offset (0x1A9), 
                    IPM1,   4, 
                    Offset (0x220), 
                        ,   7, 
                    BSY2,   1, 
                    Offset (0x228), 
                    DET2,   4, 
                    Offset (0x229), 
                    IPM2,   4, 
                    Offset (0x2A0), 
                        ,   7, 
                    BSY3,   1, 
                    Offset (0x2A8), 
                    DET3,   4, 
                    Offset (0x2A9), 
                    IPM3,   4, 
                    Offset (0x320), 
                        ,   7, 
                    BSY4,   1, 
                    Offset (0x328), 
                    DET4,   4, 
                    Offset (0x329), 
                    IPM4,   4, 
                    Offset (0x3A0), 
                        ,   7, 
                    BSY5,   1, 
                    Offset (0x3A8), 
                    DET5,   4, 
                    Offset (0x3A9), 
                    IPM5,   4
                }
                Method (_INI, 0, NotSerialized)
                {
                    GBAA ()
                }
                Device (PRID)
                {
                    Name (_ADR, Zero)
                    Name (SPTM, Buffer (0x14)
                    {
                        /* 0000 */   0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
                        /* 0008 */   0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
                        /* 0010 */   0x1F, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SPTM)
                    }
                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SPTM)
                    }
                    Method (_PS0, 0, NotSerialized)
                    {
                        GBAA ()
                        If (LAnd (LOr (LGreaterEqual (TPOS, 0x40), LEqual (TPOS, 0x04)), 
                            B5EN))
                        {
                            If (IPM2)
                            {
                                Store (0x32, Local0)
                                While (LAnd (LEqual (BSY2, One), Local0))
                                {
                                    Sleep (0xFA)
                                    Decrement (Local0)
                                }
                            }
                        }
                    }
                    Method (_PS3, 0, NotSerialized)
                    {
                    }
                    Device (P_D0)
                    {
                        Name (_ADR, Zero)
                        Method (_STA, 0, NotSerialized)
                        {
                            GBAA ()
                            If (LEqual (B5EN, Zero))
                            {
                                Return (Zero)
                            }
                            If (LEqual (DET0, 0x03))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                        Name (S12P, Zero)
                        Method (_PS0, 0, NotSerialized)
                        {
                            GBAA ()
                            If (LAnd (LAnd (LLess (TPOS, 0x40), LNotEqual (TPOS, 0x04)), 
                                B5EN))
                            {
                                Store (0x32, Local0)
                                While (LAnd (LEqual (BSY0, One), Local0))
                                {
                                    Sleep (0xFA)
                                    Decrement (Local0)
                                }
                            }
                        }
                        Method (_PS3, 0, NotSerialized)
                        {
                        }
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
                                     0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                    Device (P_D1)
                    {
                        Name (_ADR, One)
                        Method (_STA, 0, NotSerialized)
                        {
                            GBAA ()
                            If (LEqual (B5EN, Zero))
                            {
                                Return (Zero)
                            }
                            If (LEqual (DET2, 0x03))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                        Name (S12P, Zero)
                        Method (_PS0, 0, NotSerialized)
                        {
                            GBAA ()
                            If (LAnd (LAnd (LLess (TPOS, 0x40), LNotEqual (TPOS, 0x04)), 
                                B5EN))
                            {
                                Store (0x32, Local0)
                                While (LAnd (LEqual (BSY2, One), Local0))
                                {
                                    Sleep (0xFA)
                                    Decrement (Local0)
                                }
                            }
                        }
                        Method (_PS3, 0, NotSerialized)
                        {
                        }
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
                                     0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                }
                Device (SECD)
                {
                    Name (_ADR, 0x02)
                    Name (SPTM, Buffer (0x14)
                    {
                        /* 0000 */   0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
                        /* 0008 */   0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
                        /* 0010 */   0x1F, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SPTM)
                    }
                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SPTM)
                    }
                    Method (_PS0, 0, NotSerialized)
                    {
                        GBAA ()
                        If (LAnd (LOr (LGreaterEqual (TPOS, 0x40), LEqual (TPOS, 0x04)), 
                            B5EN))
                        {
                            If (IPM1)
                            {
                                Store (0x32, Local0)
                                While (LAnd (LEqual (BSY1, One), Local0))
                                {
                                    Sleep (0xFA)
                                    Decrement (Local0)
                                }
                            }
                            If (IPM3)
                            {
                                Store (0x32, Local0)
                                While (LAnd (LEqual (BSY3, One), Local0))
                                {
                                    Sleep (0xFA)
                                    Decrement (Local0)
                                }
                            }
                        }
                    }
                    Method (_PS3, 0, NotSerialized)
                    {
                    }
                    Device (S_D0)
                    {
                        Name (_ADR, Zero)
                        Method (_STA, 0, NotSerialized)
                        {
                            GBAA ()
                            If (LEqual (B5EN, Zero))
                            {
                                Return (Zero)
                            }
                            If (LEqual (DET1, 0x03))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                        Method (_PS0, 0, NotSerialized)
                        {
                            GBAA ()
                            If (LAnd (LAnd (LLess (TPOS, 0x40), LNotEqual (TPOS, 0x04)), 
                                B5EN))
                            {
                                Store (0x32, Local0)
                                While (LAnd (LEqual (BSY1, One), Local0))
                                {
                                    Sleep (0xFA)
                                    Decrement (Local0)
                                }
                            }
                        }
                        Method (_PS3, 0, NotSerialized)
                        {
                        }
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
                                     0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                    Device (S_D1)
                    {
                        Name (_ADR, One)
                        Method (_STA, 0, NotSerialized)
                        {
                            GBAA ()
                            If (LEqual (B5EN, Zero))
                            {
                                Return (Zero)
                            }
                            If (LEqual (DET3, 0x03))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                        Method (_PS0, 0, NotSerialized)
                        {
                            GBAA ()
                            If (LAnd (LAnd (LLess (TPOS, 0x40), LNotEqual (TPOS, 0x04)), 
                                B5EN))
                            {
                                Store (0x32, Local0)
                                While (LAnd (LEqual (BSY3, One), Local0))
                                {
                                    Sleep (0xFA)
                                    Decrement (Local0)
                                }
                            }
                        }
                        Method (_PS3, 0, NotSerialized)
                        {
                        }
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
                                     0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                }
                Device (PRT1)
                {
                    Name (_ADR, One)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (ODZC, One))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            Return (0x0F)
                        }
                    }
                    Device (ODD)
                    {
                        Name (_ADR, Zero)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (One)
                        }
                    }
                }
                Device (PRT3)
                {
                    Name (_ADR, 0x03)
                    Device (ESAT)
                    {
                        Name (_ADR, Zero)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (One)
                        }
                    }
                }
            }
            Device (IDE)
            {
                Name (_ADR, 0x00140001)
                Name (UDMT, Package (0x08)
                {
                    0x78, 
                    0x5A, 
                    0x3C, 
                    0x2D, 
                    0x1E, 
                    0x14, 
                    Zero, 
                    Zero
                })
                Name (PIOT, Package (0x06)
                {
                    0x0258, 
                    0x0186, 
                    0x010E, 
                    0xB4, 
                    0x78, 
                    Zero
                })
                Name (PITR, Package (0x06)
                {
                    0x99, 
                    0x47, 
                    0x34, 
                    0x22, 
                    0x20, 
                    0x99
                })
                Name (MDMT, Package (0x04)
                {
                    0x01E0, 
                    0x96, 
                    0x78, 
                    Zero
                })
                Name (MDTR, Package (0x04)
                {
                    0x77, 
                    0x21, 
                    0x20, 
                    0xFF
                })
                OperationRegion (IDE, PCI_Config, 0x40, 0x20)
                Field (IDE, WordAcc, NoLock, Preserve)
                {
                    PPIT,   16, 
                    SPIT,   16, 
                    PMDT,   16, 
                    SMDT,   16, 
                    PPIC,   8, 
                    SPIC,   8, 
                    PPIM,   8, 
                    SPIM,   8, 
                    Offset (0x14), 
                    PUDC,   2, 
                    SUDC,   2, 
                    Offset (0x16), 
                    PUDM,   8, 
                    SUDM,   8
                }
                Method (GETT, 1, NotSerialized)
                {
                    Store (And (Arg0, 0x0F), Local0)
                    Store (ShiftRight (Arg0, 0x04), Local1)
                    Return (Multiply (0x1E, Add (Add (Local0, One), Add (Local1, 
                        One))))
                }
                Method (GTM, 1, NotSerialized)
                {
                    CreateByteField (Arg0, Zero, PIT1)
                    CreateByteField (Arg0, One, PIT0)
                    CreateByteField (Arg0, 0x02, MDT1)
                    CreateByteField (Arg0, 0x03, MDT0)
                    CreateByteField (Arg0, 0x04, PICX)
                    CreateByteField (Arg0, 0x05, UDCX)
                    CreateByteField (Arg0, 0x06, UDMX)
                    Name (BUF, Buffer (0x14)
                    {
                        /* 0000 */   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                        /* 0008 */   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                        /* 0010 */   0x00, 0x00, 0x00, 0x00
                    })
                    CreateDWordField (BUF, Zero, PIO0)
                    CreateDWordField (BUF, 0x04, DMA0)
                    CreateDWordField (BUF, 0x08, PIO1)
                    CreateDWordField (BUF, 0x0C, DMA1)
                    CreateDWordField (BUF, 0x10, FLAG)
                    If (And (PICX, One))
                    {
                        Return (BUF)
                    }
                    Store (GETT (PIT0), PIO0)
                    Store (GETT (PIT1), PIO1)
                    If (And (UDCX, One))
                    {
                        Or (FLAG, One, FLAG)
                        Store (DerefOf (Index (UDMT, And (UDMX, 0x0F))), DMA0)
                    }
                    Else
                    {
                        If (LNotEqual (MDT0, 0xFF))
                        {
                            Store (GETT (MDT0), DMA0)
                        }
                    }
                    If (And (UDCX, 0x02))
                    {
                        Or (FLAG, 0x04, FLAG)
                        Store (DerefOf (Index (UDMT, ShiftRight (UDMX, 0x04))), DMA1)
                    }
                    Else
                    {
                        If (LNotEqual (MDT1, 0xFF))
                        {
                            Store (GETT (MDT1), DMA1)
                        }
                    }
                    Or (FLAG, 0x1A, FLAG)
                    Return (BUF)
                }
                Method (STM, 3, NotSerialized)
                {
                    CreateDWordField (Arg0, Zero, PIO0)
                    CreateDWordField (Arg0, 0x04, DMA0)
                    CreateDWordField (Arg0, 0x08, PIO1)
                    CreateDWordField (Arg0, 0x0C, DMA1)
                    CreateDWordField (Arg0, 0x10, FLAG)
                    Name (BUF, Buffer (0x07)
                    {
                         0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
                    })
                    CreateByteField (BUF, Zero, PIT1)
                    CreateByteField (BUF, One, PIT0)
                    CreateByteField (BUF, 0x02, MDT1)
                    CreateByteField (BUF, 0x03, MDT0)
                    CreateByteField (BUF, 0x04, PIMX)
                    CreateByteField (BUF, 0x05, UDCX)
                    CreateByteField (BUF, 0x06, UDMX)
                    Store (Match (PIOT, MLE, PIO0, MTR, Zero, Zero), Local0)
                    Divide (Local0, 0x05, Local0)
                    Store (Match (PIOT, MLE, PIO1, MTR, Zero, Zero), Local1)
                    Divide (Local1, 0x05, Local1)
                    Store (Or (ShiftLeft (Local1, 0x04), Local0), PIMX)
                    Store (DerefOf (Index (PITR, Local0)), PIT0)
                    Store (DerefOf (Index (PITR, Local1)), PIT1)
                    If (And (FLAG, One))
                    {
                        Store (Match (UDMT, MLE, DMA0, MTR, Zero, Zero), Local0)
                        Divide (Local0, 0x06, Local0)
                        Or (UDMX, Local0, UDMX)
                        Or (UDCX, One, UDCX)
                    }
                    Else
                    {
                        If (LNotEqual (DMA0, Ones))
                        {
                            Store (Match (MDMT, MLE, DMA0, MTR, Zero, Zero), Local0)
                            Store (DerefOf (Index (MDTR, Local0)), MDT0)
                        }
                    }
                    If (And (FLAG, 0x04))
                    {
                        Store (Match (UDMT, MLE, DMA1, MTR, Zero, Zero), Local0)
                        Divide (Local0, 0x06, Local0)
                        Or (UDMX, ShiftLeft (Local0, 0x04), UDMX)
                        Or (UDCX, 0x02, UDCX)
                    }
                    Else
                    {
                        If (LNotEqual (DMA1, Ones))
                        {
                            Store (Match (MDMT, MLE, DMA1, MTR, Zero, Zero), Local0)
                            Store (DerefOf (Index (MDTR, Local0)), MDT1)
                        }
                    }
                    Return (BUF)
                }
                Method (GTF, 2, NotSerialized)
                {
                    CreateByteField (Arg1, Zero, MDT1)
                    CreateByteField (Arg1, One, MDT0)
                    CreateByteField (Arg1, 0x02, PIMX)
                    CreateByteField (Arg1, 0x03, UDCX)
                    CreateByteField (Arg1, 0x04, UDMX)
                    If (LEqual (Arg0, 0xA0))
                    {
                        Store (And (PIMX, 0x0F), Local0)
                        Store (MDT0, Local1)
                        And (UDCX, One, Local2)
                        Store (And (UDMX, 0x0F), Local3)
                    }
                    Else
                    {
                        Store (ShiftRight (PIMX, 0x04), Local0)
                        Store (MDT1, Local1)
                        And (UDCX, 0x02, Local2)
                        Store (ShiftRight (UDMX, 0x04), Local3)
                    }
                    Name (BUF, Buffer (0x0E)
                    {
                        /* 0000 */   0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x03,
                        /* 0008 */   0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF
                    })
                    CreateByteField (BUF, One, PMOD)
                    CreateByteField (BUF, 0x08, DMOD)
                    CreateByteField (BUF, 0x05, CMDA)
                    CreateByteField (BUF, 0x0C, CMDB)
                    Store (Arg0, CMDA)
                    Store (Arg0, CMDB)
                    Or (Local0, 0x08, PMOD)
                    If (Local2)
                    {
                        Or (Local3, 0x40, DMOD)
                    }
                    Else
                    {
                        If (LNotEqual (Local1, 0xFF))
                        {
                            Store (Match (MDMT, MLE, GETT (Local1), MTR, Zero, Zero), Local4)
                            If (LLess (Local4, 0x03))
                            {
                                Or (0x20, Local4, DMOD)
                            }
                        }
                    }
                    Return (BUF)
                }
                Device (PRID)
                {
                    Name (_ADR, Zero)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Name (BUF, Buffer (0x07)
                        {
                             0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
                        })
                        CreateWordField (BUF, Zero, VPIT)
                        CreateWordField (BUF, 0x02, VMDT)
                        CreateByteField (BUF, 0x04, VPIC)
                        CreateByteField (BUF, 0x05, VUDC)
                        CreateByteField (BUF, 0x06, VUDM)
                        Store (PPIT, VPIT)
                        Store (PMDT, VMDT)
                        Store (PPIC, VPIC)
                        Store (PUDC, VUDC)
                        Store (PUDM, VUDM)
                        Return (GTM (BUF))
                    }
                    Method (_STM, 3, NotSerialized)
                    {
                        Name (BUF, Buffer (0x07)
                        {
                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        })
                        CreateWordField (BUF, Zero, VPIT)
                        CreateWordField (BUF, 0x02, VMDT)
                        CreateByteField (BUF, 0x04, VPIM)
                        CreateByteField (BUF, 0x05, VUDC)
                        CreateByteField (BUF, 0x06, VUDM)
                        Store (STM (Arg0, Arg1, Arg2), BUF)
                        Store (VPIT, PPIT)
                        Store (VMDT, PMDT)
                        Store (VPIM, PPIM)
                        Store (VUDC, PUDC)
                        Store (VUDM, PUDM)
                    }
                    Device (P_D0)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Name (BUF, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00
                            })
                            CreateWordField (BUF, Zero, VMDT)
                            CreateByteField (BUF, 0x02, VPIM)
                            CreateByteField (BUF, 0x03, VUDC)
                            CreateByteField (BUF, 0x04, VUDM)
                            Store (PMDT, VMDT)
                            Store (PPIM, VPIM)
                            Store (PUDC, VUDC)
                            Store (PUDM, VUDM)
                            Return (GTF (0xA0, BUF))
                        }
                    }
                    Device (P_D1)
                    {
                        Name (_ADR, One)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Name (BUF, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00
                            })
                            CreateWordField (BUF, Zero, VMDT)
                            CreateByteField (BUF, 0x02, VPIM)
                            CreateByteField (BUF, 0x03, VUDC)
                            CreateByteField (BUF, 0x04, VUDM)
                            Store (PMDT, VMDT)
                            Store (PPIM, VPIM)
                            Store (PUDC, VUDC)
                            Store (PUDM, VUDM)
                            Return (GTF (0xB0, BUF))
                        }
                    }
                }
                Device (SECD)
                {
                    Name (_ADR, One)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Name (BUF, Buffer (0x07)
                        {
                             0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
                        })
                        CreateWordField (BUF, Zero, VPIT)
                        CreateWordField (BUF, 0x02, VMDT)
                        CreateByteField (BUF, 0x04, VPIC)
                        CreateByteField (BUF, 0x05, VUDC)
                        CreateByteField (BUF, 0x06, VUDM)
                        Store (SPIT, VPIT)
                        Store (SMDT, VMDT)
                        Store (SPIC, VPIC)
                        Store (SUDC, VUDC)
                        Store (SUDM, VUDM)
                        Return (GTM (BUF))
                    }
                    Method (_STM, 3, NotSerialized)
                    {
                        Name (BUF, Buffer (0x07)
                        {
                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        })
                        CreateWordField (BUF, Zero, VPIT)
                        CreateWordField (BUF, 0x02, VMDT)
                        CreateByteField (BUF, 0x04, VPIM)
                        CreateByteField (BUF, 0x05, VUDC)
                        CreateByteField (BUF, 0x06, VUDM)
                        Store (STM (Arg0, Arg1, Arg2), BUF)
                        Store (VPIT, SPIT)
                        Store (VMDT, SMDT)
                        Store (VPIM, SPIM)
                        Store (VUDC, SUDC)
                        Store (VUDM, SUDM)
                    }
                    Device (S_D0)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Name (BUF, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00
                            })
                            CreateWordField (BUF, Zero, VMDT)
                            CreateByteField (BUF, 0x02, VPIM)
                            CreateByteField (BUF, 0x03, VUDC)
                            CreateByteField (BUF, 0x04, VUDM)
                            Store (SMDT, VMDT)
                            Store (SPIM, VPIM)
                            Store (SUDC, VUDC)
                            Store (SUDM, VUDM)
                            Return (GTF (0xA0, BUF))
                        }
                    }
                    Device (S_D1)
                    {
                        Name (_ADR, One)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Name (BUF, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00
                            })
                            CreateWordField (BUF, Zero, VMDT)
                            CreateByteField (BUF, 0x02, VPIM)
                            CreateByteField (BUF, 0x03, VUDC)
                            CreateByteField (BUF, 0x04, VUDM)
                            Store (SMDT, VMDT)
                            Store (SPIM, VPIM)
                            Store (SUDC, VUDC)
                            Store (SUDM, VUDM)
                            Return (GTF (0xB0, BUF))
                        }
                    }
                }
            }
            Name (AFCB, Buffer (0xB8) {})
            Name (CALB, Buffer (0x05) {})
            Device (AFD)
            {
                Name (_HID, "AFD0001")
                Name (HDD0, 0x80000000)
                Name (ODZP, 0x80000000)
                Name (DAT3, Buffer (0x0E)
                {
                    /* 0000 */   0x0E, 0x00, 0x03, 0x0C, 0x03, 0x00, 0x00, 0x00,
                    /* 0008 */   0x92, 0x00, 0x03, 0x00, 0x00, 0x00
                })
                Name (DAT4, Buffer (0x0E)
                {
                    /* 0000 */   0x0E, 0x00, 0x11, 0x0D, 0x03, 0x00, 0x00, 0x00,
                    /* 0008 */   0xA5, 0x00, 0x02, 0x00, 0x00, 0x00
                })
                Name (DAT5, Buffer (0x0E)
                {
                    /* 0000 */   0x0E, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF,
                    /* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (DAT6, Buffer (0x0E)
                {
                    /* 0000 */   0x0E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xFF,
                    /* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (DAT7, Buffer (0x0E)
                {
                    /* 0000 */   0x0E, 0x00, 0x03, 0x0C, 0x03, 0x00, 0x00, 0x00,
                    /* 0008 */   0x00, 0xFF, 0x00, 0x00, 0x00, 0x00
                })
                Name (DAT8, Buffer (0x0E)
                {
                    /* 0000 */   0x0E, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF,
                    /* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (DAT9, Buffer (0x0E)
                {
                    /* 0000 */   0x0E, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF,
                    /* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (DATA, Buffer (0x0E)
                {
                    /* 0000 */   0x0E, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF,
                    /* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (DATB, Buffer (0x0E)
                {
                    /* 0000 */   0x0E, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF,
                    /* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (DATC, Buffer (0x0E)
                {
                    /* 0000 */   0x0E, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0xFF,
                    /* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Method (_STA, 0, NotSerialized)
                {
                    If (LEqual (AFUC, Zero))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }
                Method (AFCM, 3, NotSerialized)
                {
                    And (Arg0, 0xFF, Arg0)
                    If (LEqual (Arg0, Zero))
                    {
                        Return (AFC0 ())
                    }
                    If (LEqual (Arg0, One))
                    {
                        Return (AFC1 ())
                    }
                    If (LEqual (Arg0, 0x02))
                    {
                        Return (AFC2 (Arg1, Arg2))
                    }
                    Else
                    {
                        CreateWordField (AFCB, Zero, SSZE)
                        CreateWordField (AFCB, 0x02, VERN)
                        CreateDWordField (AFCB, 0x04, SFUN)
                        Store (Zero, SSZE)
                        Store (Zero, VERN)
                        Store (Zero, SFUN)
                        Return (AFCB)
                    }
                }
                Method (AFC0, 0, NotSerialized)
                {
                    Store (0xAF00, P80H)
                    CreateWordField (AFCB, Zero, SSZE)
                    CreateWordField (AFCB, 0x02, VERN)
                    CreateDWordField (AFCB, 0x04, SFUN)
                    Store (0x08, SSZE)
                    Store (One, VERN)
                    Store (0x03, SFUN)
                    Store (0xAE00, P80H)
                    Return (AFCB)
                }
                Method (AFC1, 0, NotSerialized)
                {
                    Store (0xAF01, P80H)
                    CreateWordField (AFCB, Zero, SSZE)
                    CreateWordField (AFCB, 0x02, ESZ0)
                    CreateWordField (AFCB, 0x04, CCD0)
                    CreateWordField (AFCB, 0x06, EBU0)
                    CreateWordField (AFCB, 0x08, CFG0)
                    CreateWordField (AFCB, 0x0A, PCA0)
                    CreateWordField (AFCB, 0x0C, DCP0)
                    CreateWordField (AFCB, 0x0E, DRA0)
                    Store (0x0E, ESZ0)
                    Store (0x02, EBU0)
                    Store (Zero, CFG0)
                    Store (0x88, PCA0)
                    If (LEqual (^^SATA.VIDI, 0x78001022))
                    {
                        Store (One, EBU0)
                        Store (0x0101, CCD0)
                        Store (Zero, DCP0)
                        Store (Zero, DRA0)
                    }
                    If (LEqual (^^SATA.VIDI, 0x78011022))
                    {
                        Store (0x0106, CCD0)
                        Store (Zero, DCP0)
                        Store (Zero, DRA0)
                    }
                    If (LEqual (^^SATA.VIDI, 0x78021022))
                    {
                        Store (0x0104, CCD0)
                        Store (Zero, DCP0)
                        Store (Zero, DRA0)
                    }
                    If (LEqual (^^SATA.VIDI, 0x78031022))
                    {
                        Store (0x0104, CCD0)
                        Store (Zero, DCP0)
                        Store (Zero, DRA0)
                    }
                    If (LEqual (^^SATA.VIDI, 0x78041022))
                    {
                        Store (0x0106, CCD0)
                        Store (Zero, DCP0)
                        Store (Zero, DRA0)
                    }
                    CreateWordField (AFCB, 0x10, ESZ1)
                    CreateWordField (AFCB, 0x12, CCD1)
                    CreateWordField (AFCB, 0x14, EBU1)
                    CreateWordField (AFCB, 0x16, CFG1)
                    CreateWordField (AFCB, 0x18, PCA1)
                    CreateWordField (AFCB, 0x1A, DCP1)
                    CreateWordField (AFCB, 0x1C, DRA1)
                    Store (0x0E, ESZ1)
                    Store (0x02, EBU1)
                    Store (Zero, CFG1)
                    Store (0x88, PCA1)
                    If (LEqual (^^SATA.VIDI, 0x78001022))
                    {
                        Store (One, EBU1)
                        Store (0x0101, CCD1)
                        Store (One, DCP1)
                        Store (One, DRA1)
                    }
                    If (LEqual (^^SATA.VIDI, 0x78011022))
                    {
                        Store (0x0106, CCD1)
                        Store (One, DCP1)
                        Store (Zero, DRA1)
                    }
                    If (LEqual (^^SATA.VIDI, 0x78021022))
                    {
                        Store (0x0104, CCD1)
                        Store (Zero, DCP1)
                        Store (Zero, DRA1)
                    }
                    If (LEqual (^^SATA.VIDI, 0x78031022))
                    {
                        Store (0x0104, CCD1)
                        Store (Zero, DCP1)
                        Store (Zero, DRA1)
                    }
                    If (LEqual (^^SATA.VIDI, 0x78041022))
                    {
                        Store (0x0106, CCD1)
                        Store (One, DCP1)
                        Store (Zero, DRA1)
                    }
                    CreateWordField (AFCB, 0x1E, ESZ2)
                    CreateWordField (AFCB, 0x20, CCD2)
                    CreateWordField (AFCB, 0x22, EBU2)
                    CreateWordField (AFCB, 0x24, CFG2)
                    CreateWordField (AFCB, 0x26, PCA2)
                    CreateWordField (AFCB, 0x28, DCP2)
                    CreateWordField (AFCB, 0x2A, DRA2)
                    Store (0x0E, ESZ2)
                    Store (0x02, EBU2)
                    Store (Zero, CFG2)
                    Store (0x88, PCA2)
                    If (LEqual (^^SATA.VIDI, 0x78001022))
                    {
                        Store (One, EBU2)
                        Store (0x0101, CCD2)
                        Store (Zero, DCP2)
                        Store (One, DRA2)
                    }
                    If (LEqual (^^SATA.VIDI, 0x78011022))
                    {
                        Store (0x0106, CCD2)
                        Store (0x02, DCP2)
                        Store (Zero, DRA2)
                    }
                    If (LEqual (^^SATA.VIDI, 0x78021022))
                    {
                        Store (0x0104, CCD2)
                        Store (Zero, DCP2)
                        Store (Zero, DRA2)
                    }
                    If (LEqual (^^SATA.VIDI, 0x78031022))
                    {
                        Store (0x0104, CCD2)
                        Store (Zero, DCP2)
                        Store (Zero, DRA2)
                    }
                    If (LEqual (^^SATA.VIDI, 0x78041022))
                    {
                        Store (0x0106, CCD2)
                        Store (0x02, DCP2)
                        Store (Zero, DRA2)
                    }
                    CreateField (AFCB, 0x0160, 0x70, IDX3)
                    Store (DAT3, IDX3)
                    CreateField (AFCB, 0x01D0, 0x70, IDX4)
                    Store (DAT4, IDX4)
                    CreateField (AFCB, 0x0240, 0x70, IDX5)
                    CreateByteField (DAT5, 0x07, BUS5)
                    If (LEqual (^^VGA.PXEN, 0x80000000))
                    {
                        Store (0xFF, BUS5)
                    }
                    Else
                    {
                        If (LEqual (^^VGA.PXID, ^^PB2._ADR))
                        {
                            Store (^^PB2.SBUS, Local0)
                        }
                        If (LEqual (^^VGA.PXID, ^^PB3._ADR))
                        {
                            Store (^^PB3.SBUS, Local0)
                        }
                        ShiftRight (Local0, 0x08, Local0)
                        And (Local0, 0xFF, Local0)
                        Store (Local0, BUS5)
                    }
                    Store (DAT5, IDX5)
                    CreateField (AFCB, 0x02B0, 0x70, IDX6)
                    CreateByteField (DAT6, 0x07, BUS6)
                    Store (^^PB7.SBUS, Local0)
                    ShiftRight (Local0, 0x08, Local0)
                    And (Local0, 0xFF, Local0)
                    Store (Local0, BUS6)
                    Store (DAT6, IDX6)
                    CreateField (AFCB, 0x0320, 0x70, IDX7)
                    If (LEqual (EXUS, Zero))
                    {
                        CreateByteField (DAT7, 0x09, BUS7)
                        Store (^^SPB1.SBUS, Local0)
                        ShiftRight (Local0, 0x08, Local0)
                        And (Local0, 0xFF, Local0)
                        Store (Local0, BUS7)
                    }
                    Store (DAT7, IDX7)
                    CreateField (AFCB, 0x0390, 0x70, IDX8)
                    CreateByteField (DAT8, 0x07, BUS8)
                    Store (^^PB4.SBUS, Local0)
                    ShiftRight (Local0, 0x08, Local0)
                    And (Local0, 0xFF, Local0)
                    Store (Local0, BUS8)
                    Store (DAT8, IDX8)
                    CreateField (AFCB, 0x0400, 0x70, IDX9)
                    CreateByteField (DAT9, 0x07, BUS9)
                    Store (^^PB6.SBUS, Local0)
                    ShiftRight (Local0, 0x08, Local0)
                    And (Local0, 0xFF, Local0)
                    Store (Local0, BUS9)
                    Store (DAT9, IDX9)
                    CreateField (AFCB, 0x0470, 0x70, IDXA)
                    CreateByteField (DATA, 0x07, BUSA)
                    Store (^^SPB0.SBUS, Local0)
                    ShiftRight (Local0, 0x08, Local0)
                    And (Local0, 0xFF, Local0)
                    Store (Local0, BUSA)
                    Store (DATA, IDXA)
                    CreateField (AFCB, 0x04E0, 0x70, IDXB)
                    CreateByteField (DATB, 0x07, BUSB)
                    Store (^^PB5.SBUS, Local0)
                    ShiftRight (Local0, 0x08, Local0)
                    And (Local0, 0xFF, Local0)
                    Store (Local0, BUSB)
                    Store (DATB, IDXB)
                    CreateField (AFCB, 0x0550, 0x70, IDXC)
                    CreateByteField (DATC, 0x07, BUSC)
                    ShiftRight (Local0, 0x08, Local0)
                    And (Local0, 0xFF, Local0)
                    Store (Local0, BUSC)
                    Store (DATC, IDXC)
                    Store (0xB8, SSZE)
                    Store (0xAE01, P80H)
                    Return (AFCB)
                }
                Method (AFC2, 2, NotSerialized)
                {
                    Store (0xAF02, P80H)
                    CreateDWordField (AFCB, Zero, FLAG)
                    CreateByteField (AFCB, 0x04, PWST)
                    CreateByteField (AFCB, 0x05, DIND)
                    CreateWordField (CALB, Zero, SZZE)
                    CreateField (CALB, 0x10, 0x03, FUCC)
                    CreateField (CALB, 0x13, 0x05, DEVV)
                    CreateField (CALB, 0x18, 0x08, BUSS)
                    CreateByteField (CALB, 0x04, HPST)
                    Store (0x05, SZZE)
                    And (Arg0, 0xFF, PWST)
                    And (Arg1, 0xFF, DIND)
                    If (LEqual (DIND, Zero))
                    {
                        If (LOr (LEqual (^^SATA.VIDI, 0x78021022), LEqual (^^SATA.VIDI, 0x78031022)))
                        {
                            Or (FLAG, 0x80, FLAG)
                            Return (FLAG)
                        }
                        Store (One, ^^SMBS.MX57)
                        Store (One, ^^SMBS.M170)
                        If (LEqual (PWST, Zero))
                        {
                            If (LEqual (^^SATA.VIDI, 0x78001022))
                            {
                                Notify (^^SATA.PRID.P_D0, 0x03)
                            }
                            If (LOr (LEqual (^^SATA.VIDI, 0x78011022), LEqual (^^SATA.VIDI, 0x78041022)))
                            {
                                Notify (^^SATA.PRID, 0x03)
                            }
                            Store (Zero, FLAG)
                        }
                        If (LEqual (PWST, One))
                        {
                            Store (Zero, ^^SMBS.O170)
                            Store (Zero, ^^SMBS.E170)
                            Store (One, ^^SMBS.O057)
                            Store (Zero, ^^SMBS.E057)
                            Sleep (0x03E8)
                            If (LEqual (^^SATA.VIDI, 0x78001022))
                            {
                                Notify (^^SATA.PRID.P_D0, One)
                            }
                            If (LOr (LEqual (^^SATA.VIDI, 0x78011022), LEqual (^^SATA.VIDI, 0x78041022)))
                            {
                                Notify (^^SATA.PRID, One)
                            }
                            Store (One, FLAG)
                        }
                        If (LEqual (PWST, 0xFF))
                        {
                            Store (^^SMBS.O057, FLAG)
                        }
                    }
                    If (LEqual (DIND, One))
                    {
                        If (LOr (LEqual (^^SATA.VIDI, 0x78021022), LEqual (^^SATA.VIDI, 0x78031022)))
                        {
                            Or (FLAG, 0x80, FLAG)
                            Return (FLAG)
                        }
                        Store (One, ^^SMBS.MX53)
                        Store (One, ^^SMBS.M170)
                        If (LEqual (ODZC, Zero))
                        {
                            If (LEqual (PWST, Zero))
                            {
                                If (LEqual (^^SATA.VIDI, 0x78001022))
                                {
                                    Notify (^^SATA.PRT1.ODD, 0x03)
                                }
                                If (LOr (LEqual (^^SATA.VIDI, 0x78011022), LEqual (^^SATA.VIDI, 0x78041022)))
                                {
                                    If (LEqual (HDD0, One))
                                    {
                                        Notify (^^SATA.PRT1, 0x03)
                                    }
                                    Else
                                    {
                                        If (LGreaterEqual (TPOS, 0x50))
                                        {
                                            Notify (^^SATA.PRT1, 0x03)
                                        }
                                        Else
                                        {
                                            Notify (^^SATA.PRID, 0x03)
                                        }
                                    }
                                }
                                Store (Zero, FLAG)
                            }
                            If (LEqual (PWST, One))
                            {
                                Store (Zero, ^^SMBS.O170)
                                Store (Zero, ^^SMBS.E170)
                                Store (One, ^^SMBS.O053)
                                Store (Zero, ^^SMBS.E053)
                                Sleep (0x03E8)
                                If (LEqual (^^SATA.VIDI, 0x78001022))
                                {
                                    Notify (^^SATA.PRT1.ODD, One)
                                }
                                If (LOr (LEqual (^^SATA.VIDI, 0x78011022), LEqual (^^SATA.VIDI, 0x78041022)))
                                {
                                    If (LEqual (HDD0, One))
                                    {
                                        Notify (^^SATA.PRT1, One)
                                    }
                                    Else
                                    {
                                        If (LGreaterEqual (TPOS, 0x50))
                                        {
                                            Notify (^^SATA.PRT1, One)
                                        }
                                        Else
                                        {
                                            Notify (^^SATA.PRID, One)
                                        }
                                    }
                                }
                                Store (One, FLAG)
                            }
                            If (LEqual (PWST, 0xFF))
                            {
                                Store (^^SMBS.O053, FLAG)
                            }
                        }
                        Else
                        {
                            If (LEqual (^^SATA.VIDI, 0x78041022))
                            {
                                Store (^^SMBS.O053, FLAG)
                                Or (FLAG, 0xC0, FLAG)
                                Return (FLAG)
                            }
                            If (LEqual (PWST, Zero))
                            {
                                If (LEqual (^^SATA.VIDI, 0x78001022))
                                {
                                    Notify (^^SATA.ODDZ.ODD, 0x03)
                                }
                                If (LEqual (^^SATA.VIDI, 0x78011022))
                                {
                                    If (LEqual (HDD0, One))
                                    {
                                        Notify (^^SATA.ODDZ.ODD, 0x03)
                                    }
                                    Else
                                    {
                                        If (LGreaterEqual (TPOS, 0x50))
                                        {
                                            Notify (^^SATA.ODDZ.ODD, 0x03)
                                        }
                                        Else
                                        {
                                            Notify (^^SATA.PRID, 0x03)
                                        }
                                    }
                                }
                                Store (Zero, FLAG)
                            }
                            If (LEqual (PWST, One))
                            {
                                Store (Zero, ^^SMBS.O170)
                                Store (Zero, ^^SMBS.E170)
                                Store (One, ^^SMBS.O053)
                                Store (Zero, ^^SMBS.E053)
                                Sleep (0x03E8)
                                If (LEqual (^^SATA.VIDI, 0x78001022))
                                {
                                    Notify (^^SATA.ODDZ.ODD, One)
                                }
                                If (LEqual (^^SATA.VIDI, 0x78011022))
                                {
                                    If (LEqual (HDD0, One))
                                    {
                                        Notify (^^SATA.ODDZ.ODD, One)
                                    }
                                    Else
                                    {
                                        If (LGreaterEqual (TPOS, 0x50))
                                        {
                                            Notify (^^SATA.ODDZ.ODD, One)
                                        }
                                        Else
                                        {
                                            Notify (^^SATA.PRID, One)
                                        }
                                    }
                                }
                                Store (One, FLAG)
                            }
                            If (LEqual (PWST, 0xFF))
                            {
                                Store (^^SMBS.O053, FLAG)
                                If (LOr (LEqual (^^SATA.VIDI, 0x78001022), LEqual (^^SATA.VIDI, 0x78011022)))
                                {
                                    And (FLAG, 0x7F, FLAG)
                                }
                                Else
                                {
                                    Or (FLAG, 0x80, FLAG)
                                }
                                Or (FLAG, 0x40, FLAG)
                            }
                        }
                    }
                    If (LEqual (DIND, 0x02))
                    {
                        If (LOr (LEqual (^^SATA.VIDI, 0x78021022), LEqual (^^SATA.VIDI, 0x78031022)))
                        {
                            Or (FLAG, 0x80, FLAG)
                            Return (FLAG)
                        }
                        Store (One, ^^SMBS.MX58)
                        Store (One, ^^SMBS.M170)
                        If (LEqual (PWST, Zero))
                        {
                            If (LEqual (^^SATA.VIDI, 0x78001022))
                            {
                                Notify (^^SATA.PRID.P_D1, 0x03)
                            }
                            If (LOr (LEqual (^^SATA.VIDI, 0x78011022), LEqual (^^SATA.VIDI, 0x78041022)))
                            {
                                Notify (^^SATA.SECD, 0x03)
                            }
                            Store (Zero, FLAG)
                        }
                        If (LEqual (PWST, One))
                        {
                            Store (Zero, ^^SMBS.O170)
                            Store (Zero, ^^SMBS.E170)
                            Sleep (0x03E8)
                            Store (One, ^^SMBS.O058)
                            Store (Zero, ^^SMBS.E058)
                            Sleep (0x03E8)
                            Store (One, ^^SMBS.O170)
                            Store (Zero, ^^SMBS.E170)
                            If (LEqual (^^SATA.VIDI, 0x78001022))
                            {
                                Notify (^^SATA.PRID.P_D1, One)
                            }
                            If (LOr (LEqual (^^SATA.VIDI, 0x78011022), LEqual (^^SATA.VIDI, 0x78041022)))
                            {
                                Notify (^^SATA.SECD, One)
                            }
                            Store (One, FLAG)
                        }
                        If (LEqual (PWST, 0xFF))
                        {
                            Store (^^SMBS.O058, FLAG)
                        }
                    }
                    If (LEqual (DIND, 0x03))
                    {
                        Store (One, ^^SMBS.MX66)
                        If (LEqual (PWST, Zero))
                        {
                            Store (One, ^^SMBS.O066)
                            Store (Zero, ^^SMBS.E066)
                            Store (Zero, FLAG)
                        }
                        If (LEqual (PWST, One))
                        {
                            Store (Zero, ^^SMBS.O066)
                            Store (Zero, ^^SMBS.E066)
                            Sleep (0x28)
                            Store (One, FLAG)
                        }
                        If (LEqual (PWST, 0xFF))
                        {
                            Store (^^SMBS.O066, FLAG)
                        }
                    }
                    If (LEqual (DIND, 0x04))
                    {
                        Store (One, ^^SMBS.MX07)
                        If (LEqual (PWST, Zero))
                        {
                            Notify (^^OHC4.RHUB.PRT2, 0x03)
                            Store (Zero, FLAG)
                        }
                        If (LEqual (PWST, One))
                        {
                            Store (One, ^^SMBS.O007)
                            Store (Zero, ^^SMBS.E007)
                            Sleep (0x28)
                            Notify (^^OHC4.RHUB.PRT2, One)
                            Store (One, FLAG)
                        }
                        If (LEqual (PWST, 0xFF))
                        {
                            Store (^^SMBS.O007, FLAG)
                        }
                    }
                    If (LEqual (DIND, 0x05))
                    {
                        If (LEqual (^^VGA.PXEN, 0x80000000))
                        {
                            Store (^^SMBS.O045, FLAG)
                            Or (FLAG, 0x80, FLAG)
                            Return (FLAG)
                        }
                        If (LEqual (PWST, Zero))
                        {
                            Notify (^^PB2.VGA, 0x03)
                            Store (Zero, FLAG)
                        }
                        If (LEqual (PWST, One))
                        {
                            ^^VGA.PX02 (One)
                            Notify (^^PB2.VGA, One)
                            Store (One, FLAG)
                        }
                        If (LEqual (PWST, 0xFF))
                        {
                            Store (^^SMBS.O045, FLAG)
                        }
                    }
                    If (LEqual (DIND, 0x06))
                    {
                        Store (0x02, ^^SMBS.MX59)
                        Store (One, ^^SMBS.MX27)
                        If (LEqual (PWST, Zero))
                        {
                            Notify (^^PB7.XPDV, 0x03)
                            Store (Zero, FLAG)
                            Store (0xAF60, P80H)
                        }
                        If (LEqual (PWST, One))
                        {
                            Store (Zero, ^^SMBS.O027)
                            Store (Zero, ^^SMBS.E027)
                            Sleep (0x28)
                            Store (One, ^^SMBS.O059)
                            Store (Zero, ^^SMBS.E059)
                            Sleep (0x28)
                            Store (^^SMBS.MS04, Local0)
                            Or (Local0, 0x0F, Local1)
                            Store (Local1, ^^SMBS.MS04)
                            Sleep (0x28)
                            Store (One, ^^SMBS.O027)
                            Store (Zero, ^^SMBS.E027)
                            Sleep (0x28)
                            Store (One, ^^SMBS.H041)
                            Store (One, ^^SMBS.S041)
                            Store (Zero, ^^SMBS.U041)
                            Sleep (0x28)
                            Store (Zero, FUCC)
                            Store (0x07, DEVV)
                            Store (Zero, BUSS)
                            Store (One, HPST)
                            ALIB (0x06, CALB, Sleep (0x28), Store (^^PB7.XPDV.DISF, Local0), And (Local0, 
                                0xFFFFFFF9, Local0))
                            Store (Local0, ^^PB7.XPDV.DISF)
                            Notify (^^PB7.XPDV, One)
                            Store (One, FLAG)
                            Store (0xAF61, P80H)
                        }
                        If (LEqual (PWST, 0xFF))
                        {
                            Store (^^SMBS.O059, FLAG)
                        }
                    }
                    If (LEqual (DIND, 0x07))
                    {
                        Store (0x02, ^^SMBS.M200)
                        If (LEqual (PWST, Zero))
                        {
                            Notify (^^SPB1.XPDV, 0x03)
                            Store (Zero, FLAG)
                            Store (0xAE70, P80H)
                        }
                        If (LEqual (PWST, One))
                        {
                            Store (One, ^^SMBS.O200)
                            Store (Zero, ^^SMBS.E200)
                            Sleep (0x28)
                            Store (^^SMBS.MS03, Local0)
                            Or (Local0, 0xF0, Local1)
                            Store (Local1, ^^SMBS.MS03)
                            Store (One, ^^SMBS.H046)
                            Store (One, ^^SMBS.S046)
                            Store (Zero, ^^SMBS.U046)
                            Sleep (0x28)
                            Notify (^^SPB1.XPDV, One)
                            Store (One, FLAG)
                            Store (0xAE71, P80H)
                        }
                        If (LEqual (PWST, 0xFF))
                        {
                            Store (^^SMBS.O200, FLAG)
                        }
                    }
                    If (LEqual (DIND, 0x08))
                    {
                        Store (0x02, ^^SMBS.M197)
                        If (LEqual (PWST, Zero))
                        {
                            Notify (^^PB4.XPDV, 0x03)
                            Store (Zero, FLAG)
                        }
                        If (LEqual (PWST, One))
                        {
                            Store (One, ^^SMBS.O197)
                            Store (Zero, ^^SMBS.E197)
                            Sleep (0xC8)
                            Store (^^SMBS.MS01, Local0)
                            Or (Local0, 0xF0, Local1)
                            Store (Local1, ^^SMBS.MS01)
                            Store (One, ^^SMBS.H063)
                            Store (One, ^^SMBS.S063)
                            Store (Zero, ^^SMBS.U063)
                            Sleep (0xC8)
                            Store (Zero, FUCC)
                            Store (0x04, DEVV)
                            Store (Zero, BUSS)
                            Store (One, HPST)
                            ALIB (0x06, CALB, Notify (^^PB4.XPDV, One), Store (One, FLAG), If (
                                LEqual (PWST, 0xFF))
                                {
                                    Store (^^SMBS.O197, FLAG)
                                })
                        }
                    }
                    If (LEqual (DIND, 0x09))
                    {
                        Store (One, ^^SMBS.M176)
                        If (LEqual (PWST, Zero))
                        {
                            Notify (^^PB6.XPDV, 0x03)
                            Store (Zero, FLAG)
                        }
                        If (LEqual (PWST, One))
                        {
                            Sleep (0x28)
                            Store (One, ^^SMBS.O014)
                            Store (Zero, ^^SMBS.E014)
                            Store (Zero, ^^SMBS.O176)
                            Store (Zero, ^^SMBS.E176)
                            Sleep (0xC8)
                            Store (^^SMBS.MS02, Local0)
                            Or (Local0, 0x0F, Local1)
                            Store (Local1, ^^SMBS.MS02)
                            Sleep (0x28)
                            Store (One, ^^SMBS.H064)
                            Store (One, ^^SMBS.S064)
                            Store (Zero, ^^SMBS.U064)
                            Sleep (0xC8)
                            Store (Zero, FUCC)
                            Store (0x06, DEVV)
                            Store (Zero, BUSS)
                            Store (One, HPST)
                            ALIB (0x06, CALB, Notify (^^PB6.XPDV, One), Store (One, FLAG), If (
                                LEqual (PWST, 0xFF))
                                {
                                    Store (^^SMBS.O176, Local0)
                                    And (Local0, One, Local0)
                                    XOr (Local0, One, Local0)
                                    Store (Local0, FLAG)
                                })
                        }
                    }
                    If (LEqual (DIND, 0x0A))
                    {
                        Store (One, ^^SMBS.M175)
                        If (LEqual (PWST, Zero))
                        {
                            Notify (^^SPB0.XPDV, 0x03)
                            Store (Zero, FLAG)
                        }
                        If (LEqual (PWST, One))
                        {
                            Store (One, ^^SMBS.O012)
                            Store (Zero, ^^SMBS.E012)
                            Sleep (0x28)
                            Store (Zero, ^^SMBS.O175)
                            Store (Zero, ^^SMBS.E175)
                            Sleep (0xC8)
                            Notify (^^SPB0.XPDV, One)
                            Store (One, FLAG)
                        }
                        If (LEqual (PWST, 0xFF))
                        {
                            Store (^^SMBS.O175, Local0)
                            And (Local0, One, Local0)
                            XOr (Local0, One, Local0)
                            Store (Local0, FLAG)
                        }
                    }
                    If (LEqual (DIND, 0x0B))
                    {
                        Store (One, ^^SMBS.M177)
                        If (LEqual (PWST, Zero))
                        {
                            Notify (^^PB5.XPDV, 0x03)
                            Store (Zero, FLAG)
                        }
                        If (LEqual (PWST, One))
                        {
                            Sleep (0x28)
                            Store (One, ^^SMBS.O013)
                            Store (Zero, ^^SMBS.E013)
                            Store (Zero, ^^SMBS.O177)
                            Store (Zero, ^^SMBS.E177)
                            Sleep (0xC8)
                            Store (^^SMBS.MS01, Local0)
                            Or (Local0, 0x0F, Local1)
                            Store (Local1, ^^SMBS.MS01)
                            Sleep (0x28)
                            Store (One, ^^SMBS.H062)
                            Store (One, ^^SMBS.S062)
                            Store (Zero, ^^SMBS.U062)
                            Sleep (0xC8)
                            Store (Zero, FUCC)
                            Store (0x05, DEVV)
                            Store (Zero, BUSS)
                            Store (One, HPST)
                            ALIB (0x06, CALB, Notify (^^PB5.XPDV, One), Store (One, FLAG), If (
                                LEqual (PWST, 0xFF))
                                {
                                    Store (^^SMBS.O177, Local0)
                                    And (Local0, One, Local0)
                                    XOr (Local0, One, Local0)
                                    Store (Local0, FLAG)
                                })
                        }
                    }
                    If (LEqual (DIND, 0x0C))
                    {
                        Store (One, ^^SMBS.MX23)
                        If (LEqual (PWST, Zero))
                        {
                            Store (Zero, ^^SMBS.O023)
                            Store (Zero, ^^SMBS.E023)
                            Store (Zero, FLAG)
                        }
                        If (LEqual (PWST, One))
                        {
                            Store (One, ^^SMBS.O023)
                            Store (Zero, ^^SMBS.E023)
                            Sleep (0xC8)
                            Store (One, FLAG)
                        }
                        If (LEqual (PWST, 0xFF))
                        {
                            Store (^^SMBS.O023, FLAG)
                        }
                    }
                    Store (0xAE02, P80H)
                    Return (FLAG)
                }
            }
            Scope (SATA.PRID)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    Store (Zero, ^^^SMBS.O170)
                    Store (Zero, ^^^SMBS.E170)
                    Sleep (0x28)
                    If (LEqual (^^^AFD.HDD0, One))
                    {
                        Store (Zero, ^^^SMBS.O057)
                        Store (Zero, ^^^SMBS.E057)
                    }
                    Else
                    {
                        Store (Zero, ^^^SMBS.O053)
                        Store (Zero, ^^^SMBS.E053)
                    }
                    Sleep (0x28)
                    Store (One, ^^^SMBS.O170)
                    Store (Zero, ^^^SMBS.E170)
                    Sleep (0x28)
                }
            }
            Scope (SATA.PRID.P_D0)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    Store (Zero, ^^^^SMBS.O170)
                    Store (Zero, ^^^^SMBS.E170)
                    Sleep (0x28)
                    Store (Zero, ^^^^SMBS.O057)
                    Store (Zero, ^^^^SMBS.E057)
                    Sleep (0x28)
                    Store (One, ^^^^SMBS.O170)
                    Store (Zero, ^^^^SMBS.E170)
                    Sleep (0x28)
                }
            }
            Scope (SATA.PRT1)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    Store (Zero, ^^^SMBS.O170)
                    Store (Zero, ^^^SMBS.E170)
                    Sleep (0x28)
                    Store (Zero, ^^^SMBS.O053)
                    Store (Zero, ^^^SMBS.E053)
                    Sleep (0x28)
                    Store (One, ^^^SMBS.O170)
                    Store (Zero, ^^^SMBS.E170)
                    Sleep (0x28)
                }
            }
            Scope (SATA.PRT1.ODD)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    Store (Zero, ^^^^SMBS.O170)
                    Store (Zero, ^^^^SMBS.E170)
                    Sleep (0x28)
                    Store (Zero, ^^^^SMBS.O053)
                    Store (Zero, ^^^^SMBS.E053)
                    Sleep (0x28)
                    Store (One, ^^^^SMBS.O170)
                    Store (Zero, ^^^^SMBS.E170)
                    Sleep (0x28)
                }
            }
            Scope (SATA.SECD)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    Store (Zero, ^^^SMBS.O170)
                    Store (Zero, ^^^SMBS.E170)
                    Sleep (0x28)
                    Store (Zero, ^^^SMBS.O058)
                    Store (Zero, ^^^SMBS.E058)
                    Sleep (0x28)
                    Store (One, ^^^SMBS.O170)
                    Store (Zero, ^^^SMBS.E170)
                    Sleep (0x28)
                }
            }
            Scope (SATA.PRID.P_D1)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    Store (Zero, ^^^^SMBS.O170)
                    Store (Zero, ^^^^SMBS.E170)
                    Sleep (0x28)
                    Store (Zero, ^^^^SMBS.O058)
                    Store (Zero, ^^^^SMBS.E058)
                    Sleep (0x28)
                    Store (One, ^^^^SMBS.O170)
                    Store (Zero, ^^^^SMBS.E170)
                    Sleep (0x28)
                }
            }
            Scope (OHC1)
            {
                Device (RHUB)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                    }
                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)
                    }
                    Device (PRT3)
                    {
                        Name (_ADR, 0x03)
                    }
                }
            }
            Scope (EHC1)
            {
                Device (RHUB)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                    }
                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)
                    }
                    Device (PRT3)
                    {
                        Name (_ADR, 0x03)
                    }
                }
            }
            Scope (EHC2)
            {
                Device (RHUB)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }
                    }
                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            Zero, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Buffer (0x10)
                        {
                             0x81, 0x00, 0x30, 0x00
                        })
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }
                    }
                    Device (PRT3)
                    {
                        Name (_ADR, 0x03)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }
                    }
                }
            }
            Scope (OHC2)
            {
                Device (RHUB)
                {
                    Name (_ADR, Zero)
                    Device (PRT3)
                    {
                        Name (_ADR, 0x03)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            Zero, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Buffer (0x10)
                        {
                             0x81, 0x00, 0x30, 0x00
                        })
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }
                    }
                }
            }
            Scope (OHC4)
            {
                Device (RHUB)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                    }
                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)
                        Method (XEJX, 1, NotSerialized)
                        {
                            Sleep (0x28)
                            Store (Zero, ^^^^SMBS.O007)
                            Store (Zero, ^^^^SMBS.E007)
                            Sleep (0x28)
                        }
                    }
                }
            }
            Scope (PB2.VGA)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    Sleep (0x28)
                    ^^^VGA.PX02 (Zero)
                    Sleep (0x28)
                }
            }
            Scope (PB3.VGA)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    Sleep (0x28)
                    ^^^VGA.PX02 (Zero)
                    Sleep (0x28)
                }
            }
            Scope (PB7.XPDV)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    CreateWordField (CALB, Zero, SZZE)
                    CreateField (CALB, 0x10, 0x03, FUCC)
                    CreateField (CALB, 0x13, 0x05, DEVV)
                    CreateField (CALB, 0x18, 0x08, BUSS)
                    CreateByteField (CALB, 0x04, HPST)
                    Store (0x05, SZZE)
                    Store (Zero, FUCC)
                    Store (0x07, DEVV)
                    Store (Zero, BUSS)
                    Store (Zero, HPST)
                    ALIB (0x06, CALB, Sleep (0x28), Store (One, ^^^SMBS.H041), Store (One, 
                        ^^^SMBS.S041))
                    Store (One, ^^^SMBS.U041)
                    Sleep (0x28)
                    Store (^^^SMBS.MS04, Local0)
                    And (Local0, 0xFFFFFFF0, Local1)
                    Store (Local1, ^^^SMBS.MS04)
                    Sleep (0x28)
                    Store (Zero, ^^^SMBS.O170)
                    Store (Zero, ^^^SMBS.E170)
                    Sleep (0x28)
                    Store (Zero, ^^^SMBS.O059)
                    Store (Zero, ^^^SMBS.E059)
                    Sleep (0x28)
                    Store (One, ^^^SMBS.O170)
                    Store (Zero, ^^^SMBS.E170)
                    Sleep (0x28)
                }
            }
            Scope (SPB1.XPDV)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    Store (One, ^^^SMBS.H046)
                    Store (One, ^^^SMBS.S046)
                    Store (One, ^^^SMBS.U046)
                    Sleep (0x28)
                    Store (^^^SMBS.MS03, Local0)
                    And (Local0, 0xFFFFFF0F, Local1)
                    Store (Local1, ^^^SMBS.MS03)
                    Store (Zero, ^^^SMBS.O200)
                    Store (Zero, ^^^SMBS.E200)
                    Sleep (0x28)
                }
            }
            Scope (SPB0.XPDV)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    Store (One, ^^^SMBS.O175)
                    Store (Zero, ^^^SMBS.E175)
                    Store (Zero, ^^^SMBS.O012)
                    Store (Zero, ^^^SMBS.E012)
                    Sleep (0x28)
                }
            }
            Scope (PB4.XPDV)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    CreateWordField (CALB, Zero, SZZE)
                    CreateField (CALB, 0x10, 0x03, FUCC)
                    CreateField (CALB, 0x13, 0x05, DEVV)
                    CreateField (CALB, 0x18, 0x08, BUSS)
                    CreateByteField (CALB, 0x04, HPST)
                    Store (0x05, SZZE)
                    Store (Zero, FUCC)
                    Store (0x04, DEVV)
                    Store (Zero, BUSS)
                    Store (Zero, HPST)
                    ALIB (0x06, CALB, Sleep (0x28), Store (One, ^^^SMBS.H063), Store (One, 
                        ^^^SMBS.S063))
                    Store (One, ^^^SMBS.U063)
                    Sleep (0x28)
                    Store (^^^SMBS.MS01, Local0)
                    And (Local0, 0xFFFFFF0F, Local1)
                    Store (Local1, ^^^SMBS.MS01)
                    Sleep (0x28)
                    Store (Zero, ^^^SMBS.O197)
                    Store (Zero, ^^^SMBS.E197)
                    Sleep (0x28)
                }
            }
            Scope (PB5.XPDV)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    CreateWordField (CALB, Zero, SZZE)
                    CreateField (CALB, 0x10, 0x03, FUCC)
                    CreateField (CALB, 0x13, 0x05, DEVV)
                    CreateField (CALB, 0x18, 0x08, BUSS)
                    CreateByteField (CALB, 0x04, HPST)
                    Store (0x05, SZZE)
                    Store (Zero, FUCC)
                    Store (0x05, DEVV)
                    Store (Zero, BUSS)
                    Store (Zero, HPST)
                    ALIB (0x06, CALB, Sleep (0x28), Store (One, ^^^SMBS.H062), Store (One, 
                        ^^^SMBS.S062))
                    Store (One, ^^^SMBS.U062)
                    Sleep (0x28)
                    Store (^^^SMBS.MS01, Local0)
                    And (Local0, 0xFFFFFFF0, Local1)
                    Store (Local1, ^^^SMBS.MS01)
                    Sleep (0x28)
                    Store (One, ^^^SMBS.O177)
                    Store (Zero, ^^^SMBS.E177)
                    Sleep (0x28)
                    Store (Zero, ^^^SMBS.O013)
                    Store (Zero, ^^^SMBS.E013)
                    Sleep (0x28)
                }
            }
            Scope (PB6.XPDV)
            {
                Method (XEJX, 1, NotSerialized)
                {
                    CreateWordField (CALB, Zero, SZZE)
                    CreateField (CALB, 0x10, 0x03, FUCC)
                    CreateField (CALB, 0x13, 0x05, DEVV)
                    CreateField (CALB, 0x18, 0x08, BUSS)
                    CreateByteField (CALB, 0x04, HPST)
                    Store (0x05, SZZE)
                    Store (Zero, FUCC)
                    Store (0x06, DEVV)
                    Store (Zero, BUSS)
                    Store (Zero, HPST)
                    ALIB (0x06, CALB, Sleep (0x28), Store (One, ^^^SMBS.H064), Store (One, 
                        ^^^SMBS.S064))
                    Store (One, ^^^SMBS.U064)
                    Sleep (0x28)
                    Store (^^^SMBS.MS02, Local0)
                    And (Local0, 0xFFFFFFF0, Local1)
                    Store (Local1, ^^^SMBS.MS02)
                    Sleep (0x28)
                    Store (One, ^^^SMBS.O176)
                    Store (Zero, ^^^SMBS.E176)
                    Sleep (0x28)
                    Store (Zero, ^^^SMBS.O014)
                    Store (Zero, ^^^SMBS.E014)
                    Sleep (0x28)
                }
            }
            Scope (SATA)
            {
                Device (ODDZ)
                {
                    Name (_ADR, One)
                    Name (ODPS, Zero)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (ODZC, Zero))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            Return (0x0F)
                        }
                    }
                    Method (_PS0, 0, NotSerialized)
                    {
                        Store (0xDF00, P80H)
                        If (LEqual (ODZC, One))
                        {
                            If (LEqual (VIDI, 0x78041022))
                            {
                                Sleep (0x28)
                                Store (Zero, ^^^SMBS.O170)
                                Store (Zero, ^^^SMBS.E170)
                                Store (One, ^^^SMBS.O053)
                                Store (Zero, ^^^SMBS.E053)
                                Sleep (0x28)
                            }
                        }
                        Store (Zero, ODPS)
                    }
                    Method (_PS3, 0, NotSerialized)
                    {
                        Store (0xDF03, P80H)
                        If (LEqual (ODZC, One))
                        {
                            If (LEqual (VIDI, 0x78041022))
                            {
                                Sleep (0x28)
                                Store (Zero, ^^^SMBS.O170)
                                Store (Zero, ^^^SMBS.E170)
                                Store (Zero, ^^^SMBS.O053)
                                Store (Zero, ^^^SMBS.E053)
                                Sleep (0x28)
                            }
                        }
                        Store (0x03, ODPS)
                    }
                    Method (_PSC, 0, NotSerialized)
                    {
                        Return (ODPS)
                    }
                    Device (ODD)
                    {
                        Name (_ADR, Zero)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }
                        Method (XEJX, 1, NotSerialized)
                        {
                            Sleep (0x28)
                            Store (Zero, ^^^^SMBS.O170)
                            Store (Zero, ^^^^SMBS.E170)
                            Store (Zero, ^^^^SMBS.O053)
                            Store (Zero, ^^^^SMBS.E053)
                            Sleep (0x28)
                        }
                    }
                }
            }
        }
        OperationRegion (PIRQ, SystemIO, 0x0C00, 0x02)
        Field (PIRQ, ByteAcc, NoLock, Preserve)
        {
            PIDX,   8, 
            PDAT,   8
        }
        IndexField (PIDX, PDAT, ByteAcc, NoLock, Preserve)
        {
            PIRA,   8, 
            PIRB,   8, 
            PIRC,   8, 
            PIRD,   8, 
            PIRE,   8, 
            PIRF,   8, 
            PIRG,   8, 
            PIRH,   8, 
            Offset (0x10), 
            PIRS,   8, 
            Offset (0x13), 
            HDAD,   8, 
            Offset (0x15), 
            GEC,    8, 
            Offset (0x30), 
            USB1,   8, 
            USB2,   8, 
            USB3,   8, 
            USB4,   8, 
            USB5,   8, 
            USB6,   8, 
            USB7,   8, 
            Offset (0x40), 
            IDE,    8, 
            SATA,   8, 
            Offset (0x50), 
            GPP0,   8, 
            GPP1,   8, 
            GPP2,   8, 
            GPP3,   8
        }
        OperationRegion (KBDD, SystemIO, 0x64, One)
        Field (KBDD, ByteAcc, NoLock, Preserve)
        {
            PD64,   8
        }
        Method (DSPI, 0, NotSerialized)
        {
            INTA (0x1F)
            INTB (0x1F)
            INTC (0x1F)
            INTD (0x1F)
            Store (PD64, Local1)
            Store (0x1F, PIRE)
            Store (0x1F, PIRF)
            Store (0x1F, PIRG)
            Store (0x1F, PIRH)
        }
        Method (INTA, 1, NotSerialized)
        {
            Store (Arg0, PIRA)
            Store (Arg0, HDAD)
            Store (Arg0, GEC)
            Store (Arg0, GPP0)
            Store (Arg0, GPP0)
        }
        Method (INTB, 1, NotSerialized)
        {
            Store (Arg0, PIRB)
            Store (Arg0, USB2)
            Store (Arg0, USB4)
            Store (Arg0, USB6)
            Store (Arg0, GPP1)
            Store (Arg0, IDE)
        }
        Method (INTC, 1, NotSerialized)
        {
            Store (Arg0, PIRC)
            Store (Arg0, USB1)
            Store (Arg0, USB3)
            Store (Arg0, USB5)
            Store (Arg0, USB7)
            Store (Arg0, GPP2)
        }
        Method (INTD, 1, NotSerialized)
        {
            Store (Arg0, PIRD)
            Store (Arg0, SATA)
            Store (Arg0, GPP3)
        }
        Name (PRS1, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {3,4,5,7,10,11,12,14,15}
        })
        Name (BUFA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {15}
        })
        Name (IPRA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,10,11}
        })
        Name (IPRB, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,10,11}
        })
        Name (IPRC, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,10,11}
        })
        Name (IPRD, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,10,11}
        })
        Device (LNKA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, One)
            Method (_STA, 0, NotSerialized)
            {
                If (PIRA)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }
            Method (_PRS, 0, NotSerialized)
            {
                Return (PRS1)
            }
            Method (_DIS, 0, NotSerialized)
            {
                INTA (0x1F)
            }
            Method (_CRS, 0, NotSerialized)
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRA, IRQX)
                Return (BUFA)
            }
            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                Store (Local0, PIRA)
            }
        }
        Device (LNKB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x02)
            Method (_STA, 0, NotSerialized)
            {
                If (PIRB)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }
            Method (_PRS, 0, NotSerialized)
            {
                Return (PRS1)
            }
            Method (_DIS, 0, NotSerialized)
            {
                INTB (0x1F)
            }
            Method (_CRS, 0, NotSerialized)
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRB, IRQX)
                Return (BUFA)
            }
            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                Store (Local0, PIRB)
            }
        }
        Device (LNKC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x03)
            Method (_STA, 0, NotSerialized)
            {
                If (PIRC)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }
            Method (_PRS, 0, NotSerialized)
            {
                Return (PRS1)
            }
            Method (_DIS, 0, NotSerialized)
            {
                INTC (0x1F)
            }
            Method (_CRS, 0, NotSerialized)
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRC, IRQX)
                Return (BUFA)
            }
            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                Store (Local0, PIRC)
            }
        }
        Device (LNKD)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x04)
            Method (_STA, 0, NotSerialized)
            {
                If (PIRD)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }
            Method (_PRS, 0, NotSerialized)
            {
                Return (PRS1)
            }
            Method (_DIS, 0, NotSerialized)
            {
                INTD (0x1F)
            }
            Method (_CRS, 0, NotSerialized)
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRD, IRQX)
                Return (BUFA)
            }
            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                Store (Local0, PIRD)
            }
        }
        Device (LNKE)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x05)
            Method (_STA, 0, NotSerialized)
            {
                If (PIRE)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }
            Method (_PRS, 0, NotSerialized)
            {
                Return (PRS1)
            }
            Method (_DIS, 0, NotSerialized)
            {
                Store (0x1F, PIRE)
            }
            Method (_CRS, 0, NotSerialized)
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRE, IRQX)
                Return (BUFA)
            }
            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                Store (Local0, PIRE)
            }
        }
        Device (LNKF)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x06)
            Method (_STA, 0, NotSerialized)
            {
                If (PIRF)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }
            Method (_PRS, 0, NotSerialized)
            {
                Return (PRS1)
            }
            Method (_DIS, 0, NotSerialized)
            {
                Store (0x1F, PIRF)
            }
            Method (_CRS, 0, NotSerialized)
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRF, IRQX)
                Return (BUFA)
            }
            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                Store (Local0, PIRF)
            }
        }
        Device (LNKG)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x07)
            Method (_STA, 0, NotSerialized)
            {
                If (PIRG)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }
            Method (_PRS, 0, NotSerialized)
            {
                Return (PRS1)
            }
            Method (_DIS, 0, NotSerialized)
            {
                Store (0x1F, PIRG)
            }
            Method (_CRS, 0, NotSerialized)
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRG, IRQX)
                Return (BUFA)
            }
            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                Store (Local0, PIRG)
            }
        }
        Device (LNKH)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x08)
            Method (_STA, 0, NotSerialized)
            {
                If (PIRH)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }
            Method (_PRS, 0, NotSerialized)
            {
                Return (PRS1)
            }
            Method (_DIS, 0, NotSerialized)
            {
                Store (0x1F, PIRH)
            }
            Method (_CRS, 0, NotSerialized)
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRH, IRQX)
                Return (BUFA)
            }
            Method (_SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                Store (Local0, PIRH)
            }
        }
        Mutex (LSMI, 0x00)
        Method (GSMI, 1, NotSerialized)
        {
            Acquire (LSMI, 0xFFFF)
            Store (Arg0, APMD)
            Store (0xE4, APMC)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Release (LSMI)
        }
        Method (S80H, 1, NotSerialized)
        {
            Acquire (LSMI, 0xFFFF)
            Store (Arg0, APMD)
            Store (0xE5, APMC)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Stall (0xFF)
            Release (LSMI)
        }
        Method (BSMI, 1, NotSerialized)
        {
            Acquire (LSMI, 0xFFFF)
            Store (Arg0, APMD)
            Store (0xBE, APMC)
            Stall (0xFF)
            Release (LSMI)
        }
        Method (OSMI, 2, NotSerialized)
        {
            Acquire (LSMI, 0xFFFF)
            Store (Arg0, OPR0)
            Store (Arg1, OPR1)
            Store (Zero, OPR2)
            Store (0xC7, APMC)
            Stall (0xFF)
            Release (LSMI)
        }
        Method (MSMI, 2, NotSerialized)
        {
            Acquire (LSMI, 0xFFFF)
            Store (Arg0, OPR0)
            Store (Arg1, OPR1)
            Store (One, OPR2)
            Store (0xC7, APMC)
            Stall (0xFF)
            Release (LSMI)
        }
        Method (HSMI, 2, NotSerialized)
        {
            Acquire (LSMI, 0xFFFF)
            Store (Arg0, OPR0)
            Store (Arg1, OPR1)
            Store (0x02, OPR2)
            Store (0xC7, APMC)
            Stall (0xFF)
            Release (LSMI)
        }
        Method (FSMI, 2, NotSerialized)
        {
            Acquire (LSMI, 0xFFFF)
            Store (Arg0, OPR0)
            Store (Arg1, OPR1)
            Store (0x03, OPR2)
            Store (0xC7, APMC)
            Stall (0xFF)
            Release (LSMI)
        }
        Device (BAT1)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_UID, One)
            Name (CBTI, Zero)
            Name (PBTI, Zero)
            Name (BTIN, Zero)
            Name (BTCH, Zero)
            Name (BIFI, Zero)
            Name (SEL0, Zero)
            Name (BCRI, Zero)
            Name (PBIF, Package (0x0D)
            {
                One, 
                0x0FA0, 
                0x0FA0, 
                One, 
                0x2B5C, 
                0x012C, 
                Zero, 
                0x20, 
                0x20, 
                "PA3593U-1BRS", 
                "", 
                "LION      ", 
                "         "
            })
            Name (PBIX, Package (0x14)
            {
                Zero, 
                Zero, 
                0x0FA0, 
                0x0FA0, 
                One, 
                0x2B5C, 
                0x012C, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                0x20, 
                0x20, 
                "PA3593U-1BRS", 
                "     ", 
                "LION      ", 
                "         "
            })
            Name (PBST, Package (0x04)
            {
                Zero, 
                Ones, 
                Ones, 
                0x2710
            })
            Name (ERRC, Zero)
            Name (_PCL, Package (0x01)
            {
                _SB
            })
            Method (_STA, 0, NotSerialized)
            {
                If (BTIN)
                {
                    Return (0x1F)
                }
                Else
                {
                    Return (0x0F)
                }
            }
            Method (_BIF, 0, NotSerialized)
            {
                If (LEqual (BIFI, Zero))
                {
                    UBIF ()
                    Store (One, BIFI)
                }
                Return (PBIF)
            }
            Method (_BIX, 0, NotSerialized)
            {
                If (LEqual (BIFI, Zero))
                {
                    UBIX ()
                    Store (One, BIFI)
                }
                Return (PBIX)
            }
            Name (LFCC, 0x1130)
            Method (UBIF, 0, NotSerialized)
            {
                If (ECOK)
                {
                    Store (^^PCI0.LPC0.EC0.BTDC, Local0)
                    Store (^^PCI0.LPC0.EC0.LFCC, Local1)
                    Store (^^PCI0.LPC0.EC0.MBVG, Local2)
                    Store (^^PCI0.LPC0.EC0.BTMD, Local3)
                    Store (^^PCI0.LPC0.EC0.BTMN, Local4)
                    Store (^^PCI0.LPC0.EC0.BTSN, Local5)
                    Store (^^PCI0.LPC0.EC0.LION, Local6)
                    Store (Local0, Index (PBIF, One))
                    Store (Local1, Index (PBIF, 0x02))
                    Store (Local2, Index (PBIF, 0x04))
                    Store (Local1, LFCC)
                    If (LLess (Local1, 0x0FA0))
                    {
                        Store (0x64, Index (PBIF, 0x06))
                    }
                    Else
                    {
                        Store (0xC8, Index (PBIF, 0x06))
                    }
                    If (Local6)
                    {
                        Store ("NiMH", Index (PBIF, 0x0B))
                    }
                    Else
                    {
                        Store ("LION", Index (PBIF, 0x0B))
                    }
                    Store (^^PCI0.LPC0.EC0.MBPN, Index (PBIF, 0x09))
                    Store (^^PCI0.LPC0.EC0.MBMN, Index (PBIF, 0x0C))
                    Store (ITOS (ToBCD (Local5)), Index (PBIF, 0x0A))
                }
            }
            Method (UBIX, 0, NotSerialized)
            {
                If (ECOK)
                {
                    Store (^^PCI0.LPC0.EC0.BTDC, Index (PBIX, 0x02))
                    Store (^^PCI0.LPC0.EC0.LFCC, Index (PBIX, 0x03))
                    Store (^^PCI0.LPC0.EC0.MBVG, Index (PBIX, 0x05))
                    Store (^^PCI0.LPC0.EC0.LFCC, Local1)
                    Store (^^PCI0.LPC0.EC0.BTSN, Local5)
                    Store (Local1, LFCC)
                    If (LLess (Local1, 0x0FA0))
                    {
                        Store (0x64, Index (PBIX, 0x07))
                    }
                    Else
                    {
                        Store (0xC8, Index (PBIX, 0x07))
                    }
                    Store (^^PCI0.LPC0.EC0.LION, Local6)
                    If (Local6)
                    {
                        Store ("NiMH", Index (PBIX, 0x12))
                    }
                    Else
                    {
                        Store ("LION", Index (PBIX, 0x12))
                    }
                    Store (^^PCI0.LPC0.EC0.MCLC, Index (PBIX, 0x08))
                    Store (^^PCI0.LPC0.EC0.MBPN, Index (PBIX, 0x10))
                    Store (^^PCI0.LPC0.EC0.BTSN, Local5)
                    Store (ITOS (ToBCD (Local5)), Index (PBIF, 0x11))
                    Store (^^PCI0.LPC0.EC0.MBMN, Index (PBIX, 0x13))
                }
            }
            Name (RCAP, Zero)
            Method (_BST, 0, NotSerialized)
            {
                If (LEqual (BTIN, Zero))
                {
                    Store (Zero, Index (PBST, Zero))
                    Store (Ones, Index (PBST, One))
                    Store (Ones, Index (PBST, 0x02))
                    Store (Ones, Index (PBST, 0x03))
                    Return (PBST)
                }
                If (ECOK)
                {
                    Store (^^PCI0.LPC0.EC0.MBTC, Local0)
                    Sleep (0x32)
                    Store (^^PCI0.LPC0.EC0.MBRM, Local1)
                    Sleep (0x32)
                    Store (^^PCI0.LPC0.EC0.MBVG, Local2)
                    Sleep (0x32)
                    Store (^^PCI0.LPC0.EC0.MCUR, Local3)
                    Sleep (0x32)
                    Store (^^PCI0.LPC0.EC0.BTST, Local4)
                    Sleep (0x32)
                    Store (^^PCI0.LPC0.EC0.MBTF, Local5)
                    Sleep (0x32)
                    Store (^^PCI0.LPC0.EC0.ACDF, Local6)
                    Sleep (0x32)
                    If (Local6)
                    {
                        If (LEqual (Local5, One))
                        {
                            Store (Zero, Local7)
                            Store (LFCC, Local1)
                        }
                        Else
                        {
                            If (LEqual (Local0, One))
                            {
                                Store (0x02, Local7)
                            }
                            Else
                            {
                                Store (Zero, Local7)
                            }
                        }
                    }
                    Else
                    {
                        If (LAnd (Local4, One))
                        {
                            Store (One, Local7)
                        }
                        Else
                        {
                            Store (Zero, Local7)
                        }
                    }
                    And (Local4, 0x04, Local4)
                    If (LEqual (Local4, 0x04))
                    {
                        Or (Local7, Local4, Local7)
                    }
                    Store (Local7, Index (PBST, Zero))
                    If (LNot (And (Local1, 0x8000)))
                    {
                        Store (Local1, Index (PBST, 0x02))
                    }
                    If (LNot (And (Local2, 0x8000)))
                    {
                        Store (Local2, Index (PBST, 0x03))
                    }
                    If (LAnd (Local3, 0x8000))
                    {
                        If (LNotEqual (Local3, 0xFFFF))
                        {
                            Not (Local3, Local3)
                            Increment (Local3)
                            And (Local3, 0xFFFF, Local3)
                        }
                    }
                    Store (Local3, Index (PBST, One))
                }
                Return (PBST)
            }
            Method (BSTA, 0, NotSerialized)
            {
                If (ECOK)
                {
                    Store (^^PCI0.LPC0.EC0.MBTS, Local0)
                    If (LEqual (Local0, One))
                    {
                        If (LEqual (BTIN, Zero))
                        {
                            Store (One, BTCH)
                            Store (Zero, BIFI)
                        }
                        Store (One, BTIN)
                    }
                    Else
                    {
                        If (LEqual (BTIN, One))
                        {
                            Store (One, BTCH)
                            Store (Zero, BIFI)
                        }
                        Store (Zero, BTIN)
                    }
                }
            }
        }
        Device (ACAD)
        {
            Name (_HID, "ACPI0003")
            Name (_PCL, Package (0x01)
            {
                _SB
            })
            Name (ACST, Zero)
            Method (_PSR, 0, NotSerialized)
            {
                If (ECOK)
                {
                    Store (^^PCI0.LPC0.EC0.ACDF, ACST)
                }
                Else
                {
                    Store (One, ACST)
                }
                If (ACST)
                {
                    Store (One, Local0)
                    Store (Zero, ^^BAT1.BCRI)
                }
                Else
                {
                    Store (Zero, Local0)
                }
                Return (Local0)
            }
        }
        Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Name (LSTS, Zero)
            Method (_LID, 0, NotSerialized)
            {
                If (LEqual (INS3, 0x55))
                {
                    Store (Zero, INS3)
                    Return (One)
                }
                If (ECOK)
                {
                    Store (^^PCI0.LPC0.EC0.LIDS, LSTS)
                    Store (LSTS, P80H)
                }
                Else
                {
                    Store (One, LSTS)
                }
                Return (LSTS)
            }
            Name (_PRW, Package (0x02)
            {
                0x17, 
                0x05
            })
            Method (_PSW, 1, NotSerialized)
            {
                If (Arg0)
                {
                    Store (One, SSTS)
                }
                Else
                {
                    Store (Zero, SSTS)
                }
            }
        }
        Scope (\_TZ)
        {
            ThermalZone (THRM)
            {
                Method (_TMP, 0, NotSerialized)
                {
                    If (\_SB.ECOK)
                    {
                        Store (\_SB.PCI0.LPC0.EC0.CTMP, Local0)
                        Return (Add (Multiply (Local0, 0x0A), 0x0AAC))
                    }
                    Return (0x0C3C)
                }
                Method (_PSL, 0, Serialized)
                {
                    Return (Package (0x01)
                    {
                        \_PR.C000
                    })
                }
                Method (_CRT, 0, Serialized)
                {
                    Return (0x0EC6)
                }
                Method (_PSV, 0, Serialized)
                {
                    Return (0x0E80)
                }
                Name (_TC1, 0x02)
                Name (_TC2, 0x03)
                Name (_TSP, 0x28)
            }
        }
        Device (BT)
        {
            Name (_HID, EisaId ("TOS6205"))
            Method (_STA, 0, NotSerialized)
            {
                If (BTEN)
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (Zero)
                }
            }
            Method (DUSB, 0, NotSerialized)
            {
                If (ECOK)
                {
                    Store (Zero, ^^PCI0.LPC0.EC0.BLTH)
                }
            }
            Method (AUSB, 0, NotSerialized)
            {
                If (ECOK)
                {
                    Store (One, ^^PCI0.LPC0.EC0.BLTH)
                }
            }
            Method (BTPO, 0, NotSerialized)
            {
                Store (BTEN, ^^PCI0.LPC0.EC0.BLTH)
                FSMI (0x25, Zero)
            }
            Method (BTPF, 0, NotSerialized)
            {
                Store (BTEN, ^^PCI0.LPC0.EC0.BLTH)
                FSMI (0x26, Zero)
            }
            Method (BTST, 0, NotSerialized)
            {
                If (ECOK)
                {
                    Store (^^PCI0.LPC0.EC0.KSWH, Local0)
                    XOr (Local0, One, Local0)
                    Store (^^PCI0.LPC0.EC0.BTHE, Local7)
                    If (Local0)
                    {
                        ShiftLeft (Local7, 0x06, Local6)
                        ShiftLeft (Local7, 0x07, Local7)
                        Or (Local7, Local6, Local1)
                        Or (Local0, Local1, Local2)
                        Return (Local2)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
            }
        }
        Device (QWMI)
        {
            Name (_HID, "PNP0C14")
            Name (_UID, One)
            Name (_WDG, Buffer (0x3C)
            {
                /* 0000 */   0x69, 0xA4, 0x2B, 0xC6, 0x2C, 0x69, 0x4C, 0x4A,
                /* 0008 */   0x98, 0x69, 0x31, 0xB8, 0x3E, 0x0C, 0x76, 0x71,
                /* 0010 */   0x41, 0x41, 0x01, 0x00, 0x76, 0xF0, 0x58, 0x15,
                /* 0018 */   0x69, 0x3C, 0xDB, 0x4C, 0x80, 0xA5, 0xD2, 0xF3,
                /* 0020 */   0x9C, 0x62, 0x94, 0x9B, 0x41, 0x42, 0x01, 0x00,
                /* 0028 */   0x21, 0x12, 0x90, 0x05, 0x66, 0xD5, 0xD1, 0x11,
                /* 0030 */   0xB2, 0xF0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0x10,
                /* 0038 */   0x42, 0x41, 0x01, 0x00
            })
            Name (FCOD, Zero)
            Name (RCOD, Zero)
            Name (SFAI, Zero)
            Name (SFLG, Zero)
            Name (UFAI, Zero)
            Name (UFLG, Zero)
            Name (VERB, Buffer (0x0201)
            {
                 0x00
            })
            CreateField (VERB, Zero, 0x08, QMJV)
            CreateField (VERB, 0x08, 0x08, QMNV)
            Name (FBUF, Buffer (0x0201)
            {
                 0x00
            })
            CreateField (FBUF, Zero, 0x08, F000)
            CreateField (FBUF, 0x08, 0x08, F001)
            Name (RBUF, Buffer (0x0201)
            {
                 0x00
            })
            Name (QBUF, Buffer (0x0201)
            {
                 0x00
            })
            CreateField (QBUF, Zero, 0x08, Q000)
            CreateField (QBUF, 0x08, 0x08, Q001)
            CreateField (QBUF, 0x10, 0x08, Q002)
            CreateField (QBUF, 0x18, 0x08, Q003)
            CreateField (QBUF, 0x20, 0x08, Q004)
            CreateField (QBUF, 0x28, 0x08, Q005)
            CreateField (QBUF, 0x30, 0x08, Q006)
            CreateField (QBUF, 0x38, 0x08, Q007)
            CreateField (QBUF, 0x40, 0x08, Q008)
            CreateField (QBUF, 0x48, 0x08, Q009)
            CreateField (QBUF, 0x50, 0x08, Q010)
            CreateField (QBUF, 0x58, 0x08, Q011)
            CreateField (QBUF, 0x60, 0x08, Q012)
            CreateField (QBUF, 0x68, 0x08, Q013)
            CreateField (QBUF, 0x70, 0x08, Q014)
            CreateField (QBUF, 0x78, 0x08, Q015)
            CreateField (QBUF, 0x80, 0x08, Q016)
            CreateField (QBUF, 0x88, 0x08, Q017)
            CreateField (QBUF, 0x90, 0x08, Q018)
            CreateField (QBUF, Zero, 0xA0, QL20)
            CreateField (QBUF, Zero, 0x1000, Q512)
            CreateField (QBUF, 0x1000, 0x08, QZZZ)
            Method (WQAA, 1, NotSerialized)
            {
                Store (One, QMJV)
                Store (One, QMNV)
                Return (VERB)
            }
            Method (WSAA, 2, NotSerialized)
            {
                Store (Arg1, FBUF)
                Store (F000, FCOD)
                Store (F001, RCOD)
                If (LEqual (RCOD, One))
                {
                    RQ01 (Arg0)
                }
                If (LEqual (RCOD, 0x02))
                {
                    RQ02 (Arg0)
                }
                If (LEqual (RCOD, 0x03))
                {
                    RQ03 (Arg0)
                }
                If (LEqual (RCOD, 0x04))
                {
                    RQ04 (Arg0)
                }
                If (LEqual (RCOD, 0x06))
                {
                    RQ06 (Arg0)
                }
                If (LEqual (RCOD, 0x07))
                {
                    RQ07 (Arg0)
                }
                If (LEqual (RCOD, 0x08))
                {
                    RQ08 (Arg0)
                }
                If (LEqual (RCOD, 0x09))
                {
                    RQ09 (Arg0)
                }
                If (LEqual (RCOD, 0x0A))
                {
                    RQ0A (Arg0)
                }
                If (LEqual (RCOD, 0x0B))
                {
                    RQ0B (Arg0)
                }
                If (LEqual (RCOD, 0x0C))
                {
                    RQ0C (Arg0)
                }
                If (LEqual (RCOD, 0x12))
                {
                    RQ12 (Arg0)
                }
                If (LEqual (RCOD, 0x13))
                {
                    RQ13 (Arg0)
                }
                If (LEqual (RCOD, 0x14))
                {
                    RQ14 (Arg0)
                }
                If (LEqual (RCOD, 0x15))
                {
                    RQ15 (Arg0)
                }
                If (LEqual (RCOD, 0x16))
                {
                    RQ16 (Arg0)
                }
                If (LEqual (RCOD, 0x17))
                {
                    RQ17 (Arg0)
                }
                If (LEqual (RCOD, 0x19))
                {
                    RQ19 (Arg0)
                }
                If (LEqual (RCOD, 0x20))
                {
                    RQ20 (Arg0)
                }
                If (LEqual (RCOD, 0x21))
                {
                    RQ21 (Arg0)
                }
                If (LEqual (RCOD, 0x22))
                {
                    RQ22 (Arg0)
                }
                If (LEqual (RCOD, 0x24))
                {
                    RQ23 (Arg0)
                }
                If (LEqual (RCOD, 0xF0))
                {
                    RQF0 (Arg0)
                }
                Store (QBUF, RBUF)
            }
            Method (WQAB, 1, NotSerialized)
            {
                Return (RBUF)
            }
            Method (WSAB, 2, NotSerialized)
            {
                If (LEqual (RCOD, One))
                {
                    RS01 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x02))
                {
                    RS02 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x03))
                {
                    RS03 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x04))
                {
                    RS04 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x06))
                {
                    RS06 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x07))
                {
                    RS07 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x08))
                {
                    RS08 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x09))
                {
                    RS09 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x0A))
                {
                    RS0A (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x0B))
                {
                    RS0B (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x0C))
                {
                    RS0C (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x12))
                {
                    RS12 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x14))
                {
                    RS14 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x15))
                {
                    RS15 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x16))
                {
                    RS16 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x17))
                {
                    RS17 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x19))
                {
                    RS19 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x20))
                {
                    RS20 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x21))
                {
                    RS21 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x22))
                {
                    RS22 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0x24))
                {
                    RS23 (Arg0, Arg1)
                }
                If (LEqual (RCOD, 0xF0))
                {
                    RSF0 (Arg0, Arg1)
                }
                Store (QBUF, RBUF)
            }
            Method (RQ01, 1, NotSerialized)
            {
                If (LEqual (FCOD, 0x02))
                {
                    OSMI (One, Zero)
                    Store (OWNS, Q512)
                }
                If (LEqual (FCOD, 0x05))
                {
                    Store (SFAI, Q000)
                }
                If (LEqual (FCOD, 0x04))
                {
                    If (LEqual (SFLG, Zero))
                    {
                        Store (One, Q000)
                    }
                    Else
                    {
                        Store (Zero, Q000)
                    }
                }
            }
            Method (RS01, 2, NotSerialized)
            {
                Store (Arg1, Q512)
                Store (Q512, OWNS)
                If (LEqual (FCOD, 0x04))
                {
                    Store (Zero, SFLG)
                    OSMI (One, 0x04)
                    Store (OWNS, Q512)
                    Store (Q000, SFLG)
                    If (LEqual (SFLG, Zero))
                    {
                        Store (One, Q000)
                    }
                    Else
                    {
                        Store (Zero, Q000)
                    }
                }
                If (LEqual (FCOD, One))
                {
                    OSMI (One, 0x02)
                }
                If (LEqual (FCOD, 0x03))
                {
                    Store (One, OG13)
                    OSMI (One, 0x03)
                }
                If (LEqual (FCOD, 0x05))
                {
                    Store (OWNS, Q512)
                    Store (Q000, SFAI)
                }
            }
            Method (RQ02, 1, NotSerialized)
            {
                If (LEqual (FCOD, 0x02))
                {
                    OSMI (0x02, Zero)
                    Store (OWNS, Q512)
                }
                If (LEqual (FCOD, 0x05))
                {
                    Store (UFAI, Q000)
                }
                If (LEqual (FCOD, 0x04))
                {
                    If (LEqual (UFLG, Zero))
                    {
                        Store (One, Q000)
                    }
                    Else
                    {
                        Store (Zero, Q000)
                    }
                }
            }
            Method (RS02, 2, NotSerialized)
            {
                Store (Arg1, OWNS)
                If (LEqual (FCOD, 0x04))
                {
                    Store (Zero, UFLG)
                    OSMI (0x02, 0x04)
                    Store (OWNS, Q512)
                    Store (Q000, UFLG)
                }
                If (LEqual (FCOD, One))
                {
                    OSMI (0x02, 0x02)
                }
                If (LEqual (FCOD, 0x03))
                {
                    OSMI (0x02, 0x03)
                }
                If (LEqual (FCOD, 0x05))
                {
                    Store (OWNS, Q512)
                    Store (Q000, UFAI)
                }
            }
            Method (RQ03, 1, NotSerialized)
            {
                If (LEqual (FCOD, One))
                {
                    Store (Zero, Q000)
                }
                Else
                {
                    Store (OG04, Q000)
                }
            }
            Method (RS03, 2, NotSerialized)
            {
                Store (Arg1, OG04)
                OSMI (0x03, One)
            }
            Method (RQ04, 1, NotSerialized)
            {
                If (LEqual (FCOD, One))
                {
                    Store (Zero, Q000)
                    Store (0x08, Q001)
                    Store (0x12, Q002)
                    Store (0x04, Q003)
                    Store (0x11, Q004)
                    Store (0x3F, Q005)
                }
                Else
                {
                    OSMI (0x04, Zero)
                    Store (OWNS, Q512)
                }
            }
            Method (RS04, 2, NotSerialized)
            {
                Store (Arg1, OWNS)
                OSMI (0x04, One)
            }
            Method (RQ06, 1, NotSerialized)
            {
                If (LEqual (FCOD, One))
                {
                    Store (Zero, Q000)
                }
                Else
                {
                    Store (OG05, Q000)
                }
            }
            Method (RS06, 2, NotSerialized)
            {
                Store (Arg1, OG05)
                OSMI (0x06, One)
            }
            Method (RQ07, 1, NotSerialized)
            {
                If (LEqual (FCOD, One))
                {
                    Store (One, Q000)
                }
                Else
                {
                    Store (OG00, Q000)
                }
            }
            Method (RS07, 2, NotSerialized)
            {
                Store (Arg1, OG00)
                OSMI (0x07, One)
            }
            Method (RQ08, 1, NotSerialized)
            {
                If (LEqual (FCOD, One))
                {
                    Store (One, Q000)
                }
                Else
                {
                    Store (OG01, Q000)
                }
            }
            Method (RS08, 2, NotSerialized)
            {
                Store (Arg1, OG01)
                OSMI (0x08, One)
            }
            Method (RQ09, 1, NotSerialized)
            {
                OSMI (Zero, Zero)
                Store (OWNS, Q512)
                Store (Zero, QZZZ)
            }
            Method (RS09, 2, NotSerialized)
            {
                Store (Arg1, OWNS)
                OSMI (Zero, One)
            }
            Method (RQ0A, 1, NotSerialized)
            {
                Store (OG15, Q000)
            }
            Method (RS0A, 2, NotSerialized)
            {
            }
            Method (RQ0B, 1, NotSerialized)
            {
                Store (OG13, Q000)
            }
            Method (RS0B, 2, NotSerialized)
            {
                Store (Arg1, OG13)
                OSMI (0x0A, One)
            }
            Method (RQ0C, 1, NotSerialized)
            {
                OSMI (0x0B, Zero)
                Store (OWNS, Q512)
            }
            Method (RS0C, 2, NotSerialized)
            {
            }
            Method (RQ12, 1, NotSerialized)
            {
                OSMI (0x10, Zero)
                Store (OWNS, Q512)
                Store (Zero, Q001)
                Store (Zero, Q003)
                Store (TPDV, Q004)
                Store (One, Q005)
                Store (Zero, Q006)
                Store (Zero, Q007)
                Store (^^PCI0.LPC0.EC0.PLID, Q008)
                Store (Zero, Q009)
                Store (Zero, Q018)
            }
            Method (RS12, 2, NotSerialized)
            {
            }
            Method (RQ13, 1, NotSerialized)
            {
                OSMI (0x12, Zero)
                Store (DVDI, QL20)
            }
            Method (RQ14, 1, NotSerialized)
            {
                If (LEqual (FCOD, One))
                {
                    Store (One, Q000)
                }
                Else
                {
                    Store (OG10, Q000)
                }
            }
            Method (RS14, 2, NotSerialized)
            {
                Store (Arg1, OG10)
                OSMI (0x13, One)
            }
            Method (RQ15, 1, NotSerialized)
            {
                If (LEqual (FCOD, One))
                {
                    Store (Zero, Q000)
                }
                Else
                {
                    Store (OG02, Q000)
                }
            }
            Method (RS15, 2, NotSerialized)
            {
                Store (Arg1, OG02)
                OSMI (0x14, One)
            }
            Method (RQ16, 1, NotSerialized)
            {
            }
            Method (RS16, 2, NotSerialized)
            {
            }
            Method (RQ17, 1, NotSerialized)
            {
                If (LEqual (FCOD, One))
                {
                    Store (One, Q000)
                }
                Else
                {
                    Store (OG11, Q000)
                }
            }
            Method (RS17, 2, NotSerialized)
            {
                Store (Arg1, OG11)
                OSMI (0x16, One)
            }
            Method (RQ19, 1, NotSerialized)
            {
                Store (^^PCI0.LPC0.EC0.BLVL, Q001)
                Store (0x08, Q000)
                Store (One, Q002)
            }
            Name (BLVL, Zero)
            Method (RS19, 2, NotSerialized)
            {
                Store (Arg1, Q512)
                Store (Q000, BLVL)
                Store (BLVL, ^^PCI0.LPC0.EC0.BLVL)
                ^^PCI0.LPC0.EC0.SVBN ()
            }
            Method (RQ20, 1, NotSerialized)
            {
                If (LEqual (FCOD, One))
                {
                    Store (One, Q000)
                }
                Else
                {
                    Store (OG07, Q000)
                }
            }
            Method (RS20, 2, NotSerialized)
            {
                Store (Arg1, OG07)
                OSMI (0x18, One)
            }
            Method (RQ21, 1, NotSerialized)
            {
                If (LEqual (FCOD, One))
                {
                    Store (Zero, Q000)
                }
                Else
                {
                    Store (OG08, Q000)
                }
            }
            Method (RS21, 2, NotSerialized)
            {
                Store (Arg1, OG08)
                OSMI (0x19, One)
            }
            Method (RQ22, 1, NotSerialized)
            {
                If (LEqual (FCOD, One))
                {
                    Store (One, Q000)
                }
                Else
                {
                    Store (OG09, Q000)
                }
            }
            Method (RS22, 2, NotSerialized)
            {
                Store (Arg1, OG09)
                OSMI (0x1A, One)
            }
            Method (RQF0, 1, NotSerialized)
            {
            }
            Method (RSF0, 2, NotSerialized)
            {
                Store (Arg1, Q512)
                If (LEqual (ToInteger (Q000), One))
                {
                    OSMI (0x17, One)
                }
            }
            Method (RQ23, 1, NotSerialized)
            {
                If (LEqual (FCOD, One))
                {
                    Store (Zero, Q000)
                }
                Else
                {
                    Store (OG16, Q000)
                }
            }
            Method (RS23, 2, NotSerialized)
            {
                Store (ToInteger (Arg1), OG16)
                OSMI (0x1C, One)
            }
            Name (WQBA, Buffer (0x02C0)
            {
                /* 0000 */   0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,
                /* 0008 */   0xB0, 0x02, 0x00, 0x00, 0xC0, 0x08, 0x00, 0x00,
                /* 0010 */   0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,
                /* 0018 */   0x28, 0x5F, 0x84, 0x00, 0x01, 0x06, 0x18, 0x42,
                /* 0020 */   0x10, 0x05, 0x10, 0x92, 0x28, 0x81, 0x42, 0x04,
                /* 0028 */   0x12, 0x4F, 0x24, 0x51, 0x30, 0x28, 0x0D, 0x20,
                /* 0030 */   0x92, 0x04, 0x21, 0x17, 0x4C, 0x4C, 0x80, 0x10,
                /* 0038 */   0x58, 0x0B, 0x30, 0x2F, 0x40, 0xB7, 0x00, 0xC3,
                /* 0040 */   0x02, 0x6C, 0x0B, 0x30, 0x2D, 0xC0, 0x31, 0x90,
                /* 0048 */   0xFA, 0xF7, 0x87, 0x28, 0x0D, 0x44, 0x9B, 0x10,
                /* 0050 */   0x01, 0x91, 0x02, 0x21, 0xA1, 0x02, 0x94, 0x0B,
                /* 0058 */   0xF0, 0x2D, 0x40, 0x3B, 0xA2, 0x24, 0x0B, 0xB0,
                /* 0060 */   0x0C, 0x23, 0x02, 0x7B, 0x15, 0x60, 0x53, 0x80,
                /* 0068 */   0x49, 0x34, 0x04, 0x41, 0x39, 0xC3, 0x40, 0xC1,
                /* 0070 */   0x1B, 0x90, 0x0D, 0x82, 0xC9, 0x1D, 0x04, 0x4A,
                /* 0078 */   0xCC, 0x68, 0xC8, 0x0C, 0x3A, 0x9F, 0x8B, 0xE0,
                /* 0080 */   0x4F, 0xA2, 0x70, 0x01, 0xD2, 0x31, 0x34, 0x82,
                /* 0088 */   0x23, 0x4A, 0xD0, 0xA3, 0x00, 0xD9, 0x28, 0x52,
                /* 0090 */   0x3C, 0x27, 0x81, 0x14, 0x24, 0xC0, 0x21, 0x16,
                /* 0098 */   0xC1, 0x3B, 0x11, 0x03, 0x79, 0x0E, 0x71, 0x3C,
                /* 00A0 */   0x20, 0x6B, 0x46, 0x14, 0x7E, 0x94, 0x04, 0x46,
                /* 00A8 */   0x3B, 0x0E, 0x8C, 0x8C, 0x11, 0x10, 0xAB, 0xA8,
                /* 00B0 */   0x9A, 0x48, 0x02, 0xBB, 0x1F, 0x81, 0xB4, 0x09,
                /* 00B8 */   0x50, 0x26, 0x40, 0xA1, 0x00, 0x83, 0xA3, 0x14,
                /* 00C0 */   0x4A, 0x73, 0x02, 0x6C, 0x61, 0x10, 0xA4, 0x60,
                /* 00C8 */   0x51, 0x22, 0x9D, 0x41, 0x88, 0x43, 0x88, 0x12,
                /* 00D0 */   0xA9, 0x38, 0x3C, 0xEA, 0x4C, 0x80, 0x31, 0x5C,
                /* 00D8 */   0xE1, 0x04, 0x69, 0x51, 0x80, 0x30, 0x4C, 0x79,
                /* 00E0 */   0x03, 0x13, 0x44, 0xA8, 0xF6, 0x07, 0x41, 0x86,
                /* 00E8 */   0x8D, 0x1B, 0xBF, 0xE7, 0xE6, 0x01, 0x9C, 0x9B,
                /* 00F0 */   0xC7, 0xC4, 0x26, 0xDB, 0xE9, 0x58, 0x05, 0x5E,
                /* 00F8 */   0x3C, 0xAA, 0x30, 0x0E, 0x22, 0x81, 0x83, 0x3D,
                /* 0100 */   0x0A, 0x64, 0x01, 0x44, 0x91, 0xE0, 0x51, 0xA3,
                /* 0108 */   0x4E, 0x70, 0xF0, 0x9E, 0xA4, 0x87, 0x7C, 0x94,
                /* 0110 */   0x27, 0x10, 0xE4, 0x20, 0xAD, 0xF3, 0x48, 0x40,
                /* 0118 */   0xC6, 0xC0, 0xB0, 0x12, 0x74, 0x70, 0x0C, 0x80,
                /* 0120 */   0xE2, 0x1A, 0x50, 0x97, 0x83, 0xC7, 0x00, 0x36,
                /* 0128 */   0xEA, 0x04, 0xFF, 0xFF, 0x70, 0x7C, 0xBC, 0xF6,
                /* 0130 */   0x7E, 0x09, 0x20, 0x23, 0x37, 0x20, 0x1B, 0xD1,
                /* 0138 */   0xC1, 0x61, 0x07, 0x79, 0x32, 0x47, 0x56, 0xAA,
                /* 0140 */   0x00, 0xB3, 0xC7, 0x03, 0x0D, 0x34, 0xC1, 0xF1,
                /* 0148 */   0x18, 0xD9, 0xF3, 0xE9, 0x19, 0x92, 0x1C, 0x0D,
                /* 0150 */   0x3C, 0x08, 0x3E, 0x32, 0x43, 0x7B, 0xFA, 0xA7,
                /* 0158 */   0xF5, 0x62, 0xE0, 0x93, 0xC2, 0x61, 0xB1, 0x71,
                /* 0160 */   0x3F, 0x4A, 0xB0, 0x71, 0xC0, 0xBF, 0x01, 0x1C,
                /* 0168 */   0xF7, 0xE3, 0x81, 0xB1, 0xCF, 0xD3, 0xC7, 0x05,
                /* 0170 */   0x51, 0xCB, 0xC8, 0xE2, 0x3C, 0x0E, 0xD4, 0x45,
                /* 0178 */   0xC1, 0x83, 0x8D, 0x10, 0xD1, 0xD7, 0x88, 0x04,
                /* 0180 */   0xA3, 0x43, 0x68, 0xEC, 0x16, 0x35, 0x5E, 0x7A,
                /* 0188 */   0xA0, 0xE0, 0x67, 0x88, 0xF7, 0x0A, 0x9F, 0x12,
                /* 0190 */   0x82, 0x1E, 0xBB, 0x87, 0x12, 0xD6, 0x23, 0xF2,
                /* 0198 */   0x31, 0x02, 0xB8, 0x9D, 0x03, 0xE0, 0x1F, 0x0B,
                /* 01A0 */   0x3C, 0x32, 0x3E, 0x22, 0x8F, 0xF7, 0xD4, 0x8B,
                /* 01A8 */   0xA5, 0xF1, 0x61, 0x41, 0xB2, 0xC6, 0x0D, 0xDD,
                /* 01B0 */   0xFA, 0x69, 0x80, 0x8C, 0xE1, 0x19, 0xC0, 0x22,
                /* 01B8 */   0x61, 0xD1, 0xE3, 0xB6, 0x5F, 0x01, 0x08, 0xA1,
                /* 01C0 */   0xCB, 0x9C, 0x84, 0x0E, 0x11, 0x11, 0x12, 0x44,
                /* 01C8 */   0x0F, 0x74, 0x84, 0xB8, 0xC9, 0xE1, 0xFE, 0xFF,
                /* 01D0 */   0x93, 0xE3, 0x43, 0xC0, 0x8D, 0xD9, 0x43, 0xE0,
                /* 01D8 */   0xA7, 0x88, 0x33, 0x38, 0x9E, 0xB3, 0x39, 0x84,
                /* 01E0 */   0xE3, 0x89, 0x72, 0x16, 0x07, 0xE4, 0xE9, 0x1A,
                /* 01E8 */   0xE1, 0x04, 0x1E, 0x00, 0x1E, 0x52, 0x3C, 0x02,
                /* 01F0 */   0x4F, 0xEA, 0x2C, 0x5E, 0x26, 0x3C, 0x02, 0x8C,
                /* 01F8 */   0xA4, 0xE3, 0x0B, 0x95, 0xFD, 0x14, 0x90, 0x08,
                /* 0200 */   0x18, 0xD4, 0x09, 0x06, 0x78, 0x63, 0x3E, 0x2B,
                /* 0208 */   0x80, 0x65, 0xA8, 0xC7, 0x18, 0xE8, 0x44, 0x3C,
                /* 0210 */   0x16, 0x23, 0xC6, 0x8A, 0xF2, 0x8C, 0x10, 0xFF,
                /* 0218 */   0xBC, 0xC2, 0x44, 0x78, 0x43, 0x08, 0xE4, 0x03,
                /* 0220 */   0x84, 0x8F, 0x2F, 0xB0, 0x2F, 0x2B, 0xAD, 0x21,
                /* 0228 */   0xE8, 0x60, 0x50, 0xE3, 0x51, 0x43, 0x27, 0x16,
                /* 0230 */   0x5F, 0x5B, 0x7C, 0x86, 0xF1, 0xC9, 0xC5, 0xA7,
                /* 0238 */   0x17, 0x4F, 0xE0, 0x95, 0x20, 0x4A, 0xC0, 0x78,
                /* 0240 */   0x4F, 0x01, 0x41, 0xA3, 0x04, 0x7F, 0x8A, 0x09,
                /* 0248 */   0x1B, 0x32, 0xE0, 0xCB, 0x0C, 0x03, 0x89, 0x19,
                /* 0250 */   0xE2, 0x89, 0xE3, 0xF1, 0x05, 0xCC, 0x71, 0x8E,
                /* 0258 */   0x2F, 0xA0, 0xF9, 0xFF, 0x1F, 0x5F, 0x00, 0xBF,
                /* 0260 */   0x22, 0x8E, 0x2F, 0xE8, 0xC1, 0x59, 0xEB, 0xF8,
                /* 0268 */   0xC9, 0x51, 0xE1, 0x34, 0x1C, 0xFA, 0xF4, 0x02,
                /* 0270 */   0xBA, 0x23, 0x04, 0xF0, 0x39, 0xBA, 0x00, 0xCF,
                /* 0278 */   0x6B, 0x85, 0x8F, 0x2E, 0x70, 0xFE, 0xFF, 0x47,
                /* 0280 */   0x17, 0xBC, 0xD2, 0x69, 0x09, 0xFC, 0x10, 0x8D,
                /* 0288 */   0x7E, 0x44, 0x67, 0xF0, 0xAA, 0xC3, 0xAE, 0x0B,
                /* 0290 */   0x3E, 0xB9, 0x00, 0x23, 0x85, 0x36, 0x7D, 0x6A,
                /* 0298 */   0x34, 0x6A, 0xD5, 0xA0, 0x4C, 0x8D, 0x32, 0x0D,
                /* 02A0 */   0x6A, 0xF5, 0xA9, 0xD4, 0x98, 0xB1, 0x73, 0x8B,
                /* 02A8 */   0xE5, 0x0C, 0x53, 0x83, 0xB5, 0x78, 0x10, 0x1A,
                /* 02B0 */   0x85, 0x42, 0x20, 0x96, 0x4A, 0x27, 0x10, 0x07,
                /* 02B8 */   0x03, 0xA1, 0xF1, 0x3C, 0x80, 0xB0, 0xFF, 0x3F
            })
        }
        Device (TVAP)
        {
            Name (_HID, EisaId ("TOS1900"))
            Method (_STA, 0, NotSerialized)
            {
                If (LGreaterEqual (MYOS, 0x07D6))
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (Zero)
                }
            }
            Name (_DDN, "VALZeneral")
            Name (VZOK, Zero)
            Name (VBFG, 0x0A)
            Name (VALF, Zero)
            Name (VRFS, Zero)
            Name (SPFG, Zero)
            Name (INTC, Zero)
            Method (ENAB, 0, NotSerialized)
            {
                Store (One, VZOK)
                Store (^^PCI0.LPC0.EC0.RFST, Local0)
                Store (Local0, VRFS)
            }
            Method (EVNT, 1, NotSerialized)
            {
                While (VZOK)
                {
                    If (LEqual (VZOK, One))
                    {
                        Store (Arg0, VZOK)
                        Notify (TVAP, 0x80)
                        Return (Zero)
                    }
                    Else
                    {
                        If (LEqual (VALF, 0x1E))
                        {
                            Store (One, VZOK)
                            Store (Zero, VALF)
                            Return (Zero)
                        }
                        Sleep (0x64)
                        Add (VALF, One, VALF)
                    }
                }
            }
            Name (HMBB, Buffer (0x1C) {})
            CreateField (HMBB, Zero, 0x60, HMPN)
            CreateField (HMBB, 0x60, 0x60, HMMN)
            CreateField (HMBB, 0xC0, 0x10, HMMD)
            CreateField (HMBB, 0xD0, 0x10, HMSN)
            Name (HMBT, Package (0x06)
            {
                Buffer (0x1C) {}, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Method (ABCD, 0, NotSerialized)
            {
                Return (Zero)
            }
            Method (HMB1, 0, NotSerialized)
            {
                If (^^PCI0.LPC0.EC0.MBTS)
                {
                    Store (^^PCI0.LPC0.EC0.MBPN, HMPN)
                    Store (^^PCI0.LPC0.EC0.MBMN, HMMN)
                    Store (^^PCI0.LPC0.EC0.MBMD, HMMD)
                    Store (^^PCI0.LPC0.EC0.BTSN, HMSN)
                    Store (ToBCD (^^PCI0.LPC0.EC0.MCLC), Index (HMBT, One))
                    Store (HMBB, Index (HMBT, Zero))
                    Return (HMBT)
                }
                Else
                {
                    Return (Zero)
                }
            }
            Method (HMB2, 0, NotSerialized)
            {
                Return (Zero)
            }
            Method (INFO, 0, Serialized)
            {
                If (LEqual (VZOK, 0x02))
                {
                    Store (^^PCI0.LPC0.EC0.VEVT, Local0)
                    Store (One, VZOK)
                    Return (Local0)
                }
                Else
                {
                    If (LEqual (VZOK, 0x03))
                    {
                        Store (^^PCI0.LPC0.EC0.FEVT, Local0)
                        Store (One, VZOK)
                        Return (Local0)
                    }
                    Else
                    {
                        If (LEqual (VZOK, 0x04))
                        {
                            Store (^^PCI0.LPC0.EC0.NEVT, Local0)
                            Store (One, VZOK)
                            Return (Local0)
                        }
                        Else
                        {
                            If (LEqual (VZOK, 0xB0))
                            {
                                Store (0x19B0, Local0)
                                Store (One, VZOK)
                                Return (Local0)
                            }
                            Else
                            {
                                If (LEqual (VZOK, 0xB1))
                                {
                                    Store (0x19B1, Local0)
                                    Store (One, VZOK)
                                    Return (Local0)
                                }
                                Else
                                {
                                    If (LEqual (VZOK, 0xB2))
                                    {
                                        Store (0x19B2, Local0)
                                        Store (One, VZOK)
                                        Return (Local0)
                                    }
                                    Else
                                    {
                                        If (LEqual (VZOK, 0xB3))
                                        {
                                            Store (0x19B3, Local0)
                                            Store (One, VZOK)
                                            Return (Local0)
                                        }
                                        Else
                                        {
                                            If (LEqual (VZOK, 0xB6))
                                            {
                                                Store (0x19B6, Local0)
                                                Store (One, VZOK)
                                                Return (Local0)
                                            }
                                            Else
                                            {
                                                If (LEqual (VZOK, 0xB7))
                                                {
                                                    Store (0x19B7, Local0)
                                                    Store (One, VZOK)
                                                    Return (Local0)
                                                }
                                                Else
                                                {
                                                    If (LEqual (VZOK, 0xB4))
                                                    {
                                                        Store (0x0401, Local0)
                                                        Store (One, VZOK)
                                                        Return (Local0)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (VZOK, 0xB5))
                                                        {
                                                            Store (0x0402, Local0)
                                                            Store (One, VZOK)
                                                            Return (Local0)
                                                        }
                                                        Else
                                                        {
                                                            Return (Zero)
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            Name (VALI, Package (0x06)
            {
                Ones, 
                Ones, 
                Ones, 
                Ones, 
                Ones, 
                Ones
            })
            Name (VALO, Package (0x06)
            {
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (GWFS, Package (0x06)
            {
                0xFE00, 
                0x56, 
                Zero, 
                One, 
                Zero, 
                Zero
            })
            Name (SWRN, Package (0x06)
            {
                0xFF00, 
                0x56, 
                One, 
                0x0200, 
                Zero, 
                Zero
            })
            Name (SWRF, Package (0x06)
            {
                0xFF00, 
                0x56, 
                Zero, 
                0x0200, 
                Zero, 
                Zero
            })
            Name (SURN, Package (0x06)
            {
                0xFF00, 
                0x56, 
                One, 
                0x0800, 
                Zero, 
                Zero
            })
            Name (SURF, Package (0x06)
            {
                0xFF00, 
                0x56, 
                Zero, 
                0x0800, 
                Zero, 
                Zero
            })
            Name (DI3G, Package (0x06)
            {
                0xFE00, 
                0x56, 
                Zero, 
                0x03, 
                Zero, 
                Zero
            })
            Name (TGRN, Package (0x06)
            {
                0xFF00, 
                0x56, 
                One, 
                0x2000, 
                Zero, 
                Zero
            })
            Name (TGRF, Package (0x06)
            {
                0xFF00, 
                0x56, 
                Zero, 
                0x2000, 
                Zero, 
                Zero
            })
            Name (TGPN, Package (0x06)
            {
                0xFF00, 
                0x56, 
                One, 
                0x4000, 
                Zero, 
                Zero
            })
            Name (TGPF, Package (0x06)
            {
                0xFF00, 
                0x56, 
                Zero, 
                0x4000, 
                Zero, 
                Zero
            })
            Name (GTPS, Package (0x06)
            {
                0xF300, 
                0x050E, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (STPD, Package (0x06)
            {
                0xF400, 
                0x050E, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (STPE, Package (0x06)
            {
                0xF400, 
                0x050E, 
                One, 
                Zero, 
                Zero, 
                Zero
            })
            Name (GFBS, Package (0x06)
            {
                0xF300, 
                0x015D, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (FBME, Package (0x06)
            {
                0xF400, 
                0x015D, 
                One, 
                Zero, 
                Zero, 
                Zero
            })
            Name (FBMD, Package (0x06)
            {
                0xF400, 
                0x015D, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (FNDS, Package (0x06)
            {
                0xFF00, 
                0x5A, 
                Zero, 
                One, 
                Zero, 
                Zero
            })
            Name (FNTP, Package (0x06)
            {
                0xFF00, 
                0x5A, 
                One, 
                One, 
                Zero, 
                Zero
            })
            Name (FNTC, Package (0x06)
            {
                0xFF00, 
                0x5A, 
                0x02, 
                One, 
                Zero, 
                Zero
            })
            Name (GCCM, Package (0x06)
            {
                0xFE00, 
                0x7F, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (SCMP, Package (0x06)
            {
                0xFF00, 
                0x7F, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (SCMS, Package (0x06)
            {
                0xFF00, 
                0x7F, 
                One, 
                Zero, 
                Zero, 
                Zero
            })
            Name (CESS, Package (0x06)
            {
                0xFE00, 
                0x62, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (GPNL, Package (0x06)
            {
                0xFE00, 
                0x11, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (SHK0, Package (0x06)
            {
                0xFF00, 
                0xC000, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (SHK1, Package (0x06)
            {
                0xFF00, 
                0xC000, 
                Zero, 
                One, 
                Zero, 
                Zero
            })
            Name (GHKM, Package (0x06)
            {
                0xFE00, 
                0xC000, 
                0x03, 
                Zero, 
                Zero, 
                Zero
            })
            Name (SBED, Package (0x06)
            {
                0xFF00, 
                0x1E, 
                One, 
                Zero, 
                Zero, 
                Zero
            })
            Name (SBEE, Package (0x06)
            {
                0xFF00, 
                0x1E, 
                0x03, 
                Zero, 
                Zero, 
                Zero
            })
            Name (SHEE, Package (0x06)
            {
                0xFF00, 
                0x1E, 
                0x09, 
                Zero, 
                Zero, 
                Zero
            })
            Name (SBHE, Package (0x06)
            {
                0xFF00, 
                0x1E, 
                0x0B, 
                Zero, 
                Zero, 
                Zero
            })
            Name (GBEM, Package (0x06)
            {
                0xFE00, 
                0x1E, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (HPG1, Package (0x06)
            {
                0xFE00, 
                0x6D, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (HPG2, Package (0x06)
            {
                0xFE00, 
                0x6D, 
                Zero, 
                One, 
                Zero, 
                Zero
            })
            Name (HPG3, Package (0x06)
            {
                0xFE00, 
                0x6D, 
                Zero, 
                0x0200, 
                Zero, 
                Zero
            })
            Name (HPG4, Package (0x06)
            {
                0xFE00, 
                0x6D, 
                Zero, 
                0x0201, 
                Zero, 
                Zero
            })
            Name (HPS1, Package (0x06)
            {
                0xFE00, 
                0x6D, 
                Zero, 
                0x0100, 
                Zero, 
                Zero
            })
            Name (HPS2, Package (0x06)
            {
                0xFE00, 
                0x6D, 
                Zero, 
                0x0102, 
                Zero, 
                Zero
            })
            Name (RMGW, Package (0x06)
            {
                0xFE00, 
                0x47, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (RMCW, Package (0x06)
            {
                0xFF00, 
                0x47, 
                0x5A00, 
                Zero, 
                Zero, 
                Zero
            })
            Name (RMGS, Package (0x06)
            {
                0xFE00, 
                0x61, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (RMSD, Package (0x06)
            {
                0xFF00, 
                0x61, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (RMSE, Package (0x06)
            {
                0xFF00, 
                0x61, 
                One, 
                Zero, 
                Zero, 
                Zero
            })
            Name (PANS, Package (0x06)
            {
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Name (PT01, Package (0x06)
            {
                0x02, 
                0x80, 
                One, 
                0xE0, 
                Zero, 
                Zero
            })
            Name (PT02, Package (0x06)
            {
                0x03, 
                0x20, 
                0x02, 
                0x58, 
                Zero, 
                Zero
            })
            Name (PT03, Package (0x06)
            {
                0x04, 
                Zero, 
                0x03, 
                Zero, 
                Zero, 
                Zero
            })
            Name (PT04, Package (0x06)
            {
                0x04, 
                Zero, 
                0x02, 
                0x58, 
                Zero, 
                Zero
            })
            Name (PT05, Package (0x06)
            {
                0x03, 
                0x20, 
                One, 
                0xE0, 
                Zero, 
                Zero
            })
            Name (PT06, Package (0x06)
            {
                0x05, 
                Zero, 
                0x04, 
                Zero, 
                Zero, 
                Zero
            })
            Name (PT07, Package (0x06)
            {
                0x05, 
                0x78, 
                0x04, 
                0x1A, 
                Zero, 
                Zero
            })
            Name (PT08, Package (0x06)
            {
                0x06, 
                0x40, 
                0x04, 
                0xB0, 
                Zero, 
                Zero
            })
            Name (PT09, Package (0x06)
            {
                0x05, 
                Zero, 
                0x02, 
                0x58, 
                Zero, 
                Zero
            })
            Name (PT0A, Package (0x06)
            {
                0x05, 
                Zero, 
                0x03, 
                0x20, 
                Zero, 
                Zero
            })
            Name (PT0B, Package (0x06)
            {
                0x05, 
                0xA0, 
                0x03, 
                0x84, 
                Zero, 
                Zero
            })
            Name (PT0C, Package (0x06)
            {
                0x06, 
                0x90, 
                0x04, 
                0x1A, 
                Zero, 
                Zero
            })
            Name (PT0D, Package (0x06)
            {
                0x07, 
                0x80, 
                0x04, 
                0xB0, 
                Zero, 
                Zero
            })
            Name (PT0E, Package (0x06)
            {
                0x05, 
                Zero, 
                0x03, 
                Zero, 
                Zero, 
                Zero
            })
            Name (PT0F, Package (0x06)
            {
                0x07, 
                0x80, 
                0x04, 
                0x38, 
                Zero, 
                Zero
            })
            Name (PT10, Package (0x06)
            {
                0x06, 
                0x90, 
                0x03, 
                0xB1, 
                Zero, 
                Zero
            })
            Name (PT11, Package (0x06)
            {
                0x05, 
                0x56, 
                0x03, 
                Zero, 
                Zero, 
                Zero
            })
            Name (PT12, Package (0x06)
            {
                0x06, 
                0x40, 
                0x03, 
                0x84, 
                Zero, 
                Zero
            })
            Name (PT13, Package (0x06)
            {
                0x04, 
                Zero, 
                0x02, 
                0x40, 
                Zero, 
                Zero
            })
            Method (MTCH, 2, NotSerialized)
            {
                If (LNotEqual (DerefOf (Index (Arg0, Zero)), DerefOf (Index (
                    Arg1, Zero))))
                {
                    Return (Zero)
                }
                If (LNotEqual (DerefOf (Index (Arg0, One)), DerefOf (Index (
                    Arg1, One))))
                {
                    Return (Zero)
                }
                If (LNotEqual (DerefOf (Index (Arg0, 0x02)), DerefOf (Index (
                    Arg1, 0x02))))
                {
                    Return (Zero)
                }
                If (LNotEqual (DerefOf (Index (Arg0, 0x03)), DerefOf (Index (
                    Arg1, 0x03))))
                {
                    Return (Zero)
                }
                If (LNotEqual (DerefOf (Index (Arg0, 0x04)), DerefOf (Index (
                    Arg1, 0x04))))
                {
                    Return (Zero)
                }
                If (LNotEqual (DerefOf (Index (Arg0, 0x05)), DerefOf (Index (
                    Arg1, 0x05))))
                {
                    Return (Zero)
                }
                Return (One)
            }
            Method (SPFC, 6, Serialized)
            {
                Name (_T_J, Zero)
                Name (_T_I, Zero)
                Name (_T_H, Zero)
                Name (_T_G, Zero)
                Name (_T_F, Zero)
                Name (_T_E, Zero)
                Name (_T_D, Zero)
                Name (_T_C, Zero)
                Name (_T_B, Zero)
                Name (_T_A, Zero)
                Name (_T_9, Zero)
                Name (_T_8, Zero)
                Name (_T_7, Zero)
                Name (_T_6, Zero)
                Name (_T_5, Zero)
                Name (_T_4, Zero)
                Name (_T_3, Zero)
                Name (_T_2, Zero)
                Name (_T_1, Zero)
                Name (_T_0, Zero)
                Store (ToInteger (Arg0), Index (VALI, Zero))
                Store (ToInteger (Arg1), Index (VALI, One))
                Store (ToInteger (Arg2), Index (VALI, 0x02))
                Store (ToInteger (Arg3), Index (VALI, 0x03))
                Store (ToInteger (Arg4), Index (VALI, 0x04))
                Store (ToInteger (Arg5), Index (VALI, 0x05))
                Store (Zero, Index (VALO, Zero))
                Store (Zero, Index (VALO, One))
                Store (Zero, Index (VALO, 0x02))
                Store (Zero, Index (VALO, 0x03))
                Store (Zero, Index (VALO, 0x04))
                Store (Zero, Index (VALO, 0x05))
                Store (^^PCI0.LPC0.EC0.POLG, Local0)
                If (LEqual (Local0, Zero))
                {
                    Store (One, ^^PCI0.LPC0.EC0.POLG)
                }
                Store (ToInteger (Arg1), Local0)
                And (Local0, 0x00FFFFFF, Local0)
                While (One)
                {
                    Store (ToInteger (Local0), _T_0)
                    If (LEqual (_T_0, 0x56))
                    {
                        If (MTCH (VALI, GWFS))
                        {
                            Store (^^PCI0.LPC0.EC0.KSWH, Local0)
                            XOr (Local0, One, Local0)
                            Store (^^PCI0.LPC0.EC0.W3GE, Local2)
                            Store (VRFS, Local1)
                            ShiftLeft (Local1, 0x09, Local1)
                            ShiftLeft (Local2, 0x0D, Local2)
                            If (Local0)
                            {
                                Or (Local0, Local1, Local0)
                                Or (Local0, Local2, Local0)
                            }
                            Store (Local0, Index (VALO, 0x02))
                            Store (Zero, Index (VALO, Zero))
                        }
                        Else
                        {
                            If (MTCH (VALI, SWRN))
                            {
                                FSMI (0x23, Zero)
                                Store (Zero, Index (VALO, Zero))
                                Store (WLAN, ^^PCI0.LPC0.EC0.WLAN)
                                Store (One, VRFS)
                            }
                            Else
                            {
                                If (MTCH (VALI, SWRF))
                                {
                                    FSMI (0x24, Zero)
                                    Store (Zero, Index (VALO, Zero))
                                    Store (WLAN, ^^PCI0.LPC0.EC0.WLAN)
                                    Store (Zero, VRFS)
                                }
                                Else
                                {
                                    If (MTCH (VALI, SURN))
                                    {
                                        FSMI (0x25, Zero)
                                        Store (Zero, Index (VALO, Zero))
                                        Store (BTEN, ^^PCI0.LPC0.EC0.BLTH)
                                        Store (One, VRFS)
                                    }
                                    Else
                                    {
                                        If (MTCH (VALI, SURF))
                                        {
                                            FSMI (0x26, Zero)
                                            Store (Zero, Index (VALO, Zero))
                                            Store (BTEN, ^^PCI0.LPC0.EC0.BLTH)
                                            Store (Zero, VRFS)
                                        }
                                        Else
                                        {
                                            If (MTCH (VALI, TGRN))
                                            {
                                                FSMI (0x3A, Zero)
                                                Store (Zero, Index (VALO, Zero))
                                            }
                                            Else
                                            {
                                                If (MTCH (VALI, TGRF))
                                                {
                                                    FSMI (0x3B, Zero)
                                                    Store (Zero, Index (VALO, Zero))
                                                }
                                                Else
                                                {
                                                    Store (0x8000, Index (VALO, Zero))
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x050E))
                        {
                            If (MTCH (VALI, GTPS))
                            {
                                Store (^^PCI0.LPC0.EC0.TPAD, Local0)
                                XOr (Local0, One, Local0)
                                Store (Local0, Index (VALO, 0x02))
                                Store (Zero, Index (VALO, Zero))
                            }
                            Else
                            {
                                If (MTCH (VALI, STPE))
                                {
                                    FSMI (0x5A, Zero)
                                    Store (Zero, Index (VALO, Zero))
                                }
                                Else
                                {
                                    If (MTCH (VALI, STPD))
                                    {
                                        FSMI (0x5B, Zero)
                                        Store (Zero, Index (VALO, Zero))
                                    }
                                    Else
                                    {
                                        Store (0x8000, Index (VALO, Zero))
                                    }
                                }
                            }
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x015D))
                            {
                                If (MTCH (VALI, GFBS))
                                {
                                    If (OG09)
                                    {
                                        Store (Zero, Index (VALO, 0x02))
                                    }
                                    Else
                                    {
                                        Store (One, Index (VALO, 0x02))
                                    }
                                    Store (One, Index (VALO, Zero))
                                    Store (Zero, Index (VALO, 0x04))
                                }
                                Else
                                {
                                    If (MTCH (VALI, FBME))
                                    {
                                        Store (One, Index (VALO, Zero))
                                        Store (Zero, OG09)
                                        OSMI (0x1A, One)
                                    }
                                    Else
                                    {
                                        If (MTCH (VALI, FBMD))
                                        {
                                            Store (One, Index (VALO, Zero))
                                            Store (One, OG09)
                                            OSMI (0x1A, One)
                                        }
                                        Else
                                        {
                                            Store (0x8300, Index (VALO, Zero))
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x5A))
                                {
                                    If (MTCH (VALI, FNDS))
                                    {
                                        Store (Zero, OWNS)
                                        HSMI (0x02, One)
                                        Store (Zero, Index (VALO, Zero))
                                    }
                                    Else
                                    {
                                        If (MTCH (VALI, FNTP))
                                        {
                                            Store (One, OWNS)
                                            HSMI (0x02, One)
                                            Store (Zero, Index (VALO, Zero))
                                        }
                                        Else
                                        {
                                            If (MTCH (VALI, FNTC))
                                            {
                                                Store (0x02, OWNS)
                                                HSMI (0x02, One)
                                                Store (Zero, Index (VALO, Zero))
                                            }
                                            Else
                                            {
                                                Store (0x8000, Index (VALO, Zero))
                                            }
                                        }
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x7F))
                                    {
                                        If (MTCH (VALI, GCCM))
                                        {
                                            Store (^^PCI0.LPC0.EC0.TMOD, Local0)
                                            Store (Local0, Index (VALO, 0x02))
                                            Store (One, Index (VALO, 0x03))
                                            Store (Zero, Index (VALO, Zero))
                                        }
                                        Else
                                        {
                                            If (MTCH (VALI, SCMP))
                                            {
                                                Store (Zero, ^^PCI0.LPC0.EC0.TMOD)
                                                Store (Zero, Index (VALO, Zero))
                                            }
                                            Else
                                            {
                                                If (MTCH (VALI, SCMS))
                                                {
                                                    Store (One, ^^PCI0.LPC0.EC0.TMOD)
                                                    Store (Zero, Index (VALO, Zero))
                                                }
                                                Else
                                                {
                                                    Store (0x8000, Index (VALO, Zero))
                                                }
                                            }
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x62))
                                        {
                                            If (LEqual (ToInteger (Arg0), 0xFE00))
                                            {
                                                If (LEqual (ENSR, 0x02))
                                                {
                                                    Store (Zero, Index (VALO, Zero))
                                                    Store (0x21, Index (VALO, 0x03))
                                                }
                                                Else
                                                {
                                                    Store (Zero, Index (VALO, Zero))
                                                    Store (Zero, Index (VALO, 0x03))
                                                }
                                            }
                                            Else
                                            {
                                                Store (0x8000, Index (VALO, Zero))
                                            }
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x11))
                                            {
                                                Name (PBUF, Buffer (0x0200)
                                                {
                                                     0x00
                                                })
                                                CreateField (PBUF, Zero, 0x10, P000)
                                                OSMI (0x0B, Zero)
                                                Store (OWNS, PBUF)
                                                Store (P000, Local0)
                                                Store (Zero, Index (VALO, Zero))
                                                Store (ToInteger (Local0), Index (VALO, 0x02))
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0xC000))
                                                {
                                                    If (MTCH (VALI, SHK0))
                                                    {
                                                        Store (Zero, Index (VALO, Zero))
                                                    }
                                                    Else
                                                    {
                                                        If (MTCH (VALI, SHK1))
                                                        {
                                                            Store (Zero, Index (VALO, Zero))
                                                        }
                                                        Else
                                                        {
                                                            If (MTCH (VALI, GHKM))
                                                            {
                                                                Store (Zero, Index (VALO, 0x03))
                                                                Store (Zero, Index (VALO, Zero))
                                                                Store (Zero, Local0)
                                                                Or (Local0, 0x10, Local0)
                                                                Store (Local0, Index (VALO, 0x03))
                                                            }
                                                            Else
                                                            {
                                                                Store (0x8000, Index (VALO, Zero))
                                                            }
                                                        }
                                                    }
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x1E))
                                                    {
                                                        If (MTCH (VALI, SBED))
                                                        {
                                                            Store (Zero, VBFG)
                                                            Store (One, ^^PCI0.LPC0.EC0.HEUE)
                                                            Store (One, ^^PCI0.LPC0.EC0.BEUE)
                                                            Store (Zero, Index (VALO, Zero))
                                                        }
                                                        Else
                                                        {
                                                            If (MTCH (VALI, SBEE))
                                                            {
                                                                Store (0x02, VBFG)
                                                                Store (One, ^^PCI0.LPC0.EC0.HEUE)
                                                                Store (Zero, ^^PCI0.LPC0.EC0.BEUE)
                                                                Store (Zero, Index (VALO, Zero))
                                                            }
                                                            Else
                                                            {
                                                                If (MTCH (VALI, SHEE))
                                                                {
                                                                    Store (0x08, VBFG)
                                                                    Store (Zero, ^^PCI0.LPC0.EC0.HEUE)
                                                                    Store (One, ^^PCI0.LPC0.EC0.BEUE)
                                                                    Store (Zero, Index (VALO, Zero))
                                                                }
                                                                Else
                                                                {
                                                                    If (MTCH (VALI, SBHE))
                                                                    {
                                                                        Store (0x0A, VBFG)
                                                                        Store (Zero, ^^PCI0.LPC0.EC0.HEUE)
                                                                        Store (Zero, ^^PCI0.LPC0.EC0.BEUE)
                                                                        Store (Zero, Index (VALO, Zero))
                                                                    }
                                                                    Else
                                                                    {
                                                                        If (MTCH (VALI, GBEM))
                                                                        {
                                                                            Store (VBFG, Local0)
                                                                            Store (Increment (Local0), Index (VALO, 0x02))
                                                                            Store (Zero, Index (VALO, Zero))
                                                                        }
                                                                        Else
                                                                        {
                                                                            Store (0x8000, Index (VALO, Zero))
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_0, 0xB7))
                                                        {
                                                            Store (0x8000, Index (VALO, Zero))
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_0, 0x0150))
                                                            {
                                                                If (LEqual (ToInteger (Arg0), 0xF300))
                                                                {
                                                                    If (One)
                                                                    {
                                                                        Store (Zero, Index (VALO, Zero))
                                                                        If (LEqual (ToInteger (Arg5), Zero))
                                                                        {
                                                                            Store (0x800C, Index (VALO, One))
                                                                            OSMI (0x0E, Zero)
                                                                            Store (SLPB, Index (VALO, 0x02))
                                                                            Store (0x00080029, Index (VALO, 0x03))
                                                                            Store (0x00080000, Index (VALO, 0x04))
                                                                        }
                                                                        Else
                                                                        {
                                                                            If (LEqual (ToInteger (Arg5), 0x0100))
                                                                            {
                                                                                Store (0x8001, Index (VALO, One))
                                                                                Store (One, Index (VALO, 0x02))
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (ToInteger (Arg5), 0x0101))
                                                                                {
                                                                                    Store (0x800C, Index (VALO, One))
                                                                                    Store (0x00080029, Index (VALO, 0x02))
                                                                                }
                                                                                Else
                                                                                {
                                                                                    If (LEqual (ToInteger (Arg5), 0x0200))
                                                                                    {
                                                                                        Store (0x800D, Index (VALO, One))
                                                                                        Store (Zero, Local0)
                                                                                        Or (ShiftLeft (^^PCI0.LPC0.EC0.SLPL, 0x10), ^^PCI0.LPC0.EC0.SLPM, Index (VALO, 0x02))
                                                                                        If (LEqual (^^PCI0.LPC0.EC0.MBTS, One))
                                                                                        {
                                                                                            Store (0x00640005, Index (VALO, 0x03))
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            Store (0x00640001, Index (VALO, 0x03))
                                                                                        }
                                                                                        If (LEqual (^^PCI0.LPC0.EC0.MBTS, One))
                                                                                        {
                                                                                            Store (0x000A0004, Index (VALO, 0x04))
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            Store (0x000A0001, Index (VALO, 0x04))
                                                                                        }
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                        Store (0x8300, Index (VALO, Zero))
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                    Else
                                                                    {
                                                                        Store (0x8000, Index (VALO, Zero))
                                                                    }
                                                                }
                                                                Else
                                                                {
                                                                    If (LEqual (ToInteger (Arg0), 0xF400))
                                                                    {
                                                                        If (One)
                                                                        {
                                                                            If (LEqual (ToInteger (Arg5), Zero))
                                                                            {
                                                                                Store (ToInteger (Arg2), Local0)
                                                                                If (LOr (LOr (LEqual (Local0, 0x00080000), LEqual (Local0, 0x00080009)), LEqual (
                                                                                    Local0, 0x00080021)))
                                                                                {
                                                                                    Store (ToInteger (Arg2), SLPB)
                                                                                    OSMI (0x0E, One)
                                                                                    Store (Zero, Index (VALO, Zero))
                                                                                }
                                                                                Else
                                                                                {
                                                                                    Store (0x8300, Index (VALO, Zero))
                                                                                }
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (ToInteger (Arg5), 0x0200))
                                                                                {
                                                                                    Store (ToInteger (Arg2), Local0)
                                                                                    If (LNotEqual (And (Local0, 0xFF80FFF8), Zero))
                                                                                    {
                                                                                        Store (0x8300, Index (VALO, Zero))
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                        If (LOr (LEqual (And (Local0, 0x07), One), LEqual (And (
                                                                                            Local0, 0x07), 0x04)))
                                                                                        {
                                                                                            If (LGreater (ShiftRight (Local0, 0x10), 0x64))
                                                                                            {
                                                                                                Store (0x8300, Index (VALO, Zero))
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                If (LAnd (LEqual (And (Local0, 0x07), 0x04), LEqual (^^PCI0.LPC0.EC0.MBTS, 
                                                                                                    Zero)))
                                                                                                {
                                                                                                    Store (0x8300, Index (VALO, Zero))
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    Store (And (Local0, 0x07), ^^PCI0.LPC0.EC0.SLPM)
                                                                                                    Store (ShiftRight (Local0, 0x10), ^^PCI0.LPC0.EC0.SLPL)
                                                                                                    Store (Zero, Index (VALO, Zero))
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            Store (0x8300, Index (VALO, Zero))
                                                                                        }
                                                                                    }
                                                                                }
                                                                                Else
                                                                                {
                                                                                    Store (0x8300, Index (VALO, Zero))
                                                                                }
                                                                            }
                                                                        }
                                                                        Else
                                                                        {
                                                                            Store (0x8000, Index (VALO, Zero))
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (_T_0, 0x2A))
                                                                {
                                                                    Store (Zero, Index (VALO, Zero))
                                                                    Store (^^PCI0.LPC0.EC0.BLVL, Local0)
                                                                    While (One)
                                                                    {
                                                                        Store (Local0, _T_1)
                                                                        If (LEqual (_T_1, Zero))
                                                                        {
                                                                            Store (Zero, Index (VALO, 0x02))
                                                                        }
                                                                        Else
                                                                        {
                                                                            If (LEqual (_T_1, One))
                                                                            {
                                                                                Store (0x2000, Index (VALO, 0x02))
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (_T_1, 0x02))
                                                                                {
                                                                                    Store (0x4000, Index (VALO, 0x02))
                                                                                }
                                                                                Else
                                                                                {
                                                                                    If (LEqual (_T_1, 0x03))
                                                                                    {
                                                                                        Store (0x6000, Index (VALO, 0x02))
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                        If (LEqual (_T_1, 0x04))
                                                                                        {
                                                                                            Store (0x8000, Index (VALO, 0x02))
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            If (LEqual (_T_1, 0x05))
                                                                                            {
                                                                                                Store (0xA000, Index (VALO, 0x02))
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                If (LEqual (_T_1, 0x06))
                                                                                                {
                                                                                                    Store (0xC000, Index (VALO, 0x02))
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    If (LEqual (_T_1, 0x07))
                                                                                                    {
                                                                                                        Store (0xE000, Index (VALO, 0x02))
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                        Break
                                                                    }
                                                                    Store (0xE000, Index (VALO, 0x03))
                                                                }
                                                                Else
                                                                {
                                                                    If (LEqual (_T_0, 0x42))
                                                                    {
                                                                        While (One)
                                                                        {
                                                                            Store (ToInteger (Arg2), _T_2)
                                                                            If (LEqual (_T_2, One))
                                                                            {
                                                                                Store (One, ^^PCI0.LPC0.EC0.REFT)
                                                                                Store (Zero, Index (VALO, Zero))
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (_T_2, 0x10))
                                                                                {
                                                                                    Store (0x10, ^^PCI0.LPC0.EC0.REFT)
                                                                                    Store (Zero, Index (VALO, Zero))
                                                                                }
                                                                                Else
                                                                                {
                                                                                    Store (0x8300, Index (VALO, Zero))
                                                                                }
                                                                            }
                                                                            Break
                                                                        }
                                                                    }
                                                                    Else
                                                                    {
                                                                        If (LEqual (_T_0, 0x9F))
                                                                        {
                                                                            If (LEqual (ToInteger (Arg0), 0xFE00))
                                                                            {
                                                                                While (One)
                                                                                {
                                                                                    Store (ToInteger (Arg2), _T_3)
                                                                                    If (LEqual (_T_3, Zero))
                                                                                    {
                                                                                        Store (Zero, Index (VALO, Zero))
                                                                                        Store (^^PCI0.LPC0.EC0.EPFF, Local0)
                                                                                        Store (^^PCI0.LPC0.EC0.EPFE, Local1)
                                                                                        Store (Or (ShiftLeft (Local0, 0x08), Local1), Index (VALO, 
                                                                                            0x03))
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                        If (LEqual (_T_3, 0xFFFF))
                                                                                        {
                                                                                            Store (Zero, Index (VALO, Zero))
                                                                                            Store (0x0200, Index (VALO, 0x03))
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            Store (0x8300, Index (VALO, Zero))
                                                                                        }
                                                                                    }
                                                                                    Break
                                                                                }
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (ToInteger (Arg0), 0xFF00))
                                                                                {
                                                                                    While (One)
                                                                                    {
                                                                                        Store (ToInteger (Arg2), _T_4)
                                                                                        If (LEqual (_T_4, Zero))
                                                                                        {
                                                                                            Store (Zero, Index (VALO, Zero))
                                                                                            Store (ToInteger (Arg3), Local0)
                                                                                            Store (And (Local0, 0xFF), ^^PCI0.LPC0.EC0.EPFE)
                                                                                            Store (And (ShiftRight (Local0, 0x08), 0xFF), ^^PCI0.LPC0.EC0.EPFF)
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            Store (0x8300, Index (VALO, Zero))
                                                                                        }
                                                                                        Break
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                        Else
                                                                        {
                                                                            If (LEqual (_T_0, 0xA1))
                                                                            {
                                                                                While (One)
                                                                                {
                                                                                    Store (ToInteger (Arg5), _T_5)
                                                                                    If (LEqual (_T_5, Zero))
                                                                                    {
                                                                                        Store (One, HM01)
                                                                                        Store (Zero, Index (VALO, Zero))
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                        If (LEqual (_T_5, One))
                                                                                        {
                                                                                            If (LEqual (HM01, One))
                                                                                            {
                                                                                                Store (Zero, Index (VALO, Zero))
                                                                                                If (LEqual (ToInteger (Arg2), One))
                                                                                                {
                                                                                                    If (^^PCI0.LPC0.EC0.MBTS)
                                                                                                    {
                                                                                                        Store (^^PCI0.LPC0.EC0.MBVG, Local0)
                                                                                                        Divide (Local0, 0x64, Local1, Index (VALO, 0x02))
                                                                                                    }
                                                                                                    Else
                                                                                                    {
                                                                                                        Store (0xFF, Index (VALO, 0x02))
                                                                                                    }
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    Store (0xFF, Index (VALO, 0x02))
                                                                                                }
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                Store (0x8D50, Index (VALO, Zero))
                                                                                            }
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            Store (0x8300, Index (VALO, Zero))
                                                                                        }
                                                                                    }
                                                                                    Break
                                                                                }
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (_T_0, 0xA2))
                                                                                {
                                                                                    While (One)
                                                                                    {
                                                                                        Store (ToInteger (Arg5), _T_6)
                                                                                        If (LEqual (_T_6, Zero))
                                                                                        {
                                                                                            Store (One, HM02)
                                                                                            Store (Zero, Index (VALO, Zero))
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            If (LEqual (_T_6, One))
                                                                                            {
                                                                                                If (LEqual (HM02, One))
                                                                                                {
                                                                                                    Store (Zero, Index (VALO, Zero))
                                                                                                    If (LEqual (ToInteger (Arg2), Zero))
                                                                                                    {
                                                                                                        If (LEqual (ToInteger (Arg3), Zero))
                                                                                                        {
                                                                                                            Store (^^PCI0.LPC0.EC0.FSPD, Local0)
                                                                                                            Divide (0x000F0000, Local0, Local0, Index (VALO, 0x02))
                                                                                                        }
                                                                                                        Else
                                                                                                        {
                                                                                                            If (LEqual (ToInteger (Arg3), One))
                                                                                                            {
                                                                                                                Divide (0x000F0000, ^^PCI0.LPC0.EC0.FSPD, Local0, Index (VALO, 0x02))
                                                                                                                Store (Multiply (^^PCI0.LPC0.EC0.MAXS, 0x64), Index (VALO, 0x03))
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    Else
                                                                                                    {
                                                                                                        If (LEqual (ToInteger (Arg2), One))
                                                                                                        {
                                                                                                            If (LEqual (ToInteger (Arg3), Zero))
                                                                                                            {
                                                                                                                Divide (0x000F0000, ^^PCI0.LPC0.EC0.FSP2, Local0, Index (VALO, 0x02))
                                                                                                            }
                                                                                                            Else
                                                                                                            {
                                                                                                                If (LEqual (ToInteger (Arg3), One))
                                                                                                                {
                                                                                                                    Divide (0x000F0000, ^^PCI0.LPC0.EC0.FSP2, Local0, Index (VALO, 0x02))
                                                                                                                    Store (Zero, Index (VALO, 0x03))
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    Store (0x8D50, Index (VALO, Zero))
                                                                                                }
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                Store (0x8300, Index (VALO, Zero))
                                                                                            }
                                                                                        }
                                                                                        Break
                                                                                    }
                                                                                }
                                                                                Else
                                                                                {
                                                                                    If (LEqual (_T_0, 0xA6))
                                                                                    {
                                                                                        Store (0x8000, Index (VALO, Zero))
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                        If (LEqual (_T_0, 0xA7))
                                                                                        {
                                                                                            While (One)
                                                                                            {
                                                                                                Store (ToInteger (Arg5), _T_7)
                                                                                                If (LEqual (_T_7, Zero))
                                                                                                {
                                                                                                    Store (One, HM04)
                                                                                                    Store (Zero, Index (VALO, Zero))
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    If (LEqual (_T_7, One))
                                                                                                    {
                                                                                                        If (LEqual (HM04, One))
                                                                                                        {
                                                                                                            Store (Zero, Index (VALO, Zero))
                                                                                                            Store (^^PCI0.LPC0.EC0.ACDF, Local0)
                                                                                                            If (Local0)
                                                                                                            {
                                                                                                                Store (Zero, Local0)
                                                                                                                Store (^^PCI0.LPC0.EC0.ACCU, Local1)
                                                                                                                Store (^^PCI0.LPC0.EC0.ACCA, Local2)
                                                                                                                Store (^^PCI0.LPC0.EC0.ACVO, Local3)
                                                                                                                Store (^^PCI0.LPC0.EC0.CTMP, Local4)
                                                                                                                Store (^^PCI0.LPC0.EC0.RG59, Local5)
                                                                                                                Or (ShiftLeft (Or (ShiftLeft (Or (ShiftLeft (Local5, 0x08), INTC
                                                                                                                    ), 0x08), Local4), 0x08), Local3, Index (VALO, 0x02
                                                                                                                    ))
                                                                                                                Or (ShiftLeft (Local2, 0x10), Local1, Index (VALO, 0x03))
                                                                                                            }
                                                                                                            Else
                                                                                                            {
                                                                                                                Store (Zero, Local0)
                                                                                                                Store (^^PCI0.LPC0.EC0.CTMP, Local1)
                                                                                                                Store (^^PCI0.LPC0.EC0.RG59, Local2)
                                                                                                                Or (ShiftLeft (Or (ShiftLeft (Or (ShiftLeft (Local2, 0x08), INTC
                                                                                                                    ), 0x08), Local1), 0x08), 0xFF, Index (VALO, 0x02
                                                                                                                    ))
                                                                                                                Store (0xFFFF, Index (VALO, 0x03))
                                                                                                            }
                                                                                                        }
                                                                                                        Else
                                                                                                        {
                                                                                                            Store (0x8D50, Index (VALO, Zero))
                                                                                                        }
                                                                                                    }
                                                                                                    Else
                                                                                                    {
                                                                                                        Store (0x8300, Index (VALO, Zero))
                                                                                                    }
                                                                                                }
                                                                                                Break
                                                                                            }
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            If (LEqual (_T_0, 0xA8))
                                                                                            {
                                                                                                While (One)
                                                                                                {
                                                                                                    Store (ToInteger (Arg4), _T_8)
                                                                                                    If (LEqual (_T_8, 0x98))
                                                                                                    {
                                                                                                        While (One)
                                                                                                        {
                                                                                                            Store (ToInteger (Arg5), _T_9)
                                                                                                            If (LEqual (_T_9, Zero))
                                                                                                            {
                                                                                                                Store (One, HM05)
                                                                                                                Store (Zero, Index (VALO, Zero))
                                                                                                            }
                                                                                                            Else
                                                                                                            {
                                                                                                                If (LEqual (_T_9, One))
                                                                                                                {
                                                                                                                    If (LEqual (HM05, One))
                                                                                                                    {
                                                                                                                        Store (Zero, Index (VALO, Zero))
                                                                                                                        If (LEqual (ToInteger (Arg2), One))
                                                                                                                        {
                                                                                                                            If (^^PCI0.LPC0.EC0.MBTS)
                                                                                                                            {
                                                                                                                                If (^^PCI0.LPC0.EC0.ACDF)
                                                                                                                                {
                                                                                                                                    Store (^^PCI0.LPC0.EC0.MCUR, Local1)
                                                                                                                                    Store (Local1, Index (VALO, 0x02))
                                                                                                                                }
                                                                                                                                Else
                                                                                                                                {
                                                                                                                                    Store (^^PCI0.LPC0.EC0.MCUR, Local1)
                                                                                                                                    Subtract (0xFFFF, Local1, Index (VALO, 0x02))
                                                                                                                                }
                                                                                                                                Store (^^PCI0.LPC0.EC0.MTEM, Local0)
                                                                                                                                Subtract (Local0, 0x0AAC, Local0)
                                                                                                                                Divide (Local0, 0x0A, Local0, Index (VALO, 0x03))
                                                                                                                            }
                                                                                                                            Else
                                                                                                                            {
                                                                                                                                Store (0xFFFF, Index (VALO, 0x02))
                                                                                                                                Store (0xFF, Index (VALO, 0x03))
                                                                                                                            }
                                                                                                                        }
                                                                                                                        Else
                                                                                                                        {
                                                                                                                            Store (0xFFFF, Index (VALO, 0x02))
                                                                                                                            Store (0xFF, Index (VALO, 0x03))
                                                                                                                        }
                                                                                                                    }
                                                                                                                    Else
                                                                                                                    {
                                                                                                                        Store (0x8D50, Index (VALO, Zero))
                                                                                                                    }
                                                                                                                }
                                                                                                                Else
                                                                                                                {
                                                                                                                    Store (0x8300, Index (VALO, Zero))
                                                                                                                }
                                                                                                            }
                                                                                                            Break
                                                                                                        }
                                                                                                    }
                                                                                                    Else
                                                                                                    {
                                                                                                        If (LEqual (_T_8, 0x9A))
                                                                                                        {
                                                                                                            While (One)
                                                                                                            {
                                                                                                                Store (ToInteger (Arg5), _T_A)
                                                                                                                If (LEqual (_T_A, Zero))
                                                                                                                {
                                                                                                                    Store (One, HM06)
                                                                                                                    Store (Zero, Index (VALO, Zero))
                                                                                                                }
                                                                                                                Else
                                                                                                                {
                                                                                                                    If (LEqual (_T_A, One))
                                                                                                                    {
                                                                                                                        If (LEqual (HM06, One))
                                                                                                                        {
                                                                                                                            Store (Zero, Index (VALO, Zero))
                                                                                                                            If (LEqual (ToInteger (Arg2), Zero))
                                                                                                                            {
                                                                                                                                Store (^^PCI0.LPC0.EC0.PWM1, Index (VALO, 0x02))
                                                                                                                            }
                                                                                                                            Else
                                                                                                                            {
                                                                                                                                If (LEqual (ToInteger (Arg2), One))
                                                                                                                                {
                                                                                                                                    Store (^^PCI0.LPC0.EC0.PWM2, Local0)
                                                                                                                                    Store (Local0, Index (VALO, 0x02))
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        Else
                                                                                                                        {
                                                                                                                            Store (0x8D50, Index (VALO, Zero))
                                                                                                                        }
                                                                                                                    }
                                                                                                                    Else
                                                                                                                    {
                                                                                                                        Store (0x8300, Index (VALO, Zero))
                                                                                                                    }
                                                                                                                }
                                                                                                                Break
                                                                                                            }
                                                                                                        }
                                                                                                        Else
                                                                                                        {
                                                                                                            If (LEqual (_T_8, 0x9B))
                                                                                                            {
                                                                                                                While (One)
                                                                                                                {
                                                                                                                    Store (ToInteger (Arg5), _T_B)
                                                                                                                    If (LEqual (_T_B, Zero))
                                                                                                                    {
                                                                                                                        Store (One, HM07)
                                                                                                                        Store (Zero, Index (VALO, Zero))
                                                                                                                    }
                                                                                                                    Else
                                                                                                                    {
                                                                                                                        If (LEqual (_T_B, One))
                                                                                                                        {
                                                                                                                            If (LEqual (HM07, One))
                                                                                                                            {
                                                                                                                                Store (Zero, Index (VALO, Zero))
                                                                                                                                If (LEqual (ToInteger (Arg2), Zero))
                                                                                                                                {
                                                                                                                                    Store (^^PCI0.LPC0.EC0.VOLC, Local0)
                                                                                                                                    Store (Zero, Local1)
                                                                                                                                    Store (Zero, Local2)
                                                                                                                                    Store (^^PCI0.LPC0.EC0.PPBC, Local3)
                                                                                                                                    Store (^^PCI0.LPC0.EC0.FPOC, Local4)
                                                                                                                                    Store (^^PCI0.LPC0.EC0.ACAC, Local5)
                                                                                                                                    Store (^^PCI0.LPC0.EC0.PAOC, Local6)
                                                                                                                                    Or (ShiftLeft (Or (ShiftLeft (Or (ShiftLeft (Local2, 0x08), Zero
                                                                                                                                        ), 0x08), Local1), 0x08), Local0, Index (VALO, 0x03
                                                                                                                                        ))
                                                                                                                                    Or (ShiftLeft (Or (ShiftLeft (Or (ShiftLeft (Local6, 0x08), Local5
                                                                                                                                        ), 0x08), Local4), 0x08), Local3, Index (VALO, 0x02
                                                                                                                                        ))
                                                                                                                                    Store (Zero, ^^PCI0.LPC0.EC0.VOLC)
                                                                                                                                    Store (Zero, ^^PCI0.LPC0.EC0.PPBC)
                                                                                                                                    Store (Zero, ^^PCI0.LPC0.EC0.FPOC)
                                                                                                                                    Store (Zero, ^^PCI0.LPC0.EC0.ACAC)
                                                                                                                                    Store (Zero, ^^PCI0.LPC0.EC0.PAOC)
                                                                                                                                }
                                                                                                                                Else
                                                                                                                                {
                                                                                                                                    If (LEqual (ToInteger (Arg2), One))
                                                                                                                                    {
                                                                                                                                        Store (^^PCI0.LPC0.EC0.BTCC, Index (VALO, 0x02))
                                                                                                                                        Store (Zero, ^^PCI0.LPC0.EC0.BTCC)
                                                                                                                                    }
                                                                                                                                    Else
                                                                                                                                    {
                                                                                                                                        If (LEqual (ToInteger (Arg2), 0x02))
                                                                                                                                        {
                                                                                                                                            Store (^^PCI0.LPC0.EC0.GPB1, Local0)
                                                                                                                                            Store (^^PCI0.LPC0.EC0.GPB2, Local1)
                                                                                                                                            Store (^^PCI0.LPC0.EC0.GPB3, Local2)
                                                                                                                                            Store (^^PCI0.LPC0.EC0.GPB4, Local3)
                                                                                                                                            Store (^^PCI0.LPC0.EC0.GPB5, Local4)
                                                                                                                                            Store (^^PCI0.LPC0.EC0.GPB6, Local5)
                                                                                                                                            Store (^^PCI0.LPC0.EC0.GPB7, Local6)
                                                                                                                                            Store (^^PCI0.LPC0.EC0.GPB8, Local7)
                                                                                                                                            Or (ShiftLeft (Or (ShiftLeft (Or (ShiftLeft (Local7, 0x08), Local6
                                                                                                                                                ), 0x08), Local5), 0x08), Local4, Index (VALO, 0x03
                                                                                                                                                ))
                                                                                                                                            Or (ShiftLeft (Or (ShiftLeft (Or (ShiftLeft (Local3, 0x08), Local2
                                                                                                                                                ), 0x08), Local1), 0x08), Local0, Index (VALO, 0x02
                                                                                                                                                ))
                                                                                                                                            Store (Zero, ^^PCI0.LPC0.EC0.GPB1)
                                                                                                                                            Store (Zero, ^^PCI0.LPC0.EC0.GPB2)
                                                                                                                                            Store (Zero, ^^PCI0.LPC0.EC0.GPB3)
                                                                                                                                            Store (Zero, ^^PCI0.LPC0.EC0.GPB4)
                                                                                                                                            Store (Zero, ^^PCI0.LPC0.EC0.GPB5)
                                                                                                                                            Store (Zero, ^^PCI0.LPC0.EC0.GPB6)
                                                                                                                                            Store (Zero, ^^PCI0.LPC0.EC0.GPB7)
                                                                                                                                            Store (Zero, ^^PCI0.LPC0.EC0.GPB8)
                                                                                                                                        }
                                                                                                                                        Else
                                                                                                                                        {
                                                                                                                                            Store (0x8300, Index (VALO, Zero))
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            Else
                                                                                                                            {
                                                                                                                                Store (0x8D50, Index (VALO, Zero))
                                                                                                                            }
                                                                                                                        }
                                                                                                                        Else
                                                                                                                        {
                                                                                                                            Store (0x8300, Index (VALO, Zero))
                                                                                                                        }
                                                                                                                    }
                                                                                                                    Break
                                                                                                                }
                                                                                                            }
                                                                                                            Else
                                                                                                            {
                                                                                                                If (LEqual (_T_8, 0xA0))
                                                                                                                {
                                                                                                                    If (LEqual (ToInteger (Arg0), 0xFE00))
                                                                                                                    {
                                                                                                                        While (One)
                                                                                                                        {
                                                                                                                            Store (ToInteger (Arg5), _T_C)
                                                                                                                            If (LEqual (_T_C, Zero))
                                                                                                                            {
                                                                                                                                Store (One, HM08)
                                                                                                                                Store (Zero, Index (VALO, Zero))
                                                                                                                            }
                                                                                                                            Else
                                                                                                                            {
                                                                                                                                If (LEqual (_T_C, One))
                                                                                                                                {
                                                                                                                                    If (LEqual (HM08, One))
                                                                                                                                    {
                                                                                                                                        Store (Zero, Index (VALO, Zero))
                                                                                                                                        Or (ShiftLeft (^^PCI0.LPC0.EC0.PECC, 0x03), ShiftLeft (^^PCI0.LPC0.EC0.PECL, One), Local0)
                                                                                                                                        Or (Local0, ^^PCI0.LPC0.EC0.PECB, Index (VALO, 0x02))
                                                                                                                                    }
                                                                                                                                    Else
                                                                                                                                    {
                                                                                                                                        Store (0x8D50, Index (VALO, Zero))
                                                                                                                                    }
                                                                                                                                }
                                                                                                                                Else
                                                                                                                                {
                                                                                                                                    Store (0x8300, Index (VALO, Zero))
                                                                                                                                }
                                                                                                                            }
                                                                                                                            Break
                                                                                                                        }
                                                                                                                        If (LNotEqual (ToInteger (Arg3), Zero))
                                                                                                                        {
                                                                                                                            Store (0x8300, Index (VALO, Zero))
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                Else
                                                                                                                {
                                                                                                                    If (LEqual (_T_8, 0xA9))
                                                                                                                    {
                                                                                                                        While (One)
                                                                                                                        {
                                                                                                                            Store (ToInteger (Arg5), _T_D)
                                                                                                                            If (LEqual (_T_D, Zero))
                                                                                                                            {
                                                                                                                                Store (One, HM09)
                                                                                                                                Store (Zero, Index (VALO, Zero))
                                                                                                                            }
                                                                                                                            Else
                                                                                                                            {
                                                                                                                                If (LEqual (_T_D, One))
                                                                                                                                {
                                                                                                                                    If (LEqual (HM09, One))
                                                                                                                                    {
                                                                                                                                        Store (Zero, Index (VALO, Zero))
                                                                                                                                        While (One)
                                                                                                                                        {
                                                                                                                                            Store (ToInteger (Arg2), _T_E)
                                                                                                                                            If (LEqual (_T_E, One))
                                                                                                                                            {
                                                                                                                                                If (^^PCI0.LPC0.EC0.MBTS)
                                                                                                                                                {
                                                                                                                                                    Store (^^PCI0.LPC0.EC0.MBRM, Local0)
                                                                                                                                                    Store (^^PCI0.LPC0.EC0.BTDC, Local1)
                                                                                                                                                    Store (^^PCI0.LPC0.EC0.LFCC, Local2)
                                                                                                                                                    Store (^^PCI0.LPC0.EC0.BTDV, Local3)
                                                                                                                                                    Divide (Local0, 0x64, , Local0)
                                                                                                                                                    Divide (Local1, 0x64, , Local1)
                                                                                                                                                    Divide (Local2, 0x64, , Local2)
                                                                                                                                                    Divide (Local3, 0x64, , Local3)
                                                                                                                                                    Multiply (Local0, Local3, Local0)
                                                                                                                                                    Multiply (Local1, Local3, Local1)
                                                                                                                                                    Multiply (Local2, Local3, Local2)
                                                                                                                                                    Or (ShiftLeft (Local0, 0x10), ^^PCI0.LPC0.EC0.BATS, Index (VALO, 0x02))
                                                                                                                                                    Or (ShiftLeft (^^PCI0.LPC0.EC0.CSV2, 0x10), ^^PCI0.LPC0.EC0.CSV1, Index (VALO, 0x03))
                                                                                                                                                    Or (ShiftLeft (Local1, 0x10), Local2, Index (VALO, 0x04))
                                                                                                                                                    Or (ShiftLeft (^^PCI0.LPC0.EC0.CSV4, 0x10), ^^PCI0.LPC0.EC0.CSV3, Index (VALO, 0x05))
                                                                                                                                                }
                                                                                                                                                Else
                                                                                                                                                {
                                                                                                                                                    Store (0xFFFF, Index (VALO, 0x02))
                                                                                                                                                    Store (0xFFFF, Index (VALO, 0x03))
                                                                                                                                                    Store (0xFFFF, Index (VALO, 0x04))
                                                                                                                                                    Store (0xFFFF, Index (VALO, 0x05))
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                            Else
                                                                                                                                            {
                                                                                                                                                If (LEqual (_T_E, 0x8001))
                                                                                                                                                {
                                                                                                                                                    If (^^PCI0.LPC0.EC0.MBTS)
                                                                                                                                                    {
                                                                                                                                                        Store (^^PCI0.LPC0.EC0.BTDV, Index (VALO, 0x02))
                                                                                                                                                    }
                                                                                                                                                    Else
                                                                                                                                                    {
                                                                                                                                                        Store (0xFFFF, Index (VALO, 0x02))
                                                                                                                                                        Store (0xFFFF, Index (VALO, 0x03))
                                                                                                                                                        Store (0xFFFF, Index (VALO, 0x04))
                                                                                                                                                        Store (0xFFFF, Index (VALO, 0x05))
                                                                                                                                                    }
                                                                                                                                                }
                                                                                                                                                Else
                                                                                                                                                {
                                                                                                                                                    Store (0xFFFF, Index (VALO, 0x02))
                                                                                                                                                    Store (0xFFFF, Index (VALO, 0x03))
                                                                                                                                                    Store (0xFFFF, Index (VALO, 0x04))
                                                                                                                                                    Store (0xFFFF, Index (VALO, 0x05))
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                            Break
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                    Else
                                                                                                                                    {
                                                                                                                                        Store (0x8D50, Index (VALO, Zero))
                                                                                                                                    }
                                                                                                                                }
                                                                                                                                Else
                                                                                                                                {
                                                                                                                                    Store (0x8300, Index (VALO, Zero))
                                                                                                                                }
                                                                                                                            }
                                                                                                                            Break
                                                                                                                        }
                                                                                                                    }
                                                                                                                    Else
                                                                                                                    {
                                                                                                                        If (LEqual (_T_8, 0x9D))
                                                                                                                        {
                                                                                                                            While (One)
                                                                                                                            {
                                                                                                                                Store (ToInteger (Arg5), _T_F)
                                                                                                                                If (LEqual (_T_F, Zero))
                                                                                                                                {
                                                                                                                                    Store (Zero, Index (VALO, Zero))
                                                                                                                                }
                                                                                                                                Else
                                                                                                                                {
                                                                                                                                    If (LEqual (_T_F, One))
                                                                                                                                    {
                                                                                                                                        Store (Zero, Index (VALO, Zero))
                                                                                                                                        Store (^^PCI0.LPC0.EC0.HPCF, Index (VALO, 0x02))
                                                                                                                                    }
                                                                                                                                    Else
                                                                                                                                    {
                                                                                                                                        Store (0x8300, Index (VALO, Zero))
                                                                                                                                    }
                                                                                                                                }
                                                                                                                                Break
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    Break
                                                                                                }
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                If (LEqual (_T_0, 0x9D))
                                                                                                {
                                                                                                    If (LEqual (ToInteger (Arg0), 0xFF00))
                                                                                                    {
                                                                                                        While (One)
                                                                                                        {
                                                                                                            Store (ToInteger (Arg3), _T_G)
                                                                                                            If (LEqual (_T_G, Zero))
                                                                                                            {
                                                                                                                While (One)
                                                                                                                {
                                                                                                                    Store (ToInteger (Arg2), _T_H)
                                                                                                                    If (LEqual (_T_H, Zero))
                                                                                                                    {
                                                                                                                        Store (Zero, ^^PCI0.LPC0.EC0.HPCF)
                                                                                                                        Store (Zero, Index (VALO, Zero))
                                                                                                                    }
                                                                                                                    Else
                                                                                                                    {
                                                                                                                        If (LEqual (_T_H, One))
                                                                                                                        {
                                                                                                                            Store (One, ^^PCI0.LPC0.EC0.HPCF)
                                                                                                                            Store (Zero, Index (VALO, Zero))
                                                                                                                        }
                                                                                                                        Else
                                                                                                                        {
                                                                                                                            Store (0x8300, Index (VALO, Zero))
                                                                                                                        }
                                                                                                                    }
                                                                                                                    Break
                                                                                                                }
                                                                                                            }
                                                                                                            Else
                                                                                                            {
                                                                                                                Store (0x8300, Index (VALO, Zero))
                                                                                                            }
                                                                                                            Break
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    If (LEqual (_T_0, 0xA0))
                                                                                                    {
                                                                                                        If (LEqual (ToInteger (Arg3), Zero))
                                                                                                        {
                                                                                                            Store (ToInteger (Arg2), Local0)
                                                                                                            And (Local0, 0xF4, Local0)
                                                                                                            If (LNot (Local0))
                                                                                                            {
                                                                                                                Store (Zero, Index (VALO, Zero))
                                                                                                                Store (ToInteger (Arg2), Local1)
                                                                                                                And (Local1, One, ^^PCI0.LPC0.EC0.PECB)
                                                                                                                And (ShiftRight (Local1, One), One, ^^PCI0.LPC0.EC0.PECL)
                                                                                                                And (ShiftRight (Local1, 0x03), One, ^^PCI0.LPC0.EC0.PECC)
                                                                                                                If (^^PCI0.LPC0.EC0.PECL)
                                                                                                                {
                                                                                                                    If (^^PCI0.LPC0.EC0.DSPL)
                                                                                                                    {
                                                                                                                        EVNT (0xB2)
                                                                                                                    }
                                                                                                                    Else
                                                                                                                    {
                                                                                                                        EVNT (0xB3)
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            Else
                                                                                                            {
                                                                                                                Store (0x8300, Index (VALO, Zero))
                                                                                                            }
                                                                                                        }
                                                                                                        Else
                                                                                                        {
                                                                                                            Store (0x8300, Index (VALO, Zero))
                                                                                                        }
                                                                                                    }
                                                                                                    Else
                                                                                                    {
                                                                                                        If (LEqual (_T_0, 0xAA))
                                                                                                        {
                                                                                                            Store (Zero, Index (VALO, Zero))
                                                                                                            Store (^^PCI0.LPC0.EC0.CTTO, Index (VALO, 0x02))
                                                                                                            Store (^^PCI0.LPC0.EC0.CTTB, Index (VALO, 0x03))
                                                                                                        }
                                                                                                        Else
                                                                                                        {
                                                                                                            If (LEqual (_T_0, 0x96))
                                                                                                            {
                                                                                                                If (LEqual (ToInteger (Arg0), 0xFE00))
                                                                                                                {
                                                                                                                    Store (Zero, Index (VALO, Zero))
                                                                                                                    Store (0xFF50, Index (VALO, 0x02))
                                                                                                                    Store (0x0618, Index (VALO, 0x03))
                                                                                                                }
                                                                                                                Else
                                                                                                                {
                                                                                                                    Store (0x8000, Index (VALO, Zero))
                                                                                                                }
                                                                                                            }
                                                                                                            Else
                                                                                                            {
                                                                                                                If (LEqual (_T_0, 0x95))
                                                                                                                {
                                                                                                                    While (One)
                                                                                                                    {
                                                                                                                        Store (ToInteger (Arg0), _T_I)
                                                                                                                        If (LEqual (_T_I, 0xFE00))
                                                                                                                        {
                                                                                                                            Store (0x8000, Index (VALO, Zero))
                                                                                                                        }
                                                                                                                        Else
                                                                                                                        {
                                                                                                                            If (LEqual (_T_I, 0xFF00))
                                                                                                                            {
                                                                                                                                While (One)
                                                                                                                                {
                                                                                                                                    Store (ToInteger (Arg2), _T_J)
                                                                                                                                    If (LEqual (_T_J, Zero))
                                                                                                                                    {
                                                                                                                                        Store (0x8000, Index (VALO, Zero))
                                                                                                                                    }
                                                                                                                                    Else
                                                                                                                                    {
                                                                                                                                        If (LEqual (_T_J, One))
                                                                                                                                        {
                                                                                                                                            Store (0x8000, Index (VALO, Zero))
                                                                                                                                        }
                                                                                                                                        Else
                                                                                                                                        {
                                                                                                                                            Store (0x8300, Index (VALO, Zero))
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                    Break
                                                                                                                                }
                                                                                                                            }
                                                                                                                            Else
                                                                                                                            {
                                                                                                                                Store (0x8000, Index (VALO, Zero))
                                                                                                                            }
                                                                                                                        }
                                                                                                                        Break
                                                                                                                    }
                                                                                                                }
                                                                                                                Else
                                                                                                                {
                                                                                                                    If (LEqual (_T_0, 0x97))
                                                                                                                    {
                                                                                                                        If (LEqual (ToInteger (Arg0), 0xFE00))
                                                                                                                        {
                                                                                                                            Store (0x8000, Index (VALO, Zero))
                                                                                                                        }
                                                                                                                        Else
                                                                                                                        {
                                                                                                                            If (LEqual (ToInteger (Arg0), 0xFF00))
                                                                                                                            {
                                                                                                                                If (LAnd (LEqual (ToInteger (Arg3), One), LEqual (ToInteger (Arg2
                                                                                                                                    ), Zero)))
                                                                                                                                {
                                                                                                                                    Store (0x8000, Index (VALO, Zero))
                                                                                                                                }
                                                                                                                                Else
                                                                                                                                {
                                                                                                                                    If (LAnd (LEqual (ToInteger (Arg3), One), LEqual (ToInteger (Arg2
                                                                                                                                        ), One)))
                                                                                                                                    {
                                                                                                                                        Store (0x8000, Index (VALO, Zero))
                                                                                                                                    }
                                                                                                                                    Else
                                                                                                                                    {
                                                                                                                                        If (LAnd (LEqual (ToInteger (Arg3), Zero), LEqual (ToInteger (Arg2
                                                                                                                                            ), Zero)))
                                                                                                                                        {
                                                                                                                                            Store (0x8000, Index (VALO, Zero))
                                                                                                                                        }
                                                                                                                                        Else
                                                                                                                                        {
                                                                                                                                            If (LAnd (LEqual (ToInteger (Arg3), Zero), LEqual (ToInteger (Arg2
                                                                                                                                                ), One)))
                                                                                                                                            {
                                                                                                                                                Store (0x8000, Index (VALO, Zero))
                                                                                                                                            }
                                                                                                                                            Else
                                                                                                                                            {
                                                                                                                                                If (LAnd (LEqual (ToInteger (Arg3), Zero), LEqual (ToInteger (Arg2
                                                                                                                                                    ), 0x02)))
                                                                                                                                                {
                                                                                                                                                    Store (0x8000, Index (VALO, Zero))
                                                                                                                                                }
                                                                                                                                                Else
                                                                                                                                                {
                                                                                                                                                    Store (0x8300, Index (VALO, Zero))
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    Else
                                                                                                                    {
                                                                                                                        Store (0x8000, Index (VALO, Zero))
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    Break
                }
                Return (VALO)
            }
            Scope (\_SB)
            {
                Name (HM01, Zero)
                Name (HM02, Zero)
                Name (HM03, Zero)
                Name (HM04, Zero)
                Name (HM05, Zero)
                Name (HM06, Zero)
                Name (HM07, Zero)
                Name (HM08, Zero)
                Name (HM09, Zero)
            }
        }
        Device (QITR)
        {
            Name (_HID, EisaId ("QCI0701"))
            Method (_STA, 0, NotSerialized)
            {
                If (LGreaterEqual (MYOS, 0x07D6))
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (Zero)
                }
            }
            Name (VZOK, Zero)
            Name (VALI, Package (0x06)
            {
                Ones, 
                Ones, 
                Ones, 
                Ones, 
                Ones, 
                Ones
            })
            Name (VALO, Package (0x06)
            {
                0x88888888, 
                0x88888888, 
                0x88888888, 
                0x88888888, 
                0x88888888, 
                0x88888888
            })
            Name (BBBB, Package (0x05)
            {
                "ABCD", 
                "SRJING", 
                Buffer (0x05)
                {
                     0x12, 0x34, 0x56, 0x78, 0x90
                }, 
                Package (0x02)
                {
                    0x07, 
                    0x09
                }, 
                0x13572468
            })
            Method (ENAB, 0, NotSerialized)
            {
                Store (0x02, VZOK)
            }
            Method (EVNT, 1, NotSerialized)
            {
                Store (Arg0, VZOK)
                Notify (QITR, 0x80)
                Return (VZOK)
            }
            Method (INFO, 0, NotSerialized)
            {
                Store (0x12, Local0)
                Return (Local0)
            }
            Method (AB00, 0, NotSerialized)
            {
                Store (0x02, VZOK)
            }
            Method (AB11, 1, NotSerialized)
            {
                Store (Arg0, VZOK)
                Return (VZOK)
            }
            Method (AB01, 0, NotSerialized)
            {
                Store (0x12, Local0)
                Return (Local0)
            }
            Method (BBAA, 0, NotSerialized)
            {
                Return (BBBB)
            }
            Method (SPFC, 6, NotSerialized)
            {
                Store (Arg0, Index (VALI, Zero))
                Store (Arg1, Index (VALI, One))
                Store (Arg2, Index (VALI, 0x02))
                Store (Arg3, Index (VALI, 0x03))
                Store (Arg4, Index (VALI, 0x04))
                Store (Arg5, Index (VALI, 0x05))
                Store (Arg0, Local0)
                Store (Arg1, Local1)
                Store (Arg2, Local2)
                Store (Arg3, Local3)
                Store (Arg4, Local4)
                Store (Arg5, Local5)
                Store (Local0, Index (VALO, Zero))
                Store (Local1, Index (VALO, One))
                Store (Local2, Index (VALO, 0x02))
                Store (Local3, Index (VALO, 0x03))
                Store (Local4, Index (VALO, 0x04))
                Store (Local5, Index (VALO, 0x05))
                Return (VALO)
            }
            Method (AB66, 6, NotSerialized)
            {
                Store (Arg0, Index (VALI, Zero))
                Store (Arg1, Index (VALI, One))
                Store (Arg2, Index (VALI, 0x02))
                Store (Arg3, Index (VALI, 0x03))
                Store (Arg4, Index (VALI, 0x04))
                Store (Arg5, Index (VALI, 0x05))
                Store (Arg0, Local0)
                Store (Arg1, Local1)
                Store (Arg2, Local2)
                Store (Arg3, Local3)
                Store (Arg4, Local4)
                Store (Arg5, Local5)
                Store (Local0, Index (VALO, Zero))
                Store (Local1, Index (VALO, One))
                Store (Local2, Index (VALO, 0x02))
                Store (Local3, Index (VALO, 0x03))
                Store (Local4, Index (VALO, 0x04))
                Store (Local5, Index (VALO, 0x05))
                Return (VALO)
            }
            Name (HMBB, Buffer (0x1C) {})
            CreateField (HMBB, Zero, 0x60, HMPN)
            CreateField (HMBB, 0x60, 0x60, HMMN)
            CreateField (HMBB, 0xC0, 0x10, HMMD)
            CreateField (HMBB, 0xD0, 0x10, HMSN)
            Name (HMBT, Package (0x06)
            {
                Buffer (0x1C) {}, 
                Zero, 
                Zero, 
                Zero, 
                Zero, 
                Zero
            })
            Method (HMB1, 0, NotSerialized)
            {
                Store ("NS2P3SZSV4WO", HMPN)
                Store ("SANYO       ", HMMN)
                Store ("12", HMMD)
                Store ("34", HMSN)
                Store (HMBB, Index (HMBT, Zero))
                Store (One, Index (HMBT, One))
                Store (0x02, Index (HMBT, 0x02))
                Store (0x03, Index (HMBT, 0x03))
                Store (0x04, Index (HMBT, 0x04))
                Store (0x05, Index (HMBT, 0x05))
                Store (One, ^^PCI0.LPC0.EC0.POLG)
                Return (HMBT)
            }
            Method (HMB2, 0, NotSerialized)
            {
                Return (Zero)
            }
        }
    }
}

Download Here: Click

When I compile this, I get these errors:

110 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
104	Error	Object does not exist (\_SB.PCI0.SMBS.CLPS)
105	Error	Object does not exist (\_SB.PCI0.SMBS.SLPS)
115	Error	Object does not exist (\_SB.PCI0.SMBS.PWDE)
120	Error	Object does not exist (\_SB.PCI0.SMBS.G05S)
122	Error	Object does not exist (\_SB.PCI0.SMBS.G05T)
126	Error	Object does not exist (\_SB.PCI0.SMBS.G05T)
... 5 more.
---
590	Error	Object does not exist (\_SB.PCI0.PB2)
591	Error	Object does not exist (\_SB.PCI0.PB3)
... alot more
---
699	Error	syntax error, unexpected PARSEOP_SLEEP, expecting ',' or ')' 
700	Error	syntax error, unexpected ')' 
700	Error	syntax error, unexpected ',' 
700	Error	syntax error, unexpected ')' 
---
700	Error	Object does not exist (\_SB.PCI0.PB5)
... about 50 more

Now, my DSDT editor has this little button below the DSDT errors list view, called "Fix Errors". So I clicked it to see what would happen and it does something that reduces all the errors to 19.

Here they are:

104	Error	Object does not exist (\_SB.PCI0.SMBS.CLPS)
105	Error	Object does not exist (\_SB.PCI0.SMBS.SLPS)
115	Error	Object does not exist (\_SB.PCI0.SMBS.PWDE)
120	Error	Object does not exist (\_SB.PCI0.SMBS.G05S)
122	Error	Object does not exist (\_SB.PCI0.SMBS.G05T)
126	Error	Object does not exist (\_SB.PCI0.SMBS.G05T)
128	Error	Object does not exist (\_SB.PCI0.SMBS.GE16)
128	Error	Object does not exist (\_SB.PCI0.SMBS.G16T)
699	Error	syntax error, unexpected PARSEOP_SLEEP, expecting ',' or ')' 
700	Error	syntax error, unexpected ')' 
700	Error	syntax error, unexpected ',' 
700	Error	syntax error, unexpected ')' 
733	Error	syntax error, unexpected '{' 
742	Error	syntax error, unexpected '{' 
787	Error	syntax error, unexpected '{' 
834	Error	syntax error, unexpected ')' 
865	Error	syntax error, unexpected '{' 
867	Error	syntax error, unexpected ')' 
871	Error	syntax error, unexpected ')' 

Here's the DSDT file after I clicked the "Fix Errors" button:
Download Here: Click

I would be over the moon if someone could help me fix the errors in the DSDT (BAT1._BIX and BAT1.UBIX errors particularly, causes Linux to fail to pick it up).

smile

Last edited by kvanberendonck (2012-11-11 02:08:54)

Offline

#2 2012-11-09 10:26:54

hunterthomson
Member
Registered: 2008-06-22
Posts: 794
Website

Re: [Solved] Need help with DSDT - 15 errors

Welcome to the party smile

Yep, this is 100% Microsoft's fault. They deliberately created an AML code compiler that is not standards complaint, so ACPI will only work correctly with Windows OS, because the MS AML compiler is Close Source and only Microsoft knows how it messes up the code i.e. only Windows will work with it. Then Microsoft tells the computer manufacturers that to insure ACPI will work well with Windows they must use their AML compiler.

Microsoft was one of the members of the group that created the AML standard. There are email's between Bill Gates and others in Microsoft where he states something like,....We spend all this time and money developing AML. Why should others get to use our hard work for free? We should make ACPI not work with any other OS.

These documents were part of the US Supreme Court case against Microsoft. Yes, the case that they lost. They were also deliberately trying to make IE non-standards complaint, so only Windows Server IIS could run websites.

….back story over...

Okay well, the Intel AML compiler is Open Source and that is the one you are using. AML is really rather simple byte code. You can fix it with a little bit of time and effort, even if you have never programmed before.

http://www.acpi.info/DOWNLOADS/ACPIspec50.pdf

The only catch is that the Linux ACPI guys have done a vary good job finding all the bugs the MS compiler makes, and patching the Linux implementation to deal with it. Because of this, if memory serves me, the ability to load a modified DSDT file into the kernel as been removed. I think you have to patch your kernel now to allow this ability, BUT there is a vary good chance I am wrong about that. However, it may be something you will want to check on before you spend the time messing with the DSDT.

Last edited by hunterthomson (2012-11-09 10:36:35)


OpenBSD-current Thinkpad X230, i7-3520M, 16GB CL9 Kingston, Samsung 830 256GB
Contributor: linux-grsec

Offline

#3 2012-11-09 10:45:04

kvanberendonck
Member
Registered: 2012-08-17
Posts: 45

Re: [Solved] Need help with DSDT - 15 errors

Thanks for the link! Looks like a good read, and it'll definitely set me on my way smile

Offline

#4 2012-11-09 12:06:16

R00KIE
Forum Moderator
From: Between a computer and a chair
Registered: 2008-09-14
Posts: 3,024

Re: [Solved] Need help with DSDT - 15 errors

First remove any acpi_os_name=linux or acpi_osi=linux that you have on the kernel command line, if need be use acpi_osi="!Linux", told you that already in the other thread, I only suggested that you decompile your dsdt so you can pinpoint which acpi_os_name and acpi_osi names are being checked and try to spoof _using windows_ with those names.

This is the part you should be looking at first:

    Method (OSTP, 0, NotSerialized)
    {
        If (LEqual (OSTB, Ones))
        {
            If (CondRefOf (\_OSI, Local0))
            {
                Store (Zero, OSTB)
                Store (Zero, TPOS)
                If (_OSI ("Windows 2001"))
                {
                    Store (0x08, OSTB)
                    Store (0x08, TPOS)
                }
                If (_OSI ("Windows 2001.1"))
                {
                    Store (0x20, OSTB)
                    Store (0x20, TPOS)
                }
                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (0x10, OSTB)
                    Store (0x10, TPOS)
                }
                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (0x11, OSTB)
                    Store (0x11, TPOS)
                }
                If (_OSI ("Windows 2001 SP3"))
                {
                    Store (0x12, OSTB)
                    Store (0x12, TPOS)
                }
                If (_OSI ("Windows 2006"))
                {
                    Store (0x40, OSTB)
                    Store (0x40, TPOS)
                }
                If (_OSI ("Windows 2006 SP1"))
                {
                    Store (0x41, OSTB)
                    Store (0x41, TPOS)
                    Store (One, OSSP)
                }
                If (_OSI ("Windows 2009"))
                {
                    Store (One, OSSP)
                    Store (0x50, OSTB)
                    Store (0x50, TPOS)
                }
                If (_OSI ("Linux"))
                {
                    Store (One, LINX)
                    Store (0x80, OSTB)
                    Store (0x80, TPOS)
                }
            }
            Else
            {
                If (CondRefOf (\_OS, Local0))
                {
                    If (SEQL (_OS, "Microsoft Windows"))
                    {
                        Store (One, OSTB)
                        Store (One, TPOS)
                    }
                    Else
                    {
                        If (SEQL (_OS, "Microsoft WindowsME: Millennium Edition"))
                        {
                            Store (0x02, OSTB)
                            Store (0x02, TPOS)
                        }
                        Else
                        {
                            If (SEQL (_OS, "Microsoft Windows NT"))
                            {
                                Store (0x04, OSTB)
                                Store (0x04, TPOS)
                            }
                            Else
                            {
                                Store (Zero, OSTB)
                                Store (Zero, TPOS)
                            }
                        }
                    }
                }
                Else
                {
                    Store (Zero, OSTB)
                    Store (Zero, TPOS)
                }
            }
        }
        Return (OSTB)
    }

You can clearly see that linux is being checked for and different stuff is done for it, as is the case for each windows version, like I also said in the other thread first try to spoof a windows version where the battery shows up and the fan works correctly. Only after trying that and if it fails, I would go about trying to fix the dsdt myself.


R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K

Offline

#5 2012-11-09 13:41:45

kvanberendonck
Member
Registered: 2012-08-17
Posts: 45

Re: [Solved] Need help with DSDT - 15 errors

@R00KIE

Yeah, I took your advice and tried acpi_osi="Windows 2009" and acpi_os_name="Microsoft Windows" as per it looks like the DSDT is checking for and it didn't make a difference, sadly.

What was interesting though, was that if I used acpi_osi="Linux" and acpi_os_name="Linux" at the same time in the kernel parameters (just to see what happens) my screen would turn purple and all my hardware would work really hard and generate alot of heat for no reason - usually followed by me panicking and shutting it down fast.

Last edited by kvanberendonck (2012-11-09 13:44:24)

Offline

#6 2012-11-09 16:42:27

Lekensteyn
Member
From: Netherlands
Registered: 2012-06-19
Posts: 179
Website

Re: [Solved] Need help with DSDT - 15 errors

Yay, another firmware fail for BIOS engineers. My laptop would not report battery drain because someone decided to ignore all negative values.

I suggest not to override the DSDT completely, but instead override a single method only as this requires less efforts and is less error-prone too because you cannot accidentally change the meaning of the DSDT.

Based on your DSDT I have created a patch for your method: https://gist.github.com/4046743 (instructions included). Making the systemd or whatever load that code in time is an exercise for the reader.

Last edited by Lekensteyn (2012-11-09 16:43:41)

Offline

#7 2012-11-09 18:16:12

R00KIE
Forum Moderator
From: Between a computer and a chair
Registered: 2008-09-14
Posts: 3,024

Re: [Solved] Need help with DSDT - 15 errors

Try with ="!Linux", note that the exclamation mark is important. Or try without any parameter (ex.: acpi_osi= ), that should disable all strings, might also yield some different result.

If I'm not wrong, the kernel will answer yes/identify itself as all known windows versions, it might just be that it is identifying itself with some windows version that also makes the bios disable some features.


R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K

Offline

#8 2012-11-10 03:47:36

kvanberendonck
Member
Registered: 2012-08-17
Posts: 45

Re: [Solved] Need help with DSDT - 15 errors

Lekensteyn wrote:

Yay, another firmware fail for BIOS engineers. My laptop would not report battery drain because someone decided to ignore all negative values.

I suggest not to override the DSDT completely, but instead override a single method only as this requires less efforts and is less error-prone too because you cannot accidentally change the meaning of the DSDT.

Based on your DSDT I have created a patch for your method: https://gist.github.com/4046743 (instructions included). Making the systemd or whatever load that code in time is an exercise for the reader.

You sir, are a legend. I cannot thank you enough for what you've done.

I'll report back with the results as soon as I get everything up and running! Thankyou!! smile

Edit: Is the initramfs too early to merge the ACPI method?

Last edited by kvanberendonck (2012-11-10 07:12:07)

Offline

#9 2012-11-10 10:26:28

Lekensteyn
Member
From: Netherlands
Registered: 2012-06-19
Posts: 179
Website

Re: [Solved] Need help with DSDT - 15 errors

Initramfs should be ok, judging from your kernel messages anything that loads before toshiba_laptop is OK. I suggest you to read the mkinitcpio(.conf) manpages if you encounter issues with the below.

Store the ASL file from https://gist.github.com/4046743 in /etc/fix-UBIF-typo.dsl.

Create /usr/lib/initcpio/hooks/fix-dsdt:

#!/bin/sh
run_earlyhook() {
    modprobe custom_method
    mount -t debugfs none /sys/kernel/debug
    cat /etc/fix-UBIF-typo.aml > /sys/kernel/debug/acpi/custom_method
    umount /sys/kernel/debug
    rmmod custom_method
}

Create /usr/lib/initcpio/install/fix-dsdt:

#!/bin/sh
build() {
    local name=fix-UBIF-typo
    local tmpdir="$(mktemp -d)"
    # compile AML from ASL, iasl outputs relative to soure, therefore copy first
    (cd "$tmpdir" && cp "/etc/$name.dsl" . && iasl "$name.dsl" && rm "$name.dsl")
    add_file "$tmpdir/$name.aml" "/etc/$name.aml" 644
    rm "$tmpdir/$name.aml"; rmdir "$tmpdir"
    # add dependency
    add_module custom_method
    # install hook
    add_runscript
}

In your /etc/mkinitcpio.conf add "fix-dsdt" to your HOOKS string. Then run `mkinitcpio -p linux` to re-generate the initramfs.

Last edited by Lekensteyn (2012-11-10 14:42:09)

Offline

#10 2012-11-11 02:08:24

kvanberendonck
Member
Registered: 2012-08-17
Posts: 45

Re: [Solved] Need help with DSDT - 15 errors

Lekensteyn: Everything is working incredibly now, thanks VERY much!

Offline

#11 2012-11-11 02:24:16

WonderWoofy
Member
From: Los Gatos, CA
Registered: 2012-05-19
Posts: 8,412

Re: [Solved] Need help with DSDT - 15 errors

Wooohoo!  I am glad you figured this out kvanberendonck.  Maybe you should add a section to the wiki for your particular machine.  As it would be a great community contribution to save others from this headache.

Offline

#12 2012-11-11 03:28:53

kvanberendonck
Member
Registered: 2012-08-17
Posts: 45

Re: [Solved] Need help with DSDT - 15 errors

WonderWoofy wrote:

Wooohoo!  I am glad you figured this out kvanberendonck.  Maybe you should add a section to the wiki for your particular machine.  As it would be a great community contribution to save others from this headache.

I'll write up something on either my blog or the wiki after I finish mapping all the scancodes for the Fn keys and get hibernate working smile

Offline

#13 2012-11-17 02:33:46

kvanberendonck
Member
Registered: 2012-08-17
Posts: 45

Re: [Solved] Need help with DSDT - 15 errors

Lekensteyn wrote:

<snip>

Sorry about the bump, but a strange issue I hadn't noticed before has appeared. The battery seems to be capping at 75% when I run `acpi`, however the capacity and time it lasts seems to be the same. I have the feeling that the full capacity of the battery is being reported as 75% and the rest has been squashed down to fit inside. Could the fact that the design capacity is being reported as zero (but the other 2 correct) be the reason for this strange occurrence?

Offline

#14 2012-11-17 09:43:54

Lekensteyn
Member
From: Netherlands
Registered: 2012-06-19
Posts: 179
Website

Re: [Solved] Need help with DSDT - 15 errors

Can you post the output of cat /sys/class/power_supply/BAT0/uevent (substitute BAT0 if necessary)? Try it while discharging/charging. Please give 3 samples per state with a constant delay (say, 10 seconds). So in the end you should have 6 outputs that takes about 60 seconds. A simple bash snippet:

for i in 1 2 3; do
    cat /sys/class/power_supply/BAT0/uevent
    sleep 10
done > trial.txt

If you want to, you can remove unchanged information (things like names, serial numbers and design capacity usually do not change).

Offline

#15 2012-11-17 11:20:00

R00KIE
Forum Moderator
From: Between a computer and a chair
Registered: 2008-09-14
Posts: 3,024

Re: [Solved] Need help with DSDT - 15 errors

It could be just a "problem" with the gauge circuit inside the battery. I see something sort of similar but at the end of discharge.

The original battery that came with my laptop died so I bought a new one, with the original when it said that I had no more power left I really had almost no power left, with the no name replacement after it says there is no power left I can still run the machine for a good 20 minutes.


R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K

Offline

#16 2012-11-18 05:49:35

kvanberendonck
Member
Registered: 2012-08-17
Posts: 45

Re: [Solved] Need help with DSDT - 15 errors

Lekensteyn wrote:

Can you post the output of cat /sys/class/power_supply/BAT0/uevent (substitute BAT0 if necessary)? Try it while discharging/charging. Please give 3 samples per state with a constant delay (say, 10 seconds). So in the end you should have 6 outputs that takes about 60 seconds. A simple bash snippet:

for i in 1 2 3; do
    cat /sys/class/power_supply/BAT0/uevent
    sleep 10
done > trial.txt

If you want to, you can remove unchanged information (things like names, serial numbers and design capacity usually do not change).

Charging:

POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_STATUS=Charging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Unknown
POWER_SUPPLY_CYCLE_COUNT=100
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=1000
POWER_SUPPLY_VOLTAGE_NOW=11327000
POWER_SUPPLY_POWER_NOW=62516000
POWER_SUPPLY_ENERGY_FULL_DESIGN=0
POWER_SUPPLY_ENERGY_FULL=4400000
POWER_SUPPLY_ENERGY_NOW=133000
POWER_SUPPLY_CAPACITY=3
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=LION
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_STATUS=Charging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Unknown
POWER_SUPPLY_CYCLE_COUNT=100
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=1000
POWER_SUPPLY_VOLTAGE_NOW=11334000
POWER_SUPPLY_POWER_NOW=62516000
POWER_SUPPLY_ENERGY_FULL_DESIGN=0
POWER_SUPPLY_ENERGY_FULL=4400000
POWER_SUPPLY_ENERGY_NOW=146000
POWER_SUPPLY_CAPACITY=3
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=LION
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_STATUS=Charging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Unknown
POWER_SUPPLY_CYCLE_COUNT=100
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=1000
POWER_SUPPLY_VOLTAGE_NOW=11341000
POWER_SUPPLY_POWER_NOW=62516000
POWER_SUPPLY_ENERGY_FULL_DESIGN=0
POWER_SUPPLY_ENERGY_FULL=4400000
POWER_SUPPLY_ENERGY_NOW=152000
POWER_SUPPLY_CAPACITY=3
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=LION

Discharging:

POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Unknown
POWER_SUPPLY_CYCLE_COUNT=100
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=1000
POWER_SUPPLY_VOLTAGE_NOW=10388000
POWER_SUPPLY_POWER_NOW=1075000
POWER_SUPPLY_ENERGY_FULL_DESIGN=0
POWER_SUPPLY_ENERGY_FULL=4400000
POWER_SUPPLY_ENERGY_NOW=275000
POWER_SUPPLY_CAPACITY=6
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=LION
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Unknown
POWER_SUPPLY_CYCLE_COUNT=100
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=1000
POWER_SUPPLY_VOLTAGE_NOW=10296000
POWER_SUPPLY_POWER_NOW=1020000
POWER_SUPPLY_ENERGY_FULL_DESIGN=0
POWER_SUPPLY_ENERGY_FULL=4400000
POWER_SUPPLY_ENERGY_NOW=273000
POWER_SUPPLY_CAPACITY=6
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=LION
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Unknown
POWER_SUPPLY_CYCLE_COUNT=100
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=1000
POWER_SUPPLY_VOLTAGE_NOW=10290000
POWER_SUPPLY_POWER_NOW=1023000
POWER_SUPPLY_ENERGY_FULL_DESIGN=0
POWER_SUPPLY_ENERGY_FULL=4400000
POWER_SUPPLY_ENERGY_NOW=269000
POWER_SUPPLY_CAPACITY=6
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=LION

Removed the serial number, but it didn't change.

Last edited by kvanberendonck (2012-11-18 05:50:57)

Offline

#17 2012-11-18 11:11:21

Lekensteyn
Member
From: Netherlands
Registered: 2012-06-19
Posts: 179
Website

Re: [Solved] Need help with DSDT - 15 errors

Uhh, well I meant removing it from that command output. I do not know where you'd remove it otherwise?

Two oddities:
POWER_SUPPLY_CAPACITY=3 (3%) and POWER_SUPPLY_CAPACITY=6 (6%). Li-Ion batteries do not like to get deep-discharged. I hope this is just a wrong report because of an invalid ENERGY_FULL_DESIGN value, but you might be unlucky and have broken batteries. Can you fully charge the batteries, and post one output of that uevent file?

POWER_SUPPLY_ENERGY_FULL_DESIGN=0 - it looks like your battery has never been fully charged? The value shown here comes from \_SB.PCI0.LPC0.EC0.LFCC. Does your BIOS have a battery calibration feature?

Offline

#18 2012-11-18 14:20:22

R00KIE
Forum Moderator
From: Between a computer and a chair
Registered: 2008-09-14
Posts: 3,024

Re: [Solved] Need help with DSDT - 15 errors

Lekensteyn wrote:

Li-Ion batteries do not like to get deep-discharged.

That is true, however a full discharge should be done every once in a while so that the gauge circuit in the battery can measure how much energy the battery can really hold and in turn report correct estimates of the remaining runtime. I suppose most manuals say that.

Lekensteyn wrote:

POWER_SUPPLY_ENERGY_FULL_DESIGN=0 - it looks like your battery has never been fully charged?

As far as I can tell, that value is or should have been set at the factory and is never updated, the _DESIGN part is the telltale sign, it is defined by the rated capacity of the cells used, POWER_SUPPLY_ENERGY_FULL is the value that should get updated after a complete discharge + charge or calibration cycle.

That I know of, POWER_SUPPLY_ENERGY_FULL_DESIGN is only needed if you want to determine the capacity loss, when determining the remaining capacity the values that are used are POWER_SUPPLY_ENERGY_FULL and POWER_SUPPLY_ENERGY_NOW.


R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K

Offline

#19 2012-11-19 00:29:19

kvanberendonck
Member
Registered: 2012-08-17
Posts: 45

Re: [Solved] Need help with DSDT - 15 errors

Lekensteyn wrote:

Uhh, well I meant removing it from that command output. I do not know where you'd remove it otherwise?

Two oddities:
POWER_SUPPLY_CAPACITY=3 (3%) and POWER_SUPPLY_CAPACITY=6 (6%). Li-Ion batteries do not like to get deep-discharged. I hope this is just a wrong report because of an invalid ENERGY_FULL_DESIGN value, but you might be unlucky and have broken batteries. Can you fully charge the batteries, and post one output of that uevent file?

POWER_SUPPLY_ENERGY_FULL_DESIGN=0 - it looks like your battery has never been fully charged? The value shown here comes from \_SB.PCI0.LPC0.EC0.LFCC. Does your BIOS have a battery calibration feature?

In regards to POWER_SUPPLY_CAPACITY, these were actually legitimate values because I had let it run flat from testing the charge time the previous day and had forgotten to plug it back in to charge.

ENERGY_FULL_DESIGN before the BIOS update that caused the faulty DSDT read something around 44x10^? and back then the battery was working fine. I'll try and charge/discharge the laptop a few times to see if it makes a difference, but this could very well be the issue.

And no, my BIOS is basically a class-1 bootloader. It doesn't let me do anything except re-order the boot devices.

Offline

#20 2012-11-30 00:01:20

aprsa
Member
Registered: 2012-11-29
Posts: 3

Re: [Solved] Need help with DSDT - 15 errors

Hi guys,

Not an arch linux person myself (I'm on ubuntu), but suffering from the same problem and I'm trying to fix it. My kernel comes with custom_method compiled in, and debugfs is already mounted at /sys/kernel/debug. I can touch everything in that directory, including acpi/, but when I try to do anything in the acpi/ subdir as root, I'm getting permission denied. Could someone help me with that please?

Thanks!

Offline

#21 2012-12-02 20:46:23

Lekensteyn
Member
From: Netherlands
Registered: 2012-06-19
Posts: 179
Website

Re: [Solved] Need help with DSDT - 15 errors

@aprsa, "as root" as in "sudo ..." or "sudo -s", ...? In the earlier case, see http://askubuntu.com/q/20578/6969
Remember to read your kernel logs if you get an error...

Offline

#22 2012-12-06 20:23:17

aprsa
Member
Registered: 2012-11-29
Posts: 3

Re: [Solved] Need help with DSDT - 15 errors

Thanks for the reply! As root I meant through su -, not sudo. The issue seems to stem from the fact that ubuntu disables write access to /sys/kernel/debugfs/acpi for security reasons. Here's how far I got:

https://answers.launchpad.net/ubuntu/+question/215689

If you could point me to any information on how to fix the DSDT (and corresponding tables) myself and recompile it, I'd be ever so grateful!

Offline

#23 2012-12-08 11:46:42

Lekensteyn
Member
From: Netherlands
Registered: 2012-06-19
Posts: 179
Website

Re: [Solved] Need help with DSDT - 15 errors

I wonder why Ubuntu provides a custom_method module if it is blocked anyway... Try chmod +w the debugfs file and follow the above instructions.

If you figure out, please post it to http://askubuntu.com/q/50656/6969 or something.

Offline

#24 2012-12-09 04:33:01

aprsa
Member
Registered: 2012-11-29
Posts: 3

Re: [Solved] Need help with DSDT - 15 errors

The directory shows as drwx, and debugfs is mounted rw; I tried chmod-ing it but it made no difference.

Right now I am inclining to simply fixing the DSDT tables. Is there an easy way how I could incorporate your fix into the faulty DSDT table without having to deal with the 110 errors reported by the original poster above? Ignoring those errors leaves my system in a lockup. If not, any suggestions on how I'd go about fixing the errors?

Thanks!

Offline

#25 2012-12-09 11:17:16

Lekensteyn
Member
From: Netherlands
Registered: 2012-06-19
Posts: 179
Website

Re: [Solved] Need help with DSDT - 15 errors

It is not about the directory, but the custom_method file. Have you loaded the custom_method module? Do that before doing anything else. Rebuilding the kernel with a full DSDT override is not recommended if you don't know if you're doing (even if you do know, custom_method is much easier to use)

Offline

Board footer

Powered by FluxBB