can't see nuthin'

KAYVEN RIESE kayve at sfsu.edu
Tue Jul 12 03:12:14 GMT 2005



On Mon, 11 Jul 2005, KAYVEN  RIESE wrote:

>
> i can't see any of my devices with freeBSD 6.0  umm..
>
> tell me what to tell you because i have no clue.
>
>
attached is the output of the command

acpidump -t -d
-------------- next part --------------
/*
  RSD PTR: OEM=ACPIAM, ACPI_Rev=1.0x (0)
	RSDT=0x1ff40000, cksum=35
 */
/*
  RSDT: Length=44, Revision=1, Checksum=212,
	OEMID=A M I, OEM Table ID=OEMRSDT, OEM Revision=0x9000406,
	Creator ID=MSFT, Creator Revision=0x97
	Entries={ 0x1ff40200, 0x1ff50040 }
 */
/*
  FACP: Length=129, Revision=1, Checksum=201,
	OEMID=A M I, OEM Table ID=OEMFACP, OEM Revision=0x9000406,
	Creator ID=MSFT, Creator Revision=0x97
 	FACS=0x1ff50000, DSDT=0x1ff40400
	INT_MODEL=PIC
	Preferred_PM_Profile=Unspecified (0)
	SCI_INT=9
	SMI_CMD=0xb2, ACPI_ENABLE=0xe1, ACPI_DISABLE=0x1e, S4BIOS_REQ=0x0
	PSTATE_CNT=0xe2
	PM1a_EVT_BLK=0x400-0x403
	PM1a_CNT_BLK=0x404-0x405
	PM2_CNT_BLK=0x420-0x420
	PM_TMR_BLK=0x408-0x40b
	GPE0_BLK=0x428-0x42f
	CST_CNT=0xe3
	P_LVL2_LAT=99 us, P_LVL3_LAT=1001 us
	FLUSH_SIZE=1024, FLUSH_STRIDE=16
	DUTY_OFFSET=1, DUTY_WIDTH=3
	DAY_ALRM=13, MON_ALRM=0, CENTURY=0
	IAPC_BOOT_ARCH={LEGACY_DEV,8042}
	Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4,HEADLESS}
 */
/*
  FACS:	Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
	Global_Lock=
	Flags=
	Version=1
 */
/*
  DSDT: Length=25245, Revision=1, Checksum=232,
	OEMID=1ABSP, OEM Table ID=1ABSP001, OEM Revision=0x1,
	Creator ID=MSFT, Creator Revision=0x2000001
 */
