public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* fixing my DSDT: may I ask for help?
@ 2004-01-16 11:00 Martin Lorenz
  0 siblings, 0 replies; only message in thread
From: Martin Lorenz @ 2004-01-16 11:00 UTC (permalink / raw)
  To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

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

Dear all,

I decided to give it a try and fix my laptops DSDT myself, but I seem
somehow stuck, as I am not sure, if I know, what I'm doing.

iasl gives the followin output:

Intel ACPI Component Architecture
ASL Optimizing Compiler / AML Disassembler version 20030228 [Feb 28 2003]
Copyright (C) 2000 - 2003 Intel Corporation
Supports ACPI Specification Revision 2.0b

dsdt.dsl   579:                 Field (PIUC, DWordAcc, Lock, Preserve)
Error    1047 -                           ^ Access width is greater than
region size

>>> this one I already got rid of by changing 'DWordAcc' to 'WordAcc'
>>> the attached dsdt is the resulting one
>>> it now reads as
|>>                OperationRegion (PIUC, PCI_Config, 0x74, 0x02)
|>>                Field (PIUC, WordAcc, Lock, Preserve)
|>>                {
|>>                    AccessAs (ByteAcc, 0x00),
|>>                    PIRU,   4,
|>>                    Offset (0x01),
|>>                    PIRE,   4
|>>                }


dsdt.dsl  1266:                 Method (WIB1, 0, Serialized)
Warning  2019 -                            ^ Not all control paths
return a value (WIB1)

dsdt.dsl  1279:                 Method (WOB1, 0, Serialized)
Warning  2019 -                            ^ Not all control paths
return a value (WOB1)

dsdt.dsl  2109:             Method (WPD0, 0, NotSerialized)
Warning  2019 -                        ^ Not all control paths return a
value (WPD0)

dsdt.dsl  2152:                     CDA4,   16
Error    1051 -                        ^ Access width of Field Unit
extends beyond region limit

>>> with this one I really don't know what to do.
>>> the code fragment reads as follows:
|>>                Field (CCRD, DWordAcc, NoLock, Preserve)
|>>                {
|>>                    Offset (0x04),
|>>                    CD04,   32,
|>>                    Offset (0x10),
|>>                    CD10,   32,
|>>                    Offset (0x3C),
|>>                    CD3C,   32,
|>>                    Offset (0x44),
|>>                    CD44,   32,
|>>                    Offset (0xA4),
|>>                    CDA4,   16
|>>                }


dsdt.dsl  2614:         Method (_E19, 0, NotSerialized)
Warning  2019 -                    ^ Not all control paths return a
value (_E19)

dsdt.dsl  2701:         Method (_L03, 0, NotSerialized)
Warning  2019 -                    ^ Not all control paths return a
value (_L03)

dsdt.dsl  2776:     Method (_WAK, 1, NotSerialized)
Warning  2026 -                ^ Reserved method must return a value (_WAK)

>>> This one is well documented :-)
>>> I inserted 'Return(Package(0x02){0x00, 0x00})'
>>> as suggested by some sources

ASL Input:  dsdt.dsl - 2848 lines, 90850 bytes, 1482 keywords
Compilation complete. 2 Errors, 6 Warnings, 0 Remarks, 416 Optimizations

so in the meantime i reduced this to 1 error and 5 warnings.

thanks for any additional hint
greets
mlo
-- 
martin lorenz
--
	They that can give up essential liberty
	to obtain a little temporary safety
	deserve neither liberty nor safety.
				-- Benjamin Franklin


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

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20030228
 *
 * Disassembly of /proc/acpi/dsdt, Fri Jan 16 10:55:34 2004
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "PTLTD ", "DSDT    ", 100925445)
{
    Scope (_PR)
    {
        Processor (CPU0, 0x00, 0x00008010, 0x06) {}
    }

    Name (\KBWC, 0x01)
    Name (\LDWC, 0x01)
    Name (\OSYS, 0x00)
    Name (\OEMI, 0x01)
    Name (\OEMS, Buffer (0x13)
    {
        "SHARP Corporation "
    })
    OperationRegion (PORT, SystemIO, 0x80, 0x01)
    Field (PORT, ByteAcc, NoLock, Preserve)
    {
        P80H,   8
    }

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

    OperationRegion (SMI1, SystemMemory, 0x0E6FFE4D, 0x00000100)
    Field (SMI1, AnyAcc, NoLock, Preserve)
    {
        BCMD,   8, 
        DID,    32, 
        INFO,   128
    }

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

    Mutex (PSMX, 0x01)
    Method (PHS, 2, Serialized)
    {
        Acquire (PSMX, 0xFFFF)
        Store (Arg0, BCMD)
        Store (Arg1, INFO)
        Store (0x00, DID)
        Store (0x00, SMIC)
        Store (0x00, BCMD)
        Store (INFW, Local0)
        Release (PSMX)
        Return (Local0)
    }

    Scope (_SB)
    {
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_BBN, 0x00)
            Name (_ADR, 0x00)
            Name (_PRT, Package (0x0A)
            {
                Package (0x04)
                {
                    0x0005FFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNK2, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0006FFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKM, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0009FFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNK1, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNK5, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000BFFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNK6, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000CFFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNK3, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000CFFFF, 
                    0x01, 
                    \_SB.PCI0.ISA.LNK3, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000CFFFF, 
                    0x02, 
                    \_SB.PCI0.ISA.LNK4, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0014FFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKU, 
                    0x00
                }
            })
            OperationRegion (VNBR, PCI_Config, 0x00, 0x0100)
            Field (VNBR, ByteAcc, NoLock, Preserve)
            {
                Offset (0xA8), 
                Z000,   1, 
                Z001,   3, 
                Z002,   1, 
                Offset (0xD8), 
                Z003,   16, 
                Z004,   16, 
                Z005,   16, 
                Z006,   1, 
                Z007,   1, 
                Z008,   6, 
                Z009,   8, 
                Z00A,   16, 
                Z00B,   16, 
                Z00C,   16, 
                Z00D,   1, 
                Z00E,   1, 
                Z00F,   6, 
                Z00G,   8, 
                Z00H,   16, 
                Z00I,   16, 
                Z00J,   16, 
                Z00K,   1, 
                Z00L,   1, 
                Z00M,   6, 
                Z00N,   8, 
                Z00O,   16, 
                Z00P,   16, 
                Z00Q,   16, 
                Z00R,   1, 
                Z00S,   1, 
                Z00T,   6, 
                Z00U,   8
            }

            OperationRegion (REGS, PCI_Config, 0x40, 0x34)
            Field (REGS, DWordAcc, NoLock, Preserve)
            {
                Offset (0x0A), 
                TOM,    16, 
                Offset (0x1A), 
                PAM1,   8, 
                PAM2,   8, 
                PAM3,   8, 
                PAM4,   8, 
                PAM5,   8, 
                PAM6,   8, 
                Offset (0x33), 
                T_EN,   1
            }

            Name (RSRC, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,
                    0x0000,
                    0x00FF,
                    0x0000,
                    0x0100, 0x00)
                IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,
                    0x0000,
                    0x0CF7,
                    0x0000,
                    0x0CF8, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000A0000,
                    0x000BFFFF,
                    0x00000000,
                    0x00020000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C0000,
                    0x000C3FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C4000,
                    0x000C7FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C8000,
                    0x000CBFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000CC000,
                    0x000CFFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D0000,
                    0x000D3FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D4000,
                    0x000D7FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D8000,
                    0x000DBFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000DC000,
                    0x000DFFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E0000,
                    0x000E3FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E4000,
                    0x000E7FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E8000,
                    0x000EBFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000EC000,
                    0x000EFFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000, 0x00)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,
                    0x0D00,
                    0xFFFF,
                    0x0000,
                    0xF300, 0x00)
            })
            Method (_CRS, 0, Serialized)
            {
                CreateDWordField (RSRC, 0x0193, ATMN)
                CreateDWordField (RSRC, 0x0197, ATMX)
                CreateDWordField (RSRC, 0x019F, ATLN)
                Multiply (TOM, 0x00010000, Local0)
                If (T_EN)
                {
                    Add (Local0, 0x000E0000, ATMN)
                }
                Else
                {
                    Store (Local0, ATMN)
                }

                Subtract (0xFFF80000, ATMN, ATLN)
                Subtract (Add (ATMN, ATLN), 0x01, ATMX)
                CreateBitField (RSRC, 0x0250, C0RW)
                CreateDWordField (RSRC, 0x4F, C0MN)
                CreateDWordField (RSRC, 0x53, C0MX)
                CreateDWordField (RSRC, 0x5B, C0LN)
                Store (One, C0RW)
                If (LEqual (And (PAM1, 0x03), 0x01))
                {
                    Store (Zero, C0RW)
                }

                Store (Zero, C0LN)
                If (LNot (And (PAM1, 0x03)))
                {
                    Store (0x4000, C0LN)
                }

                CreateBitField (RSRC, 0x0328, C4RW)
                CreateDWordField (RSRC, 0x6A, C4MN)
                CreateDWordField (RSRC, 0x6E, C4MX)
                CreateDWordField (RSRC, 0x76, C4LN)
                Store (One, C4RW)
                If (LEqual (And (PAM1, 0x30), 0x10))
                {
                    Store (Zero, C4RW)
                }

                Store (Zero, C4LN)
                If (LNot (And (PAM1, 0x30)))
                {
                    Store (0x4000, C4LN)
                }

                CreateBitField (RSRC, 0x0400, C8RW)
                CreateDWordField (RSRC, 0x85, C8MN)
                CreateDWordField (RSRC, 0x89, C8MX)
                CreateDWordField (RSRC, 0x91, C8LN)
                Store (One, C8RW)
                If (LEqual (And (PAM2, 0x03), 0x01))
                {
                    Store (Zero, C8RW)
                }

                Store (Zero, C8LN)
                If (LNot (And (PAM2, 0x03)))
                {
                    Store (0x4000, C8LN)
                }

                CreateBitField (RSRC, 0x04D8, CCRW)
                CreateDWordField (RSRC, 0xA0, CCMN)
                CreateDWordField (RSRC, 0xA4, CCMX)
                CreateDWordField (RSRC, 0xAC, CCLN)
                Store (One, CCRW)
                If (LEqual (And (PAM2, 0x30), 0x10))
                {
                    Store (Zero, CCRW)
                }

                Store (Zero, CCLN)
                If (LNot (And (PAM2, 0x30)))
                {
                    Store (0x4000, CCLN)
                }

                CreateBitField (RSRC, 0x05B0, D0RW)
                CreateDWordField (RSRC, 0xBB, D0MN)
                CreateDWordField (RSRC, 0xBF, D0MX)
                CreateDWordField (RSRC, 0xC7, D0LN)
                Store (One, D0RW)
                If (LEqual (And (PAM3, 0x03), 0x01))
                {
                    Store (Zero, D0RW)
                }

                Store (Zero, D0LN)
                If (LNot (And (PAM3, 0x03)))
                {
                    Store (0x4000, D0LN)
                }

                CreateBitField (RSRC, 0x0688, D4RW)
                CreateDWordField (RSRC, 0xD6, D4MN)
                CreateDWordField (RSRC, 0xDA, D4MX)
                CreateDWordField (RSRC, 0xE2, D4LN)
                Store (One, D4RW)
                If (LEqual (And (PAM3, 0x30), 0x10))
                {
                    Store (Zero, D4RW)
                }

                Store (Zero, D4LN)
                If (LNot (And (PAM3, 0x30)))
                {
                    Store (0x4000, D4LN)
                }

                CreateBitField (RSRC, 0x0760, D8RW)
                CreateDWordField (RSRC, 0xF1, D8MN)
                CreateDWordField (RSRC, 0xF5, D8MX)
                CreateDWordField (RSRC, 0xFD, D8LN)
                Store (One, D8RW)
                If (LEqual (And (PAM4, 0x03), 0x01))
                {
                    Store (Zero, D8RW)
                }

                Store (Zero, D8LN)
                If (LNot (And (PAM4, 0x03)))
                {
                    Store (0x4000, D8LN)
                }

                CreateBitField (RSRC, 0x0838, DCRW)
                CreateDWordField (RSRC, 0x010C, DCMN)
                CreateDWordField (RSRC, 0x0110, DCMX)
                CreateDWordField (RSRC, 0x0118, DCLN)
                Store (One, DCRW)
                If (LEqual (And (PAM4, 0x30), 0x10))
                {
                    Store (Zero, DCRW)
                }

                Store (Zero, DCLN)
                If (LNot (And (PAM4, 0x30)))
                {
                    Store (0x4000, DCLN)
                }

                CreateBitField (RSRC, 0x0910, E0RW)
                CreateDWordField (RSRC, 0x0127, E0MN)
                CreateDWordField (RSRC, 0x012B, E0MX)
                CreateDWordField (RSRC, 0x0133, E0LN)
                Store (One, E0RW)
                If (LEqual (And (PAM5, 0x03), 0x01))
                {
                    Store (Zero, E0RW)
                }

                Store (Zero, E0LN)
                If (LNot (And (PAM5, 0x03)))
                {
                    Store (0x4000, E0LN)
                }

                CreateBitField (RSRC, 0x09E8, E4RW)
                CreateDWordField (RSRC, 0x0142, E4MN)
                CreateDWordField (RSRC, 0x0146, E4MX)
                CreateDWordField (RSRC, 0x014E, E4LN)
                Store (One, E4RW)
                If (LEqual (And (PAM5, 0x30), 0x10))
                {
                    Store (Zero, E4RW)
                }

                Store (Zero, E4LN)
                If (LNot (And (PAM5, 0x30)))
                {
                    Store (0x4000, E4LN)
                }

                CreateBitField (RSRC, 0x0AC0, E8RW)
                CreateDWordField (RSRC, 0x015D, E8MN)
                CreateDWordField (RSRC, 0x0161, E8MX)
                CreateDWordField (RSRC, 0x0169, E8LN)
                Store (One, E8RW)
                If (LEqual (And (PAM6, 0x03), 0x01))
                {
                    Store (Zero, E8RW)
                }

                Store (Zero, E8LN)
                If (LNot (And (PAM6, 0x03)))
                {
                    Store (0x4000, E8LN)
                }

                CreateBitField (RSRC, 0x0B98, ECRW)
                CreateDWordField (RSRC, 0x0178, ECMN)
                CreateDWordField (RSRC, 0x017C, ECMX)
                CreateDWordField (RSRC, 0x0184, ECLN)
                Store (One, ECRW)
                If (LEqual (And (PAM6, 0x30), 0x10))
                {
                    Store (Zero, ECRW)
                }

                Store (Zero, ECLN)
                If (LNot (And (PAM6, 0x30)))
                {
                    Store (0x4000, ECLN)
                }

                Return (RSRC)
            }

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

                If (LNot (LLess (OSYS, 0x07D0))) {}
                Store (\_SB.PCI0.ISA.RE1T (0xED, 0x02), \OEMI)
                If (\OEMI)
                {
                    Store ("HITACHI ", \OEMS)
                }
                Else
                {
                    Store ("SHARP Corporation ", \OEMS)
                }
            }

            Device (ISA)
            {
                Name (_ADR, 0x00070000)
                OperationRegion (PIRX, PCI_Config, 0x48, 0x04)
                Field (PIRX, DWordAcc, Lock, Preserve)
                {
                    AccessAs (ByteAcc, 0x00), 
                    PIR1,   4, 
                    PIR2,   4, 
                    PIR3,   4, 
                    PIR4,   4, 
                    PIR5,   4, 
                    PIR6,   4, 
                    PIRM,   4, 
                    PIRA,   4
                }

                OperationRegion (PIUC, PCI_Config, 0x74, 0x02)
                Field (PIUC, WordAcc, Lock, Preserve)
                {
                    AccessAs (ByteAcc, 0x00), 
                    PIRU,   4, 
                    Offset (0x01), 
                    PIRE,   4
                }

                Name (PIRI, Package (0x10)
                {
                    0x00, 
                    0x09, 
                    0x03, 
                    0x0A, 
                    0x04, 
                    0x05, 
                    0x07, 
                    0x06, 
                    0x01, 
                    0x0B, 
                    0x00, 
                    0x0C, 
                    0x00, 
                    0x0E, 
                    0x00, 
                    0x0F
                })
                Name (PIIR, Package (0x10)
                {
                    0x00, 
                    0x08, 
                    0x00, 
                    0x02, 
                    0x04, 
                    0x05, 
                    0x07, 
                    0x06, 
                    0x00, 
                    0x01, 
                    0x03, 
                    0x09, 
                    0x0B, 
                    0x00, 
                    0x0D, 
                    0x0F
                })
                Device (LNK1)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x01)
                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (RSRC, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RSRC, 0x01, IRQ0)
                        Store (PHS (0xB3, 0x00), IRQ0)
                        Return (RSRC)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, PIR1)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (RTL1, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTL1, 0x01, IRQ0)
                        Store (PIR1, Local0)
                        Store (DerefOf (Index (PIRI, Local0)), Local1)
                        If (Local1)
                        {
                            ShiftLeft (0x01, Local1, IRQ0)
                        }

                        Return (RTL1)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (PIIR, Local0)), PIR1)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (PIR1)
                        {
                            Return (0x0B)
                        }

                        Return (0x09)
                    }
                }

                Device (LNK2)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x02)
                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (RSRC, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RSRC, 0x01, IRQ0)
                        Store (PHS (0xB3, 0x01), IRQ0)
                        Return (RSRC)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, PIR2)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (RTL2, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTL2, 0x01, IRQ0)
                        Store (PIR2, Local0)
                        Store (DerefOf (Index (PIRI, Local0)), Local1)
                        If (Local1)
                        {
                            ShiftLeft (0x01, Local1, IRQ0)
                        }

                        Return (RTL2)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (PIIR, Local0)), PIR2)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (PIR2)
                        {
                            Return (0x0B)
                        }

                        Return (0x09)
                    }
                }

                Device (LNK3)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x03)
                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (RSRC, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RSRC, 0x01, IRQ0)
                        Store (PHS (0xB3, 0x02), IRQ0)
                        Return (RSRC)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, PIR3)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (RTL3, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTL3, 0x01, IRQ0)
                        Store (PIR3, Local0)
                        Store (DerefOf (Index (PIRI, Local0)), Local1)
                        If (Local1)
                        {
                            ShiftLeft (0x01, Local1, IRQ0)
                        }

                        Return (RTL3)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (PIIR, Local0)), PIR3)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (PIR3)
                        {
                            Return (0x0B)
                        }

                        Return (0x09)
                    }
                }

                Device (LNK4)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x04)
                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (RSRC, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RSRC, 0x01, IRQ0)
                        Store (PHS (0xB3, 0x03), IRQ0)
                        Return (RSRC)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, PIR4)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (RTL4, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTL4, 0x01, IRQ0)
                        Store (PIR4, Local0)
                        Store (DerefOf (Index (PIRI, Local0)), Local1)
                        If (Local1)
                        {
                            ShiftLeft (0x01, Local1, IRQ0)
                        }

                        Return (RTL4)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (PIIR, Local0)), PIR4)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (PIR4)
                        {
                            Return (0x0B)
                        }

                        Return (0x09)
                    }
                }

                Device (LNK5)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x05)
                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (RSRC, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RSRC, 0x01, IRQ0)
                        Store (PHS (0xB3, 0x04), IRQ0)
                        Return (RSRC)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, PIR5)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (RTL5, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTL5, 0x01, IRQ0)
                        Store (PIR5, Local0)
                        Store (DerefOf (Index (PIRI, Local0)), Local1)
                        If (Local1)
                        {
                            ShiftLeft (0x01, Local1, IRQ0)
                        }

                        Return (RTL5)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (PIIR, Local0)), PIR5)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (PIR5)
                        {
                            Return (0x0B)
                        }

                        Return (0x09)
                    }
                }

                Device (LNK6)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x06)
                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (RSRC, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RSRC, 0x01, IRQ0)
                        Store (PHS (0xB3, 0x05), IRQ0)
                        Return (RSRC)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, PIR6)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (RTL6, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTL6, 0x01, IRQ0)
                        Store (PIR6, Local0)
                        Store (DerefOf (Index (PIRI, Local0)), Local1)
                        If (Local1)
                        {
                            ShiftLeft (0x01, Local1, IRQ0)
                        }

                        Return (RTL6)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (PIIR, Local0)), PIR6)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (PIR6)
                        {
                            Return (0x0B)
                        }

                        Return (0x09)
                    }
                }

                Device (LNKM)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x07)
                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (RSRC, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RSRC, 0x01, IRQ0)
                        Store (PHS (0xB3, 0x06), IRQ0)
                        Return (RSRC)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, PIRM)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (RTLM, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTLM, 0x01, IRQ0)
                        Store (PIRM, Local0)
                        Store (DerefOf (Index (PIRI, Local0)), Local1)
                        If (Local1)
                        {
                            ShiftLeft (0x01, Local1, IRQ0)
                        }

                        Return (RTLM)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (PIIR, Local0)), PIRM)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (PIRM)
                        {
                            Return (0x0B)
                        }

                        Return (0x09)
                    }
                }

                Device (LNKA)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x08)
                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (RSRC, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RSRC, 0x01, IRQ0)
                        Store (PHS (0xB3, 0x07), IRQ0)
                        Return (RSRC)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, PIRA)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (RTLA, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTLA, 0x01, IRQ0)
                        Store (PIRA, Local0)
                        Store (DerefOf (Index (PIRI, Local0)), Local1)
                        If (Local1)
                        {
                            ShiftLeft (0x01, Local1, IRQ0)
                        }

                        Return (RTLA)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (PIIR, Local0)), PIRA)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (PIRA)
                        {
                            Return (0x0B)
                        }

                        Return (0x09)
                    }
                }

                Device (LNKU)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x09)
                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (RSRC, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RSRC, 0x01, IRQ0)
                        Store (PHS (0xB3, 0x08), IRQ0)
                        Return (RSRC)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, PIRU)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (RTLU, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateWordField (RTLU, 0x01, IRQ0)
                        Store (PIRU, Local0)
                        Store (DerefOf (Index (PIRI, Local0)), Local1)
                        If (Local1)
                        {
                            ShiftLeft (0x01, Local1, IRQ0)
                        }

                        Return (RTLU)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (PIIR, Local0)), PIRU)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (PIRU)
                        {
                            Return (0x0B)
                        }

                        Return (0x09)
                    }
                }

                Method (QH4A, 0, Serialized)
                {
                    PHS (0xB0, 0x00)
                    Notify (\_SB.BAT0, 0x80)
                    Notify (\_SB.ADP1, 0x80)
                }

                Method (QH4F, 0, Serialized)
                {
                    Notify (\_SB.LID, 0x80)
                }

                Method (QH59, 0, NotSerialized)
                {
                    Notify (\_TZ.THRM, 0x80)
                }

                Method (QH5B, 0, NotSerialized)
                {
                    Store (\_SB.PCI0.ISA.RE1B (0xE8), Local0)
                    If (And (Local0, 0x08))
                    {
                        And (Local0, 0x07, Local1)
                        If (LGreater (\_SB.PCI0.Z001, Local1))
                        {
                            Store (Local1, \_SB.PCI0.Z001)
                            Store (0x01, \_SB.PCI0.Z002)
                            WE1B (0xE9, Local0)
                        }
                        Else
                        {
                            WE1B (0xE9, Local0)
                            Store (Local1, \_SB.PCI0.Z001)
                            Store (0x01, \_SB.PCI0.Z002)
                        }
                    }
                    Else
                    {
                        WE1B (0xE9, Local0)
                        Store (0x00, \_SB.PCI0.Z002)
                    }
                }

                Method (QH81, 0, NotSerialized)
                {
                    Notify (\_SB.BAT0, 0x81)
                }

                Method (QH82, 0, Serialized)
                {
                    Notify (\_SB.BAT0, 0x80)
                    Notify (\_SB.ADP1, 0x80)
                }

                Method (QH83, 0, NotSerialized)
                {
                    Notify (\_SB.BAT0, 0x80)
                }

                Method (QH84, 0, NotSerialized)
                {
                    Notify (\_SB.BAT0, 0x81)
                }

                Method (QH0A, 0, Serialized)
                {
                    Acquire (ECMX, 0xFFFF)
                    Store (RE1B (0xED), Local0)
                    And (Local0, 0x08, Local1)
                    If (Local1)
                    {
                        And (Local0, 0xF7, Local1)
                    }
                    Else
                    {
                        Or (Local0, 0x08, Local1)
                    }

                    WE1B (0xED, Local1)
                    PHS (0xA2, Local1)
                    Release (ECMX)
                }

                Method (QH0E, 0, NotSerialized)
                {
                    PHS (0xA0, 0x00)
                }

                Mutex (ECMX, 0x00)
                Method (QH0F, 0, Serialized)
                {
                    Acquire (ECMX, 0xFFFF)
                    Store (RE1B (0xF1), Local0)
                    And (Local0, 0x0F, Local1)
                    If (Local1)
                    {
                        Or (And (Local0, 0xF0), Decrement (Local1), Local1)
                        WE1B (0xF1, Local1)
                    }

                    PHS (0xB2, Local1)
                    Release (ECMX)
                }

                Method (QH10, 0, Serialized)
                {
                    Acquire (ECMX, 0xFFFF)
                    Store (RE1B (0xF1), Local0)
                    And (Local0, 0x0F, Local1)
                    If (LGreater (Local1, 0x06))
                    {
                        Store (0x06, Local1)
                    }

                    Or (And (Local0, 0xF0), Increment (Local1), Local1)
                    WE1B (0xF1, Local1)
                    PHS (0xB2, Local1)
                    Release (ECMX)
                }

                Method (QH14, 0, NotSerialized)
                {
                    PHS (0xA1, 0x00)
                }

                OperationRegion (ECM1, SystemIO, 0x66, 0x01)
                Field (ECM1, ByteAcc, NoLock, Preserve)
                {
                    ECC1,   8
                }

                OperationRegion (EDT1, SystemIO, 0x62, 0x01)
                Field (EDT1, ByteAcc, NoLock, Preserve)
                {
                    ECD1,   8
                }

                Method (WIB1, 0, Serialized)
                {
                    While (0x01)
                    {
                        If (LNot (And (ECC1, 0x02)))
                        {
                            Return (0x00)
                        }

                        Stall (0x0A)
                    }
                }

                Method (WOB1, 0, Serialized)
                {
                    While (0x01)
                    {
                        If (And (ECC1, 0x01))
                        {
                            Return (0x00)
                        }

                        Stall (0x0A)
                    }
                }

                Method (RE1B, 1, Serialized)
                {
                    WIB1 ()
                    Store (0x80, ECC1)
                    WIB1 ()
                    Store (Arg0, ECD1)
                    WOB1 ()
                    Return (ECD1)
                }

                Method (WE1B, 2, Serialized)
                {
                    WIB1 ()
                    Store (0x81, ECC1)
                    WIB1 ()
                    Store (Arg0, ECD1)
                    WIB1 ()
                    Store (Arg1, ECD1)
                }

                Method (RE1W, 1, Serialized)
                {
                    Store (RE1B (Arg0), Local0)
                    Store (RE1B (Add (Arg0, 0x01)), Local1)
                    Return (Or (ShiftLeft (Local1, 0x08), Local0))
                }

                Method (WE1W, 2, Serialized)
                {
                    WE1B (Arg0, And (Arg1, 0xFF))
                    WE1B (Add (Arg0, 0x01), And (ShiftRight (Arg1, 0x08), 0xFF))
                }

                Method (RE1T, 2, Serialized)
                {
                    Store (ShiftLeft (0x01, Arg1), Local0)
                    If (And (RE1B (Arg0), Local0))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (WE1T, 3, Serialized)
                {
                    Store (ShiftLeft (0x01, Arg1), Local0)
                    If (Arg2)
                    {
                        WE1B (Arg0, Or (RE1B (Arg0), Local0))
                    }
                    Else
                    {
                        WE1B (Arg0, And (RE1B (Arg0), Not (Local0)))
                    }
                }

                Method (QYEC, 0, Serialized)
                {
                    If (LNot (And (ECC1, 0x20)))
                    {
                        Return (0x00)
                    }

                    WIB1 ()
                    Store (0x84, ECC1)
                    WOB1 ()
                    Return (ECD1)
                }

                Method (QYWK, 0, Serialized)
                {
                    If (LNot (And (ECC2, 0x20)))
                    {
                        Return (0x00)
                    }

                    WE1B (0x04, 0xC9)
                    While (RE1B (0x04))
                    {
                        Stall (0x0A)
                    }

                    Return (RE1B (0x05))
                }

                OperationRegion (ECM2, SystemIO, 0xD004, 0x01)
                Field (ECM2, ByteAcc, NoLock, Preserve)
                {
                    ECC2,   8
                }

                OperationRegion (EDT2, SystemIO, 0xD000, 0x01)
                Field (EDT2, ByteAcc, NoLock, Preserve)
                {
                    ECD2,   8
                }

                Device (MBRD)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0080, 0x0080, 0x01, 0x01)
                        IO (Decode16, 0x0092, 0x0092, 0x01, 0x01)
                        IO (Decode16, 0x00B1, 0x00B1, 0x01, 0x01)
                        IO (Decode16, 0x040B, 0x040B, 0x01, 0x01)
                        IO (Decode16, 0x0480, 0x0480, 0x01, 0x10)
                        IO (Decode16, 0x04D6, 0x04D6, 0x01, 0x01)
                        IO (Decode16, 0x04D0, 0x04D0, 0x01, 0x02)
                        IO (Decode16, 0xD000, 0xD000, 0x01, 0x01)
                        IO (Decode16, 0xD004, 0xD004, 0x01, 0x01)
                        IO (Decode16, 0x8000, 0x8000, 0x01, 0x40)
                        IO (Decode16, 0x8040, 0x8040, 0x01, 0x20)
                        IO (Decode16, 0x8084, 0x8084, 0x01, 0x04)
                        IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x02)
                        Memory32Fixed (ReadOnly, 0xFFF80000, 0x00080000)
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }
                }

                Device (PS2K)
                {
                    Method (_HID, 0, NotSerialized)
                    {
                        And (ShiftRight (RE1B (0xEA), 0x02), 0x03, Local0)
                        If (LEqual (Local0, 0x00))
                        {
                            Return (0x2003D041)
                        }

                        If (LEqual (Local0, 0x01))
                        {
                            Return (0x0303D041)
                        }

                        Return (0x0303D041)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
                        IRQ (Edge, ActiveHigh, Exclusive) {1}
                    })
                    Name (_PRW, Package (0x02)
                    {
                        0x03, 
                        0x03
                    })
                    Method (_PSW, 1, NotSerialized)
                    {
                        If (LNot (\KBWC))
                        {
                            \_SB.PCI0.ISA.WE1T (0xF4, 0x07, Arg0)
                        }
                    }
                }

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

                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x10)
                        IO (Decode16, 0x0081, 0x0081, 0x01, 0x0F)
                        IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
                        DMA (Compatibility, NotBusMaster, Transfer16) {4}
                    })
                }

                Device (MATH)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x00F0, 0x00F0, 0x01, 0x0F)
                        IRQ (Edge, ActiveHigh, Exclusive) {13}
                    })
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0020, 0x0020, 0x01, 0x02)
                        IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02)
                        IRQ (Edge, ActiveHigh, Exclusive) {2}
                    })
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x01, 0x02)
                        IRQ (Edge, ActiveHigh, Exclusive) {8}
                    })
                }

                Device (TIME)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
                        IRQ (Edge, ActiveHigh, Exclusive) {0}
                    })
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0061, 0x0061, 0x01, 0x01)
                    })
                }
            }

            Device (IDE)
            {
                Name (_ADR, 0x00100000)
                Name (UDMT, Package (0x08)
                {
                    0x1E, 
                    0x2D, 
                    0x3C, 
                    0x5A, 
                    0x78, 
                    0x78, 
                    0x78, 
                    0x14
                })
                Name (PIOT, Package (0x05)
                {
                    0x78, 
                    0xB4, 
                    0xF0, 
                    0x017F, 
                    0x0258
                })
                Name (PIOC, Package (0x05)
                {
                    0x04, 
                    0x06, 
                    0x08, 
                    0x0D, 
                    0x10
                })
                Name (CBCT, Package (0x05)
                {
                    0x31, 
                    0x33, 
                    0x01, 
                    0x03, 
                    0x0A
                })
                Name (DACT, Package (0x05)
                {
                    0x03, 
                    0x03, 
                    0x04, 
                    0x05, 
                    0x08
                })
                Name (DRCT, Package (0x05)
                {
                    0x01, 
                    0x03, 
                    0x04, 
                    0x08, 
                    0x08
                })
                Name (PXLM, Package (0x05)
                {
                    0x02, 
                    0x01, 
                    0x00, 
                    0x00, 
                    0x00
                })
                OperationRegion (PCI, PCI_Config, 0x00, 0x60)
                Field (PCI, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x09), 
                        ,   4, 
                    SCHE,   1, 
                    PCHE,   1, 
                    Offset (0x0A), 
                    Offset (0x0D), 
                    IDLT,   8, 
                    Offset (0x4B), 
                    U66E,   1, 
                    Offset (0x4C), 
                    Offset (0x53), 
                    CDFI,   1, 
                    CDUD,   1, 
                    Offset (0x54), 
                    PFTH,   8, 
                    SFTH,   8, 
                    PUDC,   8, 
                    SUDC,   8, 
                    PAST,   8, 
                    PCBT,   8, 
                    PTM0,   8, 
                    PTM1,   8, 
                    SAST,   8, 
                    SCBT,   8, 
                    STM0,   8, 
                    STM1,   8
                }

                Method (GTM, 3, NotSerialized)
                {
                    Store (Buffer (0x14) {}, Local0)
                    CreateDWordField (Local0, 0x00, PIO0)
                    CreateDWordField (Local0, 0x04, DMA0)
                    CreateDWordField (Local0, 0x08, PIO1)
                    CreateDWordField (Local0, 0x0C, DMA1)
                    CreateDWordField (Local0, 0x10, FLAG)
                    Store (Zero, PIO0)
                    Store (Zero, DMA0)
                    Store (Zero, PIO1)
                    Store (Zero, DMA1)
                    Store (Zero, FLAG)
                    If (Arg0)
                    {
                        ShiftRight (And (Arg0, 0x70), 0x04, Local1)
                        If (LEqual (Local1, Zero))
                        {
                            Store (0x08, Local1)
                        }

                        Add (And (Arg0, 0x0F, Local2), Local1, Local1)
                        Store (Match (^PIOC, MLE, Local1, MTR, 0x00, 0x00), Local2)
                        Store (DerefOf (Index (^PIOT, Local2)), PIO0)
                        If (LNot (LGreater (PIO0, 0xF0)))
                        {
                            Or (FLAG, 0x02, FLAG)
                        }
                    }

                    If (And (Arg2, 0x08))
                    {
                        Store (DerefOf (Index (^UDMT, And (Arg2, 0x07))), DMA0)
                        Or (FLAG, 0x01, FLAG)
                    }
                    Else
                    {
                        Store (PIO0, DMA0)
                    }

                    If (Arg1)
                    {
                        ShiftRight (And (Arg1, 0x70), 0x04, Local1)
                        If (LEqual (Local1, Zero))
                        {
                            Store (0x08, Local1)
                        }

                        Add (And (Arg1, 0x0F, Local2), Local1, Local1)
                        Store (Match (^PIOC, MLE, Local1, MTR, 0x00, 0x00), Local2)
                        Store (DerefOf (Index (^PIOT, Local2)), PIO1)
                        If (LNot (LGreater (PIO1, 0xF0)))
                        {
                            Or (FLAG, 0x08, FLAG)
                        }
                    }

                    If (And (Arg2, 0x80))
                    {
                        Store (DerefOf (Index (^UDMT, ShiftRight (And (Arg2, 0x70), 0x04))), DMA1)
                        Or (FLAG, 0x04, FLAG)
                    }
                    Else
                    {
                        Store (PIO1, DMA1)
                    }

                    Or (FLAG, 0x10, FLAG)
                    Return (Local0)
                }

                Method (STM, 3, NotSerialized)
                {
                    Store (Buffer (0x06)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        }, Local7)
                    CreateByteField (Local7, 0x00, TM0)
                    CreateByteField (Local7, 0x01, TM1)
                    CreateByteField (Local7, 0x02, UDC)
                    CreateByteField (Local7, 0x03, AST)
                    CreateByteField (Local7, 0x04, CBT)
                    CreateByteField (Local7, 0x05, U66)
                    CreateDWordField (Arg0, 0x00, PIO0)
                    CreateDWordField (Arg0, 0x04, DMA0)
                    CreateDWordField (Arg0, 0x08, PIO1)
                    CreateDWordField (Arg0, 0x0C, DMA1)
                    CreateDWordField (Arg0, 0x10, FLAG)
                    Store (FLAG, Local6)
                    Store (Ones, Local4)
                    If (LOr (DMA0, PIO0))
                    {
                        If (LAnd (DMA0, LNot (PIO0)))
                        {
                            If (And (Local6, 0x01))
                            {
                                If (LAnd (LLess (DMA0, 0x1E), LNot (LLess (DMA0, 0x0F))))
                                {
                                    Store (0x07, Local0)
                                }
                                Else
                                {
                                    Store (Match (^UDMT, MGE, DMA0, MTR, 0x00, 0x00), Local0)
                                }

                                Or (Local0, 0x08, UDC)
                                If (LLess (DMA0, 0x3C))
                                {
                                    Store (One, U66)
                                }
                            }

                            Store (Match (^PIOT, MGE, DMA0, MTR, 0x00, 0x00), Local0)
                            Store (DerefOf (Index (^DACT, Local0)), Local2)
                            Store (DerefOf (Index (^DRCT, Local0)), Local3)
                            Add (Local3, ShiftLeft (Local2, 0x04), TM0)
                            Store (Local0, Local4)
                        }

                        If (LAnd (LNot (DMA0), PIO0))
                        {
                            Store (Match (^PIOT, MGE, PIO0, MTR, 0x00, 0x00), Local0)
                            Store (DerefOf (Index (^DACT, Local0)), Local2)
                            Store (DerefOf (Index (^DRCT, Local0)), Local3)
                            Add (Local3, ShiftLeft (Local2, 0x04), TM0)
                            Store (Local0, Local4)
                        }

                        If (LAnd (DMA0, PIO0))
                        {
                            If (And (Local6, 0x01))
                            {
                                If (LAnd (LLess (DMA0, 0x1E), LNot (LLess (DMA0, 0x0F))))
                                {
                                    Store (0x07, Local0)
                                }
                                Else
                                {
                                    Store (Match (^UDMT, MGE, DMA0, MTR, 0x00, 0x00), Local0)
                                }

                                Or (Local0, 0x08, UDC)
                                If (LLess (DMA0, 0x3C))
                                {
                                    Store (One, U66)
                                }
                            }

                            If (LNot (LLess (PIO0, DMA0)))
                            {
                                Store (Match (^PIOT, MGE, PIO0, MTR, 0x00, 0x00), Local0)
                                Store (Local0, Local4)
                            }
                            Else
                            {
                                Store (Match (^PIOT, MGE, DMA0, MTR, 0x00, 0x00), Local0)
                                Store (Local0, Local4)
                            }

                            Store (DerefOf (Index (^DACT, Local0)), Local2)
                            Store (DerefOf (Index (^DRCT, Local0)), Local3)
                            Add (Local3, ShiftLeft (Local2, 0x04), TM0)
                        }
                    }

                    Store (Ones, Local5)
                    If (LOr (DMA1, PIO1))
                    {
                        If (LAnd (DMA1, LNot (PIO1)))
                        {
                            If (And (Local6, 0x04))
                            {
                                If (LAnd (LLess (DMA1, 0x1E), LNot (LLess (DMA1, 0x0F))))
                                {
                                    Store (0x07, Local0)
                                }
                                Else
                                {
                                    Store (Match (^UDMT, MGE, DMA1, MTR, 0x00, 0x00), Local0)
                                }

                                Or (ShiftLeft (Or (Local0, 0x08), 0x04), UDC, UDC)
                                If (LLess (DMA1, 0x3C))
                                {
                                    Store (One, U66)
                                }
                            }

                            Store (Match (^PIOT, MGE, DMA1, MTR, 0x00, 0x00), Local0)
                            Store (DerefOf (Index (^DACT, Local0)), Local2)
                            Store (DerefOf (Index (^DRCT, Local0)), Local3)
                            Add (Local3, ShiftLeft (Local2, 0x04), TM1)
                            Store (Local0, Local5)
                        }

                        If (LAnd (LNot (DMA1), PIO1))
                        {
                            Store (Match (^PIOT, MGE, PIO1, MTR, 0x00, 0x00), Local0)
                            Store (DerefOf (Index (^DACT, Local0)), Local2)
                            Store (DerefOf (Index (^DRCT, Local0)), Local3)
                            Add (Local3, ShiftLeft (Local2, 0x04), TM1)
                            Store (Local0, Local5)
                        }

                        If (LAnd (DMA1, PIO1))
                        {
                            If (And (Local6, 0x04))
                            {
                                If (LAnd (LLess (DMA1, 0x1E), LNot (LLess (DMA1, 0x0F))))
                                {
                                    Store (0x07, Local0)
                                }
                                Else
                                {
                                    Store (Match (^UDMT, MGE, DMA1, MTR, 0x00, 0x00), Local0)
                                }

                                Or (ShiftLeft (Or (Local0, 0x08), 0x04), UDC, UDC)
                                If (LLess (DMA1, 0x3C))
                                {
                                    Store (One, U66)
                                }
                            }

                            If (LNot (LLess (PIO1, DMA1)))
                            {
                                Store (Match (^PIOT, MGE, PIO1, MTR, 0x00, 0x00), Local0)
                                Store (Local0, Local5)
                            }
                            Else
                            {
                                Store (Match (^PIOT, MGE, DMA1, MTR, 0x00, 0x00), Local0)
                                Store (Local0, Local5)
                            }

                            Store (DerefOf (Index (^DACT, Local0)), Local2)
                            Store (DerefOf (Index (^DRCT, Local0)), Local3)
                            Add (Local3, ShiftLeft (Local2, 0x04), TM1)
                        }
                    }

                    If (LEqual (Local4, Ones))
                    {
                        If (LEqual (Local5, Ones))
                        {
                            Store (Zero, CBT)
                        }
                        Else
                        {
                            Store (DerefOf (Index (^CBCT, Local5)), CBT)
                        }
                    }
                    Else
                    {
                        If (LEqual (Local5, Ones))
                        {
                            Store (DerefOf (Index (^CBCT, Local4)), CBT)
                        }
                        Else
                        {
                            If (LNot (LLess (Local4, Local5)))
                            {
                                Store (DerefOf (Index (^CBCT, Local4)), CBT)
                            }
                            Else
                            {
                                Store (DerefOf (Index (^CBCT, Local5)), CBT)
                            }
                        }
                    }

                    Store (0x02, AST)
                    Return (Local7)
                }

                Method (GTF0, 3, NotSerialized)
                {
                    Store (Buffer (0x07)
                        {
                            0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                        }, Local7)
                    CreateByteField (Local7, 0x01, MODE)
                    If (And (Arg1, 0x08))
                    {
                        And (Arg1, 0x07, Local0)
                        If (LEqual (Local0, 0x07))
                        {
                            Store (0x05, MODE)
                        }
                        Else
                        {
                            Subtract (0x04, Local0, MODE)
                        }

                        Or (MODE, 0x40, MODE)
                    }
                    Else
                    {
                        And (Arg2, 0x0F, Local0)
                        Store (Match (^DRCT, MEQ, Local0, MTR, 0x00, 0x00), Local1)
                        Store (DerefOf (Index (^PXLM, Local1)), MODE)
                        Or (MODE, 0x20, MODE)
                    }

                    Concatenate (Local7, Local7, Local6)
                    And (Arg2, 0x0F, Local0)
                    Store (Match (^DRCT, MEQ, Local0, MTR, 0x00, 0x00), Local1)
                    Subtract (0x04, Local1, MODE)
                    Or (MODE, 0x08, MODE)
                    Concatenate (Local6, Local7, Local5)
                    Return (Local5)
                }

                Method (GTF1, 3, NotSerialized)
                {
                    Store (Buffer (0x07)
                        {
                            0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                        }, Local7)
                    CreateByteField (Local7, 0x01, MODE)
                    If (And (Arg1, 0x80))
                    {
                        ShiftRight (And (Arg1, 0x70), 0x04, Local0)
                        If (LEqual (Local0, 0x07))
                        {
                            Store (0x05, MODE)
                        }
                        Else
                        {
                            Subtract (0x04, Local0, MODE)
                        }

                        Or (MODE, 0x40, MODE)
                    }
                    Else
                    {
                        And (Arg2, 0x0F, Local0)
                        Store (Match (^DRCT, MEQ, Local0, MTR, 0x00, 0x00), Local1)
                        Store (DerefOf (Index (^PXLM, Local1)), MODE)
                        Or (MODE, 0x20, MODE)
                    }

                    Concatenate (Local7, Local7, Local6)
                    And (Arg2, 0x0F, Local0)
                    Store (Match (^DRCT, MEQ, Local0, MTR, 0x00, 0x00), Local1)
                    Subtract (0x04, Local1, MODE)
                    Or (MODE, 0x08, MODE)
                    Concatenate (Local6, Local7, Local5)
                    Return (Local5)
                }

                Device (PRIM)
                {
                    Name (_ADR, 0x00)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store ("GTM - Primary Controller", Debug)
                        Store (^^GTM (^^PTM0, ^^PTM1, ^^PUDC), Local0)
                        Return (Local0)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store ("STM - Primary Controller", Debug)
                        Store (^^STM (Arg0, Arg1, Arg2), Local0)
                        CreateByteField (Local0, 0x00, TM0)
                        CreateByteField (Local0, 0x01, TM1)
                        CreateByteField (Local0, 0x02, UDC)
                        CreateByteField (Local0, 0x03, AST)
                        CreateByteField (Local0, 0x04, CBT)
                        CreateByteField (Local0, 0x05, U66)
                        Store (TM0, ^^PTM0)
                        Store (TM1, ^^PTM1)
                        Store (UDC, ^^PUDC)
                        Store (AST, ^^PAST)
                        Store (CBT, ^^PCBT)
                        If (U66)
                        {
                            Store (U66, ^^U66E)
                        }
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Name (_PSC, 0x00)
                        Method (_PS0, 0, NotSerialized)
                        {
                            If (LEqual (_PSC, 0x03))
                            {
                                PHS (0x94, 0x00)
                                FZLK ()
                            }

                            Store (0x00, _PSC)
                        }

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

                        Method (_GTF, 0, NotSerialized)
                        {
                            Store ("GTF - Primary Master", Debug)
                            Store (^^^GTF0 (^^^PCHE, ^^^PUDC, ^^^PTM0), Local0)
                            Return (Local0)
                        }
                    }

                    Device (SLAV)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store ("GTF - Primary Slave", Debug)
                            Store (^^^GTF1 (^^^PCHE, ^^^PUDC, ^^^PTM1), Local0)
                            Return (Local0)
                        }
                    }
                }

                Device (SECN)
                {
                    Name (_ADR, 0x01)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store ("GTM - Secondary Controller", Debug)
                        Store (^^GTM (^^STM0, ^^STM1, ^^SUDC), Local0)
                        Return (Local0)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store ("STM - Secondary Controller", Debug)
                        Store (^^STM (Arg0, Arg1, Arg2), Local0)
                        CreateByteField (Local0, 0x00, TM0)
                        CreateByteField (Local0, 0x01, TM1)
                        CreateByteField (Local0, 0x02, UDC)
                        CreateByteField (Local0, 0x03, AST)
                        CreateByteField (Local0, 0x04, CBT)
                        CreateByteField (Local0, 0x05, U66)
                        Store (TM0, ^^STM0)
                        Store (TM1, ^^STM1)
                        Store (UDC, ^^SUDC)
                        Store (AST, ^^SAST)
                        Store (CBT, ^^SCBT)
                        If (U66)
                        {
                            Store (U66, ^^U66E)
                        }
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store ("GTF - Secondary Master", Debug)
                            Store (^^^GTF0 (^^^SCHE, ^^^SUDC, ^^^STM0), Local0)
                            Return (Local0)
                        }
                    }

                    Device (SLAV)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store ("GTF - Secondary Slave", Debug)
                            Store (^^^GTF1 (^^^SCHE, ^^^SUDC, ^^^STM1), Local0)
                            Return (Local0)
                        }
                    }
                }
            }

            OperationRegion (PRIP, SystemIO, 0x01F7, 0x01)
            Field (PRIP, ByteAcc, NoLock, Preserve)
            {
                PPD0,   8
            }

            Method (FZLK, 0, NotSerialized)
            {
                WPD0 ()
                PHS (0xB8, 0x00)
                WPD0 ()
            }

            Method (WPD0, 0, NotSerialized)
            {
                While (0x01)
                {
                    If (LNot (And (PPD0, 0x80)))
                    {
                        Return (0x00)
                    }

                    Sleep (0x0A)
                }
            }

            Device (VGA0)
            {
                Name (_ADR, 0x00090000)
            }

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

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

            Device (CRD0)
            {
                Name (_ADR, 0x00050000)
                OperationRegion (CCRD, PCI_Config, 0x00, 0xA6)
                Field (CCRD, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x04), 
                    CD04,   32, 
                    Offset (0x10), 
                    CD10,   32, 
                    Offset (0x3C), 
                    CD3C,   32, 
                    Offset (0x44), 
                    CD44,   32, 
                    Offset (0xA4), 
                    CDA4,   16
                }

                Method (_INI, 0, NotSerialized)
                {
                    Or (CD3C, 0xFF, CD3C)
                    And (CD44, 0xFFFF0000, CD44)
                }
            }

            Device (LAN0)
            {
                Name (_ADR, 0x000A0000)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x03
                })
                OperationRegion (LANP, PCI_Config, 0x00, 0x80)
                Field (LANP, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x54), 
                    PMDX,   2, 
                    Offset (0x55), 
                    PMEE,   1, 
                        ,   6, 
                    PMES,   1
                }
            }

            Device (PM)
            {
                Name (_ADR, 0x00110000)
                OperationRegion (PMUR, PCI_Config, 0x00, 0xFF)
                Field (PMUR, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x7D), 
                    GPC0,   1, 
                    GPC1,   1, 
                    GPC2,   1, 
                    GPC3,   1, 
                    GPC4,   1, 
                    GPC5,   1, 
                    GPC6,   1, 
                    GPC7,   1, 
                    GPD0,   1, 
                    GPD1,   1, 
                    GPD2,   1, 
                    GPD3,   1, 
                    GPD4,   1, 
                    GPD5,   1, 
                    GPD6,   1, 
                    GPD7,   1, 
                    GPS0,   1, 
                    GPS1,   1, 
                    GPS2,   1, 
                    GPS3,   1, 
                    GPS4,   1, 
                    GPS5,   1, 
                    GPS6,   1, 
                    GPS7,   1, 
                    Offset (0x84), 
                    GP08,   8, 
                    GP09,   8, 
                    GP10,   8, 
                    GP11,   8, 
                    GP12,   8, 
                    GP13,   8, 
                    GP14,   8, 
                    GP15,   8, 
                    Offset (0x90), 
                    GP16,   8, 
                    GP17,   8, 
                    GP18,   8, 
                    GP19,   8
                }
            }

            Device (OHC1)
            {
                Name (_ADR, 0x000C0000)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x03
                })
            }

            Device (OHC2)
            {
                Name (_ADR, 0x000C0001)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x03
                })
            }

            Device (EHCI)
            {
                Name (_ADR, 0x000C0002)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x03
                })
            }
        }

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

        Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Method (_LID, 0, NotSerialized)
            {
                If (\_SB.PCI0.ISA.RE1T (0xF3, 0x01))
                {
                    Return (0x00)
                }

                Return (0x01)
            }
        }

        Device (BAT0)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_UID, 0x00)
            Name (_PCL, Package (0x01)
            {
                \_SB
            })
            Name (BINF, Package (0x0D)
            {
                0x01, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x01, 
                0xFFFFFFFF, 
                0x00, 
                0x00, 
                0x01, 
                0x01, 
                "?", 
                "?", 
                "LION", 
                "? "
            })
            Name (INF2, Package (0x0D)
            {
                0x01, 
                0x0708, 
                0x0708, 
                0x01, 
                0x2B5C, 
                0xB4, 
                0x5A, 
                0x01, 
                0x01, 
                "UNKNOWN", 
                "20020000-65535 ", 
                "LION", 
                "SHARP Corporation"
            })
            Name (BSTR, Buffer (0x10)
            {
                "????????-????? "
            })
            Name (LASW, 0x01F4)
            Name (DCAP, 0x00)
            Name (FCAP, 0x00)
            Name (DVOL, 0x00)
            Name (BVOL, 0x00)
            Name (RCAP, 0x00)
            Name (ACUR, 0x00)
            Name (BSTA, 0x00)
            Name (BTYP, 0x00)
            Method (PBUF, 3, Serialized)
            {
                CreateByteField (Arg0, Arg1, DGIT)
                Store (Arg2, DGIT)
            }

            Method (TSTR, 4, Serialized)
            {
                While (Arg2)
                {
                    Decrement (Arg2)
                    Divide (Arg1, 0x0A, Local0, Arg1)
                    PBUF (Arg0, Add (Arg2, Arg3), Add (Local0, 0x30))
                }
            }

            Method (_BIF, 0, Serialized)
            {
                If (LNot (CKBT (0x01)))
                {
                    Return (INF2)
                }

                Store (DCAP, Index (BINF, 0x01))
                Store (FCAP, Index (BINF, 0x02))
                Store (DVOL, Index (BINF, 0x04))
                Divide (DCAP, 0x0A, Local1, Index (BINF, 0x05))
                Divide (DCAP, 0x14, Local1, Index (BINF, 0x06))
                If (And (BSTA, 0x40))
                {
                    If (And (BTYP, 0x40))
                    {
                        Store ("CEBL25", Index (BINF, 0x09))
                    }
                    Else
                    {
                        Store ("CEBL24", Index (BINF, 0x09))
                    }
                }
                Else
                {
                    Store ("CEBL23", Index (BINF, 0x09))
                }

                Store (\_SB.PCI0.ISA.RE1W (0x7E), Local3)
                Store (\_SB.PCI0.ISA.RE1W (0x7C), Local4)
                TSTR (BSTR, And (Local3, 0x1F), 0x02, 0x06)
                ShiftRight (Local3, 0x05, Local3)
                TSTR (BSTR, And (Local3, 0x0F), 0x02, 0x04)
                ShiftRight (Local3, 0x04, Local3)
                TSTR (BSTR, Add (And (Local3, 0x7F), 0x07BC), 0x04, 0x00)
                TSTR (BSTR, Local4, 0x05, 0x09)
                Store (BSTR, Index (BINF, 0x0A))
                Store (\OEMS, Index (BINF, 0x0C))
                Return (BINF)
            }

            Name (STAT, Package (0x04)
            {
                0x00, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF
            })
            Name (STA2, Package (0x04)
            {
                0x00, 
                0x00, 
                0x00, 
                0x00
            })
            Method (_BST, 0, Serialized)
            {
                If (LNot (CKBT (0x02)))
                {
                    Return (STA2)
                }

                Store (And (BSTA, 0x07), Index (STAT, 0x00))
                If (And (ACUR, 0x8000))
                {
                    Store (XOr (ACUR, 0xFFFF), Local1)
                    Increment (Local1)
                    If (LGreater (Local1, 0x01F4))
                    {
                        Store (Local1, LASW)
                    }
                    Else
                    {
                        Store (0x01F4, LASW)
                    }

                    Store (LASW, Index (STAT, 0x01))
                }
                Else
                {
                    If (And (BSTA, 0x02))
                    {
                        Store (ACUR, Index (STAT, 0x01))
                    }
                    Else
                    {
                        Store (LASW, Index (STAT, 0x01))
                    }
                }

                If (LNot (LLess (RCAP, FCAP)))
                {
                    Store (FCAP, Index (STAT, 0x02))
                }
                Else
                {
                    Store (RCAP, Index (STAT, 0x02))
                }

                Store (BVOL, Index (STAT, 0x03))
                Return (STAT)
            }

            Method (_STA, 0, Serialized)
            {
                If (LNot (CKBT (0x00)))
                {
                    Return (0x0F)
                }

                If (And (BSTA, 0x20))
                {
                    Return (0x1F)
                }
                Else
                {
                    Return (0x0F)
                }
            }

            Method (CKBT, 1, Serialized)
            {
                Store (\_SB.PCI0.ISA.RE1B (0x6F), Local0)
                Store (\_SB.PCI0.ISA.RE1B (0xF3), Local1)
                Or (And (Local0, 0x07), And (Local1, 0xF8), BSTA)
                Store (\_SB.PCI0.ISA.RE1B (0xEC), BTYP)
                If (LEqual (Arg0, 0x00))
                {
                    Return (0x01)
                }

                If (LNot (And (BSTA, 0x20)))
                {
                    Return (0x00)
                }

                Store (\_SB.PCI0.ISA.RE1W (0x74), DVOL)
                If (LEqual (DVOL, 0xFFFF))
                {
                    Return (0x00)
                }

                If (LEqual (DVOL, 0x00))
                {
                    Return (0x00)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (0x01)
                }

                Store (\_SB.PCI0.ISA.RE1W (0x72), FCAP)
                If (LEqual (FCAP, 0xFFFF))
                {
                    Return (0x00)
                }

                If (LEqual (FCAP, 0x00))
                {
                    Return (0x00)
                }

                If (LEqual (Arg0, 0x01))
                {
                    Store (\_SB.PCI0.ISA.RE1W (0x70), DCAP)
                    If (LEqual (DCAP, 0xFFFF))
                    {
                        Return (0x00)
                    }

                    If (LEqual (DCAP, 0x00))
                    {
                        Return (0x00)
                    }

                    Return (0x01)
                }

                Store (\_SB.PCI0.ISA.RE1W (0x7A), BVOL)
                If (LEqual (BVOL, 0xFFFF))
                {
                    Return (0x00)
                }

                If (LEqual (BVOL, 0x00))
                {
                    Return (0x00)
                }

                Store (\_SB.PCI0.ISA.RE1W (0x78), RCAP)
                If (LEqual (RCAP, 0xFFFF))
                {
                    Return (0x00)
                }

                If (LEqual (RCAP, 0x00))
                {
                    Return (0x00)
                }

                Store (\_SB.PCI0.ISA.RE1W (0x76), ACUR)
                If (LEqual (ACUR, 0x7FFF))
                {
                    Return (0x00)
                }

                Return (0x01)
            }
        }

        Device (ADP1)
        {
            Name (_HID, "ACPI0003")
            Name (_PCL, Package (0x01)
            {
                \_SB
            })
            Method (_PSR, 0, NotSerialized)
            {
                Return (\_SB.PCI0.ISA.RE1T (0xF3, 0x03))
            }

            Name (_STA, 0x0F)
        }
    }

    Scope (_TZ)
    {
        ThermalZone (THRM)
        {
            Method (_TMP, 0, Serialized)
            {
                Return (Add (KLVN (\_SB.PCI0.ISA.RE1B (0xF2)), 0x01))
            }

            Method (_CRT, 0, Serialized)
            {
                Return (KLVN (\_SB.PCI0.ISA.RE1B (0xFD)))
            }

            Method (KLVN, 1, Serialized)
            {
                If (And (Arg0, 0x80))
                {
                    Store (0x10, Arg0)
                }

                Return (Add (Multiply (Arg0, 0x0A), 0x0AAB))
            }
        }
    }

    Scope (\_GPE)
    {
        Method (_L09, 0, NotSerialized)
        {
            Notify (\_SB.PCI0, 0x02)
        }

        Method (_E19, 0, NotSerialized)
        {
            Store (\_SB.PCI0.ISA.QYEC (), Local0)
            If (Local0)
            {
                Store (Local0, P80H)
            }

            If (LEqual (Local0, 0x0A))
            {
                \_SB.PCI0.ISA.QH0A ()
                Return (0x00)
            }

            If (LEqual (Local0, 0x0E))
            {
                \_SB.PCI0.ISA.QH0E ()
                Return (0x00)
            }

            If (LEqual (Local0, 0x0F))
            {
                \_SB.PCI0.ISA.QH0F ()
                Return (0x00)
            }

            If (LEqual (Local0, 0x10))
            {
                \_SB.PCI0.ISA.QH10 ()
                Return (0x00)
            }

            If (LEqual (Local0, 0x14))
            {
                \_SB.PCI0.ISA.QH14 ()
                Return (0x00)
            }

            If (LEqual (Local0, 0x4A))
            {
                \_SB.PCI0.ISA.QH4A ()
                Return (0x00)
            }

            If (LEqual (Local0, 0x4F))
            {
                \_SB.PCI0.ISA.QH4F ()
                Return (0x00)
            }

            If (LEqual (Local0, 0x59))
            {
                \_SB.PCI0.ISA.QH59 ()
                Return (0x00)
            }

            If (LEqual (Local0, 0x5B))
            {
                \_SB.PCI0.ISA.QH5B ()
                Return (0x00)
            }

            If (LEqual (Local0, 0x81))
            {
                \_SB.PCI0.ISA.QH81 ()
                Return (0x00)
            }

            If (LEqual (Local0, 0x82))
            {
                \_SB.PCI0.ISA.QH82 ()
                Return (0x00)
            }

            If (LEqual (Local0, 0x83))
            {
                \_SB.PCI0.ISA.QH83 ()
                Return (0x00)
            }

            If (LEqual (Local0, 0x84))
            {
                \_SB.PCI0.ISA.QH84 ()
                Return (0x00)
            }
        }

        Method (_L03, 0, NotSerialized)
        {
            While (0x01)
            {
                Store (\_SB.PCI0.ISA.QYWK (), Local0)
                If (LEqual (Local0, 0x00))
                {
                    Return (0x00)
                }

                Store (Local0, P80H)
                If (LEqual (Local0, 0x28))
                {
                    Notify (\_SB.PCI0.ISA.PS2K, 0x02)
                }

                If (LEqual (Local0, 0x4F))
                {
                    Notify (\_SB.LID, 0x02)
                }

                If (LEqual (Local0, 0x83))
                {
                    Notify (\_SB.BAT0, 0x80)
                }
            }
        }
    }

    Name (_S0, Package (0x02)
    {
        0x00, 
        0x00
    })
    Name (_S3, Package (0x02)
    {
        0x03, 
        0x03
    })
    Name (_S4, Package (0x02)
    {
        0x04, 
        0x04
    })
    Name (_S5, Package (0x02)
    {
        0x05, 
        0x05
    })
    OperationRegion (PSOM, SystemMemory, 0x0E6FFE4D, 0x00000100)
    Field (PSOM, ByteAcc, NoLock, Preserve)
    {
        PSCB,   8
    }

    Name (SFLG, 0x00)
    Method (_PTS, 1, NotSerialized)
    {
        Store (Arg0, SFLG)
        Store (Arg0, P80H)
        If (LEqual (Arg0, 0x03))
        {
            PHS (0x90, 0x03)
        }

        If (LEqual (Arg0, 0x04))
        {
            \_SB.PCI0.ISA.WE1T (0xED, 0x01, 0x01)
            PHS (0x90, 0x04)
        }

        If (LEqual (Arg0, 0x05)) {}
        Sleep (0x03E8)
    }

    Method (_WAK, 1, NotSerialized)
    {
        Store (Arg0, P80H)
        If (LEqual (Arg0, 0x03))
        {
            PHS (0x91, 0x03)
            If (LNot (\_SB.PCI0.ISA.RE1T (0xEA, 0x00)))
            {
                If (LNot (\_SB.PCI0.ISA.RE1T (0xEA, 0x01)))
                {
                    Notify (\_SB.PWRB, 0x02)
                }
            }

            \_GPE._L03 ()
            PHS (0xB0, 0x00)
        }

        If (LEqual (Arg0, 0x04))
        {
            PHS (0x91, 0x04)
            If (LEqual (OSYS, 0x07D0))
            {
                Notify (\_SB.PWRB, 0x02)
            }

            If (LEqual (OSYS, 0x07D1))
            {
                Notify (\_SB.PWRB, 0x02)
            }
        }

        Notify (\_SB.BAT0, 0x81)
        Notify (\_SB.ADP1, 0x80)
        Notify (\_TZ.THRM, 0x80)
        Sleep (0xC8)
    }

    Scope (_SI)
    {
        Method (_SST, 1, NotSerialized)
        {
            If (LEqual (Arg0, 0x00))
            {
                Store (0xF5, P80H)
            }

            If (LEqual (Arg0, 0x01))
            {
                Store (0xF1, P80H)
            }

            If (LEqual (Arg0, 0x02))
            {
                Store (0xF2, P80H)
            }

            If (LEqual (Arg0, 0x03))
            {
                Store (0xF3, P80H)
                Sleep (0x012C)
            }

            If (LEqual (Arg0, 0x04))
            {
                Store (0xF4, P80H)
            }
        }
    }
}


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-01-16 11:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-01-16 11:00 fixing my DSDT: may I ask for help? Martin Lorenz

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