public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* LG LM50-3 laptop no battery
@ 2004-03-07  0:45 Daniel Burke
  0 siblings, 0 replies; 2+ messages in thread
From: Daniel Burke @ 2004-03-07  0:45 UTC (permalink / raw)
  To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

[-- Attachment #1: Type: text/plain, Size: 1153 bytes --]

Hi,

I have what must be a one of a kind on linux!  A new LG Centino Laptop,
which run's Linux great.. mostly, sadly Intel have not released their
wireless driver which forces me to driverload wireless, and the SD card
slot if not yet working, but everything else is besides the battery, I
get the following error from dmesg

ACPI: Subsystem revision 20040211
ACPI: IRQ9 SCI: Edge set to Level Trigger.
    ACPI-1120: *** Error: Method execution failed [\_SB_.PCI0._INI]
(Node c15d5
aa0), AE_NOT_EXIST
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
    ACPI-1120: *** Error: Method execution failed [\_SB_.CMB0._STA]
(Node c15d5
ca0), AE_NOT_EXIST

and I have attached the DSDT disassemble, not being familiar at all with
AML source, I dont want to just blindly start modifying code (I am a C++
s/w engineer) and know enough to know I can badly mess it up...

So I am really hoping I can get some help on this one, as I intend to
put up a howto on getting Linux working on this awesome laptop.

If need be I could attach the whole dmesg output if it would help. 
AC-Adapter is ok, as is LID and Power button


Regards,
-- 
Daniel Burke

[-- Attachment #2: dsdt.dsl --]
[-- Type: text/x-dsl, Size: 173189 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20030522
 *
 * Disassembly of dsdt.dat, Mon Feb 23 22:22:10 2004
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "INTEL ", "ODEM    ", 100925440)
{
    OperationRegion (PORT, SystemIO, 0x80, 0x01)
    Field (PORT, ByteAcc, NoLock, Preserve)
    {
        P80H,   8
    }

    OperationRegion (IO_T, SystemIO, 0x0800, 0x08)
    Field (IO_T, ByteAcc, NoLock, Preserve)
    {
        TRP0,   8
    }

    OperationRegion (PMIO, SystemIO, 0x1000, 0x50)
    Field (PMIO, ByteAcc, NoLock, Preserve)
    {
        Offset (0x10), 
            ,   1, 
        TDTY,   3, 
        THTL,   1
    }

    OperationRegion (GPIO, SystemIO, 0x1180, 0x3C)
    Field (GPIO, ByteAcc, NoLock, Preserve)
    {
        GU00,   8, 
        GU01,   8, 
        GU02,   8, 
        GU03,   8, 
        GIO0,   8, 
        GIO1,   8, 
        GIO2,   8, 
        GIO3,   8, 
        Offset (0x0C), 
        GL00,   8, 
        GL01,   8, 
        GL02,   8, 
        GL03,   8, 
        Offset (0x18), 
        GB00,   8, 
        GB01,   8, 
        GB02,   8, 
        GB03,   8, 
        Offset (0x2C), 
        GIV0,   8, 
        GIV1,   8, 
        GIV2,   8, 
        GIV3,   8, 
        GU04,   8, 
        GU05,   8, 
        GU06,   8, 
        GU07,   8, 
        GIO4,   8, 
        GIO5,   8, 
        GIO6,   8, 
        GIO7,   8, 
            ,   1, 
            ,   1, 
        CPEN,   1, 
        Offset (0x39), 
        GL05,   8, 
        GL06,   8, 
        GL07,   8
    }

    OperationRegion (MNVS, SystemMemory, 0x1FF6CE6C, 0x40)
    Field (MNVS, AnyAcc, Lock, Preserve)
    {
        OSYS,   16, 
        SMIF,   8, 
        PRM0,   8, 
        PRM1,   8, 
        SCIF,   8, 
        PRM2,   8, 
        PRM3,   8, 
        LCKF,   8, 
        PRM4,   8, 
        PRM5,   8, 
        DBGS,   8, 
        DCKS,   4, 
        CDCK,   4, 
        FPEN,   8, 
        FPST,   8, 
        LIDS,   8, 
        PWRS,   8, 
        WRK0,   1, 
        WRK1,   1, 
        SIDE,   8, 
        Offset (0x14), 
        CMAP,   8, 
        CMBP,   8, 
        LPTP,   8, 
        FDCP,   8, 
        Offset (0x19), 
        ACTT,   8, 
        PSVT,   8, 
        TC1V,   8, 
        TC2V,   8, 
        TSPV,   8, 
        CRTT,   8, 
        Offset (0x20), 
        BVAL,   32, 
        TMP0,   8, 
        TMP1,   8, 
        TMP2,   8, 
        TMP3,   8, 
        TMP4,   32, 
        TMP5,   32
    }

    Mutex (MUTX, 0x00)
    Name (_S0, Package (0x03)
    {
        0x00, 
        0x00, 
        0x00
    })
    Name (_S3, Package (0x03)
    {
        0x05, 
        0x05, 
        0x00
    })
    Name (_S4, Package (0x03)
    {
        0x06, 
        0x06, 
        0x00
    })
    Name (_S5, Package (0x03)
    {
        0x07, 
        0x07, 
        0x00
    })
    Name (DSEN, 0x01)
    Name (ENUM, 0x01)
    Name (NEDV, 0x01)
    Name (\CP3D, 0x00)
    OperationRegion (NV1, SystemIO, 0x72, 0x04)
    Field (NV1, ByteAcc, NoLock, Preserve)
    {
        CMID,   8, 
        CMDA,   8
    }

    Scope (\_PR)
    {
        Processor (CPU0, 0x00, 0x00001010, 0x06)
        {
            Method (_CST, 0, NotSerialized)
            {
                Return (Package (0x04)
                {
                    0x03, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 0x08, 0x00, 0x0000000000000000)
                        }, 

                        0x01, 
                        0x01, 
                        0x03E8
                    }, 

                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x0000000000001014)
                        }, 

                        0x02, 
                        0x01, 
                        0x01F4
                    }, 

                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x0000000000001015)
                        }, 

                        0x03, 
                        0x55, 
                        0xFA
                    }
                })
            }
        }
    }

    Name (\GPIC, 0x00)
    Name (\CTYP, 0x00)
    Name (\ECON, 0x00)
    Name (\CSST, 0x00)
    Method (\_PIC, 1, NotSerialized)
    {
        Store (Arg0, GPIC)
    }

    Method (_PTS, 1, NotSerialized)
    {
        Store (Arg0, \CSST)
        Store (Arg0, P80H)
        Acquire (MUTX, 0xFFFF)
        Store (\CSST, \_SB.PCI0.LPCB.EC.SPT)
        If (LEqual (\CSST, 0x05))
        {
            Store (0x00, \_SB.PCI0.LPCB.EC.ACPI)
        }

        Release (MUTX)
    }

    Method (_WAK, 1, NotSerialized)
    {
        Store (Arg0, P80H)
        If (LNot (LLess (Arg0, 0x03)))
        {
            Acquire (MUTX, 0xFFFF)
            Store (0x01, \_SB.PCI0.LPCB.EC.ACPI)
            Store (0x00, \_SB.PCI0.LPCB.EC.SPT)
            Release (MUTX)
        }

        Notify (\_SB.PCI0.USB0, 0x00)
        Notify (\_SB.PCI0.USB1, 0x00)
        Notify (\_SB.PCI0.USB2, 0x00)
        Notify (\_SB.PCI0.USB7, 0x00)
        Notify (\_SB.AC, 0x80)
        Notify (\_SB.CMB0, 0x81)
        Notify (\_SB.CMB0, 0x80)
        Store (0x00, \CSST)
        Return (Package (0x02)
        {
            0x00, 
            0x00
        })
    }

    Scope (\_GPE)
    {
        Method (_L00, 0, NotSerialized)
        {
            Store (0x2C, SMIF)
            Store (0x00, TRP0)
        }

        Method (_L03, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB0, 0x02)
            Notify (\_SB.PWRB, 0x02)
            Store (0x03, P80H)
        }

        Method (_L04, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB1, 0x02)
            Notify (\_SB.PWRB, 0x02)
            Store (0x04, P80H)
        }

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

        Method (_L0B, 0, NotSerialized)
        {
            Notify (\_SB.SLPB, 0x02)
        }

        Method (_L0C, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB2, 0x02)
            Notify (\_SB.PWRB, 0x02)
            Store (0x0C, P80H)
        }

        Method (_L0D, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB7, 0x02)
            Notify (\_SB.PWRB, 0x02)
            Store (0x0D, P80H)
        }

        Method (_L18, 0, NotSerialized)
        {
        }
    }

    Scope (\_TZ)
    {
        Name (C_TP, 0x61)
        Name (B_TP, 0x54)
        Name (D_TP, 0x3C)
        Name (O_TP, 0x02)
        Name (AC0R, 0x01)
        Name (AC1R, 0x02)
        Name (AC2R, 0x03)
        Name (AC3R, 0x04)
        Name (AC4R, 0x05)
        Name (AC5R, 0x06)
        Name (AC6R, 0x07)
        Name (DC0T, 0x5F)
        Name (DC1T, 0x5D)
        Name (DC2T, 0x5B)
        Name (BC0T, 0x52)
        Name (BC1T, 0x50)
        Name (BC2T, 0x4E)
        Name (S1LT, 0x00)
        Name (S1HT, 0x50)
        Name (S2LT, 0x00)
        Name (S2HT, 0x50)
        Name (TSCP, 0x00)
        Name (L0ST, 0x00)
        Name (L1ST, 0x00)
        Name (L2ST, 0x00)
        Name (TSCI, 0x00)
        PowerResource (LRP0, 0x00, 0x0000)
        {
            Method (_STA, 0, NotSerialized)
            {
                Store ("LRP0 _STA", Debug)
                Return (L0ST)
            }

            Method (_ON, 0, Serialized)
            {
                If (TSCI)
                {
                    Store ("LRP0 _ON", Debug)
                    Store (0xE0, P80H)
                    Store (One, L0ST)
                    Store (One, THTL)
                    Store (AC1R, TDTY)
                }
            }

            Method (_OFF, 0, Serialized)
            {
                If (TSCI)
                {
                    Store ("LRP0 _OFF", Debug)
                    Store (0xF0, P80H)
                    Store (Zero, L0ST)
                    If (LOr (L1ST, L2ST))
                    {
                        If (L1ST)
                        {
                            Store (AC3R, TDTY)
                        }
                        Else
                        {
                            Store (AC5R, TDTY)
                        }
                    }
                    Else
                    {
                        Store (Zero, THTL)
                    }
                }
            }
        }

        PowerResource (LRP1, 0x00, 0x0000)
        {
            Method (_STA, 0, NotSerialized)
            {
                Store ("LRP1 _STA", Debug)
                Return (L1ST)
            }

            Method (_ON, 0, Serialized)
            {
                If (LNot (L0ST))
                {
                    If (TSCI)
                    {
                        Store ("LRP1 _ON", Debug)
                        Store (0xE1, P80H)
                        Store (One, L1ST)
                        Store (One, THTL)
                        Store (AC3R, TDTY)
                    }
                }
            }

            Method (_OFF, 0, Serialized)
            {
                If (TSCI)
                {
                    Store ("LRP1 _OFF", Debug)
                    Store (0xF1, P80H)
                    Store (Zero, L1ST)
                    If (LOr (L0ST, L2ST))
                    {
                        If (L0ST)
                        {
                            Store (Zero, L0ST)
                            Store (One, L2ST)
                            Store (AC5R, TDTY)
                        }
                        Else
                        {
                            Store (AC5R, TDTY)
                        }
                    }
                    Else
                    {
                        Store (Zero, THTL)
                    }
                }
            }
        }

        PowerResource (LRP2, 0x00, 0x0000)
        {
            Method (_STA, 0, NotSerialized)
            {
                Store ("LRP2 _STA", Debug)
                Return (L2ST)
            }

            Method (_ON, 0, Serialized)
            {
                If (LNot (LOr (L0ST, L1ST)))
                {
                    If (TSCI)
                    {
                        Store ("LRP2 _ON", Debug)
                        Store (0xE2, P80H)
                        Store (One, L2ST)
                        Store (One, THTL)
                        Store (AC5R, TDTY)
                    }
                }
            }

            Method (_OFF, 0, Serialized)
            {
                If (TSCI)
                {
                    Store ("LRP2 _OFF", Debug)
                    Store (0xF2, P80H)
                    Store (Zero, L2ST)
                    Store (Zero, L1ST)
                    Store (Zero, L0ST)
                    Store (Zero, THTL)
                    If (LOr (L0ST, L1ST))
                    {
                        If (L0ST)
                        {
                            Store (AC1R, TDTY)
                        }
                        Else
                        {
                            Store (AC3R, TDTY)
                        }
                    }
                    Else
                    {
                        Store (Zero, THTL)
                    }
                }
            }
        }

        Device (FAN0)
        {
            Name (_HID, EisaId ("PNP0C0B"))
            Name (_UID, 0x01)
            Name (_PR0, Package (0x01)
            {
                LRP0
            })
        }

        Device (FAN1)
        {
            Name (_HID, EisaId ("PNP0C0B"))
            Name (_UID, 0x02)
            Name (_PR0, Package (0x01)
            {
                LRP1
            })
        }

        Device (FAN2)
        {
            Name (_HID, EisaId ("PNP0C0B"))
            Name (_UID, 0x03)
            Name (_PR0, Package (0x01)
            {
                LRP2
            })
        }

        ThermalZone (THM2)
        {
            Method (_AC0, 0, NotSerialized)
            {
                Store (0xC0, P80H)
                Store ("_AC0", Debug)
                Return (GACX (BC0T))
            }

            Name (_AL0, Package (0x01)
            {
                FAN0
            })
            Method (_AC1, 0, NotSerialized)
            {
                Store (0xC1, P80H)
                Store ("_AC1", Debug)
                Return (GACX (BC1T))
            }

            Name (_AL1, Package (0x01)
            {
                FAN1
            })
            Method (_AC2, 0, NotSerialized)
            {
                Store (0xC2, P80H)
                Store ("_AC2", Debug)
                Return (GACX (BC2T))
            }

            Name (_AL2, Package (0x01)
            {
                FAN2
            })
            Method (_CRT, 0, NotSerialized)
            {
                Store ("_CRT", Debug)
                Return (KELV (B_TP))
            }

            Method (_TMP, 0, NotSerialized)
            {
                If (\ECON)
                {
                    Store (0xC3, P80H)
                    Acquire (MUTX, 0xFFFF)
                    Store (\_SB.PCI0.LPCB.EC.TMP2, Local0)
                    Release (MUTX)
                    Return (KELV (Local0))
                }
                Else
                {
                    Return (KELV (D_TP))
                }
            }

            Method (KELV, 1, NotSerialized)
            {
                Multiply (Arg0, 0x0A, Local0)
                Add (Local0, 0x0AAC, Local0)
                Return (Local0)
            }

            Method (_SCP, 1, NotSerialized)
            {
                Store (Arg0, TSCP)
                Notify (\_TZ.THM2, 0x81)
            }

            Method (GACX, 1, NotSerialized)
            {
                Return (KELV (Arg0))
            }
        }

        ThermalZone (THRM)
        {
            Name (SCIF, 0x00)
            Method (_AC0, 0, NotSerialized)
            {
                Store (0xC0, P80H)
                Store ("_AC0", Debug)
                Return (GACX (DC0T))
            }

            Name (_AL0, Package (0x01)
            {
                FAN0
            })
            Method (_AC1, 0, NotSerialized)
            {
                Store (0xC1, P80H)
                Store ("_AC1", Debug)
                Return (GACX (DC1T))
            }

            Name (_AL1, Package (0x01)
            {
                FAN1
            })
            Method (_AC2, 0, NotSerialized)
            {
                Store (0xC2, P80H)
                Store ("_AC2", Debug)
                Return (GACX (DC2T))
            }

            Name (_AL2, Package (0x01)
            {
                FAN2
            })
            Method (_CRT, 0, NotSerialized)
            {
                Store ("_CRT", Debug)
                Return (KELV (C_TP))
            }

            Method (_TMP, 0, NotSerialized)
            {
                If (\ECON)
                {
                    Store (0xC3, P80H)
                    Acquire (MUTX, 0xFFFF)
                    Store (\_SB.PCI0.LPCB.EC.TMP1, Local0)
                    Release (MUTX)
                    Return (KELV (Local0))
                }
                Else
                {
                    Return (KELV (D_TP))
                }
            }

            Method (KELV, 1, NotSerialized)
            {
                Multiply (Arg0, 0x0A, Local0)
                Add (Local0, 0x0AAC, Local0)
                Return (Local0)
            }

            Method (_SCP, 1, NotSerialized)
            {
                Store (Arg0, TSCP)
                Notify (\_TZ.THRM, 0x81)
            }

            Method (GACX, 1, NotSerialized)
            {
                Return (KELV (Arg0))
            }
        }
    }

    Scope (\_SB)
    {
        Device (AC)
        {
            Name (_HID, "ACPI0003")
            Name (ACPW, Ones)
            Name (_PCL, Package (0x01)
            {
                \_SB
            })
            Name (_STA, 0x0F)
            Method (_PSR, 0, NotSerialized)
            {
                If (\ECON)
                {
                    Acquire (MUTX, 0xFFFF)
                    Store (\_SB.PCI0.LPCB.EC.ACP, Local0)
                    If (Local0)
                    {
                        And (\_SB.PCI0.LPCB.PMC1, 0x7F, \_SB.PCI0.LPCB.PMC1)
                    }
                    Else
                    {
                        And (\_SB.PCI0.LPCB.PMC1, 0x7F, \_SB.PCI0.LPCB.PMC1)
                    }

                    And (\_SB.PCI0.LPCB.EC.ACP, 0x01, ACPW)
                    Release (MUTX)
                    Return (ACPW)
                }
                Else
                {
                    Return (0x01)
                }
            }
        }

        Device (CMB0)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_UID, 0x01)
            Name (BATS, Ones)
            Name (CRIT, 0x00)
            Name (LFC0, 0xFFFF)
            Name (_PCL, Package (0x01)
            {
                \_SB
            })
            Method (_STA, 0, NotSerialized)
            {
                If (\ECON)
                {
                    Acquire (MUTX, 0xFFFF)
                    And (\_SB.PCI0.LPCB.EC.BAP1, 0x01, BATS)
                    Release (MUTX)
                    If (LEqual (BATS, Zero))
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (0x1F)
                    }
                }
                Else
                {
                    Return (0x0F)
                }
            }

            Name (PBIF, Package (0x0D)
            {
                0x01, 
                Ones, 
                Ones, 
                0x01, 
                Ones, 
                0x0320, 
                0x0320, 
                0x64, 
                0x64, 
                "BAT1", 
                "1234", 
                "LION", 
                "LGIBM"
            })
            Method (_BIF, 0, NotSerialized)
            {
                Store (0xB1, P80H)
                If (\ECON)
                {
                    Acquire (MUTX, 0xFFFF)
                    ShiftRight (And (\_SB.PCI0.LPCB.EC.BDC, 0xFF00, Local0), 0x08, Local0)
                    ShiftLeft (And (\_SB.PCI0.LPCB.EC.BDC, 0xFF, Local1), 0x08, Local1)
                    Add (Local0, Local1, Local0)
                    If (LEqual (Local0, 0xFFFF))
                    {
                        Store (0xFFFFFFFF, Local0)
                    }

                    Store (Local0, Index (PBIF, 0x01))
                    ShiftRight (And (\_SB.PCI0.LPCB.EC.BLFC, 0xFF00, Local0), 0x08, Local0)
                    ShiftLeft (And (\_SB.PCI0.LPCB.EC.BLFC, 0xFF, Local1), 0x08, Local1)
                    Add (Local0, Local1, Local0)
                    If (LEqual (Local0, 0xFFFF))
                    {
                        Store (0xFFFFFFFF, Local0)
                    }

                    Store (Local0, Index (PBIF, 0x02))
                    Store (Local0, LFC0)
                    Store (0x01, Index (PBIF, 0x03))
                    ShiftRight (And (\_SB.PCI0.LPCB.EC.BDV, 0xFF00, Local0), 0x08, Local0)
                    ShiftLeft (And (\_SB.PCI0.LPCB.EC.BDV, 0xFF, Local1), 0x08, Local1)
                    Add (Local0, Local1, Local0)
                    If (LEqual (Local0, 0xFFFF))
                    {
                        Store (0xFFFFFFFF, Local0)
                    }

                    Store (Local0, Index (PBIF, 0x04))
                    ShiftRight (And (\_SB.PCI0.LPCB.EC.BDWC, 0xFF00, Local0), 0x08, Local0)
                    ShiftLeft (And (\_SB.PCI0.LPCB.EC.BDWC, 0xFF, Local1), 0x08, Local1)
                    Add (Local0, Local1, Local0)
                    Store (Local0, Index (PBIF, 0x05))
                    Store (0x10, Index (PBIF, 0x06))
                    ShiftRight (And (\_SB.PCI0.LPCB.EC.BSN, 0xFF00, Local0), 0x08, Local0)
                    ShiftLeft (And (\_SB.PCI0.LPCB.EC.BSN, 0xFF, Local1), 0x08, Local1)
                    Add (Local0, Local1, Local0)
                    Name (SERN, Buffer (0x06)
                    {
                        "     "
                    })
                    Store (0x04, Local2)
                    While (Local0)
                    {
                        Divide (Local0, 0x0A, Local1, Local0)
                        Add (Local1, 0x30, Index (SERN, Local2))
                        Decrement (Local2)
                    }

                    Store (SERN, Index (PBIF, 0x0A))
                    Release (MUTX)
                }

                Store (0xB2, P80H)
                Return (PBIF)
            }

            Name (BUFF, Package (0x04)
            {
                0x00, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF
            })
            Method (_BST, 0, NotSerialized)
            {
                Store (0xB3, P80H)
                If (\ECON)
                {
                    Acquire (MUTX, 0xFFFF)
                    If (And (\_SB.PCI0.LPCB.EC.BST, 0x03))
                    {
                        Store (\_SB.PCI0.LPCB.EC.BST, Local0)
                    }
                    Else
                    {
                        Store (Or (0x01, \_SB.PCI0.LPCB.EC.BST), Local0)
                    }

                    Store (And (Local0, 0x07), Local1)
                    Store (Local1, Index (BUFF, 0x00))
                    ShiftRight (And (\_SB.PCI0.LPCB.EC.BPR, 0xFF00, Local0), 0x08, Local0)
                    ShiftLeft (And (\_SB.PCI0.LPCB.EC.BPR, 0xFF, Local1), 0x08, Local1)
                    Add (Local0, Local1, Local0)
                    If (LEqual (Local0, 0x7FFF))
                    {
                        Store (0xFFFFFFFF, Local0)
                        Store (Local0, Index (BUFF, 0x01))
                    }
                    Else
                    {
                        Store (Local0, Local1)
                        If (And (Local0, 0x8000))
                        {
                            Store (Subtract (0x00010000, Local1), Local2)
                        }
                        Else
                        {
                            Store (Local1, Local2)
                        }

                        Store (Local2, Index (BUFF, 0x01))
                    }

                    ShiftRight (And (\_SB.PCI0.LPCB.EC.BRC, 0xFF00, Local0), 0x08, Local0)
                    ShiftLeft (And (\_SB.PCI0.LPCB.EC.BRC, 0xFF, Local1), 0x08, Local1)
                    Add (Local0, Local1, Local0)
                    If (LEqual (Local0, 0xFFFF))
                    {
                        Store (0xFFFFFFFF, Local0)
                    }

                    If (LGreater (Local0, LFC0))
                    {
                        Store (LFC0, Index (BUFF, 0x02))
                    }
                    Else
                    {
                        Store (Local0, Index (BUFF, 0x02))
                    }

                    ShiftRight (And (\_SB.PCI0.LPCB.EC.BPV, 0xFF00, Local0), 0x08, Local0)
                    ShiftLeft (And (\_SB.PCI0.LPCB.EC.BPV, 0xFF, Local1), 0x08, Local1)
                    Add (Local0, Local1, Local0)
                    If (LEqual (Local0, 0xFFFF))
                    {
                        Store (0xFFFFFFFF, Local0)
                    }

                    Store (Local0, Index (BUFF, 0x03))
                    Release (MUTX)
                }

                Store (0xB4, P80H)
                Return (BUFF)
            }

            Method (_BTP, 1, NotSerialized)
            {
                If (\ECON)
                {
                    Store ("_SB.CMB0._BTP", Debug)
                }
            }
        }

        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Name (_PRW, Package (0x02)
            {
                0x18, 
                0x05
            })
        }

        Device (SLPB)
        {
            Name (_HID, EisaId ("PNP0C0E"))
            Name (_PRW, Package (0x02)
            {
                0x18, 
                0x04
            })
        }

        Device (LID0)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Method (_LID, 0, NotSerialized)
            {
                Return (LIDS)
            }
        }

        Device (PCI0)
        {
            Method (_INI, 0, NotSerialized)
            {
                If (CondRefOf (\_OSI, Local0))
                {
                    Store (0x07D1, OSYS)
                }
                Else
                {
                    If (LEqual (SizeOf (_OS), 0x14))
                    {
                        Store (0x07D0, OSYS)
                    }
                    Else
                    {
                        If (LEqual (SizeOf (_OS), 0x27))
                        {
                            Store (0x07CF, OSYS)
                        }
                        Else
                        {
                            Store (0x07CE, OSYS)
                        }
                    }
                }

                If (LNot (LGreater (OSYS, 0x07CF)))
                {
                    Store (0x01, ECON)
                    Store (0x01, \_SB.PCI0.LPCB.EC.ACPI)
                }
            }

            Method (_S1D, 0, NotSerialized)
            {
                If (LEqual (OSYS, 0x07CF))
                {
                    Return (0x02)
                }

                Return (0x01)
            }

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

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

            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, 0x00)
            Name (_BBN, 0x00)
            OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
            Field (HBUS, DWordAcc, NoLock, Preserve)
            {
                Offset (0x20), 
                DRB0,   8, 
                DRB1,   8, 
                DRB2,   8, 
                DRB3,   8, 
                Offset (0x50), 
                    ,   4, 
                PM0H,   2, 
                Offset (0x51), 
                PM1L,   2, 
                    ,   2, 
                PM1H,   2, 
                Offset (0x52), 
                PM2L,   2, 
                    ,   2, 
                PM2H,   2, 
                Offset (0x53), 
                PM3L,   2, 
                    ,   2, 
                PM3H,   2, 
                Offset (0x54), 
                PM4L,   2, 
                    ,   2, 
                PM4H,   2, 
                Offset (0x55), 
                PM5L,   2, 
                    ,   2, 
                PM5H,   2, 
                Offset (0x56), 
                PM6L,   2, 
                    ,   2, 
                PM6H,   2, 
                Offset (0x57), 
                FDHC,   8
            }

            Name (BUF0, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,
                    0x0000,
                    0x00FF,
                    0x0000,
                    0x0100, 0x00)
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x00000000,
                    0x00000000,
                    0x00000CF7,
                    0x00000000,
                    0x00000CF8, 0x00)
                IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x00000000,
                    0x00000D00,
                    0x0000FFFF,
                    0x00000000,
                    0x0000F300, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000A0000,
                    0x000BFFFF,
                    0x00000000,
                    0x00020000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C0000,
                    0x000C3FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C4000,
                    0x000C7FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C8000,
                    0x000CBFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000CC000,
                    0x000CFFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D0000,
                    0x000D3FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D4000,
                    0x000D7FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D8000,
                    0x000DBFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000DC000,
                    0x000DFFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E0000,
                    0x000E3FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E4000,
                    0x000E7FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E8000,
                    0x000EBFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000EC000,
                    0x000EFFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000F0000,
                    0x000FFFFF,
                    0x00000000,
                    0x00010000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x00000000,
                    0xFEBFFFFF,
                    0x00000000,
                    0x00000000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000, 0x00)
            })
            Method (_CRS, 0, Serialized)
            {
                If (PM1L)
                {
                    CreateDWordField (BUF0, 0x80, C0LN)
                    Store (Zero, C0LN)
                }

                If (LEqual (PM1L, 0x01))
                {
                    CreateBitField (BUF0, 0x0378, C0RW)
                    Store (Zero, C0RW)
                }

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

                If (LEqual (PM1H, 0x01))
                {
                    CreateBitField (BUF0, 0x0450, C4RW)
                    Store (Zero, C4RW)
                }

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

                If (LEqual (PM2L, 0x01))
                {
                    CreateBitField (BUF0, 0x0528, C8RW)
                    Store (Zero, C8RW)
                }

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

                If (LEqual (PM2H, 0x01))
                {
                    CreateBitField (BUF0, 0x0600, CCRW)
                    Store (Zero, CCRW)
                }

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

                If (LEqual (PM3L, 0x01))
                {
                    CreateBitField (BUF0, 0x06D8, D0RW)
                    Store (Zero, D0RW)
                }

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

                If (LEqual (PM3H, 0x01))
                {
                    CreateBitField (BUF0, 0x07B0, D4RW)
                    Store (Zero, D4RW)
                }

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

                If (LEqual (PM4L, 0x01))
                {
                    CreateBitField (BUF0, 0x0888, D8RW)
                    Store (Zero, D8RW)
                }

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

                If (LEqual (PM4H, 0x01))
                {
                    CreateBitField (BUF0, 0x0960, DCRW)
                    Store (Zero, DCRW)
                }

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

                If (LEqual (PM5L, 0x01))
                {
                    CreateBitField (BUF0, 0x0A38, E0RW)
                    Store (Zero, E0RW)
                }

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

                If (LEqual (PM5H, 0x01))
                {
                    CreateBitField (BUF0, 0x0B10, E4RW)
                    Store (Zero, E4RW)
                }

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

                If (LEqual (PM6L, 0x01))
                {
                    CreateBitField (BUF0, 0x0BE8, E8RW)
                    Store (Zero, E8RW)
                }

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

                If (LEqual (PM6H, 0x01))
                {
                    CreateBitField (BUF0, 0x0CC0, ECRW)
                    Store (Zero, ECRW)
                }

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

                If (LEqual (PM0H, 0x01))
                {
                    CreateBitField (BUF0, 0x0D98, F0RW)
                    Store (Zero, F0RW)
                }

                CreateDWordField (BUF0, 0x01D3, M1MN)
                CreateDWordField (BUF0, 0x01D7, M1MX)
                CreateDWordField (BUF0, 0x01DF, M1LN)
                Multiply (0x02000000, DRB3, M1MN)
                Add (Subtract (M1MX, M1MN), 0x01, M1LN)
                ShiftRight (And (\_SB.PCI0.LPCB.HPTE, 0x00038000), 0x0F, Local0)
                If (And (Local0, 0x04))
                {
                    CreateDWordField (BUF0, 0x01EE, M2MN)
                    CreateDWordField (BUF0, 0x01F2, M2MX)
                    CreateDWordField (BUF0, 0x01FA, M2LN)
                    Store (0xFED00000, M2MN)
                    Store (0xFED003FF, M2MX)
                    Store (0x0400, M2LN)
                    If (LEqual (Local0, 0x05))
                    {
                        Store (0xFED01000, M2MN)
                        Store (0xFED013FF, M2MX)
                    }

                    If (LEqual (Local0, 0x06))
                    {
                        Store (0xFED02000, M2MN)
                        Store (0xFED023FF, M2MX)
                    }

                    If (LEqual (Local0, 0x07))
                    {
                        Store (0xFED03000, M2MN)
                        Store (0xFED033FF, M2MX)
                    }
                }

                Return (BUF0)
            }

            Method (_PRT, 0, NotSerialized)
            {
                If (GPIC)
                {
                    Return (Package (0x07)
                    {
                        Package (0x04)
                        {
                            0x0007FFFF, 
                            0x00, 
                            0x00, 
                            0x10
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x00, 
                            0x00, 
                            0x10
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x01, 
                            0x00, 
                            0x13
                        }, 

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

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x03, 
                            0x00, 
                            0x17
                        }, 

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

                        Package (0x04)
                        {
                            0x001FFFFF, 
                            0x01, 
                            0x00, 
                            0x11
                        }
                    })
                }
                Else
                {
                    Return (Package (0x07)
                    {
                        Package (0x04)
                        {
                            0x0007FFFF, 
                            0x00, 
                            \_SB.PCI0.LPCB.LNKA, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x00, 
                            \_SB.PCI0.LPCB.LNKA, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x01, 
                            \_SB.PCI0.LPCB.LNKD, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x02, 
                            \_SB.PCI0.LPCB.LNKC, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x03, 
                            \_SB.PCI0.LPCB.LNKH, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001FFFFF, 
                            0x00, 
                            \_SB.PCI0.LPCB.LNKC, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001FFFFF, 
                            0x01, 
                            \_SB.PCI0.LPCB.LNKB, 
                            0x00
                        }
                    })
                }
            }

            Device (AGPB)
            {
                Name (_ADR, 0x00010000)
                Method (_PRT, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        Package (0x04)
                        {
                            0xFFFF, 
                            0x00, 
                            \_SB.PCI0.LPCB.LNKA, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0xFFFF, 
                            0x01, 
                            \_SB.PCI0.LPCB.LNKB, 
                            0x00
                        }
                    })
                }

                Device (VGA)
                {
                    Name (_ADR, 0x00)
                    Name (_S3D, 0x03)
                    OperationRegion (VGAB, SystemMemory, 0x1FF6CFAC, 0x00010010)
                    Field (VGAB, AnyAcc, Lock, Preserve)
                    {
                        RSIZ,   32, 
                        VFUN,   16, 
                        CSTE,   16, 
                        NSTE,   16, 
                        SSTE,   16, 
                        CADL,   16, 
                        PADL,   16, 
                        RBUF,   524288
                    }

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

                    Method (_DOD, 0, NotSerialized)
                    {
                        Return (Package (0x03)
                        {
                            0x00010100, 
                            0x00010110, 
                            0x00010200
                        })
                        Name (PSIZ, 0x00)
                        Name (PPTR, 0x00)
                        Store (0x82, \_SB.BCMD)
                        Store (Zero, \_SB.SMIC)
                        Store (CADL, Local0)
                        Store (CADL, Local1)
                        Store (CADL, PADL)
                        While (Local1)
                        {
                            If (And (Local1, 0x01))
                            {
                                Increment (PSIZ)
                            }

                            ShiftRight (Local1, 0x01, Local1)
                        }

                        If (LOr (LEqual (PSIZ, 0x00), LGreater (PSIZ, 0x03)))
                        {
                            Store (0x00, ENUM)
                            Return (Package (0x01)
                            {
                                0x00010100
                            })
                        }
                        Else
                        {
                            Store (0x01, ENUM)
                            If (LEqual (PSIZ, 0x02))
                            {
                                Name (VID2, Package (0x02)
                                {
                                    0x00010100, 
                                    0x00010110
                                })
                                If (And (Local0, 0x01))
                                {
                                    Store (0x00010100, Index (VID2, PPTR))
                                    Increment (PPTR)
                                }

                                If (And (Local0, 0x02))
                                {
                                    Store (0x00010110, Index (VID2, PPTR))
                                    Increment (PPTR)
                                }

                                If (And (Local0, 0x04))
                                {
                                    Store (0x00010200, Index (VID2, PPTR))
                                    Increment (PPTR)
                                }

                                Return (VID2)
                            }

                            If (LEqual (PSIZ, 0x03))
                            {
                                Name (VID3, Package (0x03)
                                {
                                    0x00010100, 
                                    0x00010110, 
                                    0x00010200
                                })
                                If (And (Local0, 0x01))
                                {
                                    Store (0x00010100, Index (VID3, PPTR))
                                    Increment (PPTR)
                                }

                                If (And (Local0, 0x02))
                                {
                                    Store (0x00010110, Index (VID3, PPTR))
                                    Increment (PPTR)
                                }

                                If (And (Local0, 0x04))
                                {
                                    Store (0x00010200, Index (VID3, PPTR))
                                    Increment (PPTR)
                                }

                                Return (VID3)
                            }

                            Name (VID1, Package (0x01)
                            {
                                0x00010100
                            })
                            If (And (Local0, 0x01))
                            {
                                Store (0x00010100, Index (VID1, 0x00))
                            }

                            If (And (Local0, 0x02))
                            {
                                Store (0x00010110, Index (VID1, 0x00))
                            }

                            If (And (Local0, 0x04))
                            {
                                Store (0x00010200, Index (VID1, 0x00))
                            }

                            Return (VID1)
                        }
                    }

                    Name (_PSC, 0x00)
                    Method (_PS0, 0, NotSerialized)
                    {
                        Store ("VGA_PS0", Debug)
                        Store (0x00, _PSC)
                    }

                    Method (_PS2, 0, NotSerialized)
                    {
                        Store ("VGA_PS2", Debug)
                        Store (0x02, _PSC)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        Store ("VGA_PS3", Debug)
                        Store (0x03, _PSC)
                    }

                    Device (CRT0)
                    {
                        Name (_ADR, 0x0100)
                        Method (_DCS, 0, NotSerialized)
                        {
                            Store (0x81, \_SB.BCMD)
                            Store (Zero, \_SB.SMIC)
                            Store (CSTE, Local0)
                            If (Local0)
                            {
                                If (And (Local0, 0x0202))
                                {
                                    Return (0x1F)
                                }
                            }

                            Return (0x1D)
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Store (\NEDV, Local0)
                            If (Local0)
                            {
                                If (LOr (And (Local0, 0x02), And (Local0, 0x04)))
                                {
                                    Return (0x01)
                                }
                            }

                            Return (0x00)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                        }
                    }

                    Device (LCD0)
                    {
                        Name (_ADR, 0x0110)
                        Method (_DCS, 0, NotSerialized)
                        {
                            Store (0x81, \_SB.BCMD)
                            Store (Zero, \_SB.SMIC)
                            Store (CSTE, Local0)
                            If (Local0)
                            {
                                If (And (Local0, 0x0101))
                                {
                                    Return (0x1F)
                                }
                            }

                            Return (0x1D)
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Store (\NEDV, Local0)
                            If (Local0)
                            {
                                If (LOr (And (Local0, 0x01), And (Local0, 0x04)))
                                {
                                    Return (0x01)
                                }
                            }

                            Return (0x00)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                        }
                    }

                    Device (TV0)
                    {
                        Name (_ADR, 0x0200)
                        Method (_DCS, 0, NotSerialized)
                        {
                            Store (0x82, \_SB.BCMD)
                            Store (Zero, \_SB.SMIC)
                            Store (CSTE, Local0)
                            If (Local0)
                            {
                                If (And (Local0, 0x04))
                                {
                                    Return (0x1F)
                                }
                            }

                            Return (0x1D)
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Store (\NEDV, Local0)
                            If (Local0)
                            {
                                If (And (Local0, 0x08))
                                {
                                    Return (0x01)
                                }
                            }

                            Return (0x00)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                        }
                    }
                }
            }

            Device (PCIB)
            {
                Device (CRD0)
                {
                    Name (_ADR, 0x00)
                    OperationRegion (CBD0, PCI_Config, 0x00, 0xC0)
                    Field (CBD0, AnyAcc, NoLock, Preserve)
                    {
                        Offset (0x3C), 
                        CD3C,   8, 
                        Offset (0x44), 
                        CD44,   32, 
                        Offset (0x80), 
                        OPME,   1, 
                        Offset (0x8F), 
                        MF06,   4, 
                        Offset (0xA4), 
                        PWST,   2, 
                        Offset (0xA5), 
                        PMEE,   1, 
                            ,   6, 
                        PMST,   1
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        Or (CD3C, 0xFF, CD3C)
                        Store (0x00, CD44)
                        Or (OPME, 0x01, OPME)
                        Or (MF06, 0x01, MF06)
                    }
                }

                Device (CRD1)
                {
                    Name (_ADR, 0x01)
                    OperationRegion (CBD1, PCI_Config, 0x00, 0xB4)
                    Field (CBD1, AnyAcc, NoLock, Preserve)
                    {
                        Offset (0x3C), 
                        CD3C,   8, 
                        Offset (0x44), 
                        CD44,   32, 
                        Offset (0x80), 
                        OPME,   1, 
                        Offset (0x8F), 
                        MF06,   4, 
                        Offset (0xA4), 
                        PWST,   2, 
                        Offset (0xA5), 
                        PMEE,   1, 
                            ,   6, 
                        PMST,   1
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        Or (CD3C, 0xFF, CD3C)
                        Store (0x00, CD44)
                        Or (OPME, 0x01, OPME)
                        Or (MF06, 0x01, MF06)
                    }
                }

                Name (_ADR, 0x001E0000)
                Device (LANC)
                {
                    Name (_ADR, 0x00060000)
                    Name (_PRW, Package (0x02)
                    {
                        0x0B, 
                        0x05
                    })
                    Method (_PSW, 1, NotSerialized)
                    {
                        If (\ECON)
                        {
                            Acquire (\MUTX, 0xFFFF)
                            Store (Arg0, \_SB.PCI0.LPCB.EC.LNW4)
                            Store (Arg0, \_SB.PCI0.LPCB.EC.LNW3)
                            Release (\MUTX)
                        }
                    }
                }

                Method (_PRT, 0, NotSerialized)
                {
                    Return (Package (0x07)
                    {
                        Package (0x04)
                        {
                            0x0006FFFF, 
                            0x00, 
                            \_SB.PCI0.LPCB.LNKA, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0xFFFF, 
                            0x00, 
                            \_SB.PCI0.LPCB.LNKD, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0xFFFF, 
                            0x01, 
                            \_SB.PCI0.LPCB.LNKD, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0xFFFF, 
                            0x02, 
                            \_SB.PCI0.LPCB.LNKD, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0xFFFF, 
                            0x03, 
                            \_SB.PCI0.LPCB.LNKD, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x0002FFFF, 
                            0x00, 
                            \_SB.PCI0.LPCB.LNKC, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x0002FFFF, 
                            0x01, 
                            \_SB.PCI0.LPCB.LNKD, 
                            0x00
                        }
                    })
                }
            }

            Device (LPCB)
            {
                Name (_ADR, 0x001F0000)
                OperationRegion (LPC0, PCI_Config, 0x40, 0xC0)
                Field (LPC0, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x20), 
                    PIRA,   8, 
                    PIRB,   8, 
                    PIRC,   8, 
                    PIRD,   8, 
                    Offset (0x28), 
                    PIRE,   8, 
                    PIRF,   8, 
                    PIRG,   8, 
                    PIRH,   8, 
                    Offset (0x60), 
                    PMC1,   8, 
                    Offset (0x90), 
                    HPTE,   32, 
                    Offset (0xA0), 
                    LDE0,   8, 
                    LDE1,   8
                }

                Device (LNKA)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x01)
                    Method (_DIS, 0, Serialized)
                    {
                        Store (0x80, PIRA)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {1,3,5,6,7,10,11,12,14}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLA, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTLA, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PIRA, 0x0F), IRQ0)
                        Return (RTLA)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PIRA)
                    }

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

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

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {1,3,5,6,7,10,11,12,14}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLB, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTLB, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PIRB, 0x0F), IRQ0)
                        Return (RTLB)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PIRB)
                    }

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

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

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {1,3,5,6,7,10,11,12,14}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLC, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTLC, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PIRC, 0x0F), IRQ0)
                        Return (RTLC)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PIRC)
                    }

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

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

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {1,3,5,6,7,10,11,12,14}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLD, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTLD, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PIRD, 0x0F), IRQ0)
                        Return (RTLD)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PIRD)
                    }

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

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

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {1,3,5,6,7,10,11,12,14}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLE, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTLE, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PIRE, 0x0F), IRQ0)
                        Return (RTLE)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PIRE)
                    }

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

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

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {1,3,5,6,7,10,11,12,14}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLF, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTLF, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PIRF, 0x0F), IRQ0)
                        Return (RTLF)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PIRF)
                    }

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

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

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {1,3,5,6,7,10,11,12,14}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLG, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTLG, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PIRG, 0x0F), IRQ0)
                        Return (RTLG)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PIRG)
                    }

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

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

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {1,3,5,6,7,10,11,12,14}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLH, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTLH, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PIRH, 0x0F), IRQ0)
                        Return (RTLH)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PIRH)
                    }

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

                Device (TIMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
                        IO (Decode16, 0x0050, 0x0050, 0x10, 0x04)
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
                        IO (Decode16, 0x0050, 0x0050, 0x10, 0x04)
                        IRQNoFlags () {0}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        If (And (HPTE, 0x00020000))
                        {
                            Return (BUF0)
                        }

                        Return (BUF1)
                    }
                }

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

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x01, 0x08)
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x01, 0x08)
                        IRQNoFlags () {8}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        If (And (HPTE, 0x00020000))
                        {
                            Return (BUF0)
                        }

                        Return (BUF1)
                    }
                }

                Device (MATH)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x00F0, 0x00F0, 0x01, 0x01)
                        IRQNoFlags () {13}
                    })
                }

                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x20)
                        IO (Decode16, 0x0081, 0x0081, 0x01, 0x0F)
                        IO (Decode16, 0x0090, 0x0090, 0x01, 0x02)
                        IO (Decode16, 0x0093, 0x0093, 0x01, 0x0D)
                        IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
                        DMA (Compatibility, NotBusMaster, Transfer8_16) {4}
                    })
                }

                Device (MBRD)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x004E, 0x004E, 0x01, 0x02)
                        IO (Decode16, 0x0061, 0x0061, 0x01, 0x01)
                        IO (Decode16, 0x0063, 0x0063, 0x01, 0x01)
                        IO (Decode16, 0x0065, 0x0065, 0x01, 0x01)
                        IO (Decode16, 0x0067, 0x0067, 0x01, 0x01)
                        IO (Decode16, 0x0080, 0x0080, 0x01, 0x01)
                        IO (Decode16, 0x0092, 0x0092, 0x01, 0x01)
                        IO (Decode16, 0x00B2, 0x00B2, 0x01, 0x02)
                        IO (Decode16, 0x0600, 0x0600, 0x01, 0x10)
                        IO (Decode16, 0x0800, 0x0800, 0x01, 0x08)
                        IO (Decode16, 0x1000, 0x1000, 0x01, 0x80)
                        IO (Decode16, 0x1180, 0x1180, 0x01, 0x40)
                        Memory32Fixed (ReadWrite, 0xFEBFE000, 0x00001000)
                        Memory32Fixed (ReadWrite, 0xFEBFF000, 0x00001000)
                        Memory32Fixed (ReadWrite, 0xFEC00000, 0x00001000)
                    })
                }

                Device (FWHD)
                {
                    Name (_HID, EisaId ("INT0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly, 0xFF800000, 0x00800000)
                    })
                }

                Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IRQNoFlags () {0}
                        IRQNoFlags () {8}
                        Memory32Fixed (ReadOnly, 0xFED00000, 0x00000400)
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        ShiftRight (And (HPTE, 0x00038000), 0x0F, Local0)
                        If (LEqual (OSYS, 0x07D1))
                        {
                            If (And (Local0, 0x04))
                            {
                                Return (0x0F)
                            }
                        }
                        Else
                        {
                            If (And (Local0, 0x04))
                            {
                                Return (0x0B)
                            }
                        }

                        Return (0x00)
                    }

                    Method (_CRS, 0, Serialized)
                    {
                        ShiftRight (And (HPTE, 0x00038000), 0x0F, Local0)
                        If (And (Local0, 0x04))
                        {
                            CreateDWordField (BUF0, 0x0A, HPT0)
                            If (LEqual (Local0, 0x05))
                            {
                                Store (0xFED01000, HPT0)
                            }

                            If (LEqual (Local0, 0x06))
                            {
                                Store (0xFED02000, HPT0)
                            }

                            If (LEqual (Local0, 0x07))
                            {
                                Store (0xFED03000, HPT0)
                            }
                        }

                        Return (BUF0)
                    }
                }

                Device (EC)
                {
                    Name (_HID, EisaId ("PNP0C09"))
                    Name (_UID, 0x01)
                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BFFR, ResourceTemplate ()
                        {
                            IO (Decode16, 0x0062, 0x0062, 0x00, 0x01)
                            IO (Decode16, 0x0066, 0x0066, 0x00, 0x01)
                        })
                        Return (BFFR)
                    }

                    OperationRegion (ERAM, EmbeddedControl, 0x00, 0xFF)
                    Field (ERAM, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x01), 
                        VER,    24, 
                        Offset (0x08), 
                        AVER,   48, 
                        Offset (0x60), 
                        SPT,    4, 
                        ACPI,   1, 
                        Offset (0x62), 
                        MSWK,   1, 
                        KBWK,   1, 
                        LNW4,   1, 
                        LNW3,   1, 
                            ,   2, 
                        LIW3,   1, 
                        Offset (0x64), 
                        TPDP,   1, 
                        TPDU,   1, 
                        IKDP,   1, 
                        IKDU,   1, 
                        Offset (0x65), 
                            ,   1, 
                        UPS4,   1, 
                        UPS3,   1, 
                        Offset (0x66), 
                        Offset (0x68), 
                        DLB1,   1, 
                        DLB2,   1, 
                        Offset (0x69), 
                        Offset (0x6C), 
                        WRI,    1, 
                        WLAN,   1, 
                        WLID,   1, 
                        WIPS,   1, 
                        WLBT,   1, 
                        Offset (0x6D), 
                        Offset (0x6E), 
                        LID,    1, 
                        Offset (0x6F), 
                        Offset (0x7F), 
                        MBSE,   8, 
                        ACP,    1, 
                        BAP1,   1, 
                        BAP2,   1, 
                        BAP3,   1, 
                        BLB1,   1, 
                        BLB2,   1, 
                        Offset (0x81), 
                        BT,     2, 
                        BPU,    1, 
                        Offset (0x82), 
                        BST,    3, 
                        Offset (0x83), 
                        BTY,    8, 
                        BDC,    16, 
                        BLFC,   16, 
                        BDV,    16, 
                        BDWC,   16, 
                        BDLC,   16, 
                        BCG1,   16, 
                        BCG2,   16, 
                        BSN,    16, 
                        BPR,    16, 
                        BRC,    16, 
                        BPV,    16, 
                        BTP,    16, 
                        CBT,    16, 
                        Offset (0xC0), 
                        TME0,   1, 
                        FANC,   1, 
                        Offset (0xC1), 
                        FSR,    8, 
                        T1LO,   8, 
                        T2LO,   8, 
                        T1HI,   8, 
                        T2HI,   8, 
                        SHT1,   8, 
                        SHT2,   8, 
                        TMP1,   8, 
                        TMP2,   8, 
                        TMOD,   8, 
                        FCD,    8, 
                        TSTA,   4, 
                        Offset (0xCD), 
                        FMOD,   8, 
                        Offset (0xE0), 
                        LBRI,   4, 
                        Offset (0xE1), 
                        LBRR,   8, 
                        PFD,    1, 
                        LMD,    1, 
                        Offset (0xE3), 
                        LFRV,   8, 
                        Offset (0xF0), 
                        SMDM,   1, 
                        Offset (0xF1), 
                        DLED,   4, 
                        Offset (0xF2), 
                        SEAB,   7, 
                        Offset (0xF3)
                    }

                    Method (_REG, 2, NotSerialized)
                    {
                        If (LAnd (LEqual (Arg0, 0x03), LEqual (Arg1, 0x01)))
                        {
                            Store (0x01, ECON)
                            Store (0x01, ACPI)
                            If (LNot (LEqual (ACP, PWRS)))
                            {
                                Store (ACP, PWRS)
                                Store (0x2B, SMIF)
                                Store (0x00, TRP0)
                                Notify (\_SB.CMB0, 0x80)
                            }
                        }
                    }

                    Name (_GPE, 0x1C)
                    Method (_Q01, 0, NotSerialized)
                    {
                        Store (0x81, P80H)
                        Acquire (MUTX, 0xFFFF)
                        Store (ACP, PWRS)
                        Release (MUTX)
                        Notify (\_SB.AC, 0x80)
                        Notify (\_SB.CMB0, 0x80)
                    }

                    Method (_Q02, 0, NotSerialized)
                    {
                        Acquire (MUTX, 0xFFFF)
                        Store (One, \_SB.PCI0.LPCB.EC.DLB1)
                        Release (MUTX)
                        Notify (\_SB.CMB0, 0x80)
                        Store (0x82, P80H)
                    }

                    Method (_Q03, 0, NotSerialized)
                    {
                        Acquire (MUTX, 0xFFFF)
                        Store (One, \_SB.PCI0.LPCB.EC.DLB1)
                        Store (One, \_SB.PCI0.LPCB.EC.DLB2)
                        Release (MUTX)
                        Notify (\_SB.CMB0, 0x80)
                        Store (0x83, P80H)
                    }

                    Method (_Q04, 0, NotSerialized)
                    {
                        Store (0x84, P80H)
                        Notify (\_SB.CMB0, 0x81)
                    }

                    Method (_Q05, 0, NotSerialized)
                    {
                        Store (0x85, P80H)
                        Notify (\_SB.CMB0, 0x80)
                    }

                    Method (_Q08, 0, NotSerialized)
                    {
                        Store (0x88, P80H)
                        If (LEqual (\CSST, 0x00))
                        {
                            Notify (\_SB.PWRB, 0x80)
                        }
                    }

                    Method (_Q20, 0, NotSerialized)
                    {
                        Store ("===== Thermal sensor tripped =====", Debug)
                        Store (0xA0, P80H)
                        Acquire (MUTX, 0xFFFF)
                        Store (TMP1, Local0)
                        Store (T1HI, Local1)
                        Store (T1LO, Local2)
                        Store (TMP2, Local0)
                        Store (T2HI, Local1)
                        Store (T2LO, Local2)
                        SBTP (Local0, Local1, Local2)
                        SNTP (Local0, Local1, Local2)
                        Store (One, \_TZ.TSCI)
                        Release (MUTX)
                        Notify (\_TZ.THRM, 0x80)
                        Notify (\_TZ.THM2, 0x80)
                    }

                    Method (_Q34, 0, NotSerialized)
                    {
                        Store (0x34, P80H)
                        If (LEqual (\CSST, 0x00))
                        {
                            Notify (\_SB.SLPB, 0x80)
                        }
                    }

                    Method (_Q35, 0, NotSerialized)
                    {
                        Store (0x35, P80H)
                        If (LEqual (\CSST, 0x00))
                        {
                            Acquire (MUTX, 0xFFFF)
                            Store (0x14, SMIF)
                            Store (0x00, TRP0)
                            Release (MUTX)
                        }
                    }

                    Method (_Q37, 0, NotSerialized)
                    {
                        If (LEqual (\CSST, 0x00))
                        {
                            If (\ECON)
                            {
                                Acquire (MUTX, 0xFFFF)
                                Store (0x83, \_SB.BCMD)
                                Store (Zero, \_SB.SMIC)
                                Release (MUTX)
                            }
                        }

                        If (LEqual (0x00, DSEN))
                        {
                            If (LEqual (\CSST, 0x00))
                            {
                                Acquire (MUTX, 0xFFFF)
                                Store (0x84, \_SB.BCMD)
                                Store (Zero, \_SB.SMIC)
                                Store (0x5E, \CMID)
                                Store (\CMDA, \NEDV)
                                Release (MUTX)
                            }

                            Store (0x5F, \CMID)
                            Store (\CMDA, \CP3D)
                            If (\CP3D) {}
                            Else
                            {
                                Notify (\_SB.PCI0.AGPB.VGA, 0x80)
                            }

                            Store (\CP3D, P80H)
                        }

                        If (LEqual (0x01, DSEN))
                        {
                            If (LEqual (\CSST, 0x00))
                            {
                                If (\ECON)
                                {
                                    Acquire (MUTX, 0xFFFF)
                                    Store (0x83, \_SB.BCMD)
                                    Store (Zero, \_SB.SMIC)
                                    Release (MUTX)
                                }
                            }

                            Notify (\_SB.PCI0.AGPB, 0x81)
                        }

                        If (LNot (LLess (DSEN, 0x02))) {}
                    }

                    Method (_Q40, 0, NotSerialized)
                    {
                        Store (0x40, P80H)
                        If (LEqual (\CSST, 0x00))
                        {
                            Acquire (MUTX, 0xFFFF)
                            Store (0x15, SMIF)
                            Store (0x00, TRP0)
                            Release (MUTX)
                        }
                    }

                    Method (_Q41, 0, NotSerialized)
                    {
                        Store (0x41, P80H)
                        If (LEqual (\CSST, 0x00))
                        {
                            Store (0x29, SMIF)
                            Store (0x00, TRP0)
                            Notify (\_SB.LID0, 0x80)
                        }
                    }

                    Method (SNTP, 3, NotSerialized)
                    {
                        Store (Zero, TME0)
                        Store (TSTA, Local0)
                        If (And (Local0, 0x01))
                        {
                            Store ("---------Above ACTIVE_TP---", Debug)
                            Subtract (Arg1, \_TZ.O_TP, Local1)
                            Store (Local1, T1LO)
                            Add (Arg1, \_TZ.O_TP, Local1)
                            Store (Local1, T1HI)
                        }

                        If (And (Local0, 0x02))
                        {
                            Store ("---------Below SENSOR1_ACTIVE_TP---", Debug)
                            Subtract (Arg2, \_TZ.O_TP, Local1)
                            If (LLess (Local1, \_TZ.DC2T))
                            {
                                Store (\_TZ.S1LT, Local1)
                            }

                            Store (Local1, T1LO)
                            Add (Arg2, \_TZ.O_TP, Local2)
                            If (LLess (Local2, \_TZ.DC2T))
                            {
                                Store (\_TZ.DC2T, Local2)
                            }

                            Store (Local2, T1HI)
                        }

                        Store (One, TME0)
                    }

                    Method (SBTP, 3, NotSerialized)
                    {
                        Store (Zero, TME0)
                        Store (TSTA, Local0)
                        If (And (Local0, 0x01))
                        {
                            Store ("---------Above ACTIVE_TP---", Debug)
                            Subtract (Arg1, \_TZ.O_TP, Local1)
                            Store (Local1, T2LO)
                            Add (Arg1, \_TZ.O_TP, Local1)
                            Store (Local1, T2HI)
                        }

                        If (And (Local0, 0x02))
                        {
                            Store ("---------Below SENSOR1_ACTIVE_TP---", Debug)
                            Subtract (Arg2, \_TZ.O_TP, Local1)
                            If (LLess (Local1, \_TZ.BC2T))
                            {
                                Store (\_TZ.S2LT, Local1)
                            }

                            Store (Local1, T2LO)
                            Add (Arg2, \_TZ.O_TP, Local2)
                            If (LLess (Local2, \_TZ.BC2T))
                            {
                                Store (\_TZ.BC2T, Local2)
                            }

                            Store (Local2, T2HI)
                        }

                        Store (One, TME0)
                    }
                }

                Device (SIO)
                {
                    Name (_HID, EisaId ("PNP0A05"))
                    Mutex (MX00, 0x00)
                    OperationRegion (SMC1, SystemIO, 0x4E, 0x02)
                    Field (SMC1, ByteAcc, NoLock, Preserve)
                    {
                        I227,   8, 
                        D227,   8
                    }

                    IndexField (I227, D227, AnyAcc, Lock, WriteAsOnes)
                    {
                        AccessAs (ByteAcc, 0x00), 
                            ,   3, 
                        FPWR,   1, 
                        Offset (0x01), 
                            ,   2, 
                        PPWR,   1, 
                        PMOD,   1, 
                        Offset (0x02), 
                            ,   3, 
                        APWR,   1, 
                            ,   3, 
                        BPWR,   1, 
                        FDCM,   8, 
                        PEMD,   2, 
                        PFDC,   2, 
                            ,   2, 
                        EPPT,   1, 
                        Offset (0x05), 
                        FDCT,   1, 
                        FDCC,   1, 
                        FDCD,   1, 
                        DENS,   2, 
                        SWPD,   1, 
                        Offset (0x07), 
                        FBT,    2, 
                            ,   2, 
                        PPAP,   1, 
                        BAPD,   1, 
                        AAPD,   1, 
                        FAPD,   1, 
                        Offset (0x0A), 
                            ,   6, 
                        MMOD,   2, 
                        FDRT,   2, 
                        Offset (0x0C), 
                        BRXI,   1, 
                        BTXO,   1, 
                        BDUX,   1, 
                        BMOD,   3, 
                        ASPD,   1, 
                        BSPD,   1, 
                        Offset (0x12), 
                        IADR,   8, 
                        Offset (0x17), 
                        DSKC,   2, 
                        Offset (0x20), 
                        FADR,   8, 
                        Offset (0x22), 
                        ECPD,   3, 
                        ECPI,   3, 
                        Offset (0x23), 
                        PADR,   8, 
                        AADR,   8, 
                        BADR,   8, 
                        PDMA,   4, 
                        FDMA,   4, 
                        PIRQ,   4, 
                        FIRQ,   4, 
                        BIRQ,   4, 
                        AIRQ,   4, 
                        Offset (0x2B), 
                        FBAR,   8, 
                        IDMA,   8
                    }

                    Method (ENFG, 0, NotSerialized)
                    {
                        Store (0x55, I227)
                    }

                    Method (EXFG, 0, NotSerialized)
                    {
                        Store (0xAA, I227)
                    }

                    Method (RDRG, 1, NotSerialized)
                    {
                        ENFG ()
                        Store (Arg0, I227)
                        Store (D227, Local0)
                        EXFG ()
                        Return (Local0)
                    }

                    Method (WRRG, 2, NotSerialized)
                    {
                        ENFG ()
                        Store (Arg0, I227)
                        Store (Arg1, D227)
                        EXFG ()
                    }

                    Method (READ, 3, NotSerialized)
                    {
                        Acquire (MX00, 0xFFFF)
                        If (LEqual (Arg0, 0x00))
                        {
                            Store (RDRG (Arg1), Local1)
                        }

                        And (Local1, Arg2, Local1)
                        Release (MX00)
                        Return (Local1)
                    }

                    Method (WRIT, 3, NotSerialized)
                    {
                        Acquire (MX00, 0xFFFF)
                        If (LEqual (Arg0, 0x00))
                        {
                            WRRG (Arg1, Arg2)
                        }

                        Release (MX00)
                    }

                    Device (LPP)
                    {
                        Name (_HID, EisaId ("PNP0400"))
                        Name (_UID, 0x01)
                        Name (LPTP, 0x01)
                        Method (_STA, 0, NotSerialized)
                        {
                            If (LEqual (LPTP, 0x01))
                            {
                                Store (READ (0x00, 0x01, 0x04), Local0)
                                If (LEqual (Local0, 0x00))
                                {
                                    Return (0x00)
                                }
                            }

                            Store (READ (0x00, 0x01, 0x08), Local0)
                            If (LEqual (Local0, 0x00))
                            {
                                Return (0x00)
                            }

                            Store (READ (0x00, 0x23, 0xC0), Local0)
                            If (LEqual (Local0, 0x00))
                            {
                                Return (0x0D)
                            }
                            Else
                            {
                                Return (0x0F)
                            }
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateByteField (Arg0, 0x02, IOLO)
                            CreateByteField (Arg0, 0x03, IOHI)
                            CreateByteField (Arg0, 0x09, IRQL)
                            WRIT (0x00, 0x23, 0x00)
                            FindSetRightBit (IRQL, Local0)
                            If (Local0)
                            {
                                Decrement (Local0)
                                Store (READ (0x00, 0x27, 0xF0), Local1)
                                Or (Local0, Local1, Local0)
                                WRIT (0x00, 0x27, Local0)
                            }
                            Else
                            {
                                Store (READ (0x00, 0x27, 0xF0), Local0)
                                WRIT (0x00, 0x27, Local0)
                            }

                            Store (IOLO, Local0)
                            ShiftRight (Local0, 0x02, Local0)
                            Store (IOHI, Local1)
                            ShiftLeft (Local1, 0x06, Local1)
                            Or (Local0, Local1, Local0)
                            WRIT (0x00, 0x23, Local0)
                            Store (READ (0x00, 0x01, 0xFF), Local0)
                            Or (Local0, 0x0C, Local0)
                            WRIT (0x00, 0x01, Local0)
                            Store (0x01, LPTP)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            Name (BUF0, ResourceTemplate ()
                            {
                                IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                                IRQNoFlags () {}
                            })
                            CreateByteField (BUF0, 0x02, IOLO)
                            CreateByteField (BUF0, 0x03, IOHI)
                            CreateByteField (BUF0, 0x04, IORL)
                            CreateByteField (BUF0, 0x05, IORH)
                            CreateByteField (BUF0, 0x07, LNA1)
                            CreateByteField (BUF0, 0x09, IRQL)
                            Store (READ (0x00, 0x23, 0xFF), Local0)
                            Store (Local0, Local1)
                            And (Local1, 0xC0, Local1)
                            ShiftRight (Local1, 0x06, Local1)
                            And (Local0, 0x3F, Local0)
                            ShiftLeft (Local0, 0x02, Local0)
                            Store (Local0, IOLO)
                            Store (Local1, IOHI)
                            Store (IOLO, IORL)
                            Store (IOHI, IORH)
                            If (Local0)
                            {
                                If (LEqual (Local0, 0xBC))
                                {
                                    Store (0x04, LNA1)
                                }
                                Else
                                {
                                    Store (0x08, LNA1)
                                }
                            }
                            Else
                            {
                                Store (0x00, LNA1)
                            }

                            If (Local0)
                            {
                                Store (READ (0x00, 0x27, 0xFF), Local0)
                                And (Local0, 0x0F, Local0)
                                Store (0x01, Local1)
                                ShiftLeft (Local1, Local0, IRQL)
                            }

                            Return (BUF0)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x00)
                            {
                                IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                                IRQNoFlags () {5,7}
                            }
                            StartDependentFn (0x01, 0x01)
                            {
                                IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                                IRQNoFlags () {5,7}
                            }
                            StartDependentFn (0x02, 0x02)
                            {
                                IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                                IRQNoFlags () {5,7}
                            }
                            EndDependentFn ()
                        })
                        Method (_DIS, 0, NotSerialized)
                        {
                            WRIT (0x00, 0x23, 0x00)
                            Store (READ (0x00, 0x27, 0xFF), Local0)
                            And (Local0, 0xF0, Local0)
                            WRIT (0x00, 0x27, Local0)
                            Store (READ (0x00, 0x01, 0xFF), Local0)
                            And (Local0, 0xFB, Local0)
                            WRIT (0x00, 0x01, Local0)
                            Store (0x00, LPTP)
                        }
                    }

                    Device (LPBI)
                    {
                        Name (_HID, EisaId ("PNP0400"))
                        Name (_UID, 0x02)
                        Name (LPBI, 0x01)
                        Method (_STA, 0, NotSerialized)
                        {
                            If (LEqual (LPBI, 0x01))
                            {
                                Store (READ (0x00, 0x01, 0x04), Local0)
                                If (LEqual (Local0, 0x00))
                                {
                                    Return (0x00)
                                }
                            }

                            Store (READ (0x00, 0x01, 0x08), Local0)
                            If (LNot (LEqual (Local0, 0x00)))
                            {
                                Return (0x00)
                            }

                            Store (READ (0x00, 0x04, 0x03), Local0)
                            If (LNot (LEqual (Local0, 0x00)))
                            {
                                Return (0x00)
                            }

                            Store (READ (0x00, 0x23, 0xC0), Local0)
                            If (LEqual (Local0, 0x00))
                            {
                                Return (0x0D)
                            }
                            Else
                            {
                                Return (0x0F)
                            }
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateByteField (Arg0, 0x02, IOLO)
                            CreateByteField (Arg0, 0x03, IOHI)
                            CreateByteField (Arg0, 0x09, IRQL)
                            WRIT (0x00, 0x23, 0x00)
                            FindSetRightBit (IRQL, Local0)
                            If (Local0)
                            {
                                Decrement (Local0)
                                Store (READ (0x00, 0x27, 0xF0), Local1)
                                Or (Local0, Local1, Local0)
                                WRIT (0x00, 0x27, Local0)
                            }
                            Else
                            {
                                Store (READ (0x00, 0x27, 0xF0), Local0)
                                WRIT (0x00, 0x27, Local0)
                            }

                            Store (IOLO, Local0)
                            ShiftRight (Local0, 0x02, Local0)
                            Store (IOHI, Local1)
                            ShiftLeft (Local1, 0x06, Local1)
                            Or (Local0, Local1, Local0)
                            WRIT (0x00, 0x23, Local0)
                            Store (READ (0x00, 0x04, 0xFC), Local0)
                            WRIT (0x00, 0x04, Local0)
                            Store (READ (0x00, 0x01, 0xFF), Local0)
                            Or (Local0, 0x04, Local0)
                            And (Local0, 0xF7, Local0)
                            WRIT (0x00, 0x01, Local0)
                            Store (0x01, LPBI)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            Name (BUF0, ResourceTemplate ()
                            {
                                IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                                IRQNoFlags () {}
                            })
                            CreateByteField (BUF0, 0x02, IOLO)
                            CreateByteField (BUF0, 0x03, IOHI)
                            CreateByteField (BUF0, 0x04, IORL)
                            CreateByteField (BUF0, 0x05, IORH)
                            CreateByteField (BUF0, 0x07, LNA1)
                            CreateByteField (BUF0, 0x09, IRQL)
                            Store (READ (0x00, 0x23, 0xFF), Local0)
                            Store (Local0, Local1)
                            And (Local1, 0xC0, Local1)
                            ShiftRight (Local1, 0x06, Local1)
                            And (Local0, 0x3F, Local0)
                            ShiftLeft (Local0, 0x02, Local0)
                            Store (Local0, IOLO)
                            Store (Local1, IOHI)
                            Store (IOLO, IORL)
                            Store (IOHI, IORH)
                            If (Local0)
                            {
                                If (LEqual (Local0, 0xBC))
                                {
                                    Store (0x04, LNA1)
                                }
                                Else
                                {
                                    Store (0x08, LNA1)
                                }
                            }
                            Else
                            {
                                Store (0x00, LNA1)
                            }

                            If (Local0)
                            {
                                Store (READ (0x00, 0x27, 0xFF), Local0)
                                And (Local0, 0x0F, Local0)
                                Store (0x01, Local1)
                                ShiftLeft (Local1, Local0, IRQL)
                            }

                            Return (BUF0)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x00)
                            {
                                IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                                IRQNoFlags () {5,7}
                            }
                            StartDependentFn (0x01, 0x01)
                            {
                                IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                                IRQNoFlags () {5,7}
                            }
                            StartDependentFn (0x02, 0x02)
                            {
                                IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                                IRQNoFlags () {5,7}
                            }
                            EndDependentFn ()
                        })
                        Method (_DIS, 0, NotSerialized)
                        {
                            WRIT (0x00, 0x23, 0x00)
                            Store (READ (0x00, 0x27, 0xFF), Local0)
                            And (Local0, 0xF0, Local0)
                            WRIT (0x00, 0x27, Local0)
                            Store (READ (0x00, 0x01, 0xFF), Local0)
                            And (Local0, 0xFB, Local0)
                            WRIT (0x00, 0x01, Local0)
                            Store (0x00, LPBI)
                        }
                    }

                    Device (PECP)
                    {
                        Name (_HID, EisaId ("PNP0401"))
                        Name (ECPP, 0x01)
                        Method (_STA, 0, NotSerialized)
                        {
                            If (LEqual (ECPP, 0x01))
                            {
                                Store (READ (0x00, 0x01, 0x04), Local0)
                                If (LEqual (Local0, 0x00))
                                {
                                    Return (0x00)
                                }
                            }

                            Store (READ (0x00, 0x01, 0x08), Local0)
                            If (LNot (LEqual (Local0, 0x00)))
                            {
                                Return (0x00)
                            }

                            Store (READ (0x00, 0x04, 0x03), Local0)
                            If (LNot (LEqual (Local0, 0x02)))
                            {
                                Return (0x00)
                            }

                            Store (READ (0x00, 0x23, 0xC0), Local0)
                            If (LEqual (Local0, 0x00))
                            {
                                Return (0x0D)
                            }
                            Else
                            {
                                Return (0x0F)
                            }
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateByteField (Arg0, 0x02, IOLO)
                            CreateByteField (Arg0, 0x03, IOHI)
                            CreateByteField (Arg0, 0x11, IRQL)
                            CreateByteField (Arg0, 0x14, DMAC)
                            WRIT (0x00, 0x23, 0x00)
                            FindSetRightBit (IRQL, Local0)
                            If (Local0)
                            {
                                Decrement (Local0)
                                Store (READ (0x00, 0x27, 0xF0), Local1)
                                Or (Local0, Local1, Local0)
                                WRIT (0x00, 0x27, Local0)
                            }
                            Else
                            {
                                Store (READ (0x00, 0x27, 0xF0), Local0)
                                WRIT (0x00, 0x27, Local0)
                            }

                            Store (IOLO, Local0)
                            ShiftRight (Local0, 0x02, Local0)
                            Store (IOHI, Local1)
                            ShiftLeft (Local1, 0x06, Local1)
                            Or (Local0, Local1, Local0)
                            WRIT (0x00, 0x23, Local0)
                            FindSetRightBit (DMAC, Local0)
                            If (Local0)
                            {
                                Decrement (Local0)
                                Store (READ (0x00, 0x26, 0xF0), Local1)
                                Or (Local0, Local1, Local0)
                                WRIT (0x00, 0x26, Local0)
                            }
                            Else
                            {
                                Store (READ (0x00, 0x26, 0xF0), Local0)
                                WRIT (0x00, 0x26, Local0)
                            }

                            Store (READ (0x00, 0x04, 0xFC), Local0)
                            Or (Local0, 0x02, Local0)
                            WRIT (0x00, 0x04, Local0)
                            Store (READ (0x00, 0x01, 0xFF), Local0)
                            Or (Local0, 0x04, Local0)
                            And (Local0, 0xF7, Local0)
                            WRIT (0x00, 0x01, Local0)
                            Store (0x01, ECPP)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            Name (BUF0, ResourceTemplate ()
                            {
                                IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                                IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                                IRQNoFlags () {}
                                DMA (Compatibility, NotBusMaster, Transfer8) {}
                            })
                            CreateByteField (BUF0, 0x02, IOLO)
                            CreateByteField (BUF0, 0x03, IOHI)
                            CreateByteField (BUF0, 0x04, IORL)
                            CreateByteField (BUF0, 0x05, IORH)
                            CreateByteField (BUF0, 0x07, LNA1)
                            CreateByteField (BUF0, 0x0A, DALO)
                            CreateByteField (BUF0, 0x0B, DAHI)
                            CreateByteField (BUF0, 0x0C, DRLO)
                            CreateByteField (BUF0, 0x0D, DRHI)
                            CreateByteField (BUF0, 0x0F, LNA2)
                            CreateByteField (BUF0, 0x11, IRQL)
                            CreateByteField (BUF0, 0x14, DMAC)
                            Store (READ (0x00, 0x23, 0xFF), Local0)
                            Store (Local0, Local1)
                            And (Local1, 0xC0, Local1)
                            ShiftRight (Local1, 0x06, Local1)
                            And (Local0, 0x3F, Local0)
                            ShiftLeft (Local0, 0x02, Local0)
                            Store (Local0, IOLO)
                            Store (Local1, IOHI)
                            Store (IOLO, IORL)
                            Store (IOHI, IORH)
                            Add (Local1, 0x04, Local1)
                            Store (IOLO, DALO)
                            Store (Local1, DAHI)
                            Store (DALO, DRLO)
                            Store (DAHI, DRHI)
                            If (LEqual (Local0, 0x00))
                            {
                                Store (0x00, LNA1)
                                Store (0x00, LNA2)
                            }

                            If (Local0)
                            {
                                Store (READ (0x00, 0x27, 0xFF), Local0)
                                And (Local0, 0x0F, Local0)
                                Store (0x01, Local1)
                                ShiftLeft (Local1, Local0, IRQL)
                            }

                            If (Local0)
                            {
                                Store (READ (0x00, 0x26, 0xFF), Local0)
                                And (Local0, 0x0F, Local0)
                                Store (0x01, Local1)
                                ShiftLeft (Local1, Local0, DMAC)
                            }

                            Return (BUF0)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x00)
                            {
                                IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                                IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                                IRQNoFlags () {5,7}
                                DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
                            }
                            StartDependentFn (0x01, 0x01)
                            {
                                IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                                IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
                                IRQNoFlags () {5,7}
                                DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
                            }
                            StartDependentFn (0x02, 0x02)
                            {
                                IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x08)
                                IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x08)
                                IRQNoFlags () {5,7}
                                DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
                            }
                            EndDependentFn ()
                        })
                        Method (_DIS, 0, NotSerialized)
                        {
                            WRIT (0x00, 0x23, 0x00)
                            Store (READ (0x00, 0x27, 0xFF), Local0)
                            And (Local0, 0xF0, Local0)
                            WRIT (0x00, 0x27, Local0)
                            Store (READ (0x00, 0x01, 0xFF), Local0)
                            And (Local0, 0xFB, Local0)
                            WRIT (0x00, 0x01, Local0)
                            Store (0x00, ECPP)
                        }
                    }

                    Device (LPPP)
                    {
                        Name (_HID, EisaId ("PNP0400"))
                        Name (_UID, 0x03)
                        Name (EPPP, 0x01)
                        Method (_STA, 0, NotSerialized)
                        {
                            If (LEqual (EPPP, 0x01))
                            {
                                Store (READ (0x00, 0x01, 0x04), Local0)
                                If (LEqual (Local0, 0x00))
                                {
                                    Return (0x00)
                                }
                            }

                            Store (READ (0x00, 0x01, 0x08), Local0)
                            If (LNot (LEqual (Local0, 0x00)))
                            {
                                Return (0x00)
                            }

                            Store (READ (0x00, 0x04, 0x03), Local0)
                            If (LNot (LEqual (Local0, 0x01)))
                            {
                                Return (0x00)
                            }

                            Store (READ (0x00, 0x23, 0xC0), Local0)
                            If (LEqual (Local0, 0x00))
                            {
                                Return (0x0D)
                            }
                            Else
                            {
                                Return (0x0F)
                            }
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateByteField (Arg0, 0x02, IOLO)
                            CreateByteField (Arg0, 0x03, IOHI)
                            CreateByteField (Arg0, 0x09, IRQL)
                            WRIT (0x00, 0x23, 0x00)
                            FindSetRightBit (IRQL, Local0)
                            If (Local0)
                            {
                                Decrement (Local0)
                                Store (READ (0x00, 0x27, 0xF0), Local1)
                                Or (Local0, Local1, Local0)
                                WRIT (0x00, 0x27, Local0)
                            }
                            Else
                            {
                                Store (READ (0x00, 0x27, 0xF0), Local0)
                                WRIT (0x00, 0x27, Local0)
                            }

                            Store (IOLO, Local0)
                            ShiftRight (Local0, 0x02, Local0)
                            Store (IOHI, Local1)
                            ShiftLeft (Local1, 0x06, Local1)
                            Or (Local0, Local1, Local0)
                            WRIT (0x00, 0x23, Local0)
                            Store (READ (0x00, 0x04, 0xFC), Local0)
                            Or (Local0, 0x01, Local0)
                            And (Local0, 0xBF, Local0)
                            WRIT (0x00, 0x04, Local0)
                            Store (READ (0x00, 0x01, 0xFF), Local0)
                            Or (Local0, 0x04, Local0)
                            And (Local0, 0xF7, Local0)
                            WRIT (0x00, 0x01, Local0)
                            Store (0x01, EPPP)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            Name (BUF0, ResourceTemplate ()
                            {
                                IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                                IRQNoFlags () {}
                            })
                            CreateByteField (BUF0, 0x02, IOLO)
                            CreateByteField (BUF0, 0x03, IOHI)
                            CreateByteField (BUF0, 0x04, IORL)
                            CreateByteField (BUF0, 0x05, IORH)
                            CreateByteField (BUF0, 0x07, LNA1)
                            CreateByteField (BUF0, 0x09, IRQL)
                            Store (READ (0x00, 0x23, 0xFF), Local0)
                            Store (Local0, Local1)
                            And (Local1, 0xC0, Local1)
                            ShiftRight (Local1, 0x06, Local1)
                            And (Local0, 0x3F, Local0)
                            ShiftLeft (Local0, 0x02, Local0)
                            Store (Local0, IOLO)
                            Store (Local1, IOHI)
                            Store (IOLO, IORL)
                            Store (IOHI, IORH)
                            If (Local0)
                            {
                                If (LEqual (Local0, 0xBC))
                                {
                                    Store (0x04, LNA1)
                                }
                                Else
                                {
                                    Store (0x08, LNA1)
                                }
                            }
                            Else
                            {
                                Store (0x00, LNA1)
                            }

                            If (Local0)
                            {
                                Store (READ (0x00, 0x27, 0xFF), Local0)
                                And (Local0, 0x0F, Local0)
                                Store (0x01, Local1)
                                ShiftLeft (Local1, Local0, IRQL)
                            }

                            Return (BUF0)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x00)
                            {
                                IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                                IRQNoFlags () {5,7}
                            }
                            StartDependentFn (0x01, 0x01)
                            {
                                IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                                IRQNoFlags () {5,7}
                            }
                            StartDependentFn (0x02, 0x02)
                            {
                                IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                                IRQNoFlags () {5,7}
                            }
                            EndDependentFn ()
                        })
                        Method (_DIS, 0, NotSerialized)
                        {
                            WRIT (0x00, 0x23, 0x00)
                            Store (READ (0x00, 0x27, 0xFF), Local0)
                            And (Local0, 0xF0, Local0)
                            WRIT (0x00, 0x27, Local0)
                            Store (READ (0x00, 0x01, 0xFF), Local0)
                            And (Local0, 0xFB, Local0)
                            WRIT (0x00, 0x01, Local0)
                            Store (0x00, EPPP)
                        }
                    }

                    Device (FIR)
                    {
                        Name (_HID, EisaId ("SMCF010"))
                        Method (_STA, 0, NotSerialized)
                        {
                            ENFG ()
                            If (LEqual (BPWR, 0x01))
                            {
                                If (LNot (LEqual (IDMA, 0x0F)))
                                {
                                    If (LNot (LEqual (BADR, 0x00)))
                                    {
                                        EXFG ()
                                        Return (0x0F)
                                    }
                                    Else
                                    {
                                        EXFG ()
                                        Return (0x0D)
                                    }
                                }
                                Else
                                {
                                    EXFG ()
                                    Return (0x0D)
                                }
                            }
                            Else
                            {
                                EXFG ()
                                Return (0x0D)
                            }
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            ENFG ()
                            Store (0x00, BPWR)
                            Store (0x00, BADR)
                            Store (0x00, FBAR)
                            EXFG ()
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            Name (RSRC, ResourceTemplate ()
                            {
                                IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                                IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                                IRQNoFlags () {}
                                DMA (Compatibility, NotBusMaster, Transfer8) {}
                            })
                            CreateByteField (RSRC, 0x02, IOLO)
                            CreateByteField (RSRC, 0x03, IOHI)
                            CreateByteField (RSRC, 0x04, IORL)
                            CreateByteField (RSRC, 0x05, IORH)
                            CreateByteField (RSRC, 0x0A, I2LO)
                            CreateByteField (RSRC, 0x0B, I2HI)
                            CreateByteField (RSRC, 0x0C, I2RL)
                            CreateByteField (RSRC, 0x0D, I2RH)
                            CreateByteField (RSRC, 0x11, IRQL)
                            CreateByteField (RSRC, 0x12, IRQH)
                            CreateByteField (RSRC, 0x14, DMAC)
                            ENFG ()
                            If (BPWR)
                            {
                                Store (BADR, Local0)
                                Store (Local0, Local1)
                                And (Local1, 0xC0, Local1)
                                ShiftRight (Local1, 0x06, Local1)
                                ShiftLeft (Local0, 0x02, Local0)
                                And (Local0, 0xFF, Local0)
                                Store (Local0, IOLO)
                                Store (Local1, IOHI)
                                Store (IOLO, IORL)
                                Store (IOHI, IORH)
                                Store (IOHI, Local0)
                                Add (Local0, 0x04, Local0)
                                Store (Local0, I2HI)
                                Store (Local0, I2RH)
                                Store (IOLO, Local0)
                                Store (Local0, I2LO)
                                Store (Local0, I2RL)
                                Store (BIRQ, Local0)
                                Store (0x01, Local1)
                                ShiftLeft (Local1, Local0, IRQL)
                                Store (0x00, IRQH)
                                Store (IDMA, Local0)
                                Store (0x01, Local1)
                                ShiftLeft (Local1, Local0, DMAC)
                            }

                            EXFG ()
                            Return (RSRC)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                                IO (Decode16, 0x06F8, 0x06F8, 0x01, 0x08)
                                IRQNoFlags () {3}
                                DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                                IO (Decode16, 0x07F8, 0x07F8, 0x01, 0x08)
                                IRQNoFlags () {3}
                                DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                                IO (Decode16, 0x07E8, 0x07E8, 0x01, 0x08)
                                IRQNoFlags () {3}
                                DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                                IO (Decode16, 0x06E8, 0x06E8, 0x01, 0x08)
                                IRQNoFlags () {3}
                                DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
                            }
                            EndDependentFn ()
                        })
                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateByteField (Arg0, 0x02, IOLO)
                            CreateByteField (Arg0, 0x03, IOHI)
                            CreateByteField (Arg0, 0x0A, I2LO)
                            CreateByteField (Arg0, 0x0B, I2HI)
                            CreateByteField (Arg0, 0x11, IRQL)
                            CreateByteField (Arg0, 0x14, DMAC)
                            ENFG ()
                            FindSetRightBit (IRQL, Local0)
                            Subtract (Local0, 0x01, BIRQ)
                            ShiftLeft (IOHI, 0x08, Local0)
                            Or (IOLO, Local0, Local0)
                            ShiftRight (Local0, 0x02, BADR)
                            Store (I2LO, Local0)
                            ShiftRight (Local0, 0x03, Local0)
                            Store (I2HI, Local1)
                            ShiftLeft (Local1, 0x05, Local1)
                            Or (Local0, Local1, Local0)
                            Store (Local0, FBAR)
                            FindSetRightBit (DMAC, Local0)
                            Decrement (Local0)
                            Store (Local0, IDMA)
                            Store (0x00, MMOD)
                            Store (0x0C, I227)
                            Store (0x0E, D227)
                            Store (0x01, BPWR)
                            Store (0x00, BAPD)
                            EXFG ()
                        }
                    }
                }

                Device (PS2K)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
                        IRQ (Edge, ActiveHigh, Exclusive) {1}
                    })
                    Name (_PRW, Package (0x02)
                    {
                        0x18, 
                        0x03
                    })
                    Method (_PSW, 1, NotSerialized)
                    {
                        If (\ECON)
                        {
                            Acquire (\MUTX, 0xFFFF)
                            Store (Arg0, \_SB.PCI0.LPCB.EC.KBWK)
                            Release (\MUTX)
                        }
                    }
                }

                Device (PS2M)
                {
                    Name (_HID, EisaId ("PNP0F13"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQ (Edge, ActiveHigh, Exclusive) {12}
                    })
                }
            }

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

                Name (_PRW, Package (0x02)
                {
                    0x03, 
                    0x03
                })
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U0EN)
                    }
                    Else
                    {
                        Store (0x00, U0EN)
                    }
                }

                Method (_S1D, 0, NotSerialized)
                {
                    If (LEqual (OSYS, 0x07CF))
                    {
                        Return (0x02)
                    }

                    Return (0x01)
                }

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

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

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

                Name (_PRW, Package (0x02)
                {
                    0x04, 
                    0x03
                })
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U1EN)
                    }
                    Else
                    {
                        Store (0x00, U1EN)
                    }
                }

                Method (_S1D, 0, NotSerialized)
                {
                    If (LEqual (OSYS, 0x07CF))
                    {
                        Return (0x02)
                    }

                    Return (0x01)
                }

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

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

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

                Name (_PRW, Package (0x02)
                {
                    0x0C, 
                    0x03
                })
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U2EN)
                    }
                    Else
                    {
                        Store (0x00, U2EN)
                    }
                }

                Method (_S1D, 0, NotSerialized)
                {
                    If (LEqual (OSYS, 0x07CF))
                    {
                        Return (0x02)
                    }

                    Return (0x01)
                }

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

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

            Device (USB7)
            {
                Name (_ADR, 0x001D0007)
                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
            }

            Name (PUAL, Package (0x01)
            {
                0x001F0001
            })
            Device (IDEC)
            {
                Name (_ADR, 0x001F0001)
                OperationRegion (IDEC, PCI_Config, 0x40, 0x18)
                Field (IDEC, DWordAcc, NoLock, Preserve)
                {
                    PRIT,   16, 
                    SECT,   16, 
                    PSIT,   4, 
                    SSIT,   4, 
                    Offset (0x08), 
                    SYNC,   4, 
                    Offset (0x0A), 
                    SDT0,   2, 
                        ,   2, 
                    SDT1,   2, 
                    Offset (0x0B), 
                    SDT2,   2, 
                        ,   2, 
                    SDT3,   2, 
                    Offset (0x14), 
                    ICR0,   4, 
                    ICR1,   4, 
                    ICR2,   4, 
                    ICR3,   4, 
                    ICR4,   4, 
                    ICR5,   4
                }

                Device (PRID)
                {
                    Name (_ADR, 0x00)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Name (PBUF, Buffer (0x14)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                            0x00, 0x00, 0x00, 0x00
                        })
                        CreateDWordField (PBUF, 0x00, PIO0)
                        CreateDWordField (PBUF, 0x04, DMA0)
                        CreateDWordField (PBUF, 0x08, PIO1)
                        CreateDWordField (PBUF, 0x0C, DMA1)
                        CreateDWordField (PBUF, 0x10, FLAG)
                        Store (GETP (PRIT), PIO0)
                        Store (GDMA (And (SYNC, 0x01), And (ICR3, 0x01), And (ICR0, 0x01), SDT0, And (ICR1, 0x01)), DMA0)
                        If (LEqual (DMA0, 0xFFFFFFFF))
                        {
                            Store (PIO0, DMA0)
                        }

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

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

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

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

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

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

                                If (And (W930, 0x2000))
                                {
                                    Or (ICR1, 0x01, ICR1)
                                }
                            }
                        }

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

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

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

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

                                If (And (W931, 0x2000))
                                {
                                    Or (ICR1, 0x02, ICR1)
                                }
                            }
                        }
                    }

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

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

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

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

                            Return (PIB0)
                        }
                    }

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

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

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

                            Return (PIB1)
                        }
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                    }
                }

                Device (SECD)
                {
                    Name (_ADR, 0x01)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Name (SBUF, Buffer (0x14)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                            0x00, 0x00, 0x00, 0x00
                        })
                        CreateDWordField (SBUF, 0x00, PIO0)
                        CreateDWordField (SBUF, 0x04, DMA0)
                        CreateDWordField (SBUF, 0x08, PIO1)
                        CreateDWordField (SBUF, 0x0C, DMA1)
                        CreateDWordField (SBUF, 0x10, FLAG)
                        Store (GETP (SECT), PIO0)
                        Store (GDMA (And (SYNC, 0x04), And (ICR3, 0x04), And (ICR0, 0x04), SDT2, And (ICR1, 0x04)), DMA0)
                        If (LEqual (DMA0, 0xFFFFFFFF))
                        {
                            Store (PIO0, DMA0)
                        }

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

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

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

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

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

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

                                If (And (W930, 0x2000))
                                {
                                    Or (ICR1, 0x04, ICR1)
                                }
                            }
                        }

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

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

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

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

                                If (And (W931, 0x2000))
                                {
                                    Or (ICR1, 0x08, ICR1)
                                }
                            }
                        }
                    }

                    Device (S_D0)
                    {
                        Name (_ADR, 0x00)
                        Method (_STA, 0, NotSerialized)
                        {
                            If (LAnd (ICR4, 0x04))
                            {
                                Return (0x00)
                            }

                            Return (0x0F)
                        }

                        Method (_GTF, 0, NotSerialized)
                        {
                            Name (SIB0, Buffer (0x0E)
                            {
                                0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                                0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                            })
                            CreateByteField (SIB0, 0x01, PMD0)
                            CreateByteField (SIB0, 0x08, DMD0)
                            If (And (SECT, 0x02))
                            {
                                If (LEqual (And (SECT, 0x09), 0x08))
                                {
                                    Store (0x08, PMD0)
                                }
                                Else
                                {
                                    Store (0x0A, PMD0)
                                    ShiftRight (And (SECT, 0x0300), 0x08, Local0)
                                    ShiftRight (And (SECT, 0x3000), 0x0C, Local1)
                                    Add (Local0, Local1, Local2)
                                    If (LEqual (0x03, Local2))
                                    {
                                        Store (0x0B, PMD0)
                                    }

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

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

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

                            Return (SIB0)
                        }
                    }

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

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

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

                            Return (SIB1)
                        }
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                    }
                }

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

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

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

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

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

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

                    Return (0xFFFFFFFF)
                }

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

                Method (GETF, 3, Serialized)
                {
                    Name (TMPF, 0x00)
                    If (Arg0)
                    {
                        Or (TMPF, 0x01, TMPF)
                    }

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

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

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

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

                    Return (TMPF)
                }

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

                            If (LAnd (LNot (LGreater (Arg0, 0xB4)), And (Arg2, 0x01)))
                            {
                                Return (0x2101)
                            }
                        }

                        Return (0x1001)
                    }
                }

                Method (SDMA, 1, Serialized)
                {
                    If (LNot (LGreater (Arg0, 0x14)))
                    {
                        Return (0x01)
                    }

                    If (LNot (LGreater (Arg0, 0x1E)))
                    {
                        Return (0x02)
                    }

                    If (LNot (LGreater (Arg0, 0x2D)))
                    {
                        Return (0x01)
                    }

                    If (LNot (LGreater (Arg0, 0x3C)))
                    {
                        Return (0x02)
                    }

                    If (LNot (LGreater (Arg0, 0x5A)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

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

                        If (LAnd (LNot (LGreater (Arg0, 0xB4)), And (Arg2, 0x01)))
                        {
                            Return (0x09)
                        }
                    }

                    Return (0x04)
                }
            }

            Device (SBUS)
            {
                Name (_ADR, 0x001F0003)
                OperationRegion (SBUS, SystemIO, 0x1880, 0x10)
                Field (SBUS, ByteAcc, NoLock, Preserve)
                {
                    HSTS,   8, 
                    Offset (0x02), 
                    HCON,   8, 
                    HCOM,   8, 
                    TXSA,   8, 
                    DAT0,   8, 
                    DAT1,   8, 
                    BDBR,   8, 
                    Offset (0x09), 
                    RXSA,   8, 
                    SDAT,   16
                }

                Method (SBWB, 3, NotSerialized)
                {
                    Store (0x0A, Local0)
                    While (LAnd (And (HSTS, 0x01), Local0))
                    {
                        Sleep (0x64)
                        Decrement (Local0)
                    }

                    Store (0xFF, HSTS)
                    Store (Arg0, TXSA)
                    Store (Arg1, HCOM)
                    Store (Arg2, DAT0)
                    Store (0x00, DAT1)
                    Store (0x08, HCON)
                    Sleep (0x64)
                    Store (0x48, HCON)
                }

                Method (SBRB, 2, NotSerialized)
                {
                    Store (0x0A, Local0)
                    While (LAnd (And (HSTS, 0x01), Local0))
                    {
                        Sleep (0x64)
                        Decrement (Local0)
                    }

                    Store (0xFF, HSTS)
                    Store (Or (Arg0, 0x01), TXSA)
                    Store (Arg1, HCOM)
                    Store (0x08, HCON)
                    Sleep (0x64)
                    Store (0x48, HCON)
                    Store (0x0A, Local0)
                    While (LAnd (And (HSTS, 0x02), Local0))
                    {
                        Sleep (0x64)
                        Decrement (Local0)
                    }

                    Return (DAT0)
                }
            }

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

            Device (MODM)
            {
                Name (_ADR, 0x001F0006)
            }
        }

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

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

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

        Mutex (PSMX, 0x00)
    }
}