/*
  OEMB: Length=83, Revision=1, Checksum=85,
	OEMID=A M I, OEM Table ID=OEMBIOS, OEM Revision=0x9000406,
	Creator ID=MSFT, Creator Revision=0x97
 */
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20041119
 *
 * Disassembly of /tmp/acpidump.8hCRBQ, Mon Jul 11 20:10:42 2005
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "1ABSP", "1ABSP001", 1)
{
    OperationRegion (BIOS, SystemMemory, 0x1FF50064, 0xFF)
    Field (BIOS, ByteAcc, NoLock, Preserve)
    {
        SS1,    1, 
        SS2,    1, 
        SS3,    1, 
        SS4,    1, 
        Offset (0x01), 
        IOST,   16, 
        SPIO,   16, 
        PMBS,   16, 
        PMLN,   8, 
        SMBS,   16, 
        SMLN,   8, 
        IO1B,   16, 
        IO1L,   8, 
        IO2B,   16, 
        IO2L,   8, 
        TOPM,   32, 
        ROMS,   32, 
        APCB,   32, 
        APCL,   16, 
        MG1B,   32, 
        MG1L,   32, 
        MG2B,   32, 
        MG2L,   32
    }

    Name (WFAT, 0x90)
    Name (WNVR, 0x91)
    Name (RNVR, 0x92)
    Name (SWFR, 0x93)
    Name (STDD, 0x94)
    Name (GTDD, 0x95)
    Name (ADBR, 0x96)
    Name (CGPS, 0x97)
    Name (CGWK, 0x98)
    Name (ISWP, 0x99)
    Name (ISTB, 0x9A)
    Name (GPBS, 0x0500)
    Name (GPLN, 0x40)
    Name (SBUS, 0x0540)
    Name (SMBL, 0x10)
    Method (RRIO, 4, NotSerialized)
    {
        Store ("RRIO", Debug)
    }

    Method (RDMA, 3, NotSerialized)
    {
        Store ("rDMA", Debug)
    }

    Name (PICM, 0x00)
    Method (_PIC, 1, NotSerialized)
    {
        If (Arg0)
        {
            Store (0xAA, DBG8)
        }
        Else
        {
            Store (0x55, DBG8)
        }

        Store (Arg0, PICM)
    }

    Method (OSFL, 0, NotSerialized)
    {
        Store (0x01, Local0)
        If (MCTH (\_OS, "Microsoft Windows NT"))
        {
            Store (0x00, Local0)
        }

        Return (Local0)
    }

    Method (MCTH, 2, NotSerialized)
    {
        If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
        {
            Return (Zero)
        }

        Add (SizeOf (Arg0), 0x01, Local0)
        Name (BUF0, Buffer (Local0) {})
        Name (BUF1, Buffer (Local0) {})
        Store (Arg0, BUF0)
        Store (Arg1, BUF1)
        While (Local0)
        {
            Decrement (Local0)
            If (LNot (LEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1, Local0)))))
            {
                Return (Zero)
            }
        }

        Return (One)
    }

    Method (GPRW, 2, NotSerialized)
    {
        Name (PRWP, Package (0x02)
        {
            0x00, 
            0x00
        })
        Store (Arg0, Index (PRWP, 0x00))
        Store (Arg1, Index (PRWP, 0x01))
        Return (PRWP)
    }

    Name (WAKP, Package (0x02)
    {
        0x00, 
        0x00
    })
    OperationRegion (DEB0, SystemIO, 0x80, 0x01)
    Field (DEB0, ByteAcc, NoLock, Preserve)
    {
        DBG8,   8
    }

    OperationRegion (DEB1, SystemIO, 0x90, 0x02)
    Field (DEB1, WordAcc, NoLock, Preserve)
    {
        DBG9,   16
    }

    Scope (\_SB)
    {
        Name (PR00, Package (0x07)
        {
            Package (0x04)
            {
                0x001FFFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

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

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

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

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

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

            Package (0x04)
            {
                0x001DFFFF, 
                0x02, 
                LNKC, 
                0x00
            }
        })
        Name (AR00, Package (0x07)
        {
            Package (0x04)
            {
                0x001FFFFF, 
                0x01, 
                0x00, 
                0x11
            }, 

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

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

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

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

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

            Package (0x04)
            {
                0x001DFFFF, 
                0x02, 
                0x00, 
                0x12
            }
        })
        Name (PR01, Package (0x01)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKA, 
                0x00
            }
        })
        Name (PR02, Package (0x06)
        {
            Package (0x04)
            {
                0x0001FFFF, 
                0x00, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x01, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKB, 
                0x00
            }, 

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

            Package (0x04)
            {
                0x0002FFFF, 
                0x01, 
                LNKD, 
                0x00
            }
        })
        Name (PRSA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11,12}
        })
        Name (PRSB, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,11,12}
        })
        Name (PRSC, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {10,12}
        })
        Name (PRSD, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {5,6,10}
        })
        Name (PRSE, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {6,11}
        })
        Name (PRSF, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {3,7}
        })
        Name (PRSG, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {4,7}
        })
        Name (PRSH, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {4,6,10,12}
        })
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, 0x00)
            Name (_BBN, 0x00)
            Name (_UID, 0x00)
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR00)
                }

                Return (PR00)
            }

            Device (SBRG)
            {
                Name (_ADR, 0x001F0000)
                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0020, 0x0020, 0x00, 0x02)
                        IO (Decode16, 0x00A0, 0x00A0, 0x00, 0x02)
                        IRQNoFlags () {2}
                    })
                }

                Device (DMAD)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        DMA (Compatibility, BusMaster, Transfer8) {4}
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x10)
                        IO (Decode16, 0x0081, 0x0081, 0x00, 0x03)
                        IO (Decode16, 0x0087, 0x0087, 0x00, 0x01)
                        IO (Decode16, 0x0089, 0x0089, 0x00, 0x03)
                        IO (Decode16, 0x008F, 0x008F, 0x00, 0x01)
                        IO (Decode16, 0x00C0, 0x00C0, 0x00, 0x20)
                    })
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0040, 0x0040, 0x00, 0x04)
                        IRQNoFlags () {0}
                    })
                }

                Device (RTC0)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x00, 0x02)
                        IRQNoFlags () {8}
                    })
                }

                Device (PS2K)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CID, 0x0B03D041)
                    Method (_STA, 0, NotSerialized)
                    {
                        ShiftLeft (0x01, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (0x0F)
                        }

                        Return (0x00)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
                        IRQNoFlags () {1}
                    })
                }

                Device (PS2M)
                {
                    Name (_HID, EisaId ("PNP0F12"))
                    Name (_CID, 0x130FD041)
                    Method (_STA, 0, NotSerialized)
                    {
                        ShiftLeft (0x01, 0x0C, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (0x0F)
                        }

                        Return (0x00)
                    }

                    Name (CRS1, ResourceTemplate ()
                    {
                        IRQNoFlags () {12}
                    })
                    Name (CRS2, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
                        IRQNoFlags () {12}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        ShiftLeft (0x01, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (CRS1)
                        }
                        Else
                        {
                            Return (CRS2)
                        }
                    }
                }

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

                Device (COPR)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x00F0, 0x00F0, 0x00, 0x10)
                        IRQNoFlags () {13}
                    })
                }

                Device (UAR2)
                {
                    Name (_UID, 0x01)
                    Method (_HID, 0, NotSerialized)
                    {
                        Return (UHID (0x01))
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x01))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x01, 0x00)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (DCRS (0x01))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        DSRS (Arg0, 0x01)
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        If (FIRM (0x01))
                        {
                            Return (IRPR)
                        }
                        Else
                        {
                            Return (IRP2)
                        }
                    }

                    Name (IRPR, ResourceTemplate ()
                    {
                        IRQNoFlags () {3,4,5,6,10,11,12}
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                        }
                        EndDependentFn ()
                    })
                    Name (IRP2, ResourceTemplate ()
                    {
                        IRQNoFlags () {3,4,5,6,10,11,12}
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                        }
                        EndDependentFn ()
                    })
                }

                Device (LPTE)
                {
                    Method (_HID, 0, NotSerialized)
                    {
                        If (LPTM (0x02))
                        {
                            Return (0x0104D041)
                        }
                        Else
                        {
                            Return (0x0004D041)
                        }
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x02))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x02, 0x00)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        DCRS (0x02)
                        If (LPTM (0x02))
                        {
                            Store (IRQM, IRQE)
                            Store (DMAM, DMAE)
                            Store (IO11, IO21)
                            Store (IO12, IO22)
                            Store (LEN1, LEN2)
                            Add (IO21, 0x0400, IO31)
                            Store (IO31, IO32)
                            Store (LEN2, LEN3)
                            Return (CRS2)
                        }
                        Else
                        {
                            Return (CRS1)
                        }
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        DSRS (Arg0, 0x02)
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        If (LPTM (0x02))
                        {
                            Return (EPPR)
                        }
                        Else
                        {
                            Return (LPPR)
                        }
                    }

                    Name (LPPR, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                        }
                        /*** Missing EndDependentFunctions descriptor */                    })
                    Name (EPPR, ResourceTemplate ()
                    {
                        IRQNoFlags () {3,4,5,6,7,10,11,12}
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                            IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                            IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                            IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                            IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04)
                        }
                        EndDependentFn ()
                    })
                }

                Device (SIOR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Method (_UID, 0, NotSerialized)
                    {
                        Return (SPIO)
                    }

                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LAnd (LNot (LEqual (SPIO, 0x03F0)), LGreater (SPIO, 0xF0)))
                        {
                            CreateWordField (CRS, 0x02, GP10)
                            CreateWordField (CRS, 0x04, GP11)
                            CreateByteField (CRS, 0x07, GPL1)
                            Store (SPIO, GP10)
                            Store (SPIO, GP11)
                            Store (0x02, GPL1)
                        }

                        If (IO1B)
                        {
                            CreateWordField (CRS, 0x0A, GP20)
                            CreateWordField (CRS, 0x0C, GP21)
                            CreateByteField (CRS, 0x0F, GPL2)
                            Store (IO1B, GP20)
                            Store (IO1B, GP21)
                            Store (IO1L, GPL2)
                        }

                        If (IOXB)
                        {
                            CreateWordField (CRS, 0x12, GP30)
                            CreateWordField (CRS, 0x14, GP31)
                            CreateByteField (CRS, 0x17, GPL3)
                            Store (IOXB, GP30)
                            Store (IOXB, GP31)
                            Store (IOXL, GPL3)
                        }

                        Return (CRS)
                    }
                }

                Name (DCAT, Package (0x15)
                {
                    0x03, 
                    0x02, 
                    0x01, 
                    0x00, 
                    0xFF, 
                    0x0C, 
                    0xFF, 
                    0xFF, 
                    0x0B, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF
                })
                Mutex (MUT0, 0x00)
                Method (ENFG, 1, NotSerialized)
                {
                    Acquire (MUT0, 0x1FFF)
                    Store (Arg0, LDN)
                }

                Method (EXFG, 0, NotSerialized)
                {
                    Release (MUT0)
                }

                Method (LPTM, 1, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    And (OPT1, 0x80, Local0)
                    EXFG ()
                    Return (Local0)
                }

                Method (FIRM, 1, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    Store (DMCH, Local0)
                    EXFG ()
                    If (LAnd (LLess (Local0, 0x04), LNot (LEqual (And (Local0, 0x03, Local1), 0x00))))
                    {
                        Store (0x01, Local2)
                    }
                    Else
                    {
                        Store (0x00, Local2)
                    }

                    Return (Local2)
                }

                Method (UHID, 1, NotSerialized)
                {
                    If (LEqual (Arg0, 0x01))
                    {
                        ENFG (CGLD (Arg0))
                        Store (DMCH, Local0)
                        EXFG ()
                        If (LAnd (LLess (Local0, 0x04), LNot (LEqual (And (Local0, 0x03, Local1), 0x00))))
                        {
                            Return (0x0160633A)
                        }
                        Else
                        {
                            Return (0x1005D041)
                        }
                    }

                    Return (0x0105D041)
                }

                Method (SIOS, 1, NotSerialized)
                {
                }

                Method (SIOW, 1, NotSerialized)
                {
                }

                Method (SIOH, 0, NotSerialized)
                {
                }

                OperationRegion (IOID, SystemIO, SPIO, 0x02)
                Field (IOID, ByteAcc, NoLock, Preserve)
                {
                    INDX,   8, 
                    DATA,   8
                }

                IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x07), 
                    LDN,    8, 
                    Offset (0x22), 
                    FDCP,   1, 
                        ,   2, 
                    LPTP,   1, 
                    URAP,   1, 
                    URBP,   1, 
                    Offset (0x30), 
                    ACTR,   8, 
                    Offset (0x60), 
                    IOAH,   8, 
                    IOAL,   8, 
                    IOH2,   8, 
                    IOL2,   8, 
                    Offset (0x70), 
                    INTR,   8, 
                    Offset (0x74), 
                    DMCH,   8, 
                    Offset (0xF0), 
                    OPT1,   8, 
                    OPT2,   8, 
                    OPT3,   8
                }

                Method (CGLD, 1, NotSerialized)
                {
                    Return (DerefOf (Index (DCAT, Arg0)))
                }

                Method (DSTA, 1, NotSerialized)
                {
                    Store (0x00, Local0)
                    ShiftLeft (0x01, Arg0, Local1)
                    If (And (IOST, Local1))
                    {
                        ENFG (CGLD (Arg0))
                        If (ACTR)
                        {
                            Store (0x0F, Local0)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x03))
                            {
                                If (IOAH)
                                {
                                    Store (0x0D, Local0)
                                }
                                Else
                                {
                                    Store (0x00, Local0)
                                }
                            }
                            Else
                            {
                                Store (0x0D, Local0)
                            }
                        }

                        EXFG ()
                    }

                    Return (Local0)
                }

                Method (DCNT, 2, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    ShiftLeft (IOAH, 0x08, Local1)
                    Or (IOAL, Local1, Local1)
                    RRIO (Arg0, Arg1, Local1, 0x08)
                    If (LAnd (LLess (DMCH, 0x04), LNot (LEqual (And (DMCH, 0x03, Local1), 0x00))))
                    {
                        RDMA (Arg0, Arg1, Increment (Local1))
                    }

                    Store (Arg1, ACTR)
                    EXFG ()
                }

                Name (CRS1, ResourceTemplate ()
                {
                    IRQNoFlags () {}
                    DMA (Compatibility, NotBusMaster, Transfer8) {}
                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
                })
                CreateWordField (CRS1, 0x01, IRQM)
                CreateByteField (CRS1, 0x04, DMAM)
                CreateWordField (CRS1, 0x08, IO11)
                CreateWordField (CRS1, 0x0A, IO12)
                CreateByteField (CRS1, 0x0D, LEN1)
                Name (CRS2, ResourceTemplate ()
                {
                    IRQNoFlags () {6}
                    DMA (Compatibility, NotBusMaster, Transfer8) {2}
                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
                })
                CreateWordField (CRS2, 0x01, IRQE)
                CreateByteField (CRS2, 0x04, DMAE)
                CreateWordField (CRS2, 0x08, IO21)
                CreateWordField (CRS2, 0x0A, IO22)
                CreateByteField (CRS2, 0x0D, LEN2)
                CreateWordField (CRS2, 0x10, IO31)
                CreateWordField (CRS2, 0x12, IO32)
                CreateByteField (CRS2, 0x15, LEN3)
                Method (DCRS, 1, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    ShiftLeft (IOAH, 0x08, IO11)
                    Or (IOAL, IO11, IO11)
                    Store (IO11, IO12)
                    Subtract (FindSetRightBit (IO11), 0x01, Local0)
                    ShiftLeft (0x01, Local0, LEN1)
                    If (INTR)
                    {
                        ShiftLeft (0x01, INTR, IRQM)
                    }
                    Else
                    {
                        Store (0x00, IRQM)
                    }

                    If (LAnd (LLess (DMCH, 0x04), LNot (LEqual (And (DMCH, 0x03, Local1), 0x00))))
                    {
                        ShiftLeft (0x01, Local1, DMAM)
                    }
                    Else
                    {
                        Store (0x00, DMAM)
                    }

                    EXFG ()
                    Return (CRS1)
                }

                Method (DSRS, 2, NotSerialized)
                {
                    CreateWordField (Arg0, 0x01, IRQM)
                    CreateByteField (Arg0, 0x04, DMAM)
                    CreateWordField (Arg0, 0x08, IO11)
                    ENFG (CGLD (Arg1))
                    And (IO11, 0xFF, IOAL)
                    ShiftRight (IO11, 0x08, IOAH)
                    If (IRQM)
                    {
                        FindSetRightBit (IRQM, Local0)
                        Subtract (Local0, 0x01, INTR)
                    }
                    Else
                    {
                        Store (0x00, INTR)
                    }

                    If (DMAM)
                    {
                        FindSetRightBit (DMAM, Local0)
                        Subtract (Local0, 0x01, DMCH)
                    }
                    Else
                    {
                        Store (0x04, DMCH)
                    }

                    EXFG ()
                    DCNT (Arg1, 0x01)
                }

                Device (SYSR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x01)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0010, 0x0010, 0x00, 0x10)
                        IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E)
                        IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C)
                        IO (Decode16, 0x0063, 0x0063, 0x00, 0x01)
                        IO (Decode16, 0x0065, 0x0065, 0x00, 0x01)
                        IO (Decode16, 0x0067, 0x0067, 0x00, 0x09)
                        IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E)
                        IO (Decode16, 0x0080, 0x0080, 0x00, 0x01)
                        IO (Decode16, 0x0084, 0x0084, 0x00, 0x03)
                        IO (Decode16, 0x0088, 0x0088, 0x00, 0x01)
                        IO (Decode16, 0x008C, 0x008C, 0x00, 0x03)
                        IO (Decode16, 0x0090, 0x0090, 0x00, 0x10)
                        IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E)
                        IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10)
                        IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02)
                    })
                }

                Device (FWH)
                {
                    Name (_HID, EisaId ("INT0800"))
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                    })
                    CreateDWordField (CRS, 0x04, BS00)
                    CreateDWordField (CRS, 0x08, BL00)
                    CreateDWordField (CRS, 0x10, BS10)
                    CreateDWordField (CRS, 0x14, BL10)
                    Method (_CRS, 0, NotSerialized)
                    {
                        Store (0xFF800000, Local0)
                        FindSetRightBit (FHD0, Local1)
                        Decrement (Local1)
                        If (Local1)
                        {
                            Multiply (Local1, 0x00080000, Local1)
                        }

                        Add (Local0, Local1, Local2)
                        Store (Local2, BS00)
                        Add (BS00, 0x00400000, BS10)
                        Subtract (0x00, BS10, BL00)
                        Store (BL00, BL10)
                        Return (CRS)
                    }
                }

                Device (FWHE)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x03)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (CRS, 0x04, BS00)
                        CreateDWordField (CRS, 0x08, BL00)
                        If (LEqual (^^FWH.BS00, 0x00))
                        {
                            ^^FWH._CRS ()
                        }

                        Add (^^FWH.BS00, ^^FWH.BL00, BS00)
                        Subtract (^^FWH.BS10, BS00, BL00)
                        Return (CRS)
                    }
                }

                OperationRegion (FHR0, PCI_Config, 0xE3, 0x01)
                Field (FHR0, ByteAcc, NoLock, Preserve)
                {
                    FHD0,   8
                }

                Scope (\)
                {
                    Field (BIOS, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x80), 
                        Offset (0x84), 
                        ASTE,   8, 
                        Offset (0x86), 
                        SSTE,   8, 
                        PADS,   8, 
                        ACPS,   8, 
                        WSTE,   8, 
                        INSS,   8
                    }
                }

                Scope (\_SB)
                {
                    Name (BATO, 0x00)
                    Mutex (ECMX, 0x00)
                    Mutex (SMBF, 0x00)
                    Mutex (BATX, 0x00)
                    Name (THBF, Buffer (0x04)
                    {
                        0x00, 0x00, 0x00, 0x00
                    })
                    CreateWordField (THBF, 0x00, DW00)
                    CreateWordField (THBF, 0x02, DW01)
                    CreateByteField (THBF, 0x00, DB00)
                    CreateByteField (THBF, 0x01, DB01)
                    CreateByteField (THBF, 0x02, DB10)
                    CreateByteField (THBF, 0x03, DB11)
                }

                OperationRegion (OPR0, SystemIO, 0x80, 0x80)
                Field (OPR0, ByteAcc, NoLock, Preserve)
                {
                    DP80,   8
                }

                OperationRegion (OPR1, SystemIO, 0xB2, 0x02)
                Field (OPR1, ByteAcc, NoLock, Preserve)
                {
                    SWI0,   8, 
                    APMS,   8
                }

                OperationRegion (OPR2, SystemIO, 0x0378, 0x02)
                Field (OPR2, ByteAcc, NoLock, Preserve)
                {
                    P378,   8
                }

                OperationRegion (OPR3, SystemIO, 0x0480, 0x10)
                Field (OPR3, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x04), 
                        ,   3, 
                    SG13,   1, 
                    Offset (0x09), 
                        ,   4, 
                    SG24,   1
                }

                Scope (\_SB.PCI0.SBRG)
                {
                    Device (EC0)
                    {
                        Name (ECFL, Ones)
                        Mutex (MUEC, 0x00)
                        Name (FAKE, 0x00)
                        Method (ECAV, 0, NotSerialized)
                        {
                            If (LEqual (ECFL, Ones))
                            {
                                If (LNot (LLess (_REV, 0x02)))
                                {
                                    Return (One)
                                }
                                Else
                                {
                                    Return (Zero)
                                }
                            }

                            Return (ECFL)
                        }

                        Name (_HID, EisaId ("PNP0C09"))
                        Name (_CRS, ResourceTemplate ()
                        {
                            IO (Decode16, 0x0062, 0x0062, 0x00, 0x01)
                            IO (Decode16, 0x0066, 0x0066, 0x00, 0x01)
                        })
                        CreateWordField (_CRS, 0x02, DPRT)
                        CreateWordField (_CRS, 0x0A, CPRT)
                        Name (_GPE, 0x1C)
                        OperationRegion (ECOR, EmbeddedControl, 0x00, 0x80)
                        Field (ECOR, ByteAcc, Lock, Preserve)
                        {
                            Offset (0x04), 
                            CMD1,   8, 
                            CDT1,   8, 
                            CDT2,   8, 
                            CDT3,   8, 
                            Offset (0x18), 
                            PRTC,   8, 
                            SSTS,   8, 
                            ADDR,   8, 
                            SCMD,   8, 
                            SMD0,   8, 
                            SMD1,   8, 
                            DATB,   240, 
                            BCNT,   8, 
                            ALRM,   8, 
                            ALR0,   8, 
                            ALR1,   8, 
                            Offset (0x43), 
                            P50S,   1, 
                                ,   1, 
                                ,   1, 
                            P43S,   1, 
                            P54S,   1, 
                            P55S,   1, 
                            Offset (0x48), 
                            P54C,   8, 
                            P55C,   8, 
                            P50C,   8, 
                            P43C,   8, 
                            Offset (0x50), 
                            P60C,   8, 
                            P61C,   8, 
                            P62C,   8, 
                            P63C,   8, 
                            P64C,   8, 
                            P65C,   8, 
                            P66C,   8, 
                            P67C,   8, 
                            P68C,   8, 
                            Offset (0x77), 
                            FFAN,   8, 
                            P60S,   1, 
                            P61S,   1, 
                            P62S,   1, 
                            P63S,   1, 
                            P64S,   1, 
                            P65S,   1, 
                            P66S,   1, 
                            P67S,   1
                        }

                        OperationRegion (UCMS, SystemIO, 0x72, 0x05)
                        Field (UCMS, ByteAcc, Lock, Preserve)
                        {
                            IND0,   8, 
                            DATX,   8
                        }

                        IndexField (IND0, DATX, ByteAcc, NoLock, Preserve)
                        {
                            Offset (0x1B), 
                            ANYS,   8, 
                            ADVL,   8, 
                            BRCT,   8
                        }

                        Name (PWAC, Buffer (0x10)
                        {
                            0x17, 0x2E, 0x3D, 0x49, 0x58, 0x60, 0x64, 0x68, 
                            0x6C, 0x70, 0x73, 0x77, 0x7B, 0x7F, 0x81, 0x9C
                        })
                        Name (PWDC, Buffer (0x10)
                        {
                            0x0F, 0x26, 0x36, 0x41, 0x51, 0x58, 0x5C, 0x60, 
                            0x64, 0x68, 0x6C, 0x70, 0x73, 0x77, 0x7B, 0x7F
                        })
                        Method (_INI, 0, NotSerialized)
                        {
                            Noop
                        }

                        Method (_REG, 2, NotSerialized)
                        {
                            If (LEqual (Arg0, 0x03))
                            {
                                Store (Arg1, ECFL)
                            }
                        }

                        Name (TEST, 0x00)
                        Method (_Q09, 0, NotSerialized)
                        {
                            If (LEqual (OSFL (), 0x00))
                            {
                                Store (0x09, DP80)
                                Notify (\_SB.AC, 0x80)
                                Notify (\_SB.BAT0, 0x80)
                                Notify (\_SB.BAT1, 0x80)
                                DLY0 (0x64)
                            }
                            Else
                            {
                                DLY0 (0x00)
                            }
                        }

                        Method (_Q0A, 0, NotSerialized)
                        {
                            Store (0x01, DP80)
                            Notify (\_SB.SLPB, 0x80)
                        }

                        Method (_Q0B, 0, NotSerialized)
                        {
                            Store (0x02, DP80)
                            If (\_SB.PCI0.P0P2.MPC0.MPDP ())
                            {
                                If (\_SB.ATKP)
                                {
                                    Notify (\_SB.ATKD, 0x5D)
                                }
                            }
                        }

                        Method (_Q0E, 0, NotSerialized)
                        {
                            If (LGreater (BRCT, 0x00))
                            {
                                Decrement (BRCT)
                                STBR ()
                            }

                            Store (BRCT, DP80)
                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, Add (BRCT, 0x20))
                            }
                        }

                        Method (_Q0F, 0, NotSerialized)
                        {
                            If (LLess (BRCT, 0x0F))
                            {
                                Increment (BRCT)
                                STBR ()
                            }

                            Store (BRCT, DP80)
                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, Add (BRCT, 0x10))
                            }
                        }

                        Method (_Q10, 0, NotSerialized)
                        {
                            Store (0x07, DP80)
                            XOr (BKLT, 0x01, Local0)
                            Store (Local0, BKLT)
                            If (\_SB.ATKP)
                            {
                                Subtract (0x34, BKLT, Local0)
                                Notify (\_SB.ATKD, Local0)
                            }
                        }

                        Name (DSTE, 0x00)
                        Name (CSTE, 0x00)
                        Method (_Q11, 0, NotSerialized)
                        {
                            Store (\_SB.PCI0.SBRG.EC0.ANYS, Local1)
                            ShiftRight (Local1, 0x04, Local1)
                            If (LEqual (Local1, 0x09))
                            {
                                If (LEqual (DSTE, 0x00))
                                {
                                    Store (0xA3, SWI0)
                                    Store (SSTE, Local0)
                                    Store (SSTE, CSTE)
                                    Increment (DSTE)
                                }
                                Else
                                {
                                    If (And (ASTE, 0x33))
                                    {
                                        If (LNot (LGreater (ASTE, 0x06)))
                                        {
                                            Increment (CSTE)
                                            If (LEqual (CSTE, 0x04))
                                            {
                                                Store (0x01, CSTE)
                                            }
                                        }
                                        Else
                                        {
                                            If (And (ASTE, 0x03))
                                            {
                                                Increment (CSTE)
                                                If (LEqual (CSTE, 0x07))
                                                {
                                                    Store (0x01, CSTE)
                                                }
                                            }
                                            Else
                                            {
                                                Increment (CSTE)
                                                If (LEqual (CSTE, 0x02))
                                                {
                                                    Store (0x04, CSTE)
                                                }

                                                If (LEqual (CSTE, 0x06))
                                                {
                                                    Store (0x01, CSTE)
                                                }
                                            }
                                        }
                                    }

                                    Store (CSTE, Local0)
                                }
                            }
                            Else
                            {
                                If (LEqual (DSTE, 0x00))
                                {
                                    Store (0xA3, SWI0)
                                    Store (SSTE, Local0)
                                    Store (SSTE, CSTE)
                                    Increment (DSTE)
                                }
                                Else
                                {
                                    If (And (ASTE, 0x33))
                                    {
                                        If (LNot (LGreater (ASTE, 0x06)))
                                        {
                                            Increment (CSTE)
                                            If (LEqual (CSTE, 0x04))
                                            {
                                                Store (0x01, CSTE)
                                            }
                                        }
                                        Else
                                        {
                                            If (And (ASTE, 0x03))
                                            {
                                                Increment (CSTE)
                                                If (LEqual (CSTE, 0x08))
                                                {
                                                    Store (0x01, CSTE)
                                                }
                                            }
                                            Else
                                            {
                                                Increment (CSTE)
                                                If (LEqual (CSTE, 0x02))
                                                {
                                                    Store (0x04, CSTE)
                                                }

                                                If (LEqual (CSTE, 0x06))
                                                {
                                                    Store (0x01, CSTE)
                                                }
                                            }
                                        }
                                    }

                                    Store (CSTE, Local0)
                                }
                            }

                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, Add (0x60, Local0))
                            }
                        }

                        Method (_Q13, 0, NotSerialized)
                        {
                            Store (0x10, DP80)
                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, 0x32)
                            }
                        }

                        Method (_Q14, 0, NotSerialized)
                        {
                            Store (0x11, DP80)
                            And (ADVL, 0x0F, ADVL)
                            If (LLess (ADVL, 0x0F))
                            {
                                Increment (ADVL)
                            }

                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, 0x31)
                            }
                        }

                        Method (_Q15, 0, NotSerialized)
                        {
                            Store (0x12, DP80)
                            And (ADVL, 0x0F, ADVL)
                            If (LGreater (ADVL, 0x00))
                            {
                                Decrement (ADVL)
                            }

                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, 0x30)
                            }
                        }

                        Method (_Q30, 0, NotSerialized)
                        {
                            Store (0x30, \_SB.PCI0.SBRG.P378)
                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, 0x50)
                            }
                        }

                        Method (_Q31, 0, NotSerialized)
                        {
                            Store (0x31, \_SB.PCI0.SBRG.P378)
                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, 0x51)
                            }
                        }

                        Method (_Q32, 0, NotSerialized)
                        {
                            Store (0x32, DP80)
                            If (\_SB.PCI0.P0P2.MPC0.MPDP ())
                            {
                                If (\_SB.ATKP)
                                {
                                    Notify (\_SB.ATKD, 0x5D)
                                }
                            }
                        }

                        Method (_Q33, 0, NotSerialized)
                        {
                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, 0x6A)
                            }
                        }

                        Method (_Q36, 0, NotSerialized)
                        {
                            Store (0x36, \_SB.PCI0.SBRG.P378)
                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, 0x5C)
                            }
                        }

                        Method (_Q51, 0, NotSerialized)
                        {
                            Store (0x51, DP80)
                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, 0x4C)
                                \_SB.PCI0.SBRG.EC0.STC5 (0x4B)
                                Sleep (0x01F4)
                                \_SB.PCI0.SBRG.EC0.STC5 (0x2B)
                            }
                        }

                        OperationRegion (PMRG, SystemIO, PMBS, 0x80)
                        Field (PMRG, ByteAcc, NoLock, Preserve)
                        {
                            Offset (0x01), 
                            PWNS,   1, 
                                ,   1, 
                            RTCS,   1, 
                            Offset (0x2A), 
                                ,   3, 
                            GP3S,   1, 
                                ,   3, 
                            GP7S,   1, 
                                ,   4, 
                            GPBS,   1, 
                            Offset (0x2F), 
                                ,   4, 
                            GPBE,   1
                        }

                        OperationRegion (IO, SystemIO, DPRT, 0x05)
                        Field (IO, ByteAcc, Lock, Preserve)
                        {
                            DAT0,   8, 
                            Offset (0x04), 
                            CMD0,   8
                        }

                        Field (IO, ByteAcc, Lock, Preserve)
                        {
                            Offset (0x04), 
                            OUTS,   1, 
                            INPS,   1
                        }

                        Method (DLY0, 1, Serialized)
                        {
                            If (ECAV ())
                            {
                                Store (Arg0, CDT1)
                                Store (0x6B, CDT2)
                                Store (0x00, CDT3)
                                Store (0xBB, CMD1)
                                Store (0x05, Local0)
                                While (LAnd (Local0, CMD1))
                                {
                                    Sleep (0x01)
                                    Decrement (Local0)
                                }

                                Return (CDT1)
                            }
                            Else
                            {
                                WDT1 (Arg0)
                                WDT2 (0x6B)
                                WDT3 (0x00)
                                WCMD (0xBB)
                                Return (RDEC (0x05))
                            }
                        }

                        Method (STBR, 0, Serialized)
                        {
                            If (ACS ())
                            {
                                Store (DerefOf (Index (PWAC, BRCT)), Local0)
                                Store (0x85, Local1)
                                STC4 (Local0, Local1)
                            }
                            Else
                            {
                                Store (DerefOf (Index (PWDC, BRCT)), Local0)
                                Store (0x85, Local1)
                                STC4 (Local0, Local1)
                            }
                        }

                        Method (ACS, 0, Serialized)
                        {
                            If (ECAV ())
                            {
                                Return (P64S)
                            }
                            Else
                            {
                                Store (0x00, Local1)
                                Store (RDP6 (), Local1)
                                And (Local1, 0x10, Local1)
                                ShiftRight (Local1, 0x04, Local1)
                                Return (Local1)
                            }
                        }

                        Method (BATS, 0, Serialized)
                        {
                            If (ECAV ())
                            {
                                Return (P55S)
                            }
                            Else
                            {
                                Store (0x00, Local1)
                                Store (RDP5 (), Local1)
                                And (Local1, 0x20, Local1)
                                ShiftRight (Local1, 0x05, Local1)
                                Return (Local1)
                            }
                        }

                        Method (CDS, 0, Serialized)
                        {
                            If (ECAV ())
                            {
                                Return (P54S)
                            }
                            Else
                            {
                                Store (0x00, Local1)
                                Store (RDP5 (), Local1)
                                And (Local1, 0x10, Local1)
                                ShiftRight (Local1, 0x04, Local1)
                                Return (Local1)
                            }
                        }

                        Method (RDP5, 0, Serialized)
                        {
                            RDEC (0x43)
                            Return (RDEC (0x43))
                        }

                        Method (RDP6, 0, Serialized)
                        {
                            RDEC (0x78)
                            Return (RDEC (0x78))
                        }

                        Method (STC4, 2, Serialized)
                        {
                            If (ECAV ())
                            {
                                Store (Arg0, CDT1)
                                Store (Arg1, CDT2)
                                Store (0xC4, CMD1)
                                Store (0x05, Local0)
                                While (LAnd (Local0, CMD1))
                                {
                                    Sleep (0x01)
                                    Decrement (Local0)
                                }

                                Return (CDT1)
                            }
                            Else
                            {
                                WDT1 (Arg0)
                                WDT2 (Arg1)
                                WCMD (0xC4)
                                Return (RDEC (0x05))
                            }
                        }

                        Method (STC5, 1, Serialized)
                        {
                            If (ECAV ())
                            {
                                Store (Arg0, CDT1)
                                Store (0xC5, CMD1)
                                Store (0x05, Local0)
                                While (LAnd (Local0, CMD1))
                                {
                                    Sleep (0x01)
                                    Decrement (Local0)
                                }

                                Return (CDT1)
                            }
                            Else
                            {
                                WDT1 (Arg0)
                                WCMD (0xC5)
                                Return (RDEC (0x05))
                            }
                        }

                        Method (RBAT, 1, Serialized)
                        {
                            If (ECAV ())
                            {
                                Store (0x00, CDT1)
                                Store (Arg0, CDT2)
                                Store (0xDA, CMD1)
                                Store (0x05, Local0)
                                While (LAnd (Local0, CMD1))
                                {
                                    Sleep (0x01)
                                    Decrement (Local0)
                                }

                                Return (CDT1)
                            }
                            Else
                            {
                                WDT2 (Arg0)
                                WDT1 (0x00)
                                WCMD (0xDA)
                                RDEC (0x05)
                                Return (RDEC (0x05))
                            }
                        }

                        Method (WCMD, 1, NotSerialized)
                        {
                            WREC (0x04, Arg0)
                        }

                        Method (WDT1, 1, NotSerialized)
                        {
                            WREC (0x05, Arg0)
                        }

                        Method (WDT2, 1, NotSerialized)
                        {
                            WREC (0x06, Arg0)
                        }

                        Method (WDT3, 1, NotSerialized)
                        {
                            WREC (0x07, Arg0)
                        }

                        Method (IRDY, 0, Serialized)
                        {
                            Return (LNot (INPS))
                        }

                        Method (ORDY, 0, Serialized)
                        {
                            Return (OUTS)
                        }

                        Method (WATI, 0, Serialized)
                        {
                            Store (0x05, Local0)
                            While (LAnd (Local0, LNot (IRDY ())))
                            {
                                Sleep (0x01)
                                Decrement (Local0)
                            }

                            Return (IRDY ())
                        }

                        Method (WATO, 0, Serialized)
                        {
                            Store (0x05, Local0)
                            While (LAnd (Local0, LNot (ORDY ())))
                            {
                                Sleep (0x01)
                                Decrement (Local0)
                            }

                            Return (ORDY ())
                        }

                        Method (CLRB, 0, Serialized)
                        {
                            While (WATO ())
                            {
                                Store (DAT0, Local0)
                            }
                        }

                        Method (RDEC, 1, Serialized)
                        {
                            Store (0x00, GPBE)
                            If (WATI ())
                            {
                                Store (0x80, CMD0)
                                If (WATI ())
                                {
                                    Store (Arg0, DAT0)
                                    If (WATO ())
                                    {
                                        Store (DAT0, Local0)
                                    }
                                }
                            }

                            Store (0x01, GPBS)
                            Store (0x01, GPBE)
                            Return (Local0)
                        }

                        Method (WREC, 2, Serialized)
                        {
                            Store (0x00, GPBE)
                            If (WATI ())
                            {
                                Store (0x81, CMD0)
                                If (WATI ())
                                {
                                    Store (Arg0, DAT0)
                                    If (WATI ())
                                    {
                                        Store (Arg1, DAT0)
                                    }
                                }
                            }

                            Store (0x01, GPBS)
                            Store (0x01, GPBE)
                        }
                    }
                }

                Alias (\_SB.PCI0.SBRG.EC0.DPRT, DPRT)
                Alias (\_SB.PCI0.SBRG.EC0.CPRT, CPRT)
                Scope (\_SB)
                {
                    Alias (\_SB.PCI0.SBRG.EC0.ECAV, ECAV)
                    Alias (\_SB.PCI0.SBRG.EC0.ACS, ACS)
                    Alias (\_SB.PCI0.SBRG.EC0.BATS, BATS)
                    Device (LID)
                    {
                        Name (_HID, EisaId ("PNP0C0D"))
                        Method (_LID, 0, NotSerialized)
                        {
                            Store (\_SB.LIDL, Local0)
                            Return (Local0)
                        }
                    }

                    Scope (\_GPE)
                    {
                        Method (_L1B, 0, Serialized)
                        {
                            XOr (\_SB.LIDL, 0x01, \_SB.LIDL)
                            Store (\_SB.LIDL, \_SB.PCI0.SBRG.P378)
                            Notify (\_SB.LID, 0x80)
                        }
                    }

                    Device (SLPB)
                    {
                        Name (_HID, EisaId ("PNP0C0E"))
                    }
                }

                Scope (\_SB.PCI0.SBRG.EC0)
                {
                    Method (RSBT, 2, NotSerialized)
                    {
                        Store (0x07, Local0)
                        While (Local0)
                        {
                            Decrement (Local0)
                            Store (0x00, SSTS)
                            Store (Arg0, ADDR)
                            Store (Arg1, SCMD)
                            Store (0x05, PRTC)
                            Store (0x03, Local2)
                            While (Local2)
                            {
                                Stall (0x0A)
                                And (SSTS, 0x80, Local1)
                                If (LEqual (Local1, 0x80))
                                {
                                    Store (0x00, Local0)
                                    Store (0x00, Local2)
                                }
                                Else
                                {
                                    Decrement (Local2)
                                }
                            }
                        }

                        Return (SMD0)
                    }

                    Method (RBYT, 2, NotSerialized)
                    {
                        Store (0x07, Local0)
                        While (Local0)
                        {
                            Decrement (Local0)
                            Store (0x00, SSTS)
                            Store (Arg0, ADDR)
                            Store (Arg1, SCMD)
                            Store (0x07, PRTC)
                            Store (0x03, Local2)
                            While (Local2)
                            {
                                Sleep (0x0A)
                                And (SSTS, 0x80, Local1)
                                If (LEqual (Local1, 0x80))
                                {
                                    Store (0x00, Local0)
                                    Store (0x00, Local2)
                                }
                                Else
                                {
                                    Decrement (Local2)
                                }
                            }
                        }

                        Return (SMD0)
                    }

                    Method (WBYT, 3, NotSerialized)
                    {
                        Store (0x07, Local0)
                        While (Local0)
                        {
                            Decrement (Local0)
                            Store (0x00, SSTS)
                            Store (Arg0, ADDR)
                            Store (Arg1, SCMD)
                            Store (Arg2, SMD0)
                            Store (0x06, PRTC)
                            Store (0x03, Local2)
                            While (Local2)
                            {
                                Sleep (0x0A)
                                And (SSTS, 0x80, Local1)
                                If (LEqual (Local1, 0x80))
                                {
                                    Store (0x00, Local0)
                                    Store (0x00, Local2)
                                }
                                Else
                                {
                                    Decrement (Local2)
                                }
                            }
                        }
                    }

                    Method (RWRD, 2, NotSerialized)
                    {
                        Acquire (ECMX, 0xFFFF)
                        Store (0x0F, Local0)
                        While (Local0)
                        {
                            Decrement (Local0)
                            Store (0x00, SSTS)
                            Store (Arg0, ADDR)
                            Store (Arg1, SCMD)
                            Store (0x09, PRTC)
                            Store (0x03, Local2)
                            Stall (0x78)
                            And (SSTS, 0x80, Local1)
                            If (LEqual (Local1, 0x80))
                            {
                                Store (0x00, Local0)
                            }
                            Else
                            {
                                Stall (0x78)
                            }
                        }

                        Store (SMD0, DB00)
                        Store (SMD1, DB01)
                        Release (ECMX)
                        Return (DW00)
                    }

                    Method (WWRD, 4, NotSerialized)
                    {
                        Store (0x07, Local0)
                        While (Local0)
                        {
                            Decrement (Local0)
                            Store (0x00, SSTS)
                            Store (Arg0, ADDR)
                            Store (Arg1, SCMD)
                            Store (Arg2, SMD0)
                            Store (Arg3, SMD1)
                            Store (0x08, PRTC)
                            Store (0x03, Local2)
                            While (Local2)
                            {
                                Sleep (0x0A)
                                And (SSTS, 0x80, Local1)
                                If (LEqual (Local1, 0x80))
                                {
                                    Store (0x00, Local0)
                                    Store (0x00, Local2)
                                }
                                Else
                                {
                                    Decrement (Local2)
                                }
                            }
                        }
                    }
                }

                Device (\_SB.AC)
                {
                    Name (_HID, "ACPI0003")
                    Name (_PCL, Package (0x01)
                    {
                        \_SB
                    })
                    Method (_PSR, 0, NotSerialized)
                    {
                        Return (ACS ())
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        If (ACS ())
                        {
                            \_SB.PCI0.SBRG.EC0.WREC (0x54, 0x80)
                        }
                        Else
                        {
                            \_SB.PCI0.SBRG.EC0.WREC (0x54, 0x90)
                        }
                    }
                }

                Scope (\_SB.PCI0.SBRG.EC0)
                {
                    Method (_Q34, 0, NotSerialized)
                    {
                        Store (0x34, DP80)
                        \_SB.PCI0.SBRG.EC0.STBR ()
                        If (ACS ())
                        {
                            WREC (0x54, 0x80)
                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, 0x58)
                            }
                        }
                        Else
                        {
                            WREC (0x54, 0x90)
                            If (\_SB.ATKP)
                            {
                                Notify (\_SB.ATKD, 0x57)
                            }
                        }

                        Notify (\_SB.AC, 0x80)
                        Sleep (0x14)
                        Notify (\_SB.BAT0, 0x80)
                        Sleep (0x14)
                        Notify (\_SB.BAT1, 0x80)
                        Sleep (0x14)
                        Notify (\_PR.CPU1, 0x80)
                        Sleep (0x64)
                        Notify (\_PR.CPU1, 0x81)
                        Increment (APMS)
                    }
                }

                Device (OSYS)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x02)
                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x20)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x04C0, 0x04C0, 0x00, 0x10)
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (CRS, 0x0A, GP00)
                        CreateWordField (CRS, 0x0C, GP01)
                        CreateByteField (CRS, 0x0F, GP0L)
                        CreateWordField (CRS, 0x02, SBS0)
                        CreateWordField (CRS, 0x04, SBS1)
                        Store (PMBS, GP00)
                        Store (PMBS, GP01)
                        Store (SBUS, SBS0)
                        Store (SBUS, SBS1)
                        Store (PMLN, GP0L)
                        If (LAnd (LNot (LEqual (SPIO, 0x03F0)), LGreater (SPIO, 0xF0)))
                        {
                            CreateWordField (CRS, 0x12, GP10)
                            CreateWordField (CRS, 0x14, GP11)
                            CreateByteField (CRS, 0x17, GPL1)
                            Store (SPIO, GP10)
                            Store (SPIO, GP11)
                            Store (0x02, GPL1)
                        }

                        If (IO1B)
                        {
                            CreateWordField (CRS, 0x1A, GP20)
                            CreateWordField (CRS, 0x1C, GP21)
                            CreateByteField (CRS, 0x1F, GP2L)
                            Store (IO1B, GP20)
                            Store (IO1B, GP21)
                            Store (IO1L, GP2L)
                        }

                        If (IO2B)
                        {
                            CreateWordField (CRS, 0x22, GP30)
                            CreateWordField (CRS, 0x24, GP31)
                            CreateByteField (CRS, 0x27, GP3L)
                            Store (IO2B, GP30)
                            Store (IO2B, GP31)
                            Store (IO2L, GP3L)
                        }

                        If (APCB)
                        {
                            CreateDWordField (CRS, 0x38, ML01)
                            CreateDWordField (CRS, 0x34, MB01)
                            CreateDWordField (CRS, 0x44, ML02)
                            CreateDWordField (CRS, 0x40, MB02)
                            Store (APCB, MB01)
                            Store (APCL, ML01)
                            Store (0xFEE00000, MB02)
                            Store (0x1000, ML02)
                        }

                        Return (CRS)
                    }
                }

                Device (\_SB.SYSM)
                {
                    Name (_HID, EisaId ("PNP0C01"))
                    Name (_UID, 0x01)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                        Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000)
                        Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (CRS, 0x10, BAS1)
                        CreateDWordField (CRS, 0x14, LEN1)
                        CreateDWordField (CRS, 0x1C, BAS2)
                        CreateDWordField (CRS, 0x20, LEN2)
                        CreateDWordField (CRS, 0x2C, LEN3)
                        CreateDWordField (CRS, 0x34, BAS4)
                        CreateDWordField (CRS, 0x38, LEN4)
                        If (OSFL ()) {}
                        Else
                        {
                            If (MG1B)
                            {
                                If (LGreater (MG1B, 0x000C0000))
                                {
                                    Store (0x000C0000, BAS1)
                                    Subtract (MG1B, BAS1, LEN1)
                                }
                            }
                            Else
                            {
                                Store (0x000C0000, BAS1)
                                Store (0x00020000, LEN1)
                            }

                            If (Add (MG1B, MG1L, Local0))
                            {
                                Store (Local0, BAS2)
                                Subtract (0x00100000, BAS2, LEN2)
                            }
                        }

                        Subtract (MG2B, 0x00100000, LEN3)
                        Add (MG2B, MG2L, BAS4)
                        Subtract (0x00, BAS4, LEN4)
                        Return (CRS)
                    }
                }

                Scope (\)
                {
                    OperationRegion (\GPSC, SystemIO, 0xB2, 0x02)
                    Field (\GPSC, ByteAcc, NoLock, Preserve)
                    {
                        SMCM,   8, 
                        SMST,   8
                    }

                    Method (\ISMI, 1, Serialized)
                    {
                        Store (Arg0, SMCM)
                    }

                    Method (\DIAG, 1, NotSerialized)
                    {
                        Store (Arg0, DBG8)
                    }

                    OperationRegion (\SIOG, SystemIO, IO1B, 0x10)
                    Field (\SIOG, ByteAcc, NoLock, Preserve)
                    {
                        PO00,   1, 
                        PO01,   1, 
                        PO02,   1, 
                        PO03,   1, 
                        PO04,   1, 
                        PO05,   1, 
                        PO06,   1, 
                        PO07,   1, 
                        PI00,   1, 
                        PI01,   1, 
                        PI02,   1, 
                        PI03,   1, 
                        PI04,   1, 
                        PI05,   1, 
                        PI06,   1, 
                        PI07,   1, 
                        Offset (0x04), 
                        PO10,   1, 
                        PO11,   1, 
                        PO12,   1, 
                        PO13,   1, 
                        PO14,   1, 
                        PO15,   1, 
                        PO16,   1, 
                        PO17,   1, 
                        PI10,   1, 
                        PI11,   1, 
                        PI12,   1, 
                        PI13,   1, 
                        PI14,   1, 
                        PI15,   1, 
                        PI16,   1, 
                        PI17,   1, 
                        Offset (0x08), 
                        PO20,   1, 
                        PO21,   1, 
                        PO22,   1, 
                        PO23,   1, 
                        PO24,   1, 
                        PO25,   1, 
                        PO26,   1, 
                        PO27,   1, 
                        PI20,   1, 
                        PI21,   1, 
                        PI22,   1, 
                        PI23,   1, 
                        PI24,   1, 
                        PI25,   1, 
                        PI26,   1, 
                        PI27,   1, 
                        PO30,   1, 
                        PO31,   1, 
                        PO32,   1, 
                        PO33,   1, 
                        PO34,   1, 
                        PO35,   1, 
                        PO36,   1, 
                        PO37,   1, 
                        PI30,   1, 
                        PI31,   1, 
                        PI32,   1, 
                        PI33,   1, 
                        PI34,   1, 
                        PI35,   1, 
                        PI36,   1, 
                        PI37,   1
                    }

                    OperationRegion (\PMIO, SystemIO, PMBS, 0x80)
                    Field (\PMIO, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x10), 
                            ,   1, 
                        TDTY,   3, 
                        TENA,   1, 
                        TTDT,   3, 
                        FRCT,   1, 
                            ,   8, 
                        THLS,   1, 
                        Offset (0x28), 
                            ,   11, 
                        SBPS,   1, 
                        Offset (0x2A), 
                        Offset (0x2B), 
                        G08S,   1, 
                            ,   2, 
                        G11S,   1, 
                        G12S,   1, 
                        FLPS,   1, 
                        Offset (0x2C), 
                            ,   2, 
                        TPOL,   1, 
                        Offset (0x2D), 
                        Offset (0x2E), 
                        Offset (0x2F), 
                        G08E,   1, 
                            ,   2, 
                        G11E,   1, 
                        G12E,   1, 
                        Offset (0x30), 
                            ,   4, 
                        SLPE,   1, 
                        Offset (0x31), 
                        Offset (0x34), 
                            ,   4, 
                        SLPS,   1, 
                        Offset (0x35)
                    }

                    OperationRegion (\ECMS, SystemIO, 0x72, 0x02)
                    Field (\ECMS, ByteAcc, Lock, Preserve)
                    {
                        EIND,   8, 
                        EDAT,   8
                    }

                    IndexField (EIND, EDAT, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x12), 
                        IKFG,   8, 
                        FRPN,   16, 
                        RAMB,   32, 
                        AVOL,   8, 
                        LBTN,   8, 
                        CKLN,   8, 
                        CK00,   8, 
                        CK01,   8, 
                        CK02,   8, 
                        CK03,   8, 
                        CK04,   8, 
                        CK05,   8, 
                        CK06,   8, 
                        CK07,   8, 
                        CK08,   8, 
                        CK09,   8, 
                        CK10,   8, 
                        CK11,   8, 
                        CK12,   8, 
                        CK13,   8, 
                        CK14,   8, 
                        CK15,   8, 
                        CK16,   8, 
                        CK17,   8, 
                        CK18,   8, 
                        CK19,   8, 
                        CK20,   8, 
                        CK21,   8, 
                        CK22,   8, 
                        CK23,   8, 
                        CK24,   8, 
                        CK25,   8, 
                        CK26,   8, 
                        CK27,   8, 
                        CK28,   8, 
                        CK29,   8, 
                        ERRF,   8, 
                        OCLK,   8, 
                        WIDE,   1, 
                        OVCK,   2, 
                        S42K,   3, 
                        Offset (0x3D), 
                        CPUR,   6, 
                        CPUF,   2, 
                        LBT2,   8
                    }

                    OperationRegion (\RAMW, SystemMemory, RAMB, 0xFF)
                    Field (\RAMW, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xB0), 
                        TRTY,   8, 
                        FSFN,   8, 
                        FSTA,   16, 
                        FADR,   32, 
                        FSIZ,   16, 
                        ACTD,   8, 
                        AVLD,   8, 
                        SETD,   8, 
                        ACPF,   1, 
                        DCPF,   1, 
                        CHGF,   1, 
                        DCP2,   1, 
                        CHG2,   1, 
                        Offset (0xBE), 
                        PADL,   16, 
                        CADL,   16, 
                        CSTE,   16, 
                        NSTE,   16, 
                        Offset (0xC8), 
                        SFUN,   8, 
                        Offset (0xCA), 
                        TAC3,   8, 
                        TAC2,   8, 
                        TAC1,   8, 
                        TAC0,   8, 
                        TPSV,   8, 
                        Offset (0xD0), 
                        F1L0,   8, 
                        F2L0,   8, 
                        F1L1,   8, 
                        F2L1,   8, 
                        F1L2,   8, 
                        F2L2,   8, 
                        F1L3,   8, 
                        F2L3,   8, 
                        F1L4,   8, 
                        F2L4,   8, 
                        SLPT,   8, 
                        DBRD,   32, 
                        AIBF,   1, 
                        Offset (0xE0)
                    }

                    Name (OSFG, 0x00)
                    Name (OS9X, 0x01)
                    Name (OS98, 0x02)
                    Name (OSME, 0x04)
                    Name (OS2K, 0x08)
                    Name (OSXP, 0x10)
                    Method (OSVR, 0, NotSerialized)
                    {
                        If (CondRefOf (\_OSI, Local0))
                        {
                            Store (OSXP, OSFG)
                        }
                        Else
                        {
                            If (MCTH (\_OS, "Microsoft Windows"))
                            {
                                Store (OS98, OSFG)
                            }
                            Else
                            {
                                If (MCTH (\_OS, "Microsoft WindowsME: Millennium Edition"))
                                {
                                    Store (OSME, OSFG)
                                }
                                Else
                                {
                                    If (MCTH (\_OS, "Microsoft Windows NT"))
                                    {
                                        Store (OS2K, OSFG)
                                    }
                                    Else
                                    {
                                        Store (OSXP, OSFG)
                                    }
                                }
                            }
                        }

                        Return (OSFG)
                    }

                    OperationRegion (\SIOP, SystemIO, \SPIO, 0x02)
                    Field (\SIOP, ByteAcc, Lock, Preserve)
                    {
                        SIOI,   8, 
                        SIOD,   8
                    }

                    IndexField (SIOI, SIOD, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x07), 
                        LDNP,   8, 
                        Offset (0x30), 
                        LDCP,   8
                    }

                    Method (\DBGR, 1, NotSerialized)
                    {
                        Store (LDNP, Local0)
                        Store (0x01, LDNP)
                        Store (LDCP, Local1)
                        Store (0x01, LDCP)
                        Store (Arg0, DBRD)
                        \ISMI (\ADBR)
                        Store (0x01, LDNP)
                        Store (Local1, LDCP)
                        Store (Local0, LDNP)
                    }

                    Name (MNAM, "M6NE")
                    Name (ONAM, "ASUSTEK")
                }

                Scope (\_SB.PCI0)
                {
                    Method (_INI, 0, NotSerialized)
                    {
                        \OSVR ()
                    }
                }

                Scope (\_SB.PCI0.SBRG.EC0)
                {
                    Method (_Q6F, 0, NotSerialized)
                    {
                        Store (0x20, DP80)
                        If (\_SB.ATKP)
                        {
                            Notify (\_SB.ATKD, 0x45)
                        }
                    }

                    Method (_Q6E, 0, NotSerialized)
                    {
                        Store (0x19, DP80)
                        If (\_SB.ATKP)
                        {
                            Notify (\_SB.ATKD, 0x43)
                        }
                    }

                    Method (_Q6D, 0, NotSerialized)
                    {
                        Store (0x18, DP80)
                        If (\_SB.ATKP)
                        {
                            Notify (\_SB.ATKD, 0x40)
                        }
                    }

                    Method (_Q6C, 0, NotSerialized)
                    {
                        Store (0x17, DP80)
                        If (\_SB.ATKP)
                        {
                            Notify (\_SB.ATKD, 0x41)
                        }
                    }
                }

                Device (\_SB.BAT0)
                {
                    Name (_HID, EisaId ("PNP0C0A"))
                    Name (_UID, 0x00)
                    Name (_PCL, Package (0x01)
                    {
                        \_SB
                    })
                    Name (BADR, 0x16)
                    Name (PAK0, Package (0x0D)
                    {
                        0x01, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0x01, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        "", 
                        "", 
                        "", 
                        ""
                    })
                    Name (PAK1, Package (0x0D)
                    {
                        0x01, 
                        0x10CC, 
                        0x10CC, 
                        0x01, 
                        0x39D0, 
                        0xB6, 
                        0x82, 
                        0x34, 
                        0x0972, 
                        "M6NE", 
                        "00001", 
                        "LIon", 
                        "ASUSTek"
                    })
                    Method (_BIF, 0, NotSerialized)
                    {
                        If (BATS ())
                        {
                            Return (PAK0)
                        }

                        Acquire (BATX, 0xFFFF)
                        \_SB.PCI0.SBRG.EC0.STC5 (0x42)
                        Sleep (0x64)
                        Store (BIF1 (), Local0)
                        Store (CAPD, Index (PAK1, 0x01))
                        Store (FUCH, Index (PAK1, 0x02))
                        Store (DCWN, Index (PAK1, 0x05))
                        Store (DCLW, Index (PAK1, 0x06))
                        Store (DVOT, Index (PAK1, 0x04))
                        Release (BATX)
                        Return (PAK1)
                    }

                    Name (BFB0, Package (0x04)
                    {
                        0x00, 
                        0x0500, 
                        0x0E41, 
                        0xFFFFFFFF
                    })
                    Method (_BST, 0, NotSerialized)
                    {
                        If (BATS ())
                        {
                            Store (Ones, Index (BFB0, 0x00))
                            Store (Ones, Index (BFB0, 0x01))
                            Store (Ones, Index (BFB0, 0x02))
                            Store (Ones, Index (BFB0, 0x03))
                            Return (BFB0)
                        }
                        Else
                        {
                            Acquire (BATX, 0xFFFF)
                            \_SB.PCI0.SBRG.EC0.STC5 (0x42)
                            Sleep (0x64)
                            Store (BST1 (), Index (BFB0, 0x01))
                            Store (BST2 (), Local0)
                            Store (Local0, Index (BFB0, 0x02))
                            Store (BST0 (Local0), Index (BFB0, 0x00))
                            Store (BST3 (), Index (BFB0, 0x03))
                            Release (BATX)
                            Return (BFB0)
                        }
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Store (BATS (), Local0)
                        If (LNot (Local0))
                        {
                            Return (0x1F)
                        }
                        Else
                        {
                            Return (0x0F)
                        }
                    }

                    Name (SCAL, 0x0140)
                    Name (SENR, 0x14)
                    Name (CAPD, 0x00014820)
                    Name (FUCH, 0x00014820)
                    Name (DCWN, 0x01A4)
                    Name (DCLW, 0x01A4)
                    Name (DVOT, 0x0E)
                    Method (BIF1, 0, Serialized)
                    {
                        Store (0x00, DW00)
                        Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x18), Local0)
                        Store (Local0, CAPD)
                        Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x10), Local0)
                        ShiftRight (Local0, 0x06, Local1)
                        Subtract (Local0, Local1, FUCH)
                        Divide (CAPD, 0x21, Local0, Local1)
                        Store (Local1, DCWN)
                        Divide (CAPD, 0xC8, Local0, Local1)
                        Store (Local1, DCLW)
                        Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x19), DVOT)
                        Return (CAPD)
                    }

                    Method (BST0, 1, Serialized)
                    {
                        If (ACS ())
                        {
                            Store (Arg0, Local1)
                            If (LNot (LLess (Local1, FUCH)))
                            {
                                Store (0x00, Local0)
                            }
                            Else
                            {
                                Store (0x02, Local0)
                            }
                        }
                        Else
                        {
                            Store (0x01, Local0)
                        }
                    }

                    Method (BST1, 0, Serialized)
                    {
                        Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x0A), Local0)
                        And (Local0, 0xFFFF, Local0)
                        If (LGreater (Local0, 0x8000))
                        {
                            XOr (Local0, 0xFFFF, Local0)
                            Add (Local0, 0x01, Local0)
                        }
                        Else
                        {
                            Store (0xFFFFFFFF, Local0)
                        }

                        Return (Local0)
                    }

                    Method (BST2, 0, Serialized)
                    {
                        Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x0F), Local0)
                        If (ACS ())
                        {
                            \_SB.PCI0.SBRG.EC0.STC5 (0x20)
                            And (\_SB.PCI0.SBRG.EC0.ANYS, 0xFB, \_SB.PCI0.SBRG.EC0.ANYS)
                        }
                        Else
                        {
                            If (LLess (Local0, 0x01AF))
                            {
                                Or (\_SB.PCI0.SBRG.EC0.ANYS, 0x04, \_SB.PCI0.SBRG.EC0.ANYS)
                                If (BT1S)
                                {
                                    \_SB.PCI0.SBRG.EC0.STC5 (0x40)
                                }
                                Else
                                {
                                    And (\_SB.PCI0.SBRG.EC0.ANYS, 0x0C, Local1)
                                    If (LEqual (Local1, 0x0C))
                                    {
                                        \_SB.PCI0.SBRG.EC0.STC5 (0x40)
                                    }
                                    Else
                                    {
                                        \_SB.PCI0.SBRG.EC0.STC5 (0x20)
                                    }
                                }
                            }
                            Else
                            {
                                \_SB.PCI0.SBRG.EC0.STC5 (0x20)
                                And (\_SB.PCI0.SBRG.EC0.ANYS, 0xFB, \_SB.PCI0.SBRG.EC0.ANYS)
                            }
                        }

                        Return (Local0)
                    }

                    Method (BST3, 0, Serialized)
                    {
                        Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x09), Local0)
                        Return (Local0)
                    }

                    Method (VSRC, 1, Serialized)
                    {
                        And (Arg0, 0xFFFF, Local0)
                        And (Local0, 0x8000, Local1)
                        If (Local1)
                        {
                            Not (Local0, Local0)
                            And (Local0, 0xFFFF, Local0)
                            Increment (Local0)
                        }

                        Multiply (Local0, 0x03E8, Local0)
                        Multiply (0x08, SENR, Local1)
                        Divide (Local0, Local1, Local2, Local3)
                        Multiply (Local3, DVOT, Local3)
                        Return (Local3)
                    }

                    Method (PFCC, 1, Serialized)
                    {
                        Multiply (Arg0, 0x03E8, Local0)
                        Multiply (SCAL, SENR, Local1)
                        Divide (Local0, Local1, Local2, Local3)
                        Multiply (Local3, DVOT, Local3)
                        Return (Local3)
                    }
                }

                Scope (\_SB.PCI0.SBRG.EC0)
                {
                    Method (_Q2F, 0, NotSerialized)
                    {
                        Store (0x2F, DP80)
                        Sleep (0x05DC)
                        If (BATS ())
                        {
                            WREC (0x49, 0x80)
                        }
                        Else
                        {
                            WREC (0x49, 0x90)
                        }

                        Notify (\_SB.AC, 0x80)
                        Notify (\_SB.BAT0, 0x80)
                        Notify (\_SB.BAT0, 0x81)
                    }
                }

                Device (\_SB.BAT1)
                {
                    Name (_HID, EisaId ("PNP0C0A"))
                    Name (_UID, 0x01)
                    Name (_PCL, Package (0x01)
                    {
                        \_SB
                    })
                    Name (BADR, 0x16)
                    Name (PAK0, Package (0x0D)
                    {
                        0x01, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0x01, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        "", 
                        "", 
                        "", 
                        ""
                    })
                    Name (PAK1, Package (0x0D)
                    {
                        0x01, 
                        0x10CC, 
                        0x10CC, 
                        0x01, 
                        0x39D0, 
                        0xB6, 
                        0x82, 
                        0x34, 
                        0x0972, 
                        "M6NE", 
                        "00001", 
                        "LIon", 
                        "ASUSTek"
                    })
                    Method (_BIF, 0, NotSerialized)
                    {
                        If (\_SB.BT1S)
                        {
                            Return (PAK0)
                        }

                        Acquire (BATX, 0xFFFF)
                        \_SB.PCI0.SBRG.EC0.STC5 (0x22)
                        Sleep (0x64)
                        Store (BIF1 (), Local0)
                        Store (CAPD, Index (PAK1, 0x01))
                        Store (FUCH, Index (PAK1, 0x02))
                        Store (DCWN, Index (PAK1, 0x05))
                        Store (DCLW, Index (PAK1, 0x06))
                        Store (DVOT, Index (PAK1, 0x04))
                        Release (BATX)
                        Return (PAK1)
                    }

                    Name (BFB0, Package (0x04)
                    {
                        0x00, 
                        0x0500, 
                        0x0E41, 
                        0xFFFFFFFF
                    })
                    Method (_BST, 0, NotSerialized)
                    {
                        If (\_SB.BT1S)
                        {
                            Store (Ones, Index (BFB0, 0x00))
                            Store (Ones, Index (BFB0, 0x01))
                            Store (Ones, Index (BFB0, 0x02))
                            Store (Ones, Index (BFB0, 0x03))
                            Return (BFB0)
                        }
                        Else
                        {
                            Acquire (BATX, 0xFFFF)
                            \_SB.PCI0.SBRG.EC0.STC5 (0x22)
                            Sleep (0x64)
                            Store (BST1 (), Index (BFB0, 0x01))
                            Store (BST2 (), Local0)
                            Store (Local0, Index (BFB0, 0x02))
                            Store (BST0 (Local0), Index (BFB0, 0x00))
                            Store (BST3 (), Index (BFB0, 0x03))
                            Release (BATX)
                            Return (BFB0)
                        }
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Store (\_SB.BT1S, Local0)
                        If (LNot (Local0))
                        {
                            Return (0x1F)
                        }
                        Else
                        {
                            Return (0x0F)
                        }
                    }

                    Name (SCAL, 0x0140)
                    Name (SENR, 0x14)
                    Name (CAPD, 0x00014820)
                    Name (FUCH, 0x00014820)
                    Name (DCWN, 0x01A4)
                    Name (DCLW, 0x01A4)
                    Name (DVOT, 0x0E)
                    Method (BIF1, 0, Serialized)
                    {
                        Store (0x00, DW00)
                        Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x18), Local0)
                        Store (Local0, CAPD)
                        Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x10), Local0)
                        ShiftRight (Local0, 0x06, Local1)
                        Subtract (Local0, Local1, FUCH)
                        Divide (CAPD, 0x21, Local0, Local1)
                        Store (Local1, DCWN)
                        Divide (CAPD, 0xC8, Local0, Local1)
                        Store (Local1, DCLW)
                        Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x19), DVOT)
                        Return (CAPD)
                    }

                    Method (BST0, 1, Serialized)
                    {
                        If (ACS ())
                        {
                            Store (Arg0, Local1)
                            If (LNot (LLess (Local1, FUCH)))
                            {
                                Store (0x00, Local0)
                            }
                            Else
                            {
                                Store (0x02, Local0)
                            }
                        }
                        Else
                        {
                            Store (0x01, Local0)
                        }
                    }

                    Method (BST1, 0, Serialized)
                    {
                        Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x0B), Local0)
                        And (Local0, 0xFFFF, Local0)
                        If (LGreater (Local0, 0x8000))
                        {
                            XOr (Local0, 0xFFFF, Local0)
                            Add (Local0, 0x01, Local0)
                        }
                        Else
                        {
                            Store (0xFFFFFFFF, Local0)
                        }

                        Return (Local0)
                    }

                    Method (BST2, 0, Serialized)
                    {
                        Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x0F), Local0)
                        If (ACS ())
                        {
                            \_SB.PCI0.SBRG.EC0.STC5 (0x20)
                            And (\_SB.PCI0.SBRG.EC0.ANYS, 0xF7, \_SB.PCI0.SBRG.EC0.ANYS)
                        }
                        Else
                        {
                            If (LLess (Local0, 0x01AF))
                            {
                                Or (\_SB.PCI0.SBRG.EC0.ANYS, 0x08, \_SB.PCI0.SBRG.EC0.ANYS)
                                If (BATS ())
                                {
                                    \_SB.PCI0.SBRG.EC0.STC5 (0x40)
                                }
                            }
                            Else
                            {
                                \_SB.PCI0.SBRG.EC0.STC5 (0x20)
                                And (\_SB.PCI0.SBRG.EC0.ANYS, 0xF7, \_SB.PCI0.SBRG.EC0.ANYS)
                            }
                        }

                        Return (Local0)
                    }

                    Method (BST3, 0, Serialized)
                    {
                        Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x09), Local0)
                        Return (Local0)
                    }

                    Method (VSRC, 1, Serialized)
                    {
                        And (Arg0, 0xFFFF, Local0)
                        And (Local0, 0x8000, Local1)
                        If (Local1)
                        {
                            Not (Local0, Local0)
                            And (Local0, 0xFFFF, Local0)
                            Increment (Local0)
                        }

                        Multiply (Local0, 0x03E8, Local0)
                        Multiply (0x08, SENR, Local1)
                        Divide (Local0, Local1, Local2, Local3)
                        Multiply (Local3, DVOT, Local3)
                        Return (Local3)
                    }

                    Method (PFCC, 1, Serialized)
                    {
                        Multiply (Arg0, 0x03E8, Local0)
                        Multiply (SCAL, SENR, Local1)
                        Divide (Local0, Local1, Local2, Local3)
                        Multiply (Local3, DVOT, Local3)
                        Return (Local3)
                    }
                }

                Scope (\_SB.PCI0.SBRG.EC0)
                {
                    Scope (\_GPE)
                    {
                        Method (_L13, 0, NotSerialized)
                        {
                            Sleep (0x05DC)
                            If (\_SB.BT1S)
                            {
                                Store (0x00, \_SB.BT1S)
                                Notify (\_SB.BAT1, 0x01)
                            }
                            Else
                            {
                                Notify (\_SB.BAT1, 0x00)
                                Store (0x01, \_SB.BT1S)
                            }

                            Notify (\_SB.AC, 0x80)
                            Notify (\_SB.BAT1, 0x80)
                            Notify (\_SB.BAT1, 0x81)
                        }
                    }
                }

                Scope (\_SB)
                {
                    Name (ATKP, Zero)
                    Device (ATKD)
                    {
                        Name (_HID, "ATK0100")
                        Name (_UID, 0x01010100)
                        Method (INIT, 1, NotSerialized)
                        {
                            Store (One, ATKP)
                            Return ("M6NE")
                        }

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

                        Method (MLED, 1, NotSerialized)
                        {
                            If (Arg0)
                            {
                                Store (Arg0, DBG8)
                                Store (0x31, Local0)
                            }
                            Else
                            {
                                Store (Arg0, DBG8)
                                Store (0x51, Local0)
                            }

                            \_SB.PCI0.SBRG.EC0.STC5 (Local0)
                        }

                        Method (TMPR, 0, NotSerialized)
                        {
                            Store (\_TZ.RTMP (), Local0)
                            Store (\_TZ.RFAN (), Local1)
                            ShiftLeft (Local1, 0x10, Local1)
                            Add (\_TZ.KELV (Local0), Local1, Local0)
                            Store (Zero, Local2)
                            If (\TENA)
                            {
                                Store (\TDTY, Local2)
                            }
                            Else
                            {
                                If (\THLS)
                                {
                                    Store (\TTDT, Local2)
                                }
                            }

                            ShiftLeft (Local2, 0x18, Local2)
                            Add (Local0, Local2, Local0)
                            Return (Local0)
                        }

                        Method (SFUN, 0, NotSerialized)
                        {
                            Store (0x77, Local0)
                            If (LEqual (\_SB.PCI0.P0P2.MPC0.MPDP (), 0x01))
                            {
                                Or (Local0, 0x0100, Local0)
                            }

                            If (LGreater (\_SB.PCI0.P0P2.MPC0.MPDP (), 0x01))
                            {
                                Or (Local0, 0x0800, Local0)
                            }

                            Return (Local0)
                        }

                        Method (WDEV, 0, NotSerialized)
                        {
                            Return (\_SB.PCI0.P0P2.MPC0.MPDP ())
                        }

                        Method (OSVR, 1, NotSerialized)
                        {
                            If (MCTH (\_OS, "Microsoft Windows NT"))
                            {
                                Store (0x08, OSFG)
                            }
                            Else
                            {
                                Store (0x10, OSFG)
                            }
                        }

                        Method (GPLV, 0, NotSerialized)
                        {
                            Return (\_SB.PCI0.SBRG.EC0.BRCT)
                        }

                        Method (SPLV, 1, NotSerialized)
                        {
                            Store (Arg0, \_SB.PCI0.SBRG.EC0.BRCT)
                            \_SB.PCI0.SBRG.EC0.STBR ()
                            Return (0x01)
                        }

                        Method (WLED, 1, NotSerialized)
                        {
                            If (Arg0)
                            {
                                Store (0x00, \_SB.PCI0.SBRG.SG13)
                            }
                            Else
                            {
                                Store (0x01, \_SB.PCI0.SBRG.SG13)
                            }
                        }

                        Method (SDSP, 1, NotSerialized)
                        {
                            If (LEqual (\_SB.PCI0.P0P1.VGA.SWIT, 0x00))
                            {
                                Store (Arg0, Local0)
                                If (And (Local0, 0x01))
                                {
                                    Store (0x01, \_SB.PCI0.P0P1.VGA.LCD._DGS)
                                }
                                Else
                                {
                                    Store (0x00, \_SB.PCI0.P0P1.VGA.LCD._DGS)
                                }

                                If (And (Local0, 0x02))
                                {
                                    Store (0x01, \_SB.PCI0.P0P1.VGA.CRT._DGS)
                                }
                                Else
                                {
                                    Store (0x00, \_SB.PCI0.P0P1.VGA.CRT._DGS)
                                }

                                If (And (Local0, 0x04))
                                {
                                    Store (0x01, \_SB.PCI0.P0P1.VGA.TV._DGS)
                                }
                                Else
                                {
                                    Store (0x00, \_SB.PCI0.P0P1.VGA.TV._DGS)
                                }

                                Notify (\_SB.PCI0.P0P1.VGA, 0x80)
                                Store (0x00, \_SB.PCI0.SBRG.EC0.DSTE)
                                Store (0x00, \_SB.PCI0.SBRG.EC0.CSTE)
                            }
                        }

                        Method (GPID, 0, NotSerialized)
                        {
                            Store (\_SB.PCI0.SBRG.EC0.ANYS, Local0)
                            ShiftRight (Local0, 0x04, Local0)
                            Return (Local0)
                        }
                    }
                }

                Scope (\_SB.ATKD)
                {
                    Method (FSMI, 1, NotSerialized)
                    {
                        Store (Arg0, \FSFN)
                        Or (Arg0, 0xA0, Local0)
                        Store (Local0, \DBG8)
                        ISMI (\WFAT)
                        Return (\FSTA)
                    }

                    Method (FLSH, 1, NotSerialized)
                    {
                        Store (Arg0, \FSTA)
                        FSMI (0x00)
                    }

                    Method (FINI, 1, NotSerialized)
                    {
                        Store (Arg0, \FADR)
                        Return (FSMI (0x01))
                    }

                    Method (FERS, 1, NotSerialized)
                    {
                        Store (Arg0, \FSTA)
                        Return (FSMI (0x02))
                    }

                    Method (FWRI, 1, NotSerialized)
                    {
                        Store (Arg0, \FADR)
                        Store (0x1000, \FSIZ)
                        Return (Subtract (0x1000, FSMI (0x03)))
                    }

                    Method (FWRP, 0, NotSerialized)
                    {
                        Store (0x00, \FSIZ)
                        Return (Subtract (0x1000, FSMI (0x03)))
                    }
                }
            }

            Device (SMBS)
            {
                Name (_ADR, 0x001F0003)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x07, 0x03))
                }
            }

            Device (MODM)
            {
                Name (_ADR, 0x001F0006)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x05, 0x03))
                }
            }

            Device (IDE0)
            {
                Name (_ADR, 0x001F0001)
                Name (REGF, 0x01)
                Method (_REG, 2, NotSerialized)
                {
                    If (LEqual (Arg0, 0x02))
                    {
                        Store (Arg1, REGF)
                    }
                }

                OperationRegion (BAR0, PCI_Config, 0x00, 0x0100)
                Field (BAR0, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x40), 
                    TIMP,   16, 
                    TIMS,   16, 
                    STMP,   4, 
                    STMS,   4, 
                    Offset (0x48), 
                    UDMP,   2, 
                    UDMS,   2, 
                    Offset (0x4A), 
                    UDTP,   6, 
                    Offset (0x4B), 
                    UDTS,   6, 
                    Offset (0x54), 
                    PCB0,   2, 
                    SCB0,   2, 
                    PCA0,   2, 
                    SCA0,   2, 
                        ,   4, 
                    FPB0,   2, 
                    FSB0,   2
                }

                Name (TIM0, Package (0x09)
                {
                    Package (0x04)
                    {
                        0x78, 
                        0xB4, 
                        0xF0, 
                        0x0384
                    }, 

                    Package (0x04)
                    {
                        0x23, 
                        0x21, 
                        0x10, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0B, 
                        0x09, 
                        0x04, 
                        0x00
                    }, 

                    Package (0x06)
                    {
                        0x70, 
                        0x49, 
                        0x36, 
                        0x27, 
                        0x19, 
                        0x0F
                    }, 

                    Package (0x06)
                    {
                        0x00, 
                        0x01, 
                        0x02, 
                        0x01, 
                        0x02, 
                        0x01
                    }, 

                    Package (0x06)
                    {
                        0x00, 
                        0x00, 
                        0x00, 
                        0x01, 
                        0x01, 
                        0x01
                    }, 

                    Package (0x06)
                    {
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x01
                    }, 

                    Package (0x04)
                    {
                        0x04, 
                        0x03, 
                        0x02, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x02, 
                        0x01, 
                        0x00, 
                        0x00
                    }
                })
                Name (TMD0, Buffer (0x14) {})
                CreateDWordField (TMD0, 0x00, PIO0)
                CreateDWordField (TMD0, 0x04, DMA0)
                CreateDWordField (TMD0, 0x08, PIO1)
                CreateDWordField (TMD0, 0x0C, DMA1)
                CreateDWordField (TMD0, 0x10, CHNF)
                Name (GTIM, 0x00)
                Name (GSTM, 0x00)
                Name (GUDM, 0x00)
                Name (GUDT, 0x00)
                Name (GCB0, 0x00)
                Name (GFB0, 0x00)
                Device (CHN0)
                {
                    Name (_ADR, 0x00)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (GTM (TIMP, STMP, UDMP, UDTP, PCB0, FPB0))
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, Debug)
                        Store (Arg0, TMD0)
                        Store (TIMP, GTIM)
                        Store (UDTP, GUDT)
                        If (STM ())
                        {
                            Store (GTIM, TIMP)
                            Store (GSTM, STMP)
                            Store (GUDM, UDMP)
                            Store (GUDT, UDTP)
                            Store (GCB0, PCB0)
                            Store (GFB0, FPB0)
                        }

                        Store (GTF (0x00, Arg1), ATA0)
                        Store (GTF (0x01, Arg2), ATA1)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (RATA (ATA0))
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (RATA (ATA1))
                        }
                    }
                }

                Device (CHN1)
                {
                    Name (_ADR, 0x01)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (GTM (TIMS, STMS, UDMS, UDTS, SCB0, FSB0))
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, Debug)
                        Store (Arg0, TMD0)
                        Store (TIMS, GTIM)
                        Store (UDTS, GUDT)
                        If (STM ())
                        {
                            Store (GTIM, TIMS)
                            Store (GSTM, STMS)
                            Store (GUDM, UDMS)
                            Store (GUDT, UDTS)
                            Store (GCB0, SCB0)
                            Store (GFB0, FSB0)
                        }

                        Store (GTF (0x00, Arg1), ATA2)
                        Store (GTF (0x01, Arg2), ATA3)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (RATA (ATA2))
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (RATA (ATA3))
                        }
                    }
                }

                Method (GTM, 6, Serialized)
                {
                    Store (Ones, PIO0)
                    Store (PIO0, PIO1)
                    Store (PIO0, DMA0)
                    Store (PIO0, DMA1)
                    Store (Zero, CHNF)
                    If (REGF) {}
                    Else
                    {
                        Return (TMD0)
                    }

                    If (And (Arg0, 0x02))
                    {
                        Or (CHNF, 0x02, CHNF)
                    }

                    ShiftRight (And (Arg0, 0x3300), 0x08, Local5)
                    Store (Match (DerefOf (Index (TIM0, 0x01)), MLE, Local5, MTR, 0x00, 0x00), Local6)
                    Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7)
                    Store (Local7, DMA0)
                    If (And (Arg0, 0x08))
                    {
                        Store (0x0384, PIO0)
                    }
                    Else
                    {
                        Store (Local7, PIO0)
                    }

                    If (And (Arg0, 0x20))
                    {
                        Or (CHNF, 0x08, CHNF)
                    }

                    If (And (Arg0, 0x4000))
                    {
                        Or (CHNF, 0x10, CHNF)
                        Store (Match (DerefOf (Index (TIM0, 0x02)), MLE, Arg1, MTR, 0x00, 0x00), Local5)
                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local5)), Local6)
                        Store (Local6, DMA1)
                        If (And (Arg0, 0x80))
                        {
                            Store (0x0384, PIO1)
                        }
                        Else
                        {
                            Store (Local6, PIO1)
                        }
                    }

                    If (And (Arg2, 0x01))
                    {
                        And (Arg3, 0x03, Local5)
                        If (LAnd (And (Arg5, 0x01), LEqual (Local5, 0x01)))
                        {
                            Add (Local5, 0x04, Local5)
                        }
                        Else
                        {
                            If (And (Arg4, 0x01))
                            {
                                Add (Local5, 0x02, Local5)
                            }
                        }

                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA0)
                        Or (CHNF, 0x01, CHNF)
                    }

                    If (And (Arg2, 0x02))
                    {
                        And (ShiftRight (Arg3, 0x04), 0x03, Local5)
                        If (LAnd (And (Arg5, 0x02), LEqual (Local5, 0x01)))
                        {
                            Add (Local5, 0x04, Local5)
                        }
                        Else
                        {
                            If (And (Arg4, 0x02))
                            {
                                Add (Local5, 0x02, Local5)
                            }
                        }

                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA1)
                        Or (CHNF, 0x04, CHNF)
                    }

                    Store (TMD0, Debug)
                    Return (TMD0)
                }

                Method (STM, 0, Serialized)
                {
                    If (REGF) {}
                    Else
                    {
                        Return (0x00)
                    }

                    And (GTIM, 0x8044, GTIM)
                    Store (0x00, GSTM)
                    Store (0x00, GUDM)
                    Store (0x00, GCB0)
                    And (GUDT, 0xCC, GUDT)
                    Store (0x00, GFB0)
                    If (And (CHNF, 0x01))
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR, 0x00, 0x00), Local0)
                        If (LGreater (Local0, 0x05))
                        {
                            Store (0x05, Local0)
                        }

                        Or (GUDT, DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GUDT)
                        Or (GCB0, DerefOf (Index (DerefOf (Index (TIM0, 0x05)), Local0)), GCB0)
                        Or (GFB0, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), GFB0)
                        Or (GUDM, 0x01, GUDM)
                    }
                    Else
                    {
                        If (Or (LEqual (PIO0, Ones), LEqual (PIO0, 0x00)))
                        {
                            If (And (LLess (DMA0, Ones), LGreater (DMA0, 0x00)))
                            {
                                Store (DMA0, PIO0)
                                Or (GTIM, 0x08, GTIM)
                            }
                        }
                    }

                    If (And (CHNF, 0x04))
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR, 0x00, 0x00), Local0)
                        If (LGreater (Local0, 0x05))
                        {
                            Store (0x05, Local0)
                        }

                        Or (GUDT, ShiftLeft (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), 0x04), GUDT)
                        Or (GCB0, ShiftLeft (DerefOf (Index (DerefOf (Index (TIM0, 0x05)), Local0)), 0x01), GCB0)
                        Or (GFB0, ShiftLeft (DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), 0x01), GFB0)
                        Or (GUDM, 0x02, GUDM)
                    }
                    Else
                    {
                        If (Or (LEqual (PIO1, Ones), LEqual (PIO1, 0x00)))
                        {
                            If (And (LLess (DMA1, Ones), LGreater (DMA1, 0x00)))
                            {
                                Store (DMA1, PIO1)
                                Or (GTIM, 0x80, GTIM)
                            }
                        }
                    }

                    If (And (CHNF, 0x02))
                    {
                        Or (GTIM, 0x03, GTIM)
                    }

                    If (And (CHNF, 0x08))
                    {
                        Or (GTIM, 0x30, GTIM)
                    }

                    And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO0, MTR, 0x00, 0x00), 0x03, Local0)
                    Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1)
                    ShiftLeft (Local1, 0x08, Local2)
                    Or (GTIM, Local2, GTIM)
                    If (And (CHNF, 0x10))
                    {
                        Or (GTIM, 0x4000, GTIM)
                        And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO1, MTR, 0x00, 0x00), 0x03, Local0)
                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)), GSTM)
                    }

                    Return (0x01)
                }

                Name (AT01, Buffer (0x07)
                {
                    0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF
                })
                Name (AT02, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90
                })
                Name (AT03, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6
                })
                Name (AT04, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91
                })
                Name (ATA0, Buffer (0x1D) {})
                Name (ATA1, Buffer (0x1D) {})
                Name (ATA2, Buffer (0x1D) {})
                Name (ATA3, Buffer (0x1D) {})
                Name (ATAB, Buffer (0x1D) {})
                CreateByteField (ATAB, 0x00, CMDC)
                Method (GTFB, 3, Serialized)
                {
                    Multiply (CMDC, 0x38, Local0)
                    Add (Local0, 0x08, Local1)
                    CreateField (ATAB, Local1, 0x38, CMDX)
                    Multiply (CMDC, 0x07, Local0)
                    CreateByteField (ATAB, Add (Local0, 0x02), A001)
                    CreateByteField (ATAB, Add (Local0, 0x06), A005)
                    Store (Arg0, CMDX)
                    Store (Arg1, A001)
                    Store (Arg2, A005)
                    Increment (CMDC)
                }

                Method (GTF, 2, Serialized)
                {
                    Store (Arg1, Debug)
                    Store (0x00, CMDC)
                    Name (ID49, 0x0C00)
                    Name (ID59, 0x00)
                    Name (ID53, 0x04)
                    Name (ID63, 0x0F00)
                    Name (ID88, 0x0F00)
                    Name (IRDY, 0x01)
                    Name (PIOT, 0x00)
                    Name (DMAT, 0x00)
                    If (LEqual (SizeOf (Arg1), 0x0200))
                    {
                        CreateWordField (Arg1, 0x62, IW49)
                        Store (IW49, ID49)
                        CreateWordField (Arg1, 0x6A, IW53)
                        Store (IW53, ID53)
                        CreateWordField (Arg1, 0x7E, IW63)
                        Store (IW63, ID63)
                        CreateWordField (Arg1, 0x76, IW59)
                        Store (IW59, ID59)
                        CreateWordField (Arg1, 0xB0, IW88)
                        Store (IW88, ID88)
                    }

                    Store (0xA0, Local7)
                    If (Arg0)
                    {
                        Store (0xB0, Local7)
                        And (CHNF, 0x08, IRDY)
                        If (And (CHNF, 0x10))
                        {
                            Store (PIO1, PIOT)
                        }
                        Else
                        {
                            Store (PIO0, PIOT)
                        }

                        If (And (CHNF, 0x04))
                        {
                            If (And (CHNF, 0x10))
                            {
                                Store (DMA1, DMAT)
                            }
                            Else
                            {
                                Store (DMA0, DMAT)
                            }
                        }
                    }
                    Else
                    {
                        And (CHNF, 0x02, IRDY)
                        Store (PIO0, PIOT)
                        If (And (CHNF, 0x01))
                        {
                            Store (DMA0, DMAT)
                        }
                    }

                    If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT))
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, 0x00, 0x00), Local1)
                        If (LGreater (Local1, 0x05))
                        {
                            Store (0x05, Local1)
                        }

                        GTFB (AT01, Or (0x40, Local1), Local7)
                    }
                    Else
                    {
                        If (LAnd (And (ID63, 0xFF00), PIOT))
                        {
                            And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x03, Local0)
                            Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x08)), Local0)), Local1)
                            GTFB (AT01, Local1, Local7)
                        }
                    }

                    If (IRDY)
                    {
                        And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x03, Local0)
                        Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0)), Local1)
                        GTFB (AT01, Local1, Local7)
                    }
                    Else
                    {
                        If (And (ID49, 0x0400))
                        {
                            GTFB (AT01, 0x01, Local7)
                        }
                    }

                    If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF)))
                    {
                        GTFB (AT03, And (ID59, 0xFF), Local7)
                    }

                    Store (ATAB, Debug)
                    Return (ATAB)
                }

                Method (RATA, 1, NotSerialized)
                {
                    CreateByteField (Arg0, 0x00, CMDN)
                    Multiply (CMDN, 0x38, Local0)
                    CreateField (Arg0, 0x08, Local0, RETB)
                    Store (RETB, Debug)
                    Return (RETB)
                }
            }

            Device (P0P2)
            {
                Name (_ADR, 0x001E0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0B, 0x03))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    Return (PR02)
                }

                Device (CBC1)
                {
                    Name (_ADR, 0x00010001)
                    Name (_PRW, Package (0x02)
                    {
                        0x0B, 
                        0x03
                    })
                    OperationRegion (PMES, PCI_Config, 0xE0, 0x02)
                    Field (PMES, ByteAcc, NoLock, Preserve)
                    {
                        RE0,    8, 
                        RE1,    8
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                    }

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

                    Method (CEV1, 0, NotSerialized)
                    {
                    }
                }

                Device (ILNK)
                {
                    Name (_ADR, 0x00010002)
                }

                Device (LAN)
                {
                    Name (_ADR, 0x00)
                }

                Device (MPC0)
                {
                    Name (_ADR, 0x00020000)
                    OperationRegion (MINP, PCI_Config, 0x00, 0x68)
                    Field (MINP, ByteAcc, NoLock, Preserve)
                    {
                        VNUM,   32, 
                        Offset (0x2C), 
                        SNUM,   32, 
                        Offset (0x34)
                    }

                    Method (MPDP, 0, NotSerialized)
                    {
                        If (LEqual (SNUM, 0x04621668))
                        {
                            Return (0x01)
                        }

                        If (LEqual (SNUM, 0x25228086))
                        {
                            Return (0x02)
                        }

                        If (LEqual (SNUM, 0x25278086))
                        {
                            Return (0x02)
                        }

                        If (LEqual (SNUM, 0x10201043))
                        {
                            Return (0x04)
                        }

                        If (LEqual (SNUM, 0x120F1043))
                        {
                            Return (0x04)
                        }

                        If (LEqual (SNUM, 0x25108086))
                        {
                            Return (0x08)
                        }

                        If (LNot (LEqual (VNUM, 0xFFFF)))
                        {
                            Return (0x02)
                        }

                        Return (0x00)
                    }
                }
            }

            Device (P0P1)
            {
                Name (_ADR, 0x00010000)
                Method (_PRT, 0, NotSerialized)
                {
                    Return (PR01)
                }

                Device (VGA)
                {
                    Name (_ADR, 0x00)
                    Method (_DOS, 1, NotSerialized)
                    {
                        Store (Arg0, SWIT)
                    }

                    Name (_DOD, Package (0x03)
                    {
                        0x00010100, 
                        0x00010110, 
                        0x0200
                    })
                    Device (CRT)
                    {
                        Name (_ADR, 0x0100)
                        Name (_DCS, 0x1F)
                        Name (_DGS, 0x00)
                        Method (_DSS, 1, NotSerialized)
                        {
                            If (LEqual (Arg0, 0x00))
                            {
                                Store (0x1D, \_SB.PCI0.P0P1.VGA.CRT._DCS)
                            }

                            If (LEqual (Arg0, 0x01))
                            {
                                Store (0x1F, \_SB.PCI0.P0P1.VGA.CRT._DCS)
                            }

                            If (LEqual (Arg0, 0x80000000))
                            {
                                Store (0x1D, \_SB.PCI0.P0P1.VGA.CRT._DCS)
                            }

                            If (LEqual (Arg0, 0x80000001))
                            {
                                Store (0x1F, \_SB.PCI0.P0P1.VGA.CRT._DCS)
                            }

                            If (LEqual (Arg0, 0x40000000))
                            {
                                XOr (0x01, \_SB.PCI0.P0P1.VGA.CRT._DGS, \_SB.PCI0.P0P1.VGA.CRT._DGS)
                            }

                            If (LEqual (Arg0, 0x40000001))
                            {
                                XOr (0x01, \_SB.PCI0.P0P1.VGA.CRT._DGS, \_SB.PCI0.P0P1.VGA.CRT._DGS)
                            }

                            If (LEqual (Arg0, 0xC0000000))
                            {
                                XOr (0x01, \_SB.PCI0.P0P1.VGA.CRT._DGS, \_SB.PCI0.P0P1.VGA.CRT._DGS)
                            }

                            If (LEqual (Arg0, 0xC0000001))
                            {
                                XOr (0x01, \_SB.PCI0.P0P1.VGA.CRT._DGS, \_SB.PCI0.P0P1.VGA.CRT._DGS)
                            }
                        }
                    }

                    Device (TV)
                    {
                        Name (_ADR, 0x0200)
                        Name (_DCS, 0x1F)
                        Name (_DGS, 0x00)
                        Method (_DSS, 1, NotSerialized)
                        {
                            If (LEqual (Arg0, 0x00))
                            {
                                Store (0x1D, \_SB.PCI0.P0P1.VGA.TV._DCS)
                            }

                            If (LEqual (Arg0, 0x01))
                            {
                                Store (0x1F, \_SB.PCI0.P0P1.VGA.TV._DCS)
                            }

                            If (LEqual (Arg0, 0x80000000))
                            {
                                Store (0x1D, \_SB.PCI0.P0P1.VGA.TV._DCS)
                            }

                            If (LEqual (Arg0, 0x80000001))
                            {
                                Store (0x1F, \_SB.PCI0.P0P1.VGA.TV._DCS)
                            }

                            If (LEqual (Arg0, 0x40000000))
                            {
                                XOr (0x01, \_SB.PCI0.P0P1.VGA.TV._DGS, \_SB.PCI0.P0P1.VGA.TV._DGS)
                            }

                            If (LEqual (Arg0, 0x40000001))
                            {
                                XOr (0x01, \_SB.PCI0.P0P1.VGA.TV._DGS, \_SB.PCI0.P0P1.VGA.TV._DGS)
                            }

                            If (LEqual (Arg0, 0xC0000000))
                            {
                                XOr (0x01, \_SB.PCI0.P0P1.VGA.TV._DGS, \_SB.PCI0.P0P1.VGA.TV._DGS)
                            }

                            If (LEqual (Arg0, 0xC0000001))
                            {
                                XOr (0x01, \_SB.PCI0.P0P1.VGA.TV._DGS, \_SB.PCI0.P0P1.VGA.TV._DGS)
                            }
                        }
                    }

                    Device (LCD)
                    {
                        Name (_ADR, 0x0110)
                        Name (_DCS, 0x1F)
                        Name (_DGS, 0x00)
                        Method (_DSS, 1, NotSerialized)
                        {
                            If (LEqual (Arg0, 0x00))
                            {
                                Store (0x1D, \_SB.PCI0.P0P1.VGA.LCD._DCS)
                            }

                            If (LEqual (Arg0, 0x01))
                            {
                                Store (0x1F, \_SB.PCI0.P0P1.VGA.LCD._DCS)
                            }

                            If (LEqual (Arg0, 0x80000000))
                            {
                                Store (0x1D, \_SB.PCI0.P0P1.VGA.LCD._DCS)
                            }

                            If (LEqual (Arg0, 0x80000001))
                            {
                                Store (0x1F, \_SB.PCI0.P0P1.VGA.LCD._DCS)
                            }

                            If (LEqual (Arg0, 0x40000000))
                            {
                                XOr (0x01, \_SB.PCI0.P0P1.VGA.LCD._DGS, \_SB.PCI0.P0P1.VGA.LCD._DGS)
                            }

                            If (LEqual (Arg0, 0x40000001))
                            {
                                XOr (0x01, \_SB.PCI0.P0P1.VGA.LCD._DGS, \_SB.PCI0.P0P1.VGA.LCD._DGS)
                            }

                            If (LEqual (Arg0, 0xC0000000))
                            {
                                XOr (0x01, \_SB.PCI0.P0P1.VGA.LCD._DGS, \_SB.PCI0.P0P1.VGA.LCD._DGS)
                            }

                            If (LEqual (Arg0, 0xC0000001))
                            {
                                XOr (0x01, \_SB.PCI0.P0P1.VGA.LCD._DGS, \_SB.PCI0.P0P1.VGA.LCD._DGS)
                            }
                        }
                    }

                    Name (SWIT, 0x01)
                    Name (GDCS, 0x00)
                    Name (GDGS, 0x01)
                }
            }

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

            Device (USB1)
            {
                Name (_ADR, 0x001D0000)
                OperationRegion (BAR0, PCI_Config, 0xC0, 0x05)
                Field (BAR0, ByteAcc, NoLock, Preserve)
                {
                    UBL1,   16, 
                    Offset (0x04), 
                    P0WE,   1, 
                    P1WE,   1, 
                    Offset (0x05)
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x01, P0WE)
                        Store (0x01, P1WE)
                    }
                    Else
                    {
                        Store (0x00, P0WE)
                        Store (0x00, P1WE)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x03, 0x03))
                }
            }

            Device (USB2)
            {
                Name (_ADR, 0x001D0001)
                OperationRegion (BAR0, PCI_Config, 0xC0, 0x05)
                Field (BAR0, ByteAcc, NoLock, Preserve)
                {
                    UBL1,   16, 
                    Offset (0x04), 
                    P0WE,   1, 
                    P1WE,   1, 
                    Offset (0x05)
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x01, P0WE)
                        Store (0x01, P1WE)
                    }
                    Else
                    {
                        Store (0x00, P0WE)
                        Store (0x00, P1WE)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x04, 0x03))
                }
            }

            Device (USB3)
            {
                Name (_ADR, 0x001D0002)
                OperationRegion (BAR0, PCI_Config, 0xC0, 0x05)
                Field (BAR0, ByteAcc, NoLock, Preserve)
                {
                    UBL1,   16, 
                    Offset (0x04), 
                    P0WE,   1, 
                    P1WE,   1, 
                    Offset (0x05)
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x01, P0WE)
                        Store (0x01, P1WE)
                    }
                    Else
                    {
                        Store (0x00, P0WE)
                        Store (0x00, P1WE)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0C, 0x03))
                }
            }
        }

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

            Method (_L05, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.MODM, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L0B, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.P0P2, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L03, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB1, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L04, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB2, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L0C, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB3, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }
        }

        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Name (_UID, 0xAA)
            Name (_STA, 0x0B)
        }
    }

    Scope (\_PR)
    {
        Processor (CPU1, 0x01, 0x00000410, 0x07)
        {
            Method (_CST, 0, NotSerialized)
            {
                Name (ACST, Package (0x03)
                {
                    0x02, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x00000000000005FF)
                        }, 

                        0x02, 
                        0x01, 
                        0x03E8
                    }, 

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

                        0x03, 
                        0x01, 
                        0x01F4
                    }
                })
                Add (\PMBS, 0x14, Local0)
                Store (Local0, Index (DerefOf (Index (DerefOf (Index (ACST, 0x01)), 0x00)), 0x07))
                Store (ShiftRight (Local0, 0x08), Index (DerefOf (Index (DerefOf (Index (ACST, 0x01)), 0x00)), 0x08))
                Add (\PMBS, 0x15, Local0)
                Store (Local0, Index (DerefOf (Index (DerefOf (Index (ACST, 0x02)), 0x00)), 0x07))
                Store (ShiftRight (Local0, 0x08), Index (DerefOf (Index (DerefOf (Index (ACST, 0x02)), 0x00)), 0x08))
                Name (BCST, Package (0x04)
                {
                    0x03, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x00000000000005FF)
                        }, 

                        0x02, 
                        0x01, 
                        0x03E8
                    }, 

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

                        0x03, 
                        0x01, 
                        0x01F4
                    }, 

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

                        0x04, 
                        0x02, 
                        0xFA
                    }
                })
                Add (\PMBS, 0x14, Local0)
                Store (Local0, Index (DerefOf (Index (DerefOf (Index (BCST, 0x01)), 0x00)), 0x07))
                Store (ShiftRight (Local0, 0x08), Index (DerefOf (Index (DerefOf (Index (BCST, 0x01)), 0x00)), 0x08))
                Add (\PMBS, 0x15, Local0)
                Store (Local0, Index (DerefOf (Index (DerefOf (Index (BCST, 0x02)), 0x00)), 0x07))
                Store (ShiftRight (Local0, 0x08), Index (DerefOf (Index (DerefOf (Index (BCST, 0x02)), 0x00)), 0x08))
                Add (\PMBS, 0x16, Local0)
                Store (Local0, Index (DerefOf (Index (DerefOf (Index (BCST, 0x03)), 0x00)), 0x07))
                Store (ShiftRight (Local0, 0x08), Index (DerefOf (Index (DerefOf (Index (BCST, 0x01)), 0x00)), 0x08))
                Name (NOC3, Package (0x02)
                {
                    0x01, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x00000000000005FF)
                        }, 

                        0x02, 
                        0x01, 
                        0x03E8
                    }
                })
                Add (\PMBS, 0x14, Local0)
                Store (Local0, Index (DerefOf (Index (DerefOf (Index (NOC3, 0x01)), 0x00)), 0x07))
                Store (ShiftRight (Local0, 0x08), Index (DerefOf (Index (DerefOf (Index (NOC3, 0x01)), 0x00)), 0x08))
                If (\_SB.INV7)
                {
                    Return (NOC3)
                }

                If (\_SB.BATO)
                {
                    Return (BCST)
                }
                Else
                {
                    Return (ACST)
                }
            }

            Name (APCT, Package (0x02)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW, 0x40, 0x00, 0x0000000000000199)
                }, 

                ResourceTemplate ()
                {
                    Register (FFixedHW, 0x10, 0x00, 0x0000000000000198)
                }
            })
            Name (NPSS, 0x00)
            Name (APSS, Package (0x0A)
            {
                Package (0x06)
                {
                    0x03E8, 
                    0x3A98, 
                    0x0250, 
                    0x0200, 
                    0x0186, 
                    0xFFFF
                }, 

                Package (0x06)
                {
                    0x03E8, 
                    0x3A98, 
                    0x0250, 
                    0x0200, 
                    0x0186, 
                    0xFFFF
                }, 

                Package (0x06)
                {
                    0x03E8, 
                    0x3A98, 
                    0x0250, 
                    0x0200, 
                    0x0186, 
                    0xFFFF
                }, 

                Package (0x06)
                {
                    0x03E8, 
                    0x3A98, 
                    0x0250, 
                    0x0200, 
                    0x0186, 
                    0xFFFF
                }, 

                Package (0x06)
                {
                    0x03E8, 
                    0x3A98, 
                    0x0250, 
                    0x0200, 
                    0x0186, 
                    0xFFFF
                }, 

                Package (0x06)
                {
                    0x03E8, 
                    0x3A98, 
                    0x0250, 
                    0x0200, 
                    0x0186, 
                    0xFFFF
                }, 

                Package (0x06)
                {
                    0x03E8, 
                    0x3A98, 
                    0x0250, 
                    0x0200, 
                    0x0186, 
                    0xFFFF
                }, 

                Package (0x06)
                {
                    0x03E8, 
                    0x3A98, 
                    0x0250, 
                    0x0200, 
                    0x0186, 
                    0xFFFF
                }, 

                Package (0x06)
                {
                    0x0320, 
                    0x30D4, 
                    0x0250, 
                    0x0200, 
                    0x0286, 
                    0xFFFF
                }, 

                Package (0x06)
                {
                    0x0320, 
                    0x30D4, 
                    0x0250, 
                    0x0200, 
                    0x0286, 
                    0xFFFF
                }
            })
            Method (APPC, 0, NotSerialized)
            {
                If (LNot (LGreater (SizeOf (_PSS), NPSS)))
                {
                    Return (0x00)
                }
                Else
                {
                    Return (Subtract (SizeOf (_PSS), NPSS))
                }
            }
        }
    }

    Scope (\_SB)
    {
        OperationRegion (\_SB.PCI0.SBRG.IROR, PCI_Config, 0x00, 0xFF)
        Field (\_SB.PCI0.SBRG.IROR, ByteAcc, NoLock, Preserve)
        {
            Offset (0x60), 
            PIRA,   8, 
            PIRB,   8, 
            PIRC,   8, 
            PIRD,   8, 
            Offset (0x68), 
            PIRE,   8, 
            PIRF,   8, 
            PIRG,   8, 
            PIRH,   8
        }

        Name (BUFA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {15}
        })
        CreateWordField (BUFA, 0x01, ICRS)
        Method (LSTA, 1, NotSerialized)
        {
            And (Arg0, 0x80, Local0)
            If (Local0)
            {
                Return (0x09)
            }
            Else
            {
                Return (0x0B)
            }
        }

        Method (LCRS, 1, NotSerialized)
        {
            And (Arg0, 0x0F, Local0)
            ShiftLeft (0x01, Local0, ICRS)
            Return (BUFA)
        }

        Method (LSRS, 1, NotSerialized)
        {
            CreateWordField (Arg0, 0x01, ISRS)
            FindSetRightBit (ISRS, Local0)
            Return (Decrement (Local0))
        }

        Method (LDIS, 1, NotSerialized)
        {
            Return (Or (Arg0, 0x80))
        }

        Device (LNKA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x01)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (PRSA)
            }

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

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (PIRA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), PIRA)
            }
        }

        Device (LNKB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x02)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRB))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (PRSB)
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (LDIS (PIRB), PIRB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (PIRB))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), PIRB)
            }
        }

        Device (LNKC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x03)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRC))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (PRSC)
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (LDIS (PIRC), PIRC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (PIRC))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), PIRC)
            }
        }

        Device (LNKD)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x04)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRD))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (PRSD)
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (LDIS (PIRD), PIRD)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (PIRD))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), PIRD)
            }
        }

        Device (LNKE)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x05)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRE))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (PRSE)
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (LDIS (PIRE), PIRE)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (PIRE))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), PIRE)
            }
        }

        Device (LNKF)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x06)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRF))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (PRSF)
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (LDIS (PIRF), PIRF)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (PIRF))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), PIRF)
            }
        }

        Device (LNKG)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x07)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRG))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (PRSG)
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (LDIS (PIRG), PIRG)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (PIRG))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), PIRG)
            }
        }

        Device (LNKH)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x08)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRH))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (PRSH)
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (LDIS (PIRH), PIRH)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (PIRH))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), PIRH)
            }
        }
    }

    Scope (\_SB.PCI0.IDE0)
    {
        OperationRegion (BAR1, PCI_Config, 0x00, 0x0100)
        Field (BAR1, DWordAcc, NoLock, Preserve)
        {
            Offset (0x42), 
            SSPE,   1, 
            Offset (0x56), 
            PSGM,   2, 
            SSGM,   2
        }
    }

    Scope (\_SB.PCI0.IDE0.CHN1.DRV0)
    {
        Method (_EJ0, 1, NotSerialized)
        {
            Store (0x01, \_SB.PCI0.IDE0.SSGM)
            Store (0x00, \_SB.PCI0.IDE0.SSPE)
            Sleep (0x03E8)
            Store (0x01, G28S)
            Store (0x01, G17S)
        }
    }

    Scope (\_SB.PCI0.SBRG.EC0)
    {
        Method (_Q2E, 0, NotSerialized)
        {
            If (CDS ())
            {
                WREC (0x48, 0x80)
            }
            Else
            {
                WREC (0x48, 0x90)
            }

            If (CDS ())
            {
                Store (0x01, \_SB.PCI0.IDE0.SSGM)
                Store (0x00, \_SB.PCI0.IDE0.SSPE)
                Sleep (0x03E8)
                Store (0x01, G28S)
                Store (0x01, G17S)
                Sleep (0x07D0)
                Notify (\_SB.PCI0.IDE0.CHN1.DRV0, 0x01)
            }
            Else
            {
                Store (0x00, \_SB.PCI0.IDE0.SSGM)
                Store (0x01, \_SB.PCI0.IDE0.SSPE)
                Sleep (0x03E8)
                Store (0x01, G17S)
                Store (0x00, G28S)
                Sleep (0xC8)
                Store (0x00, G17S)
                If (LEqual (\_SB.BAYI, 0x01))
                {
                    Store (0x01, \_SB.PCI0.IDE0.UDMS)
                    Store (0x01, \_SB.PCI0.IDE0.UDTS)
                    Store (0x01, \_SB.PCI0.IDE0.SCB0)
                    Store (0x03, \_SB.PCI0.IDE0.SCA0)
                    Store (0x01, \_SB.PCI0.IDE0.FSB0)
                }
                Else
                {
                    Store (0x01, \_SB.PCI0.IDE0.UDMS)
                    Store (0x02, \_SB.PCI0.IDE0.UDTS)
                    Store (0x00, \_SB.PCI0.IDE0.SCB0)
                    Store (0x00, \_SB.PCI0.IDE0.SCA0)
                    Store (0x00, \_SB.PCI0.IDE0.FSB0)
                }

                Sleep (0x07D0)
                Notify (\_SB.PCI0.IDE0.CHN1, 0x00)
            }
        }
    }

    Scope (\_SB)
    {
        Scope (PCI0)
        {
            Name (CRS, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,
                    0x0000,
                    0x00FF,
                    0x0000,
                    0x0100)
                IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,
                    0x0000,
                    0x0CF7,
                    0x0000,
                    0x0CF8)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,
                    0x0D00,
                    0xFFFF,
                    0x0000,
                    0xF300)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000A0000,
                    0x000BFFFF,
                    0x00000000,
                    0x00020000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D0000,
                    0x000D3FFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D4000,
                    0x000D7FFF,
                    0x00000000,
                    0x00004000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000DE000,
                    0x000DFFFF,
                    0x00000000,
                    0x00002000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000)
            })
            CreateDWordField (CRS, 0xAA, MIN6)
            CreateDWordField (CRS, 0xAE, MAX6)
            CreateDWordField (CRS, 0xB6, LEN6)
            Method (_CRS, 0, NotSerialized)
            {
                Store (MG2B, MIN6)
                Store (MG2L, LEN6)
                Store (MG2L, Local0)
                Add (MIN6, Decrement (Local0), MAX6)
                Return (CRS)
            }
        }
    }

    If (SS1)
    {
        Name (\_SB.PCI0._S1D, 0x02)
        Name (\_SB.PCI0.P0P1._S1D, 0x02)
        Name (\_SB.PCI0.USB1._S1D, 0x02)
        Name (\_SB.PCI0.USB2._S1D, 0x02)
        Name (\_SB.PCI0.USB3._S1D, 0x02)
    }

    If (SS3)
    {
        Name (\_SB.PCI0._S3D, 0x02)
        Name (\_SB.PCI0.P0P1._S3D, 0x02)
        Name (\_SB.PCI0.USB1._S3D, 0x02)
        Name (\_SB.PCI0.USB2._S3D, 0x02)
        Name (\_SB.PCI0.USB3._S3D, 0x02)
    }

    If (SS4)
    {
        Name (\_SB.PCI0._S4D, 0x02)
        Name (\_SB.PCI0.P0P1._S4D, 0x02)
    }

    Name (IOXB, 0x05C0)
    Name (IOXL, 0x10)
    Method (_PTS, 1, NotSerialized)
    {
        Store (Arg0, DBG8)
        PTS (Arg0)
        Store (0x00, Index (WAKP, 0x00))
        Store (0x00, Index (WAKP, 0x01))
        If (LNot (LGreater (Arg0, 0x03)))
        {
            Store (\_SB.PCI0.SBRG.APMS, ACPS)
        }
    }

    Method (_WAK, 1, NotSerialized)
    {
        ShiftLeft (Arg0, 0x04, DBG8)
        If (LNot (LGreater (Arg0, 0x03)))
        {
            If (And (\_SB.PCI0.SBRG.EC0.ANYS, 0x01))
            {
                Notify (\_SB.PWRB, 0x02)
            }
        }

        Sleep (0x03E8)
        If (LNot (LGreater (Arg0, 0x03)))
        {
            Store (ACPS, \_SB.PCI0.SBRG.APMS)
        }

        WAK (Arg0)
        If (DerefOf (Index (WAKP, 0x00)))
        {
            Store (0x00, Index (WAKP, 0x01))
        }
        Else
        {
            Store (Arg0, Index (WAKP, 0x01))
        }

        Return (WAKP)
    }

    Scope (\_SB)
    {
        OperationRegion (GPIO, SystemIO, IO2B, 0x40)
        Field (GPIO, ByteAcc, NoLock, Preserve)
        {
            Offset (0x0C), 
                ,   7, 
            G07S,   1, 
                ,   9, 
            G17S,   1, 
                ,   9, 
            G27S,   1, 
            G28S,   1, 
            Offset (0x2C), 
                ,   3, 
            BT1S,   1, 
                ,   3, 
            INV7,   1, 
                ,   3, 
            LIDL,   1, 
            Offset (0x38), 
            BKLT,   1, 
            BAYI,   2
        }
    }

    Scope (\_GPE)
    {
        Method (_L17, 0, NotSerialized)
        {
            If (\_SB.INV7)
            {
                Store (0x00, \_SB.INV7)
            }
            Else
            {
                Store (0x01, \_SB.INV7)
            }

            Notify (\_PR.CPU1, 0x81)
        }

        Method (_L10, 0, NotSerialized)
        {
            Noop
        }

        Method (_L11, 0, NotSerialized)
        {
            Noop
        }

        Method (_L14, 0, NotSerialized)
        {
            Noop
        }

        Method (_L15, 0, NotSerialized)
        {
            Noop
        }
    }

    Method (SCMD, 4, NotSerialized)
    {
        OperationRegion (SMRG, SystemIO, SMBS, 0x10)
        Field (SMRG, ByteAcc, NoLock, Preserve)
        {
            HSTS,   8, 
            SSTS,   8, 
            HSTC,   8, 
            HCMD,   8, 
            HADR,   8, 
            HDT0,   8, 
            HDT1,   8, 
            BLKD,   8
        }

        Field (SMRG, ByteAcc, NoLock, Preserve)
        {
            Offset (0x05), 
            HDTW,   16
        }

        Store (0x0F, Local0)
        While (Local0)
        {
            Store (Arg0, HADR)
            Store (Arg1, HCMD)
            Store (Arg2, HDTW)
            Store (0xFF, HSTS)
            Store (0xFF, HSTS)
            Store (Arg3, HSTC)
            Store (0xFF, Local7)
            While (Local7)
            {
                Sleep (0x01)
                Decrement (Local7)
                If (And (HSTS, 0x02))
                {
                    Store (0x00, Local7)
                    Store (0x01, Local0)
                }
            }

            Decrement (Local0)
        }

        If (And (HSTS, 0x02))
        {
            Return (HDTW)
        }
        Else
        {
            Return (Not (0x00))
        }
    }

    Method (SBYT, 2, NotSerialized)
    {
        SCMD (Arg0, Arg1, 0x00, 0x44)
    }

    Method (WBYT, 3, NotSerialized)
    {
        SCMD (Arg0, Arg1, Arg2, 0x48)
    }

    Method (WWRD, 3, NotSerialized)
    {
        SCMD (Arg0, Arg1, Arg2, 0x4C)
    }

    Method (RSBT, 2, NotSerialized)
    {
        Or (Arg0, 0x01, Arg0)
        Return (SCMD (Arg0, Arg1, 0x00, 0x44))
    }

    Method (RBYT, 2, NotSerialized)
    {
        Or (Arg0, 0x01, Arg0)
        Return (SCMD (Arg0, Arg1, 0x00, 0x48))
    }

    Method (RWRD, 2, NotSerialized)
    {
        Or (Arg0, 0x01, Arg0)
        Return (SCMD (Arg0, Arg1, 0x00, 0x4C))
    }

    Name (TSAD, 0x98)
    Name (TMIN, 0x69)
    Name (TMAX, 0x69)
    Name (TCRT, 0x69)
    Name (THOT, 0x3C)
    Name (TSP, 0x0A)
    Name (TC1, 0x02)
    Name (TC2, 0x0A)
    Scope (\_TZ)
    {
        Method (TCHG, 0, NotSerialized)
        {
            Store (RBYT (TSAD, 0x01), Local0)
            Store (RBYT (TSAD, 0x02), Local1)
            Store (RBYT (TSAD, 0x07), Local2)
            Store (RBYT (TSAD, 0x08), Local3)
            Store (0x00, Local4)
            If (And (Local1, 0x18))
            {
                If (LEqual (Local3, 0x00))
                {
                    Store (0x3C, Local2)
                    Store (0x2D, Local3)
                    Store (0x36, Local4)
                }

                If (LEqual (Local3, 0x2D))
                {
                    If (LLess (Local0, 0x2D))
                    {
                        Store (0x32, Local2)
                        Store (0x00, Local3)
                        Store (0xFF, Local4)
                    }

                    If (LNot (LLess (Local0, 0x3C)))
                    {
                        Store (0x4B, Local2)
                        Store (0x37, Local3)
                        Store (0x31, Local4)
                    }
                }

                If (LEqual (Local3, 0x37))
                {
                    If (LLess (Local0, 0x37))
                    {
                        Store (0x3C, Local2)
                        Store (0x2D, Local3)
                        Store (0x36, Local4)
                    }

                    If (LNot (LLess (Local0, 0x4B)))
                    {
                        Store (0x5A, Local2)
                        Store (0x46, Local3)
                        Store (0x2F, Local4)
                    }
                }

                If (LEqual (Local3, 0x46))
                {
                    If (LLess (Local0, 0x46))
                    {
                        Store (0x4B, Local2)
                        Store (0x37, Local3)
                        Store (0x31, Local4)
                    }

                    If (LNot (LLess (Local0, 0x5A)))
                    {
                        Store (0x69, Local2)
                        Store (0x55, Local3)
                        Store (0x00, Local4)
                    }
                }

                If (LEqual (Local3, 0x55))
                {
                    If (LLess (Local0, 0x55))
                    {
                        Store (0x5A, Local2)
                        Store (0x46, Local3)
                        Store (0x2F, Local4)
                    }

                    If (LNot (LLess (Local0, 0x69)))
                    {
                        Store (0x69, Local2)
                        Store (0x55, Local3)
                        Store (0x00, Local4)
                    }
                }

                STHI (Local2)
                STLO (Local3)
                Store (Local4, \_SB.PCI0.SBRG.EC0.CDT1)
                Store (0x84, \_SB.PCI0.SBRG.EC0.CDT2)
                Store (0xC4, \_SB.PCI0.SBRG.EC0.CMD1)
                Store (RBYT (TSAD, 0x02), Local5)
                If (And (Local5, 0x04))
                {
                    Store (0x00, \_SB.PCI0.SBRG.EC0.CDT1)
                    Store (0x84, \_SB.PCI0.SBRG.EC0.CDT2)
                    Store (0xC4, \_SB.PCI0.SBRG.EC0.CMD1)
                }

                RBYT (TSAD, 0x02)
                RBYT (TSAD, 0x09)
                SCFG (0x01)
            }

            RBYT (TSAD, 0x02)
            RBYT (TSAD, 0x09)
            SCFG (0x01)
        }

        Method (SCFG, 1, NotSerialized)
        {
            WBYT (TSAD, 0x09, Arg0)
        }

        Method (STHI, 1, NotSerialized)
        {
            WBYT (TSAD, 0x0D, Arg0)
        }

        Method (STLO, 1, NotSerialized)
        {
            WBYT (TSAD, 0x0E, Arg0)
        }

        Method (GTHI, 0, NotSerialized)
        {
            Store (RBYT (TSAD, 0x07), Debug)
        }

        Method (GTLO, 0, NotSerialized)
        {
            Store (RBYT (TSAD, 0x08), Debug)
        }

        Name (FAND, Buffer (0x04)
        {
            0x00, 0x1E, 0x24, 0x28
        })
        Name (FANC, 0x00)
        Method (RFAN, 0, Serialized)
        {
            If (\_SB.PCI0.SBRG.EC0.ECAV ())
            {
                Store (\_SB.PCI0.SBRG.EC0.FFAN, Local0)
            }
            Else
            {
                Store (\_SB.PCI0.SBRG.EC0.RDEC (0x77), Local0)
            }

            If (LLess (Local0, 0x8E))
            {
                Store (0x03, FANC)
            }
            Else
            {
                If (LLess (Local0, 0xB7))
                {
                    Store (0x02, FANC)
                }
                Else
                {
                    If (LLess (Local0, 0xF7))
                    {
                        Store (0x01, FANC)
                    }
                    Else
                    {
                        Store (0x00, FANC)
                    }
                }
            }

            Store (DerefOf (Index (FAND, FANC)), Local0)
            Return (Local0)
        }

        Method (RTMP, 0, NotSerialized)
        {
            Store (RBYT (TSAD, 0x01), Local0)
            If (Not (Local0))
            {
                Return (Local0)
            }
            Else
            {
                Store ("_TMP Read ERROR", Debug)
                Return (Add (TMIN, 0x02))
            }
        }

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

        Name (PLCY, 0x01)
        ThermalZone (THRM)
        {
            Method (_CRT, 0, NotSerialized)
            {
                Return (KELV (TCRT))
            }

            Method (_TMP, 0, NotSerialized)
            {
                Store (0x05, Local1)
                While (Local1)
                {
                    Store (RTMP (), Local0)
                    If (LGreater (Local0, TCRT))
                    {
                        Decrement (Local1)
                    }
                    Else
                    {
                        Store (0x00, Local1)
                    }
                }

                Return (KELV (Local0))
            }

            Name (_PSL, Package (0x01)
            {
                \_PR.CPU1
            })
            Method (_TSP, 0, NotSerialized)
            {
                Multiply (TSP, 0x0A, Local0)
                Return (Local0)
            }

            Method (_TC1, 0, NotSerialized)
            {
                Return (TC1)
            }

            Method (_TC2, 0, NotSerialized)
            {
                Return (TC2)
            }

            Method (_PSV, 0, NotSerialized)
            {
                Return (KELV (0x64))
            }
        }

        Scope (\_GPE)
        {
            Method (_L00, 0, Serialized)
            {
                \_TZ.TCHG ()
                Notify (\_TZ.THRM, 0x81)
            }
        }

        Method (TRMS, 1, NotSerialized)
        {
            Noop
        }

        Method (TRMW, 1, NotSerialized)
        {
            If (LGreater (Arg0, 0x01))
            {
                \_TZ.TCHG ()
            }

            If (LGreater (\_TZ.THRM._TMP (), TCRT))
            {
                Store (0x02, Local0)
            }

            Or (DerefOf (Index (WAKP, 0x00)), Local0, Index (WAKP, 0x00))
            Notify (\_TZ.THRM, 0x80)
        }
    }

    Name (_S0, Package (0x04)
    {
        0x00, 
        0x00, 
        0x00, 
        0x00
    })
    If (SS3)
    {
        Name (_S3, Package (0x04)
        {
            0x05, 
            0x00, 
            0x00, 
            0x00
        })
    }

    If (SS4)
    {
        Name (_S4, Package (0x04)
        {
            0x06, 
            0x00, 
            0x00, 
            0x00
        })
    }

    Name (_S5, Package (0x04)
    {
        0x07, 
        0x00, 
        0x00, 
        0x00
    })
    Method (PTS, 1, NotSerialized)
    {
        If (Arg0)
        {
            \_TZ.TRMS (Arg0)
        }
    }

    Method (WAK, 1, NotSerialized)
    {
        \_TZ.TRMW (Arg0)
    }
}



More information about the freebsd-acpi mailing list