Date: Sun, 16 Sep 2001 14:10:01 -0700 (PDT) From: Poul-Henning Kamp <phk@critter.freebsd.dk> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/30617: [PATCH] ACPI bug: don't dereference a pointer you have set to NULL Message-ID: <200109162110.f8GLA1O21066@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/30617; it has been noted by GNATS.
From: Poul-Henning Kamp <phk@critter.freebsd.dk>
To: FreeBSD-gnats-submit@FreeBSD.ORG
Cc:
Subject: Re: kern/30617: [PATCH] ACPI bug: don't dereference a pointer you have set to NULL
Date: Sun, 16 Sep 2001 23:02:34 +0200
Here is an acpidump from the machine btw...
RSD PTR: Checksum=196, OEMID=ASUS, RsdtAddress=0x03eeb000
RSDT: Lenth=44, Revision=1, Checksum=203,
OEMID=ASUS, OEM Table ID=M1000A, OEM Revision=0x30303031,
Creator ID=MSFT, Creator Revision=0x31313031
Entries={ 0x03eeb080, 0x03eeb040 }
DSDT=0x3eeb100
INT_MODEL=PIC
SCI_INT=9
SMI_CMD=0xb2, ACPI_ENABLE=0xa1, ACPI_DISABLE=0xa0, S4BIOS_REQ=0xa2
PM1a_EVT_BLK=0xe400-0xe403
PM1a_CNT_BLK=0xe404-0xe405
PM2_CNT_BLK=0xe420-0xe420
PM2_TMR_BLK=0xe408-0xe40b
PM2_GPE0_BLK=0xe428-0xe42b
PM2_GPE1_BLK=0xe42c-0xe42f, GPE1_BASE=16
P_LVL2_LAT=100ms, P_LVL3_LAT=1000ms
FLUSH_SIZE=0, FLUSH_STRIDE=0
DUTY_OFFSET=1, DUTY_WIDTH=3
DAY_ALRM=13, MON_ALRM=0, CENTURY=0
Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4}
DSDT: Lenth=15276, Revision=1, Checksum=243,
OEMID=ASUS, OEM Table ID=M1000A, OEM Revision=0x1000,
Creator ID=INTL, Creator Revision=0x2002015
Scope(\_PR_) {
Processor(\_PR_.CPU0, 1, 0xe410, 0x5) {
Name(_PSS, Package(0x2) {
Package(0x6) {
CPMA,
0x5208,
0xfa,
0xc8,
0x70,
0x0,
},
Package(0x6) {
CPMI,
0x3a98,
0xfa,
0xc8,
0x71,
0x1,
},
})
Name(_PCT, Package(0x2) {
Buffer(0x11) {0x82, 0xc, 0x0, 0x1, 0x8, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
Buffer(0x11) {0x82, 0xc, 0x0, 0x1, 0x8, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
})
Method(_PPC) {
If(\_SB_.AC__._PSR) {
Return(0x0)
}
Else {
Return(0x1)
}
}
}
}
OperationRegion(FSEG, SystemMemory, 0x000fdf00, 0x0100)
Field(FSEG, AnyAcc, NoLock, Preserve) {
ACPR, 32,
MMSZ, 16,
NPS2, 8,
STRF, 8,
HCUD, 8,
HCPI, 8,
HDUD, 8,
HDPI, 8,
HEUD, 8,
HEPI, 8,
HFUD, 8,
HFPI, 8,
LPTM, 8,
CM2M, 8,
IRMD, 8,
FLG0, 8,
Offset(0xf0),
CPMA, 16,
CPMI, 16
}
OperationRegion(NVSR, SystemMemory, ACPR, 0x0100)
Field(NVSR, AnyAcc, NoLock, Preserve) {
TRTY, 8,
SLPT, 8,
Offset(0x3),
KPSW, 8,
MPSW, 8
}
OperationRegion(GPSC, SystemIO, 0xb2, 0x1)
Field(GPSC, ByteAcc, NoLock, Preserve) {
SMCM, 8
}
Method(ISMI, 1, Serialized) {
Store(Arg0, TRTY)
Store(0xa7, SMCM)
}
OperationRegion(\DEBG, SystemIO, 0x81, 0x1)
Field(\DEBG, ByteAcc, NoLock, Preserve) {
DBG1, 8
}
Method(DIAG, 1) {
Store(Arg0, DBG1)
}
Method(SSLP, 1) {
Store(Arg0, SLPT)
}
OperationRegion(SM00, SystemIO, 0xe800, 0x7)
Field(SM00, ByteAcc, NoLock, Preserve) {
HSTS, 8,
Offset(0x2),
CTLR, 8,
CMDR, 8,
ADDR, 8,
DAT0, 8,
DAT1, 8
}
Method(SWFS) {
And(HSTS, 0x6, Local0)
Store(0x4000, Local1)
While(LOr(LEqual(Local0, Zero), LEqual(Local1, Zero))) {
Stall(0x1)
And(HSTS, 0x6, Local0)
Decrement(Local1)
}
Store(0xff, HSTS)
}
Method(SBYT, 2) {
Acquire(\_SB_.PCI0.PX40.EC0_.MTXE, 0xffff)
Store(Arg0, ADDR)
Store(Arg1, CMDR)
Store(0xff, HSTS)
Store(0x44, CTLR)
SWFS
Release(\_SB_.PCI0.PX40.EC0_.MTXE)
}
Method(WBYT, 3) {
Acquire(\_SB_.PCI0.PX40.EC0_.MTXE, 0xffff)
Store(Arg0, ADDR)
Store(Arg1, CMDR)
Store(Arg2, DAT0)
Store(0xff, HSTS)
Store(0x48, CTLR)
SWFS
Release(\_SB_.PCI0.PX40.EC0_.MTXE)
}
Method(WWRD, 4) {
Acquire(\_SB_.PCI0.PX40.EC0_.MTXE, 0xffff)
Store(Arg0, ADDR)
Store(Arg1, CMDR)
Store(Arg2, DAT0)
Store(Arg3, DAT1)
Store(0xff, HSTS)
Store(0x4c, CTLR)
SWFS
Release(\_SB_.PCI0.PX40.EC0_.MTXE)
}
Method(RBYT, 2) {
Acquire(\_SB_.PCI0.PX40.EC0_.MTXE, 0xffff)
Or(Arg0, 0x1, Local1)
Store(Local1, ADDR)
Store(Arg1, CMDR)
Store(0xff, HSTS)
Store(0x48, CTLR)
SWFS
Release(\_SB_.PCI0.PX40.EC0_.MTXE)
Return(DAT0)
}
Method(RWRD, 2) {
Acquire(\_SB_.PCI0.PX40.EC0_.MTXE, 0xffff)
Or(Arg0, 0x1, ADDR)
Store(Arg1, CMDR)
Store(0xff, HSTS)
Store(0x4c, CTLR)
SWFS
Store(DAT0, Local0)
ShiftLeft(DAT1, 0x8, Local1)
Or(Local0, Local1, Local2)
Release(\_SB_.PCI0.PX40.EC0_.MTXE)
Return(Local2)
}
Method(RTMX) {
Store(RBYT, 0x9d)
0x1
Local0
ShiftLeft(Local0, 0x1, Local1)
ShiftLeft(Local0, 0x3, Local2)
Add(Local1, Local2, Local0)
Add(Local0, 0x0aac, Local0)
Return(Local0)
}
Method(TINI, 1) {
Store(Zero, GO25)
WBYT
0x9c
0x9
0x80
WBYT
0x9c
0xe
0xbf
If(Arg0) {
WBYT
0x9c
0xd
0x46
}
Else {
WBYT
0x9c
0xd
0x50
}
WBYT
0x9c
0x9
0x0
}
Method(CALM) {
Acquire(\_SB_.PCI0.PX40.EC0_.MTXE, 0xffff)
Store(0x19, ADDR)
Store(0x19, CMDR)
Store(0xff, HSTS)
Store(0x44, CTLR)
SWFS
Release(\_SB_.PCI0.PX40.EC0_.MTXE)
}
Method(MIN_, 2) {
If(LLess(Arg0, Arg1)) {
Return(Arg0)
}
Else {
Return(Arg1)
}
}
Method(SLEN, 1) {
Return(Sizeof(Arg0))
}
Method(S2BF, 1, Serialized) {
Add(SLEN, Arg0, One)
Local0
Name(BUFF, Buffer(Local0) { })
Store(Arg0, BUFF)
Return(BUFF)
}
Method(SCMP, 2) {
Store(S2BF, Arg0)
Local0
Store(S2BF, Arg1)
Local1
Store(Zero, Local4)
Store(SLEN, Arg0)
Local5
Store(SLEN, Arg1)
Local6
Store(MIN_, Local5)
Local6
Local7
While(LLess(Local4, Local7)) {
Store(DerefOf(Index(Local0, Local4, )), Local2)
Store(DerefOf(Index(Local1, Local4, )), Local3)
If(LGreater(Local2, Local3)) {
Return(One)
}
Else {
If(LLess(Local2, Local3)) {
Return(Ones)
}
}
Increment(Local4)
}
If(LLess(Local4, Local5)) {
Return(One)
}
Else {
If(LLess(Local4, Local6)) {
Return(Ones)
}
Else {
Return(Zero)
}
}
}
Name(\_S0_, Package(0x4) {
0x0,
0x0,
0x0,
0x0,
})
Name(\_S1_, Package(0x4) {
0x1,
0x1,
0x0,
0x0,
})
Name(\_S3_, Package(0x4) {
0x5,
0x5,
0x0,
0x0,
})
Name(\_S4_, Package(0x4) {
0x6,
0x6,
0x0,
0x0,
})
Name(\_S5_, Package(0x4) {
0x7,
0x7,
0x0,
0x0,
})
OperationRegion(ECOS, SystemIO, 0x72, 0x2)
Field(ECOS, ByteAcc, NoLock, Preserve) {
CIDX, 8,
CDAT, 8
}
IndexField(CIDX, CDAT, ByteAcc, NoLock, Preserve) {
Offset(0x37),
BRIT, 4,
PNOF, 1,
Offset(0x5f),
SUS3, 1,
Offset(0x60)
}
Name(PRW1, Package(0x6) {
Package(0x2) {
0xb,
0x1,
},
Package(0x2) {
0x3,
0x1,
},
Package(0x2) {
0x4,
0x1,
},
Package(0x2) {
0x8,
0x1,
},
Package(0x2) {
0x1d,
0x1,
},
Package(0x2) {
0x5,
0x1,
},
})
Name(PRW3, Package(0x6) {
Package(0x2) {
0xb,
0x3,
},
Package(0x2) {
0x3,
0x3,
},
Package(0x2) {
0x4,
0x3,
},
Package(0x2) {
0x8,
0x3,
},
Package(0x2) {
0x1d,
0x4,
},
Package(0x2) {
0x5,
0x3,
},
})
Name(PRWT, Package(0x6) {
0xb,
0x3,
0x4,
0x8,
0x1d,
0x5,
})
Method(SPRW, 1) {
Store(Match(PRWT, MEQ, Arg0, MTR, 0x0, 0x0), Local0)
If(LEqual(SUS3, Zero)) {
Return(DerefOf(Index(PRW1, Local0, )))
}
Else {
Return(DerefOf(Index(PRW3, Local0, )))
}
}
OperationRegion(GPOO, SystemIO, 0xec00, 0x30)
Field(GPOO, ByteAcc, NoLock, Preserve) {
Offset(0xc),
, 12,
LIDS, 1,
Offset(0xe),
, 2,
CLRF, 1,
Offset(0xf),
GO24, 1,
GO25, 1,
GO26, 1,
GO27, 1,
GO28, 1,
Offset(0x2c),
, 12,
LIDP, 1
}
OperationRegion(GPOB, SystemIO, 0xe400, 0x42)
Field(GPOB, ByteAcc, NoLock, Preserve) {
Offset(0x4),
SCIE, 1,
Offset(0x30),
, 4,
SLPE, 1,
Offset(0x34),
, 4,
SLPS, 1,
Offset(0x41),
IPE1, 1,
IPE2, 1,
, 2,
IPS1, 1,
IPS2, 1
}
OperationRegion(GIB0, SystemIO, 0xe400, 0x30)
Field(GIB0, ByteAcc, NoLock, Preserve) {
Offset(0x2e),
GI00, 1,
GI01, 1,
GI02, 1,
GI03, 1,
GI04, 1,
GI05, 1,
GI06, 1,
GI07, 1,
GI08, 1,
GI09, 1,
GI0A, 1,
GI0B, 1,
GI0C, 1,
GI0D, 1,
GI0E, 1,
GI0F, 1
}
OperationRegion(PM3D, SystemIO, 0xe42c, 0x1)
Field(PM3D, ByteAcc, NoLock, Preserve) {
, 7,
KSCS, 1
}
OperationRegion(PM3F, SystemIO, 0xe42e, 0x1)
Field(PM3F, ByteAcc, NoLock, Preserve) {
, 7,
KSCE, 1
}
OperationRegion(ACTR, SystemIO, 0xe410, 0x1)
Field(ACTR, ByteAcc, NoLock, Preserve) {
, 1,
DUTY, 3,
DUTE, 1
}
OperationRegion(CSMI, SystemIO, 0xe430, 0x1)
Field(CSMI, ByteAcc, NoLock, Preserve) {
SMIE, 1,
Offset(0x1)
}
OperationRegion(SMIC, SystemIO, 0xfe00, 0x1)
Field(SMIC, ByteAcc, NoLock, Preserve) {
ESMI, 8
}
Name(TMAD, 0x9c)
Name(TSAD, 0x90)
Name(TP1H, 0x0dcc)
Name(TP1L, 0x0c28)
Name(TP2H, 0x0e30)
Name(TP2L, 0x0e1c)
Name(TPC_, 0x0e94)
Name(PLCY, 0x0)
Name(ACIO, 0x0)
Name(OSFL, 0x1)
Name(KST4, 0x0)
Scope(\_TZ_) {
ThermalZone(THRM) {
Name(_GPE, 0x0)
Name(_PSL, Package(0x1) {
\_PR_.CPU0,
})
Name(_TSP, 0x012c)
Name(_TC1, 0x1)
Name(_TC2, 0x4)
Method(_PSV) {
If(\OSFL) {
Return(TP2L)
}
Else {
Return(TP2H)
}
}
Method(_CRT) {
Return(TPC_)
}
Method(_TMP) {
Store(RTMX, Local0)
Return(Local0)
}
Method(_SCP, 1) {
If(Arg0) {
Store(One, PLCY)
}
Else {
Store(Zero, PLCY)
}
Notify(\_TZ_.THRM, 0x81)
}
}
}
Scope(\_GPE) {
Method(_L00) {
WBYT
0x9c
0x9
0x40
Store(RBYT, 0x9d)
0x2
Local1
Store(RBYT, 0x9d)
0x2
Local1
Store(RBYT, 0x9d)
0x1
Local0
WBYT
0x9c
0x9
0x4
And(Local1, 0x18, Local1)
Store(\_SB_.PCI0.PX40.EC0_.ECRD, 0x78)
Local2
And(Local2, 0x10, Local2)
If(Local2) {
Store(0x46, Local3)
}
Else {
Store(0x50, Local3)
}
If(LEqual(Local1, 0x10)) {
If(LNot(LLess(Local0, 0x5a))) {
WBYT
0x9c
0xd
0x7f
Store(0x58, Local4)
WBYT
0x9c
0xe
Local4
Store(One, GO25)
}
Else {
If(LNot(LLess(Local0, Local3))) {
WBYT
0x9c
0xd
0x5c
Subtract(Local3, 0x2, Local4)
WBYT
0x9c
0xe
Local4
Store(One, GO25)
}
}
}
Else {
If(LNot(LGreater(Local0, Local3))) {
Store(Zero, GO25)
Add(Local3, 0x2, Local4)
WBYT
0x9c
0xd
Local4
WBYT
0x9c
0xe
0xbf
}
Else {
If(LNot(LGreater(Local0, 0x5a))) {
Subtract(Local3, 0x2, Local4)
WBYT
0x9c
0xd
0x5c
WBYT
0x9c
0xe
Local4
}
}
}
CALM
Notify(\_TZ_.THRM, 0x80)
}
Method(_L1C) {
Not(LIDP, Local0)
Store(Local0, LIDP)
Notify(\_SB_.LID_, 0x80)
}
Method(_L05) {
Notify(\_SB_.PCI0.AC97, 0x2)
Notify(\_SB_.PWRB, 0x2)
}
Method(_L0B) {
Notify(\_SB_.PCI0.PCI1.LAN_, 0x2)
Notify(\_SB_.PWRB, 0x2)
}
Method(_L18) {
}
}
Method(\_PTS, 1) {
Store(Zero, GO28)
If(LAnd(LNot(LLess(Arg0, 0x3)), LNot(LGreater(Arg0, 0x4)))) {
Acquire(\_SB_.PCI0.PX40.EC0_.MTXE, 0xffff)
Store(0x4b, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xc5, \_SB_.PCI0.PX40.EC0_.CCMD)
Release(\_SB_.PCI0.PX40.EC0_.MTXE)
}
If(LEqual(Arg0, 0x3)) {
Store(0x1, CLRF)
Acquire(\_SB_.PCI0.PX40.EC0_.MTXE, 0xffff)
Store(0x25, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xc5, \_SB_.PCI0.PX40.EC0_.CCMD)
Store(0x1, \_SB_.PCI0.PX40.EC0_.CDA3)
Store(0xe9, \_SB_.PCI0.PX40.EC0_.CDA2)
Store(0xa9, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xbb, \_SB_.PCI0.PX40.EC0_.CCMD)
Store(0x2d, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xc5, \_SB_.PCI0.PX40.EC0_.CCMD)
Store(0x2e, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xc5, \_SB_.PCI0.PX40.EC0_.CCMD)
Store(0x0, \_SB_.PCI0.PX40.EC0_.CDA3)
Store(0x7d, \_SB_.PCI0.PX40.EC0_.CDA2)
Store(0x20, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xbb, \_SB_.PCI0.PX40.EC0_.CCMD)
Store(0xcb, \_SB_.PCI0.PX40.EC0_.CCMD)
Release(\_SB_.PCI0.PX40.EC0_.MTXE)
Store(One, GO27)
}
Store(0xa8, SMCM)
}
Method(\_WAK, 1) {
SBYT
0x48
0x55
If(LEqual(Arg0, 0x1)) {
Store(0x99, TRTY)
Store(0x0, ESMI)
}
If(LNot(LLess(Arg0, 0x3))) {
Acquire(\_SB_.PCI0.PX40.EC0_.MTXE, 0xffff)
Store(0x2b, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xc5, \_SB_.PCI0.PX40.EC0_.CCMD)
Store(0x45, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xc5, \_SB_.PCI0.PX40.EC0_.CCMD)
Release(\_SB_.PCI0.PX40.EC0_.MTXE)
}
If(LEqual(Arg0, 0x4)) {
Notify(\_SB_.PWRB, 0x2)
}
}
Scope(\_SB_) {
Device(AC__) {
Name(_PCL, Package(0x1) {
\_SB_,
})
Name(_HID, "ACPI0003")
Method(_PSR) {
Acquire(\_SB_.PCI0.PX40.EC0_.MTXE, 0xffff)
Store(0x6, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xc3, \_SB_.PCI0.PX40.EC0_.CCMD)
Store(\_SB_.PCI0.PX40.EC0_.CDA1, Local0)
Release(\_SB_.PCI0.PX40.EC0_.MTXE)
If(And(Local0, 0x10, )) {
Return(0x1)
}
Else {
Return(0x0)
}
}
}
Device(LID_) {
Name(_HID, 0x0d0cd041)
Method(_LID) {
Return(LIDP)
}
Name(_PRW, Package(0x2) {
0x1c,
0x4,
})
}
Device(HOTK) {
Name(_HID, "ATK0100")
Name(_UID, 0x01010100)
Method(_STA) {
Return(0xf)
}
Name(BUF_, Package(0x4) {
})
Method(INIT, 1) {
Store("M1A", Local0)
Return(Local0)
}
Method(BSTS) {
Store(0x50, CIDX)
Store(CDAT, Local0)
And(CDAT, 0xf0, CDAT)
And(Local0, 0xf, Local0)
Return(Local0)
}
Method(MLED, 1) {
}
Method(TMPR) {
Store(Zero, Local0)
Store(RTMX, Local0)
If(GO25) {
Or(Local0, 0x00ff0000, Local0)
}
If(DUTE) {
Store(DUTY, Local1)
}
Else {
Store(0x0, Local1)
}
ShiftLeft(Local1, 0x18, Local1)
Or(Local1, Local0, Local0)
Return(Local0)
}
Method(FLSH, 1) {
If(LEqual(Arg0, 0x0)) {
Store(0x1, GO28)
Store(0x1, BSWE)
Store(0x0, SMIE)
}
If(LEqual(Arg0, 0x1)) {
Store(0x0, GO28)
Store(0x0, BSWE)
Store(0x1, SMIE)
}
}
Method(SFUN) {
Return(0x15)
}
}
Device(PWRB) {
Name(_HID, 0x0c0cd041)
Method(_STA) {
Return(0xb)
}
}
Device(MEM1) {
Name(_HID, 0x010cd041)
Method(_CRS) {
Name(BUF1, Buffer(0x4a) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x1, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xfb, 0xff, 0x0, 0x0, 0x5, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xb8, 0xff, 0x0, 0x0, 0x8, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x79, 0x0 })
CreateDWordField(BUF1, 0x20, EMLN)
Store(MEMS, EMLN)
Decrement(EMLN)
ShiftLeft(EMLN, 0x14, EMLN)
Return(BUF1)
}
}
Method(MEMS) {
Return(MMSZ)
}
Device(LNKA) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x1)
Method(_STA) {
And(\_SB_.PCI0.PX40.PIRA, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
Return(0xb)
}
Else {
Return(0x9)
}
}
Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xde, 0x18, 0x79, 0x0 })
Method(_DIS) {
Store(0x80, \_SB_.PCI0.PX40.PIRA)
}
Method(_CRS) {
Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUFA, 0x1, IRA_)
And(\_SB_.PCI0.PX40.PIRA, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
And(Local0, 0xf, Local0)
ShiftLeft(One, Local0, Local1)
Store(Local1, IRA_)
}
Return(BUFA)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRA1)
CreateByteField(Arg0, 0x2, IRA2)
ShiftLeft(IRA2, 0x8, Local0)
Or(Local0, IRA1, Local0)
Store(0x0, Local1)
ShiftRight(Local0, 0x1, Local0)
While(LGreater(Local0, 0x0)) {
Increment(Local1)
ShiftRight(Local0, 0x1, Local0)
}
And(\_SB_.PCI0.PX40.PIRA, 0x70, Local0)
Or(Local1, Local0, \_SB_.PCI0.PX40.PIRA)
}
}
Device(LNKB) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x2)
Method(_STA) {
And(\_SB_.PCI0.PX40.PIRB, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
Return(0xb)
}
Else {
Return(0x9)
}
}
Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xde, 0x18, 0x79, 0x0 })
Method(_DIS) {
Store(0x80, \_SB_.PCI0.PX40.PIRB)
}
Method(_CRS) {
Name(BUFB, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUFB, 0x1, IRB_)
And(\_SB_.PCI0.PX40.PIRB, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
And(Local0, 0xf, Local0)
ShiftLeft(One, Local0, Local1)
Store(Local1, IRB_)
}
Return(BUFB)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRB1)
CreateByteField(Arg0, 0x2, IRB2)
ShiftLeft(IRB2, 0x8, Local0)
Or(Local0, IRB1, Local0)
Store(0x0, Local1)
ShiftRight(Local0, 0x1, Local0)
While(LGreater(Local0, 0x0)) {
Increment(Local1)
ShiftRight(Local0, 0x1, Local0)
}
And(\_SB_.PCI0.PX40.PIRB, 0x70, Local0)
Or(Local1, Local0, \_SB_.PCI0.PX40.PIRB)
}
}
Device(LNKC) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x3)
Method(_STA) {
And(\_SB_.PCI0.PX40.PIRC, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
Return(0xb)
}
Else {
Return(0x9)
}
}
Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xde, 0x18, 0x79, 0x0 })
Method(_DIS) {
Store(0x80, \_SB_.PCI0.PX40.PIRC)
}
Method(_CRS) {
Name(BUFC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUFC, 0x1, IRC_)
And(\_SB_.PCI0.PX40.PIRC, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
And(Local0, 0xf, Local0)
ShiftLeft(One, Local0, Local1)
Store(Local1, IRC_)
}
Return(BUFC)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRC1)
CreateByteField(Arg0, 0x2, IRC2)
ShiftLeft(IRC2, 0x8, Local0)
Or(Local0, IRC1, Local0)
Store(0x0, Local1)
ShiftRight(Local0, 0x1, Local0)
While(LGreater(Local0, 0x0)) {
Increment(Local1)
ShiftRight(Local0, 0x1, Local0)
}
And(\_SB_.PCI0.PX40.PIRC, 0x70, Local0)
Or(Local1, Local0, \_SB_.PCI0.PX40.PIRC)
}
}
Device(LNKD) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x4)
Method(_STA) {
And(\_SB_.PCI0.PX40.PIRD, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
Return(0xb)
}
Else {
Return(0x9)
}
}
Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xde, 0x18, 0x79, 0x0 })
Method(_DIS) {
Store(0x80, \_SB_.PCI0.PX40.PIRD)
}
Method(_CRS) {
Name(BUFD, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUFD, 0x1, IRD_)
And(\_SB_.PCI0.PX40.PIRD, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
And(Local0, 0xf, Local0)
ShiftLeft(One, Local0, Local1)
Store(Local1, IRD_)
}
Return(BUFD)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRD1)
CreateByteField(Arg0, 0x2, IRD2)
ShiftLeft(IRD2, 0x8, Local0)
Or(Local0, IRD1, Local0)
Store(0x0, Local1)
ShiftRight(Local0, 0x1, Local0)
While(LGreater(Local0, 0x0)) {
Increment(Local1)
ShiftRight(Local0, 0x1, Local0)
}
And(\_SB_.PCI0.PX40.PIRD, 0x70, Local0)
Or(Local1, Local0, \_SB_.PCI0.PX40.PIRD)
}
}
Device(LNKE) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x5)
Method(_STA) {
And(\_SB_.PCI0.PX40.PIRE, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
Return(0xb)
}
Else {
Return(0x9)
}
}
Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xde, 0x18, 0x79, 0x0 })
Method(_DIS) {
Store(0x80, \_SB_.PCI0.PX40.PIRE)
}
Method(_CRS) {
Name(BUFD, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUFD, 0x1, IRD_)
And(\_SB_.PCI0.PX40.PIRE, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
And(Local0, 0xf, Local0)
ShiftLeft(One, Local0, Local1)
Store(Local1, IRD_)
}
Return(BUFD)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRD1)
CreateByteField(Arg0, 0x2, IRD2)
ShiftLeft(IRD2, 0x8, Local0)
Or(Local0, IRD1, Local0)
Store(0x0, Local1)
ShiftRight(Local0, 0x1, Local0)
While(LGreater(Local0, 0x0)) {
Increment(Local1)
ShiftRight(Local0, 0x1, Local0)
}
And(\_SB_.PCI0.PX40.PIRE, 0x70, Local0)
Or(Local1, Local0, \_SB_.PCI0.PX40.PIRE)
}
}
Device(LNKF) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x6)
Method(_STA) {
And(\_SB_.PCI0.PX40.PIRF, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
Return(0xb)
}
Else {
Return(0x9)
}
}
Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xde, 0x18, 0x79, 0x0 })
Method(_DIS) {
Store(0x80, \_SB_.PCI0.PX40.PIRF)
}
Method(_CRS) {
Name(BUFD, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUFD, 0x1, IRD_)
And(\_SB_.PCI0.PX40.PIRF, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
And(Local0, 0xf, Local0)
ShiftLeft(One, Local0, Local1)
Store(Local1, IRD_)
}
Return(BUFD)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRD1)
CreateByteField(Arg0, 0x2, IRD2)
ShiftLeft(IRD2, 0x8, Local0)
Or(Local0, IRD1, Local0)
Store(0x0, Local1)
ShiftRight(Local0, 0x1, Local0)
While(LGreater(Local0, 0x0)) {
Increment(Local1)
ShiftRight(Local0, 0x1, Local0)
}
And(\_SB_.PCI0.PX40.PIRF, 0x70, Local0)
Or(Local1, Local0, \_SB_.PCI0.PX40.PIRF)
}
}
Device(LNKG) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x7)
Method(_STA) {
And(\_SB_.PCI0.PX40.PIRG, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
Return(0xb)
}
Else {
Return(0x9)
}
}
Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xde, 0x18, 0x79, 0x0 })
Method(_DIS) {
Store(0x80, \_SB_.PCI0.PX40.PIRG)
}
Method(_CRS) {
Name(BUFD, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUFD, 0x1, IRD_)
And(\_SB_.PCI0.PX40.PIRG, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
And(Local0, 0xf, Local0)
ShiftLeft(One, Local0, Local1)
Store(Local1, IRD_)
}
Return(BUFD)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRD1)
CreateByteField(Arg0, 0x2, IRD2)
ShiftLeft(IRD2, 0x8, Local0)
Or(Local0, IRD1, Local0)
Store(0x0, Local1)
ShiftRight(Local0, 0x1, Local0)
While(LGreater(Local0, 0x0)) {
Increment(Local1)
ShiftRight(Local0, 0x1, Local0)
}
And(\_SB_.PCI0.PX40.PIRG, 0x70, Local0)
Or(Local1, Local0, \_SB_.PCI0.PX40.PIRG)
}
}
Device(LNKH) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x8)
Method(_STA) {
And(\_SB_.PCI0.PX40.PIRH, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
Return(0xb)
}
Else {
Return(0x9)
}
}
Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xde, 0x18, 0x79, 0x0 })
Method(_DIS) {
Store(0x80, \_SB_.PCI0.PX40.PIRH)
}
Method(_CRS) {
Name(BUFD, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUFD, 0x1, IRD_)
And(\_SB_.PCI0.PX40.PIRH, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
And(Local0, 0xf, Local0)
ShiftLeft(One, Local0, Local1)
Store(Local1, IRD_)
}
Return(BUFD)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRD1)
CreateByteField(Arg0, 0x2, IRD2)
ShiftLeft(IRD2, 0x8, Local0)
Or(Local0, IRD1, Local0)
Store(0x0, Local1)
ShiftRight(Local0, 0x1, Local0)
While(LGreater(Local0, 0x0)) {
Increment(Local1)
ShiftRight(Local0, 0x1, Local0)
}
And(\_SB_.PCI0.PX40.PIRH, 0x70, Local0)
Or(Local1, Local0, \_SB_.PCI0.PX40.PIRH)
}
}
Device(PCI0) {
Name(_HID, 0x030ad041)
Name(_ADR, 0x0)
OperationRegion(REGS, PCI_Config, 0x40, 0xc0)
Field(REGS, DWordAcc, NoLock, Preserve) {
Offset(0x10),
CDH_, 1,
Offset(0x11),
PAMC, 2,
PAMD, 2,
PAME, 2,
Offset(0x12),
DRP0, 4,
DRP1, 4,
Offset(0x14),
DRP2, 4,
Offset(0x18),
, 7,
HEN_, 1
}
Method(_INI) {
If(LEqual(SCMP, \_OS_)) {
"Microsoft Windows NT"
0x0
Store(0x1, OSFL)
}
Else {
Store(0x0, OSFL)
}
}
Method(_CRS) {
Name(CRES, Buffer(0x88) {0x88, 0xd, 0x0, 0x2, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 0x1, 0x8, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 0x0, 0xf8, 0xc, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0xd, 0xff, 0xff, 0x0, 0x0, 0x0, 0xf3, 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, 0 x0, 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, 0x10, 0x0, 0xff, 0xff, 0xaf, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0x79, 0x0 })
CreateDWordField(CRES, 0x76, RAMT)
CreateDWordField(CRES, 0x82, RAMR)
Store(MEMS, RAMT)
Increment(RAMT)
ShiftLeft(RAMT, 0x14, RAMT)
Subtract(0xffb00000, RAMT, RAMR)
Return(CRES)
}
Name(PICM, Package(0x7) {
Package(0x4) {
0x0002ffff,
0x0,
\_SB_.LNKA,
0x0,
},
Package(0x4) {
0x001fffff,
0x0,
\_SB_.LNKA,
0x0,
},
Package(0x4) {
0x001fffff,
0x1,
\_SB_.LNKB,
0x0,
},
Package(0x4) {
0x001fffff,
0x2,
\_SB_.LNKH,
0x0,
},
Package(0x4) {
0x001fffff,
0x3,
\_SB_.LNKD,
0x0,
},
Package(0x4) {
0x000effff,
0x0,
\_SB_.LNKA,
0x0,
},
Package(0x4) {
0x000effff,
0x1,
\_SB_.LNKB,
0x0,
},
})
Method(_PRT) {
Return(PICM)
}
Device(PCI1) {
Name(_ADR, 0x001e0000)
Method(_S1D) {
Return(0x1)
}
Name(PICM, Package(0x3) {
Package(0x4) {
0x0007ffff,
0x0,
\_SB_.LNKA,
0x0,
},
Package(0x4) {
0x0007ffff,
0x1,
\_SB_.LNKB,
0x0,
},
Package(0x4) {
0x0008ffff,
0x0,
\_SB_.LNKE,
0x0,
},
})
Method(_PRT) {
Return(PICM)
}
}
Device(PX41) {
Name(_ADR, 0x001f0001)
OperationRegion(IDET, PCI_Config, 0x40, 0xc)
Field(IDET, DWordAcc, NoLock, Preserve) {
PTM0, 1,
PIE0, 1,
PPE0, 1,
PDT0, 1,
PTM1, 1,
PIE1, 1,
PPE1, 1,
PDT1, 1,
PRCT, 2,
, 2,
PISP, 2,
PD1E, 1,
PIDE, 1,
STM0, 1,
SIE0, 1,
SPE0, 1,
SDT0, 1,
STM1, 1,
SIE1, 1,
SPE1, 1,
SDT1, 1,
SRCT, 2,
, 2,
SISP, 2,
SD1E, 1,
SIDE, 1,
PRC1, 2,
PIS1, 2,
SRC1, 2,
SIS1, 2,
Offset(0x6),
Offset(0x7),
Offset(0x8),
PDMA, 2,
SDMA, 2,
Offset(0x9),
Offset(0xa),
PCT0, 2,
, 2,
PCT1, 2,
Offset(0xb),
SCT0, 2,
, 2,
SCT1, 2,
Offset(0xc)
}
OperationRegion(IDEC, PCI_Config, 0x54, 0x1)
Field(IDEC, DWordAcc, NoLock, Preserve) {
PCB0, 1,
PCB1, 1,
SCB0, 1,
SCB1, 1,
PMCC, 1,
PSCC, 1,
SMCC, 1,
SSCC, 1
}
}
Device(PX40) {
Name(_ADR, 0x001f0000)
OperationRegion(BIOS, PCI_Config, 0x4e, 0x1)
Scope(\) {
Field(\_SB_.PCI0.PX40.BIOS, ByteAcc, NoLock, Preserve) {
BSWE, 1,
Offset(0x1)
}
}
OperationRegion(PIRQ, PCI_Config, 0x60, 0xc)
Field(PIRQ, ByteAcc, NoLock, Preserve) {
PIRA, 8,
PIRB, 8,
PIRC, 8,
PIRD, 8,
Offset(0x8),
PIRE, 8,
PIRF, 8,
PIRG, 8,
PIRH, 8
}
OperationRegion(LPDC, PCI_Config, 0xe0, 0x8)
Field(LPDC, ByteAcc, NoLock, Preserve) {
UADR, 2,
, 2,
UBDR, 2,
Offset(0x1),
LPDR, 2,
, 2,
FDDR, 1,
Offset(0x2),
SBDR, 2,
, 1,
MDDR, 1,
MSDR, 2,
Offset(0x3),
C0DR, 1,
C8DR, 1,
D0DR, 1,
D8DR, 1,
E0DR, 1,
E8DR, 1,
F0DR, 1,
F8DR, 1,
Offset(0x6),
UALE, 1,
UBLE, 1,
LPLE, 1,
FDLE, 1,
SBLE, 1,
MDLE, 1,
MSLE, 1,
ADLE, 1,
GLLE, 1,
GHLE, 1,
KBLE, 1,
MCLE, 1,
C1LE, 1,
C2LE, 1,
Offset(0x8)
}
Device(EC0_) {
Name(_HID, 0x090cd041)
Name(_CRS, Buffer(0x12) {0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x0, 0x1, 0x47, 0x1, 0x66, 0x0, 0x66, 0x0, 0x0, 0x1, 0x79, 0x0 })
Name(ECOK, 0x0)
Name(_GPE, 0x17)
Name(BTBL, Package(0x10) {
0x0,
0x20,
0x24,
0x28,
0x2c,
0x30,
0x34,
0x38,
0x3c,
0x40,
0x44,
0x46,
0x48,
0x4a,
0x4b,
0x4c,
})
Mutex(MTXE, 4)
Method(_REG, 2) {
If(LEqual(Arg0, 0x3)) {
Store(Arg1, ECOK)
}
}
OperationRegion(RAM_, EmbeddedControl, 0x0, 0xff)
Field(RAM_, AnyAcc, Lock, Preserve) {
Offset(0x4),
CCMD, 8,
CDA1, 8,
CDA2, 8,
CDA3, 8,
Offset(0x48),
EV54, 8,
EV55, 8,
TK54, 8,
TK55, 8,
Offset(0x50),
EV60, 8,
EV61, 8,
EV62, 8,
EV63, 8,
EV64, 8,
EV65, 8,
EV66, 8,
EV67, 8,
TK60, 8,
TK61, 8,
TK62, 8,
TK63, 8,
TK64, 8,
TK65, 8,
TK66, 8,
TK67, 8,
Offset(0x78),
ST6Y, 8
}
Name(BATW, 0xa)
Name(BATL, 0x1)
Name(BUFF, Package(0xd) {
})
Name(DC_T, Package(0x10) {
0x1080,
0x0c80,
0x0f00,
0x0b00,
0x1600,
0x0,
0x1400,
0x0,
0x1200,
0x0d80,
0x0,
0x0,
0x1800,
0x0,
0x0,
0x0,
})
Name(BUF_, Package(0x4) {
})
Name(MAXC, 0x0)
Name(CURC, 0x0)
Name(BATS, 0x0)
Method(RBAT, 2) {
\_SB_.PCI0.PX40.EC0_.ECWR
0x6
Arg0
Store(Arg1, Local0)
ShiftLeft(Local0, 0x1, Local0)
Add(Local0, 0xda, Local1)
\_SB_.PCI0.PX40.EC0_.ECWR
0x4
Local1
Store(0x1000, Local2)
While(LAnd(\_SB_.PCI0.PX40.EC0_.ECRD, 0x4)) {
Local2
Decrement(Local2)
}
Store(\_SB_.PCI0.PX40.EC0_.ECRD, 0x5)
Arg1
Return(Arg1)
}
Method(WBAT, 3) {
Acquire(\_SB_.PCI0.PX40.EC0_.MTXE, 0xffff)
Store(Arg2, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(Or(Arg0, 0x80, ), Arg0)
Store(Arg0, \_SB_.PCI0.PX40.EC0_.CDA2)
Store(Arg1, Local0)
ShiftLeft(Local0, 0x1, Local0)
Add(Local0, 0xda, Local1)
Store(Local1, \_SB_.PCI0.PX40.EC0_.CCMD)
While(\_SB_.PCI0.PX40.EC0_.CCMD) {
}
Release(\_SB_.PCI0.PX40.EC0_.MTXE)
}
Method(RVSR, 1) {
Store(RBAT, 0x12)
Arg0
Local0
Store(RBAT, 0x13)
Arg0
Local1
ShiftLeft(Local0, 0x8, Local0)
Add(Local0, Local1, Local0)
And(Local0, 0xffff, Local0)
And(Local0, 0x8000, Local1)
If(Local1) {
Not(Local0, Local0)
And(Local0, 0xffff, Local0)
}
Store(Local0, Local1)
ShiftRight(Local1, 0x1, Local1)
ShiftLeft(Local0, 0x1, Local0)
Add(Local0, Local1, Local0)
Store(Local0, Arg0)
If(LLess(Arg0, 0x0320)) {
Store(0x0320, Arg0)
}
Return(Arg0)
}
Method(RPOL, 1) {
\_SB_.PCI0.PX40.EC0_.ECWR
0x6
Arg0
\_SB_.PCI0.PX40.EC0_.ECWR
0x7
0x3
\_SB_.PCI0.PX40.EC0_.ECWR
0x4
0xba
Store(\_SB_.PCI0.PX40.EC0_.ECRD, 0x5)
Arg0
Return(Arg0)
}
Method(RPOT, 1) {
\_SB_.PCI0.PX40.EC0_.ECWR
0x5
Arg0
\_SB_.PCI0.PX40.EC0_.ECWR
0x4
0xc3
Store(\_SB_.PCI0.PX40.EC0_.ECRD, 0x5)
Arg0
Return(Arg0)
}
Device(BAT0) {
Name(_HID, 0x0a0cd041)
Name(_PCL, Package(0x1) {
\_SB_,
})
Method(_STA) {
If(LEqual(ECOK, 0x1)) {
Store(\_SB_.PCI0.PX40.EC0_.ECRD, 0x78)
Local0
And(Local0, 0x2, Local0)
If(Local0) {
Return(0xf)
}
Else {
Return(0x1f)
}
}
Else {
Return(0xf)
}
}
Method(_BIF) {
Store(One, Index(BUFF, 0x0, ))
Store("BA-02", Index(BUFF, 0x9, ))
Store("Li-ION", Index(BUFF, 0xb, ))
Store(RBAT, 0x5)
0x0
Local0
ShiftLeft(Local0, 0x5, Local0)
Store(Local0, Local1)
Store(Local0, Index(BUFF, 0x2, ))
Store(Local0, Index(BUFF, 0x1, ))
Store(One, Index(BUFF, 0x3, ))
Store(0x39d0, Index(BUFF, 0x4, ))
Divide(Local1, 0xa, Local0, Local1)
Store(Local1, Index(BUFF, 0x5, ))
Divide(Local1, 0xa, Local0, Local1)
Store(Local1, Index(BUFF, 0x6, ))
Subtract(DerefOf(Index(BUFF, 0x5, )), DerefOf(Index(BUFF, 0x6, )), Index(BUFF, 0x7, ))
Subtract(DerefOf(Index(BUFF, 0x2, )), DerefOf(Index(BUFF, 0x5, )), Index(BUFF, 0x8, ))
Store(" ", Index(BUFF, 0xa, ))
Store("ASUSTek", Index(BUFF, 0xc, ))
Return(BUFF)
}
Method(_BST) {
Store(\_SB_.PCI0.PX40.EC0_.ECRD, 0x78)
Local0
And(Local0, 0x2, BATS)
If(BATS) {
Store(0xffffffff, Index(BUF_, 0x1, ))
Store(0xffffffff, Index(BUF_, 0x2, ))
Store(0xffffffff, Index(BUF_, 0x3, ))
}
Else {
Store(RVSR, 0x0)
Index(BUF_, 0x1, )
Store(RBAT, 0x17)
0x0
Local0
Store(RBAT, 0x3)
0x0
Local1
ShiftLeft(Local1, 0x8, Local1)
Add(Local0, Local1, Local1)
ShiftRight(Local1, 0x3, Local1)
Store(Local1, Index(BUF_, 0x2, ))
Store(Local1, CURC)
If(LNot(LLess(BATW, Local1))) {
WBAT
0x51
0x0
0x55
}
Store(DerefOf(Index(BUFF, 0x1, )), Local2)
Subtract(Local2, Local1, Local3)
If(LLess(Local3, 0xa)) {
Store(Local2, Index(BUF_, 0x2, ))
Store(Local2, CURC)
}
Store(RBAT, 0xb)
0x0
Local0
Multiply(Local0, 0x4b, Local0)
ShiftRight(Local0, 0x4, Local0)
Multiply(Local0, 0x9, Local0)
Store(Local0, Index(BUF_, 0x3, ))
Store(Zero, Local1)
If(LNot(LLess(CURC, MAXC))) {
Store(RBAT, 0x1)
0x0
Local0
If(And(Local0, 0x80, )) {
Or(Local1, 0x2, Local1)
}
Else {
Or(Local1, 0x1, Local1)
}
}
Else {
And(\_SB_.PCI0.PX40.EC0_.ECRD, 0x78, 0x10)
Local0
If(Local0) {
Or(Local1, 0x2, Local1)
}
Else {
Or(Local1, 0x1, Local1)
}
}
Store(Local1, Index(BUF_, 0x0, ))
}
Return(BUF_)
}
}
OperationRegion(K62P, SystemIO, 0x62, 0x1)
Field(K62P, ByteAcc, NoLock, Preserve) {
EC62, 8
}
OperationRegion(K66P, SystemIO, 0x66, 0x1)
Field(K66P, ByteAcc, NoLock, Preserve) {
EC66, 8
}
Method(WEIE) {
Store(0x4000, Local0)
And(EC66, 0x2, Local1)
While(LAnd(LNot(LEqual(Local0, Zero)), LEqual(Local1, 0x2))) {
And(EC66, 0x2, Local1)
Decrement(Local0)
}
}
Method(WEOF) {
Store(0x4000, Local0)
And(EC66, 0x1, Local1)
While(LAnd(LNot(LEqual(Local0, Zero)), LEqual(Local1, 0x0))) {
And(EC66, 0x1, Local1)
Decrement(Local0)
}
}
Method(ECRD, 1) {
Acquire(MTXE, 0xffff)
Store(Zero, KSCE)
WEIE
Store(0x80, EC66)
WEIE
Store(Arg0, EC62)
WEOF
Store(EC62, Local0)
Store(One, KSCS)
Store(One, KSCE)
Release(MTXE)
Return(Local0)
}
Method(ECWR, 2) {
Acquire(MTXE, 0xffff)
Store(Zero, KSCE)
WEIE
Store(0x81, EC66)
WEIE
Store(Arg0, EC62)
WEIE
Store(Arg1, EC62)
WEIE
Store(One, KSCS)
Store(One, KSCE)
Release(MTXE)
}
Method(_Q31) {
Acquire(MTXE, 0xffff)
XOr(\_SB_.PCI0.PX40.EC0_.EV61, 0x10, \_SB_.PCI0.PX40.EC0_.EV61)
Release(MTXE)
Notify(BAT0, 0x80)
Notify(BAT0, 0x81)
Notify(BAT0, 0x1)
Notify(\_SB_.AC__, 0x80)
}
Method(_Q34) {
Store(0x3, ACIO)
Acquire(MTXE, 0xffff)
XOr(\_SB_.PCI0.PX40.EC0_.EV64, 0x10, \_SB_.PCI0.PX40.EC0_.EV64)
And(\_SB_.PCI0.PX40.EC0_.ST6Y, 0x10, Local0)
Release(MTXE)
Notify(\_SB_.AC__, 0x80)
\TINI
Local0
Notify(\_TZ_.THRM, 0x81)
Notify(\_TZ_.THRM, 0x80)
If(Local0) {
Notify(HOTK, 0x58)
}
Else {
Notify(HOTK, 0x57)
}
Notify(\_PR_.CPU0, 0x80)
}
Method(_Q0A) {
Notify(\_SB_.SLPB, 0x80)
}
Method(_Q11) {
Store(0xa0, TRTY)
Store(0x0, ESMI)
And(TRTY, 0x3, Local0)
Store(DerefOf(Index(\_SB_.PCI0.VID0.VSTT, Local0, )), \_SB_.PCI0.VID0.DISU)
Store(0xa1, TRTY)
Store(0x0, ESMI)
If(LEqual(Local0, 0x3)) {
Notify(HOTK, 0x35)
}
If(LEqual(Local0, 0x1)) {
Notify(HOTK, 0x37)
}
If(LEqual(Local0, 0x2)) {
Notify(HOTK, 0x36)
}
}
Method(_Q0E) {
If(LLess(BRIT, 0xf)) {
Increment(BRIT)
Store(DerefOf(Index(BTBL, BRIT, )), Local0)
Acquire(MTXE, 0xffff)
Store(Local0, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xd0, \_SB_.PCI0.PX40.EC0_.CDA2)
Store(0xda, \_SB_.PCI0.PX40.EC0_.CCMD)
Release(MTXE)
}
Add(BRIT, 0x10, Local0)
Notify(HOTK, Local0)
}
Method(_Q0F) {
If(BRIT) {
Decrement(BRIT)
Store(DerefOf(Index(BTBL, BRIT, )), Local0)
Acquire(MTXE, 0xffff)
Store(Local0, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xd0, \_SB_.PCI0.PX40.EC0_.CDA2)
Store(0xda, \_SB_.PCI0.PX40.EC0_.CCMD)
Release(MTXE)
}
Add(BRIT, 0x20, Local0)
Notify(HOTK, Local0)
}
Method(_Q10) {
Acquire(MTXE, 0xffff)
If(PNOF) {
Store(0x0, Local0)
}
Else {
Store(DerefOf(Index(BTBL, BRIT, )), Local0)
}
Store(Local0, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xd0, \_SB_.PCI0.PX40.EC0_.CDA2)
Store(0xda, \_SB_.PCI0.PX40.EC0_.CCMD)
Release(MTXE)
XOr(PNOF, 0x1, PNOF)
Store(0x34, Local0)
Subtract(Local0, PNOF, Local0)
Notify(HOTK, Local0)
}
Method(_Q13) {
Notify(HOTK, 0x32)
}
Method(_Q14) {
Notify(HOTK, 0x30)
}
Method(_Q15) {
Notify(HOTK, 0x31)
}
Method(_Q37) {
Notify(HOTK, 0x53)
}
Method(_Q36) {
Notify(HOTK, 0x52)
}
Method(_Q35) {
Notify(HOTK, 0x51)
}
Method(_Q30) {
Notify(HOTK, 0x50)
}
Method(_Q01) {
Notify(HOTK, 0x52)
}
Method(_Q02) {
Notify(HOTK, 0x53)
}
Method(_Q03) {
Notify(HOTK, 0x54)
}
Method(_Q04) {
Notify(HOTK, 0x55)
}
Method(_Q05) {
Notify(HOTK, 0x56)
}
}
Device(\_SB_.SLPB) {
Name(_HID, 0x0e0cd041)
}
Device(SYS1) {
Name(_HID, 0x020cd041)
Name(_UID, 0x1)
Method(_CRS) {
Name(BUF1, Buffer(0x6a) {0x47, 0x1, 0x10, 0x0, 0x10, 0x0, 0x0, 0x10, 0x47, 0x1, 0x22, 0x0, 0x22, 0x0, 0x0, 0xc, 0x47, 0x1, 0x30, 0x0, 0x30, 0x0, 0x0, 0x10, 0x47, 0x1, 0x44, 0x0, 0x44, 0x0, 0x0, 0x1c, 0x47, 0x1, 0x67, 0x0, 0x67, 0x0, 0x0, 0x9, 0x47, 0x1, 0x74, 0x0, 0x74, 0x0, 0x0, 0xc, 0x47, 0x1, 0x91, 0x0, 0x91, 0x0, 0x0, 0x3, 0x47, 0x1, 0xa2, 0x0, 0xa2, 0x0, 0x0, 0x1e, 0x47, 0x1, 0xe0, 0x0, 0xe0, 0x0, 0x0, 0x10, 0x47, 0x1, 0xf0, 0x3, 0xf0, 0x3, 0x0, 0x2, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4 , 0x0, 0x2, 0x47, 0x1, 0x0, 0x6, 0x0, 0x6, 0x1, 0x20, 0x47, 0x1, 0x0, 0xe8, 0x0, 0xe8, 0x1, 0x10, 0x79, 0x0 })
Return(BUF1)
}
}
Device(SYS2) {
Name(_HID, 0x020cd041)
Name(_UID, 0x2)
Method(_CRS) {
Name(BUF1, Buffer(0x12) {0x47, 0x1, 0x0, 0xe4, 0x0, 0xe4, 0x1, 0x80, 0x47, 0x1, 0x0, 0xec, 0x0, 0xec, 0x1, 0x40, 0x79, 0x0 })
Return(BUF1)
}
}
Device(SYS3) {
Name(_HID, 0x020cd041)
Name(_UID, 0x3)
Method(_STA) {
And(NPS2, 0x10, Local0)
And(NPS2, 0x8, Local1)
If(LEqual(Local1, 0x8)) {
If(LEqual(Local0, 0x10)) {
Return(0xf)
}
Else {
Return(0x0)
}
}
Else {
And(FLG0, 0x4, Local1)
If(LEqual(Local1, 0x4)) {
Return(0x0)
}
Else {
If(LEqual(Local0, 0x10)) {
Return(0xf)
}
Else {
Return(0x0)
}
}
}
}
Method(_CRS) {
Name(BUF1, Buffer(0x6) {0x23, 0x0, 0x10, 0x1, 0x79, 0x0 })
Return(BUF1)
}
}
Device(PIC_) {
Name(_HID, 0xd041)
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 })
}
Device(DMA1) {
Name(_HID, 0x0002d041)
Name(_CRS, Buffer(0x25) {0x2a, 0x10, 0x4, 0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x47, 0x1, 0x80, 0x0, 0x80, 0x0, 0x1, 0x11, 0x47, 0x1, 0x94, 0x0, 0x94, 0x0, 0x1, 0xc, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0, 0x1, 0x20, 0x79, 0x0 })
}
Device(TMR_) {
Name(_HID, 0x0001d041)
Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x1, 0x4, 0x22, 0x1, 0x0, 0x79, 0x0 })
}
Device(RTC_) {
Name(_HID, 0x000bd041)
Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x1, 0x4, 0x22, 0x0, 0x1, 0x79, 0x0 })
}
Device(SPKR) {
Name(_HID, 0x0008d041)
Name(_CRS, Buffer(0xa) {0x47, 0x1, 0x61, 0x0, 0x61, 0x0, 0x1, 0x1, 0x79, 0x0 })
}
Device(COPR) {
Name(_HID, 0x040cd041)
Name(_CRS, Buffer(0xd) {0x47, 0x1, 0xf0, 0x0, 0xf0, 0x0, 0x1, 0x10, 0x22, 0x0, 0x20, 0x79, 0x0 })
}
OperationRegion(N393, SystemIO, 0x2e, 0x2)
Field(N393, ByteAcc, NoLock, Preserve) {
NIDX, 8,
NDAT, 8
}
IndexField(NIDX, NDAT, ByteAcc, NoLock, Preserve) {
Offset(0x7),
LDNM, 8,
Offset(0x26),
FDCD, 1,
LPTD, 1,
IRD_, 1,
COMD, 1,
Offset(0x30),
ACTR, 8,
Offset(0x60),
IOAH, 8,
IOAL, 8,
IOBH, 8,
IOBL, 8,
Offset(0x70),
INTR, 8,
INTP, 8,
Offset(0x74),
DMCH, 8,
DMCL, 8,
Offset(0xf0),
OPT1, 8,
OPT2, 8
}
Method(GSTA, 1) {
Store(Arg0, LDNM)
If(ACTR) {
Return(0xf)
}
Else {
Return(0x0)
}
}
Method(GDIS, 1) {
Store(Arg0, LDNM)
Store(0x0, ACTR)
}
Name(COMR, Package(0x8) {
0x03f8,
0x02f8,
0x0220,
0x0228,
0x0238,
0x02e8,
0x0338,
0x03e8,
})
Device(MOUE) {
Name(_HID, 0x130fd041)
Name(_CRS, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
}
Device(PS2K) {
Name(_HID, 0x0303d041)
Method(_CRS) {
Name(BUF0, Buffer(0x16) {0x47, 0x1, 0x60, 0x0, 0x60, 0x0, 0x0, 0x1, 0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x0, 0x1, 0x23, 0x2, 0x0, 0x1, 0x79, 0x0 })
Return(BUF0)
}
}
Device(FDC0) {
Name(_HID, 0x0007d041)
Method(_STA) {
If(FDCD) {
Return(0xd)
}
Else {
Return(0xf)
}
}
Method(_DIS) {
Store(One, FDCD)
}
Method(_CRS) {
Name(BUF0, Buffer(0x19) {0x47, 0x1, 0xf2, 0x3, 0xf2, 0x3, 0x0, 0x4, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x0, 0x1, 0x23, 0x40, 0x0, 0x1, 0x2a, 0x4, 0x0, 0x79, 0x0 })
CreateWordField(BUF0, 0x11, IRQW)
CreateByteField(BUF0, 0x15, DMAV)
Store(Zero, LDNM)
Store(One, Local0)
ShiftLeft(Local0, INTR, IRQW)
Store(One, Local0)
ShiftLeft(Local0, DMCH, DMAV)
Return(BUF0)
}
Name(_PRS, Buffer(0x19) {0x47, 0x1, 0xf2, 0x3, 0xf2, 0x3, 0x0, 0x4, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x0, 0x1, 0x23, 0x40, 0x0, 0x1, 0x2a, 0x4, 0x0, 0x79, 0x0 })
Method(_SRS, 1) {
CreateByteField(Arg0, 0x2, IOLO)
CreateByteField(Arg0, 0x3, IOHI)
CreateWordField(Arg0, 0x11, IRQW)
CreateByteField(Arg0, 0x15, DMAV)
Store(Zero, LDNM)
Store(IOHI, IOAH)
Store(IOLO, IOAL)
FindSetRightBit(IRQW, Local0)
Decrement(Local0)
Store(Local0, INTR)
FindSetRightBit(DMAV, Local0)
Decrement(Local0)
Store(Local0, DMCH)
Store(One, ACTR)
Store(Zero, FDCD)
}
}
Device(LPT_) {
Name(_HID, 0x0004d041)
Method(_STA) {
Store(GSTA, 0x1)
Local0
If(LEqual(Local0, 0xf)) {
Store(0x1, LDNM)
If(LEqual(DMCH, 0x4)) {
If(LPTD) {
Return(0xd)
}
Else {
Return(0xf)
}
}
Else {
Return(0x0)
}
}
Else {
Return(0x0)
}
}
Method(_DIS) {
Store(One, LPTD)
}
Method(_CRS) {
Name(BUF5, Buffer(0xe) {0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x0, 0x8, 0x23, 0x80, 0x0, 0x1, 0x79, 0x0 })
CreateByteField(BUF5, 0x2, IOLO)
CreateByteField(BUF5, 0x3, IOHI)
CreateByteField(BUF5, 0x4, IORL)
CreateByteField(BUF5, 0x5, IORH)
CreateByteField(BUF5, 0x7, IOLN)
CreateWordField(BUF5, 0x9, IRQW)
Store(0x1, LDNM)
Store(IOAL, IOLO)
Store(IOAL, IORL)
Store(IOAH, IOHI)
Store(IOAH, IORH)
Store(IOHI, Local0)
ShiftLeft(Local0, 0x8, Local0)
Add(Local0, IOLO, Local0)
If(LEqual(Local0, 0x03bc)) {
Store(0x4, IOLN)
}
Store(One, Local0)
ShiftLeft(Local0, INTR, IRQW)
Return(BUF5)
}
Name(_PRS, Buffer(0x2d) {0x31, 0x5, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x0, 0x8, 0x23, 0xa0, 0x0, 0x1, 0x31, 0x5, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x0, 0x8, 0x23, 0xa0, 0x0, 0x1, 0x31, 0x5, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x0, 0x4, 0x23, 0xa0, 0x0, 0x1, 0x38, 0x79, 0x0 })
Method(_SRS, 1) {
CreateByteField(Arg0, 0x2, IOLO)
CreateByteField(Arg0, 0x3, IOHI)
CreateWordField(Arg0, 0x9, IRQW)
Store(0x1, LDNM)
Store(IOLO, IOAL)
Store(IOHI, IOAH)
Store(IOHI, Local0)
ShiftLeft(Local0, 0x8, Local0)
Add(Local0, IOLO, Local0)
FindSetRightBit(IRQW, Local0)
Decrement(Local0)
Store(Local0, INTR)
Store(0x2, INTP)
Store(One, ACTR)
Store(Zero, LPTD)
}
}
Device(ECP_) {
Name(_HID, 0x0104d041)
Method(_STA) {
Store(GSTA, 0x1)
Local0
If(LEqual(Local0, 0xf)) {
Store(0x1, LDNM)
If(LEqual(DMCH, 0x4)) {
Return(0x0)
}
Else {
If(LPTD) {
Return(0xd)
}
Else {
Return(0xf)
}
}
}
Else {
Return(0x0)
}
}
Method(_DIS) {
Store(One, LPTD)
}
Method(_CRS) {
Name(BUF6, Buffer(0x19) {0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x0, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x0, 0x8, 0x23, 0x80, 0x0, 0x1, 0x2a, 0x2, 0x0, 0x79, 0x0 })
CreateByteField(BUF6, 0x2, IOLO)
CreateByteField(BUF6, 0x3, IOHI)
CreateByteField(BUF6, 0x4, IORL)
CreateByteField(BUF6, 0x5, IORH)
CreateByteField(BUF6, 0x7, IOLN)
CreateByteField(BUF6, 0xa, I2LO)
CreateByteField(BUF6, 0xb, I2HI)
CreateByteField(BUF6, 0xc, I2RL)
CreateByteField(BUF6, 0xd, I2RH)
CreateWordField(BUF6, 0x11, IRQW)
CreateByteField(BUF6, 0x15, DMAC)
Store(0x1, LDNM)
Store(IOAL, IOLO)
Store(IOLO, IORL)
Store(IOLO, I2LO)
Store(IOLO, I2RL)
Store(IOAH, IOHI)
Store(IOHI, IORH)
Add(IOHI, 0x4, I2HI)
Add(IOHI, 0x4, I2RH)
Store(IOHI, Local0)
ShiftLeft(Local0, 0x8, Local0)
Add(Local0, IOLO, Local0)
If(LEqual(Local0, 0x03bc)) {
Store(0x4, IOLN)
}
Else {
Store(0x8, IOLN)
}
Store(One, Local0)
ShiftLeft(Local0, INTR, IRQW)
Store(One, Local0)
ShiftLeft(Local0, DMCH, DMAC)
Return(BUF6)
}
Name(_PRS, Buffer(0x4e) {0x31, 0x5, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x0, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x0, 0x8, 0x23, 0xa0, 0x0, 0x1, 0x2a, 0xb, 0x0, 0x31, 0x5, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x0, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x0, 0x8, 0x23, 0xa0, 0x0, 0x1, 0x2a, 0xb, 0x0, 0x31, 0x5, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x0, 0x4, 0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x0, 0x8, 0x23, 0xa0, 0x0, 0x1, 0x2a, 0xb, 0x0, 0x38, 0x79, 0x0 })
Method(_SRS, 1) {
CreateByteField(Arg0, 0x2, IOLO)
CreateByteField(Arg0, 0x3, IOHI)
CreateWordField(Arg0, 0x11, IRQW)
CreateByteField(Arg0, 0x15, DMAC)
Store(0x1, LDNM)
Store(IOLO, IOAL)
Store(IOHI, IOAH)
Store(IOHI, Local0)
ShiftLeft(Local0, 0x8, Local0)
Add(Local0, IOLO, Local0)
FindSetRightBit(IRQW, Local0)
Decrement(Local0)
Store(Local0, INTR)
FindSetRightBit(DMAC, Local0)
Decrement(Local0)
Store(Local0, DMCH)
Store(One, ACTR)
Store(Zero, LPTD)
}
}
Device(UAR1) {
Name(_HID, 0x0105d041)
Name(_UID, 0x1)
Method(_STA) {
Return(GSTA)
0x3
}
Method(_DIS) {
}
Method(_CRS) {
Name(BUF1, Buffer(0xe) {0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x0, 0x8, 0x23, 0x10, 0x0, 0x1, 0x79, 0x0 })
CreateByteField(BUF1, 0x2, IOLO)
CreateByteField(BUF1, 0x3, IOHI)
CreateByteField(BUF1, 0x4, IORL)
CreateByteField(BUF1, 0x5, IORH)
CreateWordField(BUF1, 0x9, IRQW)
Store(0x3, LDNM)
Store(IOAL, IOLO)
Store(IOAL, IORL)
Store(IOAH, IOHI)
Store(IOAH, IORH)
Store(One, Local0)
ShiftLeft(Local0, INTR, IRQW)
Return(BUF1)
}
Name(_PRS, Buffer(0x3b) {0x31, 0x5, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x0, 0x8, 0x23, 0x10, 0x0, 0x1, 0x31, 0x5, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x0, 0x8, 0x23, 0x8, 0x0, 0x1, 0x31, 0x5, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x0, 0x8, 0x23, 0x10, 0x0, 0x1, 0x31, 0x5, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x0, 0x8, 0x23, 0x8, 0x0, 0x1, 0x38, 0x79, 0x0 })
Method(_SRS, 1) {
CreateByteField(Arg0, 0x2, IOLO)
CreateByteField(Arg0, 0x3, IOHI)
CreateWordField(Arg0, 0x9, IRQW)
Store(0x3, LDNM)
Store(IOLO, IOAL)
Store(IOHI, IOAH)
Store(IOHI, Local0)
ShiftLeft(Local0, 0x8, Local0)
Add(Local0, IOLO, Local0)
FindSetRightBit(IRQW, Local0)
Decrement(Local0)
Store(Local0, INTR)
Store(One, ACTR)
}
}
Device(IRDA) {
Name(_HID, 0x1005d041)
Method(_STA) {
Store(0x2, LDNM)
If(ACTR) {
If(LEqual(DMCH, 0x4)) {
Return(0xf)
}
Else {
Return(0x0)
}
}
Else {
Return(0x0)
}
}
Method(_DIS) {
}
Method(_CRS) {
Name(BUF1, Buffer(0xe) {0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x0, 0x8, 0x23, 0x8, 0x0, 0x1, 0x79, 0x0 })
CreateByteField(BUF1, 0x2, IOLO)
CreateByteField(BUF1, 0x3, IOHI)
CreateByteField(BUF1, 0x4, IORL)
CreateByteField(BUF1, 0x5, IORH)
CreateWordField(BUF1, 0x9, IRQW)
Store(0x2, LDNM)
Store(IOAL, IOLO)
Store(IOAL, IORL)
Store(IOAH, IOHI)
Store(IOAH, IORH)
Store(One, Local0)
ShiftLeft(Local0, INTR, IRQW)
Return(BUF1)
}
Name(_PRS, Buffer(0x3b) {0x31, 0x5, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x0, 0x8, 0x23, 0x8, 0x0, 0x1, 0x31, 0x5, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x0, 0x8, 0x23, 0x10, 0x0, 0x1, 0x31, 0x5, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x0, 0x8, 0x23, 0x8, 0x0, 0x1, 0x31, 0x5, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x0, 0x8, 0x23, 0x10, 0x0, 0x1, 0x38, 0x79, 0x0 })
Method(_SRS, 1) {
CreateByteField(Arg0, 0x2, IOLO)
CreateByteField(Arg0, 0x3, IOHI)
CreateWordField(Arg0, 0x9, IRQW)
Store(0x2, LDNM)
Store(IOLO, IOAL)
Store(IOHI, IOAH)
Store(IOHI, Local0)
ShiftLeft(Local0, 0x8, Local0)
Add(Local0, IOLO, Local0)
FindSetRightBit(IRQW, Local0)
Decrement(Local0)
Store(Local0, INTR)
Store(One, ACTR)
Store(Zero, IRD_)
}
}
Device(FIR_) {
Name(_HID, 0x0160633a)
Method(_STA) {
Store(0x2, LDNM)
If(ACTR) {
If(LEqual(DMCH, 0x4)) {
Return(0x0)
}
Else {
Return(0xf)
}
}
Else {
Return(0x0)
}
}
Method(_DIS) {
}
Method(_CRS) {
Name(BUF1, Buffer(0x11) {0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x0, 0x8, 0x23, 0x8, 0x0, 0x1, 0x2a, 0x2, 0x0, 0x79, 0x0 })
CreateByteField(BUF1, 0x2, IOLO)
CreateByteField(BUF1, 0x3, IOHI)
CreateByteField(BUF1, 0x4, IORL)
CreateByteField(BUF1, 0x5, IORH)
CreateWordField(BUF1, 0x9, IRQW)
CreateWordField(BUF1, 0xd, DMAV)
Store(0x2, LDNM)
Store(IOAL, IOLO)
Store(IOAL, IORL)
Store(IOAH, IOHI)
Store(IOAH, IORH)
Store(One, Local0)
ShiftLeft(Local0, INTR, IRQW)
Store(One, Local0)
ShiftLeft(Local0, DMCH, DMAV)
Return(BUF1)
}
Name(_PRS, Buffer(0x47) {0x31, 0x5, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x0, 0x8, 0x23, 0x8, 0x0, 0x1, 0x2a, 0xa, 0x0, 0x31, 0x5, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x0, 0x8, 0x23, 0x10, 0x0, 0x1, 0x2a, 0xa, 0x0, 0x31, 0x5, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x0, 0x8, 0x23, 0x8, 0x0, 0x1, 0x2a, 0xa, 0x0, 0x31, 0x5, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x0, 0x8, 0x23, 0x10, 0x0, 0x1, 0x2a, 0xa, 0x0, 0x38, 0x79, 0x0 })
Method(_SRS, 1) {
CreateByteField(Arg0, 0x2, IOLO)
CreateByteField(Arg0, 0x3, IOHI)
CreateWordField(Arg0, 0x9, IRQW)
CreateByteField(Arg0, 0xd, DMAC)
Store(0x2, LDNM)
Store(IOLO, IOAL)
Store(IOHI, IOAH)
Store(IOHI, Local0)
ShiftLeft(Local0, 0x8, Local0)
Add(Local0, IOLO, Local0)
FindSetRightBit(IRQW, Local0)
Decrement(Local0)
Store(Local0, INTR)
FindSetRightBit(DMAC, Local0)
Decrement(Local0)
Store(Local0, DMCH)
Store(One, ACTR)
Store(Zero, IRD_)
}
}
Device(GAME) {
Name(_HID, 0x2fb0d041)
Method(_STA) {
Return(0xf)
}
Method(_CRS) {
Name(BUF2, Buffer(0xa) {0x47, 0x1, 0x0, 0x2, 0x0, 0x2, 0x8, 0x8, 0x79, 0x0 })
Return(BUF2)
}
}
}
Device(PX43) {
Name(_ADR, 0x001f0003)
OperationRegion(OPSM, PCI_Config, 0x0, 0x24)
Field(OPSM, WordAcc, NoLock, Preserve) {
Offset(0x4),
PCMD, 16,
Offset(0x20),
SMBS, 16
}
Method(FNEN) {
Store(0xe800, Local0)
Increment(Local0)
Store(Local0, SMBS)
Store(One, PCMD)
}
}
Device(USB0) {
Name(_ADR, 0x001f0002)
Method(_S1D) {
Return(0x1)
}
OperationRegion(URE0, PCI_Config, 0xc4, 0x1)
Field(URE0, ByteAcc, NoLock, Preserve) {
U0PE, 8
}
Method(_PRW) {
Return(SPRW)
0x3
}
Method(_PSW, 1) {
If(LEqual(Arg0, One)) {
Store(0x3, U0PE)
}
Else {
Store(Zero, U0PE)
}
}
}
Device(USB1) {
Name(_ADR, 0x001f0004)
Method(_S1D) {
Return(0x1)
}
OperationRegion(URE1, PCI_Config, 0xc4, 0x1)
Field(URE1, ByteAcc, NoLock, Preserve) {
U1PE, 8
}
Method(_PRW) {
Return(SPRW)
0x4
}
Method(_PSW, 1) {
If(LEqual(Arg0, One)) {
Store(0x3, U1PE)
}
Else {
Store(Zero, U1PE)
}
}
}
Device(AC97) {
Name(_ADR, 0x001f0006)
Name(_PRW, Package(0x2) {
0x5,
0x3,
})
}
Device(VID0) {
Name(_ADR, 0x00020000)
Name(DOSD, 0x1)
Name(DISU, 0x3)
Name(VSTT, Package(0x4) {
0x3,
0x3,
0x1,
0x2,
})
Method(_S3D) {
Return(0x3)
}
Method(_DOS, 1) {
Store(Arg0, DOSD)
If(LNot(LEqual(Arg0, 0x1))) {
Acquire(\_SB_.PCI0.PX40.EC0_.MTXE, 0xffff)
Store(0xd3, \_SB_.PCI0.PX40.EC0_.CDA2)
Store(0x1, \_SB_.PCI0.PX40.EC0_.CDA3)
Store(0xba, \_SB_.PCI0.PX40.EC0_.CCMD)
Store(\_SB_.PCI0.PX40.EC0_.CDA1, Local0)
Or(Local0, 0x80, Local0)
Store(Local0, \_SB_.PCI0.PX40.EC0_.CDA1)
Store(0xbb, \_SB_.PCI0.PX40.EC0_.CCMD)
Release(\_SB_.PCI0.PX40.EC0_.MTXE)
}
}
Method(_DOD) {
Return(Package(0x2) {
0x00010100,
0x00010200,
})
}
Device(CRT_) {
Name(_ADR, 0x0100)
Method(_DCS) {
Return(0x1f)
}
Method(_DGS) {
Return(And(DISU, 0x1, ))
}
Method(_DSS, 1) {
Store(Arg0, Local0)
}
}
Device(LCD_) {
Name(_ADR, 0x0200)
Method(_DCS) {
Return(0x1f)
}
Method(_DGS) {
Return(And(DISU, 0x2, ))
}
Method(_DSS, 1) {
Store(Arg0, Local0)
}
Method(_BCL) {
Name(BUFF, Package(0x8) {
0x0,
0x20,
0x40,
0x60,
0x80,
0xa0,
0xc0,
0xe0,
})
Return(BUFF)
}
Method(_BCM, 1) {
}
}
}
Scope(\_SB_.PCI0.PCI1) {
Device(CDB0) {
Name(_ADR, 0x00070000)
}
Device(LAN_) {
Name(_ADR, 0x00080000)
Name(_PRW, Package(0x2) {
0xb,
0x4,
})
}
}
}
}
BOOT: Lenth=40, Revision=1, Checksum=160,
OEMID=ASUS, OEM Table ID=M1000A, OEM Revision=0x30303031,
Creator ID=MSFT, Creator Revision=0x31313031
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200109162110.f8GLA1O21066>