^ permalink raw reply	[flat|nested] 2+ messages in thread

* LG LM50-3 laptop no battery
@ 2004-03-09 20:55 burkey-wh2Gl981Flk0n/F98K4Iww
  0 siblings, 0 replies; 2+ messages in thread
From: burkey-wh2Gl981Flk0n/F98K4Iww @ 2004-03-09 20:55 UTC (permalink / raw)
  To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

[-- Attachment #1: Type: text/plain, Size: 1052 bytes --]

Hi all,

This is my first post to this list, I actually tried to post this same
message but it got held and does not seem to have ever gotten through?

I have what must be a one of a kind on linux!  A new LG Centino
Laptop,which run's Linux great.. mostly,  I get the following error from
dmesg

ACPI: Subsystem revision 20040211ACPI: IRQ9 SCI: Edge set to Level
Trigger.    ACPI-1120: *** Error: Method execution failed
[\_SB_.PCI0._INI](Node c15d5aa0), AE_NOT_EXISTACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing    ACPI-1120: *** Error: Method
execution failed [\_SB_.CMB0._STA](Node c15d5ca0), AE_NOT_EXIST

Not sure where to go from here, last time I tried to post the AML decode,
but it was casing my message to be blocked as it was too big so this time
it is in a bzip tar.

Some advice would really be appreciated!  I am going to give 2.6.4-rc2
with ACPI patch a go to see if it fixes things.  If it does then I will
post success.  In the meantime, if someone knows the solution, then please
let me know

Regards,-- Daniel Burke

[-- Attachment #2: dsdt.dsl.tar.bz2 --]
[-- Type: application/x-bzip, Size: 11122 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-03-09 20:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-07  0:45 LG LM50-3 laptop no battery Daniel Burke
  -- strict thread matches above, loose matches on Subject: below --
2004-03-09 20:55 burkey-wh2Gl981Flk0n/F98K4Iww

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox