Date: Sun, 19 Nov 2000 04:20:19 -0600 From: "Michael C . Wu" <keichii@iteration.net> To: Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org> Cc: n_hibma@qubesoft.com, mobile@freebsd.org Subject: Re: usb0 not resuming and APM/ACPI weirdness Message-ID: <20001119042019.A19018@peorth.iteration.net> In-Reply-To: <20001119105525E.iwasaki@jp.FreeBSD.org>; from iwasaki@jp.FreeBSD.org on Sun, Nov 19, 2000 at 10:55:25AM %2B0900 References: <20001028051133.A409@peorth.iteration.net> <Pine.BSF.4.20.0011181740430.68638-100000@henny.webweaving.org> <20001119105525E.iwasaki@jp.FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Sun, Nov 19, 2000 at 10:55:25AM +0900, Mitsuru IWASAKI scribbled:
| > > The old "usb0: host controller halted" problem has returned
| > > to my laptop after resume for suspend-to-disk on the latest current
| > > for some time. After resume, usb0 floods my /var/log/messages
| > > with thousands of the same messages.
| >
| > This is most probably a problem related to ACPI, it suspending the USB
| > host controller when suspending and the USB driver getting it wrong when
| > unsuspending. I have no idea how to fix this.
|
| Yes, most of modern laptops has power management related methods on
| various devices (including USB host controller) in ACPI Machine
| Language format. And these methods should to be executed by AML
| interpreter in order to maintain (or re-initialize?) the devices when
| the machine is going to sleep/wakeup.
|
| I guess that the problem is
| - When suspend-to-{RAM|disk} by APM, any AML methods won't be executed.
| - Currently, our ACPI code supports limited sleep state only
| (suspend/hibernation in APM haven't supported yet).
|
| so I think that implement sleep/wakeup code in device driver which
| equivalent to AML methods would be a short-term solution...
| # acpidump(8) and amldb(8) maybe help us.
| Of course I know that ACPI support improvement is better solution.
|
| BTW Michael, what laptop are you using? and could you send me ACPI
| data?
| # please see acpidump(8)
Hi,
My laptop is a Sony VAIOZ505JS Superslim
I booted a kernel with
device acpica
options ACPI_DEBUG
# ACPI Experimental Driver
device acpi
And enabled ACPI in the BIOS.
The ACPI kernel hangs on acpi probe, would you like a ddb dump?
Attached is acpidump output
Thanks,
--
+------------------------------------------------------------------+
| keichii@peorth.iteration.net | keichii@bsdconspiracy.net |
| http://peorth.iteration.net/~keichii | Yes, BSD is a conspiracy. |
+------------------------------------------------------------------+
[-- Attachment #2 --]
RSD PTR: Checksum=2, OEMID=SONY, RsdtAddress=0x0fffc088
RSDT: Lenth=44, Revision=1, Checksum=52,
OEMID=SONY, OEM Table ID=Z1, OEM Revision=0x20000511,
Creator ID=PTL, Creator Revision=0x0
Entries={ 0x0ffff765, 0x0ffff7d9 }
DSDT=0xfffc0b4
INT_MODEL=PIC
SCI_INT=9
SMI_CMD=0xb2, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0xf2
PM1a_EVT_BLK=0x8000-0x8003
PM1a_CNT_BLK=0x8042-0x8043
PM2_CNT_BLK=0x22-0x22
PM2_TMR_BLK=0x8008-0x800b
PM2_GPE0_BLK=0x800c-0x800f
P_LVL2_LAT=10ms, P_LVL3_LAT=4097ms
FLUSH_SIZE=0, FLUSH_STRIDE=0
DUTY_OFFSET=1, DUTY_WIDTH=3
DAY_ALRM=13, MON_ALRM=0, CENTURY=50
Flags={WBINVD,PWR_BUTTON,SLP_BUTTON,RTC_S4}
DSDT: Lenth=14001, Revision=1, Checksum=62,
OEMID=SONY, OEM Table ID=Z1, OEM Revision=0x20000511,
Creator ID=MSFT, Creator Revision=0x100000c
Scope(_PR_) {
Processor(CPU0, 0, 0x8010, 0x6) {
}
}
Name(_S0_, Package(0x4) {
0x5,
0x5,
0x0,
0x0,
})
Name(_S1_, Package(0x4) {
0x4,
0x4,
0x0,
0x0,
})
Name(_S3_, Package(0x4) {
0x1,
0x1,
0x0,
0x0,
})
Name(_S4_, Package(0x4) {
0x0,
0x0,
0x0,
0x0,
})
Name(_S5_, Package(0x4) {
0x0,
0x0,
0x0,
0x0,
})
OperationRegion(GPO_, SystemIO, 0x8034, 0x4)
Field(GPO_, DWordAcc, NoLock, Preserve) {
GO00, 1,
GO01, 1,
GO02, 1,
GO03, 1,
GO04, 1,
GO05, 1,
GO06, 1,
GO07, 1,
GO08, 1,
GO09, 1,
GO10, 1,
GO11, 1,
GO12, 1,
GO13, 1,
GO14, 1,
GO15, 1,
GO16, 1,
GO17, 1,
GO18, 1,
GO19, 1,
GO20, 1,
GO21, 1,
GO22, 1,
GO23, 1,
GO24, 1,
GO25, 1,
GO26, 1,
GO27, 1,
GO28, 1,
GO29, 1,
GO30, 1,
GO31, 1
}
OperationRegion(GLBL, SystemIO, 0x8028, 0x4)
Field(GLBL, DWordAcc, NoLock, Preserve) {
Offset(0x3),
, 1,
LPOL, 1
}
OperationRegion(SMI0, SystemMemory, 0x0ffffba7, 0x00000415)
Field(SMI0, AnyAcc, NoLock, Preserve) {
BCMD, 8,
DID_, 32,
INFO, 4096
}
Field(SMI0, AnyAcc, NoLock, Preserve) {
Offset(0x5),
INFB, 8
}
Field(SMI0, AnyAcc, NoLock, Preserve) {
Offset(0x5),
INFD, 32
}
Field(SMI0, AnyAcc, NoLock, Preserve) {
Offset(0x5),
SXBF, 8320
}
OperationRegion(SMI1, SystemIO, 0x00008040, 0x00000002)
Field(SMI1, AnyAcc, NoLock, Preserve) {
SMIC, 8
}
Mutex(MPHS, 0)
Method(PHS0, 1) {
Store(Arg0, BCMD)
Store(Zero, SMIC)
While(LEqual(BCMD, Arg0)) {
}
Store(0x0, BCMD)
}
Method(PHS_, 1, Serialized) {
Acquire(MPHS, 0xffff)
Store(0x0, DID_)
PHS0
Arg0
Store(INFD, Local0)
Release(MPHS)
Return(Local0)
}
Method(PHSD, 2, Serialized) {
Acquire(MPHS, 0xffff)
Store(0x0, DID_)
Store(Arg1, INFD)
PHS0
Arg0
Store(INFD, Local0)
Release(MPHS)
Return(Local0)
}
Method(PHSB, 2, Serialized) {
Acquire(MPHS, 0xffff)
Store(0x0, DID_)
Store(Arg1, INFB)
PHS0
Arg0
Store(INFB, Local0)
Release(MPHS)
Return(Local0)
}
Method(PSCS, 1, Serialized) {
Acquire(MPHS, 0xffff)
Store(Arg0, DID_)
PHS0
0x0
Store(INFO, Local0)
Release(MPHS)
Return(Local0)
}
Method(PSSS, 2, Serialized) {
Acquire(MPHS, 0xffff)
Store(Arg0, DID_)
Store(Arg1, INFO)
PHS0
0x1
Release(MPHS)
}
Method(PSPS, 1, Serialized) {
Acquire(MPHS, 0xffff)
Store(Arg0, DID_)
PHS0
0x2
Store(INFO, Local0)
Release(MPHS)
Return(Local0)
}
Method(PSDI, 1, Serialized) {
Acquire(MPHS, 0xffff)
Store(Arg0, DID_)
PHS0
0x3
Release(MPHS)
}
Method(PSST, 1, Serialized) {
Acquire(MPHS, 0xffff)
Store(Arg0, DID_)
PHS0
0x4
Store(INFB, Local0)
Release(MPHS)
Return(Local0)
}
Scope(\_GPE) {
Method(_L0B) {
Notify(\_SB_.PWRB, 0x2)
}
Method(_L0A) {
Notify(\_SB_.PCI0, 0x2)
}
Method(_L08) {
Notify(\_SB_.PCI0.USB0, 0x2)
}
}
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)
}
}
}
Method(_PTS, 1) {
If(LNot(LLess(Arg0, 0x2))) {
Store(0x1, \_SB_.PCI0.CRST)
}
Else {
Store(0x0, \_SB_.PCI0.CRST)
}
If(LEqual(Arg0, 0x4)) {
Store(\_SB_.PCI0.ISA_.SPIC._CRS, \_SB_.PCI0.ISA_.SPIC.SSRC)
If(LEqual(SCMP, \_OS_)) {
"Microsoft Windows NT"
Zero
PHS_
0xe3
PHS_
0xe5
}
Else {
If(LNot(LEqual(SCMP, \_OS_))) {
"Microsoft Windows"
Zero
PHS_
0xe3
PHS_
0xe5
}
}
}
Return(0x0)
}
Scope(_SB_) {
Device(PWRB) {
Name(_HID, 0x0c0cd041)
Name(_PRW, Package(0x2) {
0xb,
0x4,
})
Method(_STA) {
Return(0xf)
}
}
Device(PCI0) {
Name(_HID, 0x030ad041)
OperationRegion(BXRS, PCI_Config, 0x7a, 0x1)
Field(BXRS, ByteAcc, NoLock, Preserve) {
CRST, 1,
Offset(0x1)
}
Device(H2PB) {
Name(_ADR, 0x0)
OperationRegion(NRBR, PCI_Config, 0x0, 0x0100)
Field(NRBR, DWordAcc, NoLock, Preserve) {
Offset(0x51),
, 1,
AAGE, 1,
Offset(0xb0),
, 7,
GTEN, 1
}
}
Device(VID0) {
Name(_ADR, 0x00010000)
Name(_PSC, 0x0)
Method(_STA) {
Return(0xf)
}
Method(_PS0) {
Store(Zero, \_SB_.PCI0.H2PB.AAGE)
Store(Zero, \_SB_.PCI0.H2PB.GTEN)
Store(0x0, _PSC)
}
Method(_PS3) {
Store(0x3, _PSC)
}
Name(VIDS, Package(0x3) {
0x0100,
0x00010110,
0x0200,
})
Method(_DOD) {
Return(VIDS)
}
Device(LCD_) {
Name(_ADR, 0x0110)
Name(ACTV, 0x1)
Method(_DCS) {
If(ACTV) {
Return(0x1f)
}
Else {
Return(0x1b)
}
}
Name(_DGS, 0x1)
Name(IDSS, 0x0)
Method(_DSS, 1) {
Store(Arg0, IDSS)
If(And(Arg0, 0x80000000, )) {
If(LNot(And(Arg0, 0x40000000, ))) {
^SET_
}
^NEXT
}
}
}
Device(TV__) {
Name(_ADR, 0x0200)
Name(ACTV, 0x1)
Method(_DCS) {
If(ACTV) {
Return(0x1f)
}
Else {
Return(0x1b)
}
}
Name(_DGS, 0x1)
Name(IDSS, 0x0)
Method(_DSS, 1) {
Store(Arg0, IDSS)
If(And(Arg0, 0x80000000, )) {
If(LNot(And(Arg0, 0x40000000, ))) {
^SET_
}
^NEXT
}
}
}
Method(SET_) {
And(TV__.IDSS, 0x1, TV__.ACTV)
And(LCD_.IDSS, 0x1, LCD_.ACTV)
If(TV__.ACTV) {
Store(0x4, Local0)
}
If(TV__.ACTV) {
Or(Local0, 0x1, Local0)
}
PHSB
0xe4
Local0
}
Method(NEXT) {
If(LAnd(LCD_._DGS, LNot(TV__._DGS))) {
Store(One, LCD_._DGS)
Store(One, TV__._DGS)
}
Else {
Store(One, LCD_._DGS)
Store(Zero, TV__._DGS)
}
}
}
Name(_ADR, 0x0)
Name(_PRT, Package(0xb) {
Package(0x4) {
0x0001ffff,
0x0,
LNKA,
0x0,
},
Package(0x4) {
0x0001ffff,
0x1,
LNKB,
0x0,
},
Package(0x4) {
0x0001ffff,
0x2,
LNKC,
0x0,
},
Package(0x4) {
0x0001ffff,
0x3,
LNKD,
0x0,
},
Package(0x4) {
0x0007ffff,
0x3,
LNKD,
0x0,
},
Package(0x4) {
0x0008ffff,
0x0,
LNKD,
0x0,
},
Package(0x4) {
0x0009ffff,
0x0,
LNKC,
0x0,
},
Package(0x4) {
0x000affff,
0x0,
LNKB,
0x0,
},
Package(0x4) {
0x000bffff,
0x0,
LNKA,
0x0,
},
Package(0x4) {
0x000cffff,
0x0,
LNKB,
0x0,
},
Package(0x4) {
0x000dffff,
0x0,
LNKB,
0x0,
},
})
OperationRegion(REGS, PCI_Config, 0x40, 0xc0)
Field(REGS, DWordAcc, NoLock, Preserve) {
Offset(0x19),
PAM0, 8,
PAM1, 8,
PAM2, 8,
PAM3, 8,
PAM4, 8,
PAM5, 8,
PAM6, 8,
DRB0, 8,
DRB1, 8,
DRB2, 8,
DRB3, 8,
DRB4, 8,
DRB5, 8,
DRB6, 8,
DRB7, 8,
, 6,
HEN_, 2,
Offset(0x33),
T_EN, 1,
T_SZ, 2
}
Name(RSRC, Buffer(0x01d2) {0x88, 0xe, 0x0, 0x2, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0xff, 0xff, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xff, 0x3f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xc, 0x0, 0xff, 0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xc, 0x0, 0xff, 0xbf, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xc, 0x0, 0xff, 0xff, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xff, 0x3f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xd, 0x0, 0xff, 0x7f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xd, 0x0, 0xff, 0xbf, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xd, 0x0, 0xff, 0xff, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0xff, 0x3f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xe, 0x0, 0xff, 0x7f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xe, 0x0, 0xff, 0xbf, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xe, 0x0, 0xff, 0xff, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 0x1, 0x8, 0x88, 0xe, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 0x0, 0xf8, 0xc, 0x0, 0x88, 0xe, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0xd, 0xff, 0xff, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x79, 0x0 })
Method(_CRS, 0, Serialized) {
Store(Zero, Local1)
If(T_EN) {
ShiftLeft(0x1, Add(T_SZ, 0x11, ), Local1)
}
CreateDWordField(RSRC, 0x017a, BTMN)
CreateDWordField(RSRC, 0x017e, BTMX)
CreateDWordField(RSRC, 0x0186, BTLN)
Multiply(DRB7, 0x00800000, Local0)
If(T_EN) {
Subtract(Local0, Local1, Local2)
Store(Local2, BTMN)
Subtract(Add(Local0, 0x10000000, ), BTMN, BTLN)
}
Else {
Store(Local0, BTMN)
Subtract(0xffe00000, Local0, BTLN)
Subtract(Add(BTMN, BTLN, ), 0x1, BTMX)
}
CreateDWordField(RSRC, 0x0195, ATMN)
CreateDWordField(RSRC, 0x0199, ATMX)
CreateDWordField(RSRC, 0x01a1, ATLN)
If(T_EN) {
Add(Add(BTMN, BTLN, ), Local1, ATMN)
Subtract(0xffe00000, ATMN, ATLN)
Subtract(Add(ATMN, ATLN, ), 0x1, ATMX)
}
Else {
Store(Zero, ATLN)
}
CreateBitField(RSRC, 0x0188, C0RW)
CreateDWordField(RSRC, 0x36, C0MN)
CreateDWordField(RSRC, 0x3a, C0MX)
CreateDWordField(RSRC, 0x42, C0LN)
Store(One, C0RW)
If(LEqual(And(PAM1, 0x3, ), 0x1)) {
Store(Zero, C0RW)
}
Store(Zero, C0LN)
If(LNot(And(PAM1, 0x3, ))) {
Store(0x4000, C0LN)
}
CreateBitField(RSRC, 0x0260, C4RW)
CreateDWordField(RSRC, 0x51, C4MN)
CreateDWordField(RSRC, 0x55, C4MX)
CreateDWordField(RSRC, 0x5d, C4LN)
Store(One, C4RW)
If(LEqual(And(PAM1, 0x30, ), 0x10)) {
Store(Zero, C4RW)
}
Store(Zero, C4LN)
If(LNot(And(PAM1, 0x30, ))) {
Store(0x4000, C4LN)
}
CreateBitField(RSRC, 0x0338, C8RW)
CreateDWordField(RSRC, 0x6c, C8MN)
CreateDWordField(RSRC, 0x70, C8MX)
CreateDWordField(RSRC, 0x78, C8LN)
Store(One, C8RW)
If(LEqual(And(PAM2, 0x3, ), 0x1)) {
Store(Zero, C8RW)
}
Store(Zero, C8LN)
If(LNot(And(PAM2, 0x3, ))) {
Store(0x4000, C8LN)
}
CreateBitField(RSRC, 0x0410, CCRW)
CreateDWordField(RSRC, 0x87, CCMN)
CreateDWordField(RSRC, 0x8b, CCMX)
CreateDWordField(RSRC, 0x93, CCLN)
Store(One, CCRW)
If(LEqual(And(PAM2, 0x30, ), 0x10)) {
Store(Zero, CCRW)
}
Store(Zero, CCLN)
If(LNot(And(PAM2, 0x30, ))) {
Store(0x4000, CCLN)
}
CreateBitField(RSRC, 0x04e8, D0RW)
CreateDWordField(RSRC, 0xa2, D0MN)
CreateDWordField(RSRC, 0xa6, D0MX)
CreateDWordField(RSRC, 0xae, D0LN)
Store(One, D0RW)
If(LEqual(And(PAM3, 0x3, ), 0x1)) {
Store(Zero, D0RW)
}
Store(Zero, D0LN)
If(LNot(And(PAM3, 0x3, ))) {
Store(0x4000, D0LN)
}
CreateBitField(RSRC, 0x05c0, D4RW)
CreateDWordField(RSRC, 0xbd, D4MN)
CreateDWordField(RSRC, 0xc1, D4MX)
CreateDWordField(RSRC, 0xc9, D4LN)
Store(One, D4RW)
If(LEqual(And(PAM3, 0x30, ), 0x10)) {
Store(Zero, D4RW)
}
Store(Zero, D4LN)
If(LNot(And(PAM3, 0x30, ))) {
Store(0x4000, D4LN)
}
CreateBitField(RSRC, 0x0698, D8RW)
CreateDWordField(RSRC, 0xd8, D8MN)
CreateDWordField(RSRC, 0xdc, D8MX)
CreateDWordField(RSRC, 0xe4, D8LN)
Store(One, D8RW)
If(LEqual(And(PAM4, 0x3, ), 0x1)) {
Store(Zero, D8RW)
}
Store(Zero, D8LN)
If(LNot(And(PAM4, 0x3, ))) {
Store(0x4000, D8LN)
}
CreateBitField(RSRC, 0x0770, DCRW)
CreateDWordField(RSRC, 0xf3, DCMN)
CreateDWordField(RSRC, 0xf7, DCMX)
CreateDWordField(RSRC, 0xff, DCLN)
Store(Zero, DCRW)
Store(0x4000, DCLN)
CreateBitField(RSRC, 0x0848, E0RW)
CreateDWordField(RSRC, 0x010e, E0MN)
CreateDWordField(RSRC, 0x0112, E0MX)
CreateDWordField(RSRC, 0x011a, E0LN)
Store(One, E0RW)
If(LEqual(And(PAM5, 0x3, ), 0x1)) {
Store(Zero, E0RW)
}
Store(Zero, E0LN)
If(LNot(And(PAM5, 0x3, ))) {
Store(0x4000, E0LN)
}
CreateBitField(RSRC, 0x0920, E4RW)
CreateDWordField(RSRC, 0x0129, E4MN)
CreateDWordField(RSRC, 0x012d, E4MX)
CreateDWordField(RSRC, 0x0135, E4LN)
Store(One, E4RW)
If(LEqual(And(PAM5, 0x30, ), 0x10)) {
Store(Zero, E4RW)
}
Store(Zero, E4LN)
If(LNot(And(PAM5, 0x30, ))) {
Store(0x4000, E4LN)
}
CreateBitField(RSRC, 0x09f8, E8RW)
CreateDWordField(RSRC, 0x0144, E8MN)
CreateDWordField(RSRC, 0x0148, E8MX)
CreateDWordField(RSRC, 0x0150, E8LN)
Store(One, E8RW)
If(LEqual(And(PAM6, 0x3, ), 0x1)) {
Store(Zero, E8RW)
}
Store(Zero, E8LN)
If(LNot(And(PAM6, 0x3, ))) {
Store(0x4000, E8LN)
}
CreateBitField(RSRC, 0x0ad0, ECRW)
CreateDWordField(RSRC, 0x015f, ECMN)
CreateDWordField(RSRC, 0x0163, ECMX)
CreateDWordField(RSRC, 0x016b, ECLN)
Store(One, ECRW)
If(LEqual(And(PAM6, 0x30, ), 0x10)) {
Store(Zero, ECRW)
}
Store(Zero, ECLN)
If(LNot(And(PAM6, 0x30, ))) {
Store(0x4000, ECLN)
}
Return(RSRC)
}
Device(USB0) {
Name(_ADR, 0x00070002)
OperationRegion(CFG2, PCI_Config, 0x0, 0x0100)
Field(CFG2, DWordAcc, NoLock, Preserve) {
Offset(0x20),
USBB, 16
}
Method(_STA) {
And(USBB, 0xffe0, Local0)
If(LEqual(Local0, 0x0)) {
Return(0x0)
}
Else {
Return(0xf)
}
}
Name(_PSC, 0x0)
Method(_PS0) {
If(LEqual(SCMP, \_OS_)) {
"Microsoft Windows NT"
Zero
Noop
}
Else {
If(LEqual(_PSC, 0x3)) {
PHS_
0xc3
Store(0x0, _PSC)
}
}
}
Method(_PS3) {
If(LEqual(SCMP, \_OS_)) {
"Microsoft Windows NT"
Zero
Noop
}
Else {
If(LEqual(_PSC, 0x0)) {
PHS_
0xc2
Store(0x3, _PSC)
}
}
}
Method(_PRW) {
If(LEqual(SCMP, \_OS_)) {
"Microsoft Windows NT"
Zero
Return(Package(0x2) {
0x8,
0x1,
})
}
Else {
If(LNot(LEqual(SCMP, \_OS_))) {
"Microsoft Windows"
Zero
Return(Package(0x2) {
0x8,
0x1,
})
}
Else {
Return(Package(0x2) {
0x8,
0x4,
})
}
}
}
}
Device(PWR_) {
Name(_ADR, 0x00070003)
OperationRegion(PCI_, PCI_Config, 0x50, 0x28)
Field(PCI_, DWordAcc, NoLock, Preserve) {
Offset(0x1),
, 4,
FDCM, 1,
, 1,
U1M_, 1,
Offset(0x2),
U2M_, 1,
, 1,
LPTM, 1,
Offset(0xc),
MDIE, 1,
MDIA, 2,
SBE_, 1,
GME_, 1,
SBA_, 2,
MSSE, 1,
MSSA, 2,
Offset(0xf),
, 1,
AUDM, 1,
, 2,
KBCM, 1,
G12M, 1,
G13M, 1,
LPTE, 1,
G09A, 16,
G09L, 4,
, 1,
G09M, 1,
G09E, 1,
Offset(0x13),
, 1,
LPTA, 2,
, 1,
FDCA, 1,
FDCE, 1,
KBCE, 1,
GMM_, 1,
G10A, 16,
G10L, 4,
, 1,
G10M, 1,
G10E, 1,
G10C, 1,
U1A_, 3,
U1E_, 1,
U2A_, 3,
U2E_, 1,
G12A, 16,
G12L, 4,
G12E, 1,
Offset(0x20),
G13A, 16,
G13L, 4,
G13E, 1
}
}
Device(IDE_) {
Name(_ADR, 0x00070001)
OperationRegion(PCI_, PCI_Config, 0x40, 0x10)
Field(PCI_, DWordAcc, NoLock, Preserve) {
Offset(0x3),
, 7,
SIDE, 1
}
Field(PCI_, DWordAcc, NoLock, Preserve) {
R40_, 32,
Offset(0x8),
R48_, 32
}
Device(PRIM) {
Name(_ADR, 0x0)
Name(_PSC, 0x0)
Name(IDET, 0x0)
Name(UDMA, 0x0)
Method(_STA) {
Return(0xf)
}
Device(MAST) {
Name(_ADR, 0x0)
}
Method(_PS0) {
If(LEqual(_PSC, 0x3)) {
Store(IDET, R40_)
Store(UDMA, R48_)
PHS_
0xcd
}
Store(0x0, _PSC)
}
Method(_PS3) {
Store(R40_, IDET)
Store(R48_, UDMA)
Store(0x3, _PSC)
}
}
Device(SECN) {
Name(_ADR, 0x1)
Name(_PSC, 0x0)
Name(IDET, 0x0)
Name(UDMA, 0x0)
Method(_STA) {
Return(0xf)
}
Device(MAST) {
Name(_ADR, 0x0)
}
Method(_PS0) {
Store(0x0, _PSC)
}
Method(_PS3) {
Store(0x3, _PSC)
}
}
}
Device(SD94) {
Name(_ADR, 0x00080000)
Name(_STA, 0xf)
OperationRegion(SPCI, PCI_Config, 0x0, 0x0100)
Field(SPCI, DWordAcc, NoLock, Preserve) {
Offset(0xc),
CALS, 8,
LATI, 8,
Offset(0xe0),
PWST, 8
}
Name(_PSC, 0x0)
Method(_PS0) {
If(LEqual(SCMP, \_OS_)) {
"Microsoft Windows NT"
Zero
Noop
}
Else {
Store(0x0, PWST)
Sleep(0x1)
Store(0x8, CALS)
Store(0x40, LATI)
}
PHS_
0xd6
Store(0x0, _PSC)
}
Method(_PS3) {
Store(0x3, _PSC)
}
}
Device(CRD0) {
Name(_ADR, 0x000c0000)
Name(_PRW, Package(0x2) {
0xa,
0x3,
})
OperationRegion(CCRD, PCI_Config, 0x0, 0xe4)
Field(CCRD, DWordAcc, NoLock, Preserve) {
Offset(0x4),
CD04, 32,
Offset(0x3e),
CD3E, 32,
Offset(0x44),
CD44, 32,
Offset(0xe0),
CDE0, 8,
CDE1, 8
}
OperationRegion(EXCA, SystemIO, 0x03e0, 0x2)
Field(EXCA, ByteAcc, NoLock, Preserve) {
INDX, 8,
DATA, 8
}
IndexField(INDX, DATA, ByteAcc, NoLock, Preserve) {
Offset(0x3),
, 7,
ERIB, 1
}
Method(_INI) {
If(LEqual(SCMP, \_OS_)) {
"Microsoft Windows NT"
Zero
Store(Zero, CDE1)
}
Else {
Store(Zero, CDE0)
Store(Zero, CD04)
Store(Zero, CD3E)
Store(One, CD44)
}
}
Name(_PSC, 0x0)
Method(PSX_, 1) {
Store(0x0, CDE0)
Store(0x03e0, CD44)
Store(One, ERIB)
Store(0x0, CD44)
Store(Arg0, CDE0)
Store(Arg0, _PSC)
}
Method(_PS0) {
Store(0x0, _PSC)
}
Method(_PS1) {
PSX_
0x1
Or(CDE1, 0x1, CDE1)
}
Method(_PS2) {
PSX_
0x2
Or(CDE1, 0x1, CDE1)
}
Method(_PS3) {
PSX_
0x3
Or(CDE1, 0x1, CDE1)
}
}
Device(MODE) {
Name(_ADR, 0x000a0000)
Name(_STA, 0xf)
Method(_PRW) {
If(LEqual(SCMP, \_OS_)) {
"Microsoft Windows"
Zero
Return(Package(0x2) {
0xa,
0x4,
})
}
Else {
If(LNot(LEqual(SCMP, \_OS_))) {
"Microsoft Windows NT"
Zero
Return(Package(0x2) {
0xa,
0x3,
})
}
Else {
Return(Package(0x2) {
0xa,
0x3,
})
}
}
}
Method(_PSW, 1) {
If(LEqual(\_SB_.PCI0.ISA_.EC0_.ECOK, 0x0)) {
PHSB
0xdd
Arg0
}
Else {
Store(Arg0, \_SB_.PCI0.ISA_.EC0_.SMDM)
}
}
}
Device(ETHR) {
Name(_ADR, 0x000b0000)
Name(_STA, 0xf)
Name(_PSC, 0x0)
Method(_PRW) {
If(LEqual(SCMP, \_OS_)) {
"Microsoft Windows"
Zero
Return(Package(0x2) {
0xa,
0x4,
})
}
Else {
Return(Package(0x2) {
0xa,
0x3,
})
}
}
OperationRegion(EPCI, PCI_Config, 0x0, 0x0100)
Field(EPCI, DWordAcc, NoLock, Preserve) {
Offset(0xe0),
ETE0, 8,
ETE1, 8
}
Method(_PS0) {
Store(0x0, ETE0)
PHS_
0xe7
If(LEqual(SCMP, \_OS_)) {
"Microsoft Windows NT"
Zero
And(ETE1, 0xfe, ETE1)
}
Else {
}
Store(0x0, _PSC)
}
Method(_PS3) {
Store(0x3, _PSC)
}
}
Device(MSCL) {
Name(_ADR, 0x000d0000)
Name(_STA, 0xf)
Name(_PSC, 0x0)
OperationRegion(MSCG, PCI_Config, 0x0, 0x0100)
Field(MSCG, DWordAcc, NoLock, Preserve) {
Offset(0x48),
MS48, 24,
Offset(0xe0),
MSE0, 8,
MSE1, 8
}
Method(_PS0) {
Store(0x0, MSE0)
Store(0x00050100, MS48)
And(MSE1, 0x80, Local0)
If(LEqual(Local0, 0x80)) {
Or(MSE1, 0x80, MSE1)
}
Store(0x0, _PSC)
}
Method(_PS3) {
Store(0x3, _PSC)
}
}
Device(ISA_) {
Name(_ADR, 0x00070000)
OperationRegion(PIRX, PCI_Config, 0x60, 0x4)
Field(PIRX, ByteAcc, NoLock, Preserve) {
PIRA, 8,
PIRB, 8,
PIRC, 8,
PIRD, 8
}
Device(MOTH) {
Name(_HID, 0x020cd041)
Name(_CRS, Buffer(0x3a) {0x47, 0x1, 0x80, 0x0, 0x80, 0x0, 0x1, 0x1, 0x47, 0x1, 0xb2, 0x0, 0xb2, 0x0, 0x1, 0x2, 0x47, 0x1, 0x98, 0x3, 0x98, 0x3, 0x1, 0x2, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x1, 0x2, 0x47, 0x1, 0x40, 0x10, 0x40, 0x10, 0x1, 0x10, 0x47, 0x1, 0x0, 0x80, 0x0, 0x80, 0x1, 0x50, 0x47, 0x1, 0x72, 0x0, 0x72, 0x0, 0x1, 0x2, 0x79, 0x0 })
}
Device(MEM_) {
Name(_HID, 0x010cd041)
Name(MSRC, Buffer(0x4a) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0xc0, 0xd, 0x0, 0x0, 0x40, 0x0, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x2, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff, 0x0, 0x0, 0x8, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0xf6, 0xf7, 0xff, 0x0, 0xa, 0x0, 0x0, 0x79, 0x0 })
Method(_CRS) {
CreateDWordField(MSRC, 0x8, MEMS)
If(LNot(MEMS)) {
Store(PHS_, 0xc0)
MEMS
}
Return(MSRC)
}
Method(_STA) {
Return(0xf)
}
}
Device(DMAC) {
Name(_HID, 0x0002d041)
Name(_CRS, Buffer(0x1d) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x47, 0x1, 0x81, 0x0, 0x81, 0x0, 0x1, 0xf, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0, 0x1, 0x20, 0x2a, 0x10, 0x0, 0x79, 0x0 })
Method(_STA) {
Return(0xf)
}
}
Device(RTC_) {
Name(_HID, 0x000bd041)
Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x1, 0x2, 0x22, 0x0, 0x1, 0x79, 0x0 })
Method(_STA) {
Return(0xf)
}
}
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 })
Method(_STA) {
Return(0xf)
}
}
Device(FPU_) {
Name(_HID, 0x040cd041)
Name(_CRS, Buffer(0xd) {0x47, 0x1, 0xf0, 0x0, 0xf0, 0x0, 0x1, 0x10, 0x22, 0x0, 0x20, 0x79, 0x0 })
Method(_STA) {
Return(0xf)
}
}
Device(TMR_) {
Name(_HID, 0x0001d041)
Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x1, 0x4, 0x22, 0x1, 0x0, 0x79, 0x0 })
Method(_STA) {
Return(0xf)
}
}
Device(SPKR) {
Name(_HID, 0x0008d041)
Name(_CRS, Buffer(0xa) {0x47, 0x1, 0x61, 0x0, 0x61, 0x0, 0x1, 0x1, 0x79, 0x0 })
Method(_STA) {
Return(0xf)
}
}
Device(KBC_) {
Name(_HID, 0x0303d041)
Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x60, 0x0, 0x60, 0x0, 0x1, 0x1, 0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x22, 0x2, 0x0, 0x79, 0x0 })
Method(_STA) {
Return(0xf)
}
}
Device(MOUE) {
Name(_HID, 0x130fd041)
Name(_CRS, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
}
Device(EC0_) {
Name(_HID, 0x090cd041)
Name(_CRS, Buffer(0x12) {0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x1, 0x1, 0x47, 0x1, 0x66, 0x0, 0x66, 0x0, 0x1, 0x1, 0x79, 0x0 })
Name(_GPE, 0x9)
Name(ECOK, 0x0)
Method(_REG, 2) {
If(LEqual(Arg0, 0x3)) {
Store(Arg1, ECOK)
}
}
OperationRegion(ECR_, EmbeddedControl, 0x0, 0xff)
Field(ECR_, AnyAcc, Lock, Preserve) {
Offset(0x80),
MPBP, 1,
MPBD, 1,
DOKD, 1,
DFBP, 1,
Offset(0x81),
BT1A, 1,
BT2A, 1,
ACAT, 1,
Offset(0x82),
PWRB, 1,
JOGB, 1,
LIDS, 1,
Offset(0x83),
BT1P, 1,
BT2P, 1,
Offset(0x84),
B1ST, 8,
B2ST, 8,
Offset(0x90),
MASK, 8,
BT1S, 1,
BT2S, 1,
Offset(0x92),
BT1W, 1,
BT2W, 1,
Offset(0x93),
FAN0, 8,
CB0S, 1,
CB1S, 1,
Offset(0x95),
PHYO, 1,
Offset(0x96),
BRIT, 8,
CONT, 8,
SNDU, 1,
SNDD, 1,
Offset(0x99),
SMDM, 1,
Offset(0x9a),
Offset(0xa0),
B1RC, 16,
B1AB, 16,
B1RT, 16,
B1VO, 16,
B2RC, 16,
B2AB, 16,
B2RT, 16,
B2VO, 16,
B1DC, 16,
B1LF, 16,
B1DV, 16,
B1DL, 16,
B2DC, 16,
B2LF, 16,
B2DV, 16,
B2DL, 16,
A1TP, 16,
A1AT, 16,
A1PT, 16,
A1CT, 16,
A2TP, 16,
A2AT, 16,
A2PT, 16,
A2CT, 16
}
Method(_Q50) {
PHS_
0xe0
Notify(ACAD, 0x80)
}
Method(_Q51) {
If(BT1A) {
Notify(BAT1, 0x0)
}
Else {
Notify(BAT1, 0x1)
}
Notify(BAT1, 0x80)
}
Method(_Q52) {
Store("_Q52:Change Battery 2 Event", Debug)
}
Method(_Q53) {
Store("_Q53:Battery Selection", Debug)
}
Method(_Q58) {
Store("_Q58:ATF temperature trip point changd", Debug)
Notify(\_TZ_.ATF0, 0x81)
}
Method(_Q5E) {
Store("_Q5E:RI1 occurred", Debug)
}
Method(_Q5F) {
Store("_Q5F:ATF temperature reaches trip point", Debug)
Notify(\_TZ_.ATF0, 0x80)
}
Method(_Q60) {
Notify(\_SB_.PWRB, 0x80)
}
Device(BAT1) {
Name(_HID, 0x0a0cd041)
Name(_UID, 0x1)
Name(_PCL, Package(0x1) {
\_SB_,
})
Name(BATI, Package(0xd) {
0x0,
0x9650,
0x9650,
0x0,
0x39d0,
0x0,
0x78,
0x0,
0xa,
"",
"",
"LION",
"Sony Corp.",
})
Name(BATS, Package(0x4) {
0x2,
0xffffffff,
0x0d7a,
0x3840,
})
Method(_STA) {
And(PHSD, 0xdb, 0x80)
0x0100
Local1
If(Local1) {
Store(0x1f, Local0)
}
Else {
Store(0xf, Local0)
}
Return(Local0)
}
Method(_BIF) {
Store(PHSD, 0xdb)
0xb0
Local1
Multiply(Local1, 0xa, Index(BATI, 0x1, ))
Store(PHSD, 0xdb)
0xb2
Local1
Multiply(Local1, 0xa, Index(BATI, 0x2, ))
Store(PHSD, 0xdb)
0xb6
Index(BATI, 0x4, )
Return(BATI)
}
Method(_BST) {
Store(And(PHSD, 0xdb, 0x84), 0xff)
Local0
Index(BATS, 0x0, )
Store(PHSD, 0xdb)
0xa4
Local1
If(LLess(Local1, 0x8000)) {
If(Local1) {
Store(0xffffffff, Index(BATS, 0x1, ))
}
Else {
Store(Zero, Index(BATS, 0x1, ))
}
}
Else {
XOr(Local1, 0xffff, Local1)
Increment(Local1)
Multiply(Local1, 0xa, Index(BATS, 0x1, ))
}
Multiply(PHSD, 0xdb, 0xa2)
0xa
Index(BATS, 0x2, )
Store(PHSD, 0xdb)
0xa6
Index(BATS, 0x3, )
Return(BATS)
}
}
Device(ACAD) {
Name(_HID, "ACPI0003")
Name(_PCL, Package(0x1) {
\_SB_,
})
Method(_PSR) {
And(PHSD, 0xdb, 0x80)
0x0400
Local1
If(Local1) {
Return(One)
}
Else {
Return(Zero)
}
}
Method(_STA) {
Return(0xf)
}
}
}
Device(SPIC) {
Name(_HID, 0x0160d94d)
Name(RSRC, Buffer(0x15) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x22, 0x0, 0x0, 0x79, 0x0 })
Name(SSRC, Buffer(0x15) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x22, 0x0, 0x0, 0x79, 0x0 })
Method(_CRS) {
CreateWordField(RSRC, 0x2, IOA1)
CreateWordField(RSRC, 0x4, IOA2)
CreateWordField(RSRC, 0xa, IOB1)
CreateWordField(RSRC, 0xc, IOB2)
CreateWordField(RSRC, 0x11, IRQV)
Store(\_SB_.PCI0.PWR_.G10A, IOA1)
Store(\_SB_.PCI0.PWR_.G10A, IOA2)
Or(\_SB_.PCI0.PWR_.G10A, \_SB_.PCI0.PWR_.G10L, IOB1)
Or(\_SB_.PCI0.PWR_.G10A, \_SB_.PCI0.PWR_.G10L, IOB2)
If(GO22) {
If(GO23) {
Store(Zero, IRQV)
}
Else {
ShiftLeft(0x1, 0xa, IRQV)
}
}
Else {
If(GO23) {
ShiftLeft(0x1, 0xb, IRQV)
}
Else {
ShiftLeft(0x1, 0x5, IRQV)
}
}
Return(RSRC)
}
Method(_SRS, 1) {
CreateWordField(Arg0, 0x2, IOA1)
CreateWordField(Arg0, 0xa, IOB1)
CreateWordField(Arg0, 0x11, IRQV)
Store(IOA1, \_SB_.PCI0.PWR_.G10A)
XOr(IOA1, IOB1, \_SB_.PCI0.PWR_.G10L)
FindSetRightBit(IRQV, Local0)
Decrement(Local0)
If(LEqual(Local0, Zero)) {
Store(0x1, GO22)
Store(0x1, GO23)
}
If(LEqual(Local0, 0x5)) {
Store(0x0, GO22)
Store(0x0, GO23)
}
If(LEqual(Local0, 0xa)) {
Store(0x1, GO22)
Store(0x0, GO23)
}
If(LEqual(Local0, 0xb)) {
Store(0x0, GO22)
Store(0x1, GO23)
}
Store(0x0, \_SB_.PCI0.PWR_.G10M)
Store(0x1, \_SB_.PCI0.PWR_.G10E)
Store(0x1, \_SB_.PCI0.PWR_.G10C)
}
Name(_PRS, Buffer(0x4a) {0x30, 0x47, 0x1, 0x80, 0x10, 0x80, 0x10, 0x1, 0x1, 0x47, 0x1, 0x84, 0x10, 0x84, 0x10, 0x1, 0x1, 0x30, 0x47, 0x1, 0x90, 0x10, 0x90, 0x10, 0x1, 0x1, 0x47, 0x1, 0x94, 0x10, 0x94, 0x10, 0x1, 0x1, 0x30, 0x47, 0x1, 0xa0, 0x10, 0xa0, 0x10, 0x1, 0x1, 0x47, 0x1, 0xa4, 0x10, 0xa4, 0x10, 0x1, 0x1, 0x30, 0x47, 0x1, 0xb0, 0x10, 0xb0, 0x10, 0x1, 0x1, 0x47, 0x1, 0xb4, 0x10, 0xb4, 0x10, 0x1, 0x1, 0x38, 0x22, 0x20, 0xc, 0x79, 0x0 })
Method(_DIS) {
Store(0x0, \_SB_.PCI0.PWR_.G10E)
Store(0x0, \_SB_.PCI0.PWR_.G10C)
Store(0x1, GO22)
Store(0x1, GO23)
}
Method(_STA) {
If(LAnd(GO22, GO23)) {
Return(0xd)
}
Else {
Return(0xf)
}
}
}
Mutex(SLOK, 0)
Device(COMA) {
Name(_HID, 0x0105d041)
Name(MCD_, 0xe)
Method(_CRS) {
If(\_SB_.PCI0.ISA_.COMA._STA) {
Acquire(SLOK, 0xffff)
Store(PSCS, 0xe)
Local0
Release(SLOK)
Return(Local0)
}
Else {
Return(Buffer(0x2) {0x79, 0x0 })
}
}
Method(_SRS, 1) {
Acquire(SLOK, 0xffff)
PSSS
0xe
Arg0
Release(SLOK)
}
Method(_PRS) {
Acquire(SLOK, 0xffff)
Store(PSPS, 0xe)
Local0
Release(SLOK)
Return(Local0)
}
Method(_DIS) {
Acquire(SLOK, 0xffff)
PSDI
0xe
Release(SLOK)
}
Method(_STA) {
Acquire(SLOK, 0xffff)
Store(PSST, 0xe)
Local0
Release(SLOK)
Return(Local0)
}
Name(_PSC, 0x0)
Method(_PS0) {
Store(One, GO13)
Stall(0xc8)
Store(0x0, _PSC)
}
Method(_PS3) {
Store(Zero, GO13)
Store(0x3, _PSC)
}
Name(_PRW, Package(0x2) {
0xa,
0x3,
})
}
Device(FIR_) {
Name(_HID, 0x0170d94d)
Name(_CID, 0x0160633a)
Name(MCD_, 0xf)
Method(_CRS) {
If(\_SB_.PCI0.ISA_.FIR_._STA) {
Acquire(SLOK, 0xffff)
Store(PSCS, 0xf)
Local0
Release(SLOK)
Return(Local0)
}
Else {
Return(Buffer(0x2) {0x79, 0x0 })
}
}
Method(B_SR, 1) {
Acquire(SLOK, 0xffff)
PSSS
0xf
Arg0
Release(SLOK)
}
Method(B_PR) {
Acquire(SLOK, 0xffff)
Store(PSPS, 0xf)
Local0
Release(SLOK)
Return(Local0)
}
Method(B_DI) {
Acquire(SLOK, 0xffff)
PSDI
0xf
Release(SLOK)
}
Method(_STA) {
Acquire(SLOK, 0xffff)
Store(PSST, 0xf)
Local0
Release(SLOK)
Return(Local0)
}
Name(_PSC, 0x0)
}
Device(LPTA) {
Name(_HID, 0x0004d041)
Name(_UID, 0x1)
Name(MCD_, 0x10)
Name(CRSB, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x22, 0x0, 0x0, 0x79, 0x0 })
Method(_CRS) {
If(\_SB_.PCI0.ISA_.LPTA._STA) {
CreateWordField(CRSB, 0x2, IO1B)
CreateWordField(CRSB, 0x4, IO2B)
CreateWordField(CRSB, 0x6, IO3B)
CreateWordField(CRSB, 0x9, IRQB)
Acquire(SLOK, 0xffff)
ShiftRight(READ, 0x1b, 0xf0)
0x0
0x4
Local0
Store(Zero, IRQB)
If(Local0) {
ShiftLeft(0x1, Local0, IRQB)
}
Or(ShiftLeft(And(R430, 0xfc, ), 0x8, ), ShiftLeft(R420, 0x2, ), IO1B)
Store(IO1B, IO2B)
If(LEqual(IO1B, 0x03bc)) {
Store(0x0401, IO3B)
}
Store(CRSB, Local1)
Release(SLOK)
Return(Local1)
}
Else {
Return(Buffer(0x2) {0x79, 0x0 })
}
}
Method(B_SR, 1) {
Name(XRFI, Package(0x10) {
0x0,
0x0,
0x0,
0x0,
0x0,
0x7,
0x0,
0x1,
0x0,
0x2,
0x3,
0x4,
0x0,
0x0,
0x5,
0x6,
})
CreateWordField(Arg0, 0x2, IO1A)
CreateWordField(Arg0, 0x9, IRQB)
Acquire(SLOK, 0xffff)
WRIT
0x0
0xfe
0x0
0x0
WRIT
0x42
0x0
ShiftRight(IO1A, 0x2, )
0x0
WRIT
0x43
0x3
ShiftRight(IO1A, 0x8, )
0x0
FindSetRightBit(IRQB, Local0)
If(Local0) {
Decrement(Local0)
WRIT
0x1b
0xf
ShiftLeft(Local0, 0x4, )
0x0
WRIT
0x1b
0xf8
DerefOf(Index(XRFI, Local0, ))
0x0
}
Else {
WRIT
0x1b
0x8
0x0
0x0
}
WRIT
0x0
0xfe
0x1
0x0
Release(SLOK)
}
Method(B_PR) {
Acquire(SLOK, 0xffff)
Store(PSPS, 0x10)
Local0
Release(SLOK)
Return(Local0)
}
Method(B_DI) {
Acquire(SLOK, 0xffff)
PSDI
0x10
Release(SLOK)
}
Method(_STA) {
Acquire(SLOK, 0xffff)
Store(PSST, 0x10)
Local0
Release(SLOK)
Return(Local0)
}
Name(_PSC, 0x0)
}
Device(LPTB) {
Name(_HID, 0x0004d041)
Name(_UID, 0x2)
Name(MCD_, 0x11)
Name(CRSB, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x22, 0x0, 0x0, 0x79, 0x0 })
Method(_CRS) {
If(\_SB_.PCI0.ISA_.LPTB._STA) {
Acquire(SLOK, 0xffff)
CreateWordField(CRSB, 0x2, IO1B)
CreateWordField(CRSB, 0x4, IO2B)
CreateWordField(CRSB, 0x6, IO3B)
CreateWordField(CRSB, 0x9, IRQB)
Or(ShiftLeft(And(R430, 0xfc, ), 0x8, ), ShiftLeft(R420, 0x2, ), IO1B)
Store(IO1B, IO2B)
If(LEqual(IO1B, 0x03bc)) {
Store(0x0401, IO3B)
}
Store(Zero, IRQB)
ShiftRight(READ, 0x1b, 0xf0)
0x0
0x4
Local0
If(Local0) {
ShiftLeft(0x1, Local0, IRQB)
}
Store(CRSB, Local1)
Release(SLOK)
Return(Local1)
}
Else {
Return(Buffer(0x2) {0x79, 0x0 })
}
}
Method(B_SR, 1) {
Name(XRFI, Package(0x10) {
0x0,
0x0,
0x0,
0x0,
0x0,
0x7,
0x0,
0x1,
0x0,
0x2,
0x3,
0x4,
0x0,
0x0,
0x5,
0x6,
})
CreateWordField(Arg0, 0x2, IO1A)
CreateWordField(Arg0, 0x9, IRQB)
Acquire(SLOK, 0xffff)
WRIT
0x0
0xfe
0x0
0x0
WRIT
0x42
0x0
ShiftRight(IO1A, 0x2, )
0x0
WRIT
0x43
0x3
ShiftRight(IO1A, 0x8, )
0x0
FindSetRightBit(IRQB, Local0)
If(Local0) {
Decrement(Local0)
WRIT
0x1b
0xf
ShiftLeft(Local0, 0x4, )
0x0
WRIT
0x1b
0xf8
DerefOf(Index(XRFI, Local0, ))
0x0
}
Else {
WRIT
0x1b
0x8
0x0
0x0
}
WRIT
0x0
0xfe
0x1
0x0
Release(SLOK)
}
Method(B_PR) {
Acquire(SLOK, 0xffff)
Store(PSPS, 0x11)
Local0
Release(SLOK)
Return(Local0)
}
Method(B_DI) {
Acquire(SLOK, 0xffff)
PSDI
0x11
Release(SLOK)
}
Method(_STA) {
Acquire(SLOK, 0xffff)
Store(PSST, 0x11)
Local0
Release(SLOK)
Return(Local0)
}
Name(_PSC, 0x0)
}
Device(ECP_) {
Name(_HID, 0x0104d041)
Name(MCD_, 0x12)
Name(CRSA, Buffer(0x18) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x22, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x79, 0x0 })
Method(_CRS) {
If(\_SB_.PCI0.ISA_.ECP_._STA) {
CreateWordField(CRSA, 0x2, IO1A)
CreateWordField(CRSA, 0x4, IO2A)
CreateWordField(CRSA, 0x6, IO3A)
CreateWordField(CRSA, 0xa, IO4A)
CreateWordField(CRSA, 0xc, IO5A)
CreateWordField(CRSA, 0xe, IO6A)
CreateWordField(CRSA, 0x11, IRQA)
CreateByteField(CRSA, 0x14, DMAA)
Acquire(SLOK, 0xffff)
Or(ShiftLeft(And(R430, 0xfc, ), 0x8, ), ShiftLeft(R420, 0x2, ), IO1A)
Store(IO1A, IO2A)
Add(IO1A, 0x0400, IO4A)
Add(IO1A, 0x0400, IO5A)
If(LEqual(IO1A, 0x03bc)) {
Store(0x0401, IO3A)
Store(0x0301, IO6A)
}
Else {
Store(0x0301, IO6A)
}
Store(Zero, IRQA)
ShiftRight(READ, 0x1b, 0xf0)
0x0
0x4
Local0
If(Local0) {
ShiftLeft(0x1, Local0, IRQA)
}
ShiftRight(READ, 0x18, 0x6)
0x0
0x1
DMAA
ShiftLeft(0x1, DMAA, DMAA)
Store(CRSA, Local1)
Release(SLOK)
Return(Local1)
}
Else {
Return(Buffer(0x2) {0x79, 0x0 })
}
}
Method(_SRS, 1) {
Name(XRFI, Package(0x10) {
0x0,
0x0,
0x0,
0x0,
0x0,
0x7,
0x0,
0x1,
0x0,
0x2,
0x3,
0x4,
0x0,
0x0,
0x5,
0x6,
})
CreateWordField(Arg0, 0x2, IO1A)
CreateWordField(Arg0, 0x11, IRQA)
CreateByteField(Arg0, 0x14, DMAA)
Acquire(SLOK, 0xffff)
WRIT
0x0
0xfe
0x0
0x0
WRIT
0x42
0x0
ShiftRight(IO1A, 0x2, )
0x0
WRIT
0x43
0x3
ShiftRight(IO1A, 0x8, )
0x0
FindSetRightBit(IRQA, Local0)
If(Local0) {
Decrement(Local0)
WRIT
0x1b
0xf
ShiftLeft(Local0, 0x4, )
0x0
WRIT
0x1b
0xf8
DerefOf(Index(XRFI, Local0, ))
0x0
}
Else {
WRIT
0x1b
0x8
0x0
0x0
}
FindSetRightBit(DMAA, Local0)
WRIT
0x18
0xc7
ShiftLeft(Local0, 0x3, )
0x0
WRIT
0x0
0xfe
0x1
0x0
PHS_
0xda
Release(SLOK)
}
Method(_PRS) {
Acquire(SLOK, 0xffff)
Store(PSPS, 0x12)
Local0
Release(SLOK)
Return(Local0)
}
Method(_DIS) {
Acquire(SLOK, 0xffff)
PSDI
0x12
Release(SLOK)
}
Method(_STA) {
Acquire(SLOK, 0xffff)
Store(PSST, 0x12)
Local0
Release(SLOK)
Return(Local0)
}
Name(_PSC, 0x0)
}
Device(EPP_) {
Name(_HID, 0x0004d041)
Name(_UID, 0x3)
Name(MCD_, 0x13)
Name(CRSB, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x22, 0x0, 0x0, 0x79, 0x0 })
Method(_CRS) {
If(\_SB_.PCI0.ISA_.EPP_._STA) {
CreateWordField(CRSB, 0x2, IO1B)
CreateWordField(CRSB, 0x4, IO2B)
CreateWordField(CRSB, 0x6, IO3B)
CreateWordField(CRSB, 0x9, IRQB)
Acquire(SLOK, 0xffff)
Or(ShiftLeft(And(R430, 0xfc, ), 0x8, ), ShiftLeft(R420, 0x2, ), IO1B)
Store(IO1B, IO2B)
Store(Zero, IRQB)
ShiftRight(READ, 0x1b, 0xf0)
0x0
0x4
Local0
If(Local0) {
ShiftLeft(0x1, Local0, IRQB)
}
Store(CRSB, Local1)
Release(SLOK)
Return(Local1)
}
Else {
Return(Buffer(0x2) {0x79, 0x0 })
}
}
Method(B_SR, 1) {
Name(XRFI, Package(0x10) {
0x0,
0x0,
0x0,
0x0,
0x0,
0x7,
0x0,
0x1,
0x0,
0x2,
0x3,
0x4,
0x0,
0x0,
0x5,
0x6,
})
CreateWordField(Arg0, 0x2, IO1A)
CreateWordField(Arg0, 0x9, IRQB)
Acquire(SLOK, 0xffff)
WRIT
0x0
0xfe
0x0
0x0
WRIT
0x42
0x0
ShiftRight(IO1A, 0x2, )
0x0
WRIT
0x43
0x3
ShiftRight(IO1A, 0x8, )
0x0
FindSetRightBit(IRQB, Local0)
If(Local0) {
Decrement(Local0)
WRIT
0x1b
0xf
ShiftLeft(Local0, 0x4, )
0x0
WRIT
0x1b
0xf8
DerefOf(Index(XRFI, Local0, ))
0x0
}
Else {
WRIT
0x1b
0x8
0x0
0x0
}
WRIT
0x0
0xfe
0x1
0x0
WRIT
0x4
0xfa
0x1
0x0
Release(SLOK)
}
Method(B_PR) {
Acquire(SLOK, 0xffff)
Store(PSPS, 0x13)
Local0
Release(SLOK)
Return(Local0)
}
Method(B_DI) {
Acquire(SLOK, 0xffff)
PSDI
0x13
Release(SLOK)
}
Method(_STA) {
Acquire(SLOK, 0xffff)
Store(PSST, 0x13)
Local0
Release(SLOK)
Return(Local0)
}
Name(_PSC, 0x0)
}
OperationRegion(SIOR, SystemIO, 0x0398, 0x2)
Field(SIOR, ByteAcc, NoLock, Preserve) {
INDX, 8,
DATA, 8
}
IndexField(INDX, DATA, ByteAcc, NoLock, Preserve) {
R000, 8,
Offset(0x2),
R020, 8,
Offset(0x4),
R040, 8,
Offset(0x42),
R420, 8,
R430, 8,
R440, 8,
R450, 8,
R460, 8,
R470, 8,
R480, 8,
R490, 8,
Offset(0x4f),
R4F0, 8
}
Method(READ, 3) {
If(LNot(Arg2)) {
Store(Arg0, INDX)
Return(And(DATA, Arg1, ))
}
}
Method(WRIT, 4) {
If(LNot(Arg3)) {
Store(Arg0, INDX)
Or(And(DATA, Arg1, ), Arg2, Local0)
Store(Arg0, INDX)
Store(Local0, DATA)
Store(Local0, DATA)
}
Else {
}
}
Device(SNC_) {
Name(_HID, 0x0150d94d)
Method(GPID) {
Return(PHSB)
0xc1
0x0
}
Method(GBRT) {
If(LEqual(\_SB_.PCI0.ISA_.EC0_.ECOK, 0x0)) {
Store(PHSD, 0xdb)
0x96
Local0
}
Else {
Store(\_SB_.PCI0.ISA_.EC0_.BRIT, Local0)
}
Return(PHSB)
0xd2
Local0
}
Method(SBRT, 1) {
Store(PHSB, 0xd0)
Arg0
Local0
If(LEqual(\_SB_.PCI0.ISA_.EC0_.ECOK, 0x0)) {
PHSB
0xde
Local0
}
Else {
Store(Local0, \_SB_.PCI0.ISA_.EC0_.BRIT)
}
Return(Zero)
}
Method(GPBR) {
Return(PHSB)
0xc6
0x0
}
Method(SPBR, 1) {
PHSB
0xc7
Arg0
Return(Zero)
}
Method(GCTR) {
If(LEqual(\_SB_.PCI0.ISA_.EC0_.ECOK, 0x0)) {
Store(PHSD, 0xdb)
0x97
Local0
}
Else {
Store(\_SB_.PCI0.ISA_.EC0_.CONT, Local0)
}
Return(PHSB)
0xd3
Local0
}
Method(SCTR, 1) {
Store(PHSB, 0xd1)
Arg0
Local0
If(LEqual(\_SB_.PCI0.ISA_.EC0_.ECOK, 0x0)) {
PHSB
0xdf
Local0
}
Else {
Store(Local0, \_SB_.PCI0.ISA_.EC0_.CONT)
}
Return(Zero)
}
Method(GPCR) {
Return(PHSB)
0xc8
0x0
}
Method(SPCR, 1) {
PHSB
0xc9
Arg0
Return(Zero)
}
Method(SLVT) {
Return(PHSB)
0xca
0x0
}
Method(SLTT) {
Return(PHSB)
0xcb
0x0
}
Method(SEVF) {
Return(PHSB)
0xcc
0x0
}
Method(GCMI, 1) {
Return(PHSD)
0xce
Arg0
}
Method(SCMI, 1) {
Return(PHSD)
0xcf
Arg0
}
Method(PWAK) {
Noop
Return(Zero)
}
Method(PWRN) {
Notify(\_SB_.PWRB, 0x80)
}
Method(CSXB, 1) {
Acquire(MPHS, 0xffff)
Store(Arg0, SXBF)
PHS0
0xe2
Store(SXBF, Local0)
Release(MPHS)
Return(Local0)
}
Method(CMGB, 1) {
If(Arg0) {
Store(0x0, GO12)
}
Else {
Store(0x1, GO12)
}
Return(Zero)
}
}
OperationRegion(GENC, PCI_Config, 0xb0, 0x4)
Field(GENC, DWordAcc, NoLock, Preserve) {
ISAS, 1,
POSD, 1,
, 9,
ID0T, 1,
ID1T, 1
}
OperationRegion(PCI_, PCI_Config, 0x60, 0x4)
Field(PCI_, DWordAcc, NoLock, Preserve) {
PIRQ, 32
}
Name(P1__, Buffer(0x4) {0x0 })
Method(RESP) {
Store(P1__, PIRQ)
}
Method(SAVP) {
Store(PIRQ, P1__)
}
}
}
}
Scope(\_SI_) {
Method(_SST, 1) {
If(LEqual(Arg0, 0x0)) {
}
If(LEqual(Arg0, 0x1)) {
}
If(LEqual(Arg0, 0x2)) {
}
If(LEqual(Arg0, 0x3)) {
}
If(LEqual(Arg0, 0x4)) {
}
If(LEqual(Arg0, 0x5)) {
}
}
}
Method(_WAK, 1) {
Store(0x0, \_SB_.PCI0.CRST)
If(LEqual(Arg0, 0x1)) {
PHS_
0xe0
}
If(LEqual(Arg0, 0x4)) {
\_SB_.PCI0.ISA_.SPIC._SRS
\_SB_.PCI0.ISA_.SPIC.SSRC
If(LEqual(SCMP, \_OS_)) {
"Microsoft Windows NT"
Zero
PHS_
0xe6
}
Else {
If(LNot(LEqual(SCMP, \_OS_))) {
"Microsoft Windows"
Zero
PHS_
0xe6
}
}
}
If(LEqual(SCMP, \_OS_)) {
"Microsoft Windows NT"
Zero
Noop
}
Else {
If(LNot(LEqual(SCMP, \_OS_))) {
"Microsoft Windows"
Zero
Noop
}
Else {
Notify(\_SB_.PWRB, 0x2)
}
}
Return(Zero)
}
Scope(\_TZ_) {
ThermalZone(ATF0) {
Method(KELV, 1) {
Store(Arg0, Local0)
Multiply(Local0, 0xa, Local0)
Add(Local0, 0x0aab, Local0)
Return(Local0)
}
Method(_TMP) {
ShiftRight(PHSD, 0xdb, 0xc0)
0x8
Local0
Return(KELV)
Local0
}
Method(_PSV) {
ShiftRight(PHSD, 0xdb, 0xc4)
0x8
Local0
Return(KELV)
Local0
}
Name(_PSL, Package(0x1) {
\_PR_.CPU0,
})
Method(_CRT) {
ShiftRight(PHSD, 0xdb, 0xc6)
0x8
Local0
Return(KELV)
Local0
}
Name(_TC1, 0x1)
Name(_TC2, 0x1)
Name(_TSP, 0x32)
}
}
Scope(_SB_) {
Name(IRQP, Package(0x10) {
0x0,
0x0,
0x0,
0x0,
0x0,
0x0,
0x0,
0x0,
0x0,
0x0200,
0x0,
0x0,
0x0,
0x0,
0x0,
0x0,
})
Device(LNKA) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x1)
Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x2, 0x18, 0x79, 0x0 })
Method(_DIS) {
Or(\_SB_.PCI0.ISA_.PIRA, 0x80, \_SB_.PCI0.ISA_.PIRA)
}
Method(_CRS) {
Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUFA, 0x1, IRA1)
And(\_SB_.PCI0.ISA_.PIRA, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
And(Local0, 0xf, Local0)
Store(DerefOf(Index(IRQP, Local0, )), Local4)
Store(Local4, IRA1)
}
Return(BUFA)
}
Method(_SRS, 1) {
CreateWordField(Arg0, 0x1, IRA1)
Store(IRA1, Local0)
Store(Match(IRQP, MEQ, Local0, MTR, 0x0, 0x0), Local1)
And(\_SB_.PCI0.ISA_.PIRA, 0x70, Local0)
Or(Local1, Local0, \_SB_.PCI0.ISA_.PIRA)
}
Method(_STA) {
If(LEqual(\_SB_.PCI0.ISA_.PIRA, 0x80)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
}
Device(LNKB) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x2)
Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x2, 0x18, 0x79, 0x0 })
Method(_DIS) {
Or(\_SB_.PCI0.ISA_.PIRB, 0x80, \_SB_.PCI0.ISA_.PIRB)
}
Method(_CRS) {
Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUFA, 0x1, IRA1)
And(\_SB_.PCI0.ISA_.PIRB, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
And(Local0, 0xf, Local0)
Store(DerefOf(Index(IRQP, Local0, )), Local4)
Store(Local4, IRA1)
}
Return(BUFA)
}
Method(_SRS, 1) {
CreateWordField(Arg0, 0x1, IRA1)
Store(IRA1, Local0)
Store(Match(IRQP, MEQ, Local0, MTR, 0x0, 0x0), Local1)
And(\_SB_.PCI0.ISA_.PIRB, 0x70, Local0)
Or(Local1, Local0, \_SB_.PCI0.ISA_.PIRB)
}
Method(_STA) {
If(LEqual(\_SB_.PCI0.ISA_.PIRB, 0x80)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
}
Device(LNKC) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x3)
Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x2, 0x18, 0x79, 0x0 })
Method(_DIS) {
Or(\_SB_.PCI0.ISA_.PIRC, 0x80, \_SB_.PCI0.ISA_.PIRC)
}
Method(_CRS) {
Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUFA, 0x1, IRA1)
And(\_SB_.PCI0.ISA_.PIRC, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
And(Local0, 0xf, Local0)
Store(DerefOf(Index(IRQP, Local0, )), Local4)
Store(Local4, IRA1)
}
Return(BUFA)
}
Method(_SRS, 1) {
CreateWordField(Arg0, 0x1, IRA1)
Store(IRA1, Local0)
Store(Match(IRQP, MEQ, Local0, MTR, 0x0, 0x0), Local1)
And(\_SB_.PCI0.ISA_.PIRC, 0x70, Local0)
Or(Local1, Local0, \_SB_.PCI0.ISA_.PIRC)
}
Method(_STA) {
If(LEqual(\_SB_.PCI0.ISA_.PIRC, 0x80)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
}
Device(LNKD) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x4)
Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x2, 0x18, 0x79, 0x0 })
Method(_DIS) {
Or(\_SB_.PCI0.ISA_.PIRD, 0x80, \_SB_.PCI0.ISA_.PIRD)
}
Method(_CRS) {
Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUFA, 0x1, IRA1)
And(\_SB_.PCI0.ISA_.PIRD, 0x8f, Local0)
If(LLess(Local0, 0x80)) {
And(Local0, 0xf, Local0)
Store(DerefOf(Index(IRQP, Local0, )), Local4)
Store(Local4, IRA1)
}
Return(BUFA)
}
Method(_SRS, 1) {
CreateWordField(Arg0, 0x1, IRA1)
Store(IRA1, Local0)
Store(Match(IRQP, MEQ, Local0, MTR, 0x0, 0x0), Local1)
And(\_SB_.PCI0.ISA_.PIRD, 0x70, Local0)
Or(Local1, Local0, \_SB_.PCI0.ISA_.PIRD)
}
Method(_STA) {
If(LEqual(\_SB_.PCI0.ISA_.PIRD, 0x80)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
}
}
BOOT: Lenth=39, Revision=1, Checksum=84,
OEMID=SONY, OEM Table ID=Z1, OEM Revision=0x20000511,
Creator ID=PTL, Creator Revision=0x1
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001119042019.A19018>
