From owner-freebsd-bugs Sun Sep 16 14:11:22 2001 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id B18DE37B407 for ; Sun, 16 Sep 2001 14:10:01 -0700 (PDT) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.4/8.11.4) id f8GLA1O21066; Sun, 16 Sep 2001 14:10:01 -0700 (PDT) (envelope-from gnats) Date: Sun, 16 Sep 2001 14:10:01 -0700 (PDT) Message-Id: <200109162110.f8GLA1O21066@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Poul-Henning Kamp Subject: Re: kern/30617: [PATCH] ACPI bug: don't dereference a pointer you have set to NULL Reply-To: Poul-Henning Kamp Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org The following reply was made to PR kern/30617; it has been noted by GNATS. From: Poul-Henning Kamp 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