CPU Cx states not working with recent kernel on Thinkpad
Andrea Campi
andrea+acpi at webcom.it
Tue Jul 6 01:42:12 PDT 2004
Hi all,
I upgraded my Thinkpad 570E from a beginning of June kernel to new
sources cvsup'd after the recent changes (ACPICA import etc) a couple
of days ago. I now get this:
...
cpu0: <ACPI CPU (3 Cx states)> port 0x530-0x537 on acpi0
cpu0: Failed to attach throttling P_CNT
...
whereas it used to work:
cpu0: <ACPI CPU (3 Cx states)> on acpi0
...
acpi_cpu: throttling enabled, 8 steps (100% to 12.5%), currently 100.0%
andrea at brian:~$ sysctl hw.acpi
hw.acpi.supported_sleep_state: S1 S3 S4 S5
hw.acpi.power_button_state: S5
hw.acpi.sleep_button_state: S4
hw.acpi.lid_switch_state: NONE
hw.acpi.standby_state: S1
hw.acpi.suspend_state: S3
hw.acpi.sleep_delay: 1
hw.acpi.s4bios: 1
hw.acpi.verbose: 1
hw.acpi.reset_video: 1
hw.acpi.cpu.cx_supported: C1/0
hw.acpi.cpu.cx_lowest: C1
hw.acpi.cpu.cx_usage: 100.00%
hw.acpi.thermal.min_runtime: 300
hw.acpi.thermal.polling_rate: 10
hw.acpi.thermal.tz0.temperature: 3300
hw.acpi.thermal.tz0.active: -1
hw.acpi.thermal.tz0.thermal_flags: 0
hw.acpi.thermal.tz0._PSV: 3632
hw.acpi.thermal.tz0._HOT: -1
hw.acpi.thermal.tz0._CRT: 3732
hw.acpi.thermal.tz0._ACx: 3422 -1 -1 -1 -1 -1 -1 -1 -1 -1
hw.acpi.acline: 1
hw.acpi.battery.life: 96
hw.acpi.battery.time: -1
hw.acpi.battery.state: 0
hw.acpi.battery.units: 2
hw.acpi.battery.info_expire: 5
The weird part is that I'm not seeing any P_CNT in the ASL; but I'm
sure it's simply that I have no clue.
Is this expected or would it be useful for me to try and restrict the
breakage to one change?
Bye,
Andrea
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/*
RSD PTR: OEM=PTLTD, ACPI_Rev=1.0x (0)
RSDT=0x0bffaa70, cksum=21
*/
/*
RSDT: Length=44, Revision=1, Checksum=207,
OEMID=PTLTD, OEM Table ID= RSDT, OEM Revision=0x6040000,
Creator ID= LTP, Creator Revision=0x0
Entries={ 0x0bfffb65, 0x0bfffbd9 }
*/
/*
FACP: Length=116, Revision=1, Checksum=96,
OEMID=IBM, OEM Table ID=VIPER, OEM Revision=0x6040000,
Creator ID=PTL, Creator Revision=0xf4240
FACS=0xbffffc0, DSDT=0xbffaa9c
INT_MODEL=PIC
Preferred_PM_Profile=Unspecified (0)
SCI_INT=9
SMI_CMD=0xb2, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0xf2
PSTATE_CNT=0x0
PM1a_EVT_BLK=0x1000-0x1003
PM1a_CNT_BLK=0x1004-0x1005
PM2_CNT_BLK=0x22-0x22
PM_TMR_BLK=0x1008-0x100b
GPE0_BLK=0x100c-0x100f
P_LVL2_LAT=10 us, P_LVL3_LAT=20 us
FLUSH_SIZE=0, FLUSH_STRIDE=0
DUTY_OFFSET=1, DUTY_WIDTH=3
DAY_ALRM=13, MON_ALRM=0, CENTURY=50
IAPC_BOOT_ARCH=
Flags={WBINVD,SLP_BUTTON,RTC_S4,DCK_CAP}
*/
/*
FACS: Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
Global_Lock=
Flags=S4BIOS
Version=0
*/
/*
DSDT: Length=20681, Revision=1, Checksum=250,
OEMID=IBM, OEM Table ID=VIPER, OEM Revision=0x6040000,
Creator ID=MSFT, Creator Revision=0x1000004
*/
/*
BOOT: Length=39, Revision=1, Checksum=165,
OEMID=PTLTD, OEM Table ID=$SBFTBL$, OEM Revision=0x6040000,
Creator ID= LTP, Creator Revision=0x1
*/
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20040527
*
* Disassembly of /tmp/acpidump.7qY1Ny, Tue Jul 6 10:38:11 2004
*/
DefinitionBlock ("DSDT.aml", "DSDT", 1, "IBM ", "VIPER ", 100925440)
{
Name (_S0, Package (0x02)
{
0x05,
0x05
})
Name (_S1, Package (0x02)
{
0x04,
0x04
})
Name (_S3, Package (0x02)
{
0x01,
0x01
})
Name (_S4, Package (0x02)
{
0x00,
0x00
})
Name (_S5, Package (0x02)
{
0x00,
0x00
})
Scope (_PR)
{
Processor (CPU, 0x00, 0x00001010, 0x06) {}
}
Scope (_SI)
{
Method (_SST, 1, NotSerialized)
{
If (LEqual (Arg0, 0x00))
{
If (LEqual (\SSLV, 0x00))
{
\_SB.PCI.ISA.EC.SLED (0x80, 0x00)
\_SB.PCI.ISA.EC.SLED (0x01, 0x00)
}
\_SB.PCI.ISA.EC.BEEP (0x07, 0x00)
}
If (LEqual (Arg0, 0x01))
{
\_SB.PCI.ISA.EC.SLED (0x80, 0x00)
\_SB.PCI.ISA.EC.SLED (0x01, 0x01)
If (LNot (LEqual (\SSLV, 0x00)))
{
\_SB.PCI.ISA.EC.BEEP (0x05, 0x00)
}
}
If (LEqual (Arg0, 0x03))
{
If (LOr (LEqual (\SSLV, 0x03), LEqual (\SSLV, 0x00)))
{
\_SB.PCI.ISA.EC.SLED (0x01, 0x00)
}
\_SB.PCI.ISA.EC.SLED (0x80, 0x01)
\_SB.PCI.ISA.EC.BEEP (0x03, 0x00)
}
If (LEqual (Arg0, 0x04))
{
If (LOr (LEqual (\SSLV, 0x03), LEqual (\SSLV, 0x00)))
{
\_SB.PCI.ISA.EC.SLED (0x01, 0x00)
}
\_SB.PCI.ISA.EC.SLED (0x80, 0x00)
\_SB.PCI.ISA.EC.BEEP (0x03, 0x00)
}
}
}
Scope (_TZ)
{
ThermalZone (THM0)
{
Name (_TC1, 0x01)
Name (_TC2, 0x03)
Name (_TSP, 0x012C)
Method (_CRT, 0, NotSerialized)
{
Return (CRTL)
}
Method (_PSV, 0, NotSerialized)
{
If (\_SB.PCI.PWR.THTE)
{
Return (PSVL)
}
Else
{
Return (PSVH)
}
}
Method (_AC0, 0, NotSerialized)
{
If (And (\_SB.PCI.ISA.EC.GFAN (), 0x07))
{
Return (AC0L)
}
Else
{
Return (AC0H)
}
}
Method (_TMP, 0, NotSerialized)
{
Store (\_SB.PCI.ISA.EC.GH8A (), Local0)
Store (\_SB.PCI.ISA.EC.SMRA (Local0, 0x04), Local0)
CreateWordField (Local0, 0x00, TMP0)
Store (TMP0, Local0)
Store (\_SB.PCI.ISA.EC.GTHZ (), Local1)
If (LEqual (Local1, 0x00))
{
If (LNot (LLess (Local0, AC0L)))
{
Store (AC0L, Local0)
Subtract (Local0, 0x05)
}
}
If (And (Local1, 0x01))
{
If (LNot (LGreater (Local0, AC0L)))
{
Store (AC0H, Local0)
Add (Local0, 0x05)
}
}
If (And (Local1, 0x02))
{
If (LNot (LGreater (Local0, PSVL)))
{
Store (PSVH, Local0)
Add (Local0, 0x05)
}
}
Return (Local0)
}
Method (_SCP, 1, NotSerialized)
{
Notify (\_TZ.THM0, 0x81)
}
Name (_AL0, Package (0x01)
{
FAN
})
Name (_PSL, Package (0x01)
{
\_PR.CPU
})
Name (CRTL, 0x0E94)
Name (PSVH, 0x0E30)
Name (PSVL, 0x0E30)
Name (AC0H, 0x0D5E)
Name (AC0L, 0x0D36)
}
PowerResource (FANP, 0x00, 0x0000)
{
Method (_STA, 0, NotSerialized)
{
If (And (\_SB.PCI.ISA.EC.GFAN (), 0x07))
{
Return (0x01)
}
Else
{
Return (0x00)
}
}
Method (_ON, 0, NotSerialized)
{
\_SB.PCI.ISA.EC.SFAN (0x07)
}
Method (_OFF, 0, NotSerialized)
{
\_SB.PCI.ISA.EC.SFAN (0x00)
}
}
Device (FAN)
{
Name (_HID, EisaId ("PNP0C0B"))
Name (_PR0, Package (0x01)
{
FANP
})
}
}
Scope (_GPE)
{
Method (_L00, 0, NotSerialized)
{
Not (\_SB.PCI.PWR.TPOL, \_SB.PCI.PWR.TPOL)
}
Method (_L08, 0, NotSerialized)
{
Notify (\_SB.PCI.USB, 0x02)
}
Method (_L09, 0, NotSerialized)
{
Store (\_SB.PCI.ISA.EC.ECQE (), Local0)
While (Local0)
{
If (LEqual (Local0, 0x11))
{
\_SB.PCI.ISA.EC._Q11 ()
}
If (LEqual (Local0, 0x13))
{
\_SB.PCI.ISA.EC._Q13 ()
}
If (LEqual (Local0, 0x16))
{
\_SB.PCI.ISA.EC._Q16 ()
}
If (LEqual (Local0, 0x17))
{
\_SB.PCI.ISA.EC._Q17 ()
}
If (LEqual (Local0, 0x1B))
{
\_SB.PCI.ISA.EC._Q1B ()
}
If (LEqual (Local0, 0x1C))
{
\_SB.PCI.ISA.EC._Q1C ()
}
If (LEqual (Local0, 0x1D))
{
\_SB.PCI.ISA.EC._Q1D ()
}
If (LEqual (Local0, 0x1E))
{
\_SB.PCI.ISA.EC._Q1E ()
}
If (LEqual (Local0, 0x20))
{
\_SB.PCI.ISA.EC._Q20 ()
}
If (LEqual (Local0, 0x21))
{
\_SB.PCI.ISA.EC._Q21 ()
}
If (LEqual (Local0, 0x22))
{
\_SB.PCI.ISA.EC._Q22 ()
}
If (LEqual (Local0, 0x23))
{
\_SB.PCI.ISA.EC._Q23 ()
}
If (LEqual (Local0, 0x24))
{
\_SB.PCI.ISA.EC._Q24 ()
}
If (LEqual (Local0, 0x25))
{
\_SB.PCI.ISA.EC._Q25 ()
}
If (LEqual (Local0, 0x26))
{
\_SB.PCI.ISA.EC._Q26 ()
}
If (LEqual (Local0, 0x27))
{
\_SB.PCI.ISA.EC._Q27 ()
}
If (LEqual (Local0, 0x2A))
{
\_SB.PCI.ISA.EC._Q2A ()
}
If (LEqual (Local0, 0x2B))
{
\_SB.PCI.ISA.EC._Q2B ()
}
If (LEqual (Local0, 0x30))
{
\_SB.PCI.ISA.EC._Q30 ()
}
If (LEqual (Local0, 0x31))
{
\_SB.PCI.ISA.EC._Q31 ()
}
If (LEqual (Local0, 0x32))
{
\_SB.PCI.ISA.EC._Q32 ()
}
If (LEqual (Local0, 0x37))
{
\_SB.PCI.ISA.EC._Q37 ()
}
If (LEqual (Local0, 0x39))
{
\_SB.PCI.ISA.EC._Q39 ()
}
If (LEqual (Local0, 0x3E))
{
\_SB.PCI.ISA.EC._Q3E ()
}
If (LEqual (Local0, 0x40))
{
\_SB.PCI.ISA.EC._Q40 ()
}
If (LEqual (Local0, 0x50))
{
\_SB.PCI.ISA.EC._Q50 ()
}
If (LEqual (Local0, 0x51))
{
\_SB.PCI.ISA.EC._Q51 ()
}
If (LEqual (Local0, 0x52))
{
\_SB.PCI.ISA.EC._Q52 ()
}
If (LEqual (Local0, 0x53))
{
\_SB.PCI.ISA.EC._Q53 ()
}
Store (\_SB.PCI.ISA.EC.ECQE (), Local0)
}
}
Method (_L0B, 0, NotSerialized)
{
Store (\_SB.PCI.ISA.EC.GWES (), Local0)
If (And (Local0, 0x01))
{
Notify (\_SB.PCI, 0x02)
\_SB.PCI.ISA.EC.GWES ()
}
If (And (Local0, 0x02))
{
Notify (\_SB.LID, 0x80)
}
If (And (Local0, 0x04))
{
Notify (\_SB.SLPB, 0x02)
}
If (And (Local0, 0x08))
{
Notify (\_SB.PCI.MODM, 0x02)
}
If (And (Local0, 0x10))
{
Notify (\_SB.SLPB, 0x02)
\_SB.PCI.ISA.EC._Q50 ()
}
If (And (Local0, 0x20))
{
Notify (\_SB.SLPB, 0x02)
\_SB.PCI.ISA.EC._Q51 ()
}
}
}
Scope (_SB)
{
OperationRegion (PHSD, SystemMemory, 0x0BFFFEBC, 0x00000100)
Field (PHSD, AnyAcc, NoLock, Preserve)
{
BCMD, 8,
DID, 32,
INFO, 2000
}
Field (PHSD, AnyAcc, NoLock, Preserve)
{
Offset (0x05),
INF, 8
}
Field (PHSD, AnyAcc, NoLock, Preserve)
{
Offset (0x05),
INF2, 1024
}
OperationRegion (PHSI, SystemIO, 0x0000FE00, 0x00000002)
Field (PHSI, AnyAcc, NoLock, Preserve)
{
SMIC, 8
}
Mutex (MPHS, 0x00)
Method (PSCS, 1, Serialized)
{
Acquire (MPHS, 0xFFFF)
Store (Zero, INFO)
Store (0x00, BCMD)
Store (Arg0, DID)
Store (Zero, SMIC)
While (Not (DID))
{
Sleep (0x02)
}
Store (Zero, BCMD)
Store (Zero, DID)
Store (INFO, Local0)
Release (MPHS)
Return (Local0)
}
Method (PSSS, 2, Serialized)
{
Acquire (MPHS, 0xFFFF)
Store (0x01, BCMD)
Store (Arg0, DID)
Store (Arg1, INFO)
Store (Zero, SMIC)
While (Not (DID))
{
Sleep (0x02)
}
Store (Zero, BCMD)
Store (Zero, DID)
Release (MPHS)
}
Method (PSPS, 1, Serialized)
{
Acquire (MPHS, 0xFFFF)
Store (0x00, INFO)
Store (0x02, BCMD)
Store (Arg0, DID)
Store (Zero, SMIC)
While (Not (DID))
{
Sleep (0x02)
}
Store (Zero, BCMD)
Store (Zero, DID)
Store (INFO, Local0)
Release (MPHS)
Return (Local0)
}
Method (PSDI, 1, Serialized)
{
Acquire (MPHS, 0xFFFF)
Store (0x03, BCMD)
Store (Arg0, DID)
Store (Zero, SMIC)
While (Not (DID))
{
Sleep (0x02)
}
Store (Zero, BCMD)
Store (Zero, DID)
Release (MPHS)
}
Method (PSST, 1, Serialized)
{
Acquire (MPHS, 0xFFFF)
Store (0x00, INF)
Store (0x04, BCMD)
Store (Arg0, DID)
Store (Zero, SMIC)
While (Not (DID))
{
Sleep (0x02)
}
Store (Zero, BCMD)
Store (Zero, DID)
Store (INF, Local0)
Release (MPHS)
Return (Local0)
}
Method (PHS, 1, Serialized)
{
Acquire (MPHS, 0xFFFF)
Store (Arg0, BCMD)
Store (Zero, DID)
Store (Zero, SMIC)
While (Not (DID))
{
Sleep (0x02)
}
Store (Zero, BCMD)
Store (Zero, DID)
Store (INF, Local0)
Release (MPHS)
Return (Local0)
}
Method (PHS2, 2, Serialized)
{
Acquire (MPHS, 0xFFFF)
Store (Arg0, BCMD)
Store (Arg1, INF)
Store (Zero, DID)
Store (Zero, SMIC)
While (Not (DID))
{
Sleep (0x02)
}
Store (Zero, BCMD)
Store (Zero, DID)
Store (INF2, Local0)
Release (MPHS)
Return (Local0)
}
Device (AC)
{
Name (_HID, "ACPI0003")
Name (_STA, 0x0F)
Name (_PCL, Package (0x01)
{
\_SB
})
Method (_PSR, 0, NotSerialized)
{
Return (\_SB.PCI.ISA.EC.ACST ())
}
}
Device (BAT1)
{
Name (_HID, EisaId ("PNP0C0A"))
Name (_UID, 0x01)
Name (BIFB, Package (0x0D)
{
0x00,
0xFFFFFFFF,
0xFFFFFFFF,
0x01,
0x2A30,
0x00,
0x00,
0x00,
0x01,
"",
"",
"",
""
})
Name (BSTB, Package (0x04)
{
0x00,
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF
})
Name (_PCL, Package (0x01)
{
\_SB
})
Name (_STA, 0x0F)
Method (_BIF, 0, NotSerialized)
{
Store (\_SB.PCI.ISA.EC.GH8A (), Local0)
Store (\_SB.PCI.ISA.EC.SMRA (Local0, 0x10), Local0)
CreateByteField (Local0, 0x00, PWUT)
CreateDWordField (Local0, 0x04, DCAP)
CreateDWordField (Local0, 0x08, FCAP)
CreateWordField (Local0, 0x10, VOLT)
If (LEqual (PWUT, 0xFF))
{
Store (0x00, Index (BIFB, 0x00))
Store (0xFFFFFFFF, Index (BIFB, 0x01))
Store (0xFFFFFFFF, Index (BIFB, 0x02))
Store (0x00, Index (BIFB, 0x05))
Store (0x00, Index (BIFB, 0x06))
}
Else
{
Store (PWUT, Index (BIFB, 0x00))
Store (DCAP, Index (BIFB, 0x01))
Store (FCAP, Index (BIFB, 0x02))
Store (Divide (DCAP, 0x0A, ), Index (BIFB, 0x05))
Store (Divide (DCAP, 0x14, ), Index (BIFB, 0x06))
}
Store ("LION", Index (BIFB, 0x0B))
Return (BIFB)
}
Method (_BST, 0, NotSerialized)
{
Store (Zero, Local0)
If (And (\_SB.PCI.ISA.EC.BTST (0x00), 0x40))
{
Or (0x01, Local0, Local0)
}
If (And (\_SB.PCI.ISA.EC.BTST (0x00), 0x20))
{
Or (0x02, Local0, Local0)
}
If (LNot (LGreater (And (\_SB.PCI.ISA.EC.BTST (0x00), 0x0F), 0x03)))
{
Or (0x04, Local0, Local0)
}
Store (Local0, Index (BSTB, 0x00))
Store (\_SB.PCI.ISA.EC.GH8A (), Local0)
Store (\_SB.PCI.ISA.EC.SMRA (Local0, 0x10), Local0)
CreateByteField (Local0, 0x00, PWUT)
CreateDWordField (Local0, 0x0C, CAPA)
CreateWordField (Local0, 0x10, VOLT)
CreateWordField (Local0, 0x12, CURR)
And (CURR, 0xFF00, Local1)
If (LNot (LLess (Local1, 0x8000)))
{
Subtract (0x00010000, Local1, Local1)
}
If (LEqual (PWUT, 0x00))
{
Store (Divide (Multiply (Local1, VOLT), 0x03E8, ), Index (BSTB, 0x01))
}
Else
{
If (LEqual (PWUT, 0x01))
{
Store (Local1, Index (BSTB, 0x01))
}
Else
{
If (LEqual (PWUT, 0xFF))
{
Store (0xFFFFFFFF, Index (BSTB, 0x01))
}
}
}
Store (CAPA, Index (BSTB, 0x02))
Store (VOLT, Index (BSTB, 0x03))
Return (BSTB)
}
Method (_INI, 0, NotSerialized)
{
If (And (\_SB.PCI.ISA.EC.BTST (0x00), 0x80))
{
Store (0x1F, \_SB.BAT1._STA)
}
}
}
Device (BAT2)
{
Name (_HID, EisaId ("PNP0C0A"))
Name (_UID, 0x02)
Name (BIFB, Package (0x0D)
{
0x00,
0xFFFFFFFF,
0xFFFFFFFF,
0x01,
0x2A30,
0x00,
0x00,
0x00,
0x01,
"",
"",
"",
""
})
Name (BSTB, Package (0x04)
{
0x00,
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF
})
Name (_PCL, Package (0x01)
{
\_SB
})
Name (_STA, 0x0F)
Method (_BIF, 0, NotSerialized)
{
Store (\_SB.PCI.ISA.EC.GH8A (), Local0)
Store (\_SB.PCI.ISA.EC.SMRA (Local0, 0x11), Local0)
CreateByteField (Local0, 0x00, PWUT)
CreateDWordField (Local0, 0x04, DCAP)
CreateDWordField (Local0, 0x08, FCAP)
CreateWordField (Local0, 0x10, VOLT)
If (LEqual (PWUT, 0xFF))
{
Store (0x00, Index (BIFB, 0x00))
Store (0xFFFFFFFF, Index (BIFB, 0x01))
Store (0xFFFFFFFF, Index (BIFB, 0x02))
Store (0x00, Index (BIFB, 0x05))
Store (0x00, Index (BIFB, 0x06))
}
Else
{
Store (PWUT, Index (BIFB, 0x00))
Store (DCAP, Index (BIFB, 0x01))
Store (FCAP, Index (BIFB, 0x02))
Store (Divide (DCAP, 0x0A, ), Index (BIFB, 0x05))
Store (Divide (DCAP, 0x14, ), Index (BIFB, 0x06))
}
Store ("LION", Index (BIFB, 0x0B))
Return (BIFB)
}
Method (_BST, 0, NotSerialized)
{
Store (Zero, Local0)
If (And (\_SB.PCI.ISA.EC.BTST (0x01), 0x40))
{
Or (0x01, Local0, Local0)
}
If (And (\_SB.PCI.ISA.EC.BTST (0x01), 0x20))
{
Or (0x02, Local0, Local0)
}
If (LNot (LGreater (And (\_SB.PCI.ISA.EC.BTST (0x01), 0x0F), 0x03)))
{
Or (0x04, Local0, Local0)
}
Store (Local0, Index (BSTB, 0x00))
Store (\_SB.PCI.ISA.EC.GH8A (), Local0)
Store (\_SB.PCI.ISA.EC.SMRA (Local0, 0x11), Local0)
CreateByteField (Local0, 0x00, PWUT)
CreateDWordField (Local0, 0x0C, CAPA)
CreateWordField (Local0, 0x10, VOLT)
CreateWordField (Local0, 0x12, CURR)
If (LNot (LLess (CURR, 0x8000)))
{
Store (Subtract (0x00010000, CURR), Local1)
}
Else
{
Store (CURR, Local1)
}
If (LEqual (PWUT, 0x00))
{
Store (Divide (Multiply (Local1, VOLT), 0x03E8, ), Index (BSTB, 0x01))
}
Else
{
If (LEqual (PWUT, 0x01))
{
Store (Local1, Index (BSTB, 0x01))
}
Else
{
If (LEqual (PWUT, 0xFF))
{
Store (0xFFFFFFFF, Index (BSTB, 0x01))
}
}
}
Store (CAPA, Index (BSTB, 0x02))
Store (VOLT, Index (BSTB, 0x03))
Return (BSTB)
}
Method (_INI, 0, NotSerialized)
{
If (And (\_SB.PCI.ISA.EC.BTST (0x01), 0x80))
{
Store (0x1F, \_SB.BAT2._STA)
}
}
}
Device (LID)
{
Name (_HID, EisaId ("PNP0C0D"))
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x0B,
0x04
})
Method (_LID, 0, NotSerialized)
{
Return (\_SB.PCI.ISA.EC.GLID ())
}
}
Device (SLPB)
{
Name (_HID, EisaId ("PNP0C0E"))
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x0B,
0x04
})
}
Device (PCI)
{
Name (_HID, EisaId ("PNP0A03"))
Name (_BBN, 0x00)
Name (_ADR, 0x00)
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,
Offset (0x3A),
CRST, 1
}
Name (RSRC, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
0x0000,
0x0000,
0x00FF,
0x0000,
0x0100, 0x00)
IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000,
0x0000,
0x0CF7,
0x0000,
0x0CF8, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000A0000,
0x000BFFFF,
0x00000000,
0x00020000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000C0000,
0x000C3FFF,
0x00000000,
0x00004000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000C4000,
0x000C7FFF,
0x00000000,
0x00004000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000C8000,
0x000CBFFF,
0x00000000,
0x00004000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000CC000,
0x000CFFFF,
0x00000000,
0x00004000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000D0000,
0x000D3FFF,
0x00000000,
0x00004000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000D4000,
0x000D7FFF,
0x00000000,
0x00004000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000D8000,
0x000DBFFF,
0x00000000,
0x00004000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000DC000,
0x000DFFFF,
0x00000000,
0x00004000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000E0000,
0x000E3FFF,
0x00000000,
0x00004000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000E4000,
0x000E7FFF,
0x00000000,
0x00004000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000E8000,
0x000EBFFF,
0x00000000,
0x00004000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000EC000,
0x000EFFFF,
0x00000000,
0x00004000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000, 0x00)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000, 0x00)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000,
0x0D00,
0xFFFF,
0x0000,
0xF300, 0x00)
})
Method (_CRS, 0, Serialized)
{
Store (Zero, Local1)
If (T_EN)
{
ShiftLeft (0x01, Add (T_SZ, 0x11), Local1)
}
CreateDWordField (RSRC, 0x0193, BTMN)
CreateDWordField (RSRC, 0x0197, BTMX)
CreateDWordField (RSRC, 0x019F, 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), 0x01, BTMX)
}
CreateDWordField (RSRC, 0x01AE, ATMN)
CreateDWordField (RSRC, 0x01B2, ATMX)
CreateDWordField (RSRC, 0x01BA, ATLN)
If (T_EN)
{
Add (Add (BTMN, BTLN), Local1, ATMN)
Subtract (0xFFE00000, ATMN, ATLN)
Subtract (Add (ATMN, ATLN), 0x01, ATMX)
}
Else
{
Store (Zero, ATLN)
}
CreateBitField (RSRC, 0x0250, C0RW)
CreateDWordField (RSRC, 0x4F, C0MN)
CreateDWordField (RSRC, 0x53, C0MX)
CreateDWordField (RSRC, 0x5B, C0LN)
Store (One, C0RW)
If (LEqual (And (PAM1, 0x03), 0x01))
{
Store (Zero, C0RW)
}
Store (Zero, C0LN)
If (LNot (And (PAM1, 0x03)))
{
Store (0x4000, C0LN)
}
CreateBitField (RSRC, 0x0328, C4RW)
CreateDWordField (RSRC, 0x6A, C4MN)
CreateDWordField (RSRC, 0x6E, C4MX)
CreateDWordField (RSRC, 0x76, 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, 0x0400, C8RW)
CreateDWordField (RSRC, 0x85, C8MN)
CreateDWordField (RSRC, 0x89, C8MX)
CreateDWordField (RSRC, 0x91, C8LN)
Store (One, C8RW)
If (LEqual (And (PAM2, 0x03), 0x01))
{
Store (Zero, C8RW)
}
Store (Zero, C8LN)
If (LNot (And (PAM2, 0x03)))
{
Store (0x4000, C8LN)
}
CreateBitField (RSRC, 0x04D8, CCRW)
CreateDWordField (RSRC, 0xA0, CCMN)
CreateDWordField (RSRC, 0xA4, CCMX)
CreateDWordField (RSRC, 0xAC, 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, 0x05B0, D0RW)
CreateDWordField (RSRC, 0xBB, D0MN)
CreateDWordField (RSRC, 0xBF, D0MX)
CreateDWordField (RSRC, 0xC7, D0LN)
Store (One, D0RW)
If (LEqual (And (PAM3, 0x03), 0x01))
{
Store (Zero, D0RW)
}
Store (Zero, D0LN)
If (LNot (And (PAM3, 0x03)))
{
Store (0x4000, D0LN)
}
CreateBitField (RSRC, 0x0688, D4RW)
CreateDWordField (RSRC, 0xD6, D4MN)
CreateDWordField (RSRC, 0xDA, D4MX)
CreateDWordField (RSRC, 0xE2, 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, 0x0760, D8RW)
CreateDWordField (RSRC, 0xF1, D8MN)
CreateDWordField (RSRC, 0xF5, D8MX)
CreateDWordField (RSRC, 0xFD, D8LN)
Store (One, D8RW)
If (LEqual (And (PAM4, 0x03), 0x01))
{
Store (Zero, D8RW)
}
Store (Zero, D8LN)
If (LNot (And (PAM4, 0x03)))
{
Store (0x4000, D8LN)
}
CreateBitField (RSRC, 0x0838, DCRW)
CreateDWordField (RSRC, 0x010C, DCMN)
CreateDWordField (RSRC, 0x0110, DCMX)
CreateDWordField (RSRC, 0x0118, DCLN)
Store (One, DCRW)
If (LEqual (And (PAM4, 0x30), 0x10))
{
Store (Zero, DCRW)
}
Store (Zero, DCLN)
If (LNot (And (PAM4, 0x30)))
{
Store (0x4000, DCLN)
}
CreateBitField (RSRC, 0x0910, E0RW)
CreateDWordField (RSRC, 0x0127, E0MN)
CreateDWordField (RSRC, 0x012B, E0MX)
CreateDWordField (RSRC, 0x0133, E0LN)
Store (One, E0RW)
If (LEqual (And (PAM5, 0x03), 0x01))
{
Store (Zero, E0RW)
}
Store (Zero, E0LN)
If (LNot (And (PAM5, 0x03)))
{
Store (0x4000, E0LN)
}
CreateBitField (RSRC, 0x09E8, E4RW)
CreateDWordField (RSRC, 0x0142, E4MN)
CreateDWordField (RSRC, 0x0146, E4MX)
CreateDWordField (RSRC, 0x014E, 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, 0x0AC0, E8RW)
CreateDWordField (RSRC, 0x015D, E8MN)
CreateDWordField (RSRC, 0x0161, E8MX)
CreateDWordField (RSRC, 0x0169, E8LN)
Store (One, E8RW)
If (LEqual (And (PAM6, 0x03), 0x01))
{
Store (Zero, E8RW)
}
Store (Zero, E8LN)
If (LNot (And (PAM6, 0x03)))
{
Store (0x4000, E8LN)
}
CreateBitField (RSRC, 0x0B98, ECRW)
CreateDWordField (RSRC, 0x0178, ECMN)
CreateDWordField (RSRC, 0x017C, ECMX)
CreateDWordField (RSRC, 0x0184, 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)
}
Name (_PRT, Package (0x08)
{
Package (0x04)
{
0x0001FFFF,
0x00,
\_SB.PCI.ISA.LNKA,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x01,
\_SB.PCI.ISA.LNKB,
0x00
},
Package (0x04)
{
0x0002FFFF,
0x00,
\_SB.PCI.ISA.LNKA,
0x00
},
Package (0x04)
{
0x0002FFFF,
0x01,
\_SB.PCI.ISA.LNKB,
0x00
},
Package (0x04)
{
0x0005FFFF,
0x00,
\_SB.PCI.ISA.LNKA,
0x00
},
Package (0x04)
{
0x0006FFFF,
0x03,
\_SB.PCI.ISA.LNKD,
0x00
},
Package (0x04)
{
0x0007FFFF,
0x00,
\_SB.PCI.ISA.LNKC,
0x00
},
Package (0x04)
{
0x0007FFFF,
0x01,
\_SB.PCI.ISA.LNKD,
0x00
}
})
Device (AGP)
{
Name (_ADR, 0x00010000)
Device (VGA)
{
Name (_ADR, 0x00)
Method (_INI, 0, NotSerialized)
{
Store (And (\_SB.PHS (0x87), 0x0F), \_SB.PCI.AGP.VGA.GDCS)
Store (And (\_SB.PCI.AGP.VGA.GDCS, 0x01), \_SB.PCI.AGP.VGA.LCD._DCS)
Store (ShiftRight (And (\_SB.PCI.AGP.VGA.GDCS, 0x02), 0x01), \_SB.PCI.AGP.VGA.CRT._DCS)
}
Method (_DOS, 1, NotSerialized)
{
Store (Arg0, SWIT)
}
Name (_DOD, Package (0x02)
{
0x00010100,
0x00010110
})
Method (SRVO, 1, NotSerialized)
{
If (And (\_SB.PHS (0x87), 0x30))
{
If (Arg0)
{
If (LNot (LEqual (DDGS, 0x00)))
{
Store (And (DDGS, 0x01), \_SB.PCI.AGP.VGA.LCD._DGS)
Store (ShiftRight (And (DDGS, 0x02), 0x01), \_SB.PCI.AGP.VGA.CRT._DGS)
Notify (\_SB.PCI.AGP.VGA, 0x80)
}
}
Else
{
Store (Or (ShiftLeft (\_SB.PCI.AGP.VGA.CRT._DCS, 0x01), \_SB.PCI.AGP.VGA.LCD._DCS), DDGS)
Store (One, \_SB.PCI.AGP.VGA.LCD._DGS)
Store (Zero, \_SB.PCI.AGP.VGA.CRT._DGS)
Notify (\_SB.PCI.AGP.VGA, 0x80)
}
}
}
Device (CRT)
{
Name (_ADR, 0x0100)
Name (_DCS, 0x1F)
Name (_DGS, 0x00)
Method (_DDC, 1, NotSerialized)
{
If (LEqual (Arg0, 0x01))
{
Return (\_SB.PHS2 (0x8A, 0x00))
}
If (LEqual (Arg0, 0x02))
{
Concatenate (\_SB.PHS2 (0x8A, 0x00), DDC0, Local0)
Return (Local0)
}
}
Method (_DSS, 1, NotSerialized)
{
Or (And (\_SB.PCI.AGP.VGA.GDGS, 0x01), ShiftLeft (And (Arg0, 0x01), 0x01), \_SB.PCI.AGP.VGA.GDGS)
If (And (Arg0, 0xC0000000))
{
Store (GDGS, GDCS)
If (LEqual (And (Arg0, 0x40000000), 0x00))
{
\_SB.PHS2 (0x8B, Or (GDCS, 0x80))
Store (And (\_SB.PHS (0x87), 0x0F), Local0)
Store (And (Local0, 0x01), \_SB.PCI.AGP.VGA.LCD._DCS)
Store (ShiftRight (And (Local0, 0x02), 0x01), \_SB.PCI.AGP.VGA.CRT._DCS)
}
Else
{
\_SB.PHS2 (0x8B, GDCS)
}
}
}
}
Device (LCD)
{
Name (_ADR, 0x0110)
Name (_DCS, 0x1F)
Name (_DGS, 0x01)
Method (_DDC, 1, NotSerialized)
{
If (LEqual (Arg0, 0x01))
{
If (And (\_SB.PHS (0x87), 0x40))
{
Return (DDC1)
}
Else
{
Return (DDC2)
}
}
If (LEqual (Arg0, 0x02))
{
If (And (\_SB.PHS (0x87), 0x40))
{
Concatenate (DDC1, DDC0, Local0)
Return (Local0)
}
Else
{
Concatenate (DDC2, DDC0, Local0)
Return (Local0)
}
}
Return (0x00)
}
Method (_DSS, 1, NotSerialized)
{
Or (And (\_SB.PCI.AGP.VGA.GDGS, 0x02), And (Arg0, 0x01), \_SB.PCI.AGP.VGA.GDGS)
If (And (Arg0, 0xC0000000))
{
Store (GDGS, GDCS)
If (LEqual (And (Arg0, 0x40000000), 0x00))
{
\_SB.PHS2 (0x8B, Or (GDCS, 0x80))
Store (And (\_SB.PHS (0x87), 0x0F), Local0)
Store (And (Local0, 0x01), \_SB.PCI.AGP.VGA.LCD._DCS)
Store (ShiftRight (And (Local0, 0x02), 0x01), \_SB.PCI.AGP.VGA.CRT._DCS)
}
Else
{
\_SB.PHS2 (0x8B, GDCS)
}
}
}
}
Name (SWIT, 0x01)
Name (GDCS, 0x02)
Name (GDGS, 0x02)
Name (DDGS, 0x00)
Name (DDC0, Buffer (0x80)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Name (DDC1, Buffer (0x80)
{
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x24, 0x4D, 0x55, 0x0A, 0x01, 0x01, 0x01, 0x01,
0x23, 0x09, 0x01, 0x02, 0x80, 0x21, 0x18, 0x00,
0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27,
0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x19,
0x00, 0x40, 0x41, 0x00, 0x26, 0x30, 0x18, 0x88,
0x36, 0x00, 0x0E, 0xCB, 0x10, 0x00, 0x00, 0x1A,
0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69,
0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43,
0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31,
0x30, 0x32, 0x34, 0x78, 0x37, 0x36, 0x38, 0x20,
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33
})
Name (DDC2, Buffer (0x80)
{
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x24, 0x4D, 0x4B, 0x0A, 0x01, 0x01, 0x01, 0x01,
0x23, 0x09, 0x01, 0x02, 0x80, 0x21, 0x18, 0x00,
0xEA, 0x0D, 0xFB, 0xA0, 0x57, 0x47, 0x98, 0x27,
0x12, 0x4D, 0x51, 0xA1, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01,
0x20, 0x00, 0x31, 0x58, 0x1C, 0x20, 0x28, 0x80,
0x01, 0x00, 0xF6, 0xB8, 0x00, 0x00, 0x00, 0x1A,
0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69,
0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43,
0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x38,
0x30, 0x30, 0x78, 0x36, 0x30, 0x30, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1
})
}
}
Device (CRD0)
{
Name (_ADR, 0x00020000)
Name (_PRW, Package (0x02)
{
0x0B,
0x04
})
OperationRegion (PCIC, PCI_Config, 0x00, 0x0100)
Field (PCIC, DWordAcc, NoLock, Preserve)
{
Offset (0x04),
CMD, 16,
Offset (0x10),
ADD0, 32,
Offset (0x3C),
INTL, 8,
Offset (0x44),
LADD, 32,
Offset (0x80),
PMRI, 1,
Offset (0xA4),
PWRS, 2,
Offset (0xA5),
, 7,
PMES, 1
}
Method (_INI, 0, NotSerialized)
{
Or (INTL, 0xFF, INTL)
And (LADD, 0xFFFF0000, LADD)
}
Method (_PS0, 0, NotSerialized)
{
Store (Zero, PWRS)
Store (One, PMRI)
Store (One, PMES)
}
Method (_PS3, 0, NotSerialized)
{
Store (Zero, PMRI)
}
}
Device (CRD1)
{
Name (_ADR, 0x00020001)
OperationRegion (PCIC, PCI_Config, 0x00, 0x0100)
Field (PCIC, DWordAcc, NoLock, Preserve)
{
Offset (0x04),
CMD, 16,
Offset (0x10),
ADD0, 32,
Offset (0x3C),
INTL, 8,
Offset (0x44),
LADD, 32,
Offset (0x80),
PMRI, 1,
Offset (0xA4),
PWRS, 2,
Offset (0xA5),
, 7,
PMES, 1
}
Name (_PRW, Package (0x02)
{
0x0B,
0x04
})
Method (_INI, 0, NotSerialized)
{
Or (INTL, 0xFF, INTL)
And (LADD, 0xFFFF0000, LADD)
}
Method (_PS0, 0, NotSerialized)
{
Store (Zero, PWRS)
Store (One, PMRI)
Store (One, PMES)
}
Method (_PS3, 0, NotSerialized)
{
Store (Zero, PMRI)
}
}
Device (OAK)
{
Name (_ADR, 0x00040000)
Name (_EJD, "_SB_.PCI_.ISA_.SLCE")
Name (_PRT, Package (0x03)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI.ISA.LNKA,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
\_SB.PCI.ISA.LNKA,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x00,
\_SB.PCI.ISA.LNKB,
0x00
}
})
OperationRegion (PCI, PCI_Config, 0x00, 0x0100)
Field (PCI, DWordAcc, NoLock, Preserve)
{
VID, 32
}
Method (_BDN, 0, NotSerialized)
{
Return (0x43004D24)
}
Method (_UID, 0, NotSerialized)
{
Store (Zero, Local0)
Or (Local0, \_SB.PCI.PWR.RE2R (0x02), Local0)
ShiftLeft (Local0, 0x08, Local0)
Or (Local0, \_SB.PCI.PWR.RE2R (0x01), Local0)
ShiftLeft (Local0, 0x08, Local0)
Or (Local0, \_SB.PCI.PWR.RE2R (0x00), Local0)
Return (Local0)
}
Method (_DCK, 1, NotSerialized)
{
Store (Zero, \_SB.PCI.ISA.PMGA.LOKE)
If (Arg0)
{
Store (Zero, \_SB.PCI.ISA.PMGA.DOKC)
}
Else
{
Store (One, \_SB.PCI.ISA.PMGA.DOKC)
}
\_SB.PCI.AGP.VGA.SRVO (Arg0)
Return (Arg0)
}
Method (_EJ0, 1, NotSerialized)
{
Store (One, \_SB.PCI.ISA.PMGA.UDOC)
While (\_SB.PCI.ISA.PMGA.DOKS)
{
Sleep (0x01)
}
Store (Zero, \_SB.PCI.ISA.PMGA.UDOC)
}
Method (_STA, 0, NotSerialized)
{
Store (0x00, Local0)
If (\_SB.PCI.ISA.PMGA.DOKS)
{
If (LEqual (\_SB.PCI.PWR.RE2R (0x03), 0x20))
{
Store (0x0F, Local0)
}
}
If (Local0)
{
Store (Zero, \_SB.PCI.ISA.PMGA.LOKE)
}
Else
{
Store (One, \_SB.PCI.ISA.PMGA.LOKE)
}
Store (Zero, \_SB.PCI.ISA.PMGA.DOKC)
Return (Local0)
}
Method (SDCK, 1, NotSerialized)
{
If (Arg0)
{
If (\_SB.PCI.ISA.PMGA.EXPS)
{
If (LEqual (\_SB.PCI.PWR.RE2R (0x03), 0x20))
{
\_SB.PHS (0x86)
}
}
}
}
Device (CRD0)
{
Name (_ADR, 0x00)
Name (_PRW, Package (0x02)
{
0x0B,
0x04
})
OperationRegion (PCIC, PCI_Config, 0x00, 0x0100)
Field (PCIC, DWordAcc, NoLock, Preserve)
{
Offset (0x04),
CMD, 16,
Offset (0x10),
ADD0, 32,
Offset (0x3C),
INTL, 8,
Offset (0x44),
LADD, 32,
Offset (0x80),
PMRI, 1,
Offset (0xA4),
PWRS, 2,
Offset (0xA5),
, 7,
PMES, 1
}
Method (_INI, 0, NotSerialized)
{
Or (INTL, 0xFF, INTL)
And (LADD, 0xFFFF0000, LADD)
}
Method (_PS0, 0, NotSerialized)
{
Store (Zero, PWRS)
Store (One, PMRI)
Store (One, PMES)
}
Method (_PS3, 0, NotSerialized)
{
Store (Zero, PMRI)
}
}
Device (CRD1)
{
Name (_ADR, 0x01)
Name (_PSC, 0x00)
Name (_PRW, Package (0x02)
{
0x0B,
0x04
})
OperationRegion (PCIC, PCI_Config, 0x00, 0x0100)
Field (PCIC, DWordAcc, NoLock, Preserve)
{
Offset (0x04),
CMD, 16,
Offset (0x10),
ADD0, 32,
Offset (0x3C),
INTL, 8,
Offset (0x44),
LADD, 32,
Offset (0x80),
PMRI, 1,
Offset (0xA4),
PWRS, 2,
Offset (0xA5),
, 7,
PMES, 1
}
Method (_INI, 0, NotSerialized)
{
Or (INTL, 0xFF, INTL)
And (LADD, 0xFFFF0000, LADD)
}
Method (_PS0, 0, NotSerialized)
{
Store (Zero, PWRS)
Store (One, PMRI)
Store (One, PMES)
}
Method (_PS3, 0, NotSerialized)
{
Store (Zero, PMRI)
}
}
Device (LAN)
{
Name (_ADR, 0x00010000)
Name (_PRW, Package (0x02)
{
0x0B,
0x04
})
}
}
Device (AUD)
{
Name (_ADR, 0x00050000)
}
Device (ISA)
{
Name (_ADR, 0x00060000)
Device (DMAC)
{
Name (_HID, EisaId ("PNP0200"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0000, 0x0000, 0x01, 0x10)
IO (Decode16, 0x0081, 0x0081, 0x01, 0x0F)
IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
DMA (Compatibility, NotBusMaster, Transfer16) {4}
})
}
Device (PIC)
{
Name (_HID, EisaId ("PNP0001"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0020, 0x0020, 0x01, 0x02)
IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02)
IO (Decode16, 0x04D0, 0x04D0, 0x01, 0x02)
IRQ (Edge, ActiveHigh, Exclusive) {2}
})
}
Device (TIME)
{
Name (_HID, EisaId ("PNP0100"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
IRQNoFlags () {0}
})
}
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0070, 0x0070, 0x01, 0x02)
IRQNoFlags () {8}
})
}
Device (SPKR)
{
Name (_HID, EisaId ("PNP0800"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0061, 0x0061, 0x01, 0x01)
})
}
Device (MATH)
{
Name (_HID, EisaId ("PNP0C04"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x00F0, 0x00F0, 0x01, 0x10)
IRQ (Edge, ActiveHigh, Exclusive) {13}
})
}
Device (MEM)
{
Name (_HID, EisaId ("PNP0C01"))
Name (_CRS, ResourceTemplate ()
{
Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000)
Memory32Fixed (ReadOnly, 0xFFF80000, 0x00080000)
})
}
Device (KBC)
{
Name (_HID, EisaId ("PNP0303"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
IRQNoFlags () {1}
})
}
Device (MOUS)
{
Name (_HID, EisaId ("IBM3780"))
Name (_CID, 0x130FD041)
Method (_CRS, 0, NotSerialized)
{
Return (PSCS (0x16))
}
Method (_SRS, 1, NotSerialized)
{
PSSS (0x16, Arg0)
}
Method (_PRS, 0, NotSerialized)
{
Return (PSPS (0x16))
}
Method (_DIS, 0, NotSerialized)
{
PSDI (0x16)
}
Method (_STA, 0, NotSerialized)
{
Return (PSST (0x16))
}
}
OperationRegion (GEN, PCI_Config, 0xB0, 0x04)
Field (GEN, DWordAcc, NoLock, Preserve)
{
Offset (0x01),
, 4,
SIDE, 1
}
Device (LNKA)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x01)
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {3,4,5,7,9,10,11,15}
})
Name (RSRC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {}
})
Method (_DIS, 0, NotSerialized)
{
Or (PIRA, 0x80, PIRA)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (RSRC, 0x01, IRQ0)
And (PIRA, 0x0F, Local0)
ShiftLeft (0x01, Local0, IRQ0)
Store (RSRC, Debug)
Return (RSRC)
}
Method (_SRS, 1, NotSerialized)
{
Store (Arg0, Debug)
CreateWordField (Arg0, 0x01, IRQ0)
FindSetRightBit (IRQ0, Local0)
Decrement (Local0)
Or (Local0, And (PIRA, 0x70), PIRA)
}
Method (_STA, 0, NotSerialized)
{
If (And (PIRA, 0x80))
{
Return (0x09)
}
Return (0x0B)
}
}
Device (LNKB)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x02)
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {3,4,5,7,9,10,11,15}
})
Name (RSRC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {}
})
Method (_DIS, 0, NotSerialized)
{
Or (PIRB, 0x80, PIRB)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (RSRC, 0x01, IRQ0)
And (PIRB, 0x0F, Local0)
ShiftLeft (0x01, Local0, IRQ0)
Return (RSRC)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRQ0)
FindSetRightBit (IRQ0, Local0)
Decrement (Local0)
Or (Local0, And (PIRB, 0x70), PIRB)
}
Method (_STA, 0, NotSerialized)
{
If (And (PIRB, 0x80))
{
Return (0x09)
}
Return (0x0B)
}
}
Device (LNKC)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x03)
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {3,4,5,7,9,10,11,15}
})
Name (RSRC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {}
})
Method (_DIS, 0, NotSerialized)
{
Or (PIRC, 0x80, PIRC)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (RSRC, 0x01, IRQ0)
And (PIRC, 0x0F, Local0)
ShiftLeft (0x01, Local0, IRQ0)
Return (RSRC)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRQ0)
FindSetRightBit (IRQ0, Local0)
Decrement (Local0)
Or (Local0, And (PIRC, 0x70), PIRC)
}
Method (_STA, 0, NotSerialized)
{
If (And (PIRC, 0x80))
{
Return (0x09)
}
Return (0x0B)
}
}
Device (LNKD)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x04)
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {3,4,5,7,9,10,11,15}
})
Name (RSRC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {}
})
Method (_DIS, 0, NotSerialized)
{
Or (PIRD, 0x80, PIRD)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (RSRC, 0x01, IRQ0)
And (PIRD, 0x0F, Local0)
ShiftLeft (0x01, Local0, IRQ0)
Return (RSRC)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRQ0)
FindSetRightBit (IRQ0, Local0)
Decrement (Local0)
Or (Local0, And (PIRD, 0x70), PIRD)
}
Method (_STA, 0, NotSerialized)
{
If (And (PIRD, 0x80))
{
Return (0x09)
}
Return (0x0B)
}
}
OperationRegion (PIRX, PCI_Config, 0x60, 0x04)
Field (PIRX, DWordAcc, NoLock, Preserve)
{
AccessAs (ByteAcc, 0x00),
PIRA, 8,
PIRB, 8,
PIRC, 8,
PIRD, 8
}
Device (PMGA)
{
Name (_HID, EisaId ("PNP0A05"))
Name (_UID, 0x01)
OperationRegion (GAIO, SystemIO, 0x15EE, 0x02)
Field (GAIO, ByteAcc, NoLock, Preserve)
{
PMIX, 8,
PMDA, 8
}
IndexField (PMIX, PMDA, ByteAcc, NoLock, Preserve)
{
, 6,
BREN, 1,
Offset (0x2D),
UDOC, 1,
DOKC, 1,
LOKE, 1,
, 1,
DOKS, 1,
EXPS, 1,
Offset (0x2F),
BAYE, 1,
BAYP, 1,
BAYR, 1
}
Name (_STA, 0x0B)
Method (SBAY, 1, NotSerialized)
{
If (Arg0)
{
Store (Zero, BAYR)
Store (Zero, BAYP)
Sleep (0x0A)
Store (Zero, BAYE)
Store (One, BAYR)
}
Else
{
Store (One, BAYE)
Store (One, BAYP)
}
}
Method (GBAY, 0, NotSerialized)
{
Return (Not (BAYE))
}
}
Device (SIO)
{
Name (_HID, EisaId ("PNP0A05"))
Name (_UID, 0x02)
Name (_STA, 0x0B)
Name (RDE1, ResourceTemplate ()
{
IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
IRQNoFlags () {}
})
Name (RDE2, ResourceTemplate ()
{
IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
IRQNoFlags () {}
DMA (Compatibility, NotBusMaster, Transfer8) {}
})
Name (RDE3, ResourceTemplate ()
{
IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
IRQNoFlags () {}
DMA (Compatibility, NotBusMaster, Transfer8) {}
})
Device (COMA)
{
Name (_HID, EisaId ("PNP0501"))
Name (_UID, 0x01)
Name (_EJD, "_SB_.PCI_.OAK_")
Method (_CRS, 0, NotSerialized)
{
Return (PSCS (0x12))
}
Method (_SRS, 1, NotSerialized)
{
PSSS (0x12, Arg0)
}
Method (_PRS, 0, NotSerialized)
{
Return (PSPS (0x12))
}
Method (_DIS, 0, NotSerialized)
{
PSDI (0x12)
}
Method (_STA, 0, NotSerialized)
{
Return (PSST (0x12))
}
Name (_PRW, Package (0x02)
{
0x0B,
0x03
})
}
Device (FIR)
{
Name (_HID, EisaId ("IBM0071"))
Name (_CID, 0x1105D041)
Method (_CRS, 0, NotSerialized)
{
Return (PSCS (0x13))
}
Method (_SRS, 1, NotSerialized)
{
PSSS (0x13, Arg0)
}
Method (_PRS, 0, NotSerialized)
{
Return (PSPS (0x13))
}
Method (_DIS, 0, NotSerialized)
{
PSDI (0x13)
}
Method (_STA, 0, NotSerialized)
{
Return (PSST (0x13))
}
}
Device (LPT)
{
Name (_HID, EisaId ("PNP0400"))
Name (_UID, 0x01)
Name (MCD, 0x17)
Name (_STA, 0x00)
Name (B_PR, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
IRQNoFlags () {7}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
IRQNoFlags () {5}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
IRQNoFlags () {7}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
IRQNoFlags () {5}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
IRQNoFlags () {7}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
IRQNoFlags () {5}
}
EndDependentFn ()
})
Name (CRSB, ResourceTemplate ()
{
IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
IRQNoFlags () {}
})
Method (_CRS, 0, NotSerialized)
{
Acquire (\_SB.MPHS, 0xFFFF)
If (LEqual (_STA, 0x0F))
{
CreateWordField (CRSB, 0x02, IO1B)
CreateWordField (CRSB, 0x04, IO2B)
CreateWordField (CRSB, 0x06, IO3B)
CreateWordField (CRSB, 0x09, IRQB)
Or (ShiftLeft (And (R430, 0xFC), 0x08), ShiftLeft (R420, 0x02), IO1B)
Store (IO1B, IO2B)
If (LEqual (IO1B, 0x03BC))
{
Store (0x0401, IO3B)
}
Store (Zero, IRQB)
ShiftRight (READ (0x1B, 0xF0), 0x04, Local0)
If (Local0)
{
ShiftLeft (0x01, Local0, IRQB)
}
Return (CRSB)
}
Else
{
Return (RDE1)
}
Release (\_SB.MPHS)
}
Method (B_SR, 1, NotSerialized)
{
Acquire (\_SB.MPHS, 0xFFFF)
Name (XRFI, Package (0x10)
{
0x00,
0x00,
0x00,
0x00,
0x00,
0x07,
0x00,
0x01,
0x00,
0x02,
0x03,
0x04,
0x00,
0x00,
0x05,
0x06
})
CreateWordField (Arg0, 0x02, IO1A)
CreateWordField (Arg0, 0x09, IRQB)
WRIT (0x00, 0xFE, 0x00)
PRDC (Ones)
WRIT (0x42, 0x00, ShiftRight (IO1A, 0x02))
WRIT (0x43, 0x03, ShiftRight (IO1A, 0x08))
FindSetRightBit (IRQB, Local0)
If (Local0)
{
Decrement (Local0)
WRIT (0x1B, 0x0F, ShiftLeft (Local0, 0x04))
WRIT (0x1B, 0xF8, DerefOf (Index (XRFI, Local0)))
}
Else
{
WRIT (0x1B, 0x08, 0x00)
}
WRIT (0x00, 0xFE, 0x01)
PRDC (IO1A)
Store (0x0F, _STA)
Release (\_SB.MPHS)
}
Method (B_DI, 0, NotSerialized)
{
Acquire (\_SB.MPHS, 0xFFFF)
WRIT (0x00, 0xFE, 0x00)
PRDC (Ones)
Store (0x0D, _STA)
Release (\_SB.MPHS)
}
Name (_EJD, "_SB_.PCI_.OAK_")
}
Device (LPTB)
{
Name (_HID, EisaId ("PNP0400"))
Name (_UID, 0x02)
Name (MCD, 0x18)
Name (_STA, 0x0D)
Name (_PRS, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
IRQ (Edge, ActiveHigh, Exclusive) {7}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
IRQ (Edge, ActiveHigh, Exclusive) {5}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
IRQ (Edge, ActiveHigh, Exclusive) {7}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
IRQ (Edge, ActiveHigh, Exclusive) {5}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
IRQ (Edge, ActiveHigh, Exclusive) {7}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
IRQ (Edge, ActiveHigh, Exclusive) {5}
}
EndDependentFn ()
})
Name (CRSB, ResourceTemplate ()
{
IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
IRQNoFlags () {}
})
Method (_CRS, 0, NotSerialized)
{
Acquire (\_SB.MPHS, 0xFFFF)
If (LEqual (_STA, 0x0F))
{
CreateWordField (CRSB, 0x02, IO1B)
CreateWordField (CRSB, 0x04, IO2B)
CreateWordField (CRSB, 0x06, IO3B)
CreateWordField (CRSB, 0x09, IRQB)
Or (ShiftLeft (And (R430, 0xFC), 0x08), ShiftLeft (R420, 0x02), IO1B)
Store (IO1B, IO2B)
If (LEqual (IO1B, 0x03BC))
{
Store (0x0401, IO3B)
}
Store (Zero, IRQB)
ShiftRight (READ (0x1B, 0xF0), 0x04, Local0)
If (Local0)
{
ShiftLeft (0x01, Local0, IRQB)
}
Return (CRSB)
}
Else
{
Return (RDE1)
}
Release (\_SB.MPHS)
}
Method (_SRS, 1, NotSerialized)
{
Acquire (\_SB.MPHS, 0xFFFF)
Name (XRFI, Package (0x10)
{
0x00,
0x00,
0x00,
0x00,
0x00,
0x07,
0x00,
0x01,
0x00,
0x02,
0x03,
0x04,
0x00,
0x00,
0x05,
0x06
})
CreateWordField (Arg0, 0x02, IO1A)
CreateWordField (Arg0, 0x09, IRQB)
WRIT (0x00, 0xFE, 0x00)
PRDC (Ones)
WRIT (0x42, 0x00, ShiftRight (IO1A, 0x02))
WRIT (0x43, 0x03, ShiftRight (IO1A, 0x08))
FindSetRightBit (IRQB, Local0)
If (Local0)
{
Decrement (Local0)
WRIT (0x1B, 0x0F, ShiftLeft (Local0, 0x04))
WRIT (0x1B, 0xF8, DerefOf (Index (XRFI, Local0)))
}
Else
{
WRIT (0x1B, 0x08, 0x00)
}
WRIT (0x00, 0xFE, 0x01)
PRDC (IO1A)
Store (0x0F, _STA)
Release (\_SB.MPHS)
}
Method (_DIS, 0, NotSerialized)
{
Acquire (\_SB.MPHS, 0xFFFF)
WRIT (0x00, 0xFE, 0x00)
PRDC (Ones)
Store (0x0D, _STA)
Release (\_SB.MPHS)
}
Name (_EJD, "_SB_.PCI_.OAK_")
}
Device (ECP)
{
Name (_HID, EisaId ("PNP0401"))
Method (_CRS, 0, NotSerialized)
{
If (LEqual (_STA (), 0x0F))
{
Return (PSCS (0x14))
}
Else
{
Return (RDE3)
}
}
Method (_SRS, 1, NotSerialized)
{
PSSS (0x14, Arg0)
}
Method (_PRS, 0, NotSerialized)
{
Return (PSPS (0x14))
}
Method (_DIS, 0, NotSerialized)
{
PSDI (0x14)
}
Method (_STA, 0, NotSerialized)
{
Return (PSST (0x14))
}
Name (_EJD, "_SB_.PCI_.OAK_")
}
Device (EPP)
{
Name (_HID, EisaId ("PNP0400"))
Name (_UID, 0x03)
Method (_CRS, 0, NotSerialized)
{
If (LEqual (_STA (), 0x0F))
{
Return (PSCS (0x15))
}
Else
{
Return (RDE1)
}
}
Method (_SRS, 1, NotSerialized)
{
PSSS (0x15, Arg0)
}
Method (_PRS, 0, NotSerialized)
{
Return (PSPS (0x15))
}
Method (_DIS, 0, NotSerialized)
{
PSDI (0x15)
}
Method (_STA, 0, NotSerialized)
{
Return (PSST (0x15))
}
Name (_EJD, "_SB_.PCI_.OAK_")
}
Device (FDC)
{
Name (_HID, EisaId ("PNP0700"))
OperationRegion (FDCR, SystemIO, 0x03F0, 0x07)
Field (FDCR, ByteAcc, NoLock, Preserve)
{
Offset (0x03),
TDR, 8
}
Method (_CRS, 0, NotSerialized)
{
Return (PSCS (0x11))
}
Method (_SRS, 1, NotSerialized)
{
PSSS (0x11, Arg0)
If (LNot (\_SB.PCI.PWR.GI13))
{
If (\_SB.PCI.ISA.PMGA.GBAY ())
{
And (TDR, 0xF3, TDR)
}
Else
{
Or (And (TDR, 0xF3), 0x04, TDR)
}
}
Else
{
Or (And (TDR, 0xF3), 0x04, TDR)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PSPS (0x11))
}
Method (_DIS, 0, NotSerialized)
{
PSDI (0x11)
}
Method (_STA, 0, NotSerialized)
{
Return (PSST (0x11))
}
}
OperationRegion (SIOR, SystemIO, 0x2E, 0x02)
Field (SIOR, ByteAcc, NoLock, Preserve)
{
INDX, 8,
DATA, 8
}
IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
{
R000, 8,
Offset (0x02),
R020, 8,
Offset (0x04),
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, 2, NotSerialized)
{
Store (Arg0, INDX)
Return (And (DATA, Arg1))
}
Method (WRIT, 3, NotSerialized)
{
Store (Arg0, INDX)
Or (And (DATA, Arg1), Arg2, Local0)
Store (Arg0, INDX)
Store (Local0, DATA)
Store (Local0, DATA)
}
Name (LPT1, Package (0x03)
{
0x03BC,
0x0378,
0x0278
})
Method (PRDC, 1, NotSerialized)
{
If (LEqual (Arg0, Ones))
{
Store (Zero, \_SB.PCI.PWR.LPTE)
}
Else
{
Store (SizeOf (LPT1), Local0)
While (Local0)
{
Decrement (Local0)
If (LEqual (Arg0, DerefOf (Index (LPT1, Local0))))
{
Store (Local0, \_SB.PCI.PWR.LPTA)
Store (One, \_SB.PCI.PWR.LPTE)
Store (One, \_SB.PCI.PWR.LPTM)
}
}
}
}
}
Device (EC)
{
Name (_HID, EisaId ("PNP0A05"))
Name (_UID, 0x03)
Name (BEJP, 0x00)
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0062, 0x0062, 0x01, 0x01)
IO (Decode16, 0x0066, 0x0066, 0x01, 0x01)
})
Name (_GPE, 0x09)
OperationRegion (ECP0, SystemIO, 0x62, 0x01)
Field (ECP0, ByteAcc, NoLock, Preserve)
{
ECDA, 8
}
OperationRegion (ECP1, SystemIO, 0x66, 0x01)
Field (ECP1, ByteAcc, NoLock, Preserve)
{
ECST, 8
}
Field (ECP1, ByteAcc, NoLock, Preserve)
{
ECCM, 8
}
Mutex (ECMB, 0x00)
Method (WIBE, 0, Serialized)
{
While (And (ECST, 0x02))
{
Stall (0x01)
}
}
Method (WOBF, 0, Serialized)
{
While (LNot (And (ECST, 0x01)))
{
Stall (0x01)
}
}
Method (ECRD, 1, Serialized)
{
Acquire (ECMB, 0xFFFF)
WIBE ()
Store (0xD2, ECCM)
WIBE ()
Store (0x80, ECCM)
WIBE ()
Store (Arg0, ECDA)
WIBE ()
WOBF ()
Store (ECDA, Local0)
Store (0xD3, ECCM)
WIBE ()
Release (ECMB)
Return (Local0)
}
Method (ECWR, 2, Serialized)
{
Acquire (ECMB, 0xFFFF)
WIBE ()
Store (0xD2, ECCM)
WIBE ()
Store (0x81, ECCM)
WIBE ()
Store (Arg0, ECDA)
WIBE ()
Store (Arg1, ECDA)
WIBE ()
Store (0xD3, ECCM)
WIBE ()
Release (ECMB)
}
Method (ECQE, 0, Serialized)
{
Acquire (ECMB, 0xFFFF)
Store (0x64, Local1)
While (Local1)
{
Decrement (Local1)
And (ECST, 0x20, Local0)
If (Local0)
{
Store (Zero, Local1)
}
Else
{
Sleep (0x01)
}
}
If (Local0)
{
WIBE ()
Store (0xD2, ECCM)
WIBE ()
Store (0x84, ECCM)
WIBE ()
WOBF ()
Store (ECDA, Local0)
Store (0xD3, ECCM)
WIBE ()
}
Release (ECMB)
Return (Local0)
}
Method (_Q11, 0, NotSerialized)
{
\_SB.PHS (0x80)
}
Method (_Q13, 0, NotSerialized)
{
Notify (\_SB.SLPB, 0x80)
}
Method (_Q16, 0, NotSerialized)
{
Store ("===== FnF7 =====", Debug)
If (LEqual (\_SB.PCI.AGP.VGA.SWIT, 0x00))
{
If (LEqual (\_SB.PCI.AGP.VGA.GDCS, 0x01))
{
Store (Zero, \_SB.PCI.AGP.VGA.LCD._DGS)
Store (One, \_SB.PCI.AGP.VGA.CRT._DGS)
}
If (LEqual (\_SB.PCI.AGP.VGA.GDCS, 0x02))
{
Store (One, \_SB.PCI.AGP.VGA.LCD._DGS)
Store (One, \_SB.PCI.AGP.VGA.CRT._DGS)
}
If (LEqual (\_SB.PCI.AGP.VGA.GDCS, 0x03))
{
Store (One, \_SB.PCI.AGP.VGA.LCD._DGS)
Store (Zero, \_SB.PCI.AGP.VGA.CRT._DGS)
}
Notify (\_SB.PCI.AGP.VGA, 0x80)
}
If (LEqual (\_SB.PCI.AGP.VGA.SWIT, 0x01))
{
\_SB.PHS (0x81)
}
}
Method (_Q17, 0, NotSerialized)
{
\_SB.PHS (0x82)
}
Method (_Q1B, 0, NotSerialized)
{
}
Method (_Q1C, 0, NotSerialized)
{
\_SB.PHS (0x83)
}
Method (_Q1D, 0, NotSerialized)
{
\_SB.PHS (0x84)
}
Method (_Q1E, 0, NotSerialized)
{
\_SB.PHS (0x85)
}
Method (_Q20, 0, NotSerialized)
{
Notify (\_SB.BAT1, 0x80)
Notify (\_SB.BAT2, 0x80)
}
Method (_Q21, 0, NotSerialized)
{
Notify (\_SB.BAT1, 0x80)
Notify (\_SB.BAT2, 0x80)
}
Method (_Q22, 0, NotSerialized)
{
Notify (\_SB.BAT1, 0x80)
Notify (\_SB.BAT2, 0x80)
}
Method (_Q23, 0, NotSerialized)
{
Store (Zero, Local0)
If (And (\_SB.PCI.ISA.EC.BTST (0x00), 0x80))
{
If (LEqual (\_SB.BAT1._STA, 0x0F))
{
Store (\_SB.PCI.ISA.EC.GH8A (), Local1)
Store (\_SB.PCI.ISA.EC.SMRA (Local1, 0x10), Local2)
CreateByteField (Local2, 0x20, BST1)
While (LEqual (BST1, 0x00))
{
Sleep (0x0A)
Store (\_SB.PCI.ISA.EC.SMRA (Local1, 0x10), Local2)
}
Store (0x1F, \_SB.BAT1._STA)
Or (0x01, Local0, Local0)
}
}
Else
{
If (LEqual (\_SB.BAT1._STA, 0x1F))
{
Store (0x0F, \_SB.BAT1._STA)
Or (0x01, Local0, Local0)
}
}
If (And (\_SB.PCI.ISA.EC.BTST (0x01), 0x80))
{
If (LEqual (\_SB.BAT2._STA, 0x0F))
{
Store (\_SB.PCI.ISA.EC.GH8A (), Local1)
Store (\_SB.PCI.ISA.EC.SMRA (Local1, 0x11), Local2)
CreateByteField (Local2, 0x20, BST2)
While (LEqual (BST2, 0x00))
{
Sleep (0x0A)
Store (\_SB.PCI.ISA.EC.SMRA (Local1, 0x11), Local2)
}
Store (0x1F, \_SB.BAT2._STA)
Or (0x02, Local0, Local0)
}
}
Else
{
If (LEqual (\_SB.BAT2._STA, 0x1F))
{
Store (0x0F, \_SB.BAT2._STA)
Or (0x02, Local0, Local0)
}
}
If (LEqual (Local0, 0x00))
{
Notify (\_SB.BAT1, 0x80)
Notify (\_SB.BAT2, 0x80)
}
Else
{
If (And (Local0, 0x01))
{
Notify (\_SB.BAT1, 0x00)
}
If (And (Local0, 0x02))
{
Notify (\_SB.BAT2, 0x00)
}
}
}
Method (_Q24, 0, NotSerialized)
{
Notify (\_SB.BAT1, 0x80)
}
Method (_Q25, 0, NotSerialized)
{
Notify (\_SB.BAT2, 0x80)
}
Method (_Q26, 0, NotSerialized)
{
Store (One, \_SB.PCI.ISA.PMGA.BREN)
Notify (\_SB.AC, 0x80)
}
Method (_Q27, 0, NotSerialized)
{
Store (Zero, \_SB.PCI.ISA.PMGA.BREN)
Notify (\_SB.AC, 0x80)
}
Method (_Q2A, 0, NotSerialized)
{
Notify (\_SB.LID, 0x80)
}
Method (_Q2B, 0, NotSerialized)
{
Notify (\_SB.LID, 0x80)
}
Method (_Q30, 0, NotSerialized)
{
\_SB.PHS (0x8C)
}
Method (_Q31, 0, NotSerialized)
{
\_SB.PHS (0x8D)
}
Method (_Q32, 0, NotSerialized)
{
\_SB.PHS (0x8E)
}
Method (_Q37, 0, NotSerialized)
{
If (LNot (\_SB.PCI.ISA.PMGA.DOKS))
{
If (LEqual (\_SB.PCI.ISA.SLCE._STA (), 0x0F))
{
\_SB.PCI.OAK.SDCK (One)
Notify (\_SB.PCI.OAK, 0x00)
}
}
}
Method (_Q39, 0, NotSerialized)
{
Notify (\_SB.SLPB, 0x02)
}
Method (_Q3E, 0, NotSerialized)
{
If (\_SB.PCI.CRD0.PMES)
{
\_SB.PCI.CRD0._PS0 ()
}
If (\_SB.PCI.CRD1.PMES)
{
\_SB.PCI.CRD1._PS0 ()
}
If (\_SB.PCI.OAK._STA ())
{
If (\_SB.PCI.OAK.CRD0.PMES)
{
\_SB.PCI.OAK.CRD0._PS0 ()
}
If (\_SB.PCI.OAK.CRD1.PMES)
{
\_SB.PCI.OAK.CRD1._PS0 ()
}
}
}
Method (_Q40, 0, NotSerialized)
{
Notify (\_TZ.THM0, 0x80)
Sleep (0x2710)
Notify (\_TZ.THM0, 0x81)
}
Method (_Q50, 0, NotSerialized)
{
Notify (\_SB.PCI.OAK, 0x01)
}
Method (_Q51, 0, NotSerialized)
{
If (LEqual (\_SB.PCI.ISA.PMGA.BAYP, Zero))
{
\_SB.HKEY.MHKF ()
Notify (\_SB.PCI.ISA.SLCE, 0x01)
}
}
Method (_Q52, 0, NotSerialized)
{
\_SB.PCI.ISA.SLCE.SSLC (Zero)
\_SB.PCI.OAK.SDCK (One)
Notify (\_SB.PCI, 0x01)
}
Method (_Q53, 0, NotSerialized)
{
Store (0x53, Debug)
}
Mutex (SMMB, 0x00)
Method (SMRA, 2, NotSerialized)
{
Acquire (SMMB, 0xFFFF)
Name (INVB, Buffer (0x21)
{
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00
})
Store (SMBP (0x0B, Arg0, Arg1), Local0)
If (Local0)
{
Store (INVB, Local0)
}
Else
{
Store (0x00, Local1)
While (LLess (Local1, 0x21))
{
PUTB (INVB, Local1, ECRD (Add (0x54, Local1)))
Increment (Local1)
}
Store (INVB, Local0)
}
Release (SMMB)
Return (Local0)
}
Method (SMBP, 3, Serialized)
{
Store (0x01, Local0)
While (Local0)
{
ECWR (0x53, Arg2)
ECWR (0x52, Arg1)
ECWR (0x50, Arg0)
While (ECRD (0x50))
{
Sleep (0x02)
}
While (LNot (And (ECRD (0x51), 0xBF, Local1)))
{
Sleep (0x02)
}
And (Local1, 0x1F, Local1)
If (LNot (LEqual (Local1, 0x11)))
{
Store (0x00, Local0)
}
}
Return (Local1)
}
Method (PUTB, 3, NotSerialized)
{
CreateByteField (Arg0, Arg1, TIDX)
Store (Arg2, TIDX)
}
Method (GETB, 2, NotSerialized)
{
CreateByteField (Arg0, Arg1, TIDX)
Return (TIDX)
}
Method (GH8A, 0, NotSerialized)
{
Store (ECRD (0x0F), Local0)
Return (Local0)
}
Method (ACST, 0, NotSerialized)
{
And (ShiftRight (ECRD (0x36), 0x04), 0x01, Local0)
Return (Local0)
}
Method (BTST, 1, NotSerialized)
{
Store (ECRD (Add (Arg0, 0x38)), Local0)
Return (Local0)
}
Method (SB1I, 1, NotSerialized)
{
If (Arg0)
{
ECWR (0x3A, And (ECRD (0x3A), 0x7F))
}
Else
{
ECWR (0x3A, Or (ECRD (0x3A), 0x80))
}
}
Method (BEEP, 2, NotSerialized)
{
Store (ECRD (0x07), Local0)
ECWR (0x07, Arg1)
ShiftLeft (0x01, Arg0, Local1)
If (LNot (LGreater (Arg0, 0x07)))
{
Store (ECRD (0x04), Local2)
}
Else
{
ShiftRight (Local1, 0x08, Local1)
Store (ECRD (0x05), Local2)
}
If (And (Local2, Local1))
{
ECWR (0x06, Arg0)
While (LNot (And (ECRD (0x34), 0x02))) {}
While (And (ECRD (0x34), 0x02)) {}
}
ECWR (0x07, Local0)
}
Method (GFAN, 0, NotSerialized)
{
And (ECRD (0x2F), 0x07, Local0)
Return (Local0)
}
Method (SFAN, 1, NotSerialized)
{
ECWR (0x2F, Or (And (ECRD (0x2F), 0xF8), Arg0))
}
Method (SLED, 2, NotSerialized)
{
Store (ECRD (0x0D), Local0)
And (Local0, Not (Arg0), Local0)
If (And (Arg1, 0x02))
{
Or (Local0, Arg0, Local0)
}
ECWR (0x0D, Local0)
Store (ECRD (0x0C), Local0)
And (Local0, Not (Arg0), Local0)
If (And (Arg1, 0x01))
{
Or (Local0, Arg0, Local0)
}
ECWR (0x0C, Local0)
}
Method (GLED, 1, NotSerialized)
{
Store (Zero, Local0)
Store (ECRD (0x0C), Local1)
If (And (Local1, Arg0))
{
Or (Local0, 0x01, Local0)
Store (ECRD (0x0D), Local1)
If (And (Local1, Arg0))
{
Or (Local0, 0x02, Local0)
}
}
Return (Local0)
}
Method (GLID, 0, NotSerialized)
{
And (ShiftRight (ECRD (0x36), 0x02), 0x01, Local0)
Return (Local0)
}
Method (GSST, 0, NotSerialized)
{
ShiftRight (ECRD (0x37), 0x07, Local0)
Return (Local0)
}
Method (GDID, 0, NotSerialized)
{
ECWR (0x28, 0x80)
While (And (ECRD (0x28), 0x80))
{
Stall (0x01)
}
And (ECRD (0x28), 0x7F, Local0)
Return (Local0)
}
Method (SISM, 1, NotSerialized)
{
If (Arg0)
{
Store (0x03, Local0)
}
Else
{
Store (0x00, Local0)
}
ECWR (0x3B, Or (And (ECRD (0x3B), 0xFC), Local0))
}
Method (GWES, 0, NotSerialized)
{
Store (ECRD (0x4E), Local0)
Return (Local0)
}
Method (GTHZ, 0, NotSerialized)
{
And (ECRD (0x20), 0x83, Local0)
Return (Local0)
}
}
Device (SLCE)
{
Name (_HID, EisaId ("PNP0C15"))
Name (_UID, 0x04)
Method (_STA, 0, NotSerialized)
{
If (\_SB.PCI.ISA.EC.GSST ())
{
If (LEqual (\_SB.PCI.ISA.PMGA.BAYP, 0x00))
{
Return (0x0F)
}
}
Return (0x00)
}
Method (_DCK, 1, NotSerialized)
{
If (\_SB.PCI.OAK._STA ())
{
Store (Zero, \_SB.PCI.ISA.PMGA.LOKE)
If (Arg0)
{
Store (Zero, \_SB.PCI.ISA.PMGA.DOKC)
}
Else
{
Store (One, \_SB.PCI.ISA.PMGA.DOKC)
Store (One, \_SB.PCI.ISA.EC.BEJP)
}
}
If (Arg0)
{
SSLC (Zero)
Return (One)
}
Else
{
SSLC (One)
Return (Zero)
}
}
Method (_EJ0, 1, NotSerialized)
{
If (\_SB.PCI.ISA.EC.BEJP)
{
Store (One, \_SB.PCI.ISA.PMGA.UDOC)
While (\_SB.PCI.ISA.PMGA.DOKS)
{
Sleep (0x01)
}
Store (Zero, \_SB.PCI.ISA.PMGA.UDOC)
Store (Zero, \_SB.PCI.ISA.EC.BEJP)
}
\_SB.HKEY.MHKQ (0x4003)
}
Method (SSLC, 1, NotSerialized)
{
If (Arg0)
{
Store (One, \_SB.PCI.ISA.SIDE)
If (And (\_SB.PCI.ISA.EC.BTST (0x01), 0x80))
{
\_SB.PCI.ISA.EC.SB1I (Zero)
}
If (LEqual (\_SB.PCI.ISA.SIO.FDC._STA (), 0x0F))
{
Or (And (\_SB.PCI.ISA.SIO.FDC.TDR, 0xF3), 0x04, \_SB.PCI.ISA.SIO.FDC.TDR)
}
\_SB.PCI.ISA.PMGA.SBAY (0x00)
Store (One, \_SB.PCI.PWR.GO27)
\_SB.PCI.ISA.EC.SISM (Zero)
\_SB.PCI.ISA.EC.SLED (0x10, 0x00)
}
Else
{
\_SB.PCI.ISA.PMGA.SBAY (0x01)
Store (Zero, \_SB.PCI.ISA.SIDE)
If (And (\_SB.PCI.ISA.EC.BTST (0x01), 0x80))
{
\_SB.PCI.ISA.EC.SB1I (One)
}
If (LNot (\_SB.PCI.PWR.GI13))
{
If (LEqual (\_SB.PCI.ISA.SIO.FDC._STA (), 0x0F))
{
And (\_SB.PCI.ISA.SIO.FDC.TDR, 0xF3, \_SB.PCI.ISA.SIO.FDC.TDR)
}
}
\_SB.PCI.ISA.EC.SISM (One)
Store (Zero, \_SB.PCI.PWR.GO27)
\_SB.PCI.ISA.EC.SLED (0x10, 0x01)
Sleep (0x03E8)
}
}
Method (_INI, 0, NotSerialized)
{
If (\_SB.PCI.ISA.EC.GSST ())
{
If (LEqual (\_SB.PCI.ISA.PMGA.BAYP, 0x01))
{
\_SB.PCI.ISA.PMGA.SBAY (0x01)
\_SB.PCI.ISA.EC.SISM (One)
Store (Zero, \_SB.PCI.PWR.GO27)
\_SB.PCI.ISA.EC.SLED (0x10, 0x01)
}
}
}
}
Device (MBRD)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x01)
Name (RSRC, ResourceTemplate ()
{
IO (Decode16, 0x0010, 0x0010, 0x01, 0x10)
IO (Decode16, 0x0024, 0x0024, 0x01, 0x02)
IO (Decode16, 0x0028, 0x0028, 0x01, 0x02)
IO (Decode16, 0x002C, 0x002C, 0x01, 0x02)
IO (Decode16, 0x002E, 0x002E, 0x01, 0x02)
IO (Decode16, 0x0038, 0x0038, 0x01, 0x02)
IO (Decode16, 0x003C, 0x003C, 0x01, 0x02)
IO (Decode16, 0x0050, 0x0050, 0x01, 0x04)
IO (Decode16, 0x0072, 0x0072, 0x01, 0x06)
IO (Decode16, 0x0080, 0x0080, 0x01, 0x01)
IO (Decode16, 0x0090, 0x0090, 0x01, 0x10)
IO (Decode16, 0x00A4, 0x00A4, 0x01, 0x02)
IO (Decode16, 0x00A8, 0x00A8, 0x01, 0x02)
IO (Decode16, 0x00AC, 0x00AC, 0x01, 0x02)
IO (Decode16, 0x00B0, 0x00B0, 0x01, 0x06)
IO (Decode16, 0x00B8, 0x00B8, 0x01, 0x02)
IO (Decode16, 0x00BC, 0x00BC, 0x01, 0x02)
IO (Decode16, 0x0100, 0x0100, 0x01, 0x40)
IO (Decode16, 0x0140, 0x0140, 0x01, 0x10)
IO (Decode16, 0x15EA, 0x15EA, 0x01, 0x06)
IO (Decode16, 0xFE00, 0xFE00, 0x01, 0x10)
})
Method (_CRS, 0, NotSerialized)
{
CreateWordField (RSRC, 0x8A, PMMN)
CreateWordField (RSRC, 0x8C, PMMX)
And (^^^PWR.PMBA, 0xFFFFFFFE, PMMN)
Store (PMMN, PMMX)
CreateWordField (RSRC, 0x92, SMMN)
CreateWordField (RSRC, 0x94, SMMX)
And (^^^PWR.SBBA, 0xFFFFFFFE, SMMN)
Store (SMMN, SMMX)
Return (RSRC)
}
}
Device (ROM)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x02)
Name (_CRS, ResourceTemplate ()
{
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000C0000,
0x000CFFFF,
0x00000000,
0x00010000, 0x00)
})
}
Method (_INI, 0, NotSerialized)
{
\_SB.PCI.ISA.SLCE._INI ()
}
}
Device (IDE)
{
Name (_ADR, 0x00060001)
Name (_PSC, 0x00)
OperationRegion (PCIC, PCI_Config, 0x00, 0x0100)
Field (PCIC, DWordAcc, NoLock, Preserve)
{
Offset (0x04),
IOSE, 1,
Offset (0x41),
, 7,
PIDE, 1,
Offset (0x43),
, 7,
SIDE, 1
}
Field (PCIC, DWordAcc, NoLock, Preserve)
{
Offset (0x04),
R04, 32,
Offset (0x20),
R20, 32,
Offset (0x40),
R40, 32,
R44, 32,
R48, 32
}
Name (PCMD, 0x00)
Name (BMIB, 0x00)
Name (IDET, 0x00)
Name (SIDT, 0x00)
Name (UDMA, 0x00)
Name (CRSF, 0x00)
Method (_INI, 0, NotSerialized)
{
Store (Zero, CRSF)
Store (One, \_SB.PCI.IDE.SIDE)
Store (Zero, \_SB.PCI.ISA.SIDE)
\_SB.PHS (0x88)
}
Method (_PS0, 0, NotSerialized)
{
If (LEqual (_PSC, 0x03))
{
If (LEqual (IOSE, Zero))
{
Store (PCMD, R04)
Store (BMIB, R20)
}
Store (IDET, R40)
Store (SIDT, R44)
Store (UDMA, R48)
\_SB.PHS (0x89)
}
Store (Zero, CRSF)
Store (Zero, _PSC)
}
Method (_PS3, 0, NotSerialized)
{
If (LAnd (LEqual (_PSC, Zero), LEqual (CRSF, Zero)))
{
Store (R04, PCMD)
Store (R20, BMIB)
Store (R40, IDET)
Store (R44, SIDT)
Store (R48, UDMA)
Store (One, CRSF)
}
Store (0x03, _PSC)
}
Device (PRIM)
{
Name (_ADR, 0x00)
Method (_STA, 0, NotSerialized)
{
If (PIDE)
{
Return (0x0F)
}
Else
{
Return (0x0D)
}
}
Device (MAST)
{
Name (_ADR, 0x00)
}
Device (SLAV)
{
Name (_ADR, 0x01)
}
}
Device (SECN)
{
Name (_ADR, 0x01)
Method (_STA, 0, NotSerialized)
{
If (SIDE)
{
Return (0x0F)
}
Else
{
Return (0x0D)
}
}
Device (MAST)
{
Name (_ADR, 0x00)
Name (_EJD, "_SB_.PCI_.ISA_.SLCE")
Method (_STA, 0, NotSerialized)
{
If (LEqual (\_SB.PCI.ISA.SLCE._STA (), 0x0F))
{
Store (\_SB.PCI.ISA.EC.GDID (), Local0)
If (LNot (LEqual (Local0, 0x0F)))
{
Return (0x0F)
}
}
Return (0x00)
}
}
Device (SLAV)
{
Name (_ADR, 0x01)
}
}
}
Device (USB)
{
Name (_ADR, 0x00060002)
Name (_PRW, Package (0x02)
{
0x08,
0x01
})
}
Device (PWR)
{
Name (_ADR, 0x00060003)
OperationRegion (PMC, SystemIO, 0x00001000, 0x00000038)
Field (PMC, DWordAcc, NoLock, Preserve)
{
Offset (0x10),
, 4,
THTE, 1,
Offset (0x28),
, 2,
TPOL, 1,
Offset (0x31),
, 5,
GI13, 1,
Offset (0x37),
, 3,
GO27, 1
}
OperationRegion (SMB, SystemIO, 0x00001040, 0x0000000C)
Field (SMB, ByteAcc, NoLock, Preserve)
{
HSTS, 8,
LVTS, 8,
CTLR, 8,
CMDR, 8,
ADDR, 8,
DAT0, 8,
DAT1, 8
}
OperationRegion (PCI, PCI_Config, 0x40, 0x60)
Field (PCI, DWordAcc, NoLock, Preserve)
{
PMBA, 32,
Offset (0x12),
, 2,
LPTM, 1,
Offset (0x1F),
, 7,
LPTE, 1,
Offset (0x23),
, 1,
LPTA, 2,
Offset (0x50),
SBBA, 32
}
Mutex (SMMB, 0x00)
Method (RE2R, 1, NotSerialized)
{
Acquire (SMMB, 0xFFFF)
Store (Arg0, CMDR)
Store (0x08, CTLR)
Store (0x00, DAT0)
Store (0xA3, ADDR)
Store (0x48, CTLR)
While (LNot (And (HSTS, 0x06, Local0)))
{
Stall (0x01)
}
Store (HSTS, HSTS)
Release (SMMB)
If (And (Local0, 0x04))
{
Return (0xFF)
}
Else
{
Return (DAT0)
}
}
}
Device (MODM)
{
Name (_ADR, 0x00070000)
Name (_PRW, Package (0x02)
{
0x0B,
0x04
})
}
}
Device (HKEY)
{
Name (_HID, EisaId ("IBM0068"))
Name (_STA, 0x0F)
Name (DHKC, 0x00)
Name (DHKB, 0x01)
Name (DHKF, 0x00)
Mutex (XDHK, 0x00)
Name (DHKW, 0x00)
Name (DHKD, 0x00)
Method (MHKC, 1, NotSerialized)
{
Store (Arg0, DHKC)
}
Method (MHKP, 0, NotSerialized)
{
Acquire (XDHK, 0xFFFF)
Store (Zero, Local1)
If (DHKW)
{
Store (DHKW, Local1)
Store (Zero, DHKW)
}
Else
{
If (DHKD)
{
Store (DHKD, Local1)
Store (Zero, DHKD)
}
}
Release (XDHK)
Return (Local1)
}
Method (MHKE, 1, NotSerialized)
{
Acquire (XDHK, 0xFFFF)
Store (Arg0, DHKB)
If (LEqual (DHKB, 0x00))
{
Store (Zero, DHKW)
Store (Zero, DHKD)
Store (Zero, DHKF)
}
Release (XDHK)
}
Method (MHKQ, 1, NotSerialized)
{
Acquire (XDHK, 0xFFFF)
If (DHKB)
{
If (DHKC)
{
If (LAnd (LNot (LLess (Arg0, 0x2000)), LLess (Arg0, 0x3000)))
{
If (DHKF)
{
Store (Zero, DHKF)
Store (Arg0, DHKW)
}
}
If (LAnd (LNot (LLess (Arg0, 0x4000)), LLess (Arg0, 0x5000)))
{
Store (Arg0, DHKD)
}
Notify (HKEY, 0x80)
}
}
Release (XDHK)
}
Method (MHKF, 0, NotSerialized)
{
Acquire (XDHK, 0xFFFF)
If (LEqual (DHKB, 0x00))
{
If (DHKC)
{
Store (One, DHKF)
}
}
Release (XDHK)
}
}
}
Name (SSLV, 0x00)
Name (DOKS, 0x00)
Name (SSST, 0x0F)
Method (_WAK, 1, NotSerialized)
{
Store (0x00, \SSLV)
Store (Zero, Local0)
\_SB.PHS2 (0x8F, Or (Arg0, 0x80))
If (\_SB.PCI.ISA.EC.ACST ())
{
Store (One, \_SB.PCI.ISA.PMGA.BREN)
}
Else
{
Store (Zero, \_SB.PCI.ISA.PMGA.BREN)
}
If (\_SB.PCI.ISA.EC.GSST ())
{
If (LNot (\SSST))
{
\_SB.PCI.ISA.SLCE.SSLC (Zero)
Store (One, Local0)
}
}
If (LNot (LEqual (\_SB.PCI.OAK._STA (), \DOKS)))
{
Store (One, Local0)
}
\_SB.PCI.OAK.SDCK (One)
If (Local0)
{
Notify (\_SB.PCI, 0x01)
}
If (LEqual (Arg0, 0x04))
{
Store (One, \_SB.PCI.IDE.SIDE)
Store (Zero, \_SB.PCI.ISA.SIDE)
Notify (\_SB.SLPB, 0x02)
}
If (LOr (LEqual (Arg0, 0x01), LEqual (Arg0, 0x03)))
{
\_SB.HKEY.MHKE (0x01)
\_SB.HKEY.MHKQ (Or (ShiftLeft (Or (Arg0, 0x20), 0x08), 0x04))
}
Return (Package (0x02)
{
0x00,
0x00
})
}
Method (_PTS, 1, NotSerialized)
{
Store (Arg0, \SSLV)
If (LEqual (\_SB.PCI.IDE.CRSF, Zero))
{
Store (\_SB.PCI.IDE.R04, \_SB.PCI.IDE.PCMD)
Store (\_SB.PCI.IDE.R20, \_SB.PCI.IDE.BMIB)
Store (\_SB.PCI.IDE.R40, \_SB.PCI.IDE.IDET)
Store (\_SB.PCI.IDE.R44, \_SB.PCI.IDE.SIDT)
Store (\_SB.PCI.IDE.R48, \_SB.PCI.IDE.UDMA)
Store (One, \_SB.PCI.IDE.CRSF)
}
If (LAnd (LNot (LLess (Arg0, 0x01)), LNot (LGreater (Arg0, 0x04))))
{
Store (\_SB.PCI.OAK._STA (), \DOKS)
Store (LNot (\_SB.PCI.ISA.PMGA.BAYP), \SSST)
\_SB.PCI.ISA.EC.SLED (0x80, 0x03)
If (LNot (LLess (Arg0, 0x03)))
{
\_SB.PCI.ISA.EC.SLED (0x01, 0x00)
}
}
If (LOr (LEqual (Arg0, 0x01), LEqual (Arg0, 0x03)))
{
\_SB.HKEY.MHKE (0x00)
}
\_SB.PHS2 (0x8F, Arg0)
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
Speak softly and carry a cellular phone.
More information about the freebsd-acpi
mailing list