Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 08 Jan 2004 18:11:56 +0800
From:      "X.F.Deng" <dsnofe@hotmail.com>
To:        Nate Lawson <nate@root.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: ACPI panic
Message-ID:  <20040108181141.5082.DSNOFE@hotmail.com>
In-Reply-To: <20040107185846.H32803@root.org>
References:  <20040107151531.161D73B90B@mail.if.lt> <20040107185846.H32803@root.org>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
I have the same box HP NX7000.
and the asl is here. maybe it will help you.

Sincerely,
X.F.Deng
----------------------------------------
MSN  Messenger: dsnofe@hotmail.com
Yahoo Messager: dsnofe@yahoo.com.cn
----------------------------------------

[-- Attachment #2 --]
/*
  RSD PTR: OEM=COMPAQ, ACPI_Rev=1.0x (0)
	RSDT=0x1fff0c84, cksum=114
 */
/*
  RSDT: Length=44, Revision=1, Checksum=209,
	OEMID=HP, OEM Table ID=CPQ0860, OEM Revision=0x30090320,
	Creator ID=CPQ, Creator Revision=0x1
	Entries={ 0x1fff0c00, 0x1fff5bd7 }
 */
/*
  FADT:	FACS=0x1fffbe80, DSDT=0x1fff0cb0
	INT_MODEL=PIC
	Preferred_PM_Profile=Unspecified (0)
	SCI_INT=9
	SMI_CMD=0xb2, ACPI_ENABLE=0xf1, ACPI_DISABLE=0xf0, S4BIOS_REQ=0xf2
	PSTATE_CNT=0x80
	PM1a_EVT_BLK=0x1000-0x1003
	PM1a_CNT_BLK=0x1004-0x1005
	PM2_CNT_BLK=0x1020-0x1020
	PM_TMR_BLK=0x1008-0x100b
	GPE0_BLK=0x1028-0x102f
	P_LVL2_LAT=2 us, P_LVL3_LAT=85 us
	FLUSH_SIZE=0, FLUSH_STRIDE=0
	DUTY_OFFSET=1, DUTY_WIDTH=3
	DAY_ALRM=13, MON_ALRM=0, CENTURY=50
	IAPC_BOOT_ARCH={LEGACY_DEV,8042}
	Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4}
 */
/*
  FACS:	Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
	Global_Lock=
	Flags=S4BIOS
	Version=0
 */
/*
  DSDT: Length=20263, Revision=1, Checksum=62,
	OEMID=HP, OEM Table ID=nx7000, OEM Revision=0x10000,
	Creator ID=MSFT, Creator Revision=0x100000e
 */
/*
  SSDT: Length=584, Revision=1, Checksum=163,
	OEMID=COMPAQ, OEM Table ID=CPQGysr, OEM Revision=0x1001,
	Creator ID=MSFT, Creator Revision=0x100000e
 */
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20031203
 *
 * Disassembly of /tmp/acpidump.60caik, Thu Jan  8 17:44:09 2004
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "HP    ", "nx7000", 65536)
{
    Processor (\_PR.CPU0, 0x01, 0x00001010, 0x06)
    {
        Method (_CST, 0, NotSerialized)
        {
            If (LEqual (\_SB.C000, 0x00))
            {
                Return (C001)
            }
            Else
            {
                Return (C002)
            }
        }
    }

    Name (C001, Package (0x04)
    {
        0x03, 
        Package (0x04)
        {
            Buffer (0x11)
            {
                0x82, 0x0C, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 
                0x00
            }, 

            0x01, 
            0x01, 
            0x03E8
        }, 

        Package (0x04)
        {
            Buffer (0x11)
            {
                0x82, 0x0C, 0x00, 0x01, 0x08, 0x00, 0x00, 0x14, 
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 
                0x00
            }, 

            0x02, 
            0x02, 
            0x01F4
        }, 

        Package (0x04)
        {
            Buffer (0x11)
            {
                0x82, 0x0C, 0x00, 0x01, 0x08, 0x00, 0x00, 0x15, 
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 
                0x00
            }, 

            0x03, 
            0xB9, 
            0xFA
        }
    })
    Name (C002, Package (0x03)
    {
        0x02, 
        Package (0x04)
        {
            Buffer (0x11)
            {
                0x82, 0x0C, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 
                0x00
            }, 

            0x01, 
            0x01, 
            0x03E8
        }, 

        Package (0x04)
        {
            Buffer (0x11)
            {
                0x82, 0x0C, 0x00, 0x01, 0x08, 0x00, 0x00, 0x14, 
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 
                0x00
            }, 

            0x02, 
            0x02, 
            0x01F4
        }
    })
    Name (\C003, Package (0x10)
    {
        "0", 
        "1", 
        "2", 
        "3", 
        "4", 
        "5", 
        "6", 
        "7", 
        "8", 
        "9", 
        "A", 
        "B", 
        "C", 
        "D", 
        "E", 
        "F"
    })
    Method (\C004, 2, NotSerialized)
    {
        Store (Arg0, Local0)
        Store ("", Local7)
        Store (Arg1, Local4)
        While (LGreater (Local4, 0x00))
        {
            And (Local0, 0x0F, Local1)
            Store (DerefOf (Index (\C003, Local1)), Local2)
            Concatenate (Local2, Local7, Local3)
            Store (Local3, Local7)
            ShiftRight (Local0, 0x04, Local0)
            Decrement (Local4)
        }

        Return (Local7)
    }

    Method (\C005, 2, NotSerialized)
    {
        Store (SizeOf (Arg0), Local7)
        If (LNot (LEqual (Local7, SizeOf (Arg1))))
        {
            Return (0x00)
        }

        Name (C006, Buffer (Local7) {})
        Name (C007, Buffer (Local7) {})
        Store (Arg0, C006)
        Store (Arg1, C007)
        Store (0x00, Local6)
        Store (0x01, Local0)
        While (LAnd (LNot (LEqual (Local6, Local7)), Local0))
        {
            Store (DerefOf (Index (C006, Local6)), Local2)
            Store (DerefOf (Index (C007, Local6)), Local3)
            Increment (Local6)
            If (LNot (LEqual (Local2, Local3)))
            {
                Store (0x00, Local0)
            }
        }

        Return (Local0)
    }

    Name (C008, 0xFFFFFFFD)
    Name (C009, Package (0x03)
    {
        "Microsoft Windows", 
        "Microsoft WindowsME: Millennium Edition", 
        "Microsoft Windows NT"
    })
    Method (C00A, 0, Serialized)
    {
        If (LEqual (C008, 0xFFFFFFFD))
        {
            Store (\_OS, Local0)
            Store (SizeOf (C009), Local7)
            Store (0x00, Local1)
            While (LAnd (LLess (Local1, Local7), LEqual (C008, 0xFFFFFFFD)))
            {
                Store (\C005 (Local0, DerefOf (Index (C009, Local1))), Local2)
                If (Local2)
                {
                    Add (Local1, 0x01, C008)
                }
                Else
                {
                    Increment (Local1)
                }
            }

            If (LEqual (C008, 0xFFFFFFFD))
            {
                Store (0x00, C008)
            }

            If (LOr (LEqual (C008, 0x00), LEqual (C008, 0x03)))
            {
                If (CondRefOf (\_OSI, Local0))
                {
                    If (\_OSI ("Windows 2001"))
                    {
                        Store (0x04, C008)
                    }
                }
            }

            Store (C008, \_SB.C00A)
        }

        Return (C008)
    }

    Method (\_SB._INI, 0, NotSerialized)
    {
        \C00A ()
    }

    Method (C00B, 2, Serialized)
    {
        Store (SizeOf (Arg0), Local6)
        Store (SizeOf (Arg1), Local7)
        If (LEqual (Local6, 0x00))
        {
            Store (Arg1, Local0)
            Return (Local0)
        }

        If (LEqual (Local7, 0x00))
        {
            Store (Arg0, Local0)
            Return (Local0)
        }

        Add (Local7, Local6, Local1)
        Subtract (Local1, 0x02, Local1)
        Store (Buffer (Local1) {}, Local0)
        Store (0x00, Local1)
        While (LLess (Local1, SizeOf (Arg0)))
        {
            Store (DerefOf (Index (Arg0, Local1)), Index (Local0, Local1))
            Increment (Local1)
        }

        Subtract (Local1, 0x02, Local1)
        Store (0x00, Local2)
        While (LLess (Local2, SizeOf (Arg1)))
        {
            Store (DerefOf (Index (Arg1, Local2)), Index (Local0, Local1))
            Increment (Local1)
            Increment (Local2)
        }

        Return (Local0)
    }

    Scope (\_SB)
    {
        Device (C00C)
        {
            Name (_HID, EisaId ("PNP0C01"))
            Method (_CRS, 0, NotSerialized)
            {
                Name (C00D, Buffer (0x26)
                {
                    0x86, 0x09, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 
                    0x00, 0x00, 0x0A, 0x00, 0x86, 0x09, 0x00, 0x00, 
                    0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 
                    0x86, 0x09, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 
                    0x00, 0x00, 0xF0, 0x00, 0x79, 0x00
                })
                CreateDWordField (C00D, 0x20, C010)
                CreateDWordField (C00D, 0x1C, C011)
                Subtract (\_SB.C012 (), C011, C010)
                CreateDWordField (C00D, 0x14, C013)
                CreateDWordField (C00D, 0x10, C014)
                Store (ShiftLeft (\_SB.C015, 0x04), C014)
                Subtract (C011, C014, C013)
                Return (C00D)
            }
        }

        Method (C012, 0, NotSerialized)
        {
            Store (C016, Local0)
            Return (Local0)
        }

        Method (C017, 0, NotSerialized)
        {
            Store (C018, Local0)
            Return (Local0)
        }

        Method (C019, 0, NotSerialized)
        {
            Add (C017 (), 0x0002BEC0, Local0)
            Return (Local0)
        }

        Method (C01A, 0, NotSerialized)
        {
            Add (C017 (), 0x00020000, Local0)
            Return (Local0)
        }

        OperationRegion (C01B, SystemMemory, 0x000F8000, 0x2C)
        Field (C01B, WordAcc, NoLock, Preserve)
        {
            C01C,   16, 
            Offset (0x08), 
            C01D,   16, 
            Offset (0x0E), 
            C018,   32
        }

        OperationRegion (C01E, SystemMemory, C01A, 0x0300)
        Field (C01E, AnyAcc, NoLock, Preserve)
        {
            C01F,   6144
        }

        OperationRegion (C020, SystemMemory, C019, 0x0140)
        Field (C020, AnyAcc, NoLock, Preserve)
        {
            C021,   32, 
            C022,   4, 
            C023,   1, 
            C00A,   4, 
            C024,   5, 
            C025,   1, 
            C026,   1, 
            C027,   2, 
            C000,   1, 
            C028,   1, 
            C029,   1, 
            C02A,   11, 
            C02B,   32, 
            C015,   16, 
            C02C,   16, 
            C02D,   16, 
            C02E,   16, 
            C02F,   16, 
            C030,   16, 
            C031,   16, 
            C016,   32, 
            C032,   8, 
            C033,   8, 
            C034,   8, 
            C035,   8, 
            C036,   8, 
            C037,   8, 
            Offset (0x68), 
            C038,   32, 
            C039,   32, 
            C03A,   32, 
            C03B,   32, 
            Offset (0x8C), 
            C03C,   32
        }

        Method (C03D, 0, NotSerialized)
        {
            Add (C01C, 0x000F0000, Local0)
            Return (Local0)
        }

        OperationRegion (C03E, SystemMemory, C03D, 0x06)
        Field (C03E, AnyAcc, NoLock, Preserve)
        {
            C03F,   8, 
            C040,   8, 
            C041,   8, 
            C042,   8, 
            C043,   8, 
            C044,   8
        }

        Method (C045, 2, Serialized)
        {
            Store (Arg0, Local0)
            If (LEqual (Local0, 0x01))
            {
                Store (\_SB.C02B, Local1)
                Or (Local1, Arg1, Local1)
                Store (Local1, \_SB.C02B)
            }
            Else
            {
                Store (\_SB.C02B, Local1)
                Not (Arg1, Local2)
                And (Local1, Local2, Local1)
                Store (Local1, \_SB.C02B)
            }
        }

        Device (C046)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, 0x00)
            Device (C047)
            {
                Name (_ADR, 0x00010000)
            }

            OperationRegion (C048, PCI_Config, 0x91, 0x06)
            Field (C048, AnyAcc, NoLock, Preserve)
            {
                C049,   48
            }

            Alias (C049, \_SB.C049)
            Scope (\_SB)
            {
                Name (C04A, Package (0x0C)
                {
                    0x4000, 
                    0x4000, 
                    0x4000, 
                    0x4000, 
                    0x4000, 
                    0x4000, 
                    0x4000, 
                    0x4000, 
                    0x4000, 
                    0x4000, 
                    0x4000, 
                    0x4000
                })
                Method (C04B, 0, NotSerialized)
                {
                    Acquire (C04C, 0xFFFF)
                    If (LEqual (C04D, 0xFFFFFFFD))
                    {
                        Store (0x00, Local0)
                        Store (Local0, C04D)
                        Store (Local0, Local2)
                        Store (C049, Local5)
                        Store (DerefOf (Index (Local5, Local0)), Local1)
                        Store (0x000C0000, Local4)
                        Store (ShiftLeft (C015, 0x04), Local3)
                        While (LAnd (LNot (LGreater (Local4, Local3)), LLess (C04D, 0x06)))
                        {
                            If (LEqual (And (Local1, 0x03), 0x00))
                            {
                                If (LEqual (Local2, 0x00))
                                {
                                    Store (Local4, Index (C04E, C04D))
                                }

                                Store (0x01, Local2)
                            }
                            Else
                            {
                                If (Local2)
                                {
                                    Subtract (Local4, 0x01, Index (C04F, C04D))
                                    Increment (C04D)
                                }

                                Store (0x00, Local2)
                            }

                            If (LLess (Local4, Local3))
                            {
                                Add (Local4, DerefOf (Index (C04A, Local0)), Local4)
                                ShiftRight (Local1, 0x04, Local1)
                                If (And (Local0, 0x01))
                                {
                                    Store (0x01, Local1)
                                    If (LLess (Local4, Local3))
                                    {
                                        ShiftRight (Local0, 0x01, Local6)
                                        Increment (Local6)
                                        Store (DerefOf (Index (Local5, Local6)), Local1)
                                    }
                                }
                            }
                            Else
                            {
                                Increment (Local4)
                            }

                            Increment (Local0)
                        }
                    }

                    Release (C04C)
                }
            }

            Method (_INI, 0, NotSerialized)
            {
                C04B ()
            }

            Name (C050, Buffer (0x88)
            {
                0x88, 0x0D, 0x00, 0x02, 0x0D, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 
                0x47, 0x01, 0xF8, 0x0C, 0xF8, 0x0C, 0x01, 0x08, 
                0x88, 0x0D, 0x00, 0x01, 0x0C, 0x03, 0x00, 0x00, 
                0x00, 0x00, 0xF7, 0x0C, 0x00, 0x00, 0xF8, 0x0C, 
                0x88, 0x0D, 0x00, 0x01, 0x0C, 0x03, 0x00, 0x00, 
                0x00, 0x0D, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xF3, 
                0x87, 0x17, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xFF, 0xFF, 
                0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0x02, 0x00, 0x87, 0x17, 0x00, 0x00, 0x0C, 0x03, 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                0xFF, 0x0F, 0xC0, 0xFE, 0x00, 0x00, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x87, 0x17, 0x00, 0x00, 
                0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 
                0xC0, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 
                0x00, 0x00, 0xFF, 0xDF, 0x3F, 0x01, 0x79, 0x00
            })
            Scope (\_SB)
            {
                Name (C04E, Package (0x07) {})
                Name (C04F, Package (0x07) {})
                Name (C04D, 0xFFFFFFFD)
                Mutex (C04C, 0x00)
            }

            Method (C052, 4, NotSerialized)
            {
                Store (Arg1, Local2)
                Store (Arg3, Local4)
                Add (Local4, 0x1A, Local5)
                While (LLess (Local4, Local5))
                {
                    Store (DerefOf (Index (C050, Local4)), Index (Arg0, Local2))
                    Increment (Local4)
                    Increment (Local2)
                }

                Store (Arg1, Local2)
                Add (Local2, 0x0A, Local2)
                CreateDWordField (Arg0, Local2, C053)
                Add (Local2, 0x04, Local2)
                CreateDWordField (Arg0, Local2, C054)
                Add (Local2, 0x08, Local2)
                CreateDWordField (Arg0, Local2, C055)
                Store (DerefOf (Index (C04E, Arg2)), C053)
                Store (DerefOf (Index (C04F, Arg2)), C054)
                Subtract (C054, C053, Local3)
                Add (Local3, 0x01, C055)
                Add (Local2, 0x04, Local2)
                Return (Local2)
            }

            Method (C056, 0, NotSerialized)
            {
                Acquire (C04C, 0xFFFF)
                Multiply (C04D, 0x1A, Local1)
                Add (SizeOf (C050), Local1, Local2)
                Store (Buffer (Local2) {}, Local0)
                Store (0x00, Local1)
                Store (0x00, Local2)
                While (LLess (Local1, SizeOf (C050)))
                {
                    Store (DerefOf (Index (C050, Local1)), Index (Local0, Local2))
                    Increment (Local2)
                    Increment (Local1)
                }

                Store (0x00, Local1)
                Subtract (Local2, 0x02, Local2)
                Subtract (Local2, 0x1A, Local3)
                While (LLess (Local1, C04D))
                {
                    Store (C052 (Local0, Local2, Local1, Local3), Local2)
                    Increment (Local1)
                }

                CreateWordField (Local0, Local2, C057)
                Store (0x79, C057)
                Release (C04C)
                Return (Local0)
            }

            Method (_CRS, 0, NotSerialized)
            {
                CreateDWordField (C050, 0x5C, C053)
                CreateDWordField (C050, 0x68, C055)
                CreateDWordField (C050, 0x60, C054)
                Store (\_SB.C012 (), Local1)
                Store (Local1, C053)
                Subtract (C054, Local1, Local1)
                Add (Local1, 0x01, C055)
                Store (C056 (), Local2)
                Return (Local2)
            }

            Name (_S3D, 0x02)
            Name (_S4D, 0x03)
            Device (C058)
            {
                Name (_ADR, 0x001E0000)
                Name (_PRW, Package (0x02)
                {
                    0x0B, 
                    0x05
                })
            }

            Device (C059)
            {
                Name (_ADR, 0x001F0000)
                OperationRegion (C05A, PCI_Config, 0x60, 0xA0)
                Field (C05A, AnyAcc, NoLock, Preserve)
                {
                    C05B,   8, 
                    C05C,   8, 
                    C05D,   8, 
                    C05E,   8, 
                    Offset (0x08), 
                    C05F,   8, 
                    C060,   8, 
                    C061,   8, 
                    C062,   8, 
                    Offset (0x30), 
                    C063,   16, 
                    Offset (0x40), 
                        ,   7, 
                    C064,   1, 
                    Offset (0x58), 
                    C065,   32, 
                    Offset (0x60), 
                        ,   4, 
                    C066,   4, 
                    Offset (0x64), 
                    C067,   64, 
                    C068,   16, 
                    Offset (0x80), 
                    C069,   3, 
                        ,   1, 
                    C06A,   3, 
                    Offset (0x81), 
                    C06B,   2, 
                        ,   2, 
                    C06C,   1, 
                    Offset (0x84), 
                    C06D,   16, 
                    C06E,   1, 
                    C06F,   1, 
                    C070,   1, 
                    C071,   1
                }

                OperationRegion (C072, SystemIO, 0xB2, 0x01)
                Field (C072, AnyAcc, NoLock, Preserve)
                {
                    C073,   8
                }

                OperationRegion (C074, SystemIO, 0x1000, 0x3C)
                Field (C074, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x2A), 
                    C075,   16, 
                        ,   2, 
                    C076,   1, 
                    Offset (0x30), 
                    C077,   1, 
                    C078,   1, 
                        ,   2, 
                    C079,   1, 
                    Offset (0x34), 
                        ,   5, 
                    C07A,   1, 
                    Offset (0x3A), 
                    C07B,   16
                }

                OperationRegion (C07C, SystemIO, 0x1060, 0x11)
                Field (C07C, ByteAcc, NoLock, Preserve)
                {
                    C07D,   8, 
                    C07E,   8, 
                    Offset (0x04), 
                        ,   3, 
                    C07F,   1, 
                    Offset (0x06), 
                        ,   1, 
                    C080,   1, 
                    Offset (0x08), 
                        ,   11, 
                    C081,   1
                }

                OperationRegion (C082, SystemMemory, 0xFFBC0100, 0x01)
                Field (C082, ByteAcc, NoLock, Preserve)
                {
                    C083,   5
                }

                OperationRegion (C084, SystemIO, 0x1100, 0x3C)
                Field (C084, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x0C), 
                    C085,   32, 
                    Offset (0x2C), 
                    C086,   32, 
                    Offset (0x38), 
                    C087,   16
                }

                OperationRegion (C088, SystemIO, 0x1200, 0x06)
                Field (C088, ByteAcc, NoLock, Preserve)
                {
                    C089,   8, 
                    Offset (0x02), 
                    C08A,   8, 
                    C08B,   8, 
                    C08C,   8, 
                    C08D,   8
                }

                Method (C08E, 3, Serialized)
                {
                    Acquire (\_GL, 0xFFFF)
                    Store (0x00, Local2)
                    Store (0xFA, Local0)
                    While (LAnd (And (C089, 0x01), LGreater (Local0, 0x00)))
                    {
                        Stall (0x64)
                        Decrement (Local0)
                    }

                    If (Local0)
                    {
                        Store (Arg1, C08B)
                        Store (Arg0, C08C)
                        If (LEqual (And (Arg0, 0x01), 0x00))
                        {
                            Store (Arg2, C08D)
                        }

                        Store (0xFF, C089)
                        Store (0x48, C08A)
                        Store (0xFA, Local0)
                        While (LAnd (LEqual (And (C089, 0x1E), 0x00), LGreater (Local0, 0x00)))
                        {
                            Stall (0x64)
                            Decrement (Local0)
                        }

                        And (C089, 0x1C, Local1)
                        Store (0xFF, C089)
                        If (LAnd (LEqual (Local1, 0x00), And (Arg0, 0x01)))
                        {
                            Store (C08D, Local2)
                        }
                    }
                    Else
                    {
                        Store (0x01, Local1)
                    }

                    Release (\_GL)
                    If (And (Arg0, 0x01))
                    {
                        ShiftLeft (Local1, 0x08, Local3)
                        Or (Local3, Local2, Local1)
                    }

                    Return (Local1)
                }

                Method (C08F, 2, Serialized)
                {
                    If (And (Arg0, 0xEF))
                    {
                        FindSetRightBit (Arg0, Local4)
                        Decrement (Local4)
                        Multiply (Local4, 0x02, Local0)
                        ShiftLeft (0x03, Local0, Local1)
                        ShiftLeft (Arg1, Local0, Local2)
                        Store (C063, Local3)
                        And (Local3, Not (Local1), Local3)
                        Or (Local3, Local2, Local3)
                        Store (Local3, C063)
                    }
                }

                Name (C090, Package (0x08)
                {
                    0x03F8, 
                    0x02F8, 
                    0x0220, 
                    0x0228, 
                    0x0238, 
                    0x02E8, 
                    0x0338, 
                    0x03E8
                })
                Name (C091, Package (0x03)
                {
                    0x0378, 
                    0x0278, 
                    0x03BC
                })
                Method (C092, 3, NotSerialized)
                {
                    Store (0x00, Local1)
                    Store (Match (Arg0, MEQ, Arg1, MTR, 0x00, 0x00), Local0)
                    If (LNot (LEqual (Local0, Ones)))
                    {
                        ShiftLeft (Local0, Arg2, Local1)
                    }

                    Return (Local1)
                }

                Method (C093, 3, Serialized)
                {
                    Store (C067, Local0)
                    CreateWordField (Local0, Multiply (Arg0, 0x02), C094)
                    Store (Arg1, C094)
                    Store (Local0, C067)
                    Multiply (Arg0, 0x04, Local1)
                    ShiftLeft (Arg2, Local1, Local2)
                    ShiftLeft (0x0F, Local1, Local3)
                    And (C068, Not (Local3), Local4)
                    Or (Local4, Local2, C068)
                }

                Method (C095, 3, Serialized)
                {
                    If (Arg1)
                    {
                        Store (0x00, Local0)
                        Store (0x00, Local1)
                        Store (0x00, Local3)
                        And (C066, 0x0F, Local2)
                        While (Local2)
                        {
                            If (And (Local2, 0x01))
                            {
                                Multiply (Local3, 0x02, Local5)
                                Store (C067, Local6)
                                Store (DerefOf (Index (Local6, Local5)), Local4)
                                Or (ShiftLeft (DerefOf (Index (Local6, Add (Local5, 0x01))), 0x08), Local4, Local4)
                                If (LEqual (Arg1, Local4))
                                {
                                    If (LEqual (Arg0, 0x00))
                                    {
                                        ShiftLeft (0x01, Local3, Local5)
                                        And (C066, Not (Local5), C066)
                                        C093 (Local3, 0x00, 0x00)
                                    }

                                    Add (Local3, 0x01, Local1)
                                }
                            }
                            Else
                            {
                                If (LAnd (Arg0, LEqual (Local0, 0x00)))
                                {
                                    Add (Local3, 0x01, Local0)
                                }
                            }

                            ShiftRight (Local2, 0x01, Local2)
                            Increment (Local3)
                        }

                        If (LAnd (Arg0, LEqual (Local1, 0x00)))
                        {
                            If (LEqual (Local0, 0x00))
                            {
                                Add (Local3, 0x01, Local0)
                            }

                            Decrement (Local0)
                            If (LLess (Local0, 0x04))
                            {
                                C093 (Local0, Arg1, Arg2)
                                Or (C066, ShiftLeft (0x01, Local0), C066)
                            }
                        }
                    }
                }

                Method (C096, 2, Serialized)
                {
                    If (LEqual (Arg0, 0x00))
                    {
                        Store (0x00, C071)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            Store (0x00, C070)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x02))
                            {
                                Store (0x00, C06E)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x03))
                                {
                                    Store (0x00, C06F)
                                    C095 (0x00, Arg1, 0x00)
                                }
                            }
                        }
                    }
                }

                Method (C097, 3, Serialized)
                {
                    If (LEqual (Arg0, 0x00))
                    {
                        Store (0x00, Local0)
                        If (LEqual (Arg1, 0x0370))
                        {
                            Store (0x01, Local0)
                        }

                        Store (Local0, C06C)
                        Store (0x01, C071)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            Store (C092 (C091, Arg1, 0x00), C06B)
                            Store (0x01, C070)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x02))
                            {
                                Store (C092 (C090, Arg1, 0x00), C069)
                                Store (0x01, C06E)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x03))
                                {
                                    Store (C092 (C090, Arg1, 0x00), C06A)
                                    Store (0x01, C06F)
                                    C095 (0x01, Arg2, 0x07)
                                }
                            }
                        }
                    }
                }
            }

            Device (C098)
            {
                Name (_ADR, 0x001F0001)
                OperationRegion (C099, PCI_Config, 0x40, 0x18)
                Field (C099, AnyAcc, NoLock, Preserve)
                {
                    C09A,   16, 
                    C09B,   16, 
                    C09C,   8, 
                    Offset (0x08), 
                    C09D,   8, 
                    Offset (0x0A), 
                    C09E,   16, 
                    Offset (0x14), 
                    C09F,   32
                }

                Method (C0A0, 2, Serialized)
                {
                    If (LEqual (Arg0, 0x00))
                    {
                        Store (C09A, Local0)
                    }
                    Else
                    {
                        Store (C09B, Local0)
                    }

                    If (LEqual (Arg1, 0x00))
                    {
                        If (LEqual (And (Local0, 0x09), 0x00))
                        {
                            Return (0x0384)
                        }

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

                        ShiftRight (And (Local0, 0x0300), 0x08, Local1)
                        ShiftRight (And (Local0, 0x3000), 0x0C, Local2)
                        Return (Multiply (0x1E, Subtract (0x09, Add (Local1, Local2))))
                    }
                    Else
                    {
                        If (LEqual (And (Local0, 0x90), 0x00))
                        {
                            Return (0x0384)
                        }

                        If (LEqual (And (Local0, 0x90), 0x80))
                        {
                            Return (0x0384)
                        }

                        If (And (Local0, 0x4000))
                        {
                            Store (C09C, Local0)
                            If (LEqual (Arg0, 0x01))
                            {
                                ShiftRight (Local0, 0x04, Local0)
                            }

                            Return (Multiply (0x1E, Subtract (0x09, Add (And (ShiftRight (Local0, 0x02), 0x03), And (Local0, 0x03)))))
                        }
                        Else
                        {
                            ShiftRight (And (Local0, 0x0300), 0x08, Local1)
                            ShiftRight (And (Local0, 0x3000), 0x0C, Local2)
                            Return (Multiply (0x1E, Subtract (0x09, Add (Local1, Local2))))
                        }
                    }
                }

                Name (C0A1, Buffer (0x05)
                {
                    0x70, 0x49, 0x36, 0x27, 0x19
                })
                Method (C0A2, 2, Serialized)
                {
                    ShiftLeft (0x01, Add (Multiply (Arg0, 0x02), Arg1), Local0)
                    If (And (C09D, Local0))
                    {
                        Store (C09F, Local1)
                        If (And (ShiftRight (Local1, 0x0C), Local0))
                        {
                            Return (0x11)
                        }

                        Store (And (ShiftRight (C09E, Add (Multiply (Arg0, 0x08), Multiply (Arg1, 0x04))), 0x03), Local2)
                        If (And (Local1, Local0))
                        {
                            Add (Local2, 0x02, Local2)
                        }

                        Return (DerefOf (Index (C0A1, Local2)))
                    }

                    Return (0xFFFFFFFF)
                }

                Method (C0A3, 1, Serialized)
                {
                    If (LEqual (Arg0, 0x00))
                    {
                        Store (C09A, Local0)
                    }
                    Else
                    {
                        Store (C09B, Local0)
                    }

                    Store (ShiftRight (C09D, Multiply (0x02, Arg0)), Local1)
                    Store (0x00, Local3)
                    If (And (Local1, 0x01))
                    {
                        Or (Local3, 0x01, Local3)
                    }

                    If (And (Local1, 0x02))
                    {
                        Or (Local3, 0x04, Local3)
                    }

                    If (And (Local0, 0x02))
                    {
                        Or (Local3, 0x02, Local3)
                    }

                    If (And (Local0, 0x20))
                    {
                        Or (Local3, 0x08, Local3)
                    }

                    Or (Local3, 0x10, Local3)
                    Return (Local3)
                }

                Method (C0A4, 5, Serialized)
                {
                    CreateWordField (Arg4, 0x02, C0A5)
                    CreateWordField (Arg4, 0x04, C0A6)
                    CreateWordField (Arg4, 0x08, C0A7)
                    Store (0x0C, Local0)
                    Store (0x00, Local1)
                    Store (0x00, Local2)
                    Store (0x01, Local5)
                    If (LAnd (And (Arg3, ShiftLeft (0x02, Multiply (Arg1, 0x02))), And (C0A5, 0x0800)))
                    {
                        Or (Local0, 0x02, Local0)
                        Store (0x08, Local5)
                    }

                    If (LAnd (LNot (LGreater (Arg2, 0xF0)), And (C0A6, 0x02)))
                    {
                        Or (And (Local0, 0xFFFFFFF7), 0x01, Local0)
                        If (LAnd (LNot (LGreater (Arg2, 0x78)), And (C0A7, 0x02)))
                        {
                            Store (0x2300, Local1)
                            Store (0x0B, Local2)
                            Or (Local5, 0x04, Local5)
                        }
                        Else
                        {
                            If (LAnd (LNot (LGreater (Arg2, 0xB4)), And (C0A7, 0x01)))
                            {
                                Store (0x2100, Local1)
                                Store (0x09, Local2)
                                Or (Local5, 0x03, Local5)
                            }
                            Else
                            {
                                Store (0x0100, Local1)
                                Store (0x04, Local2)
                                Or (Local5, 0x02, Local5)
                            }
                        }
                    }

                    If (LEqual (Arg1, 0x00))
                    {
                        Or (Local0, Local1, Local0)
                        Store (0x40F0, Local4)
                    }
                    Else
                    {
                        ShiftLeft (Local0, 0x04, Local0)
                        If (And (Arg3, 0x10))
                        {
                            Or (Local0, 0x4000, Local0)
                            If (LEqual (Arg0, 0x00))
                            {
                                Or (And (C09C, 0xF0), Local2, C09C)
                            }
                            Else
                            {
                                Or (And (C09C, 0x0F), ShiftLeft (Local2, 0x04), C09C)
                            }
                        }

                        Store (0x3F0F, Local4)
                    }

                    Or (Local0, 0x8000, Local0)
                    If (LEqual (Arg0, 0x00))
                    {
                        Or (And (C09A, Local4), Local0, C09A)
                    }
                    Else
                    {
                        Or (And (C09B, Local4), Local0, C09B)
                    }

                    Return (Local5)
                }

                Method (C0A8, 5, Serialized)
                {
                    CreateWordField (Arg4, 0x0C, C0A9)
                    Store (0x00, Local0)
                    Store (0x00, Local1)
                    Store (0x00, Local2)
                    Add (Multiply (Arg0, 0x02), Arg1, Local3)
                    Store (0x00, Local4)
                    ShiftLeft (0x1011, Local3, Local5)
                    If (And (Arg3, ShiftLeft (0x01, Multiply (Arg1, 0x02))))
                    {
                        Store (0x01, Local1)
                        Store (C0AA (Arg0, Arg1), Local6)
                        If (LAnd (LNot (LLess (Local6, 0x05)), LAnd (LLess (Arg2, 0x19), And (C0A9, 0x20))))
                        {
                            Store (0x01, Local0)
                            Store (0x45, Local2)
                            ShiftLeft (0x1011, Local3, Local4)
                        }
                        Else
                        {
                            If (LAnd (LNot (LLess (Local6, 0x04)), LAnd (LLess (Arg2, 0x27), And (C0A9, 0x10))))
                            {
                                Store (0x02, Local0)
                                Store (0x44, Local2)
                                ShiftLeft (0x11, Local3, Local4)
                            }
                            Else
                            {
                                If (LAnd (LNot (LLess (Local6, 0x03)), LAnd (LLess (Arg2, 0x36), And (C0A9, 0x08))))
                                {
                                    Store (0x01, Local0)
                                    Store (0x43, Local2)
                                    ShiftLeft (0x11, Local3, Local4)
                                }
                                Else
                                {
                                    If (LAnd (LNot (LLess (Local6, 0x02)), LAnd (LLess (Arg2, 0x49), And (C0A9, 0x04))))
                                    {
                                        Store (0x02, Local0)
                                        Store (0x42, Local2)
                                    }
                                    Else
                                    {
                                        If (LAnd (LNot (LLess (Local6, 0x01)), LAnd (LLess (Arg2, 0x70), And (C0A9, 0x02))))
                                        {
                                            Store (0x01, Local0)
                                            Store (0x41, Local2)
                                        }
                                        Else
                                        {
                                            Store (0x00, Local0)
                                            Store (0x40, Local2)
                                        }
                                    }
                                }
                            }
                        }
                    }

                    Or (And (C09D, Not (ShiftLeft (0x01, Local3))), ShiftLeft (Local1, Local3), C09D)
                    Multiply (Local3, 0x04, Local3)
                    Or (And (C09E, Not (ShiftLeft (0x03, Local3))), ShiftLeft (Local0, Local3), C09E)
                    Or (And (C09F, Not (Local5)), Local4, C09F)
                    Return (Local2)
                }
            }

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

            Device (C0AC)
            {
                Name (_ADR, 0x001D0000)
                OperationRegion (C0AD, PCI_Config, 0xC4, 0x04)
                Field (C0AD, AnyAcc, NoLock, Preserve)
                {
                    C0AE,   1, 
                    C0AF,   1
                }

                Method (_PSW, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    If (LEqual (Local0, 0x01))
                    {
                        Store (0x01, C0AE)
                        Store (0x01, C0AF)
                    }
                    Else
                    {
                        Store (0x00, C0AE)
                        Store (0x00, C0AF)
                    }
                }

                Device (C0B0)
                {
                    Name (_ADR, 0x00)
                    Device (C0B1)
                    {
                        Name (_ADR, 0x00)
                    }

                    Device (C0B2)
                    {
                        Name (_ADR, 0x01)
                    }
                }
            }

            Device (C0B3)
            {
                Name (_ADR, 0x001D0001)
                OperationRegion (C0AD, PCI_Config, 0xC4, 0x04)
                Field (C0AD, AnyAcc, NoLock, Preserve)
                {
                    C0AE,   1, 
                    C0AF,   1
                }

                Method (_PSW, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    If (LEqual (Local0, 0x01))
                    {
                        Store (0x01, C0AE)
                        Store (0x01, C0AF)
                    }
                    Else
                    {
                        Store (0x00, C0AE)
                        Store (0x00, C0AF)
                    }
                }

                Device (C0B0)
                {
                    Name (_ADR, 0x00)
                    Device (C0B1)
                    {
                        Name (_ADR, 0x00)
                    }

                    Device (C0B2)
                    {
                        Name (_ADR, 0x01)
                    }
                }
            }

            Device (C0B4)
            {
                Name (_ADR, 0x001D0002)
                OperationRegion (C0AD, PCI_Config, 0xC4, 0x01)
                Field (C0AD, AnyAcc, NoLock, Preserve)
                {
                    C0AE,   1, 
                    C0AF,   1
                }

                Method (_PSW, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    If (LEqual (Local0, 0x01))
                    {
                        Store (0x01, C0AE)
                        Store (0x01, C0AF)
                    }
                    Else
                    {
                        Store (0x00, C0AE)
                        Store (0x00, C0AF)
                    }
                }

                Device (C0B0)
                {
                    Name (_ADR, 0x00)
                    Device (C0B1)
                    {
                        Name (_ADR, 0x00)
                    }

                    Device (C0B2)
                    {
                        Name (_ADR, 0x01)
                    }
                }
            }

            Device (C0B5)
            {
                Name (_ADR, 0x001D0007)
                Device (C0B0)
                {
                    Name (_ADR, 0x00)
                    Device (C0B1)
                    {
                        Name (_ADR, 0x00)
                    }

                    Device (C0B2)
                    {
                        Name (_ADR, 0x01)
                    }

                    Device (C0B6)
                    {
                        Name (_ADR, 0x02)
                    }

                    Device (C0B7)
                    {
                        Name (_ADR, 0x03)
                    }

                    Device (C0B8)
                    {
                        Name (_ADR, 0x04)
                    }

                    Device (C0B9)
                    {
                        Name (_ADR, 0x05)
                    }
                }
            }

            Method (C0BA, 1, Serialized)
            {
                Name (C0BB, Buffer (0x06)
                {
                    0x23, 0x00, 0x00, 0x18, 0x79, 0x00
                })
                CreateWordField (C0BB, 0x01, C0BD)
                Store (0x00, Local1)
                Store (Arg0, Local0)
                And (Local0, 0x8F, Local0)
                If (LLess (Local0, 0x80))
                {
                    And (Local0, 0x0F, Local0)
                    ShiftLeft (0x01, Local0, Local1)
                }

                Store (Local1, C0BD)
                Return (C0BB)
            }

            Method (C0BE, 1, Serialized)
            {
                Store (Arg0, Local0)
                And (Local0, 0x80, Local0)
                If (LEqual (Local0, 0x00))
                {
                    Store (0x0B, Local0)
                }
                Else
                {
                    Store (0x09, Local0)
                }

                Return (Local0)
            }

            Method (C0BF, 1, Serialized)
            {
                Store (Arg0, Local0)
                And (Local0, 0xF0, Local0)
                Or (Local0, 0x80, Local0)
                Return (Local0)
            }

            Method (C0C0, 1, Serialized)
            {
                CreateWordField (Arg0, 0x01, C0C1)
                If (LEqual (C0C1, 0x00))
                {
                    Store (0x00, Local0)
                }
                Else
                {
                    FindSetRightBit (C0C1, Local0)
                    Decrement (Local0)
                }

                Return (Local0)
            }

            Device (C0C2)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x60)
                Method (_STA, 0, NotSerialized)
                {
                    Return (C0BE (^^C059.C05B))
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (C0BF (^^C059.C05B), ^^C059.C05B)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (C0C0 (Arg0), ^^C059.C05B)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (C0BA (^^C059.C05B))
                }
            }

            Device (C0C3)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x61)
                Method (_STA, 0, NotSerialized)
                {
                    Return (C0BE (^^C059.C05C))
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (C0BF (^^C059.C05C), ^^C059.C05C)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (C0C0 (Arg0), ^^C059.C05C)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (C0BA (^^C059.C05C))
                }
            }

            Device (C0C4)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x62)
                Method (_STA, 0, NotSerialized)
                {
                    Return (C0BE (^^C059.C05D))
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (C0BF (^^C059.C05D), ^^C059.C05D)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (C0C0 (Arg0), ^^C059.C05D)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (C0BA (^^C059.C05D))
                }
            }

            Device (C0C5)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x63)
                Method (_STA, 0, NotSerialized)
                {
                    Return (C0BE (^^C059.C05E))
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (C0BF (^^C059.C05E), ^^C059.C05E)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (C0C0 (Arg0), ^^C059.C05E)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (C0BA (^^C059.C05E))
                }
            }

            Device (C0C6)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x68)
                Method (_STA, 0, NotSerialized)
                {
                    Return (C0BE (^^C059.C05F))
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (C0BF (^^C059.C05F), ^^C059.C05F)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (C0C0 (Arg0), ^^C059.C05F)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (C0BA (^^C059.C05F))
                }
            }

            Device (C0C7)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x69)
                Method (_STA, 0, NotSerialized)
                {
                    Return (C0BE (^^C059.C060))
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (C0BF (^^C059.C060), ^^C059.C060)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (C0C0 (Arg0), ^^C059.C060)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (C0BA (^^C059.C060))
                }
            }

            Device (C0C8)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x6A)
                Method (_STA, 0, NotSerialized)
                {
                    Return (C0BE (^^C059.C061))
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (C0BF (^^C059.C061), ^^C059.C061)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (C0C0 (Arg0), ^^C059.C061)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (C0BA (^^C059.C061))
                }
            }

            Device (C0C9)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x6B)
                Method (_STA, 0, NotSerialized)
                {
                    Return (C0BE (^^C059.C062))
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (C0BF (^^C059.C062), ^^C059.C062)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (C0C0 (Arg0), ^^C059.C062)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (C0BA (^^C059.C062))
                }
            }

            Method (C0CA, 1, NotSerialized)
            {
                While (^C059.C07A)
                {
                    Stall (0x01)
                }

                Store (0xF3, ^C059.C073)
                Stall (0x32)
                While (^C059.C07A)
                {
                    Stall (0x01)
                }
            }

            Mutex (C0CB, 0x00)
            Name (C0CC, 0x00)
            Name (C0CD, 0x00)
            Method (C0CE, 0, NotSerialized)
            {
                Acquire (C0CB, 0xFFFF)
                If (LEqual (C0CD, 0x00))
                {
                    Store (0x00, ^C059.C077)
                    Store (0x00, ^C059.C078)
                }

                Increment (C0CD)
                Release (C0CB)
            }

            Method (C0CF, 0, NotSerialized)
            {
                Acquire (C0CB, 0xFFFF)
                Decrement (C0CD)
                If (LEqual (C0CD, 0x00))
                {
                    Store (0x01, ^C059.C078)
                    Store (0x01, ^C059.C077)
                }

                Release (C0CB)
            }

            Scope (C047)
            {
                Device (C0D0)
                {
                    Name (_ADR, 0x00)
                    Name (C0D1, 0x00)
                    OperationRegion (C0D2, PCI_Config, 0x2C, 0x04)
                    Field (C0D2, DWordAcc, NoLock, Preserve)
                    {
                        C0D3,   32
                    }

                    OperationRegion (C0D4, PCI_Config, 0x4C, 0x04)
                    Field (C0D4, DWordAcc, NoLock, Preserve)
                    {
                        C0D5,   32
                    }

                    Method (_REG, 2, NotSerialized)
                    {
                        If (LAnd (LEqual (Arg0, 0x02), LEqual (Arg1, 0x01)))
                        {
                            Store (C0D3, Local0)
                            If (LEqual (C0D1, 0x00))
                            {
                                Store (Local0, C0D1)
                            }
                            Else
                            {
                                If (LNot (LEqual (Local0, C0D1)))
                                {
                                    Store (C0D1, C0D5)
                                }
                            }
                        }
                    }

                    Name (_S3D, 0x03)
                    Name (_S4D, 0x03)
                    Method (C0D6, 1, Serialized)
                    {
                        Store (0x00, Local0)
                        If (And (C0D7 (0x00), Arg0))
                        {
                            Store (0x01, Local0)
                            If (And (C034, Arg0))
                            {
                                Store (0x1D, Local0)
                                If (And (C033, Arg0))
                                {
                                    Store (0x1F, Local0)
                                }
                            }
                        }

                        Return (Local0)
                    }

                    Method (C0D8, 1, Serialized)
                    {
                        Store (0x00, Local0)
                        If (And (C035, Arg0))
                        {
                            Store (0x01, Local0)
                        }

                        Return (Local0)
                    }

                    Method (C0D9, 2, Serialized)
                    {
                        Store (C036, Local0)
                        If (And (Arg1, 0x01))
                        {
                            Or (Local0, Arg0, Local0)
                        }
                        Else
                        {
                            And (Local0, Not (Arg0), Local0)
                        }

                        Store (Local0, C036)
                        If (And (Arg1, 0x40000000))
                        {
                            Store (Local0, C033)
                        }

                        If (LEqual (And (Arg1, 0xC0000000), 0x80000000))
                        {
                            \_SB.C0DA (0xEA74, 0x01, 0x00, 0x00, 0x00)
                        }
                    }

                    Method (_DOS, 1, NotSerialized)
                    {
                        And (C032, 0xF8, Local0)
                        Or (Local0, Arg0, C032)
                    }

                    Device (C0DB)
                    {
                        Name (_ADR, 0x0100)
                        Method (_DCS, 0, NotSerialized)
                        {
                            Return (C0D6 (0x02))
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (C0D8 (0x02))
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            C0D9 (0x02, Arg0)
                        }
                    }

                    Device (C0DC)
                    {
                        Name (_ADR, 0x0110)
                        Method (_DCS, 0, NotSerialized)
                        {
                            Return (C0D6 (0x01))
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (C0D8 (0x01))
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            C0D9 (0x01, Arg0)
                        }
                    }

                    Device (C0DD)
                    {
                        Name (_ADR, 0x0200)
                        Method (_DCS, 0, NotSerialized)
                        {
                            Return (C0D6 (0x04))
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (C0D8 (0x04))
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            C0D9 (0x04, Arg0)
                        }
                    }

                    Device (C0DE)
                    {
                        Name (_ADR, 0x0210)
                        Method (_DCS, 0, NotSerialized)
                        {
                            Return (C0D6 (0x08))
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (C0D8 (0x08))
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                            C0D9 (0x08, Arg0)
                        }
                    }

                    Name (C0DF, 0xFFFFFFFD)
                    Method (C0D7, 1, Serialized)
                    {
                        If (LAnd (Arg0, LEqual (C0DF, 0xFFFFFFFD)))
                        {
                            Store (0x07, Local0)
                            Store (Local0, C0DF)
                        }

                        Return (C0DF)
                    }

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

            Method (\C0CA, 1, NotSerialized)
            {
                \_SB.C046.C0CA (Arg0)
            }

            Method (\C0CE, 0, NotSerialized)
            {
                \_SB.C046.C0CE ()
            }

            Method (\C0CF, 0, NotSerialized)
            {
                \_SB.C046.C0CF ()
            }

            Scope (C059)
            {
                OperationRegion (C0E0, SystemIO, 0x1000, 0x3C)
                Field (C0E0, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x08), 
                    C0E1,   32
                }

                Method (C0E2, 5, Serialized)
                {
                    If (LEqual (Arg1, 0x00))
                    {
                        ^C096 (Arg0, Arg2)
                        Store (0x01, Local0)
                    }
                    Else
                    {
                        ^C097 (Arg0, Arg1, Arg2)
                        Store (0x03, Local0)
                    }

                    ^C08F (Arg4, Local0)
                }

                Method (C0E3, 1, Serialized)
                {
                    Store (0x00, Local0)
                    If (LOr (C07F, Arg0))
                    {
                        Store (0x01, C081)
                        Store (0x01, C080)
                        Store (0x01, C07F)
                        Store (0x04, C07E)
                        Store (0x00, C07D)
                        Store (0x00, C081)
                        Store (0x01, Local0)
                    }

                    Return (Local0)
                }
            }

            Method (\_SB.C0E4, 5, Serialized)
            {
                ^C046.C059.C0E2 (Arg0, Arg1, Arg2, Arg3, Arg4)
            }

            Method (\_SB.C0E5, 0, NotSerialized)
            {
                If (And (\_SB.C046.C059.C086, 0x80))
                {
                    Store (0x07, Local0)
                }
                Else
                {
                    And (\_SB.C046.C059.C087, 0x0300, Local0)
                    ShiftRight (Local0, 0x08, Local0)
                }

                Return (Local0)
            }

            Device (C0E6)
            {
                Name (_ADR, 0x001F0003)
            }

            Scope (C0AB)
            {
                Name (_S1D, 0x02)
                Name (_S3D, 0x02)
                Name (_S4D, 0x02)
            }

            Device (C0E7)
            {
                Name (_ADR, 0x001F0006)
                Name (_PRW, Package (0x02)
                {
                    0x05, 
                    0x03
                })
                OperationRegion (C0E8, PCI_Config, 0x00, 0x04)
                Field (C0E8, DWordAcc, NoLock, Preserve)
                {
                    C0E9,   32
                }

                Method (_STA, 0, NotSerialized)
                {
                    If (LEqual (C0E9, 0xFFFFFFFF))
                    {
                        Return (0x00)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }
            }

            Scope (C059)
            {
                Device (C0EA)
                {
                    Name (_HID, EisaId ("PNP0C09"))
                    Name (_GPE, 0x1C)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Name (_CRS, Buffer (0x12)
                    {
                        0x47, 0x01, 0x62, 0x00, 0x62, 0x00, 0x01, 0x01, 
                        0x47, 0x01, 0x66, 0x00, 0x66, 0x00, 0x01, 0x01, 
                        0x79, 0x00
                    })
                    Mutex (C0EB, 0x00)
                    Name (C0EC, 0x00)
                    Name (C0ED, 0x00)
                    OperationRegion (C0EE, EmbeddedControl, 0x00, 0xFF)
                    Field (C0EE, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x80), 
                        Offset (0x81), 
                            ,   4, 
                        C0EF,   4, 
                            ,   1, 
                        C0F0,   1, 
                        C0F1,   1, 
                            ,   1, 
                        C0F2,   1, 
                            ,   1, 
                            ,   1, 
                        C0F3,   1, 
                        C0F4,   1, 
                            ,   1, 
                            ,   1, 
                            ,   1, 
                            ,   1, 
                        C0F5,   1, 
                        C0F6,   1, 
                        C0F7,   1, 
                        C0F8,   1, 
                            ,   1, 
                            ,   1, 
                        C0F9,   1, 
                        C0FA,   4, 
                        C0FB,   1, 
                        Offset (0x86), 
                        C0FC,   4, 
                        Offset (0x89), 
                        C0FD,   16, 
                        Offset (0x8D), 
                        C0FE,   16, 
                        Offset (0x91), 
                        C0FF,   1, 
                        Offset (0x95), 
                        C100,   16, 
                        Offset (0x99), 
                        C101,   4, 
                        Offset (0x9D), 
                        C102,   16, 
                        Offset (0xA1), 
                        C103,   16, 
                        Offset (0xA5), 
                        C104,   16, 
                        Offset (0xA9), 
                        C105,   16, 
                        Offset (0xAD), 
                        C106,   16, 
                        Offset (0xB0), 
                        CTMP,   8, 
                        C107,   16, 
                        Offset (0xB5), 
                        C108,   8, 
                        Offset (0xB9), 
                        C109,   8, 
                        Offset (0xBD), 
                        C10A,   8, 
                        C10B,   1, 
                        Offset (0xC1), 
                        C10C,   64, 
                        C10D,   64, 
                        C10E,   32, 
                        C10F,   8, 
                        C110,   8, 
                        C111,   8, 
                        C112,   8, 
                        C113,   8, 
                        C114,   8, 
                        C115,   8, 
                        C116,   8, 
                        C117,   4, 
                        C118,   4, 
                        C119,   16, 
                        C11A,   16, 
                        Offset (0xE3), 
                        C11B,   4
                    }

                    Method (_REG, 2, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x03))
                        {
                            Store (Arg1, C0ED)
                            If (Arg1)
                            {
                                C11C (0x07, 0xFF)
                                Store (C11D (), Local0)
                                C11E (Local0, 0x81)
                                And (C0EC, 0x01, C0F0)
                                And (ShiftRight (C0EC, 0x01), 0x01, C0F2)
                            }
                        }
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        If (C0ED)
                        {
                            Store (0x01, C0F1)
                        }
                    }

                    Method (C11E, 2, Serialized)
                    {
                        If (And (Arg0, 0x01))
                        {
                            Notify (\_SB.C11F, Arg1)
                        }
                    }

                    Name (C120, 0xFF)
                    Name (C121, 0xFF)
                    Name (C122, 0x07)
                    Name (C123, 0x01)
                    Name (C124, 0x00)
                    Name (C125, 0x01)
                    Name (C126, 0x00)
                    Mutex (C127, 0x00)
                    Name (C128, Package (0x08)
                    {
                        "Unknown", 
                        "NiMH", 
                        "LiIon"
                    })
                    Method (C129, 0, Serialized)
                    {
                        Acquire (C127, 0xFFFF)
                        If (And (C122, 0x01))
                        {
                            And (C122, 0x06, C122)
                            Release (C127)
                            Store (0x01, Local0)
                            If (And (\_SB.C046.C059.C086, 0x08))
                            {
                                Store (0x00, Local0)
                            }

                            Store (Local0, C123)
                        }
                        Else
                        {
                            Release (C127)
                            Store (C123, Local0)
                        }

                        Return (Local0)
                    }

                    Method (C11D, 0, Serialized)
                    {
                        Acquire (C127, 0xFFFF)
                        If (And (C122, 0x02))
                        {
                            And (C122, 0x05, C122)
                            Release (C127)
                            Acquire (C0EB, 0xFFFF)
                            If (C0ED)
                            {
                                Store (C0FA, C124)
                            }

                            Release (C0EB)
                        }
                        Else
                        {
                            Release (C127)
                        }

                        Return (C124)
                    }

                    Method (C11C, 2, Serialized)
                    {
                        Store (0x00, Local0)
                        Acquire (C127, 0xFFFF)
                        Or (Arg0, C122, Local1)
                        And (Local1, 0x07, C122)
                        If (And (C122, 0x02))
                        {
                            Or (C120, Arg1, C120)
                        }

                        If (And (C122, 0x04))
                        {
                            If (LNot (LEqual (C121, 0xFF)))
                            {
                                Store (0x01, Local0)
                            }

                            Or (C121, Arg1, C121)
                        }

                        Release (C127)
                        Return (Local0)
                    }

                    Method (C12A, 1, Serialized)
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            Store (0x01, C125)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x00))
                            {
                                Store (0x00, C125)
                            }
                        }

                        Return (C125)
                    }

                    Method (C12B, 1, Serialized)
                    {
                        C12A (0x01)
                        Store (C11D (), Local0)
                        Store (0x0F, Local1)
                        If (And (Local0, Arg0))
                        {
                            Store (0x1F, Local1)
                        }

                        Return (Local1)
                    }

                    Method (C12C, 1, Serialized)
                    {
                        ShiftLeft (0x01, Arg0, Local7)
                        C12A (0x01)
                        If (LEqual (C12B (Local7), 0x0F))
                        {
                            Return (0xFFFFFFFD)
                        }

                        Acquire (C127, 0xFFFF)
                        Store (C120, Local0)
                        Release (C127)
                        If (LEqual (And (Local0, Local7), 0x00))
                        {
                            Return (0x00)
                        }

                        Store (C12D, Index (C12E, Arg0))
                        Acquire (C0EB, 0xFFFF)
                        If (C0ED)
                        {
                            Store (Arg0, C0FC)
                            Store (C0FE, Local0)
                            Store (Local0, Index (DerefOf (Index (C12F, Arg0)), 0x01))
                            Store (Local0, Index (DerefOf (Index (C12F, Arg0)), 0x02))
                            Store (C100, Index (DerefOf (Index (C12F, Arg0)), 0x04))
                            Multiply (Local0, 0x0A, Local1)
                            Divide (Add (Local1, 0x32), 0x64, Local3, Local2)
                            Store (Local2, Index (DerefOf (Index (C12F, Arg0)), 0x05))
                            Name (C130, 0x00)
                            Name (C131, "     ")
                            Store (C10D, Local0)
                            Store (0x00, Index (Local0, 0x04))
                            Store (Local0, C131)
                            Store (C131, Index (DerefOf (Index (C12F, Arg0)), 0x0A))
                        }

                        Release (C0EB)
                        Acquire (C127, 0xFFFF)
                        And (C120, Not (Local7), C120)
                        Release (C127)
                        Return (0x00)
                    }

                    Method (C132, 2, Serialized)
                    {
                        ShiftLeft (0x01, Arg0, Local7)
                        C12A (0x01)
                        If (LEqual (C12B (Local7), 0x0F))
                        {
                            Store (Package (0x04)
                                {
                                    0x00, 
                                    0xFFFFFFFF, 
                                    0xFFFFFFFF, 
                                    0xFFFFFFFF
                                }, Index (C12E, Arg0))
                            Return (0xFFFFFFFD)
                        }

                        Acquire (C127, 0xFFFF)
                        If (Arg1)
                        {
                            Store (0xFF, C121)
                        }

                        Store (C121, Local0)
                        Release (C127)
                        Acquire (C0EB, 0xFFFF)
                        If (C0ED)
                        {
                            Store (Arg0, C0FC)
                            Store (C101, Local0)
                            Store (C102, Local3)
                            Store (C103, Index (DerefOf (Index (C12E, Arg0)), 0x02))
                            Store (C104, Index (DerefOf (Index (C12E, Arg0)), 0x03))
                        }

                        Release (C0EB)
                        Store (Local0, Index (DerefOf (Index (C12E, Arg0)), 0x00))
                        If (And (Local0, 0x01))
                        {
                            Not (Local3, Local3)
                            And (Local3, 0xFFFF, Local3)
                            Store (Local3, Index (DerefOf (Index (C12E, Arg0)), 0x01))
                        }

                        Acquire (C127, 0xFFFF)
                        And (C121, Not (Local7), C121)
                        Release (C127)
                        Return (0x00)
                    }

                    Method (_Q03, 0, NotSerialized)
                    {
                        Acquire (C127, 0xFFFF)
                        Store (C126, Local0)
                        Release (C127)
                        C11C (0x04, Local0)
                        C11E (Local0, 0x80)
                    }

                    Method (_Q04, 0, NotSerialized)
                    {
                        Acquire (C127, 0xFFFF)
                        Store (C126, Local0)
                        Release (C127)
                        If (LEqual (\C00A (), 0x03))
                        {
                            Store (0x81, Local1)
                            Store (C11D (), Local0)
                        }
                        Else
                        {
                            Store (0x80, Local1)
                        }

                        C11C (0x04, Local0)
                        C11E (Local0, Local1)
                    }

                    Method (_Q06, 0, NotSerialized)
                    {
                        \_SB.C0DA (0xEA09, 0x00, 0x00, 0x00, 0x00)
                        If (C12A (0x02))
                        {
                            C11C (0x06, 0x01)
                            Store (C11D (), Local0)
                            Notify (\_SB.C11F, 0x81)
                            Notify (\_SB.C134, 0x80)
                            Notify (\_PR.CPU0, 0x80)
                        }
                    }

                    Method (_Q08, 0, NotSerialized)
                    {
                        Sleep (0x01F4)
                        If (C12A (0x02))
                        {
                            C11C (0x06, 0x01)
                            Store (C11D (), Local0)
                            Notify (\_SB.C11F, 0x81)
                        }
                    }

                    Method (_Q09, 0, NotSerialized)
                    {
                        Acquire (C0EB, 0xFFFF)
                        If (C0ED)
                        {
                            Store (C101, Local0)
                            Store (Local0, Index (DerefOf (Index (C12E, 0x00)), 0x00))
                            Store (C102, Local3)
                            If (LEqual (Local0, 0x01))
                            {
                                Not (Local3, Local3)
                                And (Local3, 0xFFFF, Local3)
                            }

                            Store (Local3, Index (DerefOf (Index (C12E, 0x00)), 0x01))
                            Store (C103, Index (DerefOf (Index (C12E, 0x00)), 0x02))
                            Store (C104, Index (DerefOf (Index (C12E, 0x00)), 0x03))
                        }

                        Release (C0EB)
                        Store (0x01, C135)
                        Notify (\_SB.C11F, 0x80)
                    }

                    Method (_Q0A, 0, NotSerialized)
                    {
                        Notify (\_SB.C136, 0x80)
                    }

                    Method (_Q10, 0, NotSerialized)
                    {
                        If (LEqual (And (C032, 0x03), 0x00))
                        {
                            \_SB.C0DA (0xEA74, 0x00, 0x00, 0x00, 0x00)
                            If (\_SB.C029)
                            {
                                Notify (\_SB.C046.C047.C0D0, 0x80)
                            }
                        }
                        Else
                        {
                            \_SB.C0DA (0xEA2D, 0x04, 0x00, 0x00, 0x00)
                        }
                    }

                    Method (_Q2A, 0, NotSerialized)
                    {
                        If (LEqual (And (C032, 0x03), 0x00))
                        {
                            \_SB.C0DA (0xEA74, 0x00, 0x00, 0x00, 0x00)
                            Notify (\_SB.C046.C047.C0D0, 0x80)
                        }
                        Else
                        {
                            \_SB.C0DA (0xEA2D, 0x04, 0x00, 0x00, 0x00)
                        }
                    }

                    Method (_Q2B, 0, NotSerialized)
                    {
                        If (LEqual (And (C032, 0x03), 0x00))
                        {
                            \_SB.C0DA (0xEA74, 0x00, 0x00, 0x00, 0x00)
                            Notify (\_SB.C046.C047.C0D0, 0x80)
                        }
                        Else
                        {
                            \_SB.C0DA (0xEA2D, 0x04, 0x00, 0x00, 0x00)
                        }
                    }

                    OperationRegion (C137, SystemIO, 0x1010, 0x04)
                    Field (C137, DWordAcc, NoLock, Preserve)
                    {
                            ,   1, 
                        C138,   3, 
                        C139,   1, 
                        Offset (0x01), 
                            ,   9, 
                        C13A,   1
                    }

                    OperationRegion (C13B, EmbeddedControl, 0x00, 0xFF)
                    Field (C13B, AnyAcc, Lock, Preserve)
                    {
                        Offset (0xA7), 
                        C13C,   16, 
                        C13D,   8, 
                        SDTM,   8, 
                        FSSN,   4, 
                        FANU,   4, 
                        PTVL,   3, 
                            ,   4, 
                        TTHR,   1, 
                        Offset (0xBC), 
                        PJID,   8, 
                        Offset (0xBE), 
                        Offset (0xF9), 
                        C13E,   16
                    }

                    Mutex (C13F, 0x00)
                    Method (FANG, 1, NotSerialized)
                    {
                        Acquire (C13F, 0xFFFF)
                        Store (Arg0, C13C)
                        Store (C13D, Local0)
                        Release (C13F)
                        Return (Local0)
                    }

                    Method (FANW, 2, NotSerialized)
                    {
                        Acquire (C13F, 0xFFFF)
                        Store (Arg1, C13D)
                        Store (Arg0, C13C)
                        Release (C13F)
                        Return (Arg1)
                    }

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

                    Method (THRO, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x00))
                        {
                            Return (C139)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x01))
                            {
                                Return (C138)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x02))
                                {
                                    Return (TTHR)
                                }
                                Else
                                {
                                    Return (0xFF)
                                }
                            }
                        }
                    }

                    Method (CLCK, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x00))
                        {
                            Store (0x00, C139)
                        }
                        Else
                        {
                            Store (Arg0, C138)
                            Store (0x01, C139)
                        }

                        Return (C139)
                    }
                }

                Device (C140)
                {
                    Name (_HID, EisaId ("WEC0518"))
                    OperationRegion (C141, SystemIO, 0x4E, 0x02)
                    Field (C141, ByteAcc, NoLock, Preserve)
                    {
                        C142,   8, 
                        C143,   8
                    }

                    IndexField (C142, C143, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x07), 
                        C144,   8, 
                        Offset (0x29), 
                        C145,   8, 
                        Offset (0x30), 
                        C146,   8, 
                        Offset (0x60), 
                        C147,   8, 
                        C148,   8, 
                        Offset (0x70), 
                        C149,   8, 
                        Offset (0x74), 
                        C14A,   8, 
                        Offset (0xF0), 
                        C14B,   8
                    }

                    Method (C14C, 0, NotSerialized)
                    {
                        Store (0x83, C142)
                        Store (0x83, C142)
                        If (LEqual (0x4E, 0x4E))
                        {
                            Store (0x03, C144)
                        }
                        Else
                        {
                            Store (0x01, C144)
                        }
                    }

                    Method (C14D, 0, NotSerialized)
                    {
                        Store (0xAA, C142)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        C14C ()
                        Store (C146, Local0)
                        C14D ()
                        If (LEqual (Local0, 0xFF))
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            If (LAnd (Local0, 0x01))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x0D)
                            }
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        C14C ()
                        And (C146, 0xFE, C146)
                        C14D ()
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (C14E, Buffer (0x10)
                        {
                            0x47, 0x01, 0x48, 0x02, 0x48, 0x02, 0x08, 0x08, 
                            0x22, 0x40, 0x00, 0x2A, 0x04, 0x00, 0x79, 0x00
                        })
                        CreateWordField (C14E, 0x02, C152)
                        CreateWordField (C14E, 0x04, C153)
                        CreateWordField (C14E, 0x09, C154)
                        CreateWordField (C14E, 0x0C, C155)
                        C14C ()
                        ShiftLeft (C147, 0x08, Local0)
                        Or (C148, Local0, C152)
                        Store (C152, C153)
                        Store (One, Local0)
                        ShiftLeft (Local0, C149, C154)
                        Store (One, Local0)
                        ShiftLeft (Local0, C14A, C155)
                        C14D ()
                        Return (C14E)
                    }

                    Name (_PRS, Buffer (0x21)
                    {
                        0x30, 0x47, 0x01, 0x48, 0x02, 0x48, 0x02, 0x08, 
                        0x08, 0x22, 0x40, 0x00, 0x2A, 0x04, 0x00, 0x30, 
                        0x47, 0x01, 0x00, 0x02, 0xFF, 0x02, 0x08, 0x08, 
                        0x22, 0x40, 0x0C, 0x2A, 0x07, 0x00, 0x38, 0x79, 
                        0x00
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, C156)
                        CreateByteField (Arg0, 0x03, C157)
                        CreateWordField (Arg0, 0x09, C154)
                        CreateWordField (Arg0, 0x0C, C155)
                        C14C ()
                        Store (0x10, C145)
                        Store (C157, C147)
                        Store (C156, C148)
                        FindSetRightBit (C154, Local0)
                        Subtract (Local0, 0x01, C149)
                        If (LEqual (0x4E, 0x4E))
                        {
                            FindSetRightBit (C155, Local0)
                            Subtract (Local0, 0x01, C14A)
                            Store (0x02, C14B)
                        }

                        Or (C146, 0x01, C146)
                        C14D ()
                    }
                }

                Device (C158)
                {
                    Name (_HID, EisaId ("PNP0A06"))
                    OperationRegion (C159, SystemIO, 0x2E, 0x02)
                    Field (C159, ByteAcc, NoLock, Preserve)
                    {
                        C15A,   8, 
                        C15B,   8
                    }

                    IndexField (C15A, C15B, ByteAcc, NoLock, Preserve)
                    {
                            ,   3, 
                        C15C,   1, 
                        Offset (0x01), 
                            ,   2, 
                        C15D,   1, 
                        C15E,   1, 
                        Offset (0x02), 
                            ,   3, 
                        C15F,   1, 
                            ,   3, 
                        C160,   1, 
                        Offset (0x04), 
                        C161,   2, 
                        C162,   2, 
                        Offset (0x20), 
                        C163,   8, 
                        Offset (0x23), 
                        C164,   8, 
                        C165,   8, 
                        C166,   8, 
                        C167,   4, 
                        C168,   4, 
                        C169,   4, 
                        C16A,   4, 
                        C16B,   4, 
                        C16C,   4, 
                        Offset (0x2B), 
                        C16D,   8, 
                        C16E,   4
                    }

                    OperationRegion (C16F, SystemIO, 0x0140, 0x10)
                    Field (C16F, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x0C), 
                        C170,   8, 
                        C171,   5, 
                        Offset (0x0E), 
                        C172,   8, 
                        C173,   8
                    }

                    Mutex (C174, 0x00)
                    Name (C175, 0x00)
                    Name (C176, 0x00)
                    Method (C177, 0, NotSerialized)
                    {
                        Acquire (C174, 0xFFFF)
                        Store (0x55, C15A)
                    }

                    Method (C178, 0, NotSerialized)
                    {
                        Store (0xAA, C15A)
                        Release (C174)
                    }

                    Method (C179, 1, NotSerialized)
                    {
                        C177 ()
                        Store (0x00, Local0)
                        If (LEqual (Arg0, 0x00))
                        {
                            Store (C163, Local0)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x01))
                            {
                                Store (C164, Local0)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x02))
                                {
                                    Store (C165, Local0)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x03))
                                    {
                                        Store (C166, Local0)
                                    }
                                }
                            }
                        }

                        Store (0x00, Local1)
                        If (And (Local0, 0xC0))
                        {
                            ShiftLeft (Local0, 0x02, Local1)
                        }

                        C178 ()
                        Return (Local1)
                    }

                    Method (C17A, 1, NotSerialized)
                    {
                        Name (C17B, Package (0x04)
                        {
                            0x00, 
                            0x00, 
                            0x00, 
                            0x00
                        })
                        C177 ()
                        Store (0x00, Local0)
                        Store (0x00, Local1)
                        Store (0x00, Local2)
                        Store (0x00, Local3)
                        If (LEqual (Arg0, 0x00))
                        {
                            Store (C163, Local0)
                            Store (C16A, Local2)
                            Store (C168, Local3)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x01))
                            {
                                Store (C164, Local0)
                                Store (C169, Local2)
                                Store (C167, Local3)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x02))
                                {
                                    Store (C165, Local0)
                                    Store (C16C, Local2)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x03))
                                    {
                                        Store (C166, Local0)
                                        Store (C16D, Local1)
                                        Store (C16B, Local2)
                                        Store (C16E, Local3)
                                    }
                                }
                            }
                        }

                        ShiftLeft (Local0, 0x02, Index (C17B, 0x00))
                        ShiftLeft (Local1, 0x03, Index (C17B, 0x01))
                        Store (0x00, Local4)
                        If (LGreater (Local2, 0x00))
                        {
                            ShiftLeft (0x01, Local2, Local4)
                        }

                        Store (Local4, Index (C17B, 0x02))
                        Store (0x00, Local4)
                        If (LAnd (LGreater (Local3, 0x00), LLess (Local3, 0x04)))
                        {
                            ShiftLeft (0x01, Local3, Local4)
                        }

                        Store (Local4, Index (C17B, 0x03))
                        C178 ()
                        Return (C17B)
                    }

                    Method (C17C, 5, NotSerialized)
                    {
                        C177 ()
                        ShiftRight (Arg1, 0x02, Local0)
                        FindSetRightBit (Arg3, Local1)
                        If (LAnd (LGreater (Local1, 0x01), LLess (Local1, 0x11)))
                        {
                            Decrement (Local1)
                        }
                        Else
                        {
                            Store (0x00, Local1)
                        }

                        FindSetRightBit (Arg4, Local2)
                        If (LAnd (LGreater (Local2, 0x01), LLess (Local2, 0x05)))
                        {
                            Decrement (Local2)
                        }
                        Else
                        {
                            Store (0x0F, Local2)
                        }

                        If (LEqual (Arg0, 0x00))
                        {
                            And (Local0, 0xFC, C163)
                            Store (Local1, C16A)
                            Store (Local2, C168)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x01))
                            {
                                Store (Local0, C164)
                                Store (Local1, C169)
                                Store (Local2, C167)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x02))
                                {
                                    And (Local0, 0xFE, C165)
                                    Store (Local1, C16C)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x03))
                                    {
                                        And (Local0, 0xFE, C166)
                                        ShiftRight (Arg2, 0x03, C16D)
                                        Store (Local1, C16B)
                                        Store (Local2, C16E)
                                    }
                                }
                            }
                        }

                        C178 ()
                    }

                    Method (C17D, 0, NotSerialized)
                    {
                        C177 ()
                        Store (C15E, Local0)
                        Store (C161, Local1)
                        C178 ()
                        If (Local0)
                        {
                            Store (0x00, Local2)
                        }
                        Else
                        {
                            Store (0x03, Local2)
                            If (LEqual (Local1, 0x00))
                            {
                                Store (0x01, Local2)
                            }

                            If (LEqual (Local1, 0x01))
                            {
                                Store (0x02, Local2)
                            }
                        }

                        Return (Local2)
                    }

                    Method (C17E, 1, Serialized)
                    {
                        C177 ()
                        If (LEqual (Arg0, 0x00))
                        {
                            Store (C15C, Local0)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x01))
                            {
                                Store (C15D, Local0)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x02))
                                {
                                    Store (C15F, Local0)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x03))
                                    {
                                        Store (C160, Local0)
                                    }
                                }
                            }
                        }

                        C178 ()
                        Return (Local0)
                    }

                    Method (C17F, 2, Serialized)
                    {
                        C177 ()
                        If (LEqual (Arg0, 0x00))
                        {
                            Store (Arg1, C15C)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x01))
                            {
                                Store (Arg1, C15D)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x02))
                                {
                                    Store (Arg1, C15F)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x03))
                                    {
                                        Store (Arg1, C160)
                                    }
                                }
                            }
                        }

                        C178 ()
                    }

                    Method (C180, 2, Serialized)
                    {
                        And (C024, 0x10, Local0)
                        And (Not (C024), Arg1, Local1)
                        If (LOr (Local0, Local1))
                        {
                            Store (0x00, Local0)
                        }
                        Else
                        {
                            Store (C179 (Arg0), Local1)
                            Store (0x0D, Local0)
                            If (Local1)
                            {
                                Store (0x0F, Local0)
                            }
                        }

                        Return (Local0)
                    }

                    Method (C181, 1, Serialized)
                    {
                        If (C179 (Arg0))
                        {
                            Store (C17A (Arg0), Local0)
                            Store (DerefOf (Index (Local0, 0x01)), Local1)
                            Store (DerefOf (Index (Local0, 0x02)), Local2)
                            Store (DerefOf (Index (Local0, 0x03)), Local3)
                            \_SB.C0E4 (Arg0, 0x00, Local1, Local2, Local3)
                            C17C (Arg0, 0x00, 0x00, 0x00, 0x00)
                        }
                    }

                    Method (C182, 0, NotSerialized)
                    {
                        Store (^^C183, Local3)
                        If (\_SB.C184 ())
                        {
                            If (C179 (0x02))
                            {
                                Name (C185, Buffer (0x0A)
                                {
                                    0x47, 0x01, 0xF8, 0x03, 0xF8, 0x03, 0x01, 0x08, 
                                    0x79, 0x00
                                })
                                CreateWordField (C185, 0x02, C187)
                                CreateWordField (C185, 0x04, C188)
                                Store (C17A (0x02), Local1)
                                Store (DerefOf (Index (Local1, 0x00)), C187)
                                Store (C187, C188)
                                Store (\C00B (Local3, C185), Local0)
                                Store (Local0, Local3)
                            }
                        }

                        Return (Local3)
                    }

                    Device (C189)
                    {
                        Name (_HID, EisaId ("PNP0501"))
                        Name (_CID, 0x0005D041)
                        Name (_DDN, "COM1")
                        Name (C18A, 0x00)
                        Name (C18B, Buffer (0x33)
                        {
                            0x30, 0x47, 0x01, 0xF8, 0x03, 0xF8, 0x03, 0x01, 
                            0x08, 0x22, 0x10, 0x00, 0x30, 0x47, 0x01, 0xF8, 
                            0x02, 0xF8, 0x02, 0x01, 0x08, 0x22, 0x08, 0x00, 
                            0x30, 0x47, 0x01, 0xE8, 0x03, 0xE8, 0x03, 0x01, 
                            0x08, 0x22, 0x10, 0x00, 0x30, 0x47, 0x01, 0xE8, 
                            0x02, 0xE8, 0x02, 0x01, 0x08, 0x22, 0x08, 0x00, 
                            0x38, 0x79, 0x00
                        })
                        Method (_PRS, 0, NotSerialized)
                        {
                            Return (C18B)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            If (C18A)
                            {
                                Store (0x0D, Local0)
                            }
                            Else
                            {
                                Store (C180 (0x02, 0x02), Local0)
                            }

                            Return (Local0)
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            If (LOr (\_SB.C023, LEqual (0x00, 0x01)))
                            {
                                Store (0x01, C18A)
                                Return (0x00)
                            }

                            C181 (0x02)
                            Return (0x00)
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateWordField (Arg0, 0x02, C187)
                            CreateWordField (Arg0, 0x09, C18C)
                            If (C180 (0x02, 0x02))
                            {
                                _DIS ()
                                \_SB.C0E4 (0x02, C187, 0x00, C18C, 0x00)
                                C17C (0x02, C187, 0x00, C18C, 0x00)
                            }

                            Store (0x00, C18A)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            Name (C00D, Buffer (0x0D)
                            {
                                0x47, 0x01, 0xF8, 0x03, 0xF8, 0x03, 0x01, 0x08, 
                                0x22, 0x10, 0x00, 0x79, 0x00
                            })
                            CreateWordField (C00D, 0x02, C187)
                            CreateWordField (C00D, 0x04, C188)
                            CreateWordField (C00D, 0x09, C18C)
                            If (C18A)
                            {
                                Store (0x00, Local0)
                            }
                            Else
                            {
                                Store (C180 (0x02, 0x02), Local0)
                            }

                            If (LEqual (Local0, 0x00))
                            {
                                Store (0x00, C187)
                                Store (0x00, C188)
                                Store (0x00, C18C)
                                Return (C00D)
                            }

                            Store (C17A (0x02), Local1)
                            Store (DerefOf (Index (Local1, 0x00)), C187)
                            Store (C187, C188)
                            Store (DerefOf (Index (Local1, 0x02)), C18C)
                            Return (C00D)
                        }

                        PowerResource (C18D, 0x00, 0x0000)
                        {
                            Method (_STA, 0, NotSerialized)
                            {
                                Return (C17E (0x02))
                            }

                            Method (_ON, 0, NotSerialized)
                            {
                                C17F (0x02, 0x01)
                            }

                            Method (_OFF, 0, NotSerialized)
                            {
                                If (LOr (\_SB.C023, LEqual (0x00, 0x01)))
                                {
                                    Store (0x00, Local0)
                                }
                                Else
                                {
                                    C17F (0x02, 0x00)
                                }
                            }
                        }

                        Name (_PR0, Package (0x01)
                        {
                            C18D
                        })
                    }

                    Device (C18E)
                    {
                        Name (_HID, EisaId ("SMCF010"))
                        Name (_CID, 0x1105D041)
                        Name (C18B, Buffer (0x5F)
                        {
                            0x30, 0x47, 0x01, 0xE8, 0x03, 0xE8, 0x03, 0x01, 
                            0x08, 0x47, 0x01, 0x00, 0x01, 0x30, 0x01, 0x08, 
                            0x08, 0x22, 0xB8, 0x00, 0x2A, 0x0A, 0x00, 0x30, 
                            0x47, 0x01, 0xE8, 0x02, 0xE8, 0x02, 0x01, 0x08, 
                            0x47, 0x01, 0x00, 0x01, 0x30, 0x01, 0x08, 0x08, 
                            0x22, 0xB8, 0x00, 0x2A, 0x0A, 0x00, 0x30, 0x47, 
                            0x01, 0xF8, 0x03, 0xF8, 0x03, 0x01, 0x08, 0x47, 
                            0x01, 0x00, 0x01, 0x30, 0x01, 0x08, 0x08, 0x22, 
                            0xB8, 0x00, 0x2A, 0x0A, 0x00, 0x30, 0x47, 0x01, 
                            0xF8, 0x02, 0xF8, 0x02, 0x01, 0x08, 0x47, 0x01, 
                            0x00, 0x01, 0x30, 0x01, 0x08, 0x08, 0x22, 0xB8, 
                            0x00, 0x2A, 0x0A, 0x00, 0x38, 0x79, 0x00
                        })
                        Method (_PRS, 0, NotSerialized)
                        {
                            Return (C18B)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            Return (C180 (0x03, 0x01))
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            C181 (0x03)
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateWordField (Arg0, 0x02, C187)
                            CreateWordField (Arg0, 0x0A, C18F)
                            CreateWordField (Arg0, 0x11, C18C)
                            CreateWordField (Arg0, 0x14, C190)
                            If (C180 (0x03, 0x01))
                            {
                                ^_DIS ()
                                \_SB.C0E4 (0x03, C187, C18F, C18C, C190)
                                ^^C17C (0x03, C187, C18F, C18C, C190)
                            }
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            Name (C00D, Buffer (0x18)
                            {
                                0x47, 0x01, 0xE8, 0x03, 0xE8, 0x03, 0x01, 0x08, 
                                0x47, 0x01, 0x00, 0x01, 0x00, 0x01, 0x10, 0x08, 
                                0x22, 0x08, 0x00, 0x2A, 0x02, 0x00, 0x79, 0x00
                            })
                            CreateWordField (C00D, 0x02, C187)
                            CreateWordField (C00D, 0x04, C188)
                            CreateWordField (C00D, 0x0A, C18F)
                            CreateWordField (C00D, 0x0C, C194)
                            CreateWordField (C00D, 0x11, C18C)
                            CreateWordField (C00D, 0x14, C190)
                            If (LEqual (C180 (0x03, 0x01), 0x00))
                            {
                                Store (0x00, C187)
                                Store (0x00, C188)
                                Store (0x00, C18F)
                                Store (0x00, C194)
                                Store (0x00, C18C)
                                Store (0x00, C190)
                                Return (C00D)
                            }

                            Store (C17A (0x03), Local1)
                            Store (DerefOf (Index (Local1, 0x00)), C187)
                            Store (C187, C188)
                            Store (DerefOf (Index (Local1, 0x01)), C18F)
                            Store (C18F, C194)
                            Store (DerefOf (Index (Local1, 0x02)), C18C)
                            Store (DerefOf (Index (Local1, 0x03)), C190)
                            Return (C00D)
                        }

                        PowerResource (C195, 0x00, 0x0000)
                        {
                            Method (_STA, 0, NotSerialized)
                            {
                                Return (C17E (0x03))
                            }

                            Method (_ON, 0, NotSerialized)
                            {
                                C17F (0x03, 0x01)
                            }

                            Method (_OFF, 0, NotSerialized)
                            {
                                C17F (0x03, 0x00)
                            }
                        }

                        Name (_PR0, Package (0x01)
                        {
                            C195
                        })
                    }

                    Device (C196)
                    {
                        Method (_HID, 0, Serialized)
                        {
                            If (C197 ())
                            {
                                Store (0x0104D041, Local0)
                            }
                            Else
                            {
                                Store (0x0004D041, Local0)
                            }

                            Return (Local0)
                        }

                        Name (C198, 0xFF)
                        Method (C197, 0, Serialized)
                        {
                            If (LEqual (C198, 0xFF))
                            {
                                Store (C17D (), Local0)
                                Store (0x00, C198)
                                If (LGreater (Local0, 0x01))
                                {
                                    Store (0x01, C198)
                                }
                            }

                            Return (C198)
                        }

                        Name (C199, 0x00)
                        Name (C18B, Buffer (0xD4)
                        {
                            0x31, 0x00, 0x47, 0x01, 0x78, 0x03, 0x78, 0x03, 
                            0x01, 0x08, 0x47, 0x01, 0x78, 0x07, 0x78, 0x07, 
                            0x01, 0x03, 0x22, 0xA0, 0x00, 0x2A, 0x0A, 0x00, 
                            0x31, 0x00, 0x47, 0x01, 0x78, 0x02, 0x78, 0x02, 
                            0x01, 0x08, 0x47, 0x01, 0x78, 0x06, 0x78, 0x06, 
                            0x01, 0x03, 0x22, 0xA0, 0x00, 0x2A, 0x0A, 0x00, 
                            0x30, 0x47, 0x01, 0xBC, 0x03, 0xBC, 0x03, 0x01, 
                            0x04, 0x47, 0x01, 0xBC, 0x07, 0xBC, 0x07, 0x01, 
                            0x03, 0x22, 0xA0, 0x00, 0x2A, 0x0A, 0x00, 0x30, 
                            0x47, 0x01, 0x78, 0x03, 0x78, 0x03, 0x01, 0x08, 
                            0x47, 0x01, 0x78, 0x07, 0x78, 0x07, 0x01, 0x03, 
                            0x22, 0xA0, 0x00, 0x2A, 0x00, 0x00, 0x30, 0x47, 
                            0x01, 0x78, 0x02, 0x78, 0x02, 0x01, 0x08, 0x47, 
                            0x01, 0x78, 0x06, 0x78, 0x06, 0x01, 0x03, 0x22, 
                            0xA0, 0x00, 0x2A, 0x00, 0x00, 0x30, 0x47, 0x01, 
                            0xBC, 0x03, 0xBC, 0x03, 0x01, 0x04, 0x47, 0x01, 
                            0xBC, 0x07, 0xBC, 0x07, 0x01, 0x03, 0x22, 0xA0, 
                            0x00, 0x2A, 0x00, 0x00, 0x30, 0x47, 0x01, 0x78, 
                            0x03, 0x78, 0x03, 0x01, 0x08, 0x47, 0x01, 0x78, 
                            0x07, 0x78, 0x07, 0x01, 0x03, 0x22, 0x00, 0x00, 
                            0x2A, 0x00, 0x00, 0x30, 0x47, 0x01, 0x78, 0x02, 
                            0x78, 0x02, 0x01, 0x08, 0x47, 0x01, 0x78, 0x06, 
                            0x78, 0x06, 0x01, 0x03, 0x22, 0x00, 0x00, 0x2A, 
                            0x00, 0x00, 0x30, 0x47, 0x01, 0xBC, 0x03, 0xBC, 
                            0x03, 0x01, 0x04, 0x47, 0x01, 0xBC, 0x07, 0xBC, 
                            0x07, 0x01, 0x03, 0x22, 0x00, 0x00, 0x2A, 0x00, 
                            0x00, 0x38, 0x79, 0x00
                        })
                        Method (_PRS, 0, NotSerialized)
                        {
                            Return (C18B)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            If (C199)
                            {
                                Store (0x0D, Local0)
                            }
                            Else
                            {
                                Store (C180 (0x01, 0x04), Local0)
                            }

                            Return (Local0)
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            If (\_SB.C026)
                            {
                                Store (0x01, C199)
                                Return (0x00)
                            }

                            C181 (0x01)
                            Return (0x00)
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateWordField (Arg0, 0x02, C187)
                            CreateWordField (Arg0, 0x0A, C18F)
                            CreateWordField (Arg0, 0x11, C18C)
                            CreateWordField (Arg0, 0x14, C190)
                            If (C180 (0x01, 0x04))
                            {
                                _DIS ()
                                \_SB.C0E4 (0x01, C187, C18F, C18C, C190)
                                C17C (0x01, C187, C18F, C18C, C190)
                            }

                            Store (0x00, C199)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            Name (C00D, Buffer (0x18)
                            {
                                0x47, 0x01, 0x78, 0x03, 0x78, 0x03, 0x01, 0x08, 
                                0x47, 0x01, 0x78, 0x07, 0x78, 0x07, 0x01, 0x03, 
                                0x22, 0x80, 0x00, 0x2A, 0x08, 0x00, 0x79, 0x00
                            })
                            CreateWordField (C00D, 0x02, C187)
                            CreateWordField (C00D, 0x04, C188)
                            CreateByteField (C00D, 0x07, C19A)
                            CreateWordField (C00D, 0x0A, C18F)
                            CreateWordField (C00D, 0x0C, C194)
                            CreateByteField (C00D, 0x0F, C19B)
                            CreateWordField (C00D, 0x11, C18C)
                            CreateWordField (C00D, 0x14, C190)
                            If (C199)
                            {
                                Store (0x00, Local0)
                            }
                            Else
                            {
                                Store (C180 (0x01, 0x04), Local0)
                            }

                            If (LEqual (Local0, 0x00))
                            {
                                Store (0x00, C187)
                                Store (0x00, C188)
                                Store (0x00, C18F)
                                Store (0x00, C194)
                                Store (0x00, C18C)
                                Store (0x00, C190)
                                Return (C00D)
                            }

                            Store (C17A (0x01), Local1)
                            Store (DerefOf (Index (Local1, 0x00)), C187)
                            Store (C187, C188)
                            If (LEqual (C187, 0x0278))
                            {
                                Store (0x08, C19A)
                                Store (0x03, C19B)
                            }

                            If (LEqual (C187, 0x03BC))
                            {
                                Store (0x04, C19A)
                                Store (0x03, C19B)
                            }

                            Add (C187, 0x0400, C18F)
                            Store (C18F, C194)
                            Store (DerefOf (Index (Local1, 0x02)), C18C)
                            Store (DerefOf (Index (Local1, 0x03)), C190)
                            Return (C00D)
                        }

                        PowerResource (C19C, 0x00, 0x0000)
                        {
                            Method (_STA, 0, NotSerialized)
                            {
                                Return (C17E (0x01))
                            }

                            Method (_ON, 0, NotSerialized)
                            {
                                C17F (0x01, 0x01)
                            }

                            Method (_OFF, 0, NotSerialized)
                            {
                                If (LOr (\_SB.C026, LEqual (0x00, 0x01)))
                                {
                                    Store (0x00, Local0)
                                }
                                Else
                                {
                                    C17F (0x01, 0x00)
                                }
                            }
                        }

                        Name (_PR0, Package (0x01)
                        {
                            C19C
                        })
                    }

                    Method (\_SB.C19D, 0, NotSerialized)
                    {
                        Store (\_SB.C046.C059.C158.C179 (0x02), Local0)
                        Return (Local0)
                    }

                    Method (\_SB.C184, 0, NotSerialized)
                    {
                        Store (0x01, Local0)
                        If (Not (And (\_SB.C024, 0x10)))
                        {
                            Store (0x00, Local0)
                        }

                        Return (Local0)
                    }

                    Method (\_SB.C19E, 1, NotSerialized)
                    {
                        Return (0x00)
                    }
                }

                Device (C19F)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, Buffer (0x0D)
                    {
                        0x47, 0x01, 0xF0, 0x00, 0xF0, 0x00, 0x01, 0x10, 
                        0x22, 0x00, 0x20, 0x79, 0x00
                    })
                }

                Device (C1A0)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (_CRS, Buffer (0x0D)
                    {
                        0x47, 0x01, 0x40, 0x00, 0x40, 0x00, 0x01, 0x04, 
                        0x22, 0x01, 0x00, 0x79, 0x00
                    })
                }

                Device (C190)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, Buffer (0x1D)
                    {
                        0x47, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 
                        0x47, 0x01, 0x80, 0x00, 0x80, 0x00, 0x01, 0x10, 
                        0x47, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0x01, 0x20, 
                        0x2A, 0x10, 0x02, 0x79, 0x00
                    })
                }

                Device (C1A1)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, Buffer (0x0A)
                    {
                        0x47, 0x01, 0x61, 0x00, 0x61, 0x00, 0x01, 0x01, 
                        0x79, 0x00
                    })
                }

                Device (C1A2)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, Buffer (0x15)
                    {
                        0x47, 0x01, 0x70, 0x00, 0x70, 0x00, 0x01, 0x02, 
                        0x47, 0x01, 0x72, 0x00, 0x72, 0x00, 0x01, 0x02, 
                        0x22, 0x00, 0x01, 0x79, 0x00
                    })
                }

                Device (C1A3)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CRS, Buffer (0x15)
                    {
                        0x47, 0x01, 0x60, 0x00, 0x60, 0x00, 0x01, 0x01, 
                        0x47, 0x01, 0x64, 0x00, 0x64, 0x00, 0x01, 0x01, 
                        0x22, 0x02, 0x00, 0x79, 0x00
                    })
                }

                Device (C1A4)
                {
                    Name (_CRS, Buffer (0x05)
                    {
                        0x22, 0x00, 0x10, 0x79, 0x00
                    })
                    Name (C1A5, 0x01)
                    PowerResource (C1A6, 0x00, 0x0000)
                    {
                        Method (_STA, 0, NotSerialized)
                        {
                            Return (C1A5)
                        }

                        Method (_ON, 0, NotSerialized)
                        {
                            Store (0x01, C1A5)
                        }

                        Method (_OFF, 0, NotSerialized)
                        {
                            Store (0x00, C1A5)
                        }
                    }

                    Name (_PR0, Package (0x01)
                    {
                        C1A6
                    })
                }

                Scope (C1A4)
                {
                    Name (_HID, EisaId ("SYN0107"))
                    Name (_CID, Package (0x03)
                    {
                        0x00012E4F, 
                        0x02002E4F, 
                        0x130FD041
                    })
                    Name (_PRW, Package (0x02)
                    {
                        0x0B, 
                        0x03
                    })
                    Method (_PSW, 1, NotSerialized)
                    {
                        Acquire (\_SB.C046.C059.C0EA.C0EB, 0xFFFF)
                        If (\_SB.C046.C059.C0EA.C0ED)
                        {
                            If (Arg0)
                            {
                                Store (0x01, \_SB.C046.C059.C0EA.C0F2)
                            }
                            Else
                            {
                                Store (0x00, \_SB.C046.C059.C0EA.C0F2)
                            }
                        }

                        Release (\_SB.C046.C059.C0EA.C0EB)
                    }
                }

                Scope (C1A3)
                {
                    Name (_PRW, Package (0x02)
                    {
                        0x0B, 
                        0x03
                    })
                    Method (_PSW, 1, NotSerialized)
                    {
                        Acquire (\_SB.C046.C059.C0EA.C0EB, 0xFFFF)
                        If (\_SB.C046.C059.C0EA.C0ED)
                        {
                            If (Arg0)
                            {
                                Store (0x01, \_SB.C046.C059.C0EA.C0F0)
                            }
                            Else
                            {
                                Store (0x00, \_SB.C046.C059.C0EA.C0F0)
                            }
                        }

                        Release (\_SB.C046.C059.C0EA.C0EB)
                    }

                    Name (_PSC, 0x00)
                    Name (C1A7, 0x00)
                    Name (C1A8, 0x044C)
                }

                Device (C1A9)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, Buffer (0x15)
                    {
                        0x47, 0x01, 0x20, 0x00, 0x20, 0x00, 0x01, 0x02, 
                        0x47, 0x01, 0xA0, 0x00, 0xA0, 0x00, 0x01, 0x02, 
                        0x22, 0x04, 0x00, 0x79, 0x00
                    })
                }
            }

            Scope (C058)
            {
                Device (C1AA)
                {
                    Name (_ADR, 0x00040000)
                    OperationRegion (C1AB, PCI_Config, 0x44, 0x04)
                    Field (C1AB, AnyAcc, NoLock, Preserve)
                    {
                        C1AC,   32
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        Store (0x00, C1AC)
                    }
                }

                Device (C1AD)
                {
                    Name (_ADR, 0x00010000)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Name (_PRW, Package (0x02)
                    {
                        0x0B, 
                        0x03
                    })
                }

                Device (C1AE)
                {
                    Name (_ADR, 0x00060000)
                }

                Device (C1AF)
                {
                    Name (_ADR, 0x00060001)
                }
            }

            Scope (C098)
            {
                Device (C1B0)
                {
                    Name (_ADR, 0x00)
                    Name (C1B1, Package (0x05)
                    {
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store (Buffer (0x14)
                            {
                                0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                                0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                                0xFF, 0xFF, 0xFF, 0xFF
                            }, Local0)
                        CreateDWordField (Local0, 0x00, C1B2)
                        CreateDWordField (Local0, 0x04, C1B3)
                        CreateDWordField (Local0, 0x10, C1B4)
                        Store (C0A0 (0x00, 0x00), C1B2)
                        Store (C0A3 (0x00), C1B4)
                        If (And (C1B4, 0x01))
                        {
                            Store (C0A2 (0x00, 0x00), C1B3)
                        }
                        Else
                        {
                            Store (C1B2, C1B3)
                        }

                        Return (Local0)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        CreateDWordField (Arg0, 0x00, C1B2)
                        CreateDWordField (Arg0, 0x04, C1B3)
                        CreateDWordField (Arg0, 0x10, C1B4)
                        If (LEqual (SizeOf (Arg1), 0x0200))
                        {
                            Store (0x00, Local0)
                            Store (Buffer (Multiply (SizeOf (C1B5), 0x02)) {}, Local1)
                            While (LLess (Local0, SizeOf (C1B5)))
                            {
                                Store (DerefOf (Index (C1B5, Local0)), Local2)
                                Multiply (Local2, 0x02, Local2)
                                Multiply (Local0, 0x02, Local3)
                                Store (DerefOf (Index (Arg1, Local2)), Index (Local1, Local3))
                                Store (DerefOf (Index (Arg1, Add (Local2, 0x01))), Index (Local1, Add (Local3, 0x01)))
                                Increment (Local0)
                            }

                            Store (C0A4 (0x00, 0x00, C1B2, C1B4, Local1), Local2)
                            Store (C0A8 (0x00, 0x00, C1B3, C1B4, Local1), Local3)
                            \_SB.C1B6 (Local2, Local3, Local1, C1B1)
                            If (\_SB.C1B7)
                            {
                                Store (0x00, \_SB.C1B7)
                                If (And (DerefOf (Index (Arg1, 0x0100)), 0x02))
                                {
                                    \_SB.C0DA (0xEA49, 0x0C, 0x00, 0x00, 0x00)
                                }
                            }
                        }
                    }

                    Device (C1B8)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (\_SB.C1B9 (C1B1, 0x00))
                        }
                    }
                }

                Device (C1BA)
                {
                    Name (_ADR, 0x01)
                    Name (C1BB, Package (0x05)
                    {
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store (Buffer (0x14)
                            {
                                0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                                0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                                0xFF, 0xFF, 0xFF, 0xFF
                            }, Local0)
                        CreateDWordField (Local0, 0x00, C1B2)
                        CreateDWordField (Local0, 0x04, C1B3)
                        CreateDWordField (Local0, 0x10, C1B4)
                        Store (C0A0 (0x01, 0x00), C1B2)
                        Store (C0A3 (0x01), C1B4)
                        If (And (C1B4, 0x01))
                        {
                            Store (C0A2 (0x01, 0x00), C1B3)
                        }
                        Else
                        {
                            Store (C1B2, C1B3)
                        }

                        Return (Local0)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        If (LEqual (And (\_SB.C0E5 (), 0x0F), 0x01))
                        {
                            CreateDWordField (Arg0, 0x00, C1B2)
                            CreateDWordField (Arg0, 0x04, C1B3)
                            CreateDWordField (Arg0, 0x10, C1B4)
                            If (LEqual (SizeOf (Arg1), 0x0200))
                            {
                                Store (0x00, Local0)
                                Store (Buffer (Multiply (SizeOf (C1B5), 0x02)) {}, Local1)
                                While (LLess (Local0, SizeOf (C1B5)))
                                {
                                    Store (DerefOf (Index (C1B5, Local0)), Local2)
                                    Multiply (Local2, 0x02, Local2)
                                    Multiply (Local0, 0x02, Local3)
                                    Store (DerefOf (Index (Arg1, Local2)), Index (Local1, Local3))
                                    Store (DerefOf (Index (Arg1, Add (Local2, 0x01))), Index (Local1, Add (Local3, 0x01)))
                                    Increment (Local0)
                                }

                                Store (C0A4 (0x01, 0x00, C1B2, C1B4, Local1), Local2)
                                Store (C0A8 (0x01, 0x00, C1B3, C1B4, Local1), Local3)
                                \_SB.C1B6 (Local2, Local3, Local1, C1BB)
                                If (And (DerefOf (Index (Arg1, 0x0100)), 0x04))
                                {
                                    \_SB.C0DA (0xEA49, 0x0C, 0x01, 0x00, 0x00)
                                }
                            }
                        }
                    }

                    Device (C1B8)
                    {
                        Name (_ADR, 0x00)
                        Method (_PS0, 0, NotSerialized)
                        {
                            Store (0x00, Local0)
                        }

                        Method (_PS3, 0, NotSerialized)
                        {
                            Store (0x00, Local0)
                        }

                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (\_SB.C1B9 (C1BB, 0x00))
                        }
                    }
                }

                Method (C0AA, 2, NotSerialized)
                {
                    Store (0x02, Local0)
                    If (LAnd (LEqual (Arg0, 0x00), LEqual (Arg1, 0x00)))
                    {
                        Store (0x05, Local0)
                    }

                    Return (Local0)
                }
            }

            Scope (C0AC)
            {
                Name (_PRW, Package (0x02)
                {
                    0x03, 
                    0x03
                })
                Name (_S3D, 0x03)
                Name (_S4D, 0x03)
            }

            Scope (C0B3)
            {
                Name (_PRW, Package (0x02)
                {
                    0x04, 
                    0x03
                })
                Name (_S3D, 0x03)
                Name (_S4D, 0x03)
            }

            Scope (C0B4)
            {
                Name (_PRW, Package (0x02)
                {
                    0x0C, 
                    0x03
                })
                Name (_S3D, 0x03)
                Name (_S4D, 0x03)
            }

            Scope (C0B5)
            {
                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
                Name (_S3D, 0x03)
                Name (_S4D, 0x03)
            }

            Name (C0C2._PRS, Buffer (0x06)
            {
                0x23, 0x20, 0x04, 0x18, 0x79, 0x00
            })
            Name (C0C3._PRS, Buffer (0x06)
            {
                0x23, 0x20, 0x04, 0x18, 0x79, 0x00
            })
            Name (C0C4._PRS, Buffer (0x06)
            {
                0x23, 0x20, 0x04, 0x18, 0x79, 0x00
            })
            Name (C0C5._PRS, Buffer (0x06)
            {
                0x23, 0x20, 0x04, 0x18, 0x79, 0x00
            })
            Name (C0C6._PRS, Buffer (0x06)
            {
                0x23, 0x20, 0x04, 0x18, 0x79, 0x00
            })
            Name (C0C7._PRS, Buffer (0x06)
            {
                0x23, 0x20, 0x04, 0x18, 0x79, 0x00
            })
            Name (C0C8._PRS, Buffer (0x06)
            {
                0x23, 0x20, 0x04, 0x18, 0x79, 0x00
            })
            Name (C0C9._PRS, Buffer (0x06)
            {
                0x23, 0x20, 0x04, 0x18, 0x79, 0x00
            })
            Name (_PRT, Package (0x06)
            {
                Package (0x04)
                {
                    0x001DFFFF, 
                    0x00, 
                    C0C2, 
                    0x00
                }, 

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

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

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

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

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x01, 
                    C0C3, 
                    0x00
                }
            })
            Name (C047._PRT, Package (0x01)
            {
                Package (0x04)
                {
                    0xFFFF, 
                    0x00, 
                    C0C2, 
                    0x00
                }
            })
            Name (C058._PRT, Package (0x05)
            {
                Package (0x04)
                {
                    0xFFFF, 
                    0x00, 
                    C0C2, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x00, 
                    C0C3, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x00, 
                    C0C5, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0004FFFF, 
                    0x00, 
                    C0C4, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0006FFFF, 
                    0x00, 
                    C0C5, 
                    0x00
                }
            })
        }

        Name (C12F, Package (0x02)
        {
            Package (0x0D)
            {
                0x01, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x01, 
                0xFFFFFFFF, 
                0x00, 
                0x00, 
                0x64, 
                0x64, 
                "Primary", 
                "100000", 
                "LIon", 
                " Hewlett-Packard "
            }, 

            Package (0x0D)
            {
                0x01, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x01, 
                0xFFFFFFFF, 
                0x00, 
                0x00, 
                0x64, 
                0x64, 
                "MultiBay", 
                "100000", 
                "LIon", 
                " Hewlett-Packard "
            }
        })
        Name (C12E, Package (0x02)
        {
            Package (0x04)
            {
                0x00, 
                0x00, 
                0xB010, 
                0x40F2
            }, 

            Package (0x04)
            {
                0x00, 
                0x00, 
                0xB010, 
                0x40F2
            }
        })
        Name (C12D, Package (0x04)
        {
            0x00, 
            0x00, 
            0xB010, 
            0x40F2
        })
        Method (C12C, 1, Serialized)
        {
            Store (\_SB.C046.C059.C0EA.C12C (Arg0), Local0)
            If (LEqual (Local0, 0xFFFFFFFD))
            {
                Return (Package (0x0D)
                {
                    0x00, 
                    0xFFFFFFFF, 
                    0xFFFFFFFF, 
                    0x01, 
                    0xFFFFFFFF, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    "", 
                    "", 
                    "", 
                    0x00
                })
            }
            Else
            {
                Return (DerefOf (Index (C12F, Arg0)))
            }
        }

        Name (C135, 0x00)
        Name (C1BC, 0x01)
        Method (C132, 1, Serialized)
        {
            If (LEqual (C135, 0x00))
            {
                Store (\_SB.C046.C059.C0E3 (C1BC), Local1)
                If (C1BC)
                {
                    Store (0x00, C1BC)
                }

                Store (\_SB.C046.C059.C0EA.C132 (Arg0, Local1), Local0)
            }

            Store (0x00, C135)
            Return (DerefOf (Index (C12E, Arg0)))
        }

        Device (C11F)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_UID, 0x01)
            Method (_STA, 0, NotSerialized)
            {
                Return (\_SB.C046.C059.C0EA.C12B (0x01))
            }

            Method (_BIF, 0, NotSerialized)
            {
                Return (C12C (0x00))
            }

            Method (_BST, 0, NotSerialized)
            {
                Return (C132 (0x00))
            }

            Name (_PCL, Package (0x01)
            {
                \_SB
            })
        }

        Device (C134)
        {
            Name (_HID, "ACPI0003")
            Name (_PCL, Package (0x01)
            {
                \_SB
            })
            Method (_PSR, 0, NotSerialized)
            {
                Store (0x80, \_SB.C046.C059.C075)
                And (\_SB.C046.C059.C075, 0x80, Local0)
                If (Local0)
                {
                    Return (0x01)
                }
                Else
                {
                    Return (0x00)
                }
            }
        }

        Device (C1BE)
        {
            Name (_HID, EisaId ("PNP0C0C"))
        }

        Device (C136)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Name (_PRW, Package (0x02)
            {
                0x1D, 
                0x03
            })
            Method (_LID, 0, NotSerialized)
            {
                Store (0x00, Local0)
                If (And (\_SB.C046.C059.C086, 0x2000))
                {
                    Store (0x01, Local0)
                }

                Return (Local0)
            }
        }

        Name (C1B5, Buffer (0x09)
        {
            0x2F, 0x31, 0x35, 0x3F, 0x40, 0x53, 0x58, 0x80, 
            0x00
        })
        Name (C1B7, 0x00)
        Method (C1B6, 4, NotSerialized)
        {
            CreateWordField (Arg2, 0x00, C1BF)
            CreateWordField (Arg2, 0x06, C1C0)
            CreateWordField (Arg2, 0x0A, C1C1)
            CreateWordField (Arg2, 0x0E, C1C2)
            Store (0x00, Local0)
            While (LLess (Local0, SizeOf (Arg3)))
            {
                Store (0x00, Index (Arg3, Local0))
                Increment (Local0)
            }

            Store (Arg0, Local0)
            Store (Arg1, Local1)
            If (LEqual (Local1, 0x00))
            {
                If (And (C1C0, 0x01))
                {
                    Store (0x20, Local1)
                    If (LAnd (LEqual (And (Local0, 0x07), 0x03), And (C1C0, 0x02)))
                    {
                        Or (Local1, 0x01, Local1)
                    }
                    Else
                    {
                        If (LAnd (LEqual (And (Local0, 0x07), 0x04), And (C1C0, 0x04)))
                        {
                            Or (Local1, 0x02, Local1)
                        }
                    }
                }
            }

            Store (Local0, Index (Arg3, 0x00))
            Store (Local1, Index (Arg3, 0x01))
            If (And (C1C2, 0x01))
            {
                Store (0x01, Index (Arg3, 0x02))
            }

            If (And (C1C1, 0x0800))
            {
                Store (0x01, Index (Arg3, 0x03))
            }

            If (LNot (LEqual (C1BF, 0x00)))
            {
                Store (C1BF, Index (Arg3, 0x04))
            }
        }

        Method (C1C3, 3, NotSerialized)
        {
            If (LOr (LEqual (Arg0, 0x00), LEqual (Arg0, 0x01)))
            {
                Store (Buffer (0x07)
                    {
                        0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF
                    }, Local0)
                Store (Arg1, Index (Local0, 0x01))
            }

            If (LEqual (Arg0, 0x02))
            {
                Store (Buffer (0x07)
                    {
                        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5
                    }, Local0)
            }

            If (LEqual (Arg0, 0x03))
            {
                Store (Buffer (0x07)
                    {
                        0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1
                    }, Local0)
            }

            If (LEqual (Arg0, 0x04))
            {
                Store (Buffer (0x07)
                    {
                        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6
                    }, Local0)
                Store (Arg1, Index (Local0, 0x01))
            }

            Store (Or (0xA0, ShiftLeft (Arg2, 0x04)), Index (Local0, 0x05))
            Return (Local0)
        }

        Method (C1B9, 2, NotSerialized)
        {
            Store (0x00, Local0)
            While (LLess (Local0, SizeOf (Arg0)))
            {
                If (LNot (LEqual (DerefOf (Index (Arg0, Local0)), 0x00)))
                {
                    Store (C1C3 (Local0, DerefOf (Index (Arg0, Local0)), Arg1), Local2)
                    If (LEqual (Local0, 0x00))
                    {
                        Store (Local2, Local1)
                    }
                    Else
                    {
                        Concatenate (Local1, Local2, Local3)
                        Store (Local3, Local1)
                    }
                }

                Increment (Local0)
            }

            Return (Local1)
        }

        Method (C1C4, 2, NotSerialized)
        {
            Add (Multiply (Arg0, 0x02), Arg1, Local0)
            XOr (ShiftRight (C040, 0x06), 0x03, Local1)
            XOr (ShiftRight (C044, 0x06), 0x03, Local2)
            If (LEqual (Local0, Local1))
            {
                Return (0x01)
            }

            If (LEqual (Local0, Local2))
            {
                Return (0x05)
            }

            Return (0xFF)
        }

        Mutex (C1C5, 0x00)
        Method (C0DA, 5, NotSerialized)
        {
            Acquire (C1C5, 0xFFFF)
            If (Arg4)
            {
                Acquire (\_GL, 0xFFFF)
            }

            ShiftLeft (Arg0, 0x10, C038)
            Store (Arg1, C03B)
            Store (Arg2, C039)
            Store (Arg3, C03A)
            Store (0x00, C03C)
            \C0CA (Arg0)
            Store (C03C, Local0)
            If (Arg4)
            {
                Release (\_GL)
            }

            Release (C1C5)
            Return (Local0)
        }

        OperationRegion (C1C6, SystemIO, 0x84, 0x02)
        Field (C1C6, ByteAcc, NoLock, Preserve)
        {
            C1C7,   8, 
            C1C8,   8
        }

        Mutex (C1C9, 0x00)
        Method (C1D3, 1, NotSerialized)
        {
            Acquire (C1C9, 0xFFFF)
            Store (Arg0, C1C7)
            Release (C1C9)
            Return (0x00)
        }

        Method (C1D6, 1, NotSerialized)
        {
            Acquire (C1C9, 0xFFFF)
            Store (Arg0, C1C8)
            Release (C1C9)
            Return (0x00)
        }

        Method (C1D7, 1, NotSerialized)
        {
            Acquire (C1C9, 0xFFFF)
            Store (And (Arg0, 0xFF), C1C7)
            Store (And (ShiftRight (Arg0, 0x08), 0xFF), C1C8)
            Release (C1C9)
            Return (0x00)
        }

        Method (C1D5, 1, NotSerialized)
        {
            Return (0x00)
        }

        Method (C1D8, 1, NotSerialized)
        {
            Return (0x00)
        }

        Method (C1D4, 0, NotSerialized)
        {
            Return (0x00)
        }
    }

    Device (\_SB.C1DB)
    {
        Name (_HID, EisaId ("PNP0C02"))
        Name (_UID, 0x00)
        Name (C1DC, Package (0x10) {})
        Name (C1DD, Package (0x10) {})
        Name (C1DE, Package (0x11) {})
        Name (C1DF, Package (0x11) {})
        Name (C1E0, 0xFFFFFFFD)
        Mutex (C1E1, 0x00)
        Method (C1E2, 0, NotSerialized)
        {
            Add (\_SB.C01D, 0x000F0000, Local0)
            Return (Local0)
        }

        OperationRegion (C1E3, SystemMemory, C1E2, 0xB0)
        Field (C1E3, AnyAcc, NoLock, Preserve)
        {
            C1E4,   640
        }

        Method (C1E5, 1, NotSerialized)
        {
            OperationRegion (C1E6, SystemMemory, Arg0, 0x03)
            Field (C1E6, ByteAcc, NoLock, Preserve)
            {
                C1E7,   16, 
                C1E8,   8
            }

            Store (0x00, Local0)
            If (LEqual (C1E7, 0xAA55))
            {
                ShiftLeft (C1E8, 0x09, Local0)
                Add (Arg0, Local0, Local0)
                Decrement (Local0)
            }

            Return (Local0)
        }

        Method (C1E9, 0, NotSerialized)
        {
            Store (C1E4, Local0)
            Store (0x00, Local3)
            Store (0x00, Local4)
            Store (0x01, Local1)
            While (LAnd (Local1, LNot (LGreater (Local3, 0x10))))
            {
                Store (DerefOf (Index (Local0, Add (Local4, 0x03))), Local2)
                Or (ShiftLeft (DerefOf (Index (Local0, Add (Local4, 0x04))), 0x08), Local2, Local1)
                ShiftLeft (Local1, 0x04, Local1)
                If (Local1)
                {
                    Store (Local1, Index (C1DC, Local3))
                    Store (DerefOf (Index (Local0, Add (Local4, 0x02))), Local5)
                    Add (Local1, ShiftLeft (Local5, 0x09), Local5)
                    Decrement (Local5)
                    Store (Local5, Index (C1DD, Local3))
                    Increment (Local3)
                    Add (Local4, 0x05, Local4)
                }
            }

            Return (Local3)
        }

        Method (C1EA, 0, NotSerialized)
        {
            Store (C1E9 (), Local3)
            Store (Local3, Local4)
            Store (0x00, Local2)
            Store (Local2, Local7)
            While (LLess (Local2, Local4))
            {
                Store (0x000FFFFF, Local1)
                Store (Local2, Local5)
                While (LLess (Local5, Local3))
                {
                    Store (DerefOf (Index (C1DC, Local5)), Local6)
                    If (LGreater (Local6, Local7))
                    {
                        If (LLess (Local6, Local1))
                        {
                            Store (Local5, Local0)
                            Store (Local6, Local1)
                        }
                    }
                    Else
                    {
                        If (LEqual (Local6, Local7))
                        {
                            Decrement (Local4)
                        }
                    }

                    Increment (Local5)
                }

                If (LGreater (Local0, Local2))
                {
                    Store (DerefOf (Index (C1DD, Local0)), Local7)
                    Store (DerefOf (Index (C1DC, Local2)), Index (C1DC, Local0))
                    Store (DerefOf (Index (C1DD, Local2)), Index (C1DD, Local0))
                    Store (Local1, Index (C1DC, Local2))
                    Store (Local7, Index (C1DD, Local2))
                }

                Store (C1E5 (Local1), Local7)
                If (Local7)
                {
                    Store (Local7, Index (C1DD, Local2))
                }

                Store (Local1, Local7)
                Increment (Local2)
            }

            Return (Local4)
        }

        Method (C1EB, 1, NotSerialized)
        {
            Acquire (C04C, 0xFFFF)
            Store (0x00, Local0)
            Store (Local0, C1E0)
            Store (Local0, Local2)
            Store (Local0, Local3)
            While (LNot (LGreater (Local0, 0x10)))
            {
                Store (Local2, Index (C1DE, Local0))
                Store (Local2, Index (C1DF, Local0))
                Increment (Local0)
            }

            Store (ShiftLeft (C015, 0x04), Local0)
            Store (Local0, Index (C04E, C04D))
            Store (Local0, Index (C04F, C04D))
            Store (Local0, Index (C1DC, Arg0))
            Store (Local0, Index (C1DD, Arg0))
            While (LAnd (LNot (LGreater (Local2, Arg0)), LNot (LGreater (Local3, C04D))))
            {
                Store (DerefOf (Index (C04E, Local3)), Local0)
                Add (DerefOf (Index (C04F, Local3)), 0x01, Local1)
                Store (DerefOf (Index (C1DC, Local2)), Local4)
                Add (DerefOf (Index (C1DD, Local2)), 0x01, Local5)
                Store (DerefOf (Index (C1DE, C1E0)), Local6)
                If (LNot (LGreater (Local1, Local4)))
                {
                    If (Local6)
                    {
                        Subtract (Local0, Local6, Index (C1DF, C1E0))
                        Increment (C1E0)
                    }

                    If (LLess (Local1, Local4))
                    {
                        Store (Local1, Index (C1DE, C1E0))
                    }

                    Increment (Local3)
                }
                Else
                {
                    If (Local6)
                    {
                        Subtract (Local4, Local6, Local7)
                        If (LGreater (Local7, 0x00))
                        {
                            Store (Local7, Index (C1DF, C1E0))
                            Increment (C1E0)
                        }
                    }

                    If (LGreater (Local0, Local5))
                    {
                        Store (Local5, Index (C1DE, C1E0))
                    }

                    Increment (Local2)
                }
            }

            Release (C04C)
        }

        Method (C1EC, 0, NotSerialized)
        {
            Acquire (C1E1, 0xFFFF)
            If (LEqual (C1E0, 0xFFFFFFFD))
            {
                C04B ()
                Store (C1EA (), Local0)
                C1EB (Local0)
            }

            Store (C1E0, Local1)
            Release (C1E1)
            Return (Local1)
        }

        Method (_INI, 0, NotSerialized)
        {
            C1EC ()
        }

        Method (C052, 3, NotSerialized)
        {
            Store (Arg1, Local2)
            CreateDWordField (Arg0, Local2, C1ED)
            Store (0x0986, C1ED)
            Add (Local2, 0x04, Local2)
            CreateDWordField (Arg0, Local2, C1EE)
            Store (DerefOf (Index (C1DE, Arg2)), C1EE)
            Add (Local2, 0x04, Local2)
            CreateDWordField (Arg0, Local2, C1EF)
            Store (DerefOf (Index (C1DF, Arg2)), C1EF)
            Add (Local2, 0x04, Local2)
            Return (Local2)
        }

        Method (C1F0, 0, NotSerialized)
        {
            Multiply (C1E0, 0x0C, Local1)
            Add (SizeOf (C00D), Local1, Local2)
            Store (Buffer (Local2) {}, Local0)
            Store (0x00, Local1)
            Store (Local1, Local2)
            While (LLess (Local1, C1E0))
            {
                Store (C052 (Local0, Local2, Local1), Local2)
                Increment (Local1)
            }

            Store (0x00, Local1)
            While (LLess (Local1, SizeOf (C00D)))
            {
                Store (DerefOf (Index (C00D, Local1)), Index (Local0, Local2))
                Increment (Local2)
                Increment (Local1)
            }

            Return (Local0)
        }

        Method (_CRS, 0, NotSerialized)
        {
            Store (C00D, Local0)
            Acquire (C1E1, 0xFFFF)
            If (LGreater (C1E0, 0x00))
            {
                Store (C1F0 (), Local0)
            }

            Release (C1E1)
            Return (Local0)
        }

        Method (_STA, 0, NotSerialized)
        {
            Subtract (SizeOf (C00D), 0x02, Local0)
            Or (C1EC (), Local0, Local0)
            If (Local0)
            {
                Store (0x0F, Local0)
            }

            Return (Local0)
        }
    }

    Name (\_SB.C1DB.C00D, Buffer (0x0E)
    {
        0x86, 0x09, 0x00, 0x01, 0x00, 0x10, 0xC0, 0xFE, 
        0x00, 0x10, 0x00, 0x00, 0x79, 0x00
    })
    Device (\_SB.C046.C1F1)
    {
        Name (_HID, EisaId ("PNP0C02"))
        Name (_UID, 0x01)
        Method (_CRS, 0, NotSerialized)
        {
            Name (C1F2, Buffer (0x2E)
            {
                0x47, 0x01, 0xD0, 0x04, 0xD0, 0x04, 0x01, 0x02, 
                0x47, 0x01, 0x00, 0x10, 0x00, 0x10, 0x01, 0x80, 
                0x47, 0x01, 0x00, 0x11, 0x00, 0x11, 0x01, 0x40, 
                0x47, 0x01, 0x00, 0x12, 0x00, 0x12, 0x01, 0x20, 
                0x86, 0x09, 0x00, 0x01, 0x00, 0x00, 0xC0, 0xFE, 
                0x00, 0x01, 0x00, 0x00, 0x79, 0x00
            })
            Return (C1F2)
        }
    }

    Device (\_SB.C046.C059.C1F4)
    {
        Name (_HID, EisaId ("PNP0C02"))
        Name (_UID, 0x02)
        Name (\_SB.C046.C059.C183, Buffer (0x7A)
        {
            0x47, 0x01, 0x10, 0x00, 0x10, 0x00, 0x01, 0x10, 
            0x47, 0x01, 0x24, 0x00, 0x24, 0x00, 0x01, 0x1C, 
            0x47, 0x01, 0x2E, 0x00, 0x2E, 0x00, 0x01, 0x02, 
            0x47, 0x01, 0x50, 0x00, 0x50, 0x00, 0x01, 0x04, 
            0x47, 0x01, 0x68, 0x00, 0x68, 0x00, 0x01, 0x08, 
            0x47, 0x01, 0x74, 0x00, 0x74, 0x00, 0x01, 0x04, 
            0x47, 0x01, 0x90, 0x00, 0x90, 0x00, 0x01, 0x10, 
            0x47, 0x01, 0xA4, 0x00, 0xA4, 0x00, 0x01, 0x1A, 
            0x47, 0x01, 0x40, 0x01, 0x40, 0x01, 0x01, 0x10, 
            0x86, 0x09, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 
            0x00, 0x00, 0x10, 0x00, 0x86, 0x09, 0x00, 0x00, 
            0x00, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0x10, 0x00, 
            0x47, 0x01, 0x4C, 0x00, 0x4C, 0x00, 0x01, 0x02, 
            0x47, 0x01, 0x4E, 0x00, 0x4E, 0x00, 0x01, 0x02, 
            0x47, 0x01, 0x00, 0x02, 0x00, 0x02, 0x01, 0x10, 
            0x79, 0x00
        })
        Method (_CRS, 0, NotSerialized)
        {
            Return (^^C158.C182 ())
        }
    }

    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
    })
    Method (\_PTS, 1, NotSerialized)
    {
        Store (Arg0, \_SB.C022)
        If (LGreater (Arg0, 0x00))
        {
            If (LNot (LEqual (Arg0, 0x05)))
            {
                If (LNot (LEqual (Arg0, 0x04)))
                {
                    Store (0x01, \_SB.C1B7)
                }
            }
        }
    }

    Method (\_WAK, 1, NotSerialized)
    {
        Store (0x00, \_SB.C022)
        Store (0x00, \_SB.C02B)
        If (LEqual (Arg0, 0x03)) {}
        Store (\_SB.C046.C059.C0EA.C11D (), Local0)
        Store (\_SB.C046.C059.C0EA.C129 (), Local2)
        \_SB.C046.C059.C0EA.C11C (0x03, 0xFF)
        Store (\_SB.C046.C059.C0EA.C11D (), Local1)
        Store (\_SB.C046.C059.C0EA.C129 (), Local3)
        XOr (Local0, Local1, Local1)
        XOr (Local2, Local3, Local3)
        \_SB.C046.C059.C0EA.C11E (Local1, 0x81)
        If (Local2)
        {
            Notify (\_SB.C134, 0x80)
        }

        Notify (\_SB.C046.C0AC, 0x00)
        Notify (\_SB.C046.C0B3, 0x00)
        Notify (\_SB.C046.C0B4, 0x00)
        Notify (\_SB.C046.C0B5, 0x00)
        Return (Package (0x02)
        {
            0x00, 
            0x00
        })
    }

    Scope (\_GPE)
    {
        Method (_L03, 0, NotSerialized)
        {
            Notify (\_SB.C046.C0AC, 0x02)
        }

        Method (_L04, 0, NotSerialized)
        {
            Notify (\_SB.C046.C0B3, 0x02)
        }

        Method (_L05, 0, NotSerialized)
        {
            Notify (\_SB.C046.C058.C1AE, 0x02)
            Store ("_L05: AC97 handler", Debug)
        }

        Method (_L08, 0, NotSerialized)
        {
            Notify (\_SB.C046.C058, 0x02)
        }

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

        Method (_L0C, 0, NotSerialized)
        {
            Notify (\_SB.C046.C0B4, 0x02)
        }

        Method (_L0D, 0, NotSerialized)
        {
            Notify (\_SB.C046.C0B5, 0x02)
        }

        Method (_L1D, 0, NotSerialized)
        {
            And (\_SB.C046.C059.C065, 0xF3FFFFFF, Local0)
            Or (Local0, 0x04000000, \_SB.C046.C059.C065)
            Notify (\_SB.C136, 0x80)
            If (LEqual (And (\_SB.C032, 0x03), 0x00))
            {
                If (LAnd (And (\_SB.C046.C059.C086, 0x2000), \_SB.C029))
                {
                    Notify (\_SB.C046.C047.C0D0, 0x80)
                }
            }
        }
    }
}

help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040108181141.5082.DSNOFE>