NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/36838 (pci bus is disabled on ACPI kernel on Fujitsu FMV LOOX P70WN.)



From: joerg%NetBSD.org@localhost
Subject: Re: kern/36838 (pci bus is disabled on ACPI kernel on Fujitsu FMV LOOX 
P70WN.)
Date: Thu, 22 May 2008 20:57:00 +0000 (UTC)

> Synopsis: pci bus is disabled on ACPI kernel on Fujitsu FMV LOOX P70WN.
> 
> Responsible-Changed-From-To: kern-bug-people->joerg
> Responsible-Changed-By: joerg%NetBSD.org@localhost
> Responsible-Changed-When: Thu, 22 May 2008 20:56:58 +0000
> Responsible-Changed-Why:
> ACPI bug
> 
> 
> State-Changed-From-To: open->feedback
> State-Changed-By: joerg%NetBSD.org@localhost
> State-Changed-When: Thu, 22 May 2008 20:56:58 +0000
> State-Changed-Why:
> Can you please provide me the DSDT? acpidump will help.

DSDT and ASL are attached to this e-mail.
DSDT and ASL are output of
# acpidump -r -o looxp70wm.dsdt > looxp70wm.asl

-- 
Ryo ONODERA // ryo%rf7.so-net.ne.jp@localhost
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB  FD1B F404 27FA C7D1 15F3

Attachment: looxp70wm.dsdt
Description: Binary data

/*
RSD PTR: Checksum=73, OEMID=FUJ, RsdtAddress=0x3f662688
 */
/*
RSDT: Length=72, Revision=1, Checksum=215,
        OEMID=FUJ, OEM Table ID=PC, OEM Revision=0x1130000,
        Creator ID=FUJ, Creator Revision=0x100
 */
/*
        Entries={ 0x3f668f8c, 0x3f668170, 0x3f6681ac, 0x3f668688, 0x3f668b07, 
0x3f668d5c, 0x3f668db6, 0x3f668dee, 0x3f668e16 }
 */
/*
        DSDT=0x3f6626d8
        INT_MODEL=PIC
        SCI_INT=9
        SMI_CMD=0xb2, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0
        PM1a_EVT_BLK=0x1000-0x1003
        PM1a_CNT_BLK=0x1004-0x1005
        PM2_CNT_BLK=0x1020-0x1020
        PM2_TMR_BLK=0x1008-0x100b
        PM2_GPE0_BLK=0x1028-0x102f
        P_LVL2_LAT=1ms, P_LVL3_LAT=100ms
        FLUSH_SIZE=0, FLUSH_STRIDE=0
        DUTY_OFFSET=0, DUTY_WIDTH=0
        DAY_ALRM=13, MON_ALRM=0, CENTURY=50
        Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4}
 */
/*
DSDT: Length=23192, Revision=1, Checksum=37,
        OEMID=FUJ, OEM Table ID=FJNB1C5, OEM Revision=0x1130000,
        Creator ID=MSFT, Creator Revision=0x100000e
 */
DefinitionBlock ("acpi_dst.aml", "DSDT", 0x1, "FUJ", "FJNB1C5", 0x1130000)
{
Name(BIDT, Buffer(0x10) {0x0, 0x1, 0x2, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0 })
Name(BMNT, Package(0x04) {
    "CP229720\x20\x2f\x20CP229721",
    "CP229725\x20\x2f\x20CP229726",
    "CP240501",
    "CP240517",
})
Name(BMST, Package(0x04) {
    "CP229720",
    "CP229725",
    "CP240501",
    "CP240517",
})
Scope(\_PR) {
    Processor(CPU0, 0, 0x1010, 0x6) {
    }
    Processor(CPU1, 1, 0x1010, 0x6) {
    }
}
Scope(\_SB) {
    Name(OSTB, Ones)
    OperationRegion(OSTY, SystemMemory, 0x3f669ef6, 0x00000001)
    Field(OSTY, AnyAcc, NoLock, Preserve) {
        TPOS,   8
    }
    Method(OSTP) {
        If(LEqual(^OSTB, Ones)) {
            If(CondRefOf(\_OSI, Local0)) {
                If(\_OSI("Windows\x202006")) {
                    Store(0x40, ^OSTB)
                    Store(0x40, ^TPOS)
                }
                Else {
                    If(\_OSI("Windows\x202001.1")) {
                        Store(0x20, ^OSTB)
                        Store(0x20, ^TPOS)
                    }
                    Else {
                        If(\_OSI("Windows\x202001\x20SP1")) {
                            Store(0x10, ^OSTB)
                            Store(0x10, ^TPOS)
                        }
                        Else {
                            If(\_OSI("Windows\x202001")) {
                                Store(0x08, ^OSTB)
                                Store(0x08, ^TPOS)
                            }
                            Else {
                                Store(0x00, ^OSTB)
                                Store(0x00, ^TPOS)
                            }
                        }
                    }
                }
            }
            Else {
                If(CondRefOf(\_OS, Local0)) {
                    If(^SEQL(\_OS, "Microsoft\x20Windows")) {
                        Store(0x01, ^OSTB)
                        Store(0x01, ^TPOS)
                    }
                    Else {
                        If(^SEQL(\_OS, 
"Microsoft\x20WindowsME\x3a\x20Millennium\x20Edition")) {
                            Store(0x02, ^OSTB)
                            Store(0x02, ^TPOS)
                        }
                        Else {
                            If(^SEQL(\_OS, "Microsoft\x20Windows\x20NT")) {
                                Store(0x04, ^OSTB)
                                Store(0x04, ^TPOS)
                            }
                            Else {
                                Store(0x00, ^OSTB)
                                Store(0x00, ^TPOS)
                            }
                        }
                    }
                }
                Else {
                    Store(0x00, ^OSTB)
                    Store(0x00, ^TPOS)
                }
            }
        }
        Return(^OSTB)
    }
    Method(SEQL, 2, Serialized) {
        Store(SizeOf(Arg0), Local0)
        Store(SizeOf(Arg1), Local1)
        If(LNot(LEqual(Local0, Local1))) {
            Return(Zero)
        }
        Name(BUF0, Buffer(Local0) { })
        Store(Arg0, BUF0)
        Name(BUF1, Buffer(Local0) { })
        Store(Arg1, BUF1)
        Store(Zero, Local2)
        While(LLess(Local2, Local0)) {
            Store(DerefOf(Index(BUF0, Local2, )), Local3)
            Store(DerefOf(Index(BUF1, Local2, )), Local4)
            If(LNot(LEqual(Local3, Local4))) {
                Return(Zero)
            }
            Increment(Local2)
        }
        Return(One)
    }
}
Name(FWSO, Zero)
Name(RPEN, Zero)
Name(RPDS, Zero)
Name(EXIS, 0xff)
Name(PLWM, Zero)
Name(PTAL, Zero)
Name(ECCI, 0x03)
Name(GINT, Zero)
Name(RGSI, 0x18)
Name(LIDS, Zero)
Name(VSTH, Zero)
Name(HDWA, Zero)
Name(\GPIC, 0x00)
Method(\_PIC, 1) {
    Store(Arg0, GPIC)
}
Scope(\_SB) {
    OperationRegion(PSIO, SystemIO, 0x00000f40, 0x00000002)
    OperationRegion(PSBF, SystemMemory, 0x3f669e66, 0x00000090)
    OperationRegion(OEMT, SystemMemory, 0x3f669f9c, 0x00000020)
    OperationRegion(SYSC, SystemMemory, 0x3f669f92, 0x0000000a)
    OperationRegion(VDEX, SystemMemory, 0x3f669e56, 0x00000010)
    OperationRegion(THZN, SystemMemory, 0x3f669f82, 0x00000010)
    OperationRegion(BTNC, SystemMemory, 0x3f669f72, 0x00000010)
    OperationRegion(VIST, SystemMemory, 0x3f66960c, 0x0000084a)
    OperationRegion(QBC, SystemMemory, 0x3f669f66, 0x0000000c)
    OperationRegion(TCG1, SystemMemory, 0x3f669608, 0x00000004)
    OperationRegion(IO80, SystemIO, 0x80, 0x01)
    Scope(\) {
        Field(\_SB.PSIO, ByteAcc, NoLock, Preserve) {
            SSMI,       8
        }
        Field(\_SB.PSBF, ByteAcc, NoLock, Preserve) {
            CMD,        8,
            DVID,       32,
            PSDT,       32
        }
        Field(\_SB.PSBF, ByteAcc, NoLock, Preserve) {
            Offset(0x5),
            INF,        8
        }
        Field(\_SB.OEMT, ByteAcc, NoLock, Preserve) {
            SPAF,       2,
            SPBF,       2,
            PPF,        3,
            FDCF,       1,
            SIDF,       2,
            IMTF,       1,
            BLEN,       1,
            WLEN,       1,
            BTEX,       1,
            Offset(0x4),
            WAPB,       1,
            Offset(0x8),
            FWHM,       1,
            ,   1,
            TPMF,       2,
            FSCM,       1,
            RPCP,       1,
            TBPC,       1,
            AS34,       1,
            BIFL,       8,
            DCLW,       7,
            Offset(0x10),
            FDS0,       4,
            FDS1,       4,
            Offset(0x18),
            UMST,       32,
            UMSZ,       32
        }
        Field(\_SB.SYSC, ByteAcc, NoLock, Preserve) {
            BHKF,       1,
            ,   2,
            MHKF,       1,
            Offset(0x1),
            BLLM,       8,
            BLLT,       64
        }
        Field(\_SB.SYSC, ByteAcc, NoLock, Preserve) {
            AHKF,       8
        }
        Field(\_SB.VDEX, ByteAcc, NoLock, Preserve) {
            ADOS,       3,
            CLCD,       1,
            ALCD,       1,
            CCRT,       1,
            ACRT,       1,
            CTV,        1,
            ATV,        1,
            CDVI,       1,
            ADVI,       1,
            DSWF,       2,
            BSWF,       2
        }
        Field(\_SB.THZN, ByteAcc, NoLock, Preserve) {
            DTS1,       8,
            DTS2,       8,
            CRTT,       8,
            PSVT,       8,
            TC1V,       4,
            TC2V,       4,
            TSPV,       4,
            MPEN,       1,
            DTSE,       1
        }
        Field(\_SB.BTNC, ByteAcc, NoLock, Preserve) {
            IRBF,       1,
            ,   6,
            NGTF,       1,
            Offset(0x4),
            IRBC,       16
        }
        Field(\_SB.QBC, ByteAcc, NoLock, Preserve) {
            QAG1,       32,
            QAG2,       32,
            QAG3,       32
        }
        Field(\_SB.TCG1, AnyAcc, NoLock, Preserve) {
            PPRQ,       8,
            PPLO,       8,
            PPRP,       8,
            PPOR,       8
        }
        Field(\_SB.IO80, ByteAcc, NoLock, Preserve) {
            PO80,       8
        }
    }
    Method(_INI) {
        If(LNot(LLess(\_SB.OSTP(), 0x40))) {
            Load(VIST, VSTH)
        }
    }
    Device(MCFG) {
        Name(_HID, 0x020cd041)
        Name(_CRS, Buffer(0x1c) {0x87, 0x17, 0x0, 0x0, 0xd, 0x1, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0xf8, 0xff, 0xff, 0xff, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x4, 0x79, 0x0
        /* ResourceTemplate() {
         0x0000  DWordMemory(ResourceConsumer, PosDecode, MinFixed, MaxFixed, 
NonCacheable, ReadWrite, 0x0, 0xf8000000, 0xfbffffff, 0x0, 0x4000000, 121, '', 
AddressRangeMemory, TypeStatic)
        } */
         })
    }
    Device(PCI0) {
        Name(_HID, 0x080ad041)
        Name(_CID, 0x030ad041)
        Name(_ADR, 0x00)
        Name(_BBN, 0x00)
        OperationRegion(HBUS, PCI_Config, 0x40, 0xc0)
        Field(HBUS, DWordAcc, NoLock, Preserve) {
            Offset(0x50),
            ,   4,
            PM0H,       2,
            Offset(0x51),
            PM1L,       2,
            ,   2,
            PM1H,       2,
            Offset(0x52),
            PM2L,       2,
            ,   2,
            PM2H,       2,
            Offset(0x53),
            PM3L,       2,
            ,   2,
            PM3H,       2,
            Offset(0x54),
            PM4L,       2,
            ,   2,
            PM4H,       2,
            Offset(0x55),
            PM5L,       2,
            ,   2,
            PM5H,       2,
            Offset(0x56),
            PM6L,       2,
            ,   2,
            PM6H,       2,
            Offset(0x57),
            ,   7,
            HENA,       1,
            Offset(0x5c),
            ,   3,
            TOUD,       5
        }
        Name(BUF0, Buffer(0x01ee) {0x88, 0xd, 0x0, 0x2, 0xc, 0x0, 0x0, 0x0, 
0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x87, 0x17, 0x0, 0x1, 0xc, 0x3, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0xf8, 0xc, 0x0, 0x0, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 0x1, 0x8, 0x87, 0x17, 
0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xff, 0xff, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0xff, 0xff, 0xb, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x2, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0xc, 0x0, 0xff, 0x3f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 
0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xc, 0x0, 
0xff, 0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 
0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xc, 0x0, 0xff, 0xbf, 0xc, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 
0x0, 0x0, 0x0, 0x0, 0xc0, 0xc, 0x0, 0xff, 0xff, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0xd, 0x0, 0xff, 0x3f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 
0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xd, 0x0, 0xff, 
0x7f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 
0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xd, 0x0, 0xff, 0xbf, 0xd, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 
0x0, 0x0, 0x0, 0xc0, 0xd, 0x0, 0xff, 0xff, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0xe, 0x0, 0xff, 0x3f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 
0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xe, 0x0, 0xff, 0x7f, 
0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 
0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xe, 0x0, 0xff, 0xbf, 0xe, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 
0x0, 0x0, 0xc0, 0xe, 0x0, 0xff, 0xff, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 
0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 
0x0, 0xff, 0xff, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x87, 0x17, 
0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xbf, 
0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd4, 0xfe, 0xff, 0x4f, 0xd4, 0xfe, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x79, 0x0
        /* ResourceTemplate() {
         0x0000  WordBus(ResourceProducer, PosDecode, MinFixed, MaxFixed, 0x0, 
0x0, 0xff, 0x0, 0x100, 135, '')
         0x0010  DWordIO(ResourceProducer, MinFixed, MaxFixed, PosDecode, 
EntireRange, 0x0, 0x0, 0xcf7, 0x0, 0xcf8, 71, '��‡', TypeStatic, 
DenseTranslation)
         0x002a  IO(Decode16, 0xcf8, 0xcf8, 0x1, 0x8)
         0x0032  DWordIO(ResourceProducer, MinFixed, MaxFixed, PosDecode, 
EntireRange, 0x0, 0xd00, 0xffff, 0x0, 0xf300, 135, '', TypeStatic, 
DenseTranslation)
         0x004c  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xa0000, 0xbffff, 0x0, 0x20000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x0066  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xc0000, 0xc3fff, 0x0, 0x4000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x0080  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xc4000, 0xc7fff, 0x0, 0x4000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x009a  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xc8000, 0xcbfff, 0x0, 0x4000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x00b4  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xcc000, 0xcffff, 0x0, 0x4000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x00ce  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xd0000, 0xd3fff, 0x0, 0x4000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x00e8  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xd4000, 0xd7fff, 0x0, 0x4000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x0102  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xd8000, 0xdbfff, 0x0, 0x4000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x011c  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xdc000, 0xdffff, 0x0, 0x4000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x0136  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xe0000, 0xe3fff, 0x0, 0x4000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x0150  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xe4000, 0xe7fff, 0x0, 0x4000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x016a  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xe8000, 0xebfff, 0x0, 0x4000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x0184  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xec000, 0xeffff, 0x0, 0x4000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x019e  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xf0000, 0xfffff, 0x0, 0x10000, 135, '', 
AddressRangeMemory, TypeStatic)
         0x01b8  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0x0, 0xfebfffff, 0x0, 0x0, 135, '', 
AddressRangeMemory, TypeStatic)
         0x01d2  DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, 
Cacheable, ReadWrite, 0x0, 0xfed40000, 0xfed44fff, 0x0, 0x5000, 121, '', 
AddressRangeMemory, TypeStatic)
        } */
         })
        Method(_CRS, 0, Serialized) {
            If(PM1L) {
                CreateDWordField(BUF0, 0x7c, C0LN)
                Store(Zero, C0LN)
            }
            If(LEqual(PM1L, 0x01)) {
                CreateBitField(BUF0, 0x0358, C0RW)
                Store(Zero, C0RW)
            }
            If(PM1H) {
                CreateDWordField(BUF0, 0x96, C4LN)
                Store(Zero, C4LN)
            }
            If(LEqual(PM1H, 0x01)) {
                CreateBitField(BUF0, 0x0428, C4RW)
                Store(Zero, C4RW)
            }
            If(PM2L) {
                CreateDWordField(BUF0, 0xb0, C8LN)
                Store(Zero, C8LN)
            }
            If(LEqual(PM2L, 0x01)) {
                CreateBitField(BUF0, 0x04f8, C8RW)
                Store(Zero, C8RW)
            }
            If(PM2H) {
                CreateDWordField(BUF0, 0xca, CCLN)
                Store(Zero, CCLN)
            }
            If(LEqual(PM2H, 0x01)) {
                CreateBitField(BUF0, 0x05c8, CCRW)
                Store(Zero, CCRW)
            }
            If(PM3L) {
                CreateDWordField(BUF0, 0xe4, D0LN)
                Store(Zero, D0LN)
            }
            If(LEqual(PM3L, 0x01)) {
                CreateBitField(BUF0, 0x0698, D0RW)
                Store(Zero, D0RW)
            }
            If(PM3H) {
                CreateDWordField(BUF0, 0xfe, D4LN)
                Store(Zero, D4LN)
            }
            If(LEqual(PM3H, 0x01)) {
                CreateBitField(BUF0, 0x0768, D4RW)
                Store(Zero, D4RW)
            }
            If(PM4L) {
                CreateDWordField(BUF0, 0x0118, D8LN)
                Store(Zero, D8LN)
            }
            If(LEqual(PM4L, 0x01)) {
                CreateBitField(BUF0, 0x0838, D8RW)
                Store(Zero, D8RW)
            }
            If(PM4H) {
                CreateDWordField(BUF0, 0x0132, DCLN)
                Store(Zero, DCLN)
            }
            If(LEqual(PM4H, 0x01)) {
                CreateBitField(BUF0, 0x0908, DCRW)
                Store(Zero, DCRW)
            }
            If(PM5L) {
                CreateDWordField(BUF0, 0x014c, E0LN)
                Store(Zero, E0LN)
            }
            If(LEqual(PM5L, 0x01)) {
                CreateBitField(BUF0, 0x09d8, E0RW)
                Store(Zero, E0RW)
            }
            If(PM5H) {
                CreateDWordField(BUF0, 0x0166, E4LN)
                Store(Zero, E4LN)
            }
            If(LEqual(PM5H, 0x01)) {
                CreateBitField(BUF0, 0x0aa8, E4RW)
                Store(Zero, E4RW)
            }
            If(PM6L) {
                CreateDWordField(BUF0, 0x0180, E8LN)
                Store(Zero, E8LN)
            }
            If(LEqual(PM6L, 0x01)) {
                CreateBitField(BUF0, 0x0b78, E8RW)
                Store(Zero, E8RW)
            }
            If(PM6H) {
                CreateDWordField(BUF0, 0x019a, ECLN)
                Store(Zero, ECLN)
            }
            If(LEqual(PM6H, 0x01)) {
                CreateBitField(BUF0, 0x0c48, ECRW)
                Store(Zero, ECRW)
            }
            If(PM0H) {
                CreateDWordField(BUF0, 0x01b4, F0LN)
                Store(Zero, F0LN)
            }
            If(LEqual(PM0H, 0x01)) {
                CreateBitField(BUF0, 0x0d18, F0RW)
                Store(Zero, F0RW)
            }
            CreateDWordField(BUF0, 0x01c2, M1MN)
            CreateDWordField(BUF0, 0x01c6, M1MX)
            CreateDWordField(BUF0, 0x01ce, M1LN)
            ShiftLeft(TOUD, 0x1b, M1MN)
            Add(Subtract(M1MX, M1MN, ), 0x01, M1LN)
            CreateDWordField(BUF0, 0x01dc, TPMN)
            CreateDWordField(BUF0, 0x01e0, TPMX)
            CreateDWordField(BUF0, 0x01e8, TPML)
            If(LNot(LEqual(TPMF, 0x02))) {
                Store(Zero, TPMN)
                Store(Zero, TPMX)
                Store(Zero, TPML)
            }
            Return(BUF0)
        }
        Method(_PRT) {
            If(GPIC) {
                Return(Package(0x10) {
                    Package(0x04) {
                        0x0001ffff,
                        0x00,
                        0x00,
                        0x10,
                    },
                    Package(0x04) {
                        0x0002ffff,
                        0x00,
                        0x00,
                        0x10,
                    },
                    Package(0x04) {
                        0x0007ffff,
                        0x03,
                        0x00,
                        0x10,
                    },
                    Package(0x04) {
                        0x001bffff,
                        0x00,
                        0x00,
                        0x11,
                    },
                    Package(0x04) {
                        0x001cffff,
                        0x00,
                        0x00,
                        0x16,
                    },
                    Package(0x04) {
                        0x001cffff,
                        0x01,
                        0x00,
                        0x15,
                    },
                    Package(0x04) {
                        0x001cffff,
                        0x02,
                        0x00,
                        0x14,
                    },
                    Package(0x04) {
                        0x001cffff,
                        0x03,
                        0x00,
                        0x13,
                    },
                    Package(0x04) {
                        0x001dffff,
                        0x00,
                        0x00,
                        0x17,
                    },
                    Package(0x04) {
                        0x001dffff,
                        0x01,
                        0x00,
                        0x14,
                    },
                    Package(0x04) {
                        0x001dffff,
                        0x02,
                        0x00,
                        0x12,
                    },
                    Package(0x04) {
                        0x001dffff,
                        0x03,
                        0x00,
                        0x10,
                    },
                    Package(0x04) {
                        0x001effff,
                        0x00,
                        0x00,
                        0x10,
                    },
                    Package(0x04) {
                        0x001effff,
                        0x01,
                        0x00,
                        0x11,
                    },
                    Package(0x04) {
                        0x001fffff,
                        0x00,
                        0x00,
                        0x12,
                    },
                    Package(0x04) {
                        0x001fffff,
                        0x01,
                        0x00,
                        0x13,
                    },
                })
            }
            Else {
                Return(Package(0x10) {
                    Package(0x04) {
                        0x0001ffff,
                        0x00,
                        \_SB.PCI0.LPCB.LNKA,
                        0x00,
                    },
                    Package(0x04) {
                        0x0002ffff,
                        0x00,
                        \_SB.PCI0.LPCB.LNKA,
                        0x00,
                    },
                    Package(0x04) {
                        0x0007ffff,
                        0x03,
                        \_SB.PCI0.LPCB.LNKA,
                        0x00,
                    },
                    Package(0x04) {
                        0x001bffff,
                        0x00,
                        \_SB.PCI0.LPCB.LNKB,
                        0x00,
                    },
                    Package(0x04) {
                        0x001cffff,
                        0x00,
                        \_SB.PCI0.LPCB.LNKG,
                        0x00,
                    },
                    Package(0x04) {
                        0x001cffff,
                        0x01,
                        \_SB.PCI0.LPCB.LNKF,
                        0x00,
                    },
                    Package(0x04) {
                        0x001cffff,
                        0x02,
                        \_SB.PCI0.LPCB.LNKE,
                        0x00,
                    },
                    Package(0x04) {
                        0x001cffff,
                        0x03,
                        \_SB.PCI0.LPCB.LNKD,
                        0x00,
                    },
                    Package(0x04) {
                        0x001dffff,
                        0x00,
                        \_SB.PCI0.LPCB.LNKH,
                        0x00,
                    },
                    Package(0x04) {
                        0x001dffff,
                        0x01,
                        \_SB.PCI0.LPCB.LNKE,
                        0x00,
                    },
                    Package(0x04) {
                        0x001dffff,
                        0x02,
                        \_SB.PCI0.LPCB.LNKC,
                        0x00,
                    },
                    Package(0x04) {
                        0x001dffff,
                        0x03,
                        \_SB.PCI0.LPCB.LNKA,
                        0x00,
                    },
                    Package(0x04) {
                        0x001effff,
                        0x00,
                        \_SB.PCI0.LPCB.LNKG,
                        0x00,
                    },
                    Package(0x04) {
                        0x001effff,
                        0x01,
                        \_SB.PCI0.LPCB.LNKE,
                        0x00,
                    },
                    Package(0x04) {
                        0x001fffff,
                        0x00,
                        \_SB.PCI0.LPCB.LNKC,
                        0x00,
                    },
                    Package(0x04) {
                        0x001fffff,
                        0x01,
                        \_SB.PCI0.LPCB.LNKD,
                        0x00,
                    },
                })
            }
        }
        Device(MBIO) {
            Name(_HID, 0x020cd041)
            Method(_STA) {
                Return(0x0f)
            }
            Name(RSRC, Buffer(0x01a6) {0x47, 0x1, 0x10, 0x0, 0x10, 0x0, 0x1, 
0x10, 0x47, 0x1, 0x24, 0x0, 0x24, 0x0, 0x1, 0x2, 0x47, 0x1, 0x28, 0x0, 0x28, 
0x0, 0x1, 0x2, 0x47, 0x1, 0x2c, 0x0, 0x2c, 0x0, 0x1, 0x2, 0x47, 0x1, 0x2e, 0x0, 
0x2e, 0x0, 0x1, 0x2, 0x47, 0x1, 0x30, 0x0, 0x30, 0x0, 0x1, 0x2, 0x47, 0x1, 
0x34, 0x0, 0x34, 0x0, 0x1, 0x2, 0x47, 0x1, 0x38, 0x0, 0x38, 0x0, 0x1, 0x2, 
0x47, 0x1, 0x3c, 0x0, 0x3c, 0x0, 0x1, 0x2, 0x47, 0x1, 0x50, 0x0, 0x50, 0x0, 
0x1, 0x4, 0x47, 0x1, 0x72, 0x0, 0x72, 0x0, 0x1, 0x6, 0x47, 0x1, 0x80, 0x0, 
0x80, 0x0, 0x1, 0x1, 0x47, 0x1, 0x90, 0x0, 0x90, 0x0, 0x1, 0x10, 0x47, 0x1, 
0xa4, 0x0, 0xa4, 0x0, 0x1, 0x2, 0x47, 0x1, 0xa8, 0x0, 0xa8, 0x0, 0x1, 0x2, 
0x47, 0x1, 0xac, 0x0, 0xac, 0x0, 0x1, 0x2, 0x47, 0x1, 0xb0, 0x0, 0xb0, 0x0, 
0x1, 0x2, 0x47, 0x1, 0xb2, 0x0, 0xb2, 0x0, 0x1, 0x2, 0x47, 0x1, 0xb4, 0x0, 
0xb4, 0x0, 0x1, 0x2, 0x47, 0x1, 0xb8, 0x0, 0xb8, 0x0, 0x1, 0x2, 0x47, 0x1, 
0xbc, 0x0, 0xbc, 0x0, 0x1, 0x2, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x1, 0x2, 
0x47, 0x1, 0x0, 0x8, 0x0, 0x8, 0x1, 0x10, 0x47, 0x1, 0x0, 0x10, 0x0, 0x10, 0x1, 
0x80, 0x47, 0x1, 0x80, 0x10, 0x80, 0x10, 0x1, 0x80, 0x47, 0x1, 0x0, 0x11, 0x0, 
0x11, 0x1, 0x20, 0x47, 0x1, 0x80, 0x11, 0x80, 0x11, 0x1, 0x40, 0x47, 0x1, 0x0, 
0xf8, 0x0, 0xf8, 0x1, 0x80, 0x47, 0x1, 0x80, 0xf8, 0x80, 0xf8, 0x1, 0x80, 0x47, 
0x1, 0x0, 0xfc, 0x0, 0xfc, 0x1, 0x80, 0x47, 0x1, 0x80, 0xfc, 0x80, 0xfc, 0x1, 
0x80, 0x47, 0x1, 0xc, 0xfd, 0xc, 0xfd, 0x1, 0x64, 0x47, 0x1, 0x0, 0xfe, 0x0, 
0xfe, 0x1, 0x2, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x4, 
0x86, 0x9, 0x0, 0x1, 0x0, 0x40, 0xd1, 0xfe, 0x0, 0x40, 0x0, 0x0, 0x86, 0x9, 
0x0, 0x1, 0x0, 0x80, 0xd1, 0xfe, 0x0, 0x10, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 
0x90, 0xd1, 0xfe, 0x0, 0x10, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0xc0, 0xd1, 
0xfe, 0x0, 0x40, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xd2, 0xfe, 0x0, 0x0, 
0x2, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x50, 0xd4, 0xfe, 0x0, 0xb0, 0x4, 0x0, 
0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xc0, 0xfe, 0x0, 0x10, 0x0, 0x0, 0x86, 0x9, 0x0, 
0x1, 0x0, 0x0, 0xe0, 0xfe, 0x0, 0x10, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 
0xf0, 0xfe, 0x0, 0x0, 0x10, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0xf0, 0xc, 0x0, 0x0, 
0x10, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xb0, 0xff, 0x0, 0x0, 0x10, 0x0, 
0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xd4, 0xfe, 0x0, 0x50, 0x0, 0x0, 0x79, 0x0
            /* ResourceTemplate() {
             0x0000  IO(Decode16, 0x10, 0x10, 0x1, 0x10)
             0x0008  IO(Decode16, 0x24, 0x24, 0x1, 0x2)
             0x0010  IO(Decode16, 0x28, 0x28, 0x1, 0x2)
             0x0018  IO(Decode16, 0x2c, 0x2c, 0x1, 0x2)
             0x0020  IO(Decode16, 0x2e, 0x2e, 0x1, 0x2)
             0x0028  IO(Decode16, 0x30, 0x30, 0x1, 0x2)
             0x0030  IO(Decode16, 0x34, 0x34, 0x1, 0x2)
             0x0038  IO(Decode16, 0x38, 0x38, 0x1, 0x2)
             0x0040  IO(Decode16, 0x3c, 0x3c, 0x1, 0x2)
             0x0048  IO(Decode16, 0x50, 0x50, 0x1, 0x4)
             0x0050  IO(Decode16, 0x72, 0x72, 0x1, 0x6)
             0x0058  IO(Decode16, 0x80, 0x80, 0x1, 0x1)
             0x0060  IO(Decode16, 0x90, 0x90, 0x1, 0x10)
             0x0068  IO(Decode16, 0xa4, 0xa4, 0x1, 0x2)
             0x0070  IO(Decode16, 0xa8, 0xa8, 0x1, 0x2)
             0x0078  IO(Decode16, 0xac, 0xac, 0x1, 0x2)
             0x0080  IO(Decode16, 0xb0, 0xb0, 0x1, 0x2)
             0x0088  IO(Decode16, 0xb2, 0xb2, 0x1, 0x2)
             0x0090  IO(Decode16, 0xb4, 0xb4, 0x1, 0x2)
             0x0098  IO(Decode16, 0xb8, 0xb8, 0x1, 0x2)
             0x00a0  IO(Decode16, 0xbc, 0xbc, 0x1, 0x2)
             0x00a8  IO(Decode16, 0x4d0, 0x4d0, 0x1, 0x2)
             0x00b0  IO(Decode16, 0x800, 0x800, 0x1, 0x10)
             0x00b8  IO(Decode16, 0x1000, 0x1000, 0x1, 0x80)
             0x00c0  IO(Decode16, 0x1080, 0x1080, 0x1, 0x80)
             0x00c8  IO(Decode16, 0x1100, 0x1100, 0x1, 0x20)
             0x00d0  IO(Decode16, 0x1180, 0x1180, 0x1, 0x40)
             0x00d8  IO(Decode16, 0xf800, 0xf800, 0x1, 0x80)
             0x00e0  IO(Decode16, 0xf880, 0xf880, 0x1, 0x80)
             0x00e8  IO(Decode16, 0xfc00, 0xfc00, 0x1, 0x80)
             0x00f0  IO(Decode16, 0xfc80, 0xfc80, 0x1, 0x80)
             0x00f8  IO(Decode16, 0xfd0c, 0xfd0c, 0x1, 0x64)
             0x0100  IO(Decode16, 0xfe00, 0xfe00, 0x1, 0x2)
             0x0108  Memory32Fixed(ReadWrite, 0xf8000000, 0x4000000)
             0x0114  Memory32Fixed(ReadWrite, 0xfed14000, 0x4000)
             0x0120  Memory32Fixed(ReadWrite, 0xfed18000, 0x1000)
             0x012c  Memory32Fixed(ReadWrite, 0xfed19000, 0x1000)
             0x0138  Memory32Fixed(ReadWrite, 0xfed1c000, 0x4000)
             0x0144  Memory32Fixed(ReadWrite, 0xfed20000, 0x20000)
             0x0150  Memory32Fixed(ReadWrite, 0xfed45000, 0x4b000)
             0x015c  Memory32Fixed(ReadWrite, 0xfec00000, 0x1000)
             0x0168  Memory32Fixed(ReadWrite, 0xfee00000, 0x1000)
             0x0174  Memory32Fixed(ReadWrite, 0xfef00000, 0x100000)
             0x0180  Memory32Fixed(ReadWrite, 0x000cf000, 0x1000)
             0x018c  Memory32Fixed(ReadWrite, 0xffb00000, 0x100000)
             0x0198  Memory32Fixed(ReadWrite, 0xfed40000, 0x5000)
            } */
             })
            Method(_CRS, 0, Serialized) {
                CreateDWordField(RSRC, 0x0184, MBBS)
                CreateDWordField(RSRC, 0x0188, MBLN)
                CreateDWordField(RSRC, 0x0190, FWBS)
                CreateDWordField(RSRC, 0x0194, FWLN)
                CreateDWordField(RSRC, 0x019c, TPMB)
                CreateDWordField(RSRC, 0x01a0, TPML)
                Store(UMST, MBBS)
                Store(UMSZ, MBLN)
                If(FWHM) {
                    Store(Zero, FWBS)
                    Store(Zero, FWLN)
                }
                If(LEqual(TPMF, 0x02)) {
                    Store(Zero, TPMB)
                    Store(Zero, TPML)
                }
                Return(RSRC)
            }
        }
        Device(GFX0) {
            Name(_ADR, 0x00020000)
            Method(XLCD) {
                Return(One)
            }
            Method(XCRT) {
                Return(One)
            }
            Method(XTV) {
                Return(XOr(SOUT, One, ))
            }
            Method(XDVI) {
                Return(Zero)
            }
            Scope(\) {
                Name(WLCD, Zero)
                Name(WCRT, Zero)
                Name(WTV, Zero)
                Name(WDVI, Zero)
            }
            Method(PHTK) {
                Store(Zero, DSWF)
            }
            Name(F10T, Package(0x0a) {
                0x01,
                0x02,
                0x03,
                0x04,
                0x05,
                0x01,
                0x02,
                0x03,
                0x04,
                0x05,
            })
            Method(AHTK) {
                If(LAnd(LEqual(And(ADOS, 0x03, ), Zero), DSWF)) {
                    UPDD()
                    If(LEqual(DSWF, 0x01)) {
                        Or(ShiftLeft(CDVI, 0x02, ), Or(ShiftLeft(CCRT, 0x01, ), 
CLCD, ), Local0)
                        Or(ShiftLeft(ADVI, 0x02, ), Or(ShiftLeft(ACRT, 0x01, ), 
ALCD, ), Local1)
                        Store(Zero, Local2)
                        Store(0xff, Local3)
                        While(LAnd(LLess(Local2, 0x0a), LEqual(Local3, 0xff))) {
                            If(LEqual(DerefOf(Index(F10T, Local2, )), Local0)) {
                                If(LAnd(CTV, ATV)) {
                                    Store(Local2, Local3)
                                }
                                Else {
                                    Add(Local2, 0x01, Local3)
                                }
                            }
                            Increment(Local2)
                        }
                        Store(0xff, Local2)
                        If(LNot(LEqual(Local3, 0xff))) {
                            While(LAnd(LLess(Local3, 0x0a), LEqual(Local2, 
0xff))) {
                                If(LEqual(And(DerefOf(Index(F10T, Local3, )), 
Local1, ), DerefOf(Index(F10T, Local3, )))) {
                                    Store(DerefOf(Index(F10T, Local3, )), 
Local2)
                                }
                                Increment(Local3)
                            }
                        }
                        If(LEqual(Local2, 0xff)) {
                            If(ALCD) {
                                Store(0x01, Local2)
                            }
                            Else {
                                If(ACRT) {
                                    Store(0x02, Local2)
                                }
                                Else {
                                    If(ADVI) {
                                        Store(0x04, Local2)
                                    }
                                    Else {
                                        Store(0x02, Local2)
                                    }
                                }
                            }
                        }
                        And(Local2, 0x01, WLCD)
                        ShiftRight(And(Local2, 0x02, ), 0x01, WCRT)
                        ShiftRight(And(Local2, 0x04, ), 0x02, WDVI)
                        Store(Zero, WTV)
                        Notify(\_SB.PCI0.GFX0, 0x80)
                    }
                    Else {
                        If(LEqual(DSWF, 0x02)) {
                            And(CLCD, ALCD, WLCD)
                            And(CCRT, ACRT, WCRT)
                            And(CDVI, ADVI, WDVI)
                            And(XOr(CTV, 0x01, ), ATV, WTV)
                            If(LOr(LOr(WTV, WDVI), LOr(WCRT, WLCD))) {
                                If(LAnd(LAnd(WLCD, WCRT), WTV)) {
                                    Store(Zero, WCRT)
                                }
                                If(LAnd(LAnd(WLCD, WDVI), WTV)) {
                                    Store(Zero, WDVI)
                                }
                                If(LAnd(LAnd(WCRT, WDVI), WTV)) {
                                    Store(Zero, WDVI)
                                }
                                Notify(\_SB.PCI0.GFX0, 0x80)
                            }
                        }
                    }
                }
            }
            Method(UPDD) {
                If(LNot(LLess(\_SB.OSTP(), 0x08))) {
                    Notify(\_SB.PCI0, 0x00)
                }
                Else {
                    Notify(\_SB.PCI0.GFX0, 0x00)
                }
                Sleep(0x02ee)
                Store(0xff, DVID)
                Store(0x8e, CMD)
                Store(Zero, SSMI)
            }
            Method(_DOS, 1) {
                And(Arg0, 0x07, ADOS)
            }
            Method(_DOD) {
                Return(Package(0x04) {
                    0x00010100,
                    0x00010110,
                    0x00010200,
                    0x00010300,
                })
            }
            Device(CRT) {
                Method(_ADR) {
                    Return(0x0100)
                }
                Method(_DCS) {
                    If(XCRT()) {
                        UPDD()
                        Return(Or(0x0d, Or(ShiftLeft(ACRT, 0x04, ), 
ShiftLeft(CCRT, 0x01, ), ), ))
                    }
                    Else {
                        Return(Zero)
                    }
                }
                Method(_DGS) {
                    Return(WCRT)
                }
                Method(_DSS, 1) {
                    Noop
                }
            }
            Device(LCD) {
                Method(_ADR) {
                    Return(0x0110)
                }
                Method(_DCS) {
                    If(XLCD()) {
                        UPDD()
                        Return(Or(0x0d, Or(ShiftLeft(ALCD, 0x04, ), 
ShiftLeft(CLCD, 0x01, ), ), ))
                    }
                    Else {
                        Return(Zero)
                    }
                }
                Method(_DGS) {
                    Return(WLCD)
                }
                Method(_DSS, 1) {
                    Noop
                }
            }
            Device(TV) {
                Method(_ADR) {
                    Return(0x0200)
                }
                Method(_DCS) {
                    If(XTV()) {
                        UPDD()
                        Return(Or(0x0d, Or(ShiftLeft(ATV, 0x04, ), 
ShiftLeft(CTV, 0x01, ), ), ))
                    }
                    Else {
                        Return(Zero)
                    }
                }
                Method(_DGS) {
                    Return(WTV)
                }
                Method(_DSS, 1) {
                    Noop
                }
            }
            Device(DVI) {
                Method(_ADR) {
                    Return(0x0300)
                }
                Method(_DCS) {
                    If(XDVI()) {
                        UPDD()
                        Return(Or(0x0d, Or(ShiftLeft(ADVI, 0x04, ), 
ShiftLeft(CDVI, 0x01, ), ), ))
                    }
                    Else {
                        Return(Zero)
                    }
                }
                Method(_DGS) {
                    Return(WDVI)
                }
                Method(_DSS, 1) {
                    Noop
                }
            }
            Scope(LCD) {
                Method(_PS0) {
                    Store(0x00, LIDS)
                }
                Method(_PS3) {
                    Store(0x01, LIDS)
                }
                Method(_BCL) {
                    If(LNot(LLess(\_SB.OSTP(), 0x40))) {
                        Return(Package(0x0a) {
                            0x64,
                            0x2b,
                            0x00,
                            0x0f,
                            0x1d,
                            0x2b,
                            0x39,
                            0x47,
                            0x55,
                            0x64,
                        })
                    }
                    Else {
                        Return(Package(0x0a) {
                            0x64,
                            0x2c,
                            0x00,
                            0x10,
                            0x1e,
                            0x2c,
                            0x3a,
                            0x48,
                            0x56,
                            0x64,
                        })
                    }
                }
                Method(_BCM, 1) {
                    If(LAnd(LNot(LLess(Arg0, 0x00)), LNot(LGreater(Arg0, 
0x64)))) {
                        \_SB.PCI0.LPCB.FJEX.SBLL(Divide(Arg0, 0x0e, , ))
                    }
                }
            }
        }
        Device(PCIB) {
            Name(_ADR, 0x001e0000)
            Method(_PRT) {
                If(GPIC) {
                    Return(Package(0x02) {
                        Package(0x04) {
                            0x0003ffff,
                            0x00,
                            0x00,
                            0x10,
                        },
                        Package(0x04) {
                            0x0003ffff,
                            0x01,
                            0x00,
                            0x11,
                        },
                    })
                }
                Else {
                    Return(Package(0x02) {
                        Package(0x04) {
                            0x0003ffff,
                            0x00,
                            \_SB.PCI0.LPCB.LNKA,
                            0x00,
                        },
                        Package(0x04) {
                            0x0003ffff,
                            0x01,
                            \_SB.PCI0.LPCB.LNKB,
                            0x00,
                        },
                    })
                }
            }
            Method(_INI) {
            }
            Name(_PRW, Package(0x02) {
                0x0b,
                0x04,
            })
        }
        Device(LPCB) {
            Name(_ADR, 0x001f0000)
            OperationRegion(LPC0, PCI_Config, 0x40, 0xc0)
            Field(LPC0, AnyAcc, NoLock, Preserve) {
                Offset(0x20),
                PARC,   8,
                PBRC,   8,
                PCRC,   8,
                PDRC,   8,
                Offset(0x28),
                PERC,   8,
                PFRC,   8,
                PGRC,   8,
                PHRC,   8,
                Offset(0x40),
                IOD0,   8,
                IOD1,   8,
                CAEN,   1
            }
            OperationRegion(SIO, SystemIO, 0x2e, 0x02)
            OperationRegion(FJIO, SystemIO, 0xfd60, 0x17)
            Scope(\) {
                Field(\_SB.PCI0.LPCB.FJIO, ByteAcc, NoLock, Preserve) {
                    AIDC,       8,
                    ADTC,       8,
                    AIDB,       8,
                    ADTB,       8,
                    AIDA,       8,
                    ADTA,       8,
                    AIDD,       8,
                    ADTD,       8,
                    Offset(0x10),
                    PMID,       8,
                    Offset(0x12),
                    PMDR,       8,
                    Offset(0x14),
                    PMDT,       8,
                    Offset(0x16),
                    PMCR,       8
                }
            }
            OperationRegion(PMIO, SystemIO, 0x1000, 0x80)
            OperationRegion(OGIO, SystemIO, 0x1180, 0x3c)
            Scope(\) {
                Field(\_SB.PCI0.LPCB.PMIO, ByteAcc, NoLock, Preserve) {
                    Offset(0x42),
                    ,   1,
                    GPEC,       1
                }
                Field(\_SB.PCI0.LPCB.OGIO, ByteAcc, NoLock, Preserve) {
                    Offset(0x2c),
                    Offset(0x2d),
                    LPOL,       1,
                    ,   4,
                    EXPL,       1,
                    Offset(0x38),
                    ,   1,
                    PXRS,       1,
                    PXCL,       1
                }
            }
            OperationRegion(OPIO, SystemIO, 0x1000, 0x67)
            Scope(\) {
                Field(\_SB.PCI0.LPCB.OPIO, ByteAcc, NoLock, Preserve) {
                    Offset(0x10),
                    Offset(0x11),
                    FOCT,       1
                }
            }
            Method(_INI) {
                \_SB.OSTP()
                \_SB.PCI0.LPCB.CMBT.SWCF()
                AINI()
                If(RPCP) {
                    Store(One, RPEN)
                    Store(B2TC, RPDS)
                }
                If(LNot(LLess(\_SB.OSTP(), 0x40))) {
                    Or(RGSI, 0x01, RGSI)
                }
            }
            Scope(\) {
                IndexField(AIDA, ADTA, ByteAcc, NoLock, Preserve) {
                    Offset(0x9),
                    RI1M,       1,
                    RI2M,       1,
                    RI3M,       1,
                    RI4M,       1,
                    RI1,        1,
                    RI2,        1,
                    RI3,        1,
                    RI4,        1,
                    ,   2,
                    CVCL,       1,
                    ,   3,
                    BLCT,       2,
                    Offset(0x20),
                    G5P0,       8,
                    G5C0,       8,
                    G3P0,       8,
                    G3C0,       8,
                    Offset(0x40),
                    SSF0,       8,
                    SSF1,       8,
                    SSM0,       8,
                    SSM1,       8,
                    SSI0,       8,
                    SSTM,       8,
                    SSF2,       8,
                    SSM2,       8,
                    SSI1,       8,
                    Offset(0x52),
                    G3P1,       8,
                    G3C1,       8,
                    G3P2,       8,
                    G3C2,       8,
                    QSWC,       8,
                    Offset(0x60),
                    SSS0,       8,
                    SSS1,       8
                }
                IndexField(AIDB, ADTB, ByteAcc, NoLock, Preserve) {
                    Offset(0x29),
                    BRCL,       8,
                    LCDB,       8,
                    Offset(0x30),
                    LCDC,       8
                }
                IndexField(AIDC, ADTC, ByteAcc, NoLock, Preserve) {
                    TASF,       1,
                    TBSF,       1,
                    B1SU,       1,
                    B1SD,       1,
                    B2SU,       1,
                    B2SD,       1,
                    Offset(0x2),
                    ,   4,
                    VSTB,       1,
                    Offset(0x5),
                    ,   6,
                    ACPW,       1,
                    Offset(0x20),
                    BCTL,       8,
                    Offset(0x23),
                    TAF,        1,
                    TASM,       1,
                    ,   2,
                    TBF,        1,
                    TBSM,       1,
                    Offset(0x24),
                    TIMA,       8,
                    TIMB,       8,
                    Offset(0x28),
                    CDLP,       8,
                    HDLP,       8,
                    FDLP,       8,
                    Offset(0x4e),
                    B1UM,       1,
                    B1DM,       1,
                    ,   1,
                    B1TC,       1,
                    B2UM,       1,
                    B2DM,       1,
                    ,   1,
                    B2TC,       1,
                    BAPC,       6
                }
                IndexField(AIDC, ADTC, ByteAcc, NoLock, Preserve) {
                    STAE,       8
                }
                IndexField(AIDD, ADTD, ByteAcc, NoLock, Preserve) {
                    Offset(0x80),
                    GIDI,       8,
                    GIDC,       8,
                    GIDO,       8,
                    Offset(0x90),
                    G3SI,       8,
                    G3SC,       8,
                    G3SO,       8,
                    G3SM,       8,
                    Offset(0xa0),
                    WOXF,       8,
                    WOXE,       8,
                    WOXD,       8,
                    WOXS,       8,
                    Offset(0xb0),
                    AMPV,       6
                }
            }
            Scope(\) {
                IndexField(PMID, PMDT, ByteAcc, NoLock, Preserve) {
                    Offset(0xa0),
                    UPPR,       1,
                    ERRO,       1,
                    PASS,       1,
                    PSOK,       1,
                    PSNG,       1,
                    TOUT,       1,
                    SIRN,       1,
                    STSC,       1,
                    OVFL,       1,
                    LWMD,       1,
                    TALM,       1,
                    EMGC,       1,
                    OCNT,       4,
                    TDTC,       1,
                    ,   4,
                    AERR,       1,
                    PERR,       1,
                    ABSY,       1,
                    Offset(0xa4),
                    PDAT,       8,
                    Offset(0xc0),
                    Offset(0xc1),
                    B1P,        1,
                    B2P,        1,
                    B1C,        1,
                    B2C,        1,
                    B1ER,       1,
                    B2ER,       1,
                    PKSH,       1,
                    CMB,        1,
                    B1CP,       8,
                    B2CP,       8,
                    BAVG,       8,
                    B1VH,       8,
                    B1VL,       8,
                    B2VH,       8,
                    B2VL,       8,
                    B1TM,       8,
                    B2TM,       8,
                    B1CH,       8,
                    B1CL,       8,
                    B2CH,       8,
                    B2CL,       8,
                    BTMH,       8,
                    BTML,       8,
                    B1LH,       8,
                    B1LL,       8,
                    B2LH,       8,
                    B2LL,       8,
                    B1ID,       4,
                    B1NO,       4,
                    B2ID,       4,
                    B2NO,       4,
                    B1DV,       8,
                    B2DV,       8,
                    B1DH,       8,
                    B1DL,       8,
                    B2DH,       8,
                    B2DL,       8,
                    TBSI,       8,
                    TBSH,       8,
                    TBSL,       8,
                    BHDD,       1,
                    BOPT,       1,
                    ,   5,
                    ABLC,       1,
                    Offset(0xe8),
                    TBCM,       8,
                    TBMD,       8,
                    TBIN,       8,
                    DCOL,       7,
                    S3EN,       1
                }
                IndexField(PMID, PMDT, ByteAcc, NoLock, Preserve) {
                    Offset(0xa2),
                    TCST,       8
                }
            }
            Scope(\) {
                IndexField(AIDA, ADTA, ByteAcc, NoLock, Preserve) {
                    Offset(0x22),
                    ,   4,
                    SOUT,       1
                }
                IndexField(PMID, PMDT, ByteAcc, NoLock, Preserve) {
                    Offset(0xec),
                    ,   1,
                    DKEV,       1
                }
            }
            Method(AINI) {
                And(SSM1, 0xcf, SSM1)
                Store(Zero, TBSM)
                Store(LWMD, PLWM)
                Store(TALM, PTAL)
                Store(0x95, CMD)
                Or(PLWM, ShiftLeft(PTAL, 0x01, ), DVID)
                Store(Zero, SSMI)
                If(LAnd(TALM, LNot(ACPW))) {
                    Store(One, FOCT)
                }
                Else {
                    Store(Zero, FOCT)
                }
                If(LNot(LLess(\_SB.OSTP(), 0x40))) {
                    Store(PMDR, Local0)
                    Store(PMDR, Local0)
                    Store(0x02, TBCM)
                    Store(0x00, TBMD)
                    Store(0x05, TBIN)
                    Store(0x00, PMCR)
                }
                If(LOr(TBPC, LNot(LLess(\_SB.OSTP(), 0x40)))) {
                    If(AS34) {
                        Store(0x01, S3EN)
                    }
                    If(LEqual(DCLW, 0x7f)) {
                        Store(0x01, DCOL)
                    }
                    Else {
                        Store(DCLW, DCOL)
                    }
                }
            }
            Device(TPM) {
                Name(_HID, 0x0201d824)
                Name(_CID, 0x310cd041)
                Name(_UID, 0x01)
                Name(_CRS, Buffer(0x1e) {0x47, 0x1, 0x4e, 0x0, 0x4e, 0x0, 0x1, 
0x2, 0x47, 0x1, 0x0, 0xfd, 0x0, 0xfd, 0x1, 0xc, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 
0xd4, 0xfe, 0x0, 0x50, 0x0, 0x0, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IO(Decode16, 0x4e, 0x4e, 0x1, 0x2)
                 0x0008  IO(Decode16, 0xfd00, 0xfd00, 0x1, 0xc)
                 0x0010  Memory32Fixed(ReadWrite, 0xfed40000, 0x5000)
                } */
                 })
                Method(_STA) {
                    If(TPMF) {
                        If(LEqual(TPMF, 0x02)) {
                            Return(0x0f)
                        }
                        Else {
                            Return(0x00)
                        }
                    }
                    Else {
                        Return(0x00)
                    }
                }
            }
            Device(DIGI) {
                Name(_HID, 0xe602aa1a)
                Method(_STA) {
                    If(LOr(TBPC, LNot(LLess(\_SB.OSTP(), 0x40)))) {
                        Return(0x0f)
                    }
                    Else {
                        Return(0x00)
                    }
                }
                Method(_INI) {
                    If(LNot(LLess(\_SB.OSTP(), 0x40))) {
                        \_SB.PCI0.LPCB.ENTR()
                        Store(0x01, U1P)
                        Store(0x88, U1A)
                        Store(0x04, U1I)
                        \_SB.PCI0.LPCB.EXIT()
                        And(IOD0, 0xf8, IOD0)
                        Or(IOD0, 0x02, IOD0)
                        Store(0x01, CAEN)
                    }
                }
                Name(_CRS, Buffer(0x0d) {0x47, 0x1, 0x20, 0x2, 0x20, 0x2, 0x1, 
0x8, 0x22, 0x10, 0x0, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IO(Decode16, 0x220, 0x220, 0x1, 0x8)
                 0x0008  IRQ() {4}
                } */
                 })
            }
            Device(BTNS) {
                Name(_HID, "FUJ02BF")
                Method(_STA) {
                    Return(0x0f)
                }
                Method(_INI) {
                    Store(PMCR, Local0)
                    Store(Zero, Local1)
                    While(LAnd(And(Local0, One, ), LLess(Local1, 0x0a))) {
                        Store(PMDR, Local0)
                        Sleep(0x0a)
                        Store(PMCR, Local0)
                        Increment(Local1)
                    }
                }
                Name(_CRS, Buffer(0x0e) {0x47, 0x1, 0x70, 0xfd, 0x70, 0xfd, 
0x1, 0x10, 0x23, 0x20, 0x0, 0x1, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IO(Decode16, 0xfd70, 0xfd70, 0x1, 0x10)
                 0x0008  IRQ(Edge, ActiveHigh, Exclusive) {5}
                } */
                 })
            }
            Device(FJEX) {
                Name(_HID, "FUJ02B1")
                Method(_STA) {
                    Return(0x0f)
                }
                Method(RBLL) {
                    Return(BLLM)
                }
                Scope(\) {
                    Name(LBLL, 0x00)
                    Name(LLCD, Ones)
                }
                Method(GBLL) {
                    Store(LBLL, Local2)
                    Store(LCDB, Local1)
                    If(LNot(LEqual(LLCD, Local1))) {
                        Store(Local1, LLCD)
                        Name(BBCT, Buffer(BLLM) { })
                        Store(BLLT, BBCT)
                        Store(BLLM, Local0)
                        While(Local0) {
                            Decrement(Local0)
                            If(LEqual(GBUF(BBCT, Local0), Local1)) {
                                Store(Local0, Local2)
                                Store(Local0, LBLL)
                                Store(Zero, Local0)
                            }
                        }
                    }
                    If(BHKF) {
                        Store(Zero, BHKF)
                        Or(Local2, 0x80000000, Local2)
                    }
                    Return(Local2)
                }
                Method(GBLS) {
                    Store(LBLL, Local2)
                    Store(LCDB, Local1)
                    If(LNot(LEqual(LLCD, Local1))) {
                        Store(Local1, LLCD)
                        Name(BBCT, Buffer(BLLM) { })
                        Store(BLLT, BBCT)
                        Store(BLLM, Local0)
                        While(Local0) {
                            Decrement(Local0)
                            If(LEqual(GBUF(BBCT, Local0), Local1)) {
                                Store(Local0, Local2)
                                Store(Local0, LBLL)
                                Store(Zero, Local0)
                            }
                        }
                    }
                    If(BHKF) {
                        Or(Local2, 0x80000000, Local2)
                    }
                    Return(Local2)
                }
                Method(SBLL, 1) {
                    If(NGTF) {
                        Store(Arg0, LSBL)
                        Return(Zero)
                    }
                    If(LLess(Arg0, BLLM)) {
                        Name(BBCT, Buffer(BLLM) { })
                        Store(BLLT, BBCT)
                        CreateByteField(BBCT, Arg0, BLL0)
                        Store(BLL0, LCDB)
                        Store(Arg0, DVID)
                        Store(0x82, CMD)
                        Store(Zero, SSMI)
                    }
                }
                Method(GBUF, 2) {
                    CreateByteField(Arg0, Arg1, BLL0)
                    Return(BLL0)
                }
                Method(GMOU) {
                    Store(0x02, DVID)
                    Store(0x91, CMD)
                    Store(Zero, SSMI)
                    Store(DVID, Local0)
                    If(MHKF) {
                        Store(Zero, MHKF)
                        Or(Local0, 0x80000000, Local0)
                    }
                    Return(Local0)
                }
                Method(SMOU, 1) {
                    If(LNot(LGreater(Arg0, One))) {
                        Store(Arg0, DVID)
                        Store(0x91, CMD)
                        Store(Zero, SSMI)
                    }
                }
                Method(GHKS) {
                    Return(AHKF)
                }
                Method(GSIF) {
                    If(IMTF) {
                        Or(RGSI, 0x08, RGSI)
                    }
                    Else {
                        And(RGSI, 0xfffffff7, RGSI)
                    }
                    Return(RGSI)
                }
            }
            Name(BTF1, 0x9a)
            Name(BTF2, 0x98)
            Scope(\) {
                Name(BTBL, Zero)
                Name(BTST, Zero)
                IndexField(AIDA, ADTA, ByteAcc, NoLock, Preserve) {
                    Offset(0x20),
                    ,   5,
                    ABEX,       1,
                    Offset(0x44),
                    ,   2,
                    WLSW,       1,
                    Offset(0x52),
                    ,   1,
                    WLR2,       1
                }
                IndexField(AIDD, ADTD, ByteAcc, NoLock, Preserve) {
                    Offset(0x92),
                    ,   2,
                    WLRF,       1,
                    ABON,       1
                }
            }
            Device(CMBT) {
                Name(_HID, "FUJ02E1")
                Method(_STA) {
                    If(LNot(LLess(\_SB.OSTP(), 0x40))) {
                        Return(0x00)
                    }
                    Else {
                        If(LNot(BTEX)) {
                            Return(0x00)
                        }
                        Else {
                            If(BLEN) {
                                Return(0x0f)
                            }
                            Else {
                                Return(0x0d)
                            }
                        }
                    }
                }
                Method(_INI) {
                    Store(Zero, BTBL)
                }
                Method(INFO) {
                    If(LEqual(_STA(), 0x0f)) {
                        Store(BTF1, Local0)
                    }
                    Else {
                        Store(BTF2, Local0)
                    }
                    Or(Local0, 0x08, Local0)
                    Return(Local0)
                }
                Method(STAT) {
                    Store(0x00, Local0)
                    If(ABON) {
                        Or(Local0, 0x02, Local0)
                    }
                    If(WLRF) {
                        Or(Local0, 0x08, Local0)
                    }
                    If(ABON) {
                        Or(Local0, 0x10, Local0)
                    }
                    If(BTBL) {
                        Or(Local0, 0x80, Local0)
                    }
                    Return(Local0)
                }
                Method(CNTL, 2) {
                    If(And(Arg0, 0x02, )) {
                        If(LEqual(_STA(), 0x0f)) {
                            If(And(Arg1, 0x02, )) {
                                Store(One, ABON)
                            }
                            Else {
                                Store(Zero, ABON)
                            }
                        }
                    }
                    If(LAnd(And(Arg0, 0x08, ), WLEN)) {
                        ShiftRight(And(Arg1, 0x08, ), 0x03, WLRF)
                    }
                    If(And(Arg0, 0x80, )) {
                        ShiftRight(And(Arg1, 0x80, ), 0x07, BTBL)
                        If(BTBL) {
                            If(WLSW) {
                                Notify(CMBT, 0x81)
                            }
                            Else {
                                Notify(CMBT, 0x82)
                            }
                        }
                    }
                }
                Method(SWCF) {
                    If(WLSW) {
                        Store(One, WLR2)
                    }
                    Else {
                        Store(Zero, WLR2)
                    }
                    If(BTBL) {
                        If(WLSW) {
                            Notify(CMBT, 0x81)
                        }
                        Else {
                            Notify(CMBT, 0x82)
                        }
                    }
                    Else {
                        If(WLSW) {
                            If(BLEN) {
                                Store(One, ABON)
                                If(WLEN) {
                                    Store(One, WLRF)
                                }
                                Else {
                                    Store(Zero, WLRF)
                                }
                            }
                            Else {
                                Store(Zero, ABON)
                                If(WLEN) {
                                    Store(One, WLRF)
                                }
                                Else {
                                    Store(Zero, WLRF)
                                }
                            }
                        }
                        Else {
                            Store(Zero, ABON)
                            Store(Zero, WLRF)
                        }
                    }
                }
                Method(BPTS, 1) {
                    If(LOr(LEqual(Arg0, 0x03), LEqual(Arg0, 0x04))) {
                        Store(WLRF, BTST)
                        Or(ShiftLeft(WLSW, 0x01, ), BTST, BTST)
                        Or(ShiftLeft(ABON, 0x02, ), BTST, BTST)
                        Or(ShiftLeft(WLR2, 0x03, ), BTST, BTST)
                    }
                    Store(Zero, ABON)
                }
                Method(BWAK, 1) {
                    If(LOr(LEqual(Arg0, 0x03), LEqual(Arg0, 0x04))) {
                        Store(And(BTST, 0x01, ), WLRF)
                        ShiftRight(And(BTST, 0x04, ), 0x02, ABON)
                        ShiftRight(And(BTST, 0x08, ), 0x03, WLR2)
                        If(LNot(LEqual(ShiftRight(And(BTST, 0x02, ), 0x01, ), 
WLSW))) {
                            SWCF()
                        }
                    }
                }
            }
            Device(EC) {
                Name(_HID, 0x090cd041)
                Name(_CRS, Buffer(0x12) {0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x1, 
0x1, 0x47, 0x1, 0x66, 0x0, 0x66, 0x0, 0x1, 0x1, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IO(Decode16, 0x62, 0x62, 0x1, 0x1)
                 0x0008  IO(Decode16, 0x66, 0x66, 0x1, 0x1)
                } */
                 })
                Name(_GPE, 0x17)
                Scope(\) {
                    Name(ECOK, Zero)
                }
                Method(_REG, 2) {
                    If(LEqual(Arg0, 0x03)) {
                        Store(Arg1, ECOK)
                    }
                }
                OperationRegion(SMB, EmbeddedControl, 0x00, 0xff)
                Scope(\) {
                    Field(\_SB.PCI0.LPCB.EC.SMB, ByteAcc, Lock, Preserve) {
                        Offset(0x4),
                        ECCM,   8,
                        ECD1,   8,
                        ECD2,   8,
                        ECD3,   8,
                        Offset(0xf8),
                        ECGM,   8,
                        ECG1,   8,
                        ECG2,   8,
                        ECG3,   8
                    }
                }
            }
            Device(DMAC) {
                Name(_HID, 0x0002d041)
                Method(_STA) {
                    Return(0x0f)
                }
                Name(_CRS, Buffer(0x1d) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 
0x10, 0x47, 0x1, 0x81, 0x0, 0x81, 0x0, 0x1, 0xf, 0x47, 0x1, 0xc0, 0x0, 0xc0, 
0x0, 0x1, 0x20, 0x2a, 0x10, 0x2, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IO(Decode16, 0x0, 0x0, 0x1, 0x10)
                 0x0008  IO(Decode16, 0x81, 0x81, 0x1, 0xf)
                 0x0010  IO(Decode16, 0xc0, 0xc0, 0x1, 0x20)
                 0x0018  DMA(Compatibility, NotBusMaster, Transfer16) {4}
                } */
                 })
            }
            Device(TIME) {
                Name(_HID, 0x0001d041)
                Method(_STA) {
                    Return(0x0f)
                }
                Name(_CRS, Buffer(0x0d) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x1, 
0x4, 0x22, 0x1, 0x0, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IO(Decode16, 0x40, 0x40, 0x1, 0x4)
                 0x0008  IRQ() {0}
                } */
                 })
            }
            Device(PIC) {
                Name(_HID, 0xd041)
                Method(_STA) {
                    Return(0x0f)
                }
                Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x20, 0x0, 0x20, 0x0, 0x1, 
0x2, 0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x22, 0x4, 0x0, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IO(Decode16, 0x20, 0x20, 0x1, 0x2)
                 0x0008  IO(Decode16, 0xa0, 0xa0, 0x1, 0x2)
                 0x0010  IRQ() {2}
                } */
                 })
            }
            Device(RTC) {
                Name(_HID, 0x000bd041)
                Method(_STA) {
                    Return(0x0f)
                }
                Name(_CRS, Buffer(0x0d) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x1, 
0x2, 0x22, 0x0, 0x1, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IO(Decode16, 0x70, 0x70, 0x1, 0x2)
                 0x0008  IRQ() {8}
                } */
                 })
            }
            Device(SPKR) {
                Name(_HID, 0x0008d041)
                Method(_STA) {
                    Return(0x0f)
                }
                Name(_CRS, Buffer(0x0a) {0x47, 0x1, 0x61, 0x0, 0x61, 0x0, 0x1, 
0x1, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IO(Decode16, 0x61, 0x61, 0x1, 0x1)
                } */
                 })
            }
            Device(MATH) {
                Name(_HID, 0x040cd041)
                Method(_STA) {
                    Return(0x0f)
                }
                Name(_CRS, Buffer(0x0d) {0x47, 0x1, 0xf0, 0x0, 0xf0, 0x0, 0x1, 
0xf, 0x22, 0x0, 0x20, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IO(Decode16, 0xf0, 0xf0, 0x1, 0xf)
                 0x0008  IRQ() {13}
                } */
                 })
            }
            Device(KBC) {
                Name(R101, 0x0303d041)
                Name(R106, 0x2003d041)
                Method(_HID) {
                    If(SIDF) {
                        Return(R101)
                    }
                    Else {
                        Return(R106)
                    }
                }
                Method(_STA) {
                    Return(0x0f)
                }
                Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x60, 0x0, 0x60, 0x0, 0x1, 
0x1, 0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x22, 0x2, 0x0, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IO(Decode16, 0x60, 0x60, 0x1, 0x1)
                 0x0008  IO(Decode16, 0x64, 0x64, 0x1, 0x1)
                 0x0010  IRQ() {1}
                } */
                 })
            }
            Device(PS2M) {
                Name(_HID, 0x130fd041)
                Method(_STA) {
                    Return(0x0f)
                }
                Name(_CRS, Buffer(0x05) {0x22, 0x0, 0x10, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IRQ() {12}
                } */
                 })
            }
            Device(FWH) {
                Name(_HID, 0x0008d425)
                Method(_STA) {
                    If(FWHM) {
                        Return(0x0f)
                    }
                    Else {
                        Return(0x00)
                    }
                }
                Name(_CRS, Buffer(0x0e) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xb0, 
0xff, 0x0, 0x0, 0x10, 0x0, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  Memory32Fixed(ReadWrite, 0xffb00000, 0x100000)
                } */
                 })
            }
            Device(HPET) {
                Name(_HID, 0x0301d041)
                Name(_CID, 0x010cd041)
                Name(BUF0, Buffer(0x0e) {0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xd0, 
0xfe, 0x0, 0x4, 0x0, 0x0, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  Memory32Fixed(ReadOnly, 0xfed00000, 0x400)
                } */
                 })
                OperationRegion(RCRB, SystemMemory, 0xfed1c000, 0x4000)
                Field(RCRB, DWordAcc, Lock, Preserve) {
                    Offset(0x3404),
                    HPAS,       2,
                    ,   5,
                    HPAE,       1
                }
                Method(_STA) {
                    If(LNot(LLess(\_SB.OSTP(), 0x08))) {
                        If(HPAE) {
                            Return(0x0f)
                        }
                    }
                    Else {
                        If(HPAE) {
                            Return(0x0b)
                        }
                    }
                    Return(0x00)
                }
                Method(_CRS, 0, Serialized) {
                    If(HPAE) {
                        CreateDWordField(BUF0, 0x04, HPT0)
                        If(LEqual(HPAS, 0x01)) {
                            Store(0xfed01000, HPT0)
                        }
                        If(LEqual(HPAS, 0x02)) {
                            Store(0xfed02000, HPT0)
                        }
                        If(LEqual(HPAS, 0x03)) {
                            Store(0xfed03000, HPT0)
                        }
                    }
                    Return(BUF0)
                }
            }
            Scope(\_SB.PCI0.LPCB) {
                OperationRegion(LIOD, PCI_Config, 0x80, 0x0a)
                OperationRegion(MBAR, SystemMemory, 0xfed14000, 0x4000)
                Field(MBAR, DWordAcc, Lock, Preserve) {
                    Offset(0xf08),
                    ,   4,
                    C2SL,       1
                }
            }
            Field(LIOD, AnyAcc, NoLock, Preserve) {
                CADR,   3,
                ,       1,
                CBDR,   3,
                Offset(0x1),
                LPDR,   2,
                ,       2,
                FDDR,   1,
                Offset(0x2),
                CALE,   1,
                CBLE,   1,
                LPLE,   1,
                FDLE,   1,
                Offset(0x8),
                GD2E,   1,
                ,       3,
                GD2B,   12
            }
            Name(TCOM, Package(0x08) {
                0x03f8,
                0x02f8,
                0x0220,
                0x0228,
                0x0238,
                0x02e8,
                0x0338,
                0x03e8,
            })
            Name(TLPT, Package(0x03) {
                0x0378,
                0x0278,
                0x03bc,
            })
            Name(TFDD, Package(0x02) {
                0x03f0,
                0x0370,
            })
            Method(DENA, 3, Serialized) {
                If(LEqual(Arg0, 0x00)) {
                    Store(Match(TCOM, MEQ, Arg1, MTR, 0x00, 0x00), Local0)
                    If(LNot(LEqual(Local0, Ones))) {
                        Store(Local0, CADR)
                        Store(One, CALE)
                    }
                }
                Else {
                    If(LOr(LEqual(Arg0, 0x01), LEqual(Arg0, 0x02))) {
                        Store(Match(TCOM, MEQ, Arg1, MTR, 0x00, 0x00), Local0)
                        If(LNot(LEqual(Local0, Ones))) {
                            Store(Local0, CBDR)
                            Store(One, CBLE)
                        }
                    }
                    Else {
                        If(LEqual(Arg0, 0x03)) {
                            Store(Match(TCOM, MEQ, Arg1, MTR, 0x00, 0x00), 
Local0)
                            If(LNot(LEqual(Local0, Ones))) {
                                Store(Local0, CBDR)
                                Store(One, CBLE)
                                ShiftRight(Arg2, 0x04, GD2B)
                                Store(One, GD2E)
                            }
                        }
                        Else {
                            If(LOr(LEqual(Arg0, 0x04), LEqual(Arg0, 0x05))) {
                                Store(Match(TLPT, MEQ, Arg1, MTR, 0x00, 0x00), 
Local0)
                                If(LNot(LEqual(Local0, Ones))) {
                                    Store(Local0, LPDR)
                                    Store(One, LPLE)
                                }
                            }
                            Else {
                                If(LEqual(Arg0, 0x07)) {
                                    Store(Match(TFDD, MEQ, Arg1, MTR, 0x00, 
0x00), Local0)
                                    If(LNot(LEqual(Local0, Ones))) {
                                        Store(Local0, FDDR)
                                        Store(One, FDLE)
                                    }
                                }
                            }
                        }
                    }
                }
            }
            Method(DDIS, 1, Serialized) {
                If(LEqual(Arg0, 0x00)) {
                    Store(Zero, CALE)
                }
                Else {
                    If(LOr(LEqual(Arg0, 0x01), LEqual(Arg0, 0x02))) {
                        Store(Zero, CBLE)
                    }
                    Else {
                        If(LEqual(Arg0, 0x03)) {
                            Store(Zero, CBLE)
                            Store(Zero, GD2E)
                        }
                        Else {
                            If(LOr(LEqual(Arg0, 0x04), LEqual(Arg0, 0x05))) {
                                Store(Zero, LPLE)
                            }
                            Else {
                                If(LEqual(Arg0, 0x07)) {
                                    Store(Zero, FDLE)
                                }
                            }
                        }
                    }
                }
            }
            Field(SIO, ByteAcc, NoLock, Preserve) {
                SIID,   8,
                SIDT,   8
            }
            IndexField(SIID, SIDT, ByteAcc, NoLock, Preserve) {
                ,       3,
                FDCP,   1,
                Offset(0x1),
                ,       2,
                PPP,    1,
                PPM,    1,
                Offset(0x2),
                ,       3,
                U1P,    1,
                ,       3,
                U2P,    1,
                Offset(0x4),
                PPEM,   2,
                Offset(0xa),
                EFTM,   8,
                Offset(0xc),
                U2MD,   6,
                Offset(0x20),
                FDA,    8,
                ,       2,
                ETOS,   1,
                Offset(0x23),
                PPA,    8,
                U1A,    8,
                U2A,    8,
                PPD,    4,
                FDD,    4,
                PPI,    4,
                FDI,    4,
                U2I,    4,
                U1I,    4,
                Offset(0x2b),
                IRA,    8,
                IRD,    4
            }
            Mutex(MTXS, 0)
            Method(ENTR) {
                Acquire(MTXS, 0xffff)
                Store(0x55, SIID)
            }
            Method(EXIT) {
                Store(0xaa, SIID)
                Release(MTXS)
            }
            Method(SETR, 5) {
                ENTR()
                If(Arg3) {
                    Subtract(FindSetRightBit(Arg3, Zero), One, Local0)
                }
                Else {
                    Store(Zero, Local0)
                }
                If(Arg4) {
                    Subtract(FindSetRightBit(Arg4, Zero), One, Local1)
                }
                Else {
                    Store(0x0f, Local1)
                }
                If(LEqual(Arg0, 0x00)) {
                    ShiftRight(Arg1, 0x02, U1A)
                    Store(Local0, U1I)
                }
                Else {
                    If(LEqual(Arg0, 0x01)) {
                        ShiftRight(Arg1, 0x02, U2A)
                        Store(Local0, U2I)
                    }
                    Else {
                        If(LEqual(Arg0, 0x02)) {
                            ShiftRight(Arg1, 0x02, U2A)
                            Store(Local0, U2I)
                        }
                        Else {
                            If(LEqual(Arg0, 0x03)) {
                                ShiftRight(Arg1, 0x02, U2A)
                                ShiftRight(Arg2, 0x03, IRA)
                                Store(Local0, U2I)
                                Store(Local1, IRD)
                            }
                            Else {
                                If(LEqual(Arg0, 0x04)) {
                                    ShiftRight(Arg1, 0x02, PPA)
                                    Store(Local0, PPI)
                                }
                                Else {
                                    If(LEqual(Arg0, 0x05)) {
                                        ShiftRight(Arg1, 0x02, PPA)
                                        Store(Local0, PPI)
                                        Store(Local1, PPD)
                                    }
                                    Else {
                                        If(LEqual(Arg0, 0x07)) {
                                            ShiftRight(Arg1, 0x02, FDA)
                                            Store(Local0, FDI)
                                            Store(Local1, FDD)
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                EXIT()
                If(Arg1) {
                    If(CondRefOf(DENA, Local0)) {
                        DENA(Arg0, Arg1, Arg2)
                    }
                    SETM(Arg0)
                }
                Else {
                    If(CondRefOf(DDIS, Local0)) {
                        DDIS(Arg0)
                    }
                }
            }
            Method(GETR, 5) {
                ENTR()
                Store(Zero, Local0)
                Store(0x0f, Local1)
                If(LEqual(Arg0, 0x00)) {
                    ShiftLeft(U1A, 0x02, Arg1)
                    Store(U1I, Local0)
                }
                Else {
                    If(LEqual(Arg0, 0x01)) {
                        ShiftLeft(U2A, 0x02, Arg1)
                        Store(U2I, Local0)
                    }
                    Else {
                        If(LEqual(Arg0, 0x02)) {
                            ShiftLeft(U2A, 0x02, Arg1)
                            Store(U2I, Local0)
                        }
                        Else {
                            If(LEqual(Arg0, 0x03)) {
                                ShiftLeft(U2A, 0x02, Arg1)
                                ShiftLeft(IRA, 0x03, Arg2)
                                Store(U2I, Local0)
                                Store(IRD, Local1)
                            }
                            Else {
                                If(LEqual(Arg0, 0x04)) {
                                    ShiftLeft(PPA, 0x02, Arg1)
                                    Store(PPI, Local0)
                                }
                                Else {
                                    If(LEqual(Arg0, 0x05)) {
                                        ShiftLeft(PPA, 0x02, Arg1)
                                        Store(PPI, Local0)
                                        Store(PPD, Local1)
                                    }
                                    Else {
                                        If(LEqual(Arg0, 0x07)) {
                                            ShiftLeft(FDA, 0x02, Arg1)
                                            Store(FDI, Local0)
                                            Store(FDD, Local1)
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                If(Local0) {
                    ShiftLeft(One, Local0, Arg3)
                }
                Else {
                    Store(Zero, Arg3)
                }
                If(LNot(LEqual(Local1, 0x0f))) {
                    ShiftLeft(One, Local1, Arg4)
                }
                Else {
                    Store(Zero, Arg4)
                }
                EXIT()
            }
            Method(SETM, 1) {
                ENTR()
                If(LEqual(Arg0, 0x00)) {
                    Store(One, U1P)
                }
                Else {
                    If(LEqual(Arg0, 0x01)) {
                        Store(0x06, U2MD)
                        Store(One, U2P)
                    }
                    Else {
                        If(LEqual(Arg0, 0x02)) {
                            Store(0x0e, U2MD)
                            Store(One, U2P)
                        }
                        Else {
                            If(LEqual(Arg0, 0x03)) {
                                Store(0x0e, U2MD)
                                Store(One, U2P)
                            }
                            Else {
                                If(LEqual(Arg0, 0x04)) {
                                    If(LEqual(PPF, One)) {
                                        Store(One, PPM)
                                    }
                                    Else {
                                        Store(Zero, PPM)
                                        Store(Zero, PPEM)
                                    }
                                    Store(One, PPP)
                                }
                                Else {
                                    If(LEqual(Arg0, 0x05)) {
                                        Store(Zero, PPM)
                                        Store(0x02, PPEM)
                                        Store(One, PPP)
                                    }
                                }
                            }
                        }
                    }
                }
                EXIT()
            }
            Method(SETP, 2) {
                ENTR()
                If(LEqual(Arg0, 0x00)) {
                    Store(Arg1, U1P)
                }
                Else {
                    If(LEqual(Arg0, 0x01)) {
                        Store(Arg1, U2P)
                    }
                    Else {
                        If(LEqual(Arg0, 0x02)) {
                            Store(Arg1, U2P)
                        }
                        Else {
                            If(LEqual(Arg0, 0x03)) {
                                Store(Arg1, U2P)
                            }
                            Else {
                                If(LEqual(Arg0, 0x04)) {
                                    Store(Arg1, PPP)
                                }
                                Else {
                                    If(LEqual(Arg0, 0x05)) {
                                        Store(Arg1, PPP)
                                    }
                                }
                            }
                        }
                    }
                }
                EXIT()
            }
            Method(GETP, 1) {
                Store(Zero, Local0)
                ENTR()
                If(LEqual(Arg0, 0x00)) {
                    Store(U1P, Local0)
                }
                Else {
                    If(LEqual(Arg0, 0x01)) {
                        Store(U2P, Local0)
                    }
                    Else {
                        If(LEqual(Arg0, 0x02)) {
                            Store(U2P, Local0)
                        }
                        Else {
                            If(LEqual(Arg0, 0x03)) {
                                Store(U2P, Local0)
                            }
                            Else {
                                If(LEqual(Arg0, 0x04)) {
                                    Store(PPP, Local0)
                                }
                                Else {
                                    If(LEqual(Arg0, 0x05)) {
                                        Store(PPP, Local0)
                                    }
                                }
                            }
                        }
                    }
                }
                EXIT()
                Return(Local0)
            }
            Method(CHKM, 1) {
                If(LEqual(Arg0, 0x00)) {
                    If(SPAF) {
                        Return(One)
                    }
                }
                Else {
                    If(LEqual(Arg0, 0x01)) {
                        If(LEqual(SPBF, 0x03)) {
                            Return(One)
                        }
                    }
                    Else {
                        If(LEqual(Arg0, 0x02)) {
                            If(LEqual(SPBF, One)) {
                                Return(One)
                            }
                        }
                        Else {
                            If(LEqual(Arg0, 0x03)) {
                                If(LEqual(SPBF, 0x02)) {
                                    Return(One)
                                }
                            }
                            Else {
                                If(LEqual(Arg0, 0x04)) {
                                    If(LOr(LEqual(PPF, One), LEqual(PPF, 
0x02))) {
                                        Return(One)
                                    }
                                }
                                Else {
                                    If(LEqual(Arg0, 0x05)) {
                                        If(LEqual(PPF, 0x03)) {
                                            Return(One)
                                        }
                                    }
                                    Else {
                                        If(LEqual(Arg0, 0x07)) {
                                            If(FDCF) {
                                                Return(One)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                Return(Zero)
            }
            Device(UAR1) {
                Name(_HID, 0x0105d041)
                Name(_UID, 0x01)
                Name(RSRC, Buffer(0x0d) {0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x1, 
0x8, 0x22, 0x10, 0x0, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IO(Decode16, 0x3f8, 0x3f8, 0x1, 0x8)
                 0x0008  IRQ() {4}
                } */
                 })
                Name(_PRS, Buffer(0x34) {0x31, 0x4, 0x47, 0x1, 0xf8, 0x3, 0xf8, 
0x3, 0x1, 0x8, 0x22, 0x10, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x1, 
0x8, 0x22, 0x8, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x1, 0x8, 0x22, 
0x10, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x1, 0x8, 0x22, 0x8, 0x0, 
0x38, 0x79, 0x0
                /* ResourceTemplate() {
                    StartDependentFn(0, 1) {
                     0x0001  Unknown(0x0, 4)
                     0x0006  Unknown(0xf8, 259)
 })
                Method(_STA) {
                    If(LNot(LLess(\_SB.OSTP(), 0x40))) {
                        Return(0x00)
                    }
                    Else {
                        If(CHKM(0x00)) {
                            GETR(0x00, RefOf(Local0), RefOf(Local1), 
RefOf(Local2), RefOf(Local3))
                            If(Local0) {
                                Return(0x0f)
                            }
                            Else {
                                Return(0x0d)
                            }
                        }
                        Else {
                            Return(0x00)
                        }
                    }
                }
                Method(_CRS) {
                    CreateWordField(RSRC, 0x02, IO11)
                    CreateWordField(RSRC, 0x04, IO12)
                    CreateWordField(RSRC, 0x09, IRQ1)
                    GETR(0x00, RefOf(Local0), RefOf(Local1), RefOf(Local2), 
RefOf(Local3))
                    Store(Local0, IO11)
                    Store(Local0, IO12)
                    Store(Local2, IRQ1)
                    Return(RSRC)
                }
                Method(_SRS, 1) {
                    CreateWordField(Arg0, 0x04, IO11)
                    CreateWordField(Arg0, 0x09, IRQ1)
                    SETR(0x00, IO11, Zero, IRQ1, Zero)
                }
                Method(_DIS) {
                    SETR(0x00, Zero, Zero, Zero, Zero)
                }
                Method(_INI) {
                    If(CHKM(0x00)) {
                        SETM(0x00)
                    }
                }
            }
            Device(LNKA) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x01)
                Method(_DIS, 0, Serialized) {
                    Store(0x80, PARC)
                }
                Name(_PRS, Buffer(0x06) {0x23, 0xfa, 0xd4, 0x18, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IRQ(Level, ActiveLow, Shared) {1, 3, 4, 5, 6, 7, 10, 
12, 14, 15}
                } */
                 })
                Method(_CRS, 0, Serialized) {
                    Name(RTLA, Buffer(0x06) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0
                    /* ResourceTemplate() {
                     0x0000  IRQ(Level, ActiveLow, Shared)
                    } */
                     })
                    CreateWordField(RTLA, 0x01, IRQ0)
                    Store(Zero, IRQ0)
                    ShiftLeft(0x01, And(PARC, 0x0f, ), IRQ0)
                    Return(RTLA)
                }
                Method(_SRS, 1, Serialized) {
                    CreateWordField(Arg0, 0x01, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Store(Local0, PARC)
                }
                Method(_STA, 0, Serialized) {
                    If(And(PARC, 0x80, )) {
                        Return(0x09)
                    }
                    Else {
                        Return(0x0b)
                    }
                }
            }
            Device(LNKB) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x02)
                Method(_DIS, 0, Serialized) {
                    Store(0x80, PBRC)
                }
                Name(_PRS, Buffer(0x06) {0x23, 0xfa, 0xd8, 0x18, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IRQ(Level, ActiveLow, Shared) {1, 3, 4, 5, 6, 7, 11, 
12, 14, 15}
                } */
                 })
                Method(_CRS, 0, Serialized) {
                    Name(RTLB, Buffer(0x06) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0
                    /* ResourceTemplate() {
                     0x0000  IRQ(Level, ActiveLow, Shared)
                    } */
                     })
                    CreateWordField(RTLB, 0x01, IRQ0)
                    Store(Zero, IRQ0)
                    ShiftLeft(0x01, And(PBRC, 0x0f, ), IRQ0)
                    Return(RTLB)
                }
                Method(_SRS, 1, Serialized) {
                    CreateWordField(Arg0, 0x01, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Store(Local0, PBRC)
                }
                Method(_STA, 0, Serialized) {
                    If(And(PBRC, 0x80, )) {
                        Return(0x09)
                    }
                    Else {
                        Return(0x0b)
                    }
                }
            }
            Device(LNKC) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x03)
                Method(_DIS, 0, Serialized) {
                    Store(0x80, PCRC)
                }
                Name(_PRS, Buffer(0x06) {0x23, 0xfa, 0xd4, 0x18, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IRQ(Level, ActiveLow, Shared) {1, 3, 4, 5, 6, 7, 10, 
12, 14, 15}
                } */
                 })
                Method(_CRS, 0, Serialized) {
                    Name(RTLC, Buffer(0x06) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0
                    /* ResourceTemplate() {
                     0x0000  IRQ(Level, ActiveLow, Shared)
                    } */
                     })
                    CreateWordField(RTLC, 0x01, IRQ0)
                    Store(Zero, IRQ0)
                    ShiftLeft(0x01, And(PCRC, 0x0f, ), IRQ0)
                    Return(RTLC)
                }
                Method(_SRS, 1, Serialized) {
                    CreateWordField(Arg0, 0x01, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Store(Local0, PCRC)
                }
                Method(_STA, 0, Serialized) {
                    If(And(PCRC, 0x80, )) {
                        Return(0x09)
                    }
                    Else {
                        Return(0x0b)
                    }
                }
            }
            Device(LNKD) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x04)
                Method(_DIS, 0, Serialized) {
                    Store(0x80, PDRC)
                }
                Name(_PRS, Buffer(0x06) {0x23, 0xfa, 0xd8, 0x18, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IRQ(Level, ActiveLow, Shared) {1, 3, 4, 5, 6, 7, 11, 
12, 14, 15}
                } */
                 })
                Method(_CRS, 0, Serialized) {
                    Name(RTLD, Buffer(0x06) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0
                    /* ResourceTemplate() {
                     0x0000  IRQ(Level, ActiveLow, Shared)
                    } */
                     })
                    CreateWordField(RTLD, 0x01, IRQ0)
                    Store(Zero, IRQ0)
                    ShiftLeft(0x01, And(PDRC, 0x0f, ), IRQ0)
                    Return(RTLD)
                }
                Method(_SRS, 1, Serialized) {
                    CreateWordField(Arg0, 0x01, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Store(Local0, PDRC)
                }
                Method(_STA, 0, Serialized) {
                    If(And(PDRC, 0x80, )) {
                        Return(0x09)
                    }
                    Else {
                        Return(0x0b)
                    }
                }
            }
            Device(LNKE) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x05)
                Method(_DIS, 0, Serialized) {
                    Store(0x80, PERC)
                }
                Name(_PRS, Buffer(0x06) {0x23, 0xfa, 0xd4, 0x18, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IRQ(Level, ActiveLow, Shared) {1, 3, 4, 5, 6, 7, 10, 
12, 14, 15}
                } */
                 })
                Method(_CRS, 0, Serialized) {
                    Name(RTLE, Buffer(0x06) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0
                    /* ResourceTemplate() {
                     0x0000  IRQ(Level, ActiveLow, Shared)
                    } */
                     })
                    CreateWordField(RTLE, 0x01, IRQ0)
                    Store(Zero, IRQ0)
                    ShiftLeft(0x01, And(PERC, 0x0f, ), IRQ0)
                    Return(RTLE)
                }
                Method(_SRS, 1, Serialized) {
                    CreateWordField(Arg0, 0x01, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Store(Local0, PERC)
                }
                Method(_STA, 0, Serialized) {
                    If(And(PERC, 0x80, )) {
                        Return(0x09)
                    }
                    Else {
                        Return(0x0b)
                    }
                }
            }
            Device(LNKF) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x06)
                Method(_DIS, 0, Serialized) {
                    Store(0x80, PFRC)
                }
                Name(_PRS, Buffer(0x06) {0x23, 0xfa, 0xd8, 0x18, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IRQ(Level, ActiveLow, Shared) {1, 3, 4, 5, 6, 7, 11, 
12, 14, 15}
                } */
                 })
                Method(_CRS, 0, Serialized) {
                    Name(RTLF, Buffer(0x06) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0
                    /* ResourceTemplate() {
                     0x0000  IRQ(Level, ActiveLow, Shared)
                    } */
                     })
                    CreateWordField(RTLF, 0x01, IRQ0)
                    Store(Zero, IRQ0)
                    ShiftLeft(0x01, And(PFRC, 0x0f, ), IRQ0)
                    Return(RTLF)
                }
                Method(_SRS, 1, Serialized) {
                    CreateWordField(Arg0, 0x01, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Store(Local0, PFRC)
                }
                Method(_STA, 0, Serialized) {
                    If(And(PFRC, 0x80, )) {
                        Return(0x09)
                    }
                    Else {
                        Return(0x0b)
                    }
                }
            }
            Device(LNKG) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x07)
                Method(_DIS, 0, Serialized) {
                    Store(0x80, PGRC)
                }
                Name(_PRS, Buffer(0x06) {0x23, 0xfa, 0xd4, 0x18, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IRQ(Level, ActiveLow, Shared) {1, 3, 4, 5, 6, 7, 10, 
12, 14, 15}
                } */
                 })
                Method(_CRS, 0, Serialized) {
                    Name(RTLG, Buffer(0x06) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0
                    /* ResourceTemplate() {
                     0x0000  IRQ(Level, ActiveLow, Shared)
                    } */
                     })
                    CreateWordField(RTLG, 0x01, IRQ0)
                    Store(Zero, IRQ0)
                    ShiftLeft(0x01, And(PGRC, 0x0f, ), IRQ0)
                    Return(RTLG)
                }
                Method(_SRS, 1, Serialized) {
                    CreateWordField(Arg0, 0x01, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Store(Local0, PGRC)
                }
                Method(_STA, 0, Serialized) {
                    If(And(PGRC, 0x80, )) {
                        Return(0x09)
                    }
                    Else {
                        Return(0x0b)
                    }
                }
            }
            Device(LNKH) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x08)
                Method(_DIS, 0, Serialized) {
                    Store(0x80, PHRC)
                }
                Name(_PRS, Buffer(0x06) {0x23, 0xf8, 0xd8, 0x18, 0x79, 0x0
                /* ResourceTemplate() {
                 0x0000  IRQ(Level, ActiveLow, Shared) {3, 4, 5, 6, 7, 11, 12, 
14, 15}
                } */
                 })
                Method(_CRS, 0, Serialized) {
                    Name(RTLH, Buffer(0x06) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0
                    /* ResourceTemplate() {
                     0x0000  IRQ(Level, ActiveLow, Shared)
                    } */
                     })
                    CreateWordField(RTLH, 0x01, IRQ0)
                    Store(Zero, IRQ0)
                    ShiftLeft(0x01, And(PHRC, 0x0f, ), IRQ0)
                    Return(RTLH)
                }
                Method(_SRS, 1, Serialized) {
                    CreateWordField(Arg0, 0x01, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Store(Local0, PHRC)
                }
                Method(_STA, 0, Serialized) {
                    If(And(PHRC, 0x80, )) {
                        Return(0x09)
                    }
                    Else {
                        Return(0x0b)
                    }
                }
            }
        }
        Device(PATA) {
            Name(_ADR, 0x001f0001)
            Name(PMMN, Buffer(0x28) { })
            Name(PSMN, Buffer(0x28) { })
            OperationRegion(ATIO, SystemIO, 0x01f7, 0x01)
            Field(ATIO, ByteAcc, NoLock, Preserve) {
                STSR,   8
            }
            OperationRegion(PCI, PCI_Config, 0x40, 0x18)
            Field(PCI, ByteAcc, NoLock, Preserve) {
                PTI0,   1,
                PIE0,   1,
                PPP0,   1,
                PDT0,   1,
                PTI1,   1,
                PIE1,   1,
                PPP1,   1,
                PDT1,   1,
                PRCT,   2,
                ,       2,
                PISP,   2,
                PSIT,   1,
                PIDE,   1,
                Offset(0x4),
                PRC1,   2,
                PIS1,   2,
                Offset(0x8),
                PSD0,   1,
                PSD1,   1,
                Offset(0xa),
                PCT0,   2,
                ,       2,
                PCT1,   2,
                Offset(0x14),
                PCB0,   1,
                PCB1,   1,
                ,       2,
                PMCC,   1,
                PSCC,   1,
                ,       6,
                FPC0,   1,
                FPC1,   1,
                Offset(0x16),
                PSMD,   2
            }
            Device(PRIM) {
                Name(_ADR, 0x00)
                Device(MAST) {
                    Name(_ADR, 0x00)
                    Method(_GTF) {
                        Name(GTFB, Buffer(0x15) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 
0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xf5 
})
                        CreateByteField(GTFB, 0x01, SPIO)
                        CreateByteField(GTFB, 0x08, SDMA)
                        CreateByteField(GTFB, 0x14, SCMD)
                        If(LNot(SSUP())) {
                            Store(0x00, SCMD)
                        }
                        If(LNot(PIE0)) {
                            Store(0x01, SPIO)
                        }
                        Else {
                            If(LOr(PDT0, LNot(PTI0))) {
                                Store(0x08, SPIO)
                            }
                            Else {
                                If(LLess(Add(PISP, PRCT, ), 0x03)) {
                                    Store(0x0a, SPIO)
                                }
                                Else {
                                    If(LLess(Add(PISP, PRCT, ), 0x05)) {
                                        Store(0x0b, SPIO)
                                    }
                                    Else {
                                        Store(0x0c, SPIO)
                                    }
                                }
                            }
                        }
                        If(PSD0) {
                            If(And(FPC0, PMCC, )) {
                                Store(0x45, SDMA)
                            }
                            Else {
                                If(And(PCB0, PMCC, )) {
                                    If(LEqual(PCT0, 0x02)) {
                                        Store(0x44, SDMA)
                                    }
                                    Else {
                                        Store(0x43, SDMA)
                                    }
                                }
                                Else {
                                    If(LEqual(PCT0, 0x02)) {
                                        Store(0x42, SDMA)
                                    }
                                    Else {
                                        If(LEqual(PCT0, 0x01)) {
                                            Store(0x41, SDMA)
                                        }
                                        Else {
                                            Store(0x40, SDMA)
                                        }
                                    }
                                }
                            }
                        }
                        Else {
                            If(LLess(Add(PISP, PRCT, ), 0x05)) {
                                Store(0x21, SDMA)
                            }
                            Else {
                                Store(0x22, SDMA)
                            }
                        }
                        Return(GTFB)
                    }
                }
                Device(SLAV) {
                    Name(_ADR, 0x01)
                    Method(_GTF) {
                        Name(GTFB, Buffer(0x15) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 
0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xf5 
})
                        CreateByteField(GTFB, 0x01, SPIO)
                        CreateByteField(GTFB, 0x08, SDMA)
                        CreateByteField(GTFB, 0x14, SCMD)
                        If(LNot(SSUP())) {
                            Store(0x00, SCMD)
                        }
                        If(LNot(PIE1)) {
                            Store(0x01, SPIO)
                        }
                        Else {
                            If(LOr(PDT1, LNot(PTI1))) {
                                Store(0x08, SPIO)
                            }
                            Else {
                                If(PSIT) {
                                    If(LLess(Add(PIS1, PRC1, ), 0x03)) {
                                        Store(0x0a, SPIO)
                                    }
                                    Else {
                                        If(LLess(Add(PIS1, PRC1, ), 0x05)) {
                                            Store(0x0b, SPIO)
                                        }
                                        Else {
                                            Store(0x0c, SPIO)
                                        }
                                    }
                                }
                                Else {
                                    If(LLess(Add(PISP, PRCT, ), 0x03)) {
                                        Store(0x0a, SPIO)
                                    }
                                    Else {
                                        If(LLess(Add(PISP, PRCT, ), 0x05)) {
                                            Store(0x0b, SPIO)
                                        }
                                        Else {
                                            Store(0x0c, SPIO)
                                        }
                                    }
                                }
                            }
                        }
                        If(PSD1) {
                            If(And(FPC1, PSCC, )) {
                                Store(0x45, SDMA)
                            }
                            Else {
                                If(And(PCB1, PSCC, )) {
                                    If(LEqual(PCT1, 0x02)) {
                                        Store(0x44, SDMA)
                                    }
                                    Else {
                                        Store(0x43, SDMA)
                                    }
                                }
                                Else {
                                    If(LEqual(PCT1, 0x02)) {
                                        Store(0x42, SDMA)
                                    }
                                    Else {
                                        If(LEqual(PCT1, 0x01)) {
                                            Store(0x41, SDMA)
                                        }
                                        Else {
                                            Store(0x40, SDMA)
                                        }
                                    }
                                }
                            }
                        }
                        Else {
                            If(PSIT) {
                                If(LLess(Add(PIS1, PRC1, ), 0x05)) {
                                    Store(0x21, SDMA)
                                }
                                Else {
                                    Store(0x22, SDMA)
                                }
                            }
                            Else {
                                If(LLess(Add(PISP, PRCT, ), 0x05)) {
                                    Store(0x21, SDMA)
                                }
                                Else {
                                    Store(0x22, SDMA)
                                }
                            }
                        }
                        Return(GTFB)
                    }
                }
                Method(_GTM) {
                    Name(GTMB, Buffer(0x14) { })
                    CreateDWordField(GTMB, 0x00, PIO0)
                    CreateDWordField(GTMB, 0x04, DMA0)
                    CreateDWordField(GTMB, 0x08, PIO1)
                    CreateDWordField(GTMB, 0x0c, DMA1)
                    CreateDWordField(GTMB, 0x10, FLAG)
                    Store(0x10, FLAG)
                    Or(FLAG, Or(ShiftLeft(PIE1, 0x03, ), ShiftLeft(PIE0, 0x01, 
), ), FLAG)
                    If(LOr(PDT0, LNot(PTI0))) {
                        Store(0x0384, PIO0)
                    }
                    Else {
                        Multiply(Subtract(0x09, Add(PRCT, PISP, ), ), 0x1e, 
PIO0)
                    }
                    If(LNot(PSD0)) {
                        Store(PIO0, DMA0)
                    }
                    Else {
                        Or(FLAG, 0x01, FLAG)
                        If(And(FPC0, PMCC, )) {
                            Store(0x14, DMA0)
                        }
                        Else {
                            If(And(PCB0, PMCC, )) {
                                Multiply(Subtract(0x04, PCT0, ), 0x0f, DMA0)
                            }
                            Else {
                                Multiply(Subtract(0x04, PCT0, ), 0x1e, DMA0)
                            }
                        }
                    }
                    If(LOr(PDT1, LNot(PTI1))) {
                        Store(0x0384, PIO1)
                    }
                    Else {
                        If(LNot(PSIT)) {
                            Store(PIO0, PIO1)
                        }
                        Else {
                            Multiply(Subtract(0x09, Add(PRC1, PIS1, ), ), 0x1e, 
PIO1)
                        }
                    }
                    If(LNot(PSD1)) {
                        Store(PIO1, DMA1)
                    }
                    Else {
                        Or(FLAG, 0x04, FLAG)
                        If(And(FPC1, PSCC, )) {
                            Store(0x14, DMA1)
                        }
                        Else {
                            If(And(PCB1, PSCC, )) {
                                Multiply(Subtract(0x04, PCT1, ), 0x0f, DMA1)
                            }
                            Else {
                                Multiply(Subtract(0x04, PCT1, ), 0x1e, DMA1)
                            }
                        }
                    }
                    Return(GTMB)
                }
                Method(_STM, 3) {
                    CreateDWordField(Arg0, 0x00, PIO0)
                    CreateDWordField(Arg0, 0x04, DMA0)
                    CreateDWordField(Arg0, 0x08, PIO1)
                    CreateDWordField(Arg0, 0x0c, DMA1)
                    CreateDWordField(Arg0, 0x10, FLAG)
                    Store(0x00, PSIT)
                    If(LAnd(MSMF(), LEqual(SizeOf(Arg1), 0x0200))) {
                        CreateField(Arg1, 0x01b0, 0x0140, MBUF)
                        Store(MBUF, PMMN)
                        CreateWordField(Arg1, 0x62, W490)
                        CreateWordField(Arg1, 0x66, W510)
                        CreateWordField(Arg1, 0x6a, W530)
                        CreateWordField(Arg1, 0x7c, W620)
                        CreateWordField(Arg1, 0x7e, W630)
                        CreateWordField(Arg1, 0x80, W640)
                        CreateWordField(Arg1, 0xb0, W880)
                        Store(0x00, PISP)
                        Store(0x00, PRCT)
                        Store(0x00, PDT0)
                        Store(0x00, PIE0)
                        Store(0x00, PTI0)
                        Store(0x00, PSD0)
                        Store(0x00, PCT0)
                        Store(0x00, PCB0)
                        Store(0x00, PMCC)
                        Store(0x00, FPC0)
                        If(LAnd(And(FLAG, 0x02, ), And(W490, 0x0800, ))) {
                            Store(0x01, PIE0)
                        }
                        If(LAnd(LNot(LGreater(PIO0, 0x78)), LAnd(And(W530, 
0x02, ), And(W640, 0x02, )))) {
                            Store(0x02, PISP)
                            Store(0x03, PRCT)
                            Store(0x01, PTI0)
                        }
                        Else {
                            If(LAnd(LNot(LGreater(PIO0, 0xb4)), LAnd(And(W530, 
0x02, ), And(W640, 0x01, )))) {
                                Store(0x02, PISP)
                                Store(0x01, PRCT)
                                Store(0x01, PTI0)
                            }
                            Else {
                                If(LAnd(LNot(LGreater(PIO0, 0xf0)), 
LNot(LLess(W510, 0x0200)))) {
                                    Store(0x01, PISP)
                                    Store(0x01, PTI0)
                                }
                                Else {
                                    Noop
                                }
                            }
                        }
                        If(LNot(LEqual(DMA0, 0xffffffff))) {
                            If(LAnd(And(FLAG, 0x01, ), LAnd(And(W530, 0x04, ), 
And(W880, 0x3f, )))) {
                                Store(0x01, PSD0)
                                If(LAnd(LNot(LGreater(DMA0, 0x14)), And(W880, 
0x20, ))) {
                                    Store(0x01, PCT0)
                                    Store(0x01, PMCC)
                                    Store(0x01, FPC0)
                                }
                                Else {
                                    If(LAnd(LNot(LGreater(DMA0, 0x1e)), 
And(W880, 0x10, ))) {
                                        Store(0x02, PCT0)
                                        Store(0x01, PMCC)
                                        Store(0x01, PCB0)
                                    }
                                    Else {
                                        If(LAnd(LNot(LGreater(DMA0, 0x2d)), 
And(W880, 0x08, ))) {
                                            Store(0x01, PCT0)
                                            Store(0x01, PMCC)
                                            Store(0x01, PCB0)
                                        }
                                        Else {
                                            If(LAnd(LNot(LGreater(DMA0, 0x3c)), 
And(W880, 0x04, ))) {
                                                Store(0x02, PCT0)
                                            }
                                            Else {
                                                If(LAnd(LNot(LGreater(DMA0, 
0x5a)), And(W880, 0x02, ))) {
                                                    Store(0x01, PCT0)
                                                }
                                                Else {
                                                    Noop
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            Else {
                                If(LAnd(LNot(LGreater(DMA0, 0x78)), And(W630, 
0x04, ))) {
                                    Store(0x02, PISP)
                                    Store(0x03, PRCT)
                                    Store(0x01, PTI0)
                                }
                                Else {
                                    If(LAnd(LNot(LGreater(DMA0, 0xb4)), 
And(W630, 0x02, ))) {
                                        Store(0x02, PISP)
                                        Store(0x01, PRCT)
                                        Store(0x01, PTI0)
                                    }
                                    Else {
                                        Noop
                                    }
                                }
                            }
                        }
                    }
                    If(LAnd(SSMF(), LEqual(SizeOf(Arg2), 0x0200))) {
                        CreateField(Arg2, 0x01b0, 0x0140, SBUF)
                        Store(SBUF, PSMN)
                        CreateWordField(Arg2, 0x62, W491)
                        CreateWordField(Arg2, 0x66, W511)
                        CreateWordField(Arg2, 0x6a, W531)
                        CreateWordField(Arg2, 0x7c, W621)
                        CreateWordField(Arg2, 0x7e, W631)
                        CreateWordField(Arg2, 0x80, W641)
                        CreateWordField(Arg2, 0xb0, W881)
                        Store(0x00, PIS1)
                        Store(0x00, PRC1)
                        Store(0x00, PDT1)
                        Store(0x00, PIE1)
                        Store(0x00, PTI1)
                        Store(0x00, PSD1)
                        Store(0x00, PCT1)
                        Store(0x00, PCB1)
                        Store(0x00, PSCC)
                        Store(0x00, FPC1)
                        If(LAnd(And(FLAG, 0x08, ), And(W491, 0x0800, ))) {
                            Store(0x01, PIE1)
                        }
                        If(LAnd(And(FLAG, 0x10, ), LAnd(LNot(LEqual(PIO1, 
0xffffffff)), LNot(LEqual(PIO1, PIO0))))) {
                            Store(0x01, PSIT)
                            If(LAnd(LNot(LGreater(PIO1, 0x78)), LAnd(And(W531, 
0x02, ), And(W641, 0x02, )))) {
                                Store(0x02, PIS1)
                                Store(0x03, PRC1)
                                Store(0x01, PTI1)
                            }
                            Else {
                                If(LAnd(LNot(LGreater(PIO1, 0xb4)), 
LAnd(And(W531, 0x02, ), And(W641, 0x01, )))) {
                                    Store(0x02, PIS1)
                                    Store(0x01, PRC1)
                                    Store(0x01, PTI1)
                                }
                                Else {
                                    If(LAnd(LNot(LGreater(PIO1, 0xf0)), 
LNot(LLess(W511, 0x0200)))) {
                                        Store(0x01, PIS1)
                                        Store(0x01, PTI1)
                                    }
                                    Else {
                                        Noop
                                    }
                                }
                            }
                        }
                        If(LNot(LEqual(DMA1, 0xffffffff))) {
                            If(LAnd(And(FLAG, 0x04, ), LAnd(And(W531, 0x04, ), 
And(W881, 0x3f, )))) {
                                Store(0x01, PSD1)
                                If(LAnd(LNot(LGreater(DMA1, 0x14)), And(W881, 
0x20, ))) {
                                    Store(0x01, PCT1)
                                    Store(0x01, PSCC)
                                    Store(0x01, FPC1)
                                }
                                Else {
                                    If(LAnd(LNot(LGreater(DMA1, 0x1e)), 
And(W881, 0x10, ))) {
                                        Store(0x02, PCT1)
                                        Store(0x01, PSCC)
                                        Store(0x01, PCB1)
                                    }
                                    Else {
                                        If(LAnd(LNot(LGreater(DMA1, 0x2d)), 
And(W881, 0x08, ))) {
                                            Store(0x01, PCT1)
                                            Store(0x01, PSCC)
                                            Store(0x01, PCB1)
                                        }
                                        Else {
                                            If(LAnd(LNot(LGreater(DMA1, 0x3c)), 
And(W881, 0x04, ))) {
                                                Store(0x02, PCT1)
                                            }
                                            Else {
                                                If(LAnd(LNot(LGreater(DMA1, 
0x5a)), And(W881, 0x02, ))) {
                                                    Store(0x01, PCT1)
                                                }
                                                Else {
                                                    Noop
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            Else {
                                If(LAnd(And(FLAG, 0x10, ), LNot(LEqual(DMA1, 
DMA0)))) {
                                    Store(0x01, PSIT)
                                    If(LAnd(LNot(LGreater(DMA1, 0x78)), 
And(W631, 0x04, ))) {
                                        Store(0x02, PIS1)
                                        Store(0x03, PRC1)
                                        Store(0x01, PTI1)
                                    }
                                    Else {
                                        If(LAnd(LNot(LGreater(DMA1, 0xb4)), 
And(W631, 0x02, ))) {
                                            Store(0x02, PIS1)
                                            Store(0x01, PRC1)
                                            Store(0x01, PTI1)
                                        }
                                        Else {
                                            Noop
                                        }
                                    }
                                }
                            }
                        }
                    }
                    Store(0x01, PIDE)
                }
            }
            Scope(\_SB.PCI0.PATA.PRIM) {
                Method(_STA) {
                    Return(0x0f)
                }
                Method(MSMF) {
                    Return(One)
                }
                Method(SSMF) {
                    Return(Zero)
                }
            }
            Scope(\_SB.PCI0.PATA.PRIM.MAST) {
                Method(_STA) {
                    Return(0x0f)
                }
                Method(SSUP) {
                    Return(One)
                }
            }
            Scope(\_SB.PCI0.PATA.PRIM.SLAV) {
                Method(_STA) {
                    Return(0x00)
                }
                Method(SSUP) {
                    Return(Zero)
                }
            }
        }
        Device(USB1) {
            Name(_ADR, 0x001d0000)
        }
        Device(USB2) {
            Name(_ADR, 0x001d0001)
        }
        Device(USB3) {
            Name(_ADR, 0x001d0002)
        }
        Device(USB4) {
            Name(_ADR, 0x001d0003)
        }
        Device(USB7) {
            Name(_ADR, 0x001d0007)
        }
        Device(SBUS) {
            Name(_ADR, 0x001f0003)
        }
        Device(AUD0) {
            Name(_ADR, 0x001e0002)
        }
        Device(MODM) {
            Name(_ADR, 0x001e0003)
            Name(_PRW, Package(0x02) {
                0x05,
                0x03,
            })
        }
        Device(HDEF) {
            Name(_ADR, 0x001b0000)
            Name(_PRW, Package(0x02) {
                0x05,
                0x03,
            })
            Name(_PSC, 0x00)
            Method(_PS0) {
                Store(0x00, _PSC)
                If(LAnd(HDWA, LNot(LLess(\_SB.OSTP(), 0x40)))) {
                    Store(Zero, HDWA)
                    Sleep(0x01f4)
                }
            }
            Method(_PS3) {
                Store(0x03, _PSC)
            }
        }
        Device(RP01) {
            Name(_ADR, 0x001c0000)
            OperationRegion(P1CS, PCI_Config, 0x40, 0x0100)
            Field(P1CS, AnyAcc, NoLock, WriteAsZeros) {
                Offset(0x1a),
                ABP1,   1,
                ,       2,
                PDC1,   1,
                ,       2,
                PDS1,   1,
                Offset(0x20),
                Offset(0x22),
                PSP1,   1,
                Offset(0x9c),
                ,       30,
                HPCS,   1,
                PMCS,   1
            }
            Device(PXS1) {
                Name(_ADR, 0x00)
            }
            Method(_PRT) {
                If(\GPIC) {
                    Return(Package(0x04) {
                        Package(0x04) {
                            0xffff,
                            0x00,
                            0x00,
                            0x10,
                        },
                        Package(0x04) {
                            0xffff,
                            0x01,
                            0x00,
                            0x11,
                        },
                        Package(0x04) {
                            0xffff,
                            0x02,
                            0x00,
                            0x12,
                        },
                        Package(0x04) {
                            0xffff,
                            0x03,
                            0x00,
                            0x13,
                        },
                    })
                }
                Else {
                    Return(Package(0x04) {
                        Package(0x04) {
                            0xffff,
                            0x00,
                            \_SB.PCI0.LPCB.LNKA,
                            0x00,
                        },
                        Package(0x04) {
                            0xffff,
                            0x01,
                            \_SB.PCI0.LPCB.LNKB,
                            0x00,
                        },
                        Package(0x04) {
                            0xffff,
                            0x02,
                            \_SB.PCI0.LPCB.LNKC,
                            0x00,
                        },
                        Package(0x04) {
                            0xffff,
                            0x03,
                            \_SB.PCI0.LPCB.LNKD,
                            0x00,
                        },
                    })
                }
            }
        }
        Device(RP02) {
            Name(_ADR, 0x001c0001)
            OperationRegion(P2CS, PCI_Config, 0x40, 0x0100)
            Field(P2CS, AnyAcc, NoLock, WriteAsZeros) {
                Offset(0x1a),
                ABP2,   1,
                ,       2,
                PDC2,   1,
                ,       2,
                PDS2,   1,
                Offset(0x20),
                Offset(0x22),
                PSP2,   1,
                Offset(0x9c),
                ,       30,
                HPCS,   1,
                PMCS,   1
            }
            Device(PXS2) {
                Name(_ADR, 0x00)
            }
            Method(_PRT) {
                If(\GPIC) {
                    Return(Package(0x04) {
                        Package(0x04) {
                            0xffff,
                            0x00,
                            0x00,
                            0x11,
                        },
                        Package(0x04) {
                            0xffff,
                            0x01,
                            0x00,
                            0x12,
                        },
                        Package(0x04) {
                            0xffff,
                            0x02,
                            0x00,
                            0x13,
                        },
                        Package(0x04) {
                            0xffff,
                            0x03,
                            0x00,
                            0x10,
                        },
                    })
                }
                Else {
                    Return(Package(0x04) {
                        Package(0x04) {
                            0xffff,
                            0x00,
                            \_SB.PCI0.LPCB.LNKB,
                            0x00,
                        },
                        Package(0x04) {
                            0xffff,
                            0x01,
                            \_SB.PCI0.LPCB.LNKC,
                            0x00,
                        },
                        Package(0x04) {
                            0xffff,
                            0x02,
                            \_SB.PCI0.LPCB.LNKD,
                            0x00,
                        },
                        Package(0x04) {
                            0xffff,
                            0x03,
                            \_SB.PCI0.LPCB.LNKA,
                            0x00,
                        },
                    })
                }
            }
        }
        Device(RP03) {
            Name(_ADR, 0x001c0002)
            OperationRegion(P3CS, PCI_Config, 0x40, 0x0100)
            Field(P3CS, AnyAcc, NoLock, WriteAsZeros) {
                Offset(0x1a),
                ABP3,   1,
                ,       2,
                PDC3,   1,
                ,       2,
                PDS3,   1,
                Offset(0x20),
                Offset(0x22),
                PSP3,   1,
                Offset(0x9c),
                ,       30,
                HPCS,   1,
                PMCS,   1
            }
            Device(PXS3) {
                Name(_ADR, 0x00)
            }
            Method(_PRT) {
                If(\GPIC) {
                    Return(Package(0x04) {
                        Package(0x04) {
                            0xffff,
                            0x00,
                            0x00,
                            0x12,
                        },
                        Package(0x04) {
                            0xffff,
                            0x01,
                            0x00,
                            0x13,
                        },
                        Package(0x04) {
                            0xffff,
                            0x02,
                            0x00,
                            0x10,
                        },
                        Package(0x04) {
                            0xffff,
                            0x03,
                            0x00,
                            0x11,
                        },
                    })
                }
                Else {
                    Return(Package(0x04) {
                        Package(0x04) {
                            0xffff,
                            0x00,
                            \_SB.PCI0.LPCB.LNKC,
                            0x00,
                        },
                        Package(0x04) {
                            0xffff,
                            0x01,
                            \_SB.PCI0.LPCB.LNKD,
                            0x00,
                        },
                        Package(0x04) {
                            0xffff,
                            0x02,
                            \_SB.PCI0.LPCB.LNKA,
                            0x00,
                        },
                        Package(0x04) {
                            0xffff,
                            0x03,
                            \_SB.PCI0.LPCB.LNKB,
                            0x00,
                        },
                    })
                }
            }
        }
        Device(RP04) {
            Name(_ADR, 0x001c0003)
            OperationRegion(P4CS, PCI_Config, 0x40, 0x0100)
            Field(P4CS, AnyAcc, NoLock, WriteAsZeros) {
                Offset(0x1a),
                ABP4,   1,
                ,       2,
                PDC4,   1,
                ,       2,
                PDS4,   1,
                Offset(0x20),
                Offset(0x22),
                PSP4,   1,
                Offset(0x9c),
                ,       30,
                HPCS,   1,
                PMCS,   1
            }
            Device(PXS4) {
                Name(_ADR, 0x00)
            }
            Method(_PRT) {
                If(\GPIC) {
                    Return(Package(0x04) {
                        Package(0x04) {
                            0xffff,
                            0x00,
                            0x00,
                            0x13,
                        },
                        Package(0x04) {
                            0xffff,
                            0x01,
                            0x00,
                            0x10,
                        },
                        Package(0x04) {
                            0xffff,
                            0x02,
                            0x00,
                            0x11,
                        },
                        Package(0x04) {
                            0xffff,
                            0x03,
                            0x00,
                            0x12,
                        },
                    })
                }
                Else {
                    Return(Package(0x04) {
                        Package(0x04) {
                            0xffff,
                            0x00,
                            \_SB.PCI0.LPCB.LNKD,
                            0x00,
                        },
                        Package(0x04) {
                            0xffff,
                            0x01,
                            \_SB.PCI0.LPCB.LNKA,
                            0x00,
                        },
                        Package(0x04) {
                            0xffff,
                            0x02,
                            \_SB.PCI0.LPCB.LNKB,
                            0x00,
                        },
                        Package(0x04) {
                            0xffff,
                            0x03,
                            \_SB.PCI0.LPCB.LNKC,
                            0x00,
                        },
                    })
                }
            }
        }
        Scope(\_SB.PCI0.RP01.PXS1) {
            Name(_PRW, Package(0x02) {
                0x09,
                0x04,
            })
        }
        Scope(\_SB.PCI0.RP02.PXS2) {
            Method(_STA) {
                If(PXRS) {
                    Return(0x0f)
                }
                Else {
                    Return(0x00)
                }
            }
            Name(_PRW, Package(0x02) {
                0x09,
                0x04,
            })
            Method(_RMV) {
                Return(One)
            }
            Method(EXIN) {
                Sleep(0x64)
                Store(Zero, PXCL)
                Sleep(0x01)
                Store(One, PXRS)
                Store(Zero, EXPL)
            }
            Method(EXRM) {
                Store(Zero, PXRS)
                Store(One, PXCL)
                Store(One, EXPL)
            }
        }
    }
    Name(LEDI, Zero)
    Name(BTNI, Zero)
    Name(NGTI, 0x06)
    Scope(\) {
        Name(WBTN, Zero)
        Name(NGTM, Zero)
        Name(LSBL, Zero)
        Name(BNBF, Buffer(0x20) { })
        Name(BNSP, Zero)
        Name(BNGP, Zero)
        Name(BNCT, Zero)
    }
    Device(FEXT) {
        Name(_HID, "FUJ02E3")
        Method(_STA) {
            Return(0x0f)
        }
        Method(_INI) {
            Store(Zero, BNSP)
            Store(Zero, BNGP)
            Store(Zero, BNCT)
            Store(Zero, IRBC)
            Store(Zero, IRBF)
        }
        Method(FUNC, 4, Serialized) {
            Store(0x80000000, Local0)
            If(LEqual(Arg0, 0x1001)) {
                Store(S001(Arg1, Arg2, Arg3), Local0)
            }
            Else {
                If(LEqual(Arg0, 0x1002)) {
                    Store(S002(Arg1, Arg2, Arg3), Local0)
                }
                Else {
                    If(LEqual(Arg0, 0x1004)) {
                        Store(S004(Arg1, Arg2, Arg3), Local0)
                    }
                }
            }
            If(LEqual(Arg0, 0x1006)) {
                Store(S006(Arg1, Arg2, Arg3), Local0)
            }
            If(LEqual(Arg0, 0x1008)) {
                Store(S008(Arg1, Arg2, Arg3), Local0)
            }
            Return(Local0)
        }
        Method(S001, 3) {
            Store(0x80000000, Local0)
            If(LEqual(Arg0, Zero)) {
                Store(LEDI, Local0)
            }
            Else {
                If(LEqual(Arg0, One)) {
                    And(Arg2, 0x03, Local1)
                    If(LAnd(And(Arg1, LEDI, ), Local1)) {
                        Store(0x9b, CMD)
                        ShiftRight(And(Arg2, 0x00030000, ), 0x08, DVID)
                        Store(Zero, SSMI)
                    }
                    Store(Zero, Local0)
                }
                Else {
                    If(LEqual(Arg0, 0x02)) {
                        If(And(Arg1, LEDI, )) {
                            Store(0x9b, CMD)
                            Store(One, DVID)
                            Store(Zero, SSMI)
                            Or(ShiftLeft(DVID, 0x10, ), One, Local0)
                        }
                        Else {
                            Store(Zero, Local0)
                        }
                    }
                }
            }
            Return(Local0)
        }
        Method(S002, 3) {
            Store(0x80000000, Local0)
            If(LEqual(Arg0, Zero)) {
                Store(BTNI, Local0)
            }
            Else {
                If(LEqual(Arg0, One)) {
                    Store(GIRB(), Local0)
                }
                Else {
                    If(LEqual(Arg0, 0x02)) {
                        Store(0x9b, CMD)
                        Store(0x02, DVID)
                        Store(Zero, SSMI)
                        Store(DVID, Local0)
                    }
                    Else {
                        If(LEqual(Arg0, 0x03)) {
                            If(Arg1) {
                                Not(Arg1, Local1)
                                And(Arg2, Arg1, Local2)
                                Or(And(WBTN, Local1, ), Local2, WBTN)
                                Store(0x9b, CMD)
                                Or(ShiftLeft(WBTN, 0x08, ), 0x03, DVID)
                                Store(Zero, SSMI)
                            }
                            Store(WBTN, Local0)
                        }
                    }
                }
            }
            Return(Local0)
        }
        Method(SIRB, 1) {
            If(LLess(BNCT, 0x10)) {
                CreateWordField(BNBF, BNSP, BNP1)
                Store(Arg0, BNP1)
                Increment(BNCT)
                Add(BNSP, 0x02, BNSP)
                If(LNot(LLess(BNSP, 0x20))) {
                    Store(Zero, BNSP)
                }
            }
        }
        Method(GIRB) {
            If(BNCT) {
                CreateWordField(BNBF, BNGP, BNP2)
                Store(BNP2, Local0)
                Or(Local0, 0x40000000, Local0)
                Decrement(BNCT)
                Add(BNGP, 0x02, BNGP)
                If(LNot(LLess(BNGP, 0x20))) {
                    Store(Zero, BNGP)
                }
            }
            Else {
                Store(Zero, Local0)
            }
            Return(Local0)
        }
        Method(S004, 3) {
            Store(0x80000000, Local0)
            If(LEqual(Arg0, Zero)) {
                Store(NGTI, Local0)
            }
            Else {
                If(LEqual(Arg0, One)) {
                    If(LAnd(LEqual(Arg1, 0x04), And(NGTI, 0x04, ))) {
                        And(Arg2, 0x03, Local1)
                        If(LOr(LEqual(Local1, 0x03), LEqual(Local1, 0x02))) {
                            If(LNot(NGTF)) {
                                SVBL()
                                Store(One, NGTF)
                            }
                            SBLC(Local1)
                            Store(Local1, NGTM)
                            Store(Zero, Local0)
                        }
                        If(LNot(Local1)) {
                            If(NGTF) {
                                Store(Zero, NGTF)
                                RSBL()
                                SBLC(Zero)
                            }
                            Store(Zero, NGTM)
                            Store(Zero, Local0)
                        }
                    }
                }
                Else {
                    If(LEqual(Arg0, 0x02)) {
                        If(LAnd(LEqual(Arg1, 0x04), And(NGTI, 0x04, ))) {
                            Store(NGTM, Local0)
                        }
                    }
                }
            }
            Return(Local0)
        }
        Method(S008, 3) {
            Store(0x80000000, Local0)
            If(LEqual(Arg0, 0x00)) {
                If(LAnd(LNot(LLess(Arg1, 0x00)), LNot(LGreater(Arg1, 0x05)))) {
                    If(LEqual(Arg1, Zero)) {
                        Store(Zero, Local0)
                    }
                    Else {
                        If(LEqual(Arg1, One)) {
                            If(LNot(LLess(\_SB.OSTP(), 0x40))) {
                                Store(0x02, Local0)
                            }
                            Else {
                                Store(Zero, Local0)
                            }
                        }
                        Else {
                            Store(0xa4, CMD)
                            Store(Arg0, QAG1)
                            Store(Arg1, QAG2)
                            Store(Arg2, QAG3)
                            Store(Zero, DVID)
                            Store(Zero, SSMI)
                            Store(DVID, Local0)
                        }
                    }
                }
            }
            Else {
                If(LEqual(Arg0, 0x01)) {
                    If(LAnd(LNot(LLess(Arg1, 0x00)), LNot(LGreater(Arg1, 
0x01)))) {
                        Store(0xa4, CMD)
                        Store(Arg0, QAG1)
                        Store(Arg1, QAG2)
                        Store(Arg2, QAG3)
                        Store(Zero, DVID)
                        Store(Zero, SSMI)
                        Store(DVID, Local0)
                    }
                }
                Else {
                    If(LEqual(Arg0, 0x02)) {
                        If(LAnd(LNot(LLess(Arg1, 0x00)), LNot(LGreater(Arg1, 
0x01)))) {
                            Store(0xa4, CMD)
                            Store(Arg0, QAG1)
                            Store(Arg1, QAG2)
                            Store(Arg2, QAG3)
                            Store(Zero, DVID)
                            Store(Zero, SSMI)
                            Store(DVID, Local0)
                        }
                    }
                    Else {
                        If(LEqual(Arg0, 0x03)) {
                            If(LEqual(Arg1, 0x00)) {
                                Store(0xa4, CMD)
                                Store(Arg0, QAG1)
                                Store(Arg1, QAG2)
                                Store(Arg2, QAG3)
                                Store(Zero, DVID)
                                Store(Zero, SSMI)
                                Store(DVID, Local0)
                            }
                        }
                        Else {
                            If(LEqual(Arg0, 0x04)) {
                                If(LAnd(LNot(LLess(Arg1, 0x00)), 
LNot(LGreater(Arg1, 0x01)))) {
                                    Store(0xa4, CMD)
                                    Store(Arg0, QAG1)
                                    Store(Arg1, QAG2)
                                    Store(Arg2, QAG3)
                                    Store(Zero, DVID)
                                    Store(Zero, SSMI)
                                    Store(DVID, Local0)
                                }
                            }
                        }
                    }
                }
            }
            Return(Local0)
        }
    }
    Scope(\_SB.FEXT) {
        Method(SBLC, 1) {
            If(LNot(Arg0)) {
                Store(Zero, BLCT)
            }
            Else {
                If(LEqual(Arg0, 0x03)) {
                    Store(One, BLCT)
                }
                Else {
                    If(LEqual(Arg0, 0x02)) {
                        Name(BBCT, Buffer(BLLM) { })
                        Store(BLLT, BBCT)
                        CreateByteField(BBCT, Zero, BLL0)
                        Store(BLL0, LCDB)
                        Store(0x01000000, DVID)
                        Or(DVID, BLL0, DVID)
                        Store(0x82, CMD)
                        Store(Zero, SSMI)
                        Store(Zero, BLCT)
                    }
                }
            }
        }
        Method(SVBL) {
            And(\_SB.PCI0.LPCB.FJEX.GBLL(), 0x7fffffff, LSBL)
        }
        Method(RSBL) {
            \_SB.PCI0.LPCB.FJEX.SBLL(LSBL)
        }
        Method(S006, 3) {
            Store(0x80000000, Local0)
            If(ECOK) {
                If(LEqual(Arg0, Zero)) {
                    Store(ECCI, Local0)
                }
                Else {
                    If(LEqual(Arg0, 0x10)) {
                        If(Arg1) {
                            And(Arg1, 0xff, ECG1)
                            Store(0x23, ECGM)
                            Store(Zero, Local1)
                            While(LAnd(ECGM, LLess(Local1, 0x64))) {
                                Sleep(0x01)
                                Increment(Local1)
                            }
                            If(LNot(LLess(Local1, 0x64))) {
                                Store(0x80000001, Local0)
                            }
                            Else {
                                Or(ShiftLeft(ECG2, 0x08, ), ECG3, Local0)
                            }
                        }
                        Else {
                            Store(0xfd70, Local0)
                        }
                    }
                    Else {
                        If(LEqual(Arg0, 0x11)) {
                            And(Arg1, 0xff, ECG1)
                            ShiftRight(And(Arg2, 0xff00, ), 0x08, ECG2)
                            And(Arg2, 0xff, ECG3)
                            Store(0x22, ECGM)
                            Store(Zero, Local1)
                            While(LAnd(ECGM, LLess(Local1, 0x64))) {
                                Sleep(0x01)
                                Increment(Local1)
                            }
                            If(LNot(LLess(Local1, 0x64))) {
                                Store(0x80000001, Local0)
                            }
                            Else {
                                Store(Zero, Local0)
                            }
                        }
                        Else {
                            If(LEqual(Arg0, 0x12)) {
                                Store(GINT, Local0)
                                Store(Zero, GINT)
                            }
                            Else {
                                If(LEqual(Arg0, 0x20)) {
                                    ShiftRight(And(Arg1, 0xff000000, ), 0x18, 
ECD3)
                                    ShiftRight(And(Arg1, 0x00ff0000, ), 0x10, 
ECD2)
                                    ShiftRight(And(Arg1, 0xff00, ), 0x08, ECD1)
                                    And(Arg1, 0xff, ECCM)
                                    Store(Zero, Local1)
                                    While(LAnd(ECCM, LLess(Local1, 0x64))) {
                                        Sleep(0x01)
                                        Increment(Local1)
                                    }
                                    If(LNot(LLess(Local1, 0x64))) {
                                        Store(0x80000001, Local0)
                                    }
                                    Else {
                                        Or(Or(ShiftLeft(ECD3, 0x10, ), 
ShiftLeft(ECD2, 0x08, ), ), ECD1, Local0)
                                    }
                                }
                            }
                        }
                    }
                }
            }
            Return(Local0)
        }
    }
    Device(LID) {
        Name(_HID, 0x0d0cd041)
        Method(_LID) {
            If(CVCL) {
                Return(Zero)
            }
            Else {
                Return(One)
            }
        }
        Name(_PRW, Package(0x02) {
            0x18,
            0x04,
        })
        Method(_PSW, 1) {
            Noop
        }
    }
    Device(PWRB) {
        Name(_HID, 0x0c0cd041)
        Method(_STA) {
            Return(0x0f)
        }
    }
    Device(AC) {
        Name(_HID, "ACPI0003")
        Scope(\) {
            Name(ACPS, Ones)
        }
        Method(_INI) {
            Store(ACPW, ACPS)
        }
        Method(_STA) {
            Return(0x0f)
        }
        Method(_PSR) {
            _INI()
            If(ACPW) {
                Return(One)
            }
            Else {
                Return(Zero)
            }
        }
        Name(_PCL, Package(0x01) {
            \_SB,
        })
        Method(ACHK) {
            Store(ACPW, Local0)
            If(LNot(LEqual(Local0, ACPS))) {
                Sleep(0x28)
                Notify(\_SB.AC, 0x80)
                Store(Zero, DVID)
                Store(0x8d, CMD)
                Store(Zero, SSMI)
                Notify(\_PR.CPU0, 0x80)
                Store(Local0, ACPS)
            }
        }
    }
    Device(CMB1) {
        Name(_HID, 0x0a0cd041)
        Name(_UID, One)
        Name(_PCL, Package(0x01) {
            \_SB,
        })
        Scope(\) {
            Name(B1PS, Ones)
            Name(B1RS, Ones)
            Name(B1CS, Ones)
            Name(B1LS, Ones)
            Name(BIF1, Package(0x0d) {
                0x01,
                0x00,
                0x00,
                0x01,
                0x00,
                0x00,
                0x00,
                0x01,
                0x01,
                "",
                "1",
                "LION",
                "Fujitsu",
            })
            Name(BST1, Package(0x04) {
            })
        }
        Method(MKWD, 2) {
            If(And(Arg1, 0x80, )) {
                Or(0xffff0000, Arg0, Local0)
                Or(Local0, ShiftLeft(Arg1, 0x08, ), Local0)
                Subtract(Zero, Local0, Local0)
            }
            Else {
                Store(Arg0, Local0)
                Or(Local0, ShiftLeft(Arg1, 0x08, ), Local0)
            }
            Return(Local0)
        }
        Method(_INI) {
            Store(B1P, B1PS)
            Store(B1CP, B1RS)
            Store(B1C, B1CS)
            Store(MKWD(B1LL, B1LH), B1LS)
        }
        Method(_BIF) {
            Name(BUFF, Buffer(0x0c) { })
            Store(B1NO, Local5)
            CreateByteField(BIDT, B1ID, B1IX)
            Store(MKWD(B1DL, B1DH), Index(BIF1, 0x01, ))
            Store(MKWD(B1LL, B1LH), Index(BIF1, 0x02, ))
            Store(Multiply(Add(And(B1DV, 0xef, ), 0x02, ), 0x0e10, ), 
Index(BIF1, 0x04, ))
            If(LOr(TBPC, LNot(LLess(\_SB.OSTP(), 0x40)))) {
                Divide(Multiply(Add(Multiply(0x0c, 0x0a, ), 0x04, ), 
DerefOf(Index(BIF1, 0x01, )), ), 0x03e8, Local0, Index(BIF1, 0x05, ))
            }
            If(LOr(TBPC, LNot(LLess(\_SB.OSTP(), 0x40)))) {
                If(LNot(LLess(\_SB.OSTP(), 0x40))) {
                    If(LEqual(BIFL, 0xff)) {
                        Store(0x02, Local1)
                    }
                    Else {
                        Store(BIFL, Local1)
                    }
                }
                Else {
                    Store(0x01, Local1)
                }
                Divide(Multiply(Add(Multiply(Local1, 0x0a, ), 0x04, ), 
DerefOf(Index(BIF1, 0x01, )), ), 0x03e8, Local0, Index(BIF1, 0x06, ))
            }
            If(Local5) {
                Store(DerefOf(Index(BMST, B1IX, )), BUFF)
                Store(0x07, Local0)
                Store(Local5, Local2)
                While(LAnd(Local2, LNot(LLess(Local0, 0x02)))) {
                    Store(Subtract(DerefOf(Index(BUFF, Local0, )), 0x30, ), 
Local1)
                    Divide(Add(Local1, Local2, ), 0x0a, Local1, Local2)
                    Store(Add(Local1, 0x30, ), Index(BUFF, Local0, ))
                    Decrement(Local0)
                }
                Store(BUFF, Index(BIF1, 0x09, ))
            }
            Else {
                Store(DerefOf(Index(BMNT, B1IX, )), Index(BIF1, 0x09, ))
            }
            Return(BIF1)
        }
        Method(_BST) {
            _INI()
            Store(Zero, Local0)
            If(B1P) {
                If(B1C) {
                    Or(Local0, 0x02, Local0)
                }
                Else {
                    If(LNot(ACPS)) {
                        Or(Local0, One, Local0)
                    }
                }
                If(LNot(LGreater(B1CP, One))) {
                    Or(Local0, 0x04, Local0)
                }
            }
            Store(MKWD(B1CL, B1CH), Local1)
            Divide(Multiply(B1CP, MKWD(B1LL, B1LH), ), 0x03e8, Local4, Local2)
            If(Local4) {
                Increment(Local2)
            }
            Multiply(Local2, 0x0a, Local2)
            Store(MKWD(B1VL, B1VH), Local3)
            Store(Local0, Index(BST1, Zero, ))
            Store(Local1, Index(BST1, One, ))
            Store(Local2, Index(BST1, 0x02, ))
            Store(Local3, Index(BST1, 0x03, ))
            Return(BST1)
        }
        Method(_STA) {
            If(B1P) {
                Return(0x1f)
            }
            Return(0x0f)
        }
        Method(BCHK) {
            If(LNot(LEqual(B1P, B1PS))) {
                Notify(\_SB.CMB1, 0x81)
                Store(B1P, B1PS)
            }
            If(B1PS) {
                Store(MKWD(B1LL, B1LH), Local0)
                If(LNot(LEqual(Local0, B1LS))) {
                    Notify(\_SB.CMB1, 0x81)
                }
                If(LOr(LNot(LEqual(B1C, B1CS)), LNot(LEqual(B1CP, B1RS)))) {
                    Notify(\_SB.CMB1, 0x80)
                }
                Store(Local0, B1LS)
                Store(B1C, B1CS)
                Store(B1CP, B1RS)
            }
        }
    }
    Device(SLPB) {
        Name(_HID, 0x0e0cd041)
        Method(_STA) {
            If(FSCM) {
                Return(0x0f)
            }
            Else {
                Return(0x00)
            }
        }
    }
}
Scope(_TZ) {
    ThermalZone(TZ00) {
        Method(_CRT, 0, Serialized) {
            Return(Add(0x0aac, Multiply(CRTT, 0x0a, ), ))
        }
        Method(_TMP, 0, Serialized) {
            If(DTSE) {
                Store(0x9c, CMD)
                Store(0x00, DVID)
                Store(Zero, SSMI)
                Return(Add(0x0aac, Multiply(DTS1, 0x0a, ), ))
            }
            Else {
                Return(0x0bb8)
            }
        }
        Method(_PSL, 0, Serialized) {
            If(MPEN) {
                Return(Package(0x02) {
                    \_PR.CPU0,
                    \_PR.CPU1,
                })
            }
            Else {
                Return(Package(0x01) {
                    \_PR.CPU0,
                })
            }
        }
        Method(_PSV, 0, Serialized) {
            Return(Add(0x0aac, Multiply(PSVT, 0x0a, ), ))
        }
        Method(_TC1, 0, Serialized) {
            Return(TC1V)
        }
        Method(_TC2, 0, Serialized) {
            Return(TC2V)
        }
        Method(_TSP, 0, Serialized) {
            Return(TSPV)
        }
    }
    ThermalZone(TZ01) {
        Method(_CRT, 0, Serialized) {
            Return(Add(0x0aac, Multiply(CRTT, 0x0a, ), ))
        }
        Method(_TMP, 0, Serialized) {
            If(DTSE) {
                Store(0x9c, CMD)
                Store(0x01, DVID)
                Store(Zero, SSMI)
                Return(Add(0x0aac, Multiply(DTS2, 0x0a, ), ))
            }
            Else {
                Return(0x0bb8)
            }
        }
        Method(_PSL, 0, Serialized) {
            If(MPEN) {
                Return(Package(0x02) {
                    \_PR.CPU0,
                    \_PR.CPU1,
                })
            }
            Else {
                Return(Package(0x01) {
                    \_PR.CPU0,
                })
            }
        }
        Method(_PSV, 0, Serialized) {
            Return(Add(0x0aac, Multiply(PSVT, 0x0a, ), ))
        }
        Method(_TC1, 0, Serialized) {
            Return(TC1V)
        }
        Method(_TC2, 0, Serialized) {
            Return(TC2V)
        }
        Method(_TSP, 0, Serialized) {
            Return(TSPV)
        }
    }
}
Scope(\) {
    Method(TZSM, 1) {
        Store(0x9c, CMD)
        Store(Arg0, DVID)
        Store(Zero, SSMI)
    }
}
Scope(\_GPE) {
    Method(_L02) {
        Store(0x00, GPEC)
        Notify(\_TZ.TZ00, 0x80)
        Notify(\_TZ.TZ01, 0x80)
    }
    Method(_L05) {
        Notify(\_SB.PCI0.HDEF, 0x02)
    }
    Method(_L08) {
    }
    Method(_L09) {
        If(\_SB.PCI0.RP01.PSP1) {
            Store(0x01, \_SB.PCI0.RP01.PSP1)
            Store(0x01, \_SB.PCI0.RP01.PMCS)
            Notify(\_SB.PCI0.RP01, 0x02)
        }
        If(\_SB.PCI0.RP02.PSP2) {
            Store(0x01, \_SB.PCI0.RP02.PSP2)
            Store(0x01, \_SB.PCI0.RP02.PMCS)
            Notify(\_SB.PCI0.RP02, 0x02)
        }
        If(\_SB.PCI0.RP03.PSP3) {
            Store(0x01, \_SB.PCI0.RP03.PSP3)
            Store(0x01, \_SB.PCI0.RP03.PMCS)
            Notify(\_SB.PCI0.RP03, 0x02)
        }
        If(\_SB.PCI0.RP04.PSP4) {
            Store(0x01, \_SB.PCI0.RP04.PSP4)
            Store(0x01, \_SB.PCI0.RP04.PMCS)
            Notify(\_SB.PCI0.RP04, 0x02)
        }
    }
    Method(_L0B) {
        Notify(\_SB.PCI0.PCIB, 0x02)
    }
    Method(_L18) {
        Sleep(0xfa)
        If(LNot(LIDS)) {
            Store(0x97, CMD)
            Store(Zero, SSMI)
        }
        Not(LPOL, LPOL)
        Notify(\_SB.LID, 0x80)
    }
    Method(_L19) {
        Store(SSF0, Local0)
        Store(Local0, SSF0)
        And(Local0, Not(SSM0, ), Local0)
        Store(SSF1, Local1)
        Store(Local1, SSF1)
        And(Local1, Not(SSM1, ), Local1)
        Store(SSF2, Local2)
        Store(Local2, SSF2)
        And(Local2, Not(SSM2, ), Local2)
        If(And(Local2, 0x10, )) {
            \_SB.AC.ACHK()
            \_SB.CMB1.BCHK()
            If(LOr(LNot(LEqual(LWMD, PLWM)), LNot(LEqual(TALM, PTAL)))) {
                Store(LWMD, PLWM)
                Store(TALM, PTAL)
                Store(0x95, CMD)
                Or(PLWM, ShiftLeft(PTAL, 0x01, ), DVID)
                Store(Zero, SSMI)
            }
            If(LAnd(TALM, LNot(ACPW))) {
                Store(One, FOCT)
            }
            Else {
                Store(Zero, FOCT)
            }
        }
        If(And(Local0, 0x01, )) {
            \_SB.PCI0.GFX0.PHTK()
            Store(0x80, CMD)
            Store(Zero, SSMI)
            \_SB.PCI0.GFX0.AHTK()
            If(BSWF) {
                If(LNot(LLess(\_SB.OSTP(), 0x40))) {
                    \_SB.PCI0.GFX0.LCD.BLNF
                }
            }
            If(AHKF) {
                Notify(\_SB.PCI0.LPCB.FJEX, 0x80)
            }
            If(IRBF) {
                If(LEqual(IRBC, 0xfd00)) {
                    Store(One, GINT)
                }
                Else {
                    \_SB.FEXT.SIRB(IRBC)
                }
                Notify(\_SB.FEXT, 0x80)
                Store(Zero, IRBF)
            }
        }
        If(And(Local1, 0x30, )) {
            \_SB.PCI0.LPCB.CMBT.SWCF()
        }
        If(And(Local2, 0x08, )) {
            Store(B2SU, Local6)
            Store(B2SD, Local7)
            Store(Zero, STAE)
            If(LOr(Local6, Local7)) {
                Sleep(0x03e8)
                Store(Zero, B2SU)
                Store(Zero, B2SD)
                Store(XOr(DKEV, One, ), DKEV)
                If(RPEN) {
                    If(LNot(LEqual(B2TC, RPDS))) {
                        Store(B2TC, RPDS)
                        If(RPDS) {
                            Notify(\_SB.REPL, Zero)
                        }
                        Else {
                            Sleep(0x0fa0)
                            Notify(\_SB.REPL, One)
                        }
                    }
                }
            }
        }
    }
    Method(_L1D) {
        If(EXPL) {
            \_SB.PCI0.RP02.PXS2.EXIN()
        }
        Else {
            \_SB.PCI0.RP02.PXS2.EXRM()
        }
        Sleep(0x64)
        Notify(\_SB.PCI0.RP02, Zero)
    }
}
Name(_S0, Package(0x04) {
    0x00,
    0x00,
    0x00,
    0x00,
})
Name(_S3, Package(0x04) {
    0x05,
    0x05,
    0x00,
    0x00,
})
Name(_S4, Package(0x04) {
    0x06,
    0x06,
    0x00,
    0x00,
})
Name(_S5, Package(0x04) {
    0x07,
    0x07,
    0x00,
    0x00,
})
Method(_PTS, 1) {
    Add(0xdd, Arg0, PO80)
    If(LAnd(LNot(LLess(Arg0, One)), LNot(LGreater(Arg0, 0x04)))) {
        If(RPEN) {
            Store(RPDS, DC1S)
        }
        If(\_SB.PCI0.RP02.PXS2._STA()) {
            Store(Zero, EXIS)
        }
        Else {
            Store(0xff, EXIS)
        }
    }
    \_SB.PCI0.LPCB.CMBT.BPTS(Arg0)
    Store(Zero, WAPB)
    Store(One, HDWA)
    Add(0xe0, Arg0, PO80)
}
Method(_WAK, 1) {
    Add(0xee, Arg0, PO80)
    \_SB.PCI0.LPCB.AINI()
    \_SB.PCI0.PCIB._INI()
    \_SB.FEXT._INI()
    If(LEqual(Arg0, 0x03)) {
        Store(0xa3, CMD)
        Store(0x00, INF)
        Store(Zero, SSMI)
    }
    If(LEqual(Arg0, 0x03)) {
        Store(0x9b, CMD)
        Store(0x04, DVID)
        Store(Zero, SSMI)
    }
    If(WAPB) {
        Notify(\_SB.PWRB, 0x02)
    }
    If(LEqual(Arg0, 0x04)) {
        \_SB.FEXT.FUNC(0x1002, 0x03, Ones, WBTN)
    }
    \_SB.PCI0.LPCB.CMBT.BWAK(Arg0)
    If(LAnd(LNot(LLess(Arg0, One)), LNot(LGreater(Arg0, 0x04)))) {
        If(RPEN) {
            If(LNot(LEqual(B2TC, DC1S))) {
                Store(B2TC, RPDS)
                If(RPDS) {
                    Notify(\_SB.REPL, Zero)
                }
                Else {
                    Notify(\_SB.REPL, One)
                }
            }
        }
        If(\_SB.PCI0.RP02.PXS2._STA()) {
            If(EXIS) {
                Notify(\_SB.PCI0.RP02, Zero)
            }
        }
        Else {
            If(LNot(EXIS)) {
                Notify(\_SB.PCI0.RP02, Zero)
            }
        }
        If(NGTM) {
            \_SB.FEXT.FUNC(0x1004, 0x01, 0x04, 0x00)
        }
        If(\_SB.PCI0.LPCB.DIGI._STA()) {
            \_SB.PCI0.LPCB.DIGI._INI()
        }
        \_SB.PCI0.LPCB.BTNS._INI()
    }
    Add(0xf0, Arg0, PO80)
    Return(Zero)
}

}
/*
MCFG: Length=60, Revision=1, Checksum=39,
        OEMID=FUJ, OEM Table ID=FJNB1C5, OEM Revision=0x1130000,
        Creator ID=FUJ, Creator Revision=0x100
 */
/*
SSDT: Length=1244, Revision=1, Checksum=11,
        OEMID=FUJ, OEM Table ID=FJNB1C5, OEM Revision=0x1130000,
        Creator ID=INTL, Creator Revision=0x20050624
 */
/*
SSDT: Length=356, Revision=1, Checksum=50,
        OEMID=FUJ, OEM Table ID=FJNB1C5, OEM Revision=0x1130000,
        Creator ID=INTL, Creator Revision=0x20050624
 */
/*
SSDT: Length=464, Revision=1, Checksum=87,
        OEMID=FUJ, OEM Table ID=FJNB1C5, OEM Revision=0x1130000,
        Creator ID=INTL, Creator Revision=0x20050624
 */
/*
APIC: Length=90, Revision=1, Checksum=52,
        OEMID=FUJ, OEM Table ID=FJNB1C5, OEM Revision=0x1130000,
        Creator ID= LTP, Creator Revision=0x0
 */
/*
HPET: Length=56, Revision=1, Checksum=215,
        OEMID=FUJ, OEM Table ID=FJNB1C5, OEM Revision=0x1130000,
        Creator ID=FUJ, Creator Revision=0x100
 */
/*
BOOT: Length=40, Revision=1, Checksum=224,
        OEMID=FUJ, OEM Table ID=FJNB1C5, OEM Revision=0x1130000,
        Creator ID=FUJ, Creator Revision=0x100
 */
/*
SLIC: Length=374, Revision=1, Checksum=43,
        OEMID=FUJ, OEM Table ID=PC, OEM Revision=0x1130000,
        Creator ID=FUJ, Creator Revision=0x100
 */


Home | Main Index | Thread Index | Old Index