You are not logged in.
I downloaded a tool designed for mac DSDT editing from the internet, for Windows (as Linux doesn't show battery properly yet).
Here's my system:
Toshiba Satellite L750D
AMD A8 APU
ATI 6620HD Discrete Graphics
On Linux, the following doesn't seem to work correctly:
- Fan spins very high and makes a lot of noise
- The battery BAT1 isn't even detected as a device and the only device under /sys/class/power_supply/ is ACAD, which is something else.
On Linux, I get the following errors which suggests a buggy DSDT table:
kyle@kyle-laptop ~ dmesg | grep ACPI
[ 0.000000] BIOS-e820: [mem 0x00000000cf486000-0x00000000cf88efff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000cfbbf000-0x00000000cfebefff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000cfebf000-0x00000000cfef5fff] ACPI data
[ 0.000000] ACPI: RSDP 00000000000fe020 00024 (v02 TOSQCI)
[ 0.000000] ACPI: XSDT 00000000cfef5120 0007C (v01 TOSQCI TOSQCI00 00000001 01000013)
[ 0.000000] ACPI: FACP 00000000cfef4000 000F4 (v04 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[ 0.000000] ACPI: DSDT 00000000cfede000 112E5 (v01 TOSQCI TOSQCI00 F0000000 ACPI 00040000)
[ 0.000000] ACPI: FACS 00000000cfc97000 00040
[ 0.000000] ACPI: HPET 00000000cfef3000 00038 (v01 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[ 0.000000] ACPI: APIC 00000000cfef2000 00084 (v02 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[ 0.000000] ACPI: MCFG 00000000cfef1000 0003C (v01 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[ 0.000000] ACPI: ASF! 00000000cfef0000 000A5 (v32 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[ 0.000000] ACPI: BOOT 00000000cfedd000 00028 (v01 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[ 0.000000] ACPI: SLIC 00000000cfedc000 00176 (v01 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[ 0.000000] ACPI: WDRT 00000000cfedb000 00047 (v01 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[ 0.000000] ACPI: MSDM 00000000cfeda000 00055 (v03 TOSQCI TOSQCI00 00000001 ACPI 00040000)
[ 0.000000] ACPI: SSDT 00000000cfed9000 00E28 (v01 AMD POWERNOW 00000001 AMD 00000001)
[ 0.000000] ACPI: SSDT 00000000cfed7000 0193D (v02 AMD ALIB 00000001 MSFT 04000000)
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] ACPI: PM-Timer IO Port: 0x408
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[ 0.000000] ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
[ 0.000000] ACPI: IRQ0 used by override.
[ 0.000000] ACPI: IRQ2 used by override.
[ 0.000000] ACPI: IRQ9 used by override.
[ 0.000000] Using ACPI (MADT) for SMP configuration information
[ 0.000000] ACPI: HPET id: 0x10228210 base: 0xfed00000
[ 0.005191] ACPI: Core revision 20120320
[ 0.005342] ACPI: Forced DSDT copy: length 0x112E5 copied locally, original unmapped
[ 0.275625] PM: Registering ACPI NVS region [mem 0xcf486000-0xcf88efff] (4231168 bytes)
[ 0.275717] PM: Registering ACPI NVS region [mem 0xcfbbf000-0xcfebefff] (3145728 bytes)
[ 0.277613] ACPI: bus type pci registered
[ 0.285292] ACPI: Added _OSI(Module Device)
[ 0.285296] ACPI: Added _OSI(Processor Device)
[ 0.285297] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.285299] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.285300] ACPI: Added _OSI(Linux)
[ 0.287480] ACPI: EC: Look up EC in DSDT
[ 0.328586] ACPI: Executed 1 blocks of module-level executable AML code
[ 0.333711] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query honored via cmdline
[ 0.334386] ACPI: Interpreter enabled
[ 0.334389] ACPI: (supports S0 S3 S4 S5)
[ 0.334404] ACPI: Using IOAPIC for interrupt routing
[ 0.340413] ACPI: EC: GPE = 0x3, I/O: command/status = 0x66, data = 0x62
[ 0.340624] ACPI: No dock devices found.
[ 0.340630] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[ 0.340779] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[ 0.367355] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[ 0.367488] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PB2_._PRT]
[ 0.367521] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PB4_._PRT]
[ 0.367545] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PB5_._PRT]
[ 0.367613] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P2P_._PRT]
[ 0.367677] pci0000:00: >Requesting ACPI _OSC control (0x1d)
[ 0.367680] pci0000:00: >ACPI _OSC request failed (AE_NOT_FOUND), returned control mask: 0x1d
[ 0.367681] ACPI _OSC control for PCIe not granted, disabling ASPM
[ 0.375952] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 7 10 11 12 14 15) *0
[ 0.376034] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 7 10 11 12 14 15) *0
[ 0.376110] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 7 10 11 12 14 15) *0
[ 0.376163] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 7 10 11 12 14 15) *0
[ 0.376204] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 7 10 11 12 14 15) *0
[ 0.376235] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 7 10 11 12 14 15) *0
[ 0.376268] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 7 10 11 12 14 15) *0
[ 0.376300] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 7 10 11 12 14 15) *0
[ 0.376629] PCI: Using ACPI for IRQ routing
[ 0.388090] pnp: PnP ACPI init
[ 0.388113] ACPI: bus type pnp registered
[ 0.388383] pnp 00:00: >Plug and Play ACPI device, IDs PNP0a08 PNP0a03 (active)
[ 0.388482] system 00:01: >Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.388640] pnp 00:02: >Plug and Play ACPI device, IDs PNP0103 (active)
[ 0.388760] pnp 00:03: >Plug and Play ACPI device, IDs PNP0200 (active)
[ 0.388819] pnp 00:04: >Plug and Play ACPI device, IDs PNP0c04 (active)
[ 0.388910] pnp 00:05: >Plug and Play ACPI device, IDs PNP0b00 (active)
[ 0.388963] pnp 00:06: >Plug and Play ACPI device, IDs PNP0800 (active)
[ 0.389048] pnp 00:07: >Plug and Play ACPI device, IDs PNP0303 (active)
[ 0.389133] pnp 00:08: >Plug and Play ACPI device, IDs TOS0200 SYN1000 SYN0002 PNP0f13 (active)
[ 0.389261] system 00:09: >Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.389348] system 00:0a: >Plug and Play ACPI device, IDs PNP0c01 (active)
[ 0.389762] pnp: PnP ACPI: found 11 devices
[ 0.389764] ACPI: ACPI bus type pnp unregistered
[ 1.799341] ACPI: bus type usb registered
[ 6.119883] toshiba_bluetooth: Detected Toshiba ACPI Bluetooth device - installing RFKill handler
[ 6.162801] ACPI: acpi_idle registered with cpuidle
[ 6.189958] ACPI: Power Button [PWRB]
[ 6.190091] ACPI: Lid Switch [LID]
[ 6.190142] ACPI: Power Button [PWRF]
[ 6.550426] ACPI Exception: AE_AML_PACKAGE_LIMIT, Index (0x0000000000000011) is beyond end of object (20120320/exoparg2-418)
[ 6.550437] ACPI Error: Method parse/execution failed [\_SB_.BAT1.UBIX] (Node ffff880203e8a168), AE_AML_PACKAGE_LIMIT (20120320/psparse-536)
[ 6.550443] ACPI Error: Method parse/execution failed [\_SB_.BAT1._BIX] (Node ffff880203e8a0f0), AE_AML_PACKAGE_LIMIT (20120320/psparse-536)
[ 6.550449] ACPI Exception: AE_AML_PACKAGE_LIMIT, Evaluating _BIX (20120320/battery-419)
[ 6.595368] ACPI: AC Adapter [ACAD] (on-line)
[ 6.747736] ACPI: Video Device [VGA] (multi-head: yes rom: no post: no)
[ 6.758044] ACPI: Thermal Zone [THRM] (55 C)
[ 6.758620] ACPI: Video Device [VGA1] (multi-head: yes rom: no post: no)
[ 7.772864] toshiba_acpi: Toshiba Laptop ACPI Extras version 0.19
[ 7.876001] ACPI Warning: 0x0000000000000b00-0x0000000000000b07 SystemIO conflicts with Region \_SB_.PCI0.SMBS.SMB0 1 (20120320/utaddress-251)
[ 7.876019] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 19.440618] ACPI: Power Button [PWRB]
[ 19.441155] ACPI: Lid Switch [LID]
[ 19.441886] ACPI: Power Button [PWRF]
kyle@kyle-laptop ~
Of interest;
[ 6.550426] ACPI Exception: AE_AML_PACKAGE_LIMIT, Index (0x0000000000000011) is beyond end of object (20120320/exoparg2-418)
[ 6.550437] ACPI Error: Method parse/execution failed [\_SB_.BAT1.UBIX] (Node ffff880203e8a168), AE_AML_PACKAGE_LIMIT (20120320/psparse-536)
[ 6.550443] ACPI Error: Method parse/execution failed [\_SB_.BAT1._BIX] (Node ffff880203e8a0f0), AE_AML_PACKAGE_LIMIT (20120320/psparse-536)
[ 6.550449] ACPI Exception: AE_AML_PACKAGE_LIMIT, Evaluating _BIX (20120320/battery-419)
I have no idea how to fix this. So, I'm outsourcing help
Here's the original DSDT which I extract:
DefinitionBlock ("DSDT.aml", "DSDT", 1, "TOSQCI", "TOSQCI00", 0xF0000000)
{
External (ALIB, MethodObj) // 2 Arguments
External (\_SB_.ALIB, MethodObj) // 5 Arguments
External (\_PR_.C003._PPC)
External (\_PR_.C002._PPC)
External (\_PR_.C001._PPC)
External (\_PR_.C000._PPC, IntObj)
OperationRegion (DBG0, SystemIO, 0x80, One)
Field (DBG0, ByteAcc, NoLock, Preserve)
{
IO80, 8
}
OperationRegion (DBG1, SystemIO, 0x80, 0x02)
Field (DBG1, WordAcc, NoLock, Preserve)
{
P80H, 16
}
OperationRegion (ACMS, SystemIO, 0x72, 0x02)
Field (ACMS, ByteAcc, NoLock, Preserve)
{
INDX, 8,
DATA, 8
}
OperationRegion (PSMI, SystemIO, 0xB0, 0x02)
Field (PSMI, ByteAcc, NoLock, Preserve)
{
APMC, 8,
APMD, 8
}
OperationRegion (PMRG, SystemIO, 0x0CD6, 0x02)
Field (PMRG, ByteAcc, NoLock, Preserve)
{
PMRI, 8,
PMRD, 8
}
IndexField (PMRI, PMRD, ByteAcc, NoLock, Preserve)
{
Offset (0x24),
MMSO, 32,
Offset (0x50),
HPAD, 32,
Offset (0x60),
P1EB, 16,
Offset (0xC8),
, 2,
SPRE, 1,
TPDE, 1,
Offset (0xF0),
, 3,
RSTU, 1
}
OperationRegion (P1E0, SystemIO, P1EB, 0x04)
Field (P1E0, ByteAcc, NoLock, Preserve)
{
, 14,
PEWS, 1,
WSTA, 1,
, 14,
PEWD, 1
}
OperationRegion (IOCC, SystemIO, 0x0400, 0x80)
Field (IOCC, ByteAcc, NoLock, Preserve)
{
Offset (0x01),
, 2,
RTCS, 1
}
Name (PRWP, Package (0x02)
{
Zero,
Zero
})
Method (GPRW, 2, NotSerialized)
{
Store (Arg0, Index (PRWP, Zero))
Store (Arg1, Index (PRWP, One))
If (LAnd (LEqual (DAS3, Zero), LEqual (DAS1, Zero)))
{
If (LLessEqual (Arg1, 0x03))
{
Store (Zero, Index (PRWP, One))
}
}
Else
{
If (LAnd (LEqual (DAS3, Zero), LEqual (Arg1, 0x03)))
{
Store (Zero, Index (PRWP, One))
}
If (LAnd (LEqual (DAS1, Zero), LEqual (Arg1, One)))
{
Store (Zero, Index (PRWP, One))
}
}
Return (PRWP)
}
Method (SPTS, 1, NotSerialized)
{
If (LEqual (Arg0, 0x03))
{
Store (Zero, RSTU)
}
Store (One, \_SB.PCI0.SMBS.CLPS)
Store (One, \_SB.PCI0.SMBS.SLPS)
Store (PEWS, PEWS)
}
Method (SWAK, 1, NotSerialized)
{
If (LEqual (Arg0, 0x03))
{
Store (One, RSTU)
}
Store (PEWS, PEWS)
Store (One, \_SB.PCI0.SMBS.PWDE)
Store (Zero, PEWD)
}
Method (CHKH, 0, NotSerialized)
{
If (\_SB.PCI0.SMBS.G05S)
{
Store (One, \_SB.PCI0.SMBS.G05T)
}
Else
{
Store (Zero, \_SB.PCI0.SMBS.G05T)
}
Store (Not (\_SB.PCI0.SMBS.GE16), \_SB.PCI0.SMBS.G16T)
}
OperationRegion (GNVS, SystemMemory, 0xCFEBCE18, 0x00000013)
Field (GNVS, AnyAcc, NoLock, Preserve)
{
DAS1, 8,
DAS3, 8,
TNBH, 8,
TCP0, 8,
TCP1, 8,
ATNB, 8,
PCP0, 8,
PCP1, 8,
PWMN, 8,
LPTY, 8,
M92D, 8,
WKPM, 8,
ALST, 8,
AFUC, 8,
EXUS, 8,
AIRC, 8,
WLSH, 8,
TSSS, 8,
ODZC, 8
}
OperationRegion (OGNS, SystemMemory, 0xCFEBDD98, 0x00000255)
Field (OGNS, AnyAcc, Lock, Preserve)
{
OG00, 8,
OG01, 8,
OG02, 8,
OG03, 8,
OG04, 8,
OG05, 8,
OG06, 8,
OG07, 8,
OG08, 8,
OG09, 8,
OG10, 8,
OG11, 8,
OG12, 8,
OG13, 8,
OG14, 8,
OG15, 8,
OG16, 8,
OG17, 8,
OG18, 8,
OG19, 8,
OG20, 8,
BLK0, 32,
BLK1, 32,
BLK2, 32,
BLK3, 32,
BLK4, 32,
BLK5, 32,
BTEN, 1,
WLAN, 1,
WN3G, 1,
ENSR, 2,
CCDE, 1,
DACB, 1,
TPDV, 1,
WOLI, 1,
CIRE, 1,
FGPE, 1,
HDME, 1,
CPUD, 1,
PCIL, 1,
FBBS, 1,
SWKS, 1,
OWNS, 4096,
DVDI, 160,
OWN0, 8,
OWN1, 8,
HEUE, 8,
BEUE, 8,
VEVT, 16,
FEVT, 16,
NEVT, 16,
OPR0, 8,
OPR1, 8,
OPR2, 8,
KBIN, 8,
SLPB, 32
}
OperationRegion (NVST, SystemMemory, 0xCFEBED61, 0x0000012A)
Field (NVST, AnyAcc, Lock, Preserve)
{
SMIF, 8,
PRM0, 8,
PRM1, 8,
BRTL, 8,
TLST, 8,
IGDS, 8,
LCDA, 16,
CSTE, 16,
NSTE, 16,
CADL, 16,
PADL, 16,
LIDS, 8,
PWRS, 8,
BVAL, 32,
ADDL, 16,
BCMD, 8,
DID, 32,
INFO, 2048,
TOML, 8,
TOMH, 8,
CEBP, 8,
C0LS, 8,
C1LS, 8,
C0HS, 8,
C1HS, 8,
ROMS, 32,
MUXF, 8,
PDDN, 8
}
Method (SCMP, 2, NotSerialized)
{
Name (STG1, Buffer (0x50) {})
Name (STG2, Buffer (0x50) {})
Store (Arg0, STG1)
Store (Arg1, STG2)
If (LNotEqual (SizeOf (Arg0), SizeOf (Arg1)))
{
Return (Zero)
}
Store (Zero, Local0)
While (LLess (Local0, SizeOf (Arg0)))
{
If (LNotEqual (DerefOf (Index (STG1, Local0)), DerefOf (Index (
STG2, Local0))))
{
Return (Zero)
}
Increment (Local0)
}
Return (One)
}
Name (WNOS, Zero)
Name (MYOS, Zero)
Name (HTTS, Zero)
Name (OSTB, Ones)
Name (TPOS, Zero)
Name (LINX, Zero)
Name (OSSP, Zero)
Method (CKOS, 0, NotSerialized)
{
If (LEqual (WNOS, Zero))
{
If (SCMP (_OS, "Microsoft Windows"))
{
Store (One, WNOS)
}
If (SCMP (_OS, "Microsoft Windows NT"))
{
Store (0x02, WNOS)
}
If (SCMP (_OS, "Microsoft WindowsME: Millennium Edition"))
{
Store (0x03, WNOS)
}
If (SCMP (_OS, "Windows 2012"))
{
Store (0x07, WNOS)
}
If (CondRefOf (\_OSI, Local0))
{
If (SCMP (_OS, "Windows 2006"))
{
Store (0x05, WNOS)
}
Else
{
If (SCMP (_OS, "Windows 2009"))
{
Store (0x06, WNOS)
}
Else
{
Store (0x04, WNOS)
}
}
}
}
Return (WNOS)
}
Method (SEQL, 2, Serialized)
{
Store (SizeOf (Arg0), Local0)
Store (SizeOf (Arg1), Local1)
If (LNotEqual (Local0, Local1))
{
Return (Zero)
}
Name (BUF0, Buffer (Local0) {})
Store (Arg0, BUF0)
Name (BUF1, Buffer (Local0) {})
Store (Arg1, BUF1)
Store (Zero, Local2)
While (LLess (Local2, Local0))
{
Store (DerefOf (Index (BUF0, Local2)), Local3)
Store (DerefOf (Index (BUF1, Local2)), Local4)
If (LNotEqual (Local3, Local4))
{
Return (Zero)
}
Increment (Local2)
}
Return (One)
}
Method (OSTP, 0, NotSerialized)
{
If (LEqual (OSTB, Ones))
{
If (CondRefOf (\_OSI, Local0))
{
Store (Zero, OSTB)
Store (Zero, TPOS)
If (_OSI ("Windows 2001"))
{
Store (0x08, OSTB)
Store (0x08, TPOS)
}
If (_OSI ("Windows 2001.1"))
{
Store (0x20, OSTB)
Store (0x20, TPOS)
}
If (_OSI ("Windows 2001 SP1"))
{
Store (0x10, OSTB)
Store (0x10, TPOS)
}
If (_OSI ("Windows 2001 SP2"))
{
Store (0x11, OSTB)
Store (0x11, TPOS)
}
If (_OSI ("Windows 2001 SP3"))
{
Store (0x12, OSTB)
Store (0x12, TPOS)
}
If (_OSI ("Windows 2006"))
{
Store (0x40, OSTB)
Store (0x40, TPOS)
}
If (_OSI ("Windows 2006 SP1"))
{
Store (0x41, OSTB)
Store (0x41, TPOS)
Store (One, OSSP)
}
If (_OSI ("Windows 2009"))
{
Store (One, OSSP)
Store (0x50, OSTB)
Store (0x50, TPOS)
}
If (_OSI ("Linux"))
{
Store (One, LINX)
Store (0x80, OSTB)
Store (0x80, TPOS)
}
}
Else
{
If (CondRefOf (\_OS, Local0))
{
If (SEQL (_OS, "Microsoft Windows"))
{
Store (One, OSTB)
Store (One, TPOS)
}
Else
{
If (SEQL (_OS, "Microsoft WindowsME: Millennium Edition"))
{
Store (0x02, OSTB)
Store (0x02, TPOS)
}
Else
{
If (SEQL (_OS, "Microsoft Windows NT"))
{
Store (0x04, OSTB)
Store (0x04, TPOS)
}
Else
{
Store (Zero, OSTB)
Store (Zero, TPOS)
}
}
}
}
Else
{
Store (Zero, OSTB)
Store (Zero, TPOS)
}
}
}
Return (OSTB)
}
Method (VTOB, 1, NotSerialized)
{
Store (One, Local0)
ShiftLeft (Local0, Arg0, Local0)
Return (Local0)
}
Method (BTOV, 1, NotSerialized)
{
ShiftRight (Arg0, One, Local0)
Store (Zero, Local1)
While (Local0)
{
Increment (Local1)
ShiftRight (Local0, One, Local0)
}
Return (Local1)
}
Method (MKWD, 2, NotSerialized)
{
If (And (Arg1, 0x80))
{
Store (0xFFFF0000, Local0)
}
Else
{
Store (Zero, Local0)
}
Or (Local0, Arg0, Local0)
Or (Local0, ShiftLeft (Arg1, 0x08), Local0)
Return (Local0)
}
Method (POSW, 1, NotSerialized)
{
If (And (Arg0, 0x8000))
{
If (LEqual (Arg0, 0xFFFF))
{
Return (Ones)
}
Else
{
Not (Arg0, Local0)
Increment (Local0)
And (Local0, 0xFFFF, Local0)
Return (Local0)
}
}
Else
{
Return (Arg0)
}
}
Method (GBFE, 3, NotSerialized)
{
CreateByteField (Arg0, Arg1, TIDX)
Store (TIDX, Arg2)
}
Method (PBFE, 3, NotSerialized)
{
CreateByteField (Arg0, Arg1, TIDX)
Store (Arg2, TIDX)
}
Method (ITOS, 1, NotSerialized)
{
Store (Buffer (0x09)
{
/* 0000 */ 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00
}, Local0)
Store (Buffer (0x11)
{
"0123456789ABCDEF"
}, Local7)
Store (0x08, Local1)
Store (Zero, Local2)
Store (Zero, Local3)
While (Local1)
{
Decrement (Local1)
And (ShiftRight (Arg0, ShiftLeft (Local1, 0x02)), 0x0F, Local4)
If (Local4)
{
Store (Ones, Local3)
}
If (Local3)
{
GBFE (Local7, Local4, RefOf (Local5))
PBFE (Local0, Local2, Local5)
Increment (Local2)
}
}
Return (Local0)
}
Scope (_PR)
{
Processor (C000, 0x00, 0x00000410, 0x06)
{
}
Processor (C001, 0x01, 0x00000000, 0x00)
{
}
Processor (C002, 0x02, 0x00000000, 0x00)
{
}
Processor (C003, 0x03, 0x00000000, 0x00)
{
}
}
Name (_S0, Package (0x04)
{
Zero,
Zero,
Zero,
Zero
})
If (LEqual (DAS1, One)) {}
If (LEqual (DAS3, One))
{
Name (_S3, Package (0x04)
{
0x03,
0x03,
Zero,
Zero
})
}
Name (_S4, Package (0x04)
{
0x04,
0x04,
Zero,
Zero
})
Name (_S5, Package (0x04)
{
0x05,
0x05,
Zero,
Zero
})
Scope (_GPE)
{
Method (_L1C, 0, NotSerialized)
{
Store (0xFFFF, Local1)
Store (\_SB.PCI0.SMBS.MIN, Local2)
ShiftLeft (Local2, 0x08, Local1)
Store (\_SB.PCI0.SMBS.SEC, Local2)
Or (Local1, Local2, Local1)
Store (Local1, P80H)
}
Method (_L08, 0, NotSerialized)
{
Notify (\_SB.PCI0.PB2, 0x02)
Notify (\_SB.PCI0.PB3, 0x02)
Notify (\_SB.PCI0.PB4, 0x02)
Notify (\_SB.PCI0.PB5, 0x02)
Notify (\_SB.PCI0.PB6, 0x02)
Notify (\_SB.PCI0.PB7, 0x02)
Notify (\_SB.PCI0.SPB0, 0x02)
Notify (\_SB.PCI0.SPB1, 0x02)
Notify (\_SB.PCI0.SPB2, 0x02)
Notify (\_SB.PCI0.SPB3, 0x02)
}
Name (XX05, Buffer (One)
{
0x05
})
Name (XX06, Buffer (One)
{
0x05
})
Method (_L05, 0, NotSerialized)
{
Name (HPOK, Zero)
Sleep (0xC8)
If (\_SB.PCI0.SMBS.GE05)
{
Store (Zero, \_SB.PCI0.SMBS.G05T)
}
Else
{
Store (One, \_SB.PCI0.SMBS.G05T)
}
Notify (\_SB.PCI0.SPB2, Zero)
}
Method (_L18, 0, NotSerialized)
{
Notify (\_SB.PCI0.OHC1, 0x02)
Notify (\_SB.PCI0.OHC2, 0x02)
Notify (\_SB.PCI0.OHC3, 0x02)
Notify (\_SB.PCI0.OHC4, 0x02)
Notify (\_SB.PCI0.EHC1, 0x02)
Notify (\_SB.PCI0.EHC2, 0x02)
Notify (\_SB.PCI0.EHC3, 0x02)
Notify (\_SB.PCI0.XHC0, 0x02)
Notify (\_SB.PCI0.XHC1, 0x02)
Notify (\_SB.PWRB, 0x02)
}
Method (_L09, 0, NotSerialized)
{
Store (0x4400, P80H)
Store (\_SB.PCI0.SMBS.O012, Local0)
Or (Local0, \_SB.PCI0.SMBS.O013, Local0)
Or (Local0, \_SB.PCI0.SMBS.O014, Local0)
CreateWordField (XX05, Zero, SZZE)
CreateField (XX05, 0x10, 0x03, FUCC)
CreateField (XX05, 0x13, 0x05, DEVV)
CreateByteField (XX05, 0x03, BUSS)
CreateByteField (XX05, 0x04, HPST)
Store (0x05, SZZE)
Store (Zero, BUSS)
Store (0x05, DEVV)
Store (Zero, FUCC)
CreateWordField (XX06, Zero, SZZ6)
CreateField (XX06, 0x10, 0x03, FUC6)
CreateField (XX06, 0x13, 0x05, DEV6)
CreateByteField (XX06, 0x03, BUS6)
CreateByteField (XX06, 0x04, HPS6)
Store (0x05, SZZ6)
Store (Zero, BUS6)
Store (0x06, DEV6)
Store (Zero, FUC6)
If (LEqual (Local0, One))
{
If (LEqual (WLSH, Zero))
{
Store (One, \_SB.PCI0.SMBS.O012)
Store (One, \_SB.PCI0.SMBS.O013)
Store (One, \_SB.PCI0.SMBS.O014)
Store (Zero, \_SB.PCI0.SMBS.E012)
Store (Zero, \_SB.PCI0.SMBS.E013)
Store (Zero, \_SB.PCI0.SMBS.E014)
}
Else
{
Store (Zero, HPST)
\_SB.ALIB (0x06, XX05, \_SB.ALIB (0x06, XX06, Store (One, \_SB.PCI0.SMBS.O012), Store (
One, \_SB.PCI0.SMBS.O013), Store (One, \_SB.PCI0.SMBS.O014)), Store (Zero, \_SB.PCI0.SMBS.E012), Store (Zero, \_SB.PCI0.SMBS.E013))
Store (Zero, \_SB.PCI0.SMBS.E014)
}
}
If (LEqual (Local0, Zero))
{
If (LEqual (WLSH, Zero))
{
Store (One, \_SB.PCI0.SMBS.E012)
Store (One, \_SB.PCI0.SMBS.E013)
Store (One, \_SB.PCI0.SMBS.E014)
Store (Zero, \_SB.PCI0.SMBS.O012)
Store (Zero, \_SB.PCI0.SMBS.O013)
Store (Zero, \_SB.PCI0.SMBS.O014)
}
Else
{
Store (One, \_SB.PCI0.SMBS.E012)
Store (One, \_SB.PCI0.SMBS.E013)
Store (One, \_SB.PCI0.SMBS.E014)
Store (Zero, \_SB.PCI0.SMBS.O012)
Store (Zero, \_SB.PCI0.SMBS.O013)
Store (Zero, \_SB.PCI0.SMBS.O014)
Store (One, HPST)
\_SB.ALIB (0x06, XX05, \_SB.ALIB (0x06, XX06, \_SB.PCI0.PB5.XPPR (Zero), Sleep (0x14),
Notify (\_SB.PCI0.PB5, Zero)), Notify (\_SB.PCI0.PB6, Zero), Notify (\_SB.PCI0.SPB0, Zero))
}
}
}
Method (_L0E, 0, NotSerialized)
{
CreateWordField (XX05, Zero, SZZE)
CreateField (XX05, 0x10, 0x03, FUCC)
CreateField (XX05, 0x13, 0x05, DEVV)
CreateByteField (XX05, 0x03, BUSS)
CreateByteField (XX05, 0x04, HPST)
Store (0x05, SZZE)
Store (Zero, BUSS)
Store (0x03, DEVV)
Store (Zero, FUCC)
Name (HPOK, Zero)
If (LGreaterEqual (OSTB, 0x40))
{
Sleep (0x14)
If (\_SB.PCI0.SMBS.GE14)
{
Store (Zero, \_SB.PCI0.SMBS.G14T)
Store (0x18, INFO)
Store (0x86, BCMD)
Sleep (0x64)
Sleep (0x64)
If (CondRefOf (\_SB.ALIB, Local0))
{
Store (Zero, HPST)
\_SB.ALIB (0x06, XX05, Else
{
\_SB.PCI0.PB3.XPPR (Zero)
}, Store (0x0F1A, P80H), Else
{
Store (One, \_SB.PCI0.SMBS.G14T)
If (CondRefOf (\_SB.ALIB, Local0))
{
Store (One, HPST)
\_SB.ALIB (0x06, XX05, Else
{
\_SB.PCI0.PB3.XPPR (One)
}, Store (0x021A, P80H), Else
{
Sleep (0x14)
If (\_SB.PCI0.SMBS.GE14)
{
Store (Zero, \_SB.PCI0.SMBS.G14T)
Store (One, \_SB.PCI0.PB3.PDC2)
Store (\_SB.PCI0.PB3.VGA.DVID, Local7)
Sleep (0x0A)
Store (One, Local4)
Store (0x05, Local5)
While (LAnd (Local4, Local5))
{
Store (\_SB.PCI0.PB3.XPRD (0xA5), Local6)
And (Local6, 0x7F, Local6)
If (LLessEqual (Local6, 0x04))
{
Store (Zero, Local4)
}
Else
{
Store (\_SB.PCI0.PB3.VGA.DVID, Local7)
Sleep (0x05)
Decrement (Local5)
}
}
If (CondRefOf (\_SB.ALIB, Local0))
{
Store (Zero, HPST)
\_SB.ALIB (0x06, XX05, Else
{
\_SB.PCI0.PB3.XPPR (Zero)
}, Store (One, HPOK), Store (0x1F1A, P80H))
}
}
Else
{
Store (One, \_SB.PCI0.SMBS.G14T)
Store (Zero, HPOK)
If (CondRefOf (\_SB.ALIB, Local0))
{
Store (One, HPST)
\_SB.ALIB (0x06, XX05, Else
{
\_SB.PCI0.PB3.XPPR (One)
}, Store (Zero, Local2), While (LLess (Local2, 0x0F))
{
Store (One, \_SB.PCI0.PB3.PDC2)
Store (One, Local4)
Store (0xC8, Local5)
While (LAnd (Local4, Local5))
{
Store (\_SB.PCI0.PB3.XPRD (0xA5), Local6)
And (Local6, 0x7F, Local6)
If (LAnd (LGreaterEqual (Local6, 0x10), LNotEqual (Local6, 0x7F)))
{
Store (Zero, Local4)
}
Else
{
Sleep (0x05)
Decrement (Local5)
}
}
If (LNot (Local4))
{
Store (\_SB.PCI0.PB3.XPDL (), Local5)
If (Local5)
{
\_SB.PCI0.PB3.XPRT ()
Sleep (0x05)
Increment (Local2)
}
Else
{
Store (0x18, INFO)
Store (0x87, BCMD)
If (LEqual (\_SB.PCI0.PB3.XPR2 (), Ones))
{
Store (One, HPOK)
Store (0x10, Local2)
}
Else
{
Store (Zero, HPOK)
Store (0x10, Local2)
}
}
}
Else
{
Store (0x10, Local2)
}
})
}
Store (0x121A, P80H)
If (LNot (HPOK))
{
Store (\_SB.PCI0.PB3.VGA.DVID, Local7)
Sleep (0x0A)
Store (One, Local4)
Store (0x05, Local5)
While (LAnd (Local4, Local5))
{
Store (\_SB.PCI0.PB3.XPRD (0xA5), Local6)
And (Local6, 0x7F, Local6)
If (LLessEqual (Local6, 0x04))
{
Store (Zero, Local4)
}
Else
{
Store (\_SB.PCI0.PB3.VGA.DVID, Local7)
Sleep (0x05)
Decrement (Local5)
}
}
If (CondRefOf (\_SB.ALIB, Local0))
{
Store (Zero, HPST)
\_SB.ALIB (0x06, XX05, Else
{
\_SB.PCI0.PB3.XPPR (Zero)
}, If (HPOK)
{
Notify (\_SB.PCI0.PB3, Zero)
})
}
}
}
})
}
})
}
}
}
}
Method (_L10, 0, NotSerialized)
{
If (LEqual (ODZC, One))
{
If (\_SB.PCI0.SMBS.G16T)
{
Sleep (0x14)
If (\_SB.PCI0.SMBS.GE16)
{
Store (Zero, \_SB.PCI0.SMBS.G16T)
If (LOr (LEqual (\_SB.PCI0.SATA.VIDI, 0x78001022), LEqual (\_SB.PCI0.SATA.VIDI, 0x78011022)))
{
Notify (\_SB.PCI0.AFD, 0x80)
}
If (LEqual (\_SB.PCI0.SATA.VIDI, 0x78041022))
{
If (LEqual (\_SB.PCI0.AFD.HDD0, One))
{
Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
}
Else
{
Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
}
}
Store (0xDF15, P80H)
}
}
Else
{
Sleep (0x14)
If (LNot (\_SB.PCI0.SMBS.GE16))
{
Store (One, \_SB.PCI0.SMBS.G16T)
If (LOr (LEqual (\_SB.PCI0.SATA.VIDI, 0x78001022), LEqual (\_SB.PCI0.SATA.VIDI, 0x78011022)))
{
Notify (\_SB.PCI0.AFD, 0x80)
}
If (LEqual (\_SB.PCI0.SATA.VIDI, 0x78041022))
{
If (LEqual (\_SB.PCI0.AFD.HDD0, One))
{
Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
}
Else
{
Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
}
}
Store (0xDF14, P80H)
}
}
}
}
}
Name (PICM, Zero)
Name (GPIC, Zero)
Method (_PIC, 1, NotSerialized)
{
Store (Arg0, PICM)
Store (Arg0, GPIC)
If (GPIC)
{
\_SB.DSPI ()
}
}
Name (PTSF, Zero)
Method (_PTS, 1, NotSerialized)
{
Store (One, PTSF)
Store (One, \_SB.PCI0.LPC0.EC0.IESQ)
SPTS (Arg0)
If (LEqual (Arg0, One))
{
Store (0x51, IO80)
\_SB.S80H (0x51)
}
If (LEqual (Arg0, 0x03))
{
If (\_SB.SSTS)
{
Store (Zero, \_SB.PCI0.LPC0.EC0.WLID)
}
Else
{
Store (One, \_SB.PCI0.LPC0.EC0.WLID)
}
Store (0x53, IO80)
\_SB.S80H (0x53)
Store (One, \_SB.PCI0.SMBS.SLPS)
}
If (LEqual (Arg0, 0x04))
{
Store (0x54, IO80)
\_SB.S80H (0x54)
Store (One, \_SB.PCI0.SMBS.SLPS)
Store (One, RSTU)
Store (One, \_SB.INS4)
Store (One, \_SB.PCI0.LPC0.EC0.FLS4)
If (\_SB.SSTS)
{
Store (Zero, \_SB.PCI0.LPC0.EC0.WLID)
}
Else
{
Store (One, \_SB.PCI0.LPC0.EC0.WLID)
}
}
If (LEqual (Arg0, 0x05))
{
Store (0x55, IO80)
\_SB.S80H (0x55)
\_SB.GSMI (0x03)
}
}
Method (_WAK, 1, NotSerialized)
{
Store (Zero, PTSF)
SWAK (Arg0)
If (LEqual (Arg0, One))
{
Store (0xE1, IO80)
\_SB.S80H (0xE1)
Store (0xF1, \_SB.PCI0.P2P.PR4B)
}
If (LEqual (Arg0, 0x03))
{
Store (0x55, \_SB.INS3)
Store (One, \_SB.PCI0.LPC0.EC0.CPLE)
Store (0xE3, IO80)
\_SB.S80H (0xE3)
CHKH ()
If (\_SB.ECOK)
{
If (LGreaterEqual (TPOS, 0x40))
{
If (LEqual (TPOS, 0x80))
{
Store (Zero, \_SB.PCI0.LPC0.EC0.OSTP)
}
Else
{
Store (One, \_SB.PCI0.LPC0.EC0.OSTP)
}
}
Else
{
Store (Zero, \_SB.PCI0.LPC0.EC0.OSTP)
}
Notify (\_SB.BAT1, 0x81)
}
Notify (\_SB.PWRB, 0x02)
}
If (LEqual (Arg0, 0x04))
{
Store (0x55, \_SB.INS3)
Store (Zero, \_SB.INS4)
Store (0xE4, IO80)
\_SB.S80H (0xE4)
\_SB.PCI0._INI ()
\_SB.PCI0.EHC1.STOS ()
If (\_SB.ECOK)
{
If (LGreaterEqual (TPOS, 0x40))
{
If (LEqual (TPOS, 0x80))
{
Store (Zero, \_SB.PCI0.LPC0.EC0.OSTP)
}
Else
{
Store (One, \_SB.PCI0.LPC0.EC0.OSTP)
}
}
Else
{
Store (Zero, \_SB.PCI0.LPC0.EC0.OSTP)
}
Notify (\_SB.BAT1, 0x81)
}
Notify (\_SB.PWRB, 0x02)
Return (Zero)
}
}
Scope (_SI)
{
Method (_SST, 1, NotSerialized)
{
If (LEqual (Arg0, One))
{
Store ("===== SST Working =====", Debug)
}
If (LEqual (Arg0, 0x02))
{
Store ("===== SST Waking =====", Debug)
}
If (LEqual (Arg0, 0x03))
{
Store ("===== SST Sleeping =====", Debug)
}
If (LEqual (Arg0, 0x04))
{
Store ("===== SST Sleeping S4 =====", Debug)
}
}
}
Scope (_SB)
{
Name (ECOK, One)
Name (INS3, Zero)
Name (INS4, One)
Name (WLWF, Zero)
Name (L3WF, Zero)
Name (DCNT, Zero)
Name (SSTS, Zero)
Name (LDSS, Zero)
Method (GBFE, 3, NotSerialized)
{
CreateByteField (Arg0, Arg1, TIDX)
Store (TIDX, Arg2)
}
Method (PBFE, 3, NotSerialized)
{
CreateByteField (Arg0, Arg1, TIDX)
Store (Arg2, TIDX)
}
Method (ITOS, 1, NotSerialized)
{
Store (Buffer (0x09)
{
/* 0000 */ 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00
}, Local0)
Store (Buffer (0x11)
{
"0123456789ABCDEF"
}, Local7)
Store (0x08, Local1)
Store (Zero, Local2)
Store (Zero, Local3)
While (Local1)
{
Decrement (Local1)
And (ShiftRight (Arg0, ShiftLeft (Local1, 0x02)), 0x0F, Local4)
If (Local4)
{
Store (Ones, Local3)
}
If (Local3)
{
GBFE (Local7, Local4, RefOf (Local5))
PBFE (Local0, Local2, Local5)
Increment (Local2)
}
}
Return (Local0)
}
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
Method (_STA, 0, NotSerialized)
{
Return (0x0B)
}
}
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A08"))
Name (_CID, EisaId ("PNP0A03"))
Name (_ADR, Zero)
OperationRegion (SCTH, PCI_Config, 0x7A, One)
Field (SCTH, ByteAcc, NoLock, Preserve)
{
RSMF, 1
}
Method (_INI, 0, NotSerialized)
{
If (LEqual (GPIC, Zero)) {}
Else
{
DSPI ()
}
OSTP ()
Store (0x07D0, MYOS)
If (CondRefOf (\_OSI, Local0))
{
If (_OSI ("Linux"))
{
Store (0x03E8, MYOS)
}
If (_OSI ("Windows 2001"))
{
Store (0x07D1, MYOS)
}
If (_OSI ("Windows 2001 SP1"))
{
Store (0x07D1, MYOS)
}
If (_OSI ("Windows 2001 SP2"))
{
Store (0x07D2, MYOS)
}
If (_OSI ("Windows 2006"))
{
Store (0x07D6, MYOS)
}
If (_OSI ("Windows 2009"))
{
Store (0x07D9, MYOS)
}
If (_OSI ("Windows 2012"))
{
Store (0x07DC, MYOS)
}
}
}
OperationRegion (NBMS, PCI_Config, 0x60, 0x08)
Field (NBMS, DWordAcc, NoLock, Preserve)
{
MIDX, 32,
MIDR, 32
}
Mutex (NBMM, 0x00)
Method (NBMR, 1, NotSerialized)
{
Acquire (NBMM, 0xFFFF)
And (Arg0, 0x7F, Local0)
Store (Local0, MIDX)
Store (MIDR, Local0)
Store (0x7F, MIDX)
Release (NBMM)
Return (Local0)
}
Method (NBMW, 2, NotSerialized)
{
Acquire (NBMM, 0xFFFF)
And (Arg0, 0x7F, Local0)
Or (Local0, 0x80, Local0)
Store (Local0, MIDX)
Store (Arg1, MIDR)
Store (And (Local0, 0x7F, Local0), MIDX)
Release (NBMM)
}
OperationRegion (NBXP, PCI_Config, 0xE0, 0x08)
Field (NBXP, DWordAcc, NoLock, Preserve)
{
NBXI, 32,
NBXD, 32
}
Mutex (NBXM, 0x00)
Method (NBXR, 1, NotSerialized)
{
Acquire (NBXM, 0xFFFF)
Store (Arg0, NBXI)
Store (NBXD, Local0)
Store (Zero, NBXI)
Release (NBXM)
Return (Local0)
}
Method (NBXW, 2, NotSerialized)
{
Acquire (NBXM, 0xFFFF)
Store (Arg0, NBXI)
Store (Arg1, NBXD)
Store (Zero, NBXI)
Release (NBXM)
}
Method (XPTR, 2, NotSerialized)
{
If (LAnd (LLess (Arg0, 0x02), LGreater (Arg0, 0x07)))
{
Return (Zero)
}
Else
{
If (LLess (Arg0, 0x04))
{
Subtract (Arg0, 0x02, Local1)
Store (0x01310800, Local0)
}
Else
{
Subtract (Arg0, 0x04, Local1)
Store (0x01300900, Local0)
}
Add (Local0, ShiftLeft (Local1, 0x08), Local0)
ShiftLeft (Local0, Local1, Local0)
NBXW (Local0, Arg1)
Return (Ones)
}
}
Method (XPLP, 2, NotSerialized)
{
}
Method (XPLL, 2, NotSerialized)
{
}
Name (_UID, One)
Name (_BBN, Zero)
Name (SUPP, Zero)
Name (CTRL, Zero)
Name (AMHP, Zero)
Method (XOSC, 4, NotSerialized)
{
CreateDWordField (Arg3, Zero, CDW1)
CreateDWordField (Arg3, 0x04, CDW2)
CreateDWordField (Arg3, 0x08, CDW3)
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40,
/* 0008 */ 0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
}))
{
Store (CDW2, SUPP)
Store (CDW3, CTRL)
And (CTRL, 0x1D, CTRL)
If (Not (And (CDW1, One)))
{
If (And (CTRL, One)) {}
If (And (CTRL, 0x10)) {}
}
If (LNotEqual (Arg1, One))
{
Or (CDW1, 0x08, CDW1)
}
If (LNotEqual (CDW3, CTRL))
{
Or (CDW1, 0x10, CDW1)
}
Store (CTRL, CDW3)
Return (Arg3)
}
Else
{
Or (CDW1, 0x04, CDW1)
Return (Arg3)
}
}
Method (TOM, 0, NotSerialized)
{
Multiply (TOML, 0x00010000, Local0)
Multiply (TOMH, 0x01000000, Local1)
Add (Local0, Local1, Local0)
Return (Local0)
}
Name (CRES, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, SubDecode,
0x0000, // Granularity
0x0000, // Range Minimum
0x00FF, // Range Maximum
0x0000, // Translation Offset
0x0100, // Length
0x00,, )
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0000, // Range Minimum
0x0CF7, // Range Maximum
0x0000, // Translation Offset
0x0CF8, // Length
0x00,, , TypeStatic)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0D00, // Range Minimum
0xFFFF, // Range Maximum
0x0000, // Translation Offset
0xF300, // Length
,, , TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000A0000, // Range Minimum
0x000BFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00020000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadOnly,
0x00000000, // Granularity
0x000C0000, // Range Minimum
0x000C3FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadOnly,
0x00000000, // Granularity
0x000C4000, // Range Minimum
0x000C7FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadOnly,
0x00000000, // Granularity
0x000C8000, // Range Minimum
0x000CBFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadOnly,
0x00000000, // Granularity
0x000CC000, // Range Minimum
0x000CFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000D0000, // Range Minimum
0x000D3FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000D4000, // Range Minimum
0x000D7FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000D8000, // Range Minimum
0x000DBFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000DC000, // Range Minimum
0x000DFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000E0000, // Range Minimum
0x000E3FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000E4000, // Range Minimum
0x000E7FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000E8000, // Range Minimum
0x000EBFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000EC000, // Range Minimum
0x000EFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x80000000, // Range Minimum
0xF7FFFFFF, // Range Maximum
0x00000000, // Translation Offset
0x77000000, // Length
0x00,, _Y00, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0xFC000000, // Range Minimum
0xFFFFFFFF, // Range Maximum
0x00000000, // Translation Offset
0x04000000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
IO (Decode16,
0x0CF8, // Range Minimum
0x0CF8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
})
Method (_CRS, 0, NotSerialized)
{
CreateDWordField (CRES, \_SB.PCI0._Y00._MIN, BTMN)
CreateDWordField (CRES, \_SB.PCI0._Y00._MAX, BTMX)
CreateDWordField (CRES, \_SB.PCI0._Y00._LEN, BTLN)
Store (TOM (), BTMN)
Subtract (0xF8000000, BTMN, BTLN)
Return (CRES)
}
Device (MEMR)
{
Name (_HID, EisaId ("PNP0C02"))
Name (MEM1, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x00000000, // Address Length
_Y01)
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x00000000, // Address Length
_Y02)
Memory32Fixed (ReadWrite,
0xFF800000, // Address Base
0x00000020, // Address Length
)
})
Method (_CRS, 0, NotSerialized)
{
CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y01._BAS, MB01)
CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y01._LEN, ML01)
CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y02._BAS, MB02)
CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y02._LEN, ML02)
If (GPIC)
{
Store (0xFEC00000, MB01)
Store (0xFEE00000, MB02)
Store (0x1000, ML01)
Store (0x1000, ML02)
}
Return (MEM1)
}
}
Method (XCMP, 2, NotSerialized)
{
If (LNotEqual (0x10, SizeOf (Arg0)))
{
Return (Zero)
}
If (LNotEqual (0x10, SizeOf (Arg1)))
{
Return (Zero)
}
Store (Zero, Local0)
While (LLess (Local0, 0x10))
{
If (LNotEqual (DerefOf (Index (Arg0, Local0)), DerefOf (Index (
Arg1, Local0))))
{
Return (Zero)
}
Increment (Local0)
}
Return (One)
}
Method (AFN0, 0, Serialized)
{
If (LEqual (PDDN, One))
{
^VGA.AFN0 ()
}
If (LEqual (PDDN, 0x02))
{
^PB2.VGA.AFN0 ()
}
If (LEqual (PDDN, 0x03))
{
^PB3.VGA.AFN0 ()
}
}
Method (AFN1, 1, Serialized)
{
}
Method (AFN2, 2, Serialized)
{
}
Method (AFN3, 2, Serialized)
{
If (LEqual (PDDN, One))
{
^VGA.AFN3 (Arg0, Arg1)
}
If (LEqual (PDDN, 0x02))
{
^PB2.VGA.AFN3 (Arg0, Arg1)
}
If (LEqual (PDDN, 0x03))
{
^PB3.VGA.AFN3 (Arg0, Arg1)
}
}
Method (AFN4, 1, Serialized)
{
If (LEqual (PDDN, One))
{
^VGA.AFN4 (Arg0)
}
If (LEqual (PDDN, 0x02))
{
^PB2.VGA.AFN4 (Arg0)
}
If (LEqual (PDDN, 0x03))
{
^PB3.VGA.AFN4 (Arg0)
}
}
Method (AFN5, 0, Serialized)
{
If (LEqual (PDDN, One))
{
^VGA.AFN5 ()
}
If (LEqual (PDDN, 0x02))
{
^PB2.VGA.AFN5 ()
}
If (LEqual (PDDN, 0x03))
{
^PB3.VGA.AFN5 ()
}
}
Method (AFN6, 0, Serialized)
{
If (LEqual (PDDN, One))
{
^VGA.AFN6 ()
}
If (LEqual (PDDN, 0x02))
{
^PB2.VGA.AFN6 ()
}
If (LEqual (PDDN, 0x03))
{
^PB3.VGA.AFN6 ()
}
}
Name (PR00, Package (0x29)
{
Package (0x04)
{
0x0010FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0010FFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0x0011FFFF,
Zero,
LNKD,
Zero
},
Package (0x04)
{
0x0012FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0012FFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0x0013FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0013FFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0x0014FFFF,
Zero,
LNKA,
Zero
},
Package (0x04)
{
0x0014FFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0x0014FFFF,
0x02,
LNKC,
Zero
},
Package (0x04)
{
0x0014FFFF,
0x03,
LNKD,
Zero
},
Package (0x04)
{
0x0015FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0015FFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0x0015FFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0x0015FFFF,
0x03,
LNKB,
Zero
},
Package (0x04)
{
0x0016FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0016FFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0x0001FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0001FFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0x0001FFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0x0001FFFF,
0x03,
LNKB,
Zero
},
Package (0x04)
{
0x0002FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0002FFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0x0002FFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0x0002FFFF,
0x03,
LNKB,
Zero
},
Package (0x04)
{
0x0004FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0004FFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0x0004FFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0x0004FFFF,
0x03,
LNKB,
Zero
},
Package (0x04)
{
0x0005FFFF,
Zero,
LNKB,
Zero
},
Package (0x04)
{
0x0005FFFF,
One,
LNKC,
Zero
},
Package (0x04)
{
0x0005FFFF,
0x02,
LNKD,
Zero
},
Package (0x04)
{
0x0005FFFF,
0x03,
LNKA,
Zero
},
Package (0x04)
{
0x0006FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0006FFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0x0006FFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0x0006FFFF,
0x03,
LNKB,
Zero
},
Package (0x04)
{
0x0007FFFF,
Zero,
LNKD,
Zero
},
Package (0x04)
{
0x0007FFFF,
One,
LNKA,
Zero
},
Package (0x04)
{
0x0007FFFF,
0x02,
LNKB,
Zero
},
Package (0x04)
{
0x0007FFFF,
0x03,
LNKC,
Zero
}
})
Name (AR00, Package (0x29)
{
Package (0x04)
{
0x0010FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0010FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x0011FFFF,
Zero,
Zero,
0x13
},
Package (0x04)
{
0x0012FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0012FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x0013FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0013FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x0014FFFF,
Zero,
Zero,
0x10
},
Package (0x04)
{
0x0014FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x0014FFFF,
0x02,
Zero,
0x12
},
Package (0x04)
{
0x0014FFFF,
0x03,
Zero,
0x13
},
Package (0x04)
{
0x0015FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0015FFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0x0015FFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0x0015FFFF,
0x03,
Zero,
0x11
},
Package (0x04)
{
0x0016FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0016FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x0001FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0001FFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0x0001FFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0x0001FFFF,
0x03,
Zero,
0x11
},
Package (0x04)
{
0x0002FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0002FFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0x0002FFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0x0002FFFF,
0x03,
Zero,
0x11
},
Package (0x04)
{
0x0004FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0004FFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0x0004FFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0x0004FFFF,
0x03,
Zero,
0x11
},
Package (0x04)
{
0x0005FFFF,
Zero,
Zero,
0x11
},
Package (0x04)
{
0x0005FFFF,
One,
Zero,
0x12
},
Package (0x04)
{
0x0005FFFF,
0x02,
Zero,
0x13
},
Package (0x04)
{
0x0005FFFF,
0x03,
Zero,
0x10
},
Package (0x04)
{
0x0006FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0006FFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0x0006FFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0x0006FFFF,
0x03,
Zero,
0x11
},
Package (0x04)
{
0x0007FFFF,
Zero,
Zero,
0x13
},
Package (0x04)
{
0x0007FFFF,
One,
Zero,
0x10
},
Package (0x04)
{
0x0007FFFF,
0x02,
Zero,
0x11
},
Package (0x04)
{
0x0007FFFF,
0x03,
Zero,
0x12
}
})
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR00)
}
Return (PR00)
}
Device (VGA)
{
Name (_ADR, 0x00010000)
Name (PXEN, 0x80000001)
Name (PXID, 0x00020000)
Name (PXMX, 0x80000001)
Name (PXFX, 0x80000000)
Name (PXDY, 0x80000001)
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
Name (DOSA, Zero)
Method (_DOS, 1, NotSerialized)
{
Store (Arg0, DOSA)
}
Method (_DOD, 0, NotSerialized)
{
Name (DODL, Package (0x05)
{
0x00010100,
0x00010110,
0x0200,
0x00010210,
0x00010220
})
Return (DODL)
}
Device (LCD)
{
Name (_ADR, 0x0110)
Method (_BCL, 0, NotSerialized)
{
Return (Package (0x0A)
{
0x64,
0x28,
0x0A,
0x14,
0x1E,
0x28,
0x37,
0x46,
0x55,
0x64
})
}
Method (_BCM, 1, Serialized)
{
Name (_T_0, Zero)
While (One)
{
Store (ToInteger (Arg0), _T_0)
If (LEqual (_T_0, 0x0A))
{
Store (Zero, Local1)
}
Else
{
If (LEqual (_T_0, 0x14))
{
Store (One, Local1)
}
Else
{
If (LEqual (_T_0, 0x1E))
{
Store (0x02, Local1)
}
Else
{
If (LEqual (_T_0, 0x28))
{
Store (0x03, Local1)
}
Else
{
If (LEqual (_T_0, 0x37))
{
Store (0x04, Local1)
}
Else
{
If (LEqual (_T_0, 0x46))
{
Store (0x05, Local1)
}
Else
{
If (LEqual (_T_0, 0x55))
{
Store (0x06, Local1)
}
Else
{
If (LEqual (_T_0, 0x64))
{
Store (0x07, Local1)
}
}
}
}
}
}
}
}
Break
}
Store (ToInteger (Local1), Local0)
If (LGreaterEqual (TPOS, 0x40))
{
Store (ToInteger (Local1), ^^^LPC0.EC0.BLVL)
^^^LPC0.EC0.SVBN ()
}
}
Method (_BQC, 0, Serialized)
{
Name (_T_0, Zero)
If (LGreaterEqual (TPOS, 0x40))
{
Store (^^^LPC0.EC0.BLVL, Local0)
While (One)
{
Store (ToInteger (Local0), _T_0)
If (LEqual (_T_0, Zero))
{
Store (0x0A, Local1)
}
Else
{
If (LEqual (_T_0, One))
{
Store (0x14, Local1)
}
Else
{
If (LEqual (_T_0, 0x02))
{
Store (0x1E, Local1)
}
Else
{
If (LEqual (_T_0, 0x03))
{
Store (0x28, Local1)
}
Else
{
If (LEqual (_T_0, 0x04))
{
Store (0x37, Local1)
}
Else
{
If (LEqual (_T_0, 0x05))
{
Store (0x46, Local1)
}
Else
{
If (LEqual (_T_0, 0x06))
{
Store (0x55, Local1)
}
Else
{
If (LEqual (_T_0, 0x07))
{
Store (0x64, Local1)
}
}
}
}
}
}
}
}
Break
}
}
Return (Local1)
}
Method (_DGS, 0, NotSerialized)
{
Return (^^^LPC0.EC0.NXT0)
}
}
Device (CRT)
{
Method (_ADR, 0, Serialized)
{
Return (0x0100)
}
Method (_DGS, 0, NotSerialized)
{
Return (^^^LPC0.EC0.NXT1)
}
}
Device (HDMI)
{
Method (_ADR, 0, Serialized)
{
Return (0x0210)
}
Method (_DGS, 0, NotSerialized)
{
Return (^^^LPC0.EC0.NXT2)
}
}
Name (ATIB, Buffer (0x0100) {})
Method (ATIF, 2, Serialized)
{
If (LEqual (Arg0, Zero))
{
Return (AF00 ())
}
If (LEqual (Arg0, One))
{
Return (AF01 ())
}
If (LEqual (Arg0, 0x02))
{
Return (AF02 ())
}
If (LEqual (Arg0, 0x03))
{
Return (AF03 (DerefOf (Index (Arg1, 0x02)), DerefOf (Index (Arg1,
0x04))))
}
If (LEqual (Arg0, 0x0F))
{
Return (AF15 ())
}
Else
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, VERN)
CreateDWordField (ATIB, 0x04, NMSK)
CreateDWordField (ATIB, 0x08, SFUN)
Store (Zero, SSZE)
Store (Zero, VERN)
Store (Zero, NMSK)
Store (Zero, SFUN)
Return (ATIB)
}
}
Method (AF00, 0, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, VERN)
CreateDWordField (ATIB, 0x04, NMSK)
CreateDWordField (ATIB, 0x08, SFUN)
Store (0x0C, SSZE)
Store (One, VERN)
If (LEqual (PXEN, 0x80000000))
{
Store (0x11, NMSK)
}
Else
{
Store (0x51, NMSK)
}
Store (NMSK, MSKN)
Store (0x4007, SFUN)
Return (ATIB)
}
Method (AF01, 0, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateDWordField (ATIB, 0x02, VMSK)
CreateDWordField (ATIB, 0x06, FLGS)
Store (0x0A, SSZE)
Store (0x03, VMSK)
Store (One, FLGS)
Return (ATIB)
}
Name (PSBR, Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
})
Name (MSKN, Zero)
Name (SEXM, Zero)
Name (STHG, Zero)
Name (STHI, Zero)
Name (SFPG, Zero)
Name (SFPI, Zero)
Name (SSPS, Zero)
Name (SSDM, 0x0A)
Name (SCDY, Zero)
Name (SACT, Buffer (0x07)
{
0x01, 0x02, 0x08, 0x80, 0x03, 0x09, 0x81
})
Method (AF02, 0, NotSerialized)
{
CreateBitField (PSBR, Zero, PDSW)
CreateBitField (PSBR, One, PEXM)
CreateBitField (PSBR, 0x02, PTHR)
CreateBitField (PSBR, 0x03, PFPS)
CreateBitField (PSBR, 0x04, PSPS)
CreateBitField (PSBR, 0x05, PDCC)
CreateBitField (PSBR, 0x06, PXPS)
CreateWordField (ATIB, Zero, SSZE)
CreateDWordField (ATIB, 0x02, PSBI)
CreateByteField (ATIB, 0x06, EXPM)
CreateByteField (ATIB, 0x07, THRM)
CreateByteField (ATIB, 0x08, THID)
CreateByteField (ATIB, 0x09, FPWR)
CreateByteField (ATIB, 0x0A, FPID)
CreateByteField (ATIB, 0x0B, SPWR)
Store (0x0C, SSZE)
Store (PSBR, PSBI)
If (PDSW)
{
Store (Zero, PDSW)
}
If (PEXM)
{
Store (SEXM, EXPM)
Store (Zero, SEXM)
Store (Zero, PEXM)
}
If (PTHR)
{
Store (STHG, THRM)
Store (STHI, THID)
Store (Zero, STHG)
Store (Zero, STHI)
Store (Zero, PTHR)
}
If (PFPS)
{
Store (SFPG, FPWR)
Store (SFPI, FPWR)
Store (Zero, SFPG)
Store (Zero, SFPI)
Store (Zero, PFPS)
}
If (PSPS)
{
Store (SSPS, SPWR)
Store (Zero, PSPS)
}
If (PXPS)
{
Store (Zero, PXPS)
}
Return (ATIB)
}
Method (AF03, 2, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, SSDP)
CreateWordField (ATIB, 0x04, SCDP)
Store (Arg0, SSDP)
Store (Arg1, SCDP)
Name (NXTD, 0x06)
Name (CIDX, 0x06)
Store (SSDP, Local1)
And (Local1, 0x8B, Local1)
Store (SCDP, Local2)
If (CondRefOf (\_SB.LID._LID, Local4))
{
And (Local2, 0xFFFFFFFE, Local2)
Or (Local2, ^^^LID._LID (), Local2)
}
Else
{
Or (Local2, One, Local2)
}
Store (Local2, P80H)
Store (Zero, Local0)
While (LLess (Local0, SizeOf (SACT)))
{
Store (DerefOf (Index (SACT, Local0)), Local3)
If (LEqual (Local3, Local1))
{
Store (Local0, CIDX)
Store (SizeOf (SACT), Local0)
}
Else
{
Increment (Local0)
}
}
Store (CIDX, Local0)
While (LLess (Local0, SizeOf (SACT)))
{
Increment (Local0)
If (LEqual (Local0, SizeOf (SACT)))
{
Store (Zero, Local0)
}
Store (DerefOf (Index (SACT, Local0)), Local3)
If (LEqual (And (Local3, Local2), Local3))
{
Store (Local0, NXTD)
Store (SizeOf (SACT), Local0)
}
}
If (LEqual (NXTD, SizeOf (SACT)))
{
Store (Zero, SSDP)
}
Else
{
Store (NXTD, Local0)
Store (DerefOf (Index (SACT, Local0)), Local3)
And (SSDP, 0xFFFFFFF4, SSDP)
Or (SSDP, Local3, SSDP)
}
Store (0x04, SSZE)
Store (SSDP, P80H)
Return (ATIB)
}
Method (AFN0, 0, Serialized)
{
If (And (MSKN, One))
{
CreateBitField (PSBR, Zero, PDSW)
Store (One, PDSW)
Notify (VGA, 0x81)
}
}
Method (AFN3, 2, Serialized)
{
If (And (MSKN, 0x08))
{
Store (Arg0, Local0)
Store (Local0, SFPI)
Store (Arg1, Local0)
Store (And (Local0, 0x03, Local0), SFPG)
CreateBitField (PSBR, 0x03, PFPS)
Store (One, PFPS)
Notify (VGA, 0x81)
}
}
Method (AFN4, 1, Serialized)
{
If (And (MSKN, 0x10))
{
Store (Arg0, Local0)
Store (SSPS, Local1)
Store (Local0, SSPS)
If (LEqual (Local0, Local1)) {}
Else
{
CreateBitField (PSBR, 0x04, PSPS)
Store (One, PSPS)
Notify (VGA, 0x81)
}
}
}
Method (AFN5, 0, Serialized)
{
If (And (MSKN, 0x20))
{
CreateBitField (PSBR, 0x05, PDCC)
Store (One, PDCC)
Notify (VGA, 0x81)
}
}
Method (AFN6, 0, Serialized)
{
If (And (MSKN, 0x40))
{
CreateBitField (PSBR, 0x06, PXPS)
Store (One, PXPS)
Notify (VGA, 0x81)
}
}
Method (AF15, 0, NotSerialized)
{
Store (0xFF, P80H)
CreateWordField (ATIB, 0x02, DSZE)
Store (0x08, DSZE)
Acquire (^^LPC0.PSMX, 0xFFFF)
Store (0x8D, BCMD)
Store (0x0F, DID)
Store (ATIB, INFO)
BSMI (Zero)
Store (INFO, ATIB)
Release (^^LPC0.PSMX)
Return (ATIB)
}
Scope (\_SB.PCI0.VGA)
{
OperationRegion (REVD, SystemMemory, 0xCFC87018, 0x0000FA04)
Field (REVD, AnyAcc, NoLock, Preserve)
{
SROM, 32,
VROM, 512000
}
Name (TVGA, Buffer (0xFA00)
{
0x00
})
Method (ATRM, 2, Serialized)
{
Add (Arg0, Arg1, Local0)
If (LLessEqual (Local0, SROM))
{
Multiply (Arg1, 0x08, Local1)
Multiply (Arg0, 0x08, Local2)
Store (VROM, TVGA)
CreateField (TVGA, Local2, Local1, TEMP)
Name (RETB, Buffer (Arg1) {})
Store (TEMP, RETB)
Return (RETB)
}
Else
{
If (LLess (Arg0, SROM))
{
Subtract (SROM, Arg0, Local3)
Multiply (Local3, 0x08, Local1)
Multiply (Arg0, 0x08, Local2)
Store (VROM, TVGA)
CreateField (TVGA, Local2, Local1, TEM)
Name (RETC, Buffer (Local3) {})
Store (TEM, RETC)
Return (RETC)
}
Else
{
Name (RETD, Buffer (One) {})
Return (RETD)
}
}
}
}
Scope (\_SB.PCI0.VGA)
{
Name (ATPB, Buffer (0x0100) {})
Name (DSID, Ones)
Name (HSID, Ones)
Name (CNT0, Buffer (0x05)
{
0x05, 0x00, 0x00, 0x10, 0x01
})
Name (CNT1, Buffer (0x05)
{
0x05, 0x01, 0x00, 0x00, 0x01
})
Name (CNT2, Buffer (0x05)
{
0x07, 0x03, 0x00, 0x10, 0x02
})
Name (CNT3, Buffer (0x05)
{
0x07, 0x07, 0x00, 0x20, 0x02
})
Name (CNT4, Buffer (0x05)
{
0x00, 0x09, 0x00, 0x30, 0x02
})
Name (CNT5, Buffer (0x05)
{
0x01, 0x00, 0x01, 0x10, 0x01
})
Name (CNT6, Buffer (0x05)
{
0x01, 0x01, 0x01, 0x00, 0x01
})
Name (CNT7, Buffer (0x05)
{
0x03, 0x03, 0x01, 0x10, 0x02
})
Name (CNT8, Buffer (0x05)
{
0x03, 0x07, 0x01, 0x20, 0x02
})
Name (CNT9, Buffer (0x05)
{
0x00, 0x09, 0x01, 0x30, 0x02
})
Method (ATPX, 2, Serialized)
{
If (LEqual (Arg0, Zero))
{
Return (PX00 ())
}
If (LEqual (Arg0, One))
{
Return (PX01 ())
}
If (LEqual (Arg0, 0x02))
{
PX02 (DerefOf (Index (Arg1, 0x02)))
Return (ATPB)
}
If (LEqual (Arg0, 0x03))
{
PX03 (DerefOf (Index (Arg1, 0x02)))
Return (ATPB)
}
If (LEqual (Arg0, 0x04))
{
PX04 (DerefOf (Index (Arg1, 0x02)))
Return (ATPB)
}
If (LEqual (Arg0, 0x08))
{
Return (PX08 ())
}
If (LEqual (Arg0, 0x09))
{
Return (PX09 ())
}
CreateWordField (ATPB, Zero, SSZE)
CreateWordField (ATPB, 0x02, VERN)
CreateDWordField (ATPB, 0x04, SFUN)
Store (Zero, SSZE)
Store (Zero, VERN)
Store (Zero, SFUN)
Return (ATPB)
}
Method (PX00, 0, NotSerialized)
{
Store (0xE0, P80H)
CreateWordField (ATPB, Zero, SSZE)
CreateWordField (ATPB, 0x02, VERN)
CreateDWordField (ATPB, 0x04, SFUN)
Store (0x08, SSZE)
Store (One, VERN)
If (LEqual (PXEN, 0x80000000))
{
Store (Zero, SFUN)
Return (ATPB)
}
If (LEqual (PXMX, 0x80000000))
{
Store (0x018F, SFUN)
}
Else
{
Store (0x0183, SFUN)
}
If (LEqual (PXDY, 0x80000001))
{
And (SFUN, 0xFFFFFFFD, SFUN)
}
If (LAnd (LEqual (PXDY, 0x80000001), LEqual (PXFX, 0x80000001)))
{
Or (SFUN, 0x02, SFUN)
}
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.VGA.SVID, Local0)
Store (^^PB2.HDAU.SVID, Local1)
}
Else
{
Store (^^PB3.VGA.SVID, Local0)
Store (^^PB3.HDAU.SVID, Local1)
}
If (LNotEqual (Local0, Ones))
{
Store (Local0, DSID)
}
If (LNotEqual (Local1, Ones))
{
Store (Local1, HSID)
}
Return (ATPB)
}
Method (PX01, 0, NotSerialized)
{
Store (0xE1, P80H)
CreateWordField (ATPB, Zero, SSZE)
CreateDWordField (ATPB, 0x02, VMSK)
CreateDWordField (ATPB, 0x06, FLGS)
Store (0x0A, SSZE)
Store (0xFF, VMSK)
If (LEqual (PXMX, 0x80000000))
{
Store (0x4B, FLGS)
}
Else
{
Store (Zero, FLGS)
If (LEqual (PXDY, 0x80000001))
{
Or (FLGS, 0x80, FLGS)
}
}
Return (ATPB)
}
Method (PX02, 1, NotSerialized)
{
CreateWordField (ATPB, Zero, SSZE)
CreateByteField (ATPB, 0x02, PWST)
Store (0x03, SSZE)
Store (Buffer (0x05) {}, Local7)
CreateWordField (Local7, Zero, SZZE)
CreateField (Local7, 0x10, 0x03, FUCC)
CreateField (Local7, 0x13, 0x05, DEVV)
CreateByteField (Local7, 0x03, BUSS)
CreateByteField (Local7, 0x04, HPST)
Store (0x05, SZZE)
Store (Zero, BUSS)
Store (Zero, FUCC)
Store (Buffer (0x04) {}, Local6)
CreateByteField (Local6, 0x02, HPOX)
And (Arg0, One, PWST)
Name (HPOK, Zero)
If (PWST)
{
Store (0x11E2, P80H)
Store (Zero, ^^SMBS.O044)
Store (Zero, ^^SMBS.E044)
Store (Zero, ^^SMBS.O045)
Store (Zero, ^^SMBS.E045)
Sleep (0x0A)
Store (One, ^^SMBS.O045)
Store (Zero, ^^SMBS.E045)
Sleep (0x0A)
Store (One, ^^SMBS.O055)
Store (Zero, ^^SMBS.E055)
Sleep (0x0A)
Store (One, ^^SMBS.O044)
Store (Zero, ^^SMBS.E044)
Store (0x12E2, P80H)
Store (Zero, HPOK)
Sleep (0x64)
Sleep (0x64)
If (LEqual (PXID, ^^PB2._ADR))
{
Store (0x02, DEVV)
}
Else
{
Store (0x03, DEVV)
}
Store (One, HPST)
Store (ALIB (0x06, Local7, Local6, Sleep (0x14), Store (Zero, Local2)),
While (LLess (Local2, 0x0F))
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (One, ^^PB2.PDC2)
}
Else
{
Store (One, ^^PB3.PDC2)
}
Store (One, Local4)
Store (0xC8, Local5)
While (LAnd (Local4, Local5))
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.XPRD (0xA5), Local0)
}
Else
{
Store (^^PB3.XPRD (0xA5), Local0)
}
And (Local0, 0x7F, Local0)
If (LAnd (LGreaterEqual (Local0, 0x10), LNotEqual (Local0, 0x7F)))
{
Store (Zero, Local4)
}
Else
{
Sleep (0x05)
Decrement (Local5)
}
}
If (LNot (Local4))
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.XPDL (), Local5)
}
Else
{
Store (^^PB3.XPDL (), Local5)
}
If (Local5)
{
If (LEqual (PXID, ^^PB2._ADR))
{
^^PB2.XPRT ()
}
Else
{
^^PB3.XPRT ()
}
Sleep (0x05)
Increment (Local2)
}
Else
{
Store (Zero, Local0)
If (LEqual (PXID, ^^PB2._ADR))
{
If (LEqual (^^PB2.XPR2 (), Ones))
{
Store (One, Local0)
}
}
Else
{
If (LEqual (^^PB3.XPR2 (), Ones))
{
Store (One, Local0)
}
}
If (Local0)
{
Store (One, HPOK)
Store (0x10, Local2)
}
Else
{
Store (Zero, HPOK)
Store (0x10, Local2)
}
}
}
Else
{
Store (0x10, Local2)
}
})
If (LNot (HPOK))
{
Store (0x13E2, P80H)
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.VGA.DVID, Local1)
}
Else
{
Store (^^PB3.VGA.DVID, Local1)
}
Sleep (0x0A)
Store (One, Local4)
Store (0x05, Local5)
While (LAnd (Local4, Local5))
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.XPRD (0xA5), Local0)
}
Else
{
Store (^^PB3.XPRD (0xA5), Local0)
}
And (Local0, 0x7F, Local0)
If (LLessEqual (Local0, 0x04))
{
Store (Zero, Local4)
}
Else
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.VGA.DVID, Local1)
}
Else
{
Store (^^PB3.VGA.DVID, Local1)
}
Sleep (0x05)
Decrement (Local5)
}
}
If (LEqual (PXID, ^^PB2._ADR))
{
Store (0x02, DEVV)
}
Else
{
Store (0x03, DEVV)
}
Store (Zero, HPST)
ALIB (0x06, Local7, Store (0x14E2, P80H), Else
{
Store (0x02E2, P80H)
If (LEqual (PXID, ^^PB2._ADR))
{
Store (0x10, MUXF)
}
Else
{
Store (0x18, MUXF)
}
Store (Zero, ^^SMBS.O044)
Store (Zero, ^^SMBS.E044)
Store (Zero, ^^SMBS.O055)
Store (Zero, ^^SMBS.E055)
Sleep (0x0A)
Store (Zero, ^^SMBS.O045)
Store (Zero, ^^SMBS.E045)
Store (0x03E2, P80H)
If (LEqual (PXID, ^^PB2._ADR))
{
Store (One, ^^PB2.PDC2)
Store (^^PB2.VGA.DVID, Local1)
}
Else
{
Store (One, ^^PB3.PDC2)
Store (^^PB3.VGA.DVID, Local1)
}
Sleep (0x0A)
Store (One, Local4)
Store (0x05, Local5)
While (LAnd (Local4, Local5))
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.XPRD (0xA5), Local0)
}
Else
{
Store (^^PB3.XPRD (0xA5), Local0)
}
And (Local0, 0x7F, Local0)
If (LLessEqual (Local0, 0x04))
{
Store (Zero, Local4)
}
Else
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.VGA.DVID, Local1)
}
Else
{
Store (^^PB3.VGA.DVID, Local1)
}
Sleep (0x05)
Decrement (Local5)
}
}
If (LEqual (PXID, ^^PB2._ADR))
{
Store (0x02, DEVV)
}
Else
{
Store (0x03, DEVV)
}
Store (Zero, HPST)
ALIB (0x06, Local7, Store (0x02, HPOK), Store (0x04E2, P80H), If (
HPOK)
{
If (LAnd (LEqual (HPOK, One), LNotEqual (DSID, Ones)))
{
Store (DSID, Local1)
If (LEqual (PXID, ^^PB2._ADR))
{
Store (Local1, ^^PB2.VGA.SMID)
}
Else
{
Store (Local1, ^^PB3.VGA.SMID)
}
Sleep (0x0A)
Store (HSID, Local1)
If (LNotEqual (Local1, Ones))
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (Local1, ^^PB2.HDAU.SMID)
}
Else
{
Store (Local1, ^^PB3.HDAU.SMID)
}
}
Sleep (0x0A)
}
If (LEqual (PXID, ^^PB2._ADR))
{
Notify (PB2, Zero)
}
Else
{
Notify (PB3, Zero)
}
})
})
}
}
}
Method (PX03, 1, NotSerialized)
{
CreateWordField (ATPB, Zero, SSZE)
CreateWordField (ATPB, 0x02, DPSW)
Store (0x04, SSZE)
And (Arg0, One, DPSW)
}
Method (PX04, 1, NotSerialized)
{
Store (0xE4, P80H)
CreateWordField (ATPB, Zero, SSZE)
CreateWordField (ATPB, 0x02, ICSW)
Store (0x04, SSZE)
And (Arg0, One, ICSW)
}
Method (PX08, 0, NotSerialized)
{
Store (0xE8, P80H)
CreateWordField (ATPB, Zero, CNUM)
CreateWordField (ATPB, 0x02, CSSZ)
Store (0x0A, CNUM)
Store (0x05, CSSZ)
CreateField (ATPB, 0x20, 0x28, CTI0)
Store (CNT0, CTI0)
CreateField (ATPB, 0x48, 0x28, CTI1)
Store (CNT1, CTI1)
CreateField (ATPB, 0x70, 0x28, CTI2)
CreateByteField (CNT2, Zero, FLG2)
If (LEqual (LPTY, One))
{
If (LEqual (M92D, One))
{
Store (Zero, FLG2)
}
If (LEqual (M92D, 0x02))
{
Store (0x07, FLG2)
}
}
Store (CNT2, CTI2)
CreateField (ATPB, 0x98, 0x28, CTI3)
CreateByteField (CNT3, Zero, FLG3)
If (LEqual (LPTY, Zero))
{
Store (0x07, FLG3)
}
If (LEqual (LPTY, One))
{
Store (Zero, FLG3)
}
If (LEqual (LPTY, 0x02))
{
Store (Zero, FLG3)
}
If (LEqual (M92D, 0x02))
{
Store (0x07, FLG3)
}
Store (CNT3, CTI3)
CreateField (ATPB, 0xC0, 0x28, CTI4)
Store (CNT4, CTI4)
CreateField (ATPB, 0xE8, 0x28, CTI5)
Store (CNT5, CTI5)
CreateField (ATPB, 0x0110, 0x28, CTI6)
Store (CNT6, CTI6)
CreateField (ATPB, 0x0138, 0x28, CTI7)
CreateByteField (CNT7, Zero, FLG7)
If (LEqual (LPTY, One))
{
If (LEqual (M92D, One))
{
Store (Zero, FLG7)
}
If (LEqual (M92D, 0x02))
{
Store (Zero, FLG7)
}
}
Store (CNT7, CTI7)
CreateField (ATPB, 0x0160, 0x28, CTI8)
CreateByteField (CNT8, Zero, FLG8)
If (LEqual (LPTY, Zero))
{
Store (0x07, FLG8)
}
If (LEqual (LPTY, One))
{
Store (Zero, FLG8)
}
If (LEqual (LPTY, 0x02))
{
Store (Zero, FLG8)
}
If (LEqual (M92D, 0x02))
{
Store (0x07, FLG8)
}
Store (CNT8, CTI8)
CreateField (ATPB, 0x0188, 0x28, CTI9)
CreateByteField (CNT9, Zero, FLG9)
If (LEqual (M92D, 0x02))
{
Store (0x07, FLG9)
}
Store (CNT9, CTI9)
Return (ATPB)
}
Method (PX09, 0, NotSerialized)
{
Store (0xE9, P80H)
CreateWordField (ATPB, Zero, CNUM)
CreateWordField (ATPB, 0x02, CSSZ)
Store (Zero, CNUM)
Store (Zero, CSSZ)
CreateByteField (ATPB, 0x04, ATI0)
CreateByteField (ATPB, 0x05, HPD0)
CreateByteField (ATPB, 0x06, DDC0)
Store (Zero, ATI0)
Store (Zero, HPD0)
Store (Zero, DDC0)
CreateByteField (ATPB, 0x07, ATI1)
CreateByteField (ATPB, 0x08, HPD1)
CreateByteField (ATPB, 0x09, DDC1)
Store (Zero, ATI1)
Store (Zero, HPD1)
Store (Zero, DDC1)
Return (ATPB)
}
}
Name (AT00, Buffer (0xFF) {})
Name (AT01, Buffer (0x03) {})
Method (ATCS, 2, Serialized)
{
If (LEqual (Arg0, Zero))
{
ATC0 ()
}
If (LEqual (Arg0, One))
{
ATC1 ()
}
If (LEqual (Arg0, 0x02))
{
ATC2 (Arg1)
}
If (LEqual (Arg0, 0x03))
{
ATC3 ()
}
If (LEqual (Arg0, 0x04))
{
ATC4 (Arg1)
}
Return (AT00)
}
Method (ATC0, 0, NotSerialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateWordField (AT00, 0x02, INTF)
CreateDWordField (AT00, 0x04, SUPP)
Store (0x08, SZZE)
Store (One, INTF)
Store (0x0F, SUPP)
}
Method (ATC1, 0, Serialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateDWordField (AT00, 0x02, VFMK)
CreateDWordField (AT00, 0x06, FLAG)
CreateField (AT00, 0x30, One, DOCK)
Store (0x0A, SZZE)
Store (One, VFMK)
Store (Zero, FLAG)
Store (One, DOCK)
}
Method (ATC2, 1, Serialized)
{
CreateField (Arg0, 0x10, 0x03, FUCC)
CreateField (Arg0, 0x13, 0x06, DEVV)
CreateByteField (Arg0, 0x03, BUSS)
CreateDWordField (Arg0, 0x04, VFMK)
CreateDWordField (Arg0, 0x06, FLAG)
CreateField (Arg0, 0x30, One, ADVC)
CreateField (Arg0, 0x31, One, WFCM)
CreateByteField (Arg0, 0x08, RQST)
CreateByteField (Arg0, 0x09, PFRQ)
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, RETV)
Store (0x03, SZZE)
Store (One, RETV)
Store (ALIB (0x02, Arg0, AT00))
}
Method (ATC3, 0, Serialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, RETV)
CreateWordField (AT01, Zero, SZZB)
CreateByteField (AT01, 0x02, PSPP)
Store (0x03, SZZE)
Store (One, RETV)
Store (0x03, SZZB)
Store (One, PSPP)
Store (ALIB (0x03, AT01, AT00))
}
Method (ATC4, 1, Serialized)
{
CreateField (Arg0, 0x10, 0x03, FUCC)
CreateField (Arg0, 0x13, 0x06, DEVV)
CreateByteField (Arg0, 0x03, BUSS)
CreateByteField (Arg0, 0x04, NULN)
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, NULM)
Store (0x03, SZZE)
Store (One, NULM)
Store (ALIB (0x04, Arg0, AT00))
}
}
Device (PB2)
{
Name (_ADR, 0x00020000)
Method (_PRW, 0, NotSerialized)
{
If (LEqual (WKPM, One))
{
Return (GPRW (0x08, 0x05))
}
Else
{
Return (GPRW (0x08, Zero))
}
}
Name (PR02, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKB,
Zero
}
})
Name (AR02, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x11
}
})
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR02)
}
Return (PR02)
}
OperationRegion (XPEX, SystemMemory, 0xF8010100, 0x0100)
Field (XPEX, DWordAcc, NoLock, Preserve)
{
Offset (0x28),
VC0S, 32
}
OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
Field (XPCB, AnyAcc, NoLock, Preserve)
{
Offset (0x10),
LKCN, 16,
LKST, 16,
Offset (0x1A),
, 3,
PDC2, 1,
, 2,
PDS2, 1,
Offset (0x1B),
HPCS, 1,
Offset (0x20),
Offset (0x22),
PMES, 1
}
OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
Field (XPRI, ByteAcc, NoLock, Preserve)
{
XPIR, 32,
XPID, 32
}
OperationRegion (PCFG, PCI_Config, Zero, 0x20)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x18),
SBUS, 32
}
Method (XPDL, 0, NotSerialized)
{
If (And (VC0S, 0x00020000))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Mutex (XPPM, 0x00)
Method (XPRD, 1, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (XPID, Local0)
Store (Zero, XPIR)
Release (XPPM)
Return (Local0)
}
Method (XPWR, 2, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (Arg1, XPID)
Store (Zero, XPIR)
Release (XPPM)
}
Method (XPRT, 0, NotSerialized)
{
Store (XPRD (0xA2), Local0)
And (Local0, 0xFFFFFFF8, Local0)
ShiftRight (Local0, 0x04, Local1)
And (Local1, 0x07, Local1)
Or (Local0, Local1, Local0)
Or (Local0, 0x0100, Local0)
XPWR (0xA2, Local0)
}
Method (XPR2, 0, NotSerialized)
{
Store (LKCN, Local0)
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
Or (Local0, 0x20, Local0)
Store (Local0, LKCN)
Store (0x64, Local1)
Store (One, Local2)
While (LAnd (Local1, Local2))
{
Sleep (One)
Store (LKST, Local3)
If (And (Local3, 0x0800))
{
Decrement (Local1)
}
Else
{
Store (Zero, Local2)
}
}
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
If (LNot (Local2))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Method (XPPB, 0, NotSerialized)
{
Store (_ADR, Local0)
Store (ShiftRight (Local0, 0x10), Local1)
Store (ShiftLeft (Local1, 0x03), Local1)
Store (And (Local0, 0x0F), Local2)
Store (Or (Local1, Local2), Local3)
Return (Local3)
}
Method (XPPR, 1, NotSerialized)
{
Name (HPOK, Zero)
Store (Zero, HPOK)
Store (ShiftLeft (XPPB (), 0x03), Local0)
If (Arg0)
{
XPLL (Local0, One)
XPLP (Local0, One)
Sleep (0xC8)
XPTR (Local0, One)
Store (0x0F, Local5)
While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
{
Store (One, PDC2)
Store (0x28, Local1)
While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
{
Store (XPRD (0xA5), Local2)
If (LEqual (And (Local2, 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LGreaterEqual (And (Local2, 0xFF), 0x04))
{
Store (One, HPOK)
}
Decrement (Local1)
}
If (HPOK)
{
Store (And (XPRD (0xA5), 0xFF), Local2)
Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
Local3, 0x05))))
{
Store (Zero, HPOK)
}
}
If (HPOK)
{
Store (0x07D0, Local1)
Store (Zero, HPOK)
While (LAnd (LNot (HPOK), Local1))
{
Store (And (XPRD (0xA5), 0xFF), Local2)
If (LEqual (Local2, 0x07))
{
Store (One, Local1)
Store (XPDL (), Local4)
If (Local4)
{
XPRT ()
Decrement (Local5)
}
}
If (LEqual (Local2, 0x10))
{
Store (One, HPOK)
}
Sleep (One)
Decrement (Local1)
}
}
}
}
If (HPOK)
{
XPTR (Local0, Zero)
XPLP (Local0, Zero)
XPLL (Local0, Zero)
}
Return (Ones)
}
Device (VGA)
{
Name (_ADR, Zero)
OperationRegion (PCFG, PCI_Config, Zero, 0x50)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x2C),
SVID, 32,
Offset (0x4C),
SMID, 32
}
Name (DOSA, Zero)
Method (_DOS, 1, NotSerialized)
{
Store (Arg0, DOSA)
}
Method (_DOD, 0, NotSerialized)
{
Name (DODL, Package (0x05)
{
0x00010100,
0x00010110,
0x0200,
0x00010210,
0x00010220
})
Return (DODL)
}
Device (LCD)
{
Name (_ADR, 0x0110)
Method (_BCL, 0, NotSerialized)
{
Return (Package (0x0A)
{
0x64,
0x28,
0x0A,
0x14,
0x1E,
0x28,
0x37,
0x46,
0x55,
0x64
})
}
Method (_BCM, 1, Serialized)
{
Name (_T_0, Zero)
While (One)
{
Store (ToInteger (Arg0), _T_0)
If (LEqual (_T_0, 0x0A))
{
Store (Zero, Local1)
}
Else
{
If (LEqual (_T_0, 0x14))
{
Store (One, Local1)
}
Else
{
If (LEqual (_T_0, 0x1E))
{
Store (0x02, Local1)
}
Else
{
If (LEqual (_T_0, 0x28))
{
Store (0x03, Local1)
}
Else
{
If (LEqual (_T_0, 0x37))
{
Store (0x04, Local1)
}
Else
{
If (LEqual (_T_0, 0x46))
{
Store (0x05, Local1)
}
Else
{
If (LEqual (_T_0, 0x55))
{
Store (0x06, Local1)
}
Else
{
If (LEqual (_T_0, 0x64))
{
Store (0x07, Local1)
}
}
}
}
}
}
}
}
Break
}
Store (ToInteger (Local1), Local0)
If (LGreaterEqual (TPOS, 0x40))
{
Store (ToInteger (Local1), ^^^^LPC0.EC0.BLVL)
^^^^LPC0.EC0.SVBN ()
}
}
Method (_BQC, 0, Serialized)
{
Name (_T_0, Zero)
If (LGreaterEqual (TPOS, 0x40))
{
Store (^^^^LPC0.EC0.BLVL, Local0)
While (One)
{
Store (ToInteger (Local0), _T_0)
If (LEqual (_T_0, Zero))
{
Store (0x0A, Local1)
}
Else
{
If (LEqual (_T_0, One))
{
Store (0x14, Local1)
}
Else
{
If (LEqual (_T_0, 0x02))
{
Store (0x1E, Local1)
}
Else
{
If (LEqual (_T_0, 0x03))
{
Store (0x28, Local1)
}
Else
{
If (LEqual (_T_0, 0x04))
{
Store (0x37, Local1)
}
Else
{
If (LEqual (_T_0, 0x05))
{
Store (0x46, Local1)
}
Else
{
If (LEqual (_T_0, 0x06))
{
Store (0x55, Local1)
}
Else
{
If (LEqual (_T_0, 0x07))
{
Store (0x64, Local1)
}
}
}
}
}
}
}
}
Break
}
}
Return (Local1)
}
Method (_DGS, 0, NotSerialized)
{
Return (^^^^LPC0.EC0.NXT0)
}
}
Device (CRT)
{
Method (_ADR, 0, Serialized)
{
Return (0x0100)
}
Method (_DGS, 0, NotSerialized)
{
Return (^^^^LPC0.EC0.NXT1)
}
}
Device (HDMI)
{
Method (_ADR, 0, Serialized)
{
Return (0x0210)
}
Method (_DGS, 0, NotSerialized)
{
Return (^^^^LPC0.EC0.NXT2)
}
}
Name (ATIB, Buffer (0x0100) {})
Method (ATIF, 2, Serialized)
{
If (LEqual (Arg0, Zero))
{
Return (AF00 ())
}
If (LEqual (Arg0, One))
{
Return (AF01 ())
}
If (LEqual (Arg0, 0x02))
{
Return (AF02 ())
}
If (LEqual (Arg0, 0x03))
{
Return (AF03 (DerefOf (Index (Arg1, 0x02)), DerefOf (Index (Arg1,
0x04))))
}
If (LEqual (Arg0, 0x0F))
{
Return (AF15 ())
}
Else
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, VERN)
CreateDWordField (ATIB, 0x04, NMSK)
CreateDWordField (ATIB, 0x08, SFUN)
Store (Zero, SSZE)
Store (Zero, VERN)
Store (Zero, NMSK)
Store (Zero, SFUN)
Return (ATIB)
}
}
Method (AF00, 0, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, VERN)
CreateDWordField (ATIB, 0x04, NMSK)
CreateDWordField (ATIB, 0x08, SFUN)
Store (0x0C, SSZE)
Store (One, VERN)
If (LEqual (^^^VGA.PXEN, 0x80000000))
{
Store (0x11, NMSK)
}
Else
{
Store (0x51, NMSK)
}
Store (NMSK, MSKN)
Store (0x4007, SFUN)
Return (ATIB)
}
Method (AF01, 0, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateDWordField (ATIB, 0x02, VMSK)
CreateDWordField (ATIB, 0x06, FLGS)
Store (0x0A, SSZE)
Store (0x03, VMSK)
Store (One, FLGS)
Return (ATIB)
}
Name (PSBR, Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
})
Name (MSKN, Zero)
Name (SEXM, Zero)
Name (STHG, Zero)
Name (STHI, Zero)
Name (SFPG, Zero)
Name (SFPI, Zero)
Name (SSPS, Zero)
Name (SSDM, 0x0A)
Name (SCDY, Zero)
Name (SACT, Buffer (0x07)
{
0x01, 0x02, 0x08, 0x80, 0x03, 0x09, 0x81
})
Method (AF02, 0, NotSerialized)
{
CreateBitField (PSBR, Zero, PDSW)
CreateBitField (PSBR, One, PEXM)
CreateBitField (PSBR, 0x02, PTHR)
CreateBitField (PSBR, 0x03, PFPS)
CreateBitField (PSBR, 0x04, PSPS)
CreateBitField (PSBR, 0x05, PDCC)
CreateBitField (PSBR, 0x06, PXPS)
CreateWordField (ATIB, Zero, SSZE)
CreateDWordField (ATIB, 0x02, PSBI)
CreateByteField (ATIB, 0x06, EXPM)
CreateByteField (ATIB, 0x07, THRM)
CreateByteField (ATIB, 0x08, THID)
CreateByteField (ATIB, 0x09, FPWR)
CreateByteField (ATIB, 0x0A, FPID)
CreateByteField (ATIB, 0x0B, SPWR)
Store (0x0C, SSZE)
Store (PSBR, PSBI)
If (PDSW)
{
Store (Zero, PDSW)
}
If (PEXM)
{
Store (SEXM, EXPM)
Store (Zero, SEXM)
Store (Zero, PEXM)
}
If (PTHR)
{
Store (STHG, THRM)
Store (STHI, THID)
Store (Zero, STHG)
Store (Zero, STHI)
Store (Zero, PTHR)
}
If (PFPS)
{
Store (SFPG, FPWR)
Store (SFPI, FPWR)
Store (Zero, SFPG)
Store (Zero, SFPI)
Store (Zero, PFPS)
}
If (PSPS)
{
Store (SSPS, SPWR)
Store (Zero, PSPS)
}
If (PXPS)
{
Store (Zero, PXPS)
}
Return (ATIB)
}
Method (AF03, 2, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, SSDP)
CreateWordField (ATIB, 0x04, SCDP)
Store (Arg0, SSDP)
Store (Arg1, SCDP)
Name (NXTD, 0x06)
Name (CIDX, 0x06)
Store (SSDP, Local1)
And (Local1, 0x8B, Local1)
Store (SCDP, Local2)
If (CondRefOf (\_SB.LID._LID, Local4))
{
And (Local2, 0xFFFFFFFE, Local2)
Or (Local2, ^^^^LID._LID (), Local2)
}
Else
{
Or (Local2, One, Local2)
}
Store (Local2, P80H)
Store (Zero, Local0)
While (LLess (Local0, SizeOf (SACT)))
{
Store (DerefOf (Index (SACT, Local0)), Local3)
If (LEqual (Local3, Local1))
{
Store (Local0, CIDX)
Store (SizeOf (SACT), Local0)
}
Else
{
Increment (Local0)
}
}
Store (CIDX, Local0)
While (LLess (Local0, SizeOf (SACT)))
{
Increment (Local0)
If (LEqual (Local0, SizeOf (SACT)))
{
Store (Zero, Local0)
}
Store (DerefOf (Index (SACT, Local0)), Local3)
If (LEqual (And (Local3, Local2), Local3))
{
Store (Local0, NXTD)
Store (SizeOf (SACT), Local0)
}
}
If (LEqual (NXTD, SizeOf (SACT)))
{
Store (Zero, SSDP)
}
Else
{
Store (NXTD, Local0)
Store (DerefOf (Index (SACT, Local0)), Local3)
And (SSDP, 0xFFFFFFF4, SSDP)
Or (SSDP, Local3, SSDP)
}
Store (0x04, SSZE)
Store (SSDP, P80H)
Return (ATIB)
}
Method (AFN0, 0, Serialized)
{
If (And (MSKN, One))
{
CreateBitField (PSBR, Zero, PDSW)
Store (One, PDSW)
Notify (VGA, 0x81)
}
}
Method (AFN3, 2, Serialized)
{
If (And (MSKN, 0x08))
{
Store (Arg0, Local0)
Store (Local0, SFPI)
Store (Arg1, Local0)
Store (And (Local0, 0x03, Local0), SFPG)
CreateBitField (PSBR, 0x03, PFPS)
Store (One, PFPS)
Notify (VGA, 0x81)
}
}
Method (AFN4, 1, Serialized)
{
If (And (MSKN, 0x10))
{
Store (Arg0, Local0)
Store (SSPS, Local1)
Store (Local0, SSPS)
If (LEqual (Local0, Local1)) {}
Else
{
CreateBitField (PSBR, 0x04, PSPS)
Store (One, PSPS)
Notify (VGA, 0x81)
}
}
}
Method (AFN5, 0, Serialized)
{
If (And (MSKN, 0x20))
{
CreateBitField (PSBR, 0x05, PDCC)
Store (One, PDCC)
Notify (VGA, 0x81)
}
}
Method (AFN6, 0, Serialized)
{
If (And (MSKN, 0x40))
{
CreateBitField (PSBR, 0x06, PXPS)
Store (One, PXPS)
Notify (VGA, 0x81)
}
}
Method (AF15, 0, NotSerialized)
{
Store (0xFF, P80H)
CreateWordField (ATIB, 0x02, DSZE)
Store (0x08, DSZE)
Acquire (^^^LPC0.PSMX, 0xFFFF)
Store (0x8D, BCMD)
Store (0x0F, DID)
Store (ATIB, INFO)
BSMI (Zero)
Store (INFO, ATIB)
Release (^^^LPC0.PSMX)
Return (ATIB)
}
Name (AT00, Buffer (0xFF) {})
Name (AT01, Buffer (0x03) {})
Method (ATCS, 2, Serialized)
{
If (LEqual (Arg0, Zero))
{
ATC0 ()
}
If (LEqual (Arg0, One))
{
ATC1 ()
}
If (LEqual (Arg0, 0x02))
{
ATC2 (Arg1)
}
If (LEqual (Arg0, 0x03))
{
ATC3 ()
}
If (LEqual (Arg0, 0x04))
{
ATC4 (Arg1)
}
Return (AT00)
}
Method (ATC0, 0, NotSerialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateWordField (AT00, 0x02, INTF)
CreateDWordField (AT00, 0x04, SUPP)
Store (0x08, SZZE)
Store (One, INTF)
Store (0x0F, SUPP)
}
Method (ATC1, 0, Serialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateDWordField (AT00, 0x02, VFMK)
CreateDWordField (AT00, 0x06, FLAG)
CreateField (AT00, 0x30, One, DOCK)
Store (0x0A, SZZE)
Store (One, VFMK)
Store (Zero, FLAG)
Store (One, DOCK)
}
Method (ATC2, 1, Serialized)
{
CreateField (Arg0, 0x10, 0x03, FUCC)
CreateField (Arg0, 0x13, 0x06, DEVV)
CreateByteField (Arg0, 0x03, BUSS)
CreateDWordField (Arg0, 0x04, VFMK)
CreateDWordField (Arg0, 0x06, FLAG)
CreateField (Arg0, 0x30, One, ADVC)
CreateField (Arg0, 0x31, One, WFCM)
CreateByteField (Arg0, 0x08, RQST)
CreateByteField (Arg0, 0x09, PFRQ)
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, RETV)
Store (0x03, SZZE)
Store (One, RETV)
Store (ALIB (0x02, Arg0, AT00))
}
Method (ATC3, 0, Serialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, RETV)
CreateWordField (AT01, Zero, SZZB)
CreateByteField (AT01, 0x02, PSPP)
Store (0x03, SZZE)
Store (One, RETV)
Store (0x03, SZZB)
Store (One, PSPP)
Store (ALIB (0x03, AT01, AT00))
}
Method (ATC4, 1, Serialized)
{
CreateField (Arg0, 0x10, 0x03, FUCC)
CreateField (Arg0, 0x13, 0x06, DEVV)
CreateByteField (Arg0, 0x03, BUSS)
CreateByteField (Arg0, 0x04, NULN)
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, NULM)
Store (0x03, SZZE)
Store (One, NULM)
Store (ALIB (0x04, Arg0, AT00))
}
Method (_RMV, 0, NotSerialized)
{
If (LNotEqual (^^^VGA.PXMX, 0x80000000))
{
Return (Zero)
}
Else
{
If (LEqual (0x18, XPPB ()))
{
If (LNotEqual (^^^VGA.PXEN, 0x80000000))
{
Return (Zero)
}
Else
{
Return (One)
}
}
Else
{
Return (Zero)
}
}
}
}
Device (HDAU)
{
Name (_ADR, One)
OperationRegion (PCFG, PCI_Config, Zero, 0x50)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x2C),
SVID, 32,
Offset (0x4C),
SMID, 32
}
}
}
Device (PB3)
{
Name (_ADR, 0x00030000)
Method (_PRW, 0, NotSerialized)
{
If (LEqual (WKPM, One))
{
Return (GPRW (0x08, 0x04))
}
Else
{
Return (GPRW (0x08, Zero))
}
}
Method (_PRT, 0, NotSerialized)
{
If (GPIC)
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x13
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x10
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x11
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x12
}
})
}
Else
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKC,
Zero
}
})
}
}
OperationRegion (XPEX, SystemMemory, 0xF8018100, 0x0100)
Field (XPEX, DWordAcc, NoLock, Preserve)
{
Offset (0x28),
VC0S, 32
}
OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
Field (XPCB, AnyAcc, NoLock, Preserve)
{
Offset (0x10),
LKCN, 16,
LKST, 16,
Offset (0x1A),
, 3,
PDC2, 1,
, 2,
PDS2, 1,
Offset (0x1B),
HPCS, 1,
Offset (0x20),
Offset (0x22),
PMES, 1
}
OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
Field (XPRI, ByteAcc, NoLock, Preserve)
{
XPIR, 32,
XPID, 32
}
OperationRegion (PCFG, PCI_Config, Zero, 0x20)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x18),
SBUS, 32
}
Method (XPDL, 0, NotSerialized)
{
If (And (VC0S, 0x00020000))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Mutex (XPPM, 0x00)
Method (XPRD, 1, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (XPID, Local0)
Store (Zero, XPIR)
Release (XPPM)
Return (Local0)
}
Method (XPWR, 2, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (Arg1, XPID)
Store (Zero, XPIR)
Release (XPPM)
}
Method (XPRT, 0, NotSerialized)
{
Store (XPRD (0xA2), Local0)
And (Local0, 0xFFFFFFF8, Local0)
ShiftRight (Local0, 0x04, Local1)
And (Local1, 0x07, Local1)
Or (Local0, Local1, Local0)
Or (Local0, 0x0100, Local0)
XPWR (0xA2, Local0)
}
Method (XPR2, 0, NotSerialized)
{
Store (LKCN, Local0)
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
Or (Local0, 0x20, Local0)
Store (Local0, LKCN)
Store (0x64, Local1)
Store (One, Local2)
While (LAnd (Local1, Local2))
{
Sleep (One)
Store (LKST, Local3)
If (And (Local3, 0x0800))
{
Decrement (Local1)
}
Else
{
Store (Zero, Local2)
}
}
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
If (LNot (Local2))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Method (XPPB, 0, NotSerialized)
{
Store (_ADR, Local0)
Store (ShiftRight (Local0, 0x10), Local1)
Store (ShiftLeft (Local1, 0x03), Local1)
Store (And (Local0, 0x0F), Local2)
Store (Or (Local1, Local2), Local3)
Return (Local3)
}
Method (XPPR, 1, NotSerialized)
{
Name (HPOK, Zero)
Store (Zero, HPOK)
Store (ShiftLeft (XPPB (), 0x03), Local0)
If (Arg0)
{
XPLL (Local0, One)
XPLP (Local0, One)
Sleep (0xC8)
XPTR (Local0, One)
Store (0x0F, Local5)
While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
{
Store (One, PDC2)
Store (0x28, Local1)
While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
{
Store (XPRD (0xA5), Local2)
If (LEqual (And (Local2, 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LGreaterEqual (And (Local2, 0xFF), 0x04))
{
Store (One, HPOK)
}
Decrement (Local1)
}
If (HPOK)
{
Store (And (XPRD (0xA5), 0xFF), Local2)
Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
Local3, 0x05))))
{
Store (Zero, HPOK)
}
}
If (HPOK)
{
Store (0x07D0, Local1)
Store (Zero, HPOK)
While (LAnd (LNot (HPOK), Local1))
{
Store (And (XPRD (0xA5), 0xFF), Local2)
If (LEqual (Local2, 0x07))
{
Store (One, Local1)
Store (XPDL (), Local4)
If (Local4)
{
XPRT ()
Decrement (Local5)
}
}
If (LEqual (Local2, 0x10))
{
Store (One, HPOK)
}
Sleep (One)
Decrement (Local1)
}
}
}
}
If (HPOK)
{
XPTR (Local0, Zero)
XPLP (Local0, Zero)
XPLL (Local0, Zero)
}
Return (Ones)
}
Device (VGA)
{
Name (_ADR, Zero)
OperationRegion (PCFG, PCI_Config, Zero, 0x50)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x2C),
SVID, 32,
Offset (0x4C),
SMID, 32
}
Name (DOSA, Zero)
Method (_DOS, 1, NotSerialized)
{
Store (Arg0, DOSA)
}
Method (_DOD, 0, NotSerialized)
{
Name (DODL, Package (0x05)
{
0x00010100,
0x00010110,
0x0200,
0x00010210,
0x00010220
})
Return (DODL)
}
Device (LCD)
{
Name (_ADR, 0x0110)
Method (_BCL, 0, NotSerialized)
{
Return (Package (0x0A)
{
0x64,
0x28,
0x0A,
0x14,
0x1E,
0x28,
0x37,
0x46,
0x55,
0x64
})
}
Method (_BCM, 1, Serialized)
{
Name (_T_0, Zero)
While (One)
{
Store (ToInteger (Arg0), _T_0)
If (LEqual (_T_0, 0x0A))
{
Store (Zero, Local1)
}
Else
{
If (LEqual (_T_0, 0x14))
{
Store (One, Local1)
}
Else
{
If (LEqual (_T_0, 0x1E))
{
Store (0x02, Local1)
}
Else
{
If (LEqual (_T_0, 0x28))
{
Store (0x03, Local1)
}
Else
{
If (LEqual (_T_0, 0x37))
{
Store (0x04, Local1)
}
Else
{
If (LEqual (_T_0, 0x46))
{
Store (0x05, Local1)
}
Else
{
If (LEqual (_T_0, 0x55))
{
Store (0x06, Local1)
}
Else
{
If (LEqual (_T_0, 0x64))
{
Store (0x07, Local1)
}
}
}
}
}
}
}
}
Break
}
Store (ToInteger (Local1), Local0)
If (LGreaterEqual (TPOS, 0x40))
{
Store (ToInteger (Local1), ^^^^LPC0.EC0.BLVL)
^^^^LPC0.EC0.SVBN ()
}
}
Method (_BQC, 0, Serialized)
{
Name (_T_0, Zero)
If (LGreaterEqual (TPOS, 0x40))
{
Store (^^^^LPC0.EC0.BLVL, Local0)
While (One)
{
Store (ToInteger (Local0), _T_0)
If (LEqual (_T_0, Zero))
{
Store (0x0A, Local1)
}
Else
{
If (LEqual (_T_0, One))
{
Store (0x14, Local1)
}
Else
{
If (LEqual (_T_0, 0x02))
{
Store (0x1E, Local1)
}
Else
{
If (LEqual (_T_0, 0x03))
{
Store (0x28, Local1)
}
Else
{
If (LEqual (_T_0, 0x04))
{
Store (0x37, Local1)
}
Else
{
If (LEqual (_T_0, 0x05))
{
Store (0x46, Local1)
}
Else
{
If (LEqual (_T_0, 0x06))
{
Store (0x55, Local1)
}
Else
{
If (LEqual (_T_0, 0x07))
{
Store (0x64, Local1)
}
}
}
}
}
}
}
}
Break
}
}
Return (Local1)
}
Method (_DGS, 0, NotSerialized)
{
Return (^^^^LPC0.EC0.NXT0)
}
}
Device (CRT)
{
Method (_ADR, 0, Serialized)
{
Return (0x0100)
}
Method (_DGS, 0, NotSerialized)
{
Return (^^^^LPC0.EC0.NXT1)
}
}
Device (HDMI)
{
Method (_ADR, 0, Serialized)
{
Return (0x0210)
}
Method (_DGS, 0, NotSerialized)
{
Return (^^^^LPC0.EC0.NXT2)
}
}
Name (ATIB, Buffer (0x0100) {})
Method (ATIF, 2, Serialized)
{
If (LEqual (Arg0, Zero))
{
Return (AF00 ())
}
If (LEqual (Arg0, One))
{
Return (AF01 ())
}
If (LEqual (Arg0, 0x02))
{
Return (AF02 ())
}
If (LEqual (Arg0, 0x03))
{
Return (AF03 (DerefOf (Index (Arg1, 0x02)), DerefOf (Index (Arg1,
0x04))))
}
If (LEqual (Arg0, 0x0F))
{
Return (AF15 ())
}
Else
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, VERN)
CreateDWordField (ATIB, 0x04, NMSK)
CreateDWordField (ATIB, 0x08, SFUN)
Store (Zero, SSZE)
Store (Zero, VERN)
Store (Zero, NMSK)
Store (Zero, SFUN)
Return (ATIB)
}
}
Method (AF00, 0, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, VERN)
CreateDWordField (ATIB, 0x04, NMSK)
CreateDWordField (ATIB, 0x08, SFUN)
Store (0x0C, SSZE)
Store (One, VERN)
If (LEqual (^^^VGA.PXEN, 0x80000000))
{
Store (0x11, NMSK)
}
Else
{
Store (0x51, NMSK)
}
Store (NMSK, MSKN)
Store (0x4007, SFUN)
Return (ATIB)
}
Method (AF01, 0, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateDWordField (ATIB, 0x02, VMSK)
CreateDWordField (ATIB, 0x06, FLGS)
Store (0x0A, SSZE)
Store (0x03, VMSK)
Store (One, FLGS)
Return (ATIB)
}
Name (PSBR, Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
})
Name (MSKN, Zero)
Name (SEXM, Zero)
Name (STHG, Zero)
Name (STHI, Zero)
Name (SFPG, Zero)
Name (SFPI, Zero)
Name (SSPS, Zero)
Name (SSDM, 0x0A)
Name (SCDY, Zero)
Name (SACT, Buffer (0x07)
{
0x01, 0x02, 0x08, 0x80, 0x03, 0x09, 0x81
})
Method (AF02, 0, NotSerialized)
{
CreateBitField (PSBR, Zero, PDSW)
CreateBitField (PSBR, One, PEXM)
CreateBitField (PSBR, 0x02, PTHR)
CreateBitField (PSBR, 0x03, PFPS)
CreateBitField (PSBR, 0x04, PSPS)
CreateBitField (PSBR, 0x05, PDCC)
CreateBitField (PSBR, 0x06, PXPS)
CreateWordField (ATIB, Zero, SSZE)
CreateDWordField (ATIB, 0x02, PSBI)
CreateByteField (ATIB, 0x06, EXPM)
CreateByteField (ATIB, 0x07, THRM)
CreateByteField (ATIB, 0x08, THID)
CreateByteField (ATIB, 0x09, FPWR)
CreateByteField (ATIB, 0x0A, FPID)
CreateByteField (ATIB, 0x0B, SPWR)
Store (0x0C, SSZE)
Store (PSBR, PSBI)
If (PDSW)
{
Store (Zero, PDSW)
}
If (PEXM)
{
Store (SEXM, EXPM)
Store (Zero, SEXM)
Store (Zero, PEXM)
}
If (PTHR)
{
Store (STHG, THRM)
Store (STHI, THID)
Store (Zero, STHG)
Store (Zero, STHI)
Store (Zero, PTHR)
}
If (PFPS)
{
Store (SFPG, FPWR)
Store (SFPI, FPWR)
Store (Zero, SFPG)
Store (Zero, SFPI)
Store (Zero, PFPS)
}
If (PSPS)
{
Store (SSPS, SPWR)
Store (Zero, PSPS)
}
If (PXPS)
{
Store (Zero, PXPS)
}
Return (ATIB)
}
Method (AF03, 2, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, SSDP)
CreateWordField (ATIB, 0x04, SCDP)
Store (Arg0, SSDP)
Store (Arg1, SCDP)
Name (NXTD, 0x06)
Name (CIDX, 0x06)
Store (SSDP, Local1)
And (Local1, 0x8B, Local1)
Store (SCDP, Local2)
If (CondRefOf (\_SB.LID._LID, Local4))
{
And (Local2, 0xFFFFFFFE, Local2)
Or (Local2, ^^^^LID._LID (), Local2)
}
Else
{
Or (Local2, One, Local2)
}
Store (Local2, P80H)
Store (Zero, Local0)
While (LLess (Local0, SizeOf (SACT)))
{
Store (DerefOf (Index (SACT, Local0)), Local3)
If (LEqual (Local3, Local1))
{
Store (Local0, CIDX)
Store (SizeOf (SACT), Local0)
}
Else
{
Increment (Local0)
}
}
Store (CIDX, Local0)
While (LLess (Local0, SizeOf (SACT)))
{
Increment (Local0)
If (LEqual (Local0, SizeOf (SACT)))
{
Store (Zero, Local0)
}
Store (DerefOf (Index (SACT, Local0)), Local3)
If (LEqual (And (Local3, Local2), Local3))
{
Store (Local0, NXTD)
Store (SizeOf (SACT), Local0)
}
}
If (LEqual (NXTD, SizeOf (SACT)))
{
Store (Zero, SSDP)
}
Else
{
Store (NXTD, Local0)
Store (DerefOf (Index (SACT, Local0)), Local3)
And (SSDP, 0xFFFFFFF4, SSDP)
Or (SSDP, Local3, SSDP)
}
Store (0x04, SSZE)
Store (SSDP, P80H)
Return (ATIB)
}
Method (AFN0, 0, Serialized)
{
If (And (MSKN, One))
{
CreateBitField (PSBR, Zero, PDSW)
Store (One, PDSW)
Notify (VGA, 0x81)
}
}
Method (AFN3, 2, Serialized)
{
If (And (MSKN, 0x08))
{
Store (Arg0, Local0)
Store (Local0, SFPI)
Store (Arg1, Local0)
Store (And (Local0, 0x03, Local0), SFPG)
CreateBitField (PSBR, 0x03, PFPS)
Store (One, PFPS)
Notify (VGA, 0x81)
}
}
Method (AFN4, 1, Serialized)
{
If (And (MSKN, 0x10))
{
Store (Arg0, Local0)
Store (SSPS, Local1)
Store (Local0, SSPS)
If (LEqual (Local0, Local1)) {}
Else
{
CreateBitField (PSBR, 0x04, PSPS)
Store (One, PSPS)
Notify (VGA, 0x81)
}
}
}
Method (AFN5, 0, Serialized)
{
If (And (MSKN, 0x20))
{
CreateBitField (PSBR, 0x05, PDCC)
Store (One, PDCC)
Notify (VGA, 0x81)
}
}
Method (AFN6, 0, Serialized)
{
If (And (MSKN, 0x40))
{
CreateBitField (PSBR, 0x06, PXPS)
Store (One, PXPS)
Notify (VGA, 0x81)
}
}
Method (AF15, 0, NotSerialized)
{
Store (0xFF, P80H)
CreateWordField (ATIB, 0x02, DSZE)
Store (0x08, DSZE)
Acquire (^^^LPC0.PSMX, 0xFFFF)
Store (0x8D, BCMD)
Store (0x0F, DID)
Store (ATIB, INFO)
BSMI (Zero)
Store (INFO, ATIB)
Release (^^^LPC0.PSMX)
Return (ATIB)
}
Name (AT00, Buffer (0xFF) {})
Name (AT01, Buffer (0x03) {})
Method (ATCS, 2, Serialized)
{
If (LEqual (Arg0, Zero))
{
ATC0 ()
}
If (LEqual (Arg0, One))
{
ATC1 ()
}
If (LEqual (Arg0, 0x02))
{
ATC2 (Arg1)
}
If (LEqual (Arg0, 0x03))
{
ATC3 ()
}
If (LEqual (Arg0, 0x04))
{
ATC4 (Arg1)
}
Return (AT00)
}
Method (ATC0, 0, NotSerialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateWordField (AT00, 0x02, INTF)
CreateDWordField (AT00, 0x04, SUPP)
Store (0x08, SZZE)
Store (One, INTF)
Store (0x0F, SUPP)
}
Method (ATC1, 0, Serialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateDWordField (AT00, 0x02, VFMK)
CreateDWordField (AT00, 0x06, FLAG)
CreateField (AT00, 0x30, One, DOCK)
Store (0x0A, SZZE)
Store (One, VFMK)
Store (Zero, FLAG)
Store (One, DOCK)
}
Method (ATC2, 1, Serialized)
{
CreateField (Arg0, 0x10, 0x03, FUCC)
CreateField (Arg0, 0x13, 0x06, DEVV)
CreateByteField (Arg0, 0x03, BUSS)
CreateDWordField (Arg0, 0x04, VFMK)
CreateDWordField (Arg0, 0x06, FLAG)
CreateField (Arg0, 0x30, One, ADVC)
CreateField (Arg0, 0x31, One, WFCM)
CreateByteField (Arg0, 0x08, RQST)
CreateByteField (Arg0, 0x09, PFRQ)
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, RETV)
Store (0x03, SZZE)
Store (One, RETV)
Store (ALIB (0x02, Arg0, AT00))
}
Method (ATC3, 0, Serialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, RETV)
CreateWordField (AT01, Zero, SZZB)
CreateByteField (AT01, 0x02, PSPP)
Store (0x03, SZZE)
Store (One, RETV)
Store (0x03, SZZB)
Store (One, PSPP)
Store (ALIB (0x03, AT01, AT00))
}
Method (ATC4, 1, Serialized)
{
CreateField (Arg0, 0x10, 0x03, FUCC)
CreateField (Arg0, 0x13, 0x06, DEVV)
CreateByteField (Arg0, 0x03, BUSS)
CreateByteField (Arg0, 0x04, NULN)
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, NULM)
Store (0x03, SZZE)
Store (One, NULM)
Store (ALIB (0x04, Arg0, AT00))
}
}
Device (HDAU)
{
Name (_ADR, One)
OperationRegion (PCFG, PCI_Config, Zero, 0x50)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x2C),
SVID, 32,
Offset (0x4C),
SMID, 32
}
}
}
Device (PB4)
{
Name (_ADR, 0x00040000)
Name (_PRW, Package (0x02)
{
0x08,
0x04
})
Name (PR03, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKD,
Zero
}
})
Name (AR03, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x10
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x12
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x13
}
})
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR03)
}
Return (PR03)
}
OperationRegion (XPEX, SystemMemory, 0xF8020100, 0x0100)
Field (XPEX, DWordAcc, NoLock, Preserve)
{
Offset (0x28),
VC0S, 32
}
OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
Field (XPCB, AnyAcc, NoLock, Preserve)
{
Offset (0x10),
LKCN, 16,
LKST, 16,
Offset (0x1A),
, 3,
PDC2, 1,
, 2,
PDS2, 1,
Offset (0x1B),
HPCS, 1,
Offset (0x20),
Offset (0x22),
PMES, 1
}
OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
Field (XPRI, ByteAcc, NoLock, Preserve)
{
XPIR, 32,
XPID, 32
}
OperationRegion (PCFG, PCI_Config, Zero, 0x20)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x18),
SBUS, 32
}
Method (XPDL, 0, NotSerialized)
{
If (And (VC0S, 0x00020000))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Mutex (XPPM, 0x00)
Method (XPRD, 1, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (XPID, Local0)
Store (Zero, XPIR)
Release (XPPM)
Return (Local0)
}
Method (XPWR, 2, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (Arg1, XPID)
Store (Zero, XPIR)
Release (XPPM)
}
Method (XPRT, 0, NotSerialized)
{
Store (XPRD (0xA2), Local0)
And (Local0, 0xFFFFFFF8, Local0)
ShiftRight (Local0, 0x04, Local1)
And (Local1, 0x07, Local1)
Or (Local0, Local1, Local0)
Or (Local0, 0x0100, Local0)
XPWR (0xA2, Local0)
}
Method (XPR2, 0, NotSerialized)
{
Store (LKCN, Local0)
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
Or (Local0, 0x20, Local0)
Store (Local0, LKCN)
Store (0x64, Local1)
Store (One, Local2)
While (LAnd (Local1, Local2))
{
Sleep (One)
Store (LKST, Local3)
If (And (Local3, 0x0800))
{
Decrement (Local1)
}
Else
{
Store (Zero, Local2)
}
}
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
If (LNot (Local2))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Method (XPPB, 0, NotSerialized)
{
Store (_ADR, Local0)
Store (ShiftRight (Local0, 0x10), Local1)
Store (ShiftLeft (Local1, 0x03), Local1)
Store (And (Local0, 0x0F), Local2)
Store (Or (Local1, Local2), Local3)
Return (Local3)
}
Method (XPPR, 1, NotSerialized)
{
Name (HPOK, Zero)
Store (Zero, HPOK)
Store (ShiftLeft (XPPB (), 0x03), Local0)
If (Arg0)
{
XPLL (Local0, One)
XPLP (Local0, One)
Sleep (0xC8)
XPTR (Local0, One)
Store (0x0F, Local5)
While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
{
Store (One, PDC2)
Store (0x28, Local1)
While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
{
Store (XPRD (0xA5), Local2)
If (LEqual (And (Local2, 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LGreaterEqual (And (Local2, 0xFF), 0x04))
{
Store (One, HPOK)
}
Decrement (Local1)
}
If (HPOK)
{
Store (And (XPRD (0xA5), 0xFF), Local2)
Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
Local3, 0x05))))
{
Store (Zero, HPOK)
}
}
If (HPOK)
{
Store (0x07D0, Local1)
Store (Zero, HPOK)
While (LAnd (LNot (HPOK), Local1))
{
Store (And (XPRD (0xA5), 0xFF), Local2)
If (LEqual (Local2, 0x07))
{
Store (One, Local1)
Store (XPDL (), Local4)
If (Local4)
{
XPRT ()
Decrement (Local5)
}
}
If (LEqual (Local2, 0x10))
{
Store (One, HPOK)
}
Sleep (One)
Decrement (Local1)
}
}
}
}
If (HPOK)
{
XPTR (Local0, Zero)
XPLP (Local0, Zero)
XPLL (Local0, Zero)
}
Return (Ones)
}
Device (XPDV)
{
Name (_ADR, Zero)
OperationRegion (PCFG, PCI_Config, Zero, 0x08)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
PCMS, 32
}
}
}
Device (PB5)
{
Name (_ADR, 0x00050000)
Method (_PRW, 0, NotSerialized)
{
If (LEqual (WKPM, One))
{
Return (GPRW (0x08, 0x05))
}
Else
{
Return (GPRW (0x08, Zero))
}
}
Name (PR04, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKA,
Zero
}
})
Name (AR04, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x11
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x12
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x13
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x10
}
})
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR04)
}
Return (PR04)
}
OperationRegion (XPEX, SystemMemory, 0xF8028100, 0x0100)
Field (XPEX, DWordAcc, NoLock, Preserve)
{
Offset (0x28),
VC0S, 32
}
OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
Field (XPCB, AnyAcc, NoLock, Preserve)
{
Offset (0x10),
LKCN, 16,
LKST, 16,
Offset (0x1A),
, 3,
PDC2, 1,
, 2,
PDS2, 1,
Offset (0x1B),
HPCS, 1,
Offset (0x20),
Offset (0x22),
PMES, 1
}
OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
Field (XPRI, ByteAcc, NoLock, Preserve)
{
XPIR, 32,
XPID, 32
}
OperationRegion (PCFG, PCI_Config, Zero, 0x20)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x18),
SBUS, 32
}
Method (XPDL, 0, NotSerialized)
{
If (And (VC0S, 0x00020000))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Mutex (XPPM, 0x00)
Method (XPRD, 1, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (XPID, Local0)
Store (Zero, XPIR)
Release (XPPM)
Return (Local0)
}
Method (XPWR, 2, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (Arg1, XPID)
Store (Zero, XPIR)
Release (XPPM)
}
Method (XPRT, 0, NotSerialized)
{
Store (XPRD (0xA2), Local0)
And (Local0, 0xFFFFFFF8, Local0)
ShiftRight (Local0, 0x04, Local1)
And (Local1, 0x07, Local1)
Or (Local0, Local1, Local0)
Or (Local0, 0x0100, Local0)
XPWR (0xA2, Local0)
}
Method (XPR2, 0, NotSerialized)
{
Store (LKCN, Local0)
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
Or (Local0, 0x20, Local0)
Store (Local0, LKCN)
Store (0x64, Local1)
Store (One, Local2)
While (LAnd (Local1, Local2))
{
Sleep (One)
Store (LKST, Local3)
If (And (Local3, 0x0800))
{
Decrement (Local1)
}
Else
{
Store (Zero, Local2)
}
}
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
If (LNot (Local2))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Method (XPPB, 0, NotSerialized)
{
Store (_ADR, Local0)
Store (ShiftRight (Local0, 0x10), Local1)
Store (ShiftLeft (Local1, 0x03), Local1)
Store (And (Local0, 0x0F), Local2)
Store (Or (Local1, Local2), Local3)
Return (Local3)
}
Method (XPPR, 1, NotSerialized)
{
Name (HPOK, Zero)
Store (Zero, HPOK)
Store (ShiftLeft (XPPB (), 0x03), Local0)
If (Arg0)
{
XPLL (Local0, One)
XPLP (Local0, One)
Sleep (0xC8)
XPTR (Local0, One)
Store (0x0F, Local5)
While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
{
Store (One, PDC2)
Store (0x28, Local1)
While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
{
Store (XPRD (0xA5), Local2)
If (LEqual (And (Local2, 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LGreaterEqual (And (Local2, 0xFF), 0x04))
{
Store (One, HPOK)
}
Decrement (Local1)
}
If (HPOK)
{
Store (And (XPRD (0xA5), 0xFF), Local2)
Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
Local3, 0x05))))
{
Store (Zero, HPOK)
}
}
If (HPOK)
{
Store (0x07D0, Local1)
Store (Zero, HPOK)
While (LAnd (LNot (HPOK), Local1))
{
Store (And (XPRD (0xA5), 0xFF), Local2)
If (LEqual (Local2, 0x07))
{
Store (One, Local1)
Store (XPDL (), Local4)
If (Local4)
{
XPRT ()
Decrement (Local5)
}
}
If (LEqual (Local2, 0x10))
{
Store (One, HPOK)
}
Sleep (One)
Decrement (Local1)
}
}
}
}
If (HPOK)
{
XPTR (Local0, Zero)
XPLP (Local0, Zero)
XPLL (Local0, Zero)
}
Return (Ones)
}
Device (XPDV)
{
Name (_ADR, Zero)
OperationRegion (PCFG, PCI_Config, Zero, 0x08)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
PCMS, 32
}
}
}
Device (PB6)
{
Name (_ADR, 0x00060000)
Method (_PRW, 0, NotSerialized)
{
If (LEqual (WKPM, One))
{
Return (GPRW (0x08, 0x05))
}
Else
{
Return (GPRW (0x08, Zero))
}
}
Name (PR05, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKB,
Zero
}
})
Name (AR05, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x11
}
})
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR05)
}
Return (PR05)
}
OperationRegion (XPEX, SystemMemory, 0xF8030100, 0x0100)
Field (XPEX, DWordAcc, NoLock, Preserve)
{
Offset (0x28),
VC0S, 32
}
OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
Field (XPCB, AnyAcc, NoLock, Preserve)
{
Offset (0x10),
LKCN, 16,
LKST, 16,
Offset (0x1A),
, 3,
PDC2, 1,
, 2,
PDS2, 1,
Offset (0x1B),
HPCS, 1,
Offset (0x20),
Offset (0x22),
PMES, 1
}
OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
Field (XPRI, ByteAcc, NoLock, Preserve)
{
XPIR, 32,
XPID, 32
}
OperationRegion (PCFG, PCI_Config, Zero, 0x20)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x18),
SBUS, 32
}
Method (XPDL, 0, NotSerialized)
{
If (And (VC0S, 0x00020000))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Mutex (XPPM, 0x00)
Method (XPRD, 1, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (XPID, Local0)
Store (Zero, XPIR)
Release (XPPM)
Return (Local0)
}
Method (XPWR, 2, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (Arg1, XPID)
Store (Zero, XPIR)
Release (XPPM)
}
Method (XPRT, 0, NotSerialized)
{
Store (XPRD (0xA2), Local0)
And (Local0, 0xFFFFFFF8, Local0)
ShiftRight (Local0, 0x04, Local1)
And (Local1, 0x07, Local1)
Or (Local0, Local1, Local0)
Or (Local0, 0x0100, Local0)
XPWR (0xA2, Local0)
}
Method (XPR2, 0, NotSerialized)
{
Store (LKCN, Local0)
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
Or (Local0, 0x20, Local0)
Store (Local0, LKCN)
Store (0x64, Local1)
Store (One, Local2)
While (LAnd (Local1, Local2))
{
Sleep (One)
Store (LKST, Local3)
If (And (Local3, 0x0800))
{
Decrement (Local1)
}
Else
{
Store (Zero, Local2)
}
}
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
If (LNot (Local2))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Method (XPPB, 0, NotSerialized)
{
Store (_ADR, Local0)
Store (ShiftRight (Local0, 0x10), Local1)
Store (ShiftLeft (Local1, 0x03), Local1)
Store (And (Local0, 0x0F), Local2)
Store (Or (Local1, Local2), Local3)
Return (Local3)
}
Method (XPPR, 1, NotSerialized)
{
Name (HPOK, Zero)
Store (Zero, HPOK)
Store (ShiftLeft (XPPB (), 0x03), Local0)
If (Arg0)
{
XPLL (Local0, One)
XPLP (Local0, One)
Sleep (0xC8)
XPTR (Local0, One)
Store (0x0F, Local5)
While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
{
Store (One, PDC2)
Store (0x28, Local1)
While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
{
Store (XPRD (0xA5), Local2)
If (LEqual (And (Local2, 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LGreaterEqual (And (Local2, 0xFF), 0x04))
{
Store (One, HPOK)
}
Decrement (Local1)
}
If (HPOK)
{
Store (And (XPRD (0xA5), 0xFF), Local2)
Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
Local3, 0x05))))
{
Store (Zero, HPOK)
}
}
If (HPOK)
{
Store (0x07D0, Local1)
Store (Zero, HPOK)
While (LAnd (LNot (HPOK), Local1))
{
Store (And (XPRD (0xA5), 0xFF), Local2)
If (LEqual (Local2, 0x07))
{
Store (One, Local1)
Store (XPDL (), Local4)
If (Local4)
{
XPRT ()
Decrement (Local5)
}
}
If (LEqual (Local2, 0x10))
{
Store (One, HPOK)
}
Sleep (One)
Decrement (Local1)
}
}
}
}
If (HPOK)
{
XPTR (Local0, Zero)
XPLP (Local0, Zero)
XPLL (Local0, Zero)
}
Return (Ones)
}
Device (XPDV)
{
Name (_ADR, Zero)
OperationRegion (PCFG, PCI_Config, Zero, 0x08)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
PCMS, 32
}
}
}
Device (PB7)
{
Name (_ADR, 0x00070000)
Method (_PRW, 0, NotSerialized)
{
If (LEqual (WKPM, One))
{
Return (GPRW (0x08, 0x05))
}
Else
{
Return (GPRW (0x08, Zero))
}
}
Name (PR06, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKC,
Zero
}
})
Name (AR06, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x13
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x10
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x11
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x12
}
})
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR06)
}
Return (PR06)
}
OperationRegion (XPEX, SystemMemory, 0xF8038100, 0x0100)
Field (XPEX, DWordAcc, NoLock, Preserve)
{
Offset (0x28),
VC0S, 32
}
OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
Field (XPCB, AnyAcc, NoLock, Preserve)
{
Offset (0x10),
LKCN, 16,
LKST, 16,
Offset (0x1A),
, 3,
PDC2, 1,
, 2,
PDS2, 1,
Offset (0x1B),
HPCS, 1,
Offset (0x20),
Offset (0x22),
PMES, 1
}
OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
Field (XPRI, ByteAcc, NoLock, Preserve)
{
XPIR, 32,
XPID, 32
}
OperationRegion (PCFG, PCI_Config, Zero, 0x20)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x18),
SBUS, 32
}
Method (XPDL, 0, NotSerialized)
{
If (And (VC0S, 0x00020000))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Mutex (XPPM, 0x00)
Method (XPRD, 1, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (XPID, Local0)
Store (Zero, XPIR)
Release (XPPM)
Return (Local0)
}
Method (XPWR, 2, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (Arg1, XPID)
Store (Zero, XPIR)
Release (XPPM)
}
Method (XPRT, 0, NotSerialized)
{
Store (XPRD (0xA2), Local0)
And (Local0, 0xFFFFFFF8, Local0)
ShiftRight (Local0, 0x04, Local1)
And (Local1, 0x07, Local1)
Or (Local0, Local1, Local0)
Or (Local0, 0x0100, Local0)
XPWR (0xA2, Local0)
}
Method (XPR2, 0, NotSerialized)
{
Store (LKCN, Local0)
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
Or (Local0, 0x20, Local0)
Store (Local0, LKCN)
Store (0x64, Local1)
Store (One, Local2)
While (LAnd (Local1, Local2))
{
Sleep (One)
Store (LKST, Local3)
If (And (Local3, 0x0800))
{
Decrement (Local1)
}
Else
{
Store (Zero, Local2)
}
}
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
If (LNot (Local2))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Method (XPPB, 0, NotSerialized)
{
Store (_ADR, Local0)
Store (ShiftRight (Local0, 0x10), Local1)
Store (ShiftLeft (Local1, 0x03), Local1)
Store (And (Local0, 0x0F), Local2)
Store (Or (Local1, Local2), Local3)
Return (Local3)
}
Method (XPPR, 1, NotSerialized)
{
Name (HPOK, Zero)
Store (Zero, HPOK)
Store (ShiftLeft (XPPB (), 0x03), Local0)
If (Arg0)
{
XPLL (Local0, One)
XPLP (Local0, One)
Sleep (0xC8)
XPTR (Local0, One)
Store (0x0F, Local5)
While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
{
Store (One, PDC2)
Store (0x28, Local1)
While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
{
Store (XPRD (0xA5), Local2)
If (LEqual (And (Local2, 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LGreaterEqual (And (Local2, 0xFF), 0x04))
{
Store (One, HPOK)
}
Decrement (Local1)
}
If (HPOK)
{
Store (And (XPRD (0xA5), 0xFF), Local2)
Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
Local3, 0x05))))
{
Store (Zero, HPOK)
}
}
If (HPOK)
{
Store (0x07D0, Local1)
Store (Zero, HPOK)
While (LAnd (LNot (HPOK), Local1))
{
Store (And (XPRD (0xA5), 0xFF), Local2)
If (LEqual (Local2, 0x07))
{
Store (One, Local1)
Store (XPDL (), Local4)
If (Local4)
{
XPRT ()
Decrement (Local5)
}
}
If (LEqual (Local2, 0x10))
{
Store (One, HPOK)
}
Sleep (One)
Decrement (Local1)
}
}
}
}
If (HPOK)
{
XPTR (Local0, Zero)
XPLP (Local0, Zero)
XPLL (Local0, Zero)
}
Return (Ones)
}
Device (XPDV)
{
Name (_ADR, Zero)
OperationRegion (PCFG, PCI_Config, Zero, 0xFF)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
PCMS, 32,
Offset (0xDC),
DISF, 32
}
}
}
Device (SPB0)
{
Name (_ADR, 0x00150000)
Name (_PRW, Package (0x02)
{
0x08,
0x04
})
Name (PR0A, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKB,
Zero
}
})
Name (AR0A, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x11
}
})
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR0A)
}
Return (PR0A)
}
OperationRegion (PCFG, PCI_Config, Zero, 0x20)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
PCMS, 32,
Offset (0x18),
SBUS, 32
}
Device (XPDV)
{
Name (_ADR, Zero)
OperationRegion (PCFG, PCI_Config, Zero, 0x08)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
PCMS, 32
}
}
}
Device (SPB1)
{
Name (_ADR, 0x00150001)
Name (_PRW, Package (0x02)
{
0x08,
0x04
})
Name (PR0B, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKC,
Zero
}
})
Name (AR0B, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x13
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x10
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x11
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x12
}
})
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR0B)
}
Return (PR0B)
}
OperationRegion (PCFG, PCI_Config, Zero, 0x20)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
PCMS, 32,
Offset (0x18),
SBUS, 32
}
Device (XPDV)
{
Name (_ADR, Zero)
OperationRegion (PCFG, PCI_Config, Zero, 0x08)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
PCMS, 32
}
}
}
Device (SPB2)
{
Name (_ADR, 0x00150002)
Name (_PRW, Package (0x02)
{
0x08,
0x04
})
Name (PR0C, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKD,
Zero
}
})
Name (AR0C, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x10
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x12
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x13
}
})
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR0C)
}
Return (PR0C)
}
OperationRegion (PCFG, PCI_Config, Zero, 0x20)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
PCMS, 32,
Offset (0x18),
SBUS, 32
}
Device (XPDV)
{
Name (_ADR, Zero)
OperationRegion (PCFG, PCI_Config, Zero, 0x08)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
PCMS, 32
}
}
}
Device (SPB3)
{
Name (_ADR, 0x00150003)
Name (_PRW, Package (0x02)
{
0x08,
0x04
})
Name (PR0D, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKA,
Zero
}
})
Name (AR0D, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x11
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x12
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x13
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x10
}
})
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR0D)
}
Return (PR0D)
}
OperationRegion (PCFG, PCI_Config, Zero, 0x20)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
PCMS, 32,
Offset (0x18),
SBUS, 32
}
Device (XPDV)
{
Name (_ADR, Zero)
OperationRegion (PCFG, PCI_Config, Zero, 0x08)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
PCMS, 32
}
}
}
Device (HPET)
{
Name (_HID, EisaId ("PNP0103"))
Method (_STA, 0, NotSerialized)
{
If (LEqual (And (HPAD, 0x03), 0x03))
{
If (LGreaterEqual (OSTB, 0x40))
{
Return (0x0F)
}
Store (And (HPAD, 0xFFFFFFE0), HPAD)
Return (One)
}
Return (One)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
IRQNoFlags ()
{0}
IRQNoFlags ()
{8}
Memory32Fixed (ReadOnly,
0xFED00000, // Address Base
0x00000400, // Address Length
_Y03)
})
CreateDWordField (BUF0, \_SB.PCI0.HPET._CRS._Y03._BAS, HPEB)
Store (HPAD, Local0)
And (Local0, 0xFFFFFC00, HPEB)
Return (BUF0)
}
}
Device (AZAL)
{
Name (_ADR, 0x00140002)
OperationRegion (PCI, PCI_Config, Zero, 0x0100)
Field (PCI, AnyAcc, NoLock, Preserve)
{
Offset (0x42),
DNSP, 1,
DNSO, 1,
ENSR, 1
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x1B, 0x03))
}
}
Device (GEC)
{
Name (_ADR, 0x00140006)
Name (_PRW, Package (0x02)
{
0x1A,
0x04
})
}
Device (OHC1)
{
Name (_ADR, 0x00120000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x18, 0x03))
}
Method (_S3D, 0, NotSerialized)
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x02)
}
Method (_PSW, 1, NotSerialized)
{
If (Arg0)
{
If (^^LPC0.EC0.USCE)
{
Store (One, ^^LPC0.EC0.USNV)
Store (One, ^^SMBS.USRE)
}
Else
{
Store (One, ^^LPC0.EC0.USNV)
Store (One, ^^LPC0.EC0.USCV)
Store (One, ^^SMBS.USRE)
}
}
Else
{
If (^^LPC0.EC0.USCE)
{
Store (Zero, ^^LPC0.EC0.USNV)
Store (Zero, ^^SMBS.USRE)
}
Else
{
Store (Zero, ^^LPC0.EC0.USNV)
Store (Zero, ^^LPC0.EC0.USCV)
Store (Zero, ^^SMBS.USRE)
}
}
}
}
Device (OHC2)
{
Name (_ADR, 0x00130000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x18, 0x03))
}
Method (_S3D, 0, NotSerialized)
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x02)
}
}
Device (OHC3)
{
Name (_ADR, 0x00160000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x18, 0x03))
}
Method (_S3D, 0, NotSerialized)
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x02)
}
}
Device (OHC4)
{
Name (_ADR, 0x00140005)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x18, 0x03))
}
Method (_S3D, 0, NotSerialized)
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x02)
}
}
Device (EHC1)
{
Name (_ADR, 0x00120002)
OperationRegion (PCFG, PCI_Config, 0xA0, 0x04)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
OSOW, 32
}
Method (STOS, 0, NotSerialized)
{
Or (OSOW, 0x01000000, OSOW)
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x18, 0x03))
}
Method (_PSW, 1, NotSerialized)
{
If (Arg0)
{
If (^^LPC0.EC0.USCE)
{
Store (One, ^^LPC0.EC0.USNV)
Store (One, ^^SMBS.USRE)
}
Else
{
Store (One, ^^LPC0.EC0.USNV)
Store (One, ^^LPC0.EC0.USCV)
Store (One, ^^SMBS.USRE)
}
}
Else
{
If (^^LPC0.EC0.USCE)
{
Store (Zero, ^^LPC0.EC0.USNV)
Store (Zero, ^^LPC0.EC0.USCV)
Store (Zero, ^^SMBS.USRE)
}
Else
{
Store (Zero, ^^LPC0.EC0.USNV)
Store (Zero, ^^SMBS.USRE)
}
}
}
}
Device (EHC2)
{
Name (_ADR, 0x00130002)
OperationRegion (PCFG, PCI_Config, 0xA0, 0x04)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
OSOW, 32
}
Method (STOS, 0, NotSerialized)
{
Or (OSOW, 0x01000000, OSOW)
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x18, 0x03))
}
}
Device (EHC3)
{
Name (_ADR, 0x00160002)
OperationRegion (PCFG, PCI_Config, 0xA0, 0x04)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
OSOW, 32
}
Method (STOS, 0, NotSerialized)
{
Or (OSOW, 0x01000000, OSOW)
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x18, 0x03))
}
}
Device (XHC0)
{
Name (_ADR, 0x00100000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x18, 0x03))
}
Method (_PSW, 1, NotSerialized)
{
If (Arg0)
{
If (^^LPC0.EC0.USCE)
{
Store (One, ^^LPC0.EC0.USNV)
Store (One, ^^SMBS.USRE)
}
Else
{
Store (One, ^^LPC0.EC0.USNV)
Store (One, ^^LPC0.EC0.USCV)
Store (One, ^^SMBS.USRE)
}
}
Else
{
If (^^LPC0.EC0.USCE)
{
Store (Zero, ^^LPC0.EC0.USNV)
Store (Zero, ^^LPC0.EC0.USCV)
Store (Zero, ^^SMBS.USRE)
}
Else
{
Store (Zero, ^^LPC0.EC0.USNV)
Store (Zero, ^^SMBS.USRE)
}
}
}
}
Device (XHC1)
{
Name (_ADR, 0x00100001)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x18, 0x03))
}
}
Device (SMBS)
{
Name (_ADR, 0x00140000)
OperationRegion (IRQF, PCI_Config, Zero, 0x0100)
Field (IRQF, AnyAcc, NoLock, Preserve)
{
Offset (0x08),
RVID, 8
}
OperationRegion (PMIO, SystemIO, 0x0CD6, 0x02)
Field (PMIO, ByteAcc, NoLock, Preserve)
{
INPM, 8,
DAPM, 8
}
IndexField (INPM, DAPM, ByteAcc, NoLock, Preserve)
{
Offset (0x24),
MMSO, 32,
Offset (0x60),
P1EB, 16,
Offset (0xF0),
, 3,
RSTU, 1,
, 3,
USRE, 1
}
OperationRegion (ERMM, SystemMemory, MMSO, 0x1000)
Field (ERMM, AnyAcc, NoLock, Preserve)
{
Offset (0x105),
, 5,
E006, 1,
O006, 1,
I006, 1,
, 5,
E007, 1,
O007, 1,
I007, 1,
Offset (0x10A),
, 5,
E011, 1,
O011, 1,
I011, 1,
, 5,
E012, 1,
O012, 1,
I012, 1,
, 5,
E013, 1,
O013, 1,
I013, 1,
, 5,
E014, 1,
O014, 1,
I014, 1,
, 5,
E015, 1,
O015, 1,
I015, 1,
, 5,
E016, 1,
O016, 1,
I016, 1,
Offset (0x113),
, 5,
E020, 1,
O020, 1,
I020, 1,
, 5,
E021, 1,
O021, 1,
I021, 1,
, 5,
E022, 1,
O022, 1,
I022, 1,
, 5,
E023, 1,
O023, 1,
I023, 1,
Offset (0x11A),
, 5,
E027, 1,
O027, 1,
I027, 1,
, 5,
E028, 1,
O028, 1,
I028, 1,
Offset (0x11F),
, 5,
E032, 1,
O032, 1,
I032, 1,
Offset (0x122),
, 5,
E035, 1,
O035, 1,
I035, 1,
Offset (0x128),
, 1,
H041, 1,
S041, 1,
U041, 1,
D041, 1,
E041, 1,
O041, 1,
I041, 1,
Offset (0x12B),
, 5,
E044, 1,
O044, 1,
I044, 1,
, 5,
E045, 1,
O045, 1,
I045, 1,
, 1,
H046, 1,
S046, 1,
U046, 1,
D046, 1,
E046, 1,
O046, 1,
I046, 1,
Offset (0x132),
, 5,
E051, 1,
O051, 1,
I051, 1,
Offset (0x134),
, 5,
E053, 1,
O053, 1,
I053, 1,
Offset (0x136),
, 5,
E055, 1,
O055, 1,
I055, 1,
Offset (0x138),
, 5,
E057, 1,
O057, 1,
I057, 1,
, 5,
E058, 1,
O058, 1,
I058, 1,
, 5,
E059, 1,
O059, 1,
I059, 1,
Offset (0x13C),
, 1,
H061, 1,
S061, 1,
U061, 1,
D061, 1,
E061, 1,
O061, 1,
I061, 1,
, 1,
H062, 1,
S062, 1,
U062, 1,
D062, 1,
E062, 1,
O062, 1,
I062, 1,
, 1,
H063, 1,
S063, 1,
U063, 1,
D063, 1,
E063, 1,
O063, 1,
I063, 1,
, 1,
H064, 1,
S064, 1,
U064, 1,
D064, 1,
E064, 1,
O064, 1,
I064, 1,
Offset (0x141),
, 5,
E066, 1,
O066, 1,
I066, 1,
Offset (0x162),
, 7,
GE03, 1,
, 7,
GE04, 1,
, 7,
GE05, 1,
Offset (0x16A),
, 7,
GE09, 1,
, 7,
GE12, 1,
Offset (0x16D),
, 7,
GE14, 1,
, 7,
GE15, 1,
, 7,
GE16, 1,
Offset (0x175),
, 7,
GE22, 1,
Offset (0x1A5),
, 5,
E166, 1,
O166, 1,
I166, 1,
Offset (0x1A9),
, 5,
E170, 1,
O170, 1,
I170, 1,
Offset (0x1AE),
, 5,
E175, 1,
O175, 1,
I175, 1,
, 5,
E176, 1,
O176, 1,
I176, 1,
, 5,
E177, 1,
O177, 1,
I177, 1,
, 5,
E178, 1,
O178, 1,
I178, 1,
, 5,
E179, 1,
O179, 1,
I179, 1,
, 5,
E180, 1,
O180, 1,
I180, 1,
, 5,
E181, 1,
O181, 1,
I181, 1,
, 5,
E182, 1,
O182, 1,
I182, 1,
Offset (0x1B7),
, 3,
U184, 1,
D184, 1,
E184, 1,
O184, 1,
I184, 1,
Offset (0x1C4),
, 5,
E197, 1,
O197, 1,
I197, 1,
Offset (0x1C7),
, 5,
E200, 1,
O200, 1,
I200, 1,
Offset (0x1FF),
, 1,
G01S, 1,
, 3,
G05S, 1,
, 8,
G14S, 1,
G15S, 1,
G16S, 1,
, 5,
G22S, 1,
G23S, 1,
Offset (0x203),
, 1,
G01E, 1,
, 3,
G05E, 1,
, 8,
G14E, 1,
G15E, 1,
G16E, 1,
, 5,
G22E, 1,
G23E, 1,
Offset (0x207),
, 1,
G01T, 1,
, 3,
G05T, 1,
, 8,
G14T, 1,
G15T, 1,
G16T, 1,
, 5,
G22T, 1,
G23T, 1,
Offset (0x20B),
, 1,
G01L, 1,
, 3,
G05L, 1,
, 9,
G15L, 1,
G16L, 1,
, 5,
G22L, 1,
G23L, 1,
Offset (0x287),
, 1,
CLPS, 1,
Offset (0x298),
, 7,
G15A, 1,
Offset (0x2AF),
, 2,
SLPS, 2,
Offset (0x32B),
SM0E, 1,
Offset (0x32D),
, 1,
SM0S, 2,
Offset (0x361),
, 6,
MT3A, 1,
Offset (0x376),
EPNM, 1,
DPPF, 1,
Offset (0x3BA),
, 6,
PWDE, 1,
Offset (0x3BD),
, 5,
ALLS, 1,
Offset (0x3C7),
, 2,
TFTE, 1,
Offset (0x3DE),
BLNK, 2,
Offset (0x3EF),
PHYD, 1,
Offset (0x3FF),
F0CT, 8,
F0MS, 8,
F0FQ, 8,
F0LD, 8,
F0MD, 8,
F0MP, 8,
LT0L, 8,
LT0H, 8,
MT0L, 8,
MT0H, 8,
HT0L, 8,
HT0H, 8,
LRG0, 8,
LHC0, 8,
Offset (0x40F),
F1CT, 8,
F1MS, 8,
F1FQ, 8,
F1LD, 8,
F1MD, 8,
F1MP, 8,
LT1L, 8,
LT1H, 8,
MT1L, 8,
MT1H, 8,
HT1L, 8,
HT1H, 8,
LRG1, 8,
LHC1, 8,
Offset (0x41F),
F2CT, 8,
F2MS, 8,
F2FQ, 8,
F2LD, 8,
F2MD, 8,
F2MP, 8,
LT2L, 8,
LT2H, 8,
MT2L, 8,
MT2H, 8,
HT2L, 8,
HT2H, 8,
LRG2, 8,
LHC2, 8,
Offset (0x42F),
F3CT, 8,
F3MS, 8,
F3FQ, 8,
F3LD, 8,
F3MD, 8,
F3MP, 8,
LT3L, 8,
LT3H, 8,
MT3L, 8,
MT3H, 8,
HT3L, 8,
HT3H, 8,
LRG3, 8,
LHC3, 8,
Offset (0x6FF),
SEC, 8,
Offset (0x701),
MIN, 8,
Offset (0xD06),
MX07, 8,
Offset (0xD0E),
MX15, 8,
MX16, 8,
Offset (0xD14),
MX21, 8,
MX22, 8,
MX23, 8,
Offset (0xD1A),
MX27, 8,
MX28, 8,
Offset (0xD1F),
MX32, 8,
Offset (0xD2B),
MX44, 8,
Offset (0xD34),
MX53, 8,
Offset (0xD38),
MX57, 8,
MX58, 8,
MX59, 8,
Offset (0xD41),
MX66, 8,
Offset (0xD65),
M102, 8,
Offset (0xD6D),
M110, 8,
Offset (0xDA9),
M170, 8,
Offset (0xDAE),
M175, 8,
M176, 8,
M177, 8,
Offset (0xDB3),
M180, 8,
Offset (0xDB5),
M182, 8,
Offset (0xDC4),
M197, 8,
Offset (0xDC7),
M200, 8,
Offset (0xDFF),
MS00, 8,
MS01, 8,
MS02, 8,
MS03, 8,
MS04, 8,
Offset (0xE3F),
MS40, 8,
Offset (0xE80),
, 2,
ECES, 1
}
Mutex (SBX0, 0x00)
OperationRegion (SMB0, SystemIO, 0x0B00, 0x10)
Field (SMB0, ByteAcc, NoLock, Preserve)
{
HST0, 8,
SLV0, 8,
CNT0, 8,
CMD0, 8,
ADD0, 8,
DT00, 8,
DT10, 8,
BLK0, 8
}
Method (WBD0, 1, NotSerialized)
{
Store (Arg0, Local0)
Store (Zero, Local2)
Store (HST0, Local3)
Store (And (Local3, 0x80), Local1)
While (LNotEqual (Local1, 0x80))
{
If (LLess (Local0, 0x0A))
{
Store (0x18, Local2)
Store (Zero, Local1)
}
Else
{
Sleep (0x0A)
Subtract (Local0, 0x0A, Local0)
Store (HST0, Local3)
Store (And (Local3, 0x80), Local1)
}
}
If (LNotEqual (Local2, 0x18))
{
Store (And (HST0, 0x1C), Local1)
If (Local1)
{
Store (0x07, Local2)
}
}
Return (Local2)
}
Method (WTC0, 1, NotSerialized)
{
Store (Arg0, Local0)
Store (0x07, Local2)
Store (One, Local1)
While (LEqual (Local1, One))
{
Store (And (HST0, 0x1D), Local3)
If (LNotEqual (Local3, Zero))
{
If (LEqual (Local3, One))
{
If (LLess (Local0, 0x0A))
{
Store (0x18, Local2)
Store (Zero, Local1)
}
Else
{
Sleep (0x0A)
Subtract (Local0, 0x0A, Local0)
}
}
Else
{
Store (0x07, Local2)
Store (Zero, Local1)
}
}
Else
{
Store (Zero, Local2)
Store (Zero, Local1)
}
}
Store (Or (HST0, 0x1F), HST0)
Return (Local2)
}
Method (SBR0, 3, NotSerialized)
{
Store (Package (0x03)
{
0x07,
Zero,
Zero
}, Local0)
Store (And (Arg0, 0x5F), Local4)
If (LNotEqual (Local4, 0x03))
{
If (LNotEqual (Local4, 0x05))
{
If (LNotEqual (Local4, 0x07))
{
If (LNotEqual (Local4, 0x09))
{
If (LNotEqual (Local4, 0x0B))
{
Store (0x19, Index (Local0, Zero))
Return (Local0)
}
}
}
}
}
If (LEqual (Acquire (SBX0, 0xFFFF), Zero))
{
Store (Or (ShiftLeft (Arg1, One), One), ADD0)
Store (Arg2, CMD0)
Store (Or (HST0, 0x1F), HST0)
Store (And (Arg0, 0xA0), Local1)
Store (Or (And (CNT0, 0x5F), Local1), CNT0)
If (LEqual (Local4, 0x03))
{
Store (Or (And (CNT0, 0xA0), 0x40), CNT0)
}
If (LEqual (Local4, 0x05))
{
Store (Or (And (CNT0, 0xA0), 0x44), CNT0)
}
If (LEqual (Local4, 0x07))
{
Store (Or (And (CNT0, 0xA0), 0x48), CNT0)
}
If (LEqual (Local4, 0x09))
{
Store (Or (And (CNT0, 0xA0), 0x4C), CNT0)
}
If (LEqual (Local4, 0x0B))
{
Store (Or (HST0, 0x80), HST0)
Store (Zero, DT00)
Store (Or (And (CNT0, 0xA0), 0x54), CNT0)
}
Store (WTC0 (0x03E8), Local1)
Store (Local1, Index (Local0, Zero))
If (LEqual (Local1, Zero))
{
If (LEqual (Local4, 0x05))
{
Store (One, Index (Local0, One))
Store (DT00, Index (Local0, 0x02))
}
If (LEqual (Local4, 0x07))
{
Store (One, Index (Local0, One))
Store (DT00, Index (Local0, 0x02))
}
If (LEqual (Local4, 0x09))
{
Store (0x02, Index (Local0, One))
Store (DT10, Local2)
ShiftLeft (Local2, 0x08, Local2)
Add (Local2, DT00, Local2)
Store (Local2, Index (Local0, 0x02))
}
If (LEqual (Local4, 0x0B))
{
Store (WBD0 (0x01F4), Local1)
If (LNotEqual (Local1, Zero))
{
Store (Local1, Index (Local0, Zero))
}
Else
{
Store (DT00, Index (Local0, One))
Store (DT00, Local1)
Store (CNT0, Local2)
Store (Zero, Local2)
While (LLess (Local2, Local1))
{
Add (0x02, Local2, Local3)
Store (BLK0, Index (Local0, Local3))
Add (One, Local2, Local2)
}
Store (Or (HST0, 0x80), HST0)
}
}
}
Store (And (CNT0, 0x5F), CNT0)
Release (SBX0)
}
Return (Local0)
}
Method (SBW0, 5, NotSerialized)
{
Store (Package (0x01)
{
0x07
}, Local0)
Store (And (Arg0, 0x5F), Local4)
If (LNotEqual (Local4, 0x02))
{
If (LNotEqual (Local4, 0x04))
{
If (LNotEqual (Local4, 0x06))
{
If (LNotEqual (Local4, 0x08))
{
If (LNotEqual (Local4, 0x0A))
{
Store (0x19, Index (Local0, Zero))
Return (Local0)
}
}
}
}
}
If (LEqual (Acquire (SBX0, 0xFFFF), Zero))
{
Store (ShiftLeft (Arg1, One), ADD0)
Store (Arg2, CMD0)
Store (Or (HST0, 0x1F), HST0)
Store (And (Arg0, 0xA0), Local1)
Store (Or (And (CNT0, 0x5F), Local1), CNT0)
If (LEqual (Local4, 0x02))
{
Store (Or (And (CNT0, 0xA0), 0x40), CNT0)
}
If (LEqual (Local4, 0x04))
{
Store (Or (And (CNT0, 0xA0), 0x44), CNT0)
}
If (LEqual (Local4, 0x06))
{
Store (Arg4, DT00)
Store (Or (And (CNT0, 0xA0), 0x48), CNT0)
}
If (LEqual (Local4, 0x08))
{
And (Arg4, 0xFF, DT00)
ShiftRight (Arg4, 0x08, DT10)
Store (Or (And (CNT0, 0xA0), 0x4C), CNT0)
}
If (LEqual (Local4, 0x0A))
{
Store (Or (HST0, 0x80), HST0)
Store (CNT0, Local1)
Store (Arg3, DT00)
Store (Zero, Local2)
While (LLess (Local2, Arg3))
{
Store (Index (Arg4, Local2), BLK0)
Add (One, Local2, Local2)
}
Store (Or (And (CNT0, 0xA0), 0x54), CNT0)
}
Store (WTC0 (0x03E8), Index (Local0, Zero))
Store (And (CNT0, 0x5F), CNT0)
Release (SBX0)
}
Return (Local0)
}
}
Device (LPC0)
{
Name (_ADR, 0x00140003)
Mutex (PSMX, 0x00)
Device (DMAC)
{
Name (_HID, EisaId ("PNP0200"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x0081, // Range Minimum
0x0081, // Range Maximum
0x01, // Alignment
0x0F, // Length
)
IO (Decode16,
0x00C0, // Range Minimum
0x00C0, // Range Maximum
0x01, // Alignment
0x20, // Length
)
DMA (Compatibility, NotBusMaster, Transfer8_16, )
{4}
})
}
Device (COPR)
{
Name (_HID, EisaId ("PNP0C04"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x00F0, // Range Minimum
0x00F0, // Range Maximum
0x01, // Alignment
0x0F, // Length
)
IRQNoFlags ()
{13}
})
}
Device (PIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IRQNoFlags ()
{2}
})
}
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (BUF0, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x02, // Length
)
})
Name (BUF1, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IRQNoFlags ()
{8}
})
Method (_CRS, 0, Serialized)
{
If (LEqual (And (HPAD, 0x03), 0x03))
{
Return (BUF0)
}
Return (BUF1)
}
}
Device (SPKR)
{
Name (_HID, EisaId ("PNP0800"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0061, // Range Minimum
0x0061, // Range Maximum
0x01, // Alignment
0x01, // Length
)
})
}
Device (TMR)
{
Name (_HID, EisaId ("PNP0100"))
Name (BUF0, ResourceTemplate ()
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x01, // Alignment
0x04, // Length
)
})
Name (BUF1, ResourceTemplate ()
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQNoFlags ()
{0}
})
Method (_CRS, 0, Serialized)
{
If (LEqual (And (HPAD, 0x03), 0x03))
{
Return (BUF0)
}
Return (BUF1)
}
}
Device (KBC0)
{
Name (_HID, EisaId ("PNP0303"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IRQNoFlags ()
{1}
})
Method (_STA, 0, NotSerialized)
{
If (LNotEqual (MYOS, 0x07DC))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
}
Device (KBCE)
{
Name (_HID, EisaId ("TOS1102"))
Name (_CID, EisaId ("PNP0303"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IRQNoFlags ()
{1}
})
Method (_STA, 0, NotSerialized)
{
If (LEqual (MYOS, 0x07DC))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
}
Device (MSE0)
{
Name (_HID, EisaId ("TOS0200"))
Name (_CID, Package (0x03)
{
EisaId ("SYN1000"),
EisaId ("SYN0002"),
EisaId ("PNP0F13")
})
Name (_CRS, ResourceTemplate ()
{
IRQ (Edge, ActiveHigh, Exclusive, )
{12}
})
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
}
Device (SYSR)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0010, // Range Minimum
0x0010, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x002E, // Range Minimum
0x002E, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0072, // Range Minimum
0x0072, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0080, // Range Minimum
0x0080, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x00B0, // Range Minimum
0x00B0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0092, // Range Minimum
0x0092, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0400, // Range Minimum
0x0400, // Range Maximum
0x01, // Alignment
0xD0, // Length
)
IO (Decode16,
0x04D0, // Range Minimum
0x04D0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x04D6, // Range Minimum
0x04D6, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0550, // Range Minimum
0x0550, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0680, // Range Minimum
0x0680, // Range Maximum
0x01, // Alignment
0x80, // Length
)
IO (Decode16,
0x077A, // Range Minimum
0x077A, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0C00, // Range Minimum
0x0C00, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0C14, // Range Minimum
0x0C14, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0C50, // Range Minimum
0x0C50, // Range Maximum
0x01, // Alignment
0x03, // Length
)
IO (Decode16,
0x0C6C, // Range Minimum
0x0C6C, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0C6F, // Range Minimum
0x0C6F, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0CD0, // Range Minimum
0x0CD0, // Range Maximum
0x01, // Alignment
0x0C, // Length
)
IO (Decode16,
0x0840, // Range Minimum
0x0840, // Range Maximum
0x01, // Alignment
0x08, // Length
)
})
}
Device (MEM)
{
Name (_HID, EisaId ("PNP0C01"))
Name (MSRC, ResourceTemplate ()
{
Memory32Fixed (ReadOnly,
0x000E0000, // Address Base
0x00020000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFFF00000, // Address Base
0x00100000, // Address Length
_Y04)
})
Method (_CRS, 0, NotSerialized)
{
CreateDWordField (MSRC, \_SB.PCI0.LPC0.MEM._Y04._LEN, PSIZ)
CreateDWordField (MSRC, \_SB.PCI0.LPC0.MEM._Y04._BAS, PBAS)
Store (ROMS, PSIZ)
Subtract (ROMS, One, Local0)
Subtract (Ones, Local0, PBAS)
Return (MSRC)
}
}
Device (EC0)
{
Name (_HID, EisaId ("PNP0C09"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0062, // Range Minimum
0x0062, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0066, // Range Minimum
0x0066, // Range Maximum
0x01, // Alignment
0x01, // Length
)
})
Name (_GPE, 0x03)
Name (SEL0, 0xF0)
Name (BFLG, Zero)
Name (NXT0, Zero)
Name (NXT1, Zero)
Name (NXT2, Zero)
Method (_REG, 2, NotSerialized)
{
If (LEqual (Arg0, 0x03))
{
Store (Arg1, Local0)
If (Local0)
{
Store (One, ECOK)
}
Else
{
Store (Zero, ECOK)
}
}
If (ECOK)
{
Store (One, ACIC)
If (LGreaterEqual (TPOS, 0x40))
{
If (LEqual (TPOS, 0x80))
{
Store (Zero, OSTP)
}
Else
{
Store (One, OSTP)
}
}
Else
{
Store (Zero, OSTP)
}
Store (0x03, RG59)
Store (BTEN, BLTH)
Store (WLAN, WLAN)
Store (One, CPLE)
}
If (LEqual (CPUD, Zero))
{
Store (Zero, \_PR.C000._PPC)
Notify (\_PR.C000, 0x80)
Sleep (0x0A)
Store (Zero, \_PR.C001._PPC)
Notify (\_PR.C001, 0x80)
Sleep (0x0A)
Store (Zero, \_PR.C002._PPC)
Notify (\_PR.C002, 0x80)
Sleep (0x0A)
Store (Zero, \_PR.C003._PPC)
Notify (\_PR.C003, 0x80)
Sleep (0x0A)
}
Else
{
Store (0x06, \_PR.C000._PPC)
Notify (\_PR.C000, 0x80)
Sleep (0x0A)
Store (0x06, \_PR.C001._PPC)
Notify (\_PR.C001, 0x80)
Sleep (0x0A)
Store (0x06, \_PR.C002._PPC)
Notify (\_PR.C002, 0x80)
Sleep (0x0A)
Store (0x06, \_PR.C003._PPC)
Notify (\_PR.C003, 0x80)
Sleep (0x0A)
}
}
OperationRegion (EMEM, SystemMemory, 0xFF808001, 0x013F)
Field (EMEM, ByteAcc, NoLock, Preserve)
{
Offset (0x04),
CMCM, 8,
CMD1, 8,
CMD2, 8,
CMD3, 8,
Offset (0x18),
SMPR, 8,
SMST, 8,
MBMN, 80,
MBPN, 96,
GPB1, 8,
GPB2, 8,
GPB3, 8,
GPB4, 8,
GPB5, 8,
GPB6, 8,
GPB7, 8,
GPB8, 8,
MAXS, 8,
Offset (0x3D),
SMAA, 8,
Offset (0x40),
ACDF, 1,
, 1,
PFLG, 1,
Offset (0x41),
, 4,
FPR1, 1,
FLS4, 1,
S5LW, 1,
Offset (0x42),
Offset (0x43),
TMSS, 2,
, 2,
BANK, 3,
WLID, 1,
, 2,
HPCF, 1,
USCE, 1,
FLS3, 1,
, 1,
PWBT, 1,
WLS5, 1,
CBTA, 1,
Offset (0x46),
RL01, 1,
RD01, 1,
RF01, 1,
RP01, 1,
RB01, 1,
RC01, 1,
, 1,
R701, 1,
R801, 1,
RM01, 1,
RI01, 1,
, 1,
, 1,
, 1,
RA01, 1,
RR01, 1,
RL10, 1,
RD10, 1,
RF10, 1,
RP10, 1,
RB10, 1,
RC10, 1,
, 1,
R710, 1,
LLED, 1,
RM10, 1,
RI10, 1,
, 1,
, 1,
, 1,
FBES, 1,
ECOF, 1,
, 1,
BAYE, 1,
PRDE, 1,
WP01, 1,
WB01, 1,
WC01, 1,
, 1,
W701, 1,
W801, 1,
WM01, 1,
WI01, 1,
, 1,
, 1,
, 1,
WA01, 1,
WR01, 1,
, 1,
BAYI, 1,
PRCT, 1,
WP10, 1,
WB10, 1,
DSPL, 1,
LIDS, 1,
W710, 1,
W810, 1,
WM10, 1,
WI10, 1,
, 1,
, 1,
, 1,
WA10, 1,
WR10, 1,
Offset (0x50),
SLPM, 3,
, 2,
POLG, 1,
HSFG, 1,
Offset (0x51),
BLVL, 8,
SLPL, 8,
DOFF, 8,
Offset (0x57),
RG57, 8,
CTMP, 8,
RG59, 8,
FSP2, 16,
FSPD, 16,
Offset (0x60),
WLAN, 1,
BLTH, 1,
CPLE, 1,
KSWH, 1,
, 2,
RFST, 1,
BTHE, 1,
TPAD, 1,
, 1,
WN3G, 1,
USBP, 1,
, 1,
W3GE, 1,
Offset (0x63),
, 7,
VGAF, 1,
Offset (0x65),
, 1,
TMOD, 1,
Offset (0x70),
BTMD, 8,
MBTS, 1,
MBTF, 1,
Offset (0x72),
, 3,
LION, 1,
, 1,
MBTC, 1,
Offset (0x74),
, 3,
BA3C, 1,
ACIC, 1,
Offset (0x75),
BATS, 16,
BA1C, 8,
MCLC, 8,
Offset (0x7A),
MTEM, 16,
MBMD, 16,
MCUR, 16,
MBRM, 16,
MBVG, 16,
Offset (0x87),
BA2C, 8,
LFCC, 16,
BTSN, 16,
BTDC, 16,
BTDV, 16,
BTMN, 8,
Offset (0x93),
BTST, 8,
Offset (0xA0),
HDX1, 16,
HDY1, 16,
HDZ1, 16,
HDX2, 16,
HDY2, 16,
HDZ2, 16,
HDX3, 16,
HDY3, 16,
HDZ3, 16,
HDX4, 16,
HDY4, 16,
HDZ4, 16,
Offset (0xB9),
EXCC, 8,
PPBC, 8,
RFSC, 8,
ACAC, 8,
BTCC, 8,
PAOC, 8,
FPOC, 8,
VOLC, 8,
Offset (0xC3),
EPFE, 8,
EPFF, 8,
PWM1, 8,
PWM2, 8,
ACVO, 8,
ACCU, 16,
ACCA, 8,
REFT, 8,
Offset (0xCE),
PECL, 1,
PECB, 1,
PECC, 1,
Offset (0xD0),
EBPL, 1,
, 1,
USCV, 1,
, 2,
USNV, 1,
IESQ, 1,
Offset (0xD1),
PWRE, 1,
LPWR, 1,
Offset (0xD2),
, 6,
VAUX, 1,
Offset (0xD4),
S3WT, 1,
, 3,
WS3W, 1,
Offset (0xD6),
DBPL, 8,
Offset (0xDE),
PLID, 8,
Offset (0xE0),
CSV1, 16,
CSV2, 16,
CSV3, 16,
CSV4, 16,
CTTO, 8,
CTTB, 8,
DE4L, 8,
DE4H, 8,
DE5L, 8,
DE5H, 8,
Offset (0xEF),
DALB, 8,
OSTP, 1,
CIRF, 1,
, 4,
HEUE, 1,
BEUE, 1,
MBEV, 8,
VEVT, 16,
FEVT, 16,
NEVT, 16,
Offset (0x120),
BLV0, 8,
BLV1, 8,
BLV2, 8,
BLV3, 8,
BLV4, 8,
BLV5, 8,
BLV6, 8,
BLV7, 8
}
Method (APOL, 1, NotSerialized)
{
Store (Arg0, DBPL)
Store (One, EBPL)
}
Name (PSTA, Zero)
Method (CPOL, 1, NotSerialized)
{
If (LEqual (PSTA, Zero))
{
If (LNotEqual (ECOK, Zero))
{
APOL (Arg0)
Store (One, PSTA)
}
}
}
Method (_Q20, 0, NotSerialized)
{
Store (0x20, P80H)
If (ECOK)
{
If (And (SMST, 0x40))
{
Store (SMAA, Local0)
If (LEqual (Local0, 0x14))
{
And (SMST, 0xBF, SMST)
Store (PWRE, Local1)
If (Local1)
{
Store (Zero, PWRE)
Store (0x12, BFLG)
CPOL (One)
}
}
If (LEqual (Local0, 0x16))
{
And (SMST, 0xBF, SMST)
Store (0x04, ^^^^BAT1.BCRI)
Notify (BAT1, 0x80)
}
Else
{
Store (Zero, ^^^^BAT1.BCRI)
}
}
If (ACDF)
{
If (LEqual (CPUD, Zero))
{
If (INP4)
{
Store (Zero, \_PR.C000._PPC)
Notify (\_PR.C000, 0x80)
Sleep (0x0A)
Store (Zero, \_PR.C001._PPC)
Notify (\_PR.C001, 0x80)
Sleep (0x0A)
Store (Zero, \_PR.C002._PPC)
Notify (\_PR.C002, 0x80)
Sleep (0x0A)
Store (Zero, \_PR.C003._PPC)
Notify (\_PR.C003, 0x80)
Sleep (0x0A)
Store (Zero, INP4)
Store (\_PR.C000._PPC, Local0)
Store (Local0, P80H)
Sleep (0x64)
}
}
Else
{
Store (0x06, \_PR.C000._PPC)
Notify (\_PR.C000, 0x80)
Sleep (0x0A)
Store (0x06, \_PR.C001._PPC)
Notify (\_PR.C001, 0x80)
Sleep (0x0A)
Store (0x06, \_PR.C002._PPC)
Notify (\_PR.C002, 0x80)
Sleep (0x0A)
Store (0x06, \_PR.C003._PPC)
Notify (\_PR.C003, 0x80)
Sleep (0x0A)
Store (\_PR.C000._PPC, Local0)
Store (Local0, P80H)
Sleep (0x0A)
}
}
Else
{
If (LEqual (CPUD, One))
{
Store (0x06, \_PR.C000._PPC)
Notify (\_PR.C000, 0x80)
Sleep (0x0A)
Store (0x06, \_PR.C001._PPC)
Notify (\_PR.C001, 0x80)
Sleep (0x0A)
Store (0x06, \_PR.C002._PPC)
Notify (\_PR.C002, 0x80)
Sleep (0x0A)
Store (0x06, \_PR.C003._PPC)
Notify (\_PR.C003, 0x80)
Sleep (0x0A)
}
Store (\_PR.C000._PPC, Local0)
Store (Local0, P80H)
Sleep (0x64)
}
}
}
Name (CPUC, One)
Name (CONT, Zero)
Method (_Q09, 0, NotSerialized)
{
Store (0x09, P80H)
If (ECOK)
{
Store (Zero, PSTA)
^^^^BAT1.BSTA ()
FSMI (0x92, Zero)
Notify (ACAD, 0x80)
Notify (BAT1, 0x80)
If (^^^^BAT1.BTCH)
{
^^^^BAT1.UBIF ()
Notify (BAT1, 0x81)
Store (Zero, ^^^^BAT1.BTCH)
}
}
Store (0xB0, P80H)
If (ACDF) {}
Else
{
}
}
Name (GSFB, Zero)
Name (GSST, Zero)
Name (G71F, Zero)
Method (_Q76, 0, NotSerialized)
{
If (LGreaterEqual (^^^^TVAP.VZOK, One))
{
Store (0x76, P80H)
^^^^TVAP.EVNT (0xC0)
}
}
Method (_Q77, 0, NotSerialized)
{
If (LGreaterEqual (^^^^TVAP.VZOK, One))
{
Store (0x77, P80H)
^^^^TVAP.EVNT (0xC1)
}
}
Method (_Q78, 0, NotSerialized)
{
If (LGreaterEqual (^^^^TVAP.VZOK, One))
{
Store (0x78, P80H)
^^^^TVAP.EVNT (0xC2)
}
}
Method (_Q79, 0, NotSerialized)
{
If (LGreaterEqual (^^^^TVAP.VZOK, One))
{
Store (0x79, P80H)
^^^^TVAP.EVNT (0xC3)
}
}
Method (_Q9B, 0, NotSerialized)
{
Store (0x11, P80H)
Store (One, LDSS)
Notify (LID, 0x80)
}
Method (_Q9C, 0, NotSerialized)
{
Store (0x22, P80H)
Store (Zero, LDSS)
Notify (LID, 0x80)
}
Method (SVBN, 0, NotSerialized)
{
Store (BLVL, Local0)
If (LEqual (Local0, Zero))
{
Store (BLV0, OWNS)
}
Else
{
If (LEqual (Local0, One))
{
Store (BLV1, OWNS)
}
Else
{
If (LEqual (Local0, 0x02))
{
Store (BLV2, OWNS)
}
Else
{
If (LEqual (Local0, 0x03))
{
Store (BLV3, OWNS)
}
Else
{
If (LEqual (Local0, 0x04))
{
Store (BLV4, OWNS)
}
Else
{
If (LEqual (Local0, 0x05))
{
Store (BLV5, OWNS)
}
Else
{
If (LEqual (Local0, 0x06))
{
Store (BLV6, OWNS)
}
Else
{
Store (BLV7, OWNS)
}
}
}
}
}
}
}
FSMI (0x22, One)
}
Method (_Q0E, 0, NotSerialized)
{
Store (0x0E, P80H)
FSMI (0x99, One)
If (LEqual (OPR1, One))
{
Store (One, NXT0)
Store (Zero, NXT1)
Store (Zero, NXT2)
}
Else
{
If (LEqual (OPR1, 0x02))
{
Store (Zero, NXT0)
Store (One, NXT1)
Store (Zero, NXT2)
}
Else
{
If (LEqual (OPR1, 0x03))
{
Store (One, NXT0)
Store (One, NXT1)
Store (Zero, NXT2)
}
Else
{
If (LEqual (OPR1, 0x04))
{
Store (Zero, NXT0)
Store (Zero, NXT1)
Store (One, NXT2)
}
Else
{
If (LEqual (OPR1, 0x05))
{
Store (One, NXT0)
Store (Zero, NXT1)
Store (One, NXT2)
}
Else
{
Store (One, NXT0)
Store (Zero, NXT1)
Store (Zero, NXT2)
}
}
}
}
}
Notify (VGA, 0x80)
}
Method (_Q0F, 0, NotSerialized)
{
Store (0x0F, P80H)
Store (BLVL, Local0)
Store (OSTP, Local1)
If (Local1)
{
If (Local0)
{
Decrement (Local0)
}
Else
{
Store (Zero, Local0)
}
Store (Local0, BLVL)
}
SVBN ()
Notify (^^^VGA.LCD, 0x87)
Notify (^^^PB3.VGA.LCD, 0x87)
}
Method (_Q10, 0, NotSerialized)
{
Store (0x10, P80H)
Store (BLVL, Local0)
Store (OSTP, Local1)
If (Local1)
{
If (LLess (Local0, 0x07))
{
Increment (Local0)
}
Else
{
Store (0x07, Local0)
}
Store (Local0, BLVL)
}
SVBN ()
Notify (^^^VGA.LCD, 0x86)
Notify (^^^PB3.VGA.LCD, 0x86)
}
Name (INP4, Zero)
Method (_Q8D, 0, NotSerialized)
{
FSMI (0x90, Zero)
Store (One, INP4)
Store (0x8D, P80H)
Sleep (0x64)
Store (One, \_PR.C000._PPC)
Notify (\_PR.C000, 0x80)
Sleep (0x64)
Store (One, \_PR.C001._PPC)
Notify (\_PR.C001, 0x80)
Sleep (0x64)
Store (One, \_PR.C002._PPC)
Notify (\_PR.C002, 0x80)
Sleep (0x64)
Store (One, \_PR.C003._PPC)
Notify (\_PR.C003, 0x80)
Sleep (0x96)
Store (\_PR.C000._PPC, Local0)
Store (Local0, P80H)
}
Method (_Q8E, 0, NotSerialized)
{
Store (0x8E, P80H)
If (LEqual (CPUD, Zero))
{
Store (Zero, \_PR.C000._PPC)
Notify (\_PR.C000, 0x80)
Sleep (0x64)
Store (Zero, \_PR.C001._PPC)
Notify (\_PR.C001, 0x80)
Sleep (0x64)
Store (Zero, \_PR.C002._PPC)
Notify (\_PR.C002, 0x80)
Sleep (0x64)
Store (Zero, \_PR.C003._PPC)
Notify (\_PR.C003, 0x80)
Sleep (0x96)
}
Store (\_PR.C000._PPC, Local0)
FSMI (0x91, Zero)
Store (Local0, P80H)
}
Method (_QA0, 0, NotSerialized)
{
Store (0xA0, P80H)
FSMI (0x5A, Zero)
}
Method (_QA1, 0, NotSerialized)
{
Store (0xA1, P80H)
FSMI (0x5B, Zero)
}
Method (_Q01, 0, NotSerialized)
{
Store (One, P80H)
Notify (BT, 0x90)
}
Method (_Q02, 0, NotSerialized)
{
Store (0x02, P80H)
Store (One, ^^^^TVAP.VRFS)
Notify (BT, 0x90)
}
Method (_Q03, 0, NotSerialized)
{
Store (0x03, P80H)
And (DALB, 0x0F, Local0)
If (Local0)
{
Notify (DAL1, 0x80)
}
}
Method (_Q90, 0, NotSerialized)
{
Store (0x90, P80H)
^^^^TVAP.EVNT (0x02)
}
Method (_Q91, 0, NotSerialized)
{
Store (0x91, P80H)
^^^^TVAP.EVNT (0x03)
Sleep (0x05)
^^^^TVAP.EVNT (0x04)
}
Method (_Q92, 0, NotSerialized)
{
Store (0x92, P80H)
^^^^TVAP.EVNT (0x02)
Sleep (0x05)
^^^^TVAP.EVNT (0x03)
Sleep (0x05)
^^^^TVAP.EVNT (0x04)
}
Method (_QB0, 0, NotSerialized)
{
Store (0xB0, P80H)
Store (PECL, Local0)
If (Local0)
{
^^^^TVAP.EVNT (0xB2)
}
}
Method (_QB1, 0, NotSerialized)
{
Store (0xB1, P80H)
Store (PECL, Local0)
If (Local0)
{
Store (One, P80H)
^^^^TVAP.EVNT (0xB3)
}
}
Method (_QB6, 0, NotSerialized)
{
Store (0xB6, P80H)
If (LGreaterEqual (^^^^TVAP.VZOK, One))
{
Store (PECC, Local0)
If (Local0)
{
^^^^TVAP.EVNT (0xB6)
}
}
}
Method (_QB7, 0, NotSerialized)
{
Store (0xB7, P80H)
If (LGreaterEqual (^^^^TVAP.VZOK, One))
{
Store (PECC, Local0)
If (Local0)
{
^^^^TVAP.EVNT (0xB7)
}
}
}
Method (_QB4, 0, NotSerialized)
{
Store (0xB4, P80H)
If (LGreaterEqual (^^^^TVAP.VZOK, One))
{
While (One)
{
If (LEqual (^^^^TVAP.VZOK, One))
{
Break
}
Sleep (0x64)
}
^^^^TVAP.EVNT (0xB4)
}
}
Method (_QB5, 0, NotSerialized)
{
Store (0xB5, P80H)
If (LGreaterEqual (^^^^TVAP.VZOK, One))
{
While (One)
{
If (LEqual (^^^^TVAP.VZOK, One))
{
Break
}
Sleep (0x64)
}
^^^^TVAP.EVNT (0xB5)
}
}
Method (_Q9A, 0, NotSerialized)
{
Store (DE4L, Local0)
If (LEqual (Local0, One))
{
Store (0x03, Local1)
}
Else
{
If (LEqual (Local0, 0x02))
{
Store (0x02, Local1)
}
Else
{
If (LEqual (Local0, 0x03))
{
Store (One, Local1)
}
Else
{
If (LEqual (Local0, 0x04))
{
Store (Zero, Local1)
}
Else
{
Store (Zero, Local1)
}
}
}
}
Store (Local1, \_PR.C000._PPC)
Notify (\_PR.C000, 0x80)
Sleep (0x64)
Store (Local1, \_PR.C001._PPC)
Notify (\_PR.C001, 0x80)
Sleep (0x64)
Store (Local1, \_PR.C002._PPC)
Notify (\_PR.C000, 0x80)
Sleep (0x64)
Store (Local1, \_PR.C003._PPC)
Notify (\_PR.C001, 0x80)
Sleep (0x64)
}
Device (DAL1)
{
Name (_HID, EisaId ("PNP0C32"))
Name (_UID, One)
Method (_STA, 0, NotSerialized)
{
If (LOr (LEqual (TPOS, 0x40), LGreaterEqual (TPOS, 0x50)))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Method (GHID, 0, NotSerialized)
{
And (DALB, 0x08, Local0)
If (Local0)
{
Notify (DAL1, 0x02)
}
Return (Buffer (One)
{
0x01
})
}
}
}
OperationRegion (LCLM, SystemIO, 0x0C50, 0x03)
Field (LCLM, ByteAcc, NoLock, Preserve)
{
CLMI, 8,
CLMD, 8,
CLGP, 8
}
IndexField (CLMI, CLMD, ByteAcc, NoLock, Preserve)
{
IDRG, 8,
Offset (0x02),
TSTS, 8,
TINT, 8,
Offset (0x12),
I2CC, 8,
GPIO, 8
}
Method (RGPM, 0, NotSerialized)
{
Store (GPIO, Local0)
And (Local0, 0xFFFFFF3F, Local0)
Store (Local0, GPIO)
Store (CLGP, Local1)
Return (Local1)
}
}
Device (P2P)
{
Name (_ADR, 0x00140004)
Method (_PRW, 0, NotSerialized)
{
If (LEqual (WKPM, One))
{
Return (GPRW (0x04, 0x05))
}
Else
{
Return (GPRW (0x04, Zero))
}
}
OperationRegion (PCPC, PCI_Config, Zero, 0xFF)
Field (PCPC, ByteAcc, NoLock, Preserve)
{
Offset (0x04),
PCMD, 8,
Offset (0x1C),
IOW1, 8,
IOW2, 8,
Offset (0x48),
PR48, 8,
PR49, 8,
PR4A, 8,
PR4B, 8
}
Method (_PRT, 0, NotSerialized)
{
If (LEqual (GPIC, Zero))
{
Return (PIC)
}
Else
{
Return (APIC)
}
}
Name (PIC, Package (0x0E)
{
Package (0x04)
{
0x0004FFFF,
Zero,
LNKE,
Zero
},
Package (0x04)
{
0x0004FFFF,
One,
LNKF,
Zero
},
Package (0x04)
{
0x0005FFFF,
Zero,
LNKE,
Zero
},
Package (0x04)
{
0x0005FFFF,
One,
LNKF,
Zero
},
Package (0x04)
{
0x0005FFFF,
0x02,
LNKG,
Zero
},
Package (0x04)
{
0x0005FFFF,
0x03,
LNKH,
Zero
},
Package (0x04)
{
0x0006FFFF,
Zero,
LNKF,
Zero
},
Package (0x04)
{
0x0006FFFF,
One,
LNKG,
Zero
},
Package (0x04)
{
0x0006FFFF,
0x02,
LNKH,
Zero
},
Package (0x04)
{
0x0006FFFF,
0x03,
LNKE,
Zero
},
Package (0x04)
{
0x0007FFFF,
Zero,
LNKG,
Zero
},
Package (0x04)
{
0x0007FFFF,
One,
LNKH,
Zero
},
Package (0x04)
{
0x0007FFFF,
0x02,
LNKE,
Zero
},
Package (0x04)
{
0x0007FFFF,
0x03,
LNKF,
Zero
}
})
Name (APIC, Package (0x0E)
{
Package (0x04)
{
0x0004FFFF,
Zero,
Zero,
0x14
},
Package (0x04)
{
0x0004FFFF,
One,
Zero,
0x15
},
Package (0x04)
{
0x0005FFFF,
Zero,
Zero,
0x14
},
Package (0x04)
{
0x0005FFFF,
One,
Zero,
0x15
},
Package (0x04)
{
0x0005FFFF,
0x02,
Zero,
0x16
},
Package (0x04)
{
0x0005FFFF,
0x03,
Zero,
0x17
},
Package (0x04)
{
0x0006FFFF,
Zero,
Zero,
0x15
},
Package (0x04)
{
0x0006FFFF,
One,
Zero,
0x16
},
Package (0x04)
{
0x0006FFFF,
0x02,
Zero,
0x17
},
Package (0x04)
{
0x0006FFFF,
0x03,
Zero,
0x14
},
Package (0x04)
{
0x0007FFFF,
Zero,
Zero,
0x16
},
Package (0x04)
{
0x0007FFFF,
One,
Zero,
0x17
},
Package (0x04)
{
0x0007FFFF,
0x02,
Zero,
0x14
},
Package (0x04)
{
0x0007FFFF,
0x03,
Zero,
0x15
}
})
}
Device (SATA)
{
Name (_ADR, 0x00110000)
Name (B5EN, Zero)
Name (BA_5, Zero)
Name (SBAR, 0xF034F000)
OperationRegion (SATX, PCI_Config, Zero, 0x28)
Field (SATX, AnyAcc, NoLock, Preserve)
{
VIDI, 32,
Offset (0x0A),
STCL, 16,
Offset (0x24),
BA05, 32
}
Method (GBAA, 0, Serialized)
{
Store (BA05, BA_5)
If (LOr (LEqual (BA_5, Ones), LNotEqual (STCL, 0x0101)))
{
Store (Zero, B5EN)
Return (SBAR)
}
Else
{
Store (One, B5EN)
Return (BA_5)
}
}
OperationRegion (BAR5, SystemMemory, GBAA (), 0x1000)
Field (BAR5, AnyAcc, NoLock, Preserve)
{
Offset (0x120),
, 7,
BSY0, 1,
Offset (0x128),
DET0, 4,
Offset (0x129),
IPM0, 4,
Offset (0x1A0),
, 7,
BSY1, 1,
Offset (0x1A8),
DET1, 4,
Offset (0x1A9),
IPM1, 4,
Offset (0x220),
, 7,
BSY2, 1,
Offset (0x228),
DET2, 4,
Offset (0x229),
IPM2, 4,
Offset (0x2A0),
, 7,
BSY3, 1,
Offset (0x2A8),
DET3, 4,
Offset (0x2A9),
IPM3, 4,
Offset (0x320),
, 7,
BSY4, 1,
Offset (0x328),
DET4, 4,
Offset (0x329),
IPM4, 4,
Offset (0x3A0),
, 7,
BSY5, 1,
Offset (0x3A8),
DET5, 4,
Offset (0x3A9),
IPM5, 4
}
Method (_INI, 0, NotSerialized)
{
GBAA ()
}
Device (PRID)
{
Name (_ADR, Zero)
Name (SPTM, Buffer (0x14)
{
/* 0000 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
/* 0008 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
/* 0010 */ 0x1F, 0x00, 0x00, 0x00
})
Method (_GTM, 0, NotSerialized)
{
Return (SPTM)
}
Method (_STM, 3, NotSerialized)
{
Store (Arg0, SPTM)
}
Method (_PS0, 0, NotSerialized)
{
GBAA ()
If (LAnd (LOr (LGreaterEqual (TPOS, 0x40), LEqual (TPOS, 0x04)),
B5EN))
{
If (IPM2)
{
Store (0x32, Local0)
While (LAnd (LEqual (BSY2, One), Local0))
{
Sleep (0xFA)
Decrement (Local0)
}
}
}
}
Method (_PS3, 0, NotSerialized)
{
}
Device (P_D0)
{
Name (_ADR, Zero)
Method (_STA, 0, NotSerialized)
{
GBAA ()
If (LEqual (B5EN, Zero))
{
Return (Zero)
}
If (LEqual (DET0, 0x03))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Name (S12P, Zero)
Method (_PS0, 0, NotSerialized)
{
GBAA ()
If (LAnd (LAnd (LLess (TPOS, 0x40), LNotEqual (TPOS, 0x04)),
B5EN))
{
Store (0x32, Local0)
While (LAnd (LEqual (BSY0, One), Local0))
{
Sleep (0xFA)
Decrement (Local0)
}
}
}
Method (_PS3, 0, NotSerialized)
{
}
Method (_GTF, 0, NotSerialized)
{
Store (Buffer (0x07)
{
0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
}, Local0)
Return (Local0)
}
}
Device (P_D1)
{
Name (_ADR, One)
Method (_STA, 0, NotSerialized)
{
GBAA ()
If (LEqual (B5EN, Zero))
{
Return (Zero)
}
If (LEqual (DET2, 0x03))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Name (S12P, Zero)
Method (_PS0, 0, NotSerialized)
{
GBAA ()
If (LAnd (LAnd (LLess (TPOS, 0x40), LNotEqual (TPOS, 0x04)),
B5EN))
{
Store (0x32, Local0)
While (LAnd (LEqual (BSY2, One), Local0))
{
Sleep (0xFA)
Decrement (Local0)
}
}
}
Method (_PS3, 0, NotSerialized)
{
}
Method (_GTF, 0, NotSerialized)
{
Store (Buffer (0x07)
{
0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
}, Local0)
Return (Local0)
}
}
}
Device (SECD)
{
Name (_ADR, 0x02)
Name (SPTM, Buffer (0x14)
{
/* 0000 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
/* 0008 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
/* 0010 */ 0x1F, 0x00, 0x00, 0x00
})
Method (_GTM, 0, NotSerialized)
{
Return (SPTM)
}
Method (_STM, 3, NotSerialized)
{
Store (Arg0, SPTM)
}
Method (_PS0, 0, NotSerialized)
{
GBAA ()
If (LAnd (LOr (LGreaterEqual (TPOS, 0x40), LEqual (TPOS, 0x04)),
B5EN))
{
If (IPM1)
{
Store (0x32, Local0)
While (LAnd (LEqual (BSY1, One), Local0))
{
Sleep (0xFA)
Decrement (Local0)
}
}
If (IPM3)
{
Store (0x32, Local0)
While (LAnd (LEqual (BSY3, One), Local0))
{
Sleep (0xFA)
Decrement (Local0)
}
}
}
}
Method (_PS3, 0, NotSerialized)
{
}
Device (S_D0)
{
Name (_ADR, Zero)
Method (_STA, 0, NotSerialized)
{
GBAA ()
If (LEqual (B5EN, Zero))
{
Return (Zero)
}
If (LEqual (DET1, 0x03))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Method (_PS0, 0, NotSerialized)
{
GBAA ()
If (LAnd (LAnd (LLess (TPOS, 0x40), LNotEqual (TPOS, 0x04)),
B5EN))
{
Store (0x32, Local0)
While (LAnd (LEqual (BSY1, One), Local0))
{
Sleep (0xFA)
Decrement (Local0)
}
}
}
Method (_PS3, 0, NotSerialized)
{
}
Method (_GTF, 0, NotSerialized)
{
Store (Buffer (0x07)
{
0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
}, Local0)
Return (Local0)
}
}
Device (S_D1)
{
Name (_ADR, One)
Method (_STA, 0, NotSerialized)
{
GBAA ()
If (LEqual (B5EN, Zero))
{
Return (Zero)
}
If (LEqual (DET3, 0x03))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Method (_PS0, 0, NotSerialized)
{
GBAA ()
If (LAnd (LAnd (LLess (TPOS, 0x40), LNotEqual (TPOS, 0x04)),
B5EN))
{
Store (0x32, Local0)
While (LAnd (LEqual (BSY3, One), Local0))
{
Sleep (0xFA)
Decrement (Local0)
}
}
}
Method (_PS3, 0, NotSerialized)
{
}
Method (_GTF, 0, NotSerialized)
{
Store (Buffer (0x07)
{
0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
}, Local0)
Return (Local0)
}
}
}
Device (PRT1)
{
Name (_ADR, One)
Method (_STA, 0, NotSerialized)
{
If (LEqual (ODZC, One))
{
Return (Zero)
}
Else
{
Return (0x0F)
}
}
Device (ODD)
{
Name (_ADR, Zero)
Method (_RMV, 0, NotSerialized)
{
Return (One)
}
}
}
Device (PRT3)
{
Name (_ADR, 0x03)
Device (ESAT)
{
Name (_ADR, Zero)
Method (_RMV, 0, NotSerialized)
{
Return (One)
}
}
}
}
Device (IDE)
{
Name (_ADR, 0x00140001)
Name (UDMT, Package (0x08)
{
0x78,
0x5A,
0x3C,
0x2D,
0x1E,
0x14,
Zero,
Zero
})
Name (PIOT, Package (0x06)
{
0x0258,
0x0186,
0x010E,
0xB4,
0x78,
Zero
})
Name (PITR, Package (0x06)
{
0x99,
0x47,
0x34,
0x22,
0x20,
0x99
})
Name (MDMT, Package (0x04)
{
0x01E0,
0x96,
0x78,
Zero
})
Name (MDTR, Package (0x04)
{
0x77,
0x21,
0x20,
0xFF
})
OperationRegion (IDE, PCI_Config, 0x40, 0x20)
Field (IDE, WordAcc, NoLock, Preserve)
{
PPIT, 16,
SPIT, 16,
PMDT, 16,
SMDT, 16,
PPIC, 8,
SPIC, 8,
PPIM, 8,
SPIM, 8,
Offset (0x14),
PUDC, 2,
SUDC, 2,
Offset (0x16),
PUDM, 8,
SUDM, 8
}
Method (GETT, 1, NotSerialized)
{
Store (And (Arg0, 0x0F), Local0)
Store (ShiftRight (Arg0, 0x04), Local1)
Return (Multiply (0x1E, Add (Add (Local0, One), Add (Local1,
One))))
}
Method (GTM, 1, NotSerialized)
{
CreateByteField (Arg0, Zero, PIT1)
CreateByteField (Arg0, One, PIT0)
CreateByteField (Arg0, 0x02, MDT1)
CreateByteField (Arg0, 0x03, MDT0)
CreateByteField (Arg0, 0x04, PICX)
CreateByteField (Arg0, 0x05, UDCX)
CreateByteField (Arg0, 0x06, UDMX)
Name (BUF, Buffer (0x14)
{
/* 0000 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
/* 0008 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
/* 0010 */ 0x00, 0x00, 0x00, 0x00
})
CreateDWordField (BUF, Zero, PIO0)
CreateDWordField (BUF, 0x04, DMA0)
CreateDWordField (BUF, 0x08, PIO1)
CreateDWordField (BUF, 0x0C, DMA1)
CreateDWordField (BUF, 0x10, FLAG)
If (And (PICX, One))
{
Return (BUF)
}
Store (GETT (PIT0), PIO0)
Store (GETT (PIT1), PIO1)
If (And (UDCX, One))
{
Or (FLAG, One, FLAG)
Store (DerefOf (Index (UDMT, And (UDMX, 0x0F))), DMA0)
}
Else
{
If (LNotEqual (MDT0, 0xFF))
{
Store (GETT (MDT0), DMA0)
}
}
If (And (UDCX, 0x02))
{
Or (FLAG, 0x04, FLAG)
Store (DerefOf (Index (UDMT, ShiftRight (UDMX, 0x04))), DMA1)
}
Else
{
If (LNotEqual (MDT1, 0xFF))
{
Store (GETT (MDT1), DMA1)
}
}
Or (FLAG, 0x1A, FLAG)
Return (BUF)
}
Method (STM, 3, NotSerialized)
{
CreateDWordField (Arg0, Zero, PIO0)
CreateDWordField (Arg0, 0x04, DMA0)
CreateDWordField (Arg0, 0x08, PIO1)
CreateDWordField (Arg0, 0x0C, DMA1)
CreateDWordField (Arg0, 0x10, FLAG)
Name (BUF, Buffer (0x07)
{
0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
})
CreateByteField (BUF, Zero, PIT1)
CreateByteField (BUF, One, PIT0)
CreateByteField (BUF, 0x02, MDT1)
CreateByteField (BUF, 0x03, MDT0)
CreateByteField (BUF, 0x04, PIMX)
CreateByteField (BUF, 0x05, UDCX)
CreateByteField (BUF, 0x06, UDMX)
Store (Match (PIOT, MLE, PIO0, MTR, Zero, Zero), Local0)
Divide (Local0, 0x05, Local0)
Store (Match (PIOT, MLE, PIO1, MTR, Zero, Zero), Local1)
Divide (Local1, 0x05, Local1)
Store (Or (ShiftLeft (Local1, 0x04), Local0), PIMX)
Store (DerefOf (Index (PITR, Local0)), PIT0)
Store (DerefOf (Index (PITR, Local1)), PIT1)
If (And (FLAG, One))
{
Store (Match (UDMT, MLE, DMA0, MTR, Zero, Zero), Local0)
Divide (Local0, 0x06, Local0)
Or (UDMX, Local0, UDMX)
Or (UDCX, One, UDCX)
}
Else
{
If (LNotEqual (DMA0, Ones))
{
Store (Match (MDMT, MLE, DMA0, MTR, Zero, Zero), Local0)
Store (DerefOf (Index (MDTR, Local0)), MDT0)
}
}
If (And (FLAG, 0x04))
{
Store (Match (UDMT, MLE, DMA1, MTR, Zero, Zero), Local0)
Divide (Local0, 0x06, Local0)
Or (UDMX, ShiftLeft (Local0, 0x04), UDMX)
Or (UDCX, 0x02, UDCX)
}
Else
{
If (LNotEqual (DMA1, Ones))
{
Store (Match (MDMT, MLE, DMA1, MTR, Zero, Zero), Local0)
Store (DerefOf (Index (MDTR, Local0)), MDT1)
}
}
Return (BUF)
}
Method (GTF, 2, NotSerialized)
{
CreateByteField (Arg1, Zero, MDT1)
CreateByteField (Arg1, One, MDT0)
CreateByteField (Arg1, 0x02, PIMX)
CreateByteField (Arg1, 0x03, UDCX)
CreateByteField (Arg1, 0x04, UDMX)
If (LEqual (Arg0, 0xA0))
{
Store (And (PIMX, 0x0F), Local0)
Store (MDT0, Local1)
And (UDCX, One, Local2)
Store (And (UDMX, 0x0F), Local3)
}
Else
{
Store (ShiftRight (PIMX, 0x04), Local0)
Store (MDT1, Local1)
And (UDCX, 0x02, Local2)
Store (ShiftRight (UDMX, 0x04), Local3)
}
Name (BUF, Buffer (0x0E)
{
/* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x03,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF
})
CreateByteField (BUF, One, PMOD)
CreateByteField (BUF, 0x08, DMOD)
CreateByteField (BUF, 0x05, CMDA)
CreateByteField (BUF, 0x0C, CMDB)
Store (Arg0, CMDA)
Store (Arg0, CMDB)
Or (Local0, 0x08, PMOD)
If (Local2)
{
Or (Local3, 0x40, DMOD)
}
Else
{
If (LNotEqual (Local1, 0xFF))
{
Store (Match (MDMT, MLE, GETT (Local1), MTR, Zero, Zero), Local4)
If (LLess (Local4, 0x03))
{
Or (0x20, Local4, DMOD)
}
}
}
Return (BUF)
}
Device (PRID)
{
Name (_ADR, Zero)
Method (_GTM, 0, NotSerialized)
{
Name (BUF, Buffer (0x07)
{
0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
})
CreateWordField (BUF, Zero, VPIT)
CreateWordField (BUF, 0x02, VMDT)
CreateByteField (BUF, 0x04, VPIC)
CreateByteField (BUF, 0x05, VUDC)
CreateByteField (BUF, 0x06, VUDM)
Store (PPIT, VPIT)
Store (PMDT, VMDT)
Store (PPIC, VPIC)
Store (PUDC, VUDC)
Store (PUDM, VUDM)
Return (GTM (BUF))
}
Method (_STM, 3, NotSerialized)
{
Name (BUF, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
CreateWordField (BUF, Zero, VPIT)
CreateWordField (BUF, 0x02, VMDT)
CreateByteField (BUF, 0x04, VPIM)
CreateByteField (BUF, 0x05, VUDC)
CreateByteField (BUF, 0x06, VUDM)
Store (STM (Arg0, Arg1, Arg2), BUF)
Store (VPIT, PPIT)
Store (VMDT, PMDT)
Store (VPIM, PPIM)
Store (VUDC, PUDC)
Store (VUDM, PUDM)
}
Device (P_D0)
{
Name (_ADR, Zero)
Method (_GTF, 0, NotSerialized)
{
Name (BUF, Buffer (0x05)
{
0x00, 0x00, 0x00, 0x00, 0x00
})
CreateWordField (BUF, Zero, VMDT)
CreateByteField (BUF, 0x02, VPIM)
CreateByteField (BUF, 0x03, VUDC)
CreateByteField (BUF, 0x04, VUDM)
Store (PMDT, VMDT)
Store (PPIM, VPIM)
Store (PUDC, VUDC)
Store (PUDM, VUDM)
Return (GTF (0xA0, BUF))
}
}
Device (P_D1)
{
Name (_ADR, One)
Method (_GTF, 0, NotSerialized)
{
Name (BUF, Buffer (0x05)
{
0x00, 0x00, 0x00, 0x00, 0x00
})
CreateWordField (BUF, Zero, VMDT)
CreateByteField (BUF, 0x02, VPIM)
CreateByteField (BUF, 0x03, VUDC)
CreateByteField (BUF, 0x04, VUDM)
Store (PMDT, VMDT)
Store (PPIM, VPIM)
Store (PUDC, VUDC)
Store (PUDM, VUDM)
Return (GTF (0xB0, BUF))
}
}
}
Device (SECD)
{
Name (_ADR, One)
Method (_GTM, 0, NotSerialized)
{
Name (BUF, Buffer (0x07)
{
0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
})
CreateWordField (BUF, Zero, VPIT)
CreateWordField (BUF, 0x02, VMDT)
CreateByteField (BUF, 0x04, VPIC)
CreateByteField (BUF, 0x05, VUDC)
CreateByteField (BUF, 0x06, VUDM)
Store (SPIT, VPIT)
Store (SMDT, VMDT)
Store (SPIC, VPIC)
Store (SUDC, VUDC)
Store (SUDM, VUDM)
Return (GTM (BUF))
}
Method (_STM, 3, NotSerialized)
{
Name (BUF, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
CreateWordField (BUF, Zero, VPIT)
CreateWordField (BUF, 0x02, VMDT)
CreateByteField (BUF, 0x04, VPIM)
CreateByteField (BUF, 0x05, VUDC)
CreateByteField (BUF, 0x06, VUDM)
Store (STM (Arg0, Arg1, Arg2), BUF)
Store (VPIT, SPIT)
Store (VMDT, SMDT)
Store (VPIM, SPIM)
Store (VUDC, SUDC)
Store (VUDM, SUDM)
}
Device (S_D0)
{
Name (_ADR, Zero)
Method (_GTF, 0, NotSerialized)
{
Name (BUF, Buffer (0x05)
{
0x00, 0x00, 0x00, 0x00, 0x00
})
CreateWordField (BUF, Zero, VMDT)
CreateByteField (BUF, 0x02, VPIM)
CreateByteField (BUF, 0x03, VUDC)
CreateByteField (BUF, 0x04, VUDM)
Store (SMDT, VMDT)
Store (SPIM, VPIM)
Store (SUDC, VUDC)
Store (SUDM, VUDM)
Return (GTF (0xA0, BUF))
}
}
Device (S_D1)
{
Name (_ADR, One)
Method (_GTF, 0, NotSerialized)
{
Name (BUF, Buffer (0x05)
{
0x00, 0x00, 0x00, 0x00, 0x00
})
CreateWordField (BUF, Zero, VMDT)
CreateByteField (BUF, 0x02, VPIM)
CreateByteField (BUF, 0x03, VUDC)
CreateByteField (BUF, 0x04, VUDM)
Store (SMDT, VMDT)
Store (SPIM, VPIM)
Store (SUDC, VUDC)
Store (SUDM, VUDM)
Return (GTF (0xB0, BUF))
}
}
}
}
Name (AFCB, Buffer (0xB8) {})
Name (CALB, Buffer (0x05) {})
Device (AFD)
{
Name (_HID, "AFD0001")
Name (HDD0, 0x80000000)
Name (ODZP, 0x80000000)
Name (DAT3, Buffer (0x0E)
{
/* 0000 */ 0x0E, 0x00, 0x03, 0x0C, 0x03, 0x00, 0x00, 0x00,
/* 0008 */ 0x92, 0x00, 0x03, 0x00, 0x00, 0x00
})
Name (DAT4, Buffer (0x0E)
{
/* 0000 */ 0x0E, 0x00, 0x11, 0x0D, 0x03, 0x00, 0x00, 0x00,
/* 0008 */ 0xA5, 0x00, 0x02, 0x00, 0x00, 0x00
})
Name (DAT5, Buffer (0x0E)
{
/* 0000 */ 0x0E, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Name (DAT6, Buffer (0x0E)
{
/* 0000 */ 0x0E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xFF,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Name (DAT7, Buffer (0x0E)
{
/* 0000 */ 0x0E, 0x00, 0x03, 0x0C, 0x03, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00
})
Name (DAT8, Buffer (0x0E)
{
/* 0000 */ 0x0E, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Name (DAT9, Buffer (0x0E)
{
/* 0000 */ 0x0E, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Name (DATA, Buffer (0x0E)
{
/* 0000 */ 0x0E, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Name (DATB, Buffer (0x0E)
{
/* 0000 */ 0x0E, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Name (DATC, Buffer (0x0E)
{
/* 0000 */ 0x0E, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0xFF,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Method (_STA, 0, NotSerialized)
{
If (LEqual (AFUC, Zero))
{
Return (Zero)
}
Else
{
Return (0x0F)
}
}
Method (AFCM, 3, NotSerialized)
{
And (Arg0, 0xFF, Arg0)
If (LEqual (Arg0, Zero))
{
Return (AFC0 ())
}
If (LEqual (Arg0, One))
{
Return (AFC1 ())
}
If (LEqual (Arg0, 0x02))
{
Return (AFC2 (Arg1, Arg2))
}
Else
{
CreateWordField (AFCB, Zero, SSZE)
CreateWordField (AFCB, 0x02, VERN)
CreateDWordField (AFCB, 0x04, SFUN)
Store (Zero, SSZE)
Store (Zero, VERN)
Store (Zero, SFUN)
Return (AFCB)
}
}
Method (AFC0, 0, NotSerialized)
{
Store (0xAF00, P80H)
CreateWordField (AFCB, Zero, SSZE)
CreateWordField (AFCB, 0x02, VERN)
CreateDWordField (AFCB, 0x04, SFUN)
Store (0x08, SSZE)
Store (One, VERN)
Store (0x03, SFUN)
Store (0xAE00, P80H)
Return (AFCB)
}
Method (AFC1, 0, NotSerialized)
{
Store (0xAF01, P80H)
CreateWordField (AFCB, Zero, SSZE)
CreateWordField (AFCB, 0x02, ESZ0)
CreateWordField (AFCB, 0x04, CCD0)
CreateWordField (AFCB, 0x06, EBU0)
CreateWordField (AFCB, 0x08, CFG0)
CreateWordField (AFCB, 0x0A, PCA0)
CreateWordField (AFCB, 0x0C, DCP0)
CreateWordField (AFCB, 0x0E, DRA0)
Store (0x0E, ESZ0)
Store (0x02, EBU0)
Store (Zero, CFG0)
Store (0x88, PCA0)
If (LEqual (^^SATA.VIDI, 0x78001022))
{
Store (One, EBU0)
Store (0x0101, CCD0)
Store (Zero, DCP0)
Store (Zero, DRA0)
}
If (LEqual (^^SATA.VIDI, 0x78011022))
{
Store (0x0106, CCD0)
Store (Zero, DCP0)
Store (Zero, DRA0)
}
If (LEqual (^^SATA.VIDI, 0x78021022))
{
Store (0x0104, CCD0)
Store (Zero, DCP0)
Store (Zero, DRA0)
}
If (LEqual (^^SATA.VIDI, 0x78031022))
{
Store (0x0104, CCD0)
Store (Zero, DCP0)
Store (Zero, DRA0)
}
If (LEqual (^^SATA.VIDI, 0x78041022))
{
Store (0x0106, CCD0)
Store (Zero, DCP0)
Store (Zero, DRA0)
}
CreateWordField (AFCB, 0x10, ESZ1)
CreateWordField (AFCB, 0x12, CCD1)
CreateWordField (AFCB, 0x14, EBU1)
CreateWordField (AFCB, 0x16, CFG1)
CreateWordField (AFCB, 0x18, PCA1)
CreateWordField (AFCB, 0x1A, DCP1)
CreateWordField (AFCB, 0x1C, DRA1)
Store (0x0E, ESZ1)
Store (0x02, EBU1)
Store (Zero, CFG1)
Store (0x88, PCA1)
If (LEqual (^^SATA.VIDI, 0x78001022))
{
Store (One, EBU1)
Store (0x0101, CCD1)
Store (One, DCP1)
Store (One, DRA1)
}
If (LEqual (^^SATA.VIDI, 0x78011022))
{
Store (0x0106, CCD1)
Store (One, DCP1)
Store (Zero, DRA1)
}
If (LEqual (^^SATA.VIDI, 0x78021022))
{
Store (0x0104, CCD1)
Store (Zero, DCP1)
Store (Zero, DRA1)
}
If (LEqual (^^SATA.VIDI, 0x78031022))
{
Store (0x0104, CCD1)
Store (Zero, DCP1)
Store (Zero, DRA1)
}
If (LEqual (^^SATA.VIDI, 0x78041022))
{
Store (0x0106, CCD1)
Store (One, DCP1)
Store (Zero, DRA1)
}
CreateWordField (AFCB, 0x1E, ESZ2)
CreateWordField (AFCB, 0x20, CCD2)
CreateWordField (AFCB, 0x22, EBU2)
CreateWordField (AFCB, 0x24, CFG2)
CreateWordField (AFCB, 0x26, PCA2)
CreateWordField (AFCB, 0x28, DCP2)
CreateWordField (AFCB, 0x2A, DRA2)
Store (0x0E, ESZ2)
Store (0x02, EBU2)
Store (Zero, CFG2)
Store (0x88, PCA2)
If (LEqual (^^SATA.VIDI, 0x78001022))
{
Store (One, EBU2)
Store (0x0101, CCD2)
Store (Zero, DCP2)
Store (One, DRA2)
}
If (LEqual (^^SATA.VIDI, 0x78011022))
{
Store (0x0106, CCD2)
Store (0x02, DCP2)
Store (Zero, DRA2)
}
If (LEqual (^^SATA.VIDI, 0x78021022))
{
Store (0x0104, CCD2)
Store (Zero, DCP2)
Store (Zero, DRA2)
}
If (LEqual (^^SATA.VIDI, 0x78031022))
{
Store (0x0104, CCD2)
Store (Zero, DCP2)
Store (Zero, DRA2)
}
If (LEqual (^^SATA.VIDI, 0x78041022))
{
Store (0x0106, CCD2)
Store (0x02, DCP2)
Store (Zero, DRA2)
}
CreateField (AFCB, 0x0160, 0x70, IDX3)
Store (DAT3, IDX3)
CreateField (AFCB, 0x01D0, 0x70, IDX4)
Store (DAT4, IDX4)
CreateField (AFCB, 0x0240, 0x70, IDX5)
CreateByteField (DAT5, 0x07, BUS5)
If (LEqual (^^VGA.PXEN, 0x80000000))
{
Store (0xFF, BUS5)
}
Else
{
If (LEqual (^^VGA.PXID, ^^PB2._ADR))
{
Store (^^PB2.SBUS, Local0)
}
If (LEqual (^^VGA.PXID, ^^PB3._ADR))
{
Store (^^PB3.SBUS, Local0)
}
ShiftRight (Local0, 0x08, Local0)
And (Local0, 0xFF, Local0)
Store (Local0, BUS5)
}
Store (DAT5, IDX5)
CreateField (AFCB, 0x02B0, 0x70, IDX6)
CreateByteField (DAT6, 0x07, BUS6)
Store (^^PB7.SBUS, Local0)
ShiftRight (Local0, 0x08, Local0)
And (Local0, 0xFF, Local0)
Store (Local0, BUS6)
Store (DAT6, IDX6)
CreateField (AFCB, 0x0320, 0x70, IDX7)
If (LEqual (EXUS, Zero))
{
CreateByteField (DAT7, 0x09, BUS7)
Store (^^SPB1.SBUS, Local0)
ShiftRight (Local0, 0x08, Local0)
And (Local0, 0xFF, Local0)
Store (Local0, BUS7)
}
Store (DAT7, IDX7)
CreateField (AFCB, 0x0390, 0x70, IDX8)
CreateByteField (DAT8, 0x07, BUS8)
Store (^^PB4.SBUS, Local0)
ShiftRight (Local0, 0x08, Local0)
And (Local0, 0xFF, Local0)
Store (Local0, BUS8)
Store (DAT8, IDX8)
CreateField (AFCB, 0x0400, 0x70, IDX9)
CreateByteField (DAT9, 0x07, BUS9)
Store (^^PB6.SBUS, Local0)
ShiftRight (Local0, 0x08, Local0)
And (Local0, 0xFF, Local0)
Store (Local0, BUS9)
Store (DAT9, IDX9)
CreateField (AFCB, 0x0470, 0x70, IDXA)
CreateByteField (DATA, 0x07, BUSA)
Store (^^SPB0.SBUS, Local0)
ShiftRight (Local0, 0x08, Local0)
And (Local0, 0xFF, Local0)
Store (Local0, BUSA)
Store (DATA, IDXA)
CreateField (AFCB, 0x04E0, 0x70, IDXB)
CreateByteField (DATB, 0x07, BUSB)
Store (^^PB5.SBUS, Local0)
ShiftRight (Local0, 0x08, Local0)
And (Local0, 0xFF, Local0)
Store (Local0, BUSB)
Store (DATB, IDXB)
CreateField (AFCB, 0x0550, 0x70, IDXC)
CreateByteField (DATC, 0x07, BUSC)
ShiftRight (Local0, 0x08, Local0)
And (Local0, 0xFF, Local0)
Store (Local0, BUSC)
Store (DATC, IDXC)
Store (0xB8, SSZE)
Store (0xAE01, P80H)
Return (AFCB)
}
Method (AFC2, 2, NotSerialized)
{
Store (0xAF02, P80H)
CreateDWordField (AFCB, Zero, FLAG)
CreateByteField (AFCB, 0x04, PWST)
CreateByteField (AFCB, 0x05, DIND)
CreateWordField (CALB, Zero, SZZE)
CreateField (CALB, 0x10, 0x03, FUCC)
CreateField (CALB, 0x13, 0x05, DEVV)
CreateField (CALB, 0x18, 0x08, BUSS)
CreateByteField (CALB, 0x04, HPST)
Store (0x05, SZZE)
And (Arg0, 0xFF, PWST)
And (Arg1, 0xFF, DIND)
If (LEqual (DIND, Zero))
{
If (LOr (LEqual (^^SATA.VIDI, 0x78021022), LEqual (^^SATA.VIDI, 0x78031022)))
{
Or (FLAG, 0x80, FLAG)
Return (FLAG)
}
Store (One, ^^SMBS.MX57)
Store (One, ^^SMBS.M170)
If (LEqual (PWST, Zero))
{
If (LEqual (^^SATA.VIDI, 0x78001022))
{
Notify (^^SATA.PRID.P_D0, 0x03)
}
If (LOr (LEqual (^^SATA.VIDI, 0x78011022), LEqual (^^SATA.VIDI, 0x78041022)))
{
Notify (^^SATA.PRID, 0x03)
}
Store (Zero, FLAG)
}
If (LEqual (PWST, One))
{
Store (Zero, ^^SMBS.O170)
Store (Zero, ^^SMBS.E170)
Store (One, ^^SMBS.O057)
Store (Zero, ^^SMBS.E057)
Sleep (0x03E8)
If (LEqual (^^SATA.VIDI, 0x78001022))
{
Notify (^^SATA.PRID.P_D0, One)
}
If (LOr (LEqual (^^SATA.VIDI, 0x78011022), LEqual (^^SATA.VIDI, 0x78041022)))
{
Notify (^^SATA.PRID, One)
}
Store (One, FLAG)
}
If (LEqual (PWST, 0xFF))
{
Store (^^SMBS.O057, FLAG)
}
}
If (LEqual (DIND, One))
{
If (LOr (LEqual (^^SATA.VIDI, 0x78021022), LEqual (^^SATA.VIDI, 0x78031022)))
{
Or (FLAG, 0x80, FLAG)
Return (FLAG)
}
Store (One, ^^SMBS.MX53)
Store (One, ^^SMBS.M170)
If (LEqual (ODZC, Zero))
{
If (LEqual (PWST, Zero))
{
If (LEqual (^^SATA.VIDI, 0x78001022))
{
Notify (^^SATA.PRT1.ODD, 0x03)
}
If (LOr (LEqual (^^SATA.VIDI, 0x78011022), LEqual (^^SATA.VIDI, 0x78041022)))
{
If (LEqual (HDD0, One))
{
Notify (^^SATA.PRT1, 0x03)
}
Else
{
If (LGreaterEqual (TPOS, 0x50))
{
Notify (^^SATA.PRT1, 0x03)
}
Else
{
Notify (^^SATA.PRID, 0x03)
}
}
}
Store (Zero, FLAG)
}
If (LEqual (PWST, One))
{
Store (Zero, ^^SMBS.O170)
Store (Zero, ^^SMBS.E170)
Store (One, ^^SMBS.O053)
Store (Zero, ^^SMBS.E053)
Sleep (0x03E8)
If (LEqual (^^SATA.VIDI, 0x78001022))
{
Notify (^^SATA.PRT1.ODD, One)
}
If (LOr (LEqual (^^SATA.VIDI, 0x78011022), LEqual (^^SATA.VIDI, 0x78041022)))
{
If (LEqual (HDD0, One))
{
Notify (^^SATA.PRT1, One)
}
Else
{
If (LGreaterEqual (TPOS, 0x50))
{
Notify (^^SATA.PRT1, One)
}
Else
{
Notify (^^SATA.PRID, One)
}
}
}
Store (One, FLAG)
}
If (LEqual (PWST, 0xFF))
{
Store (^^SMBS.O053, FLAG)
}
}
Else
{
If (LEqual (^^SATA.VIDI, 0x78041022))
{
Store (^^SMBS.O053, FLAG)
Or (FLAG, 0xC0, FLAG)
Return (FLAG)
}
If (LEqual (PWST, Zero))
{
If (LEqual (^^SATA.VIDI, 0x78001022))
{
Notify (^^SATA.ODDZ.ODD, 0x03)
}
If (LEqual (^^SATA.VIDI, 0x78011022))
{
If (LEqual (HDD0, One))
{
Notify (^^SATA.ODDZ.ODD, 0x03)
}
Else
{
If (LGreaterEqual (TPOS, 0x50))
{
Notify (^^SATA.ODDZ.ODD, 0x03)
}
Else
{
Notify (^^SATA.PRID, 0x03)
}
}
}
Store (Zero, FLAG)
}
If (LEqual (PWST, One))
{
Store (Zero, ^^SMBS.O170)
Store (Zero, ^^SMBS.E170)
Store (One, ^^SMBS.O053)
Store (Zero, ^^SMBS.E053)
Sleep (0x03E8)
If (LEqual (^^SATA.VIDI, 0x78001022))
{
Notify (^^SATA.ODDZ.ODD, One)
}
If (LEqual (^^SATA.VIDI, 0x78011022))
{
If (LEqual (HDD0, One))
{
Notify (^^SATA.ODDZ.ODD, One)
}
Else
{
If (LGreaterEqual (TPOS, 0x50))
{
Notify (^^SATA.ODDZ.ODD, One)
}
Else
{
Notify (^^SATA.PRID, One)
}
}
}
Store (One, FLAG)
}
If (LEqual (PWST, 0xFF))
{
Store (^^SMBS.O053, FLAG)
If (LOr (LEqual (^^SATA.VIDI, 0x78001022), LEqual (^^SATA.VIDI, 0x78011022)))
{
And (FLAG, 0x7F, FLAG)
}
Else
{
Or (FLAG, 0x80, FLAG)
}
Or (FLAG, 0x40, FLAG)
}
}
}
If (LEqual (DIND, 0x02))
{
If (LOr (LEqual (^^SATA.VIDI, 0x78021022), LEqual (^^SATA.VIDI, 0x78031022)))
{
Or (FLAG, 0x80, FLAG)
Return (FLAG)
}
Store (One, ^^SMBS.MX58)
Store (One, ^^SMBS.M170)
If (LEqual (PWST, Zero))
{
If (LEqual (^^SATA.VIDI, 0x78001022))
{
Notify (^^SATA.PRID.P_D1, 0x03)
}
If (LOr (LEqual (^^SATA.VIDI, 0x78011022), LEqual (^^SATA.VIDI, 0x78041022)))
{
Notify (^^SATA.SECD, 0x03)
}
Store (Zero, FLAG)
}
If (LEqual (PWST, One))
{
Store (Zero, ^^SMBS.O170)
Store (Zero, ^^SMBS.E170)
Sleep (0x03E8)
Store (One, ^^SMBS.O058)
Store (Zero, ^^SMBS.E058)
Sleep (0x03E8)
Store (One, ^^SMBS.O170)
Store (Zero, ^^SMBS.E170)
If (LEqual (^^SATA.VIDI, 0x78001022))
{
Notify (^^SATA.PRID.P_D1, One)
}
If (LOr (LEqual (^^SATA.VIDI, 0x78011022), LEqual (^^SATA.VIDI, 0x78041022)))
{
Notify (^^SATA.SECD, One)
}
Store (One, FLAG)
}
If (LEqual (PWST, 0xFF))
{
Store (^^SMBS.O058, FLAG)
}
}
If (LEqual (DIND, 0x03))
{
Store (One, ^^SMBS.MX66)
If (LEqual (PWST, Zero))
{
Store (One, ^^SMBS.O066)
Store (Zero, ^^SMBS.E066)
Store (Zero, FLAG)
}
If (LEqual (PWST, One))
{
Store (Zero, ^^SMBS.O066)
Store (Zero, ^^SMBS.E066)
Sleep (0x28)
Store (One, FLAG)
}
If (LEqual (PWST, 0xFF))
{
Store (^^SMBS.O066, FLAG)
}
}
If (LEqual (DIND, 0x04))
{
Store (One, ^^SMBS.MX07)
If (LEqual (PWST, Zero))
{
Notify (^^OHC4.RHUB.PRT2, 0x03)
Store (Zero, FLAG)
}
If (LEqual (PWST, One))
{
Store (One, ^^SMBS.O007)
Store (Zero, ^^SMBS.E007)
Sleep (0x28)
Notify (^^OHC4.RHUB.PRT2, One)
Store (One, FLAG)
}
If (LEqual (PWST, 0xFF))
{
Store (^^SMBS.O007, FLAG)
}
}
If (LEqual (DIND, 0x05))
{
If (LEqual (^^VGA.PXEN, 0x80000000))
{
Store (^^SMBS.O045, FLAG)
Or (FLAG, 0x80, FLAG)
Return (FLAG)
}
If (LEqual (PWST, Zero))
{
Notify (^^PB2.VGA, 0x03)
Store (Zero, FLAG)
}
If (LEqual (PWST, One))
{
^^VGA.PX02 (One)
Notify (^^PB2.VGA, One)
Store (One, FLAG)
}
If (LEqual (PWST, 0xFF))
{
Store (^^SMBS.O045, FLAG)
}
}
If (LEqual (DIND, 0x06))
{
Store (0x02, ^^SMBS.MX59)
Store (One, ^^SMBS.MX27)
If (LEqual (PWST, Zero))
{
Notify (^^PB7.XPDV, 0x03)
Store (Zero, FLAG)
Store (0xAF60, P80H)
}
If (LEqual (PWST, One))
{
Store (Zero, ^^SMBS.O027)
Store (Zero, ^^SMBS.E027)
Sleep (0x28)
Store (One, ^^SMBS.O059)
Store (Zero, ^^SMBS.E059)
Sleep (0x28)
Store (^^SMBS.MS04, Local0)
Or (Local0, 0x0F, Local1)
Store (Local1, ^^SMBS.MS04)
Sleep (0x28)
Store (One, ^^SMBS.O027)
Store (Zero, ^^SMBS.E027)
Sleep (0x28)
Store (One, ^^SMBS.H041)
Store (One, ^^SMBS.S041)
Store (Zero, ^^SMBS.U041)
Sleep (0x28)
Store (Zero, FUCC)
Store (0x07, DEVV)
Store (Zero, BUSS)
Store (One, HPST)
ALIB (0x06, CALB, Sleep (0x28), Store (^^PB7.XPDV.DISF, Local0), And (Local0,
0xFFFFFFF9, Local0))
Store (Local0, ^^PB7.XPDV.DISF)
Notify (^^PB7.XPDV, One)
Store (One, FLAG)
Store (0xAF61, P80H)
}
If (LEqual (PWST, 0xFF))
{
Store (^^SMBS.O059, FLAG)
}
}
If (LEqual (DIND, 0x07))
{
Store (0x02, ^^SMBS.M200)
If (LEqual (PWST, Zero))
{
Notify (^^SPB1.XPDV, 0x03)
Store (Zero, FLAG)
Store (0xAE70, P80H)
}
If (LEqual (PWST, One))
{
Store (One, ^^SMBS.O200)
Store (Zero, ^^SMBS.E200)
Sleep (0x28)
Store (^^SMBS.MS03, Local0)
Or (Local0, 0xF0, Local1)
Store (Local1, ^^SMBS.MS03)
Store (One, ^^SMBS.H046)
Store (One, ^^SMBS.S046)
Store (Zero, ^^SMBS.U046)
Sleep (0x28)
Notify (^^SPB1.XPDV, One)
Store (One, FLAG)
Store (0xAE71, P80H)
}
If (LEqual (PWST, 0xFF))
{
Store (^^SMBS.O200, FLAG)
}
}
If (LEqual (DIND, 0x08))
{
Store (0x02, ^^SMBS.M197)
If (LEqual (PWST, Zero))
{
Notify (^^PB4.XPDV, 0x03)
Store (Zero, FLAG)
}
If (LEqual (PWST, One))
{
Store (One, ^^SMBS.O197)
Store (Zero, ^^SMBS.E197)
Sleep (0xC8)
Store (^^SMBS.MS01, Local0)
Or (Local0, 0xF0, Local1)
Store (Local1, ^^SMBS.MS01)
Store (One, ^^SMBS.H063)
Store (One, ^^SMBS.S063)
Store (Zero, ^^SMBS.U063)
Sleep (0xC8)
Store (Zero, FUCC)
Store (0x04, DEVV)
Store (Zero, BUSS)
Store (One, HPST)
ALIB (0x06, CALB, Notify (^^PB4.XPDV, One), Store (One, FLAG), If (
LEqual (PWST, 0xFF))
{
Store (^^SMBS.O197, FLAG)
})
}
}
If (LEqual (DIND, 0x09))
{
Store (One, ^^SMBS.M176)
If (LEqual (PWST, Zero))
{
Notify (^^PB6.XPDV, 0x03)
Store (Zero, FLAG)
}
If (LEqual (PWST, One))
{
Sleep (0x28)
Store (One, ^^SMBS.O014)
Store (Zero, ^^SMBS.E014)
Store (Zero, ^^SMBS.O176)
Store (Zero, ^^SMBS.E176)
Sleep (0xC8)
Store (^^SMBS.MS02, Local0)
Or (Local0, 0x0F, Local1)
Store (Local1, ^^SMBS.MS02)
Sleep (0x28)
Store (One, ^^SMBS.H064)
Store (One, ^^SMBS.S064)
Store (Zero, ^^SMBS.U064)
Sleep (0xC8)
Store (Zero, FUCC)
Store (0x06, DEVV)
Store (Zero, BUSS)
Store (One, HPST)
ALIB (0x06, CALB, Notify (^^PB6.XPDV, One), Store (One, FLAG), If (
LEqual (PWST, 0xFF))
{
Store (^^SMBS.O176, Local0)
And (Local0, One, Local0)
XOr (Local0, One, Local0)
Store (Local0, FLAG)
})
}
}
If (LEqual (DIND, 0x0A))
{
Store (One, ^^SMBS.M175)
If (LEqual (PWST, Zero))
{
Notify (^^SPB0.XPDV, 0x03)
Store (Zero, FLAG)
}
If (LEqual (PWST, One))
{
Store (One, ^^SMBS.O012)
Store (Zero, ^^SMBS.E012)
Sleep (0x28)
Store (Zero, ^^SMBS.O175)
Store (Zero, ^^SMBS.E175)
Sleep (0xC8)
Notify (^^SPB0.XPDV, One)
Store (One, FLAG)
}
If (LEqual (PWST, 0xFF))
{
Store (^^SMBS.O175, Local0)
And (Local0, One, Local0)
XOr (Local0, One, Local0)
Store (Local0, FLAG)
}
}
If (LEqual (DIND, 0x0B))
{
Store (One, ^^SMBS.M177)
If (LEqual (PWST, Zero))
{
Notify (^^PB5.XPDV, 0x03)
Store (Zero, FLAG)
}
If (LEqual (PWST, One))
{
Sleep (0x28)
Store (One, ^^SMBS.O013)
Store (Zero, ^^SMBS.E013)
Store (Zero, ^^SMBS.O177)
Store (Zero, ^^SMBS.E177)
Sleep (0xC8)
Store (^^SMBS.MS01, Local0)
Or (Local0, 0x0F, Local1)
Store (Local1, ^^SMBS.MS01)
Sleep (0x28)
Store (One, ^^SMBS.H062)
Store (One, ^^SMBS.S062)
Store (Zero, ^^SMBS.U062)
Sleep (0xC8)
Store (Zero, FUCC)
Store (0x05, DEVV)
Store (Zero, BUSS)
Store (One, HPST)
ALIB (0x06, CALB, Notify (^^PB5.XPDV, One), Store (One, FLAG), If (
LEqual (PWST, 0xFF))
{
Store (^^SMBS.O177, Local0)
And (Local0, One, Local0)
XOr (Local0, One, Local0)
Store (Local0, FLAG)
})
}
}
If (LEqual (DIND, 0x0C))
{
Store (One, ^^SMBS.MX23)
If (LEqual (PWST, Zero))
{
Store (Zero, ^^SMBS.O023)
Store (Zero, ^^SMBS.E023)
Store (Zero, FLAG)
}
If (LEqual (PWST, One))
{
Store (One, ^^SMBS.O023)
Store (Zero, ^^SMBS.E023)
Sleep (0xC8)
Store (One, FLAG)
}
If (LEqual (PWST, 0xFF))
{
Store (^^SMBS.O023, FLAG)
}
}
Store (0xAE02, P80H)
Return (FLAG)
}
}
Scope (SATA.PRID)
{
Method (XEJX, 1, NotSerialized)
{
Store (Zero, ^^^SMBS.O170)
Store (Zero, ^^^SMBS.E170)
Sleep (0x28)
If (LEqual (^^^AFD.HDD0, One))
{
Store (Zero, ^^^SMBS.O057)
Store (Zero, ^^^SMBS.E057)
}
Else
{
Store (Zero, ^^^SMBS.O053)
Store (Zero, ^^^SMBS.E053)
}
Sleep (0x28)
Store (One, ^^^SMBS.O170)
Store (Zero, ^^^SMBS.E170)
Sleep (0x28)
}
}
Scope (SATA.PRID.P_D0)
{
Method (XEJX, 1, NotSerialized)
{
Store (Zero, ^^^^SMBS.O170)
Store (Zero, ^^^^SMBS.E170)
Sleep (0x28)
Store (Zero, ^^^^SMBS.O057)
Store (Zero, ^^^^SMBS.E057)
Sleep (0x28)
Store (One, ^^^^SMBS.O170)
Store (Zero, ^^^^SMBS.E170)
Sleep (0x28)
}
}
Scope (SATA.PRT1)
{
Method (XEJX, 1, NotSerialized)
{
Store (Zero, ^^^SMBS.O170)
Store (Zero, ^^^SMBS.E170)
Sleep (0x28)
Store (Zero, ^^^SMBS.O053)
Store (Zero, ^^^SMBS.E053)
Sleep (0x28)
Store (One, ^^^SMBS.O170)
Store (Zero, ^^^SMBS.E170)
Sleep (0x28)
}
}
Scope (SATA.PRT1.ODD)
{
Method (XEJX, 1, NotSerialized)
{
Store (Zero, ^^^^SMBS.O170)
Store (Zero, ^^^^SMBS.E170)
Sleep (0x28)
Store (Zero, ^^^^SMBS.O053)
Store (Zero, ^^^^SMBS.E053)
Sleep (0x28)
Store (One, ^^^^SMBS.O170)
Store (Zero, ^^^^SMBS.E170)
Sleep (0x28)
}
}
Scope (SATA.SECD)
{
Method (XEJX, 1, NotSerialized)
{
Store (Zero, ^^^SMBS.O170)
Store (Zero, ^^^SMBS.E170)
Sleep (0x28)
Store (Zero, ^^^SMBS.O058)
Store (Zero, ^^^SMBS.E058)
Sleep (0x28)
Store (One, ^^^SMBS.O170)
Store (Zero, ^^^SMBS.E170)
Sleep (0x28)
}
}
Scope (SATA.PRID.P_D1)
{
Method (XEJX, 1, NotSerialized)
{
Store (Zero, ^^^^SMBS.O170)
Store (Zero, ^^^^SMBS.E170)
Sleep (0x28)
Store (Zero, ^^^^SMBS.O058)
Store (Zero, ^^^^SMBS.E058)
Sleep (0x28)
Store (One, ^^^^SMBS.O170)
Store (Zero, ^^^^SMBS.E170)
Sleep (0x28)
}
}
Scope (OHC1)
{
Device (RHUB)
{
Name (_ADR, Zero)
Device (PRT1)
{
Name (_ADR, One)
}
Device (PRT2)
{
Name (_ADR, 0x02)
}
Device (PRT3)
{
Name (_ADR, 0x03)
}
}
}
Scope (EHC1)
{
Device (RHUB)
{
Name (_ADR, Zero)
Device (PRT1)
{
Name (_ADR, One)
}
Device (PRT2)
{
Name (_ADR, 0x02)
}
Device (PRT3)
{
Name (_ADR, 0x03)
}
}
}
Scope (EHC2)
{
Device (RHUB)
{
Name (_ADR, Zero)
Device (PRT1)
{
Name (_ADR, One)
Method (_RMV, 0, NotSerialized)
{
Return (Zero)
}
}
Device (PRT2)
{
Name (_ADR, 0x02)
Name (_UPC, Package (0x04)
{
0xFF,
Zero,
Zero,
Zero
})
Name (_PLD, Buffer (0x10)
{
0x81, 0x00, 0x30, 0x00
})
Method (_RMV, 0, NotSerialized)
{
Return (Zero)
}
}
Device (PRT3)
{
Name (_ADR, 0x03)
Method (_RMV, 0, NotSerialized)
{
Return (Zero)
}
}
}
}
Scope (OHC2)
{
Device (RHUB)
{
Name (_ADR, Zero)
Device (PRT3)
{
Name (_ADR, 0x03)
Name (_UPC, Package (0x04)
{
0xFF,
Zero,
Zero,
Zero
})
Name (_PLD, Buffer (0x10)
{
0x81, 0x00, 0x30, 0x00
})
Method (_RMV, 0, NotSerialized)
{
Return (Zero)
}
}
}
}
Scope (OHC4)
{
Device (RHUB)
{
Name (_ADR, Zero)
Device (PRT1)
{
Name (_ADR, One)
}
Device (PRT2)
{
Name (_ADR, 0x02)
Method (XEJX, 1, NotSerialized)
{
Sleep (0x28)
Store (Zero, ^^^^SMBS.O007)
Store (Zero, ^^^^SMBS.E007)
Sleep (0x28)
}
}
}
}
Scope (PB2.VGA)
{
Method (XEJX, 1, NotSerialized)
{
Sleep (0x28)
^^^VGA.PX02 (Zero)
Sleep (0x28)
}
}
Scope (PB3.VGA)
{
Method (XEJX, 1, NotSerialized)
{
Sleep (0x28)
^^^VGA.PX02 (Zero)
Sleep (0x28)
}
}
Scope (PB7.XPDV)
{
Method (XEJX, 1, NotSerialized)
{
CreateWordField (CALB, Zero, SZZE)
CreateField (CALB, 0x10, 0x03, FUCC)
CreateField (CALB, 0x13, 0x05, DEVV)
CreateField (CALB, 0x18, 0x08, BUSS)
CreateByteField (CALB, 0x04, HPST)
Store (0x05, SZZE)
Store (Zero, FUCC)
Store (0x07, DEVV)
Store (Zero, BUSS)
Store (Zero, HPST)
ALIB (0x06, CALB, Sleep (0x28), Store (One, ^^^SMBS.H041), Store (One,
^^^SMBS.S041))
Store (One, ^^^SMBS.U041)
Sleep (0x28)
Store (^^^SMBS.MS04, Local0)
And (Local0, 0xFFFFFFF0, Local1)
Store (Local1, ^^^SMBS.MS04)
Sleep (0x28)
Store (Zero, ^^^SMBS.O170)
Store (Zero, ^^^SMBS.E170)
Sleep (0x28)
Store (Zero, ^^^SMBS.O059)
Store (Zero, ^^^SMBS.E059)
Sleep (0x28)
Store (One, ^^^SMBS.O170)
Store (Zero, ^^^SMBS.E170)
Sleep (0x28)
}
}
Scope (SPB1.XPDV)
{
Method (XEJX, 1, NotSerialized)
{
Store (One, ^^^SMBS.H046)
Store (One, ^^^SMBS.S046)
Store (One, ^^^SMBS.U046)
Sleep (0x28)
Store (^^^SMBS.MS03, Local0)
And (Local0, 0xFFFFFF0F, Local1)
Store (Local1, ^^^SMBS.MS03)
Store (Zero, ^^^SMBS.O200)
Store (Zero, ^^^SMBS.E200)
Sleep (0x28)
}
}
Scope (SPB0.XPDV)
{
Method (XEJX, 1, NotSerialized)
{
Store (One, ^^^SMBS.O175)
Store (Zero, ^^^SMBS.E175)
Store (Zero, ^^^SMBS.O012)
Store (Zero, ^^^SMBS.E012)
Sleep (0x28)
}
}
Scope (PB4.XPDV)
{
Method (XEJX, 1, NotSerialized)
{
CreateWordField (CALB, Zero, SZZE)
CreateField (CALB, 0x10, 0x03, FUCC)
CreateField (CALB, 0x13, 0x05, DEVV)
CreateField (CALB, 0x18, 0x08, BUSS)
CreateByteField (CALB, 0x04, HPST)
Store (0x05, SZZE)
Store (Zero, FUCC)
Store (0x04, DEVV)
Store (Zero, BUSS)
Store (Zero, HPST)
ALIB (0x06, CALB, Sleep (0x28), Store (One, ^^^SMBS.H063), Store (One,
^^^SMBS.S063))
Store (One, ^^^SMBS.U063)
Sleep (0x28)
Store (^^^SMBS.MS01, Local0)
And (Local0, 0xFFFFFF0F, Local1)
Store (Local1, ^^^SMBS.MS01)
Sleep (0x28)
Store (Zero, ^^^SMBS.O197)
Store (Zero, ^^^SMBS.E197)
Sleep (0x28)
}
}
Scope (PB5.XPDV)
{
Method (XEJX, 1, NotSerialized)
{
CreateWordField (CALB, Zero, SZZE)
CreateField (CALB, 0x10, 0x03, FUCC)
CreateField (CALB, 0x13, 0x05, DEVV)
CreateField (CALB, 0x18, 0x08, BUSS)
CreateByteField (CALB, 0x04, HPST)
Store (0x05, SZZE)
Store (Zero, FUCC)
Store (0x05, DEVV)
Store (Zero, BUSS)
Store (Zero, HPST)
ALIB (0x06, CALB, Sleep (0x28), Store (One, ^^^SMBS.H062), Store (One,
^^^SMBS.S062))
Store (One, ^^^SMBS.U062)
Sleep (0x28)
Store (^^^SMBS.MS01, Local0)
And (Local0, 0xFFFFFFF0, Local1)
Store (Local1, ^^^SMBS.MS01)
Sleep (0x28)
Store (One, ^^^SMBS.O177)
Store (Zero, ^^^SMBS.E177)
Sleep (0x28)
Store (Zero, ^^^SMBS.O013)
Store (Zero, ^^^SMBS.E013)
Sleep (0x28)
}
}
Scope (PB6.XPDV)
{
Method (XEJX, 1, NotSerialized)
{
CreateWordField (CALB, Zero, SZZE)
CreateField (CALB, 0x10, 0x03, FUCC)
CreateField (CALB, 0x13, 0x05, DEVV)
CreateField (CALB, 0x18, 0x08, BUSS)
CreateByteField (CALB, 0x04, HPST)
Store (0x05, SZZE)
Store (Zero, FUCC)
Store (0x06, DEVV)
Store (Zero, BUSS)
Store (Zero, HPST)
ALIB (0x06, CALB, Sleep (0x28), Store (One, ^^^SMBS.H064), Store (One,
^^^SMBS.S064))
Store (One, ^^^SMBS.U064)
Sleep (0x28)
Store (^^^SMBS.MS02, Local0)
And (Local0, 0xFFFFFFF0, Local1)
Store (Local1, ^^^SMBS.MS02)
Sleep (0x28)
Store (One, ^^^SMBS.O176)
Store (Zero, ^^^SMBS.E176)
Sleep (0x28)
Store (Zero, ^^^SMBS.O014)
Store (Zero, ^^^SMBS.E014)
Sleep (0x28)
}
}
Scope (SATA)
{
Device (ODDZ)
{
Name (_ADR, One)
Name (ODPS, Zero)
Method (_STA, 0, NotSerialized)
{
If (LEqual (ODZC, Zero))
{
Return (Zero)
}
Else
{
Return (0x0F)
}
}
Method (_PS0, 0, NotSerialized)
{
Store (0xDF00, P80H)
If (LEqual (ODZC, One))
{
If (LEqual (VIDI, 0x78041022))
{
Sleep (0x28)
Store (Zero, ^^^SMBS.O170)
Store (Zero, ^^^SMBS.E170)
Store (One, ^^^SMBS.O053)
Store (Zero, ^^^SMBS.E053)
Sleep (0x28)
}
}
Store (Zero, ODPS)
}
Method (_PS3, 0, NotSerialized)
{
Store (0xDF03, P80H)
If (LEqual (ODZC, One))
{
If (LEqual (VIDI, 0x78041022))
{
Sleep (0x28)
Store (Zero, ^^^SMBS.O170)
Store (Zero, ^^^SMBS.E170)
Store (Zero, ^^^SMBS.O053)
Store (Zero, ^^^SMBS.E053)
Sleep (0x28)
}
}
Store (0x03, ODPS)
}
Method (_PSC, 0, NotSerialized)
{
Return (ODPS)
}
Device (ODD)
{
Name (_ADR, Zero)
Method (_RMV, 0, NotSerialized)
{
Return (Zero)
}
Method (XEJX, 1, NotSerialized)
{
Sleep (0x28)
Store (Zero, ^^^^SMBS.O170)
Store (Zero, ^^^^SMBS.E170)
Store (Zero, ^^^^SMBS.O053)
Store (Zero, ^^^^SMBS.E053)
Sleep (0x28)
}
}
}
}
}
OperationRegion (PIRQ, SystemIO, 0x0C00, 0x02)
Field (PIRQ, ByteAcc, NoLock, Preserve)
{
PIDX, 8,
PDAT, 8
}
IndexField (PIDX, PDAT, ByteAcc, NoLock, Preserve)
{
PIRA, 8,
PIRB, 8,
PIRC, 8,
PIRD, 8,
PIRE, 8,
PIRF, 8,
PIRG, 8,
PIRH, 8,
Offset (0x10),
PIRS, 8,
Offset (0x13),
HDAD, 8,
Offset (0x15),
GEC, 8,
Offset (0x30),
USB1, 8,
USB2, 8,
USB3, 8,
USB4, 8,
USB5, 8,
USB6, 8,
USB7, 8,
Offset (0x40),
IDE, 8,
SATA, 8,
Offset (0x50),
GPP0, 8,
GPP1, 8,
GPP2, 8,
GPP3, 8
}
OperationRegion (KBDD, SystemIO, 0x64, One)
Field (KBDD, ByteAcc, NoLock, Preserve)
{
PD64, 8
}
Method (DSPI, 0, NotSerialized)
{
INTA (0x1F)
INTB (0x1F)
INTC (0x1F)
INTD (0x1F)
Store (PD64, Local1)
Store (0x1F, PIRE)
Store (0x1F, PIRF)
Store (0x1F, PIRG)
Store (0x1F, PIRH)
}
Method (INTA, 1, NotSerialized)
{
Store (Arg0, PIRA)
Store (Arg0, HDAD)
Store (Arg0, GEC)
Store (Arg0, GPP0)
Store (Arg0, GPP0)
}
Method (INTB, 1, NotSerialized)
{
Store (Arg0, PIRB)
Store (Arg0, USB2)
Store (Arg0, USB4)
Store (Arg0, USB6)
Store (Arg0, GPP1)
Store (Arg0, IDE)
}
Method (INTC, 1, NotSerialized)
{
Store (Arg0, PIRC)
Store (Arg0, USB1)
Store (Arg0, USB3)
Store (Arg0, USB5)
Store (Arg0, USB7)
Store (Arg0, GPP2)
}
Method (INTD, 1, NotSerialized)
{
Store (Arg0, PIRD)
Store (Arg0, SATA)
Store (Arg0, GPP3)
}
Name (PRS1, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,10,11,12,14,15}
})
Name (BUFA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{15}
})
Name (IPRA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{5,10,11}
})
Name (IPRB, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{5,10,11}
})
Name (IPRC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{5,10,11}
})
Name (IPRD, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{5,10,11}
})
Device (LNKA)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, One)
Method (_STA, 0, NotSerialized)
{
If (PIRA)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRS1)
}
Method (_DIS, 0, NotSerialized)
{
INTA (0x1F)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, One, IRQX)
ShiftLeft (One, PIRA, IRQX)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRA)
}
}
Device (LNKB)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x02)
Method (_STA, 0, NotSerialized)
{
If (PIRB)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRS1)
}
Method (_DIS, 0, NotSerialized)
{
INTB (0x1F)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, One, IRQX)
ShiftLeft (One, PIRB, IRQX)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRB)
}
}
Device (LNKC)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x03)
Method (_STA, 0, NotSerialized)
{
If (PIRC)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRS1)
}
Method (_DIS, 0, NotSerialized)
{
INTC (0x1F)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, One, IRQX)
ShiftLeft (One, PIRC, IRQX)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRC)
}
}
Device (LNKD)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x04)
Method (_STA, 0, NotSerialized)
{
If (PIRD)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRS1)
}
Method (_DIS, 0, NotSerialized)
{
INTD (0x1F)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, One, IRQX)
ShiftLeft (One, PIRD, IRQX)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRD)
}
}
Device (LNKE)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x05)
Method (_STA, 0, NotSerialized)
{
If (PIRE)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRS1)
}
Method (_DIS, 0, NotSerialized)
{
Store (0x1F, PIRE)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, One, IRQX)
ShiftLeft (One, PIRE, IRQX)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRE)
}
}
Device (LNKF)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x06)
Method (_STA, 0, NotSerialized)
{
If (PIRF)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRS1)
}
Method (_DIS, 0, NotSerialized)
{
Store (0x1F, PIRF)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, One, IRQX)
ShiftLeft (One, PIRF, IRQX)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRF)
}
}
Device (LNKG)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x07)
Method (_STA, 0, NotSerialized)
{
If (PIRG)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRS1)
}
Method (_DIS, 0, NotSerialized)
{
Store (0x1F, PIRG)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, One, IRQX)
ShiftLeft (One, PIRG, IRQX)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRG)
}
}
Device (LNKH)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x08)
Method (_STA, 0, NotSerialized)
{
If (PIRH)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRS1)
}
Method (_DIS, 0, NotSerialized)
{
Store (0x1F, PIRH)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, One, IRQX)
ShiftLeft (One, PIRH, IRQX)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRH)
}
}
Mutex (LSMI, 0x00)
Method (GSMI, 1, NotSerialized)
{
Acquire (LSMI, 0xFFFF)
Store (Arg0, APMD)
Store (0xE4, APMC)
Stall (0xFF)
Stall (0xFF)
Stall (0xFF)
Stall (0xFF)
Stall (0xFF)
Stall (0xFF)
Release (LSMI)
}
Method (S80H, 1, NotSerialized)
{
Acquire (LSMI, 0xFFFF)
Store (Arg0, APMD)
Store (0xE5, APMC)
Stall (0xFF)
Stall (0xFF)
Stall (0xFF)
Stall (0xFF)
Stall (0xFF)
Stall (0xFF)
Release (LSMI)
}
Method (BSMI, 1, NotSerialized)
{
Acquire (LSMI, 0xFFFF)
Store (Arg0, APMD)
Store (0xBE, APMC)
Stall (0xFF)
Release (LSMI)
}
Method (OSMI, 2, NotSerialized)
{
Acquire (LSMI, 0xFFFF)
Store (Arg0, OPR0)
Store (Arg1, OPR1)
Store (Zero, OPR2)
Store (0xC7, APMC)
Stall (0xFF)
Release (LSMI)
}
Method (MSMI, 2, NotSerialized)
{
Acquire (LSMI, 0xFFFF)
Store (Arg0, OPR0)
Store (Arg1, OPR1)
Store (One, OPR2)
Store (0xC7, APMC)
Stall (0xFF)
Release (LSMI)
}
Method (HSMI, 2, NotSerialized)
{
Acquire (LSMI, 0xFFFF)
Store (Arg0, OPR0)
Store (Arg1, OPR1)
Store (0x02, OPR2)
Store (0xC7, APMC)
Stall (0xFF)
Release (LSMI)
}
Method (FSMI, 2, NotSerialized)
{
Acquire (LSMI, 0xFFFF)
Store (Arg0, OPR0)
Store (Arg1, OPR1)
Store (0x03, OPR2)
Store (0xC7, APMC)
Stall (0xFF)
Release (LSMI)
}
Device (BAT1)
{
Name (_HID, EisaId ("PNP0C0A"))
Name (_UID, One)
Name (CBTI, Zero)
Name (PBTI, Zero)
Name (BTIN, Zero)
Name (BTCH, Zero)
Name (BIFI, Zero)
Name (SEL0, Zero)
Name (BCRI, Zero)
Name (PBIF, Package (0x0D)
{
One,
0x0FA0,
0x0FA0,
One,
0x2B5C,
0x012C,
Zero,
0x20,
0x20,
"PA3593U-1BRS",
"",
"LION ",
" "
})
Name (PBIX, Package (0x14)
{
Zero,
Zero,
0x0FA0,
0x0FA0,
One,
0x2B5C,
0x012C,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0x20,
0x20,
"PA3593U-1BRS",
" ",
"LION ",
" "
})
Name (PBST, Package (0x04)
{
Zero,
Ones,
Ones,
0x2710
})
Name (ERRC, Zero)
Name (_PCL, Package (0x01)
{
_SB
})
Method (_STA, 0, NotSerialized)
{
If (BTIN)
{
Return (0x1F)
}
Else
{
Return (0x0F)
}
}
Method (_BIF, 0, NotSerialized)
{
If (LEqual (BIFI, Zero))
{
UBIF ()
Store (One, BIFI)
}
Return (PBIF)
}
Method (_BIX, 0, NotSerialized)
{
If (LEqual (BIFI, Zero))
{
UBIX ()
Store (One, BIFI)
}
Return (PBIX)
}
Name (LFCC, 0x1130)
Method (UBIF, 0, NotSerialized)
{
If (ECOK)
{
Store (^^PCI0.LPC0.EC0.BTDC, Local0)
Store (^^PCI0.LPC0.EC0.LFCC, Local1)
Store (^^PCI0.LPC0.EC0.MBVG, Local2)
Store (^^PCI0.LPC0.EC0.BTMD, Local3)
Store (^^PCI0.LPC0.EC0.BTMN, Local4)
Store (^^PCI0.LPC0.EC0.BTSN, Local5)
Store (^^PCI0.LPC0.EC0.LION, Local6)
Store (Local0, Index (PBIF, One))
Store (Local1, Index (PBIF, 0x02))
Store (Local2, Index (PBIF, 0x04))
Store (Local1, LFCC)
If (LLess (Local1, 0x0FA0))
{
Store (0x64, Index (PBIF, 0x06))
}
Else
{
Store (0xC8, Index (PBIF, 0x06))
}
If (Local6)
{
Store ("NiMH", Index (PBIF, 0x0B))
}
Else
{
Store ("LION", Index (PBIF, 0x0B))
}
Store (^^PCI0.LPC0.EC0.MBPN, Index (PBIF, 0x09))
Store (^^PCI0.LPC0.EC0.MBMN, Index (PBIF, 0x0C))
Store (ITOS (ToBCD (Local5)), Index (PBIF, 0x0A))
}
}
Method (UBIX, 0, NotSerialized)
{
If (ECOK)
{
Store (^^PCI0.LPC0.EC0.BTDC, Index (PBIX, 0x02))
Store (^^PCI0.LPC0.EC0.LFCC, Index (PBIX, 0x03))
Store (^^PCI0.LPC0.EC0.MBVG, Index (PBIX, 0x05))
Store (^^PCI0.LPC0.EC0.LFCC, Local1)
Store (^^PCI0.LPC0.EC0.BTSN, Local5)
Store (Local1, LFCC)
If (LLess (Local1, 0x0FA0))
{
Store (0x64, Index (PBIX, 0x07))
}
Else
{
Store (0xC8, Index (PBIX, 0x07))
}
Store (^^PCI0.LPC0.EC0.LION, Local6)
If (Local6)
{
Store ("NiMH", Index (PBIX, 0x12))
}
Else
{
Store ("LION", Index (PBIX, 0x12))
}
Store (^^PCI0.LPC0.EC0.MCLC, Index (PBIX, 0x08))
Store (^^PCI0.LPC0.EC0.MBPN, Index (PBIX, 0x10))
Store (^^PCI0.LPC0.EC0.BTSN, Local5)
Store (ITOS (ToBCD (Local5)), Index (PBIF, 0x11))
Store (^^PCI0.LPC0.EC0.MBMN, Index (PBIX, 0x13))
}
}
Name (RCAP, Zero)
Method (_BST, 0, NotSerialized)
{
If (LEqual (BTIN, Zero))
{
Store (Zero, Index (PBST, Zero))
Store (Ones, Index (PBST, One))
Store (Ones, Index (PBST, 0x02))
Store (Ones, Index (PBST, 0x03))
Return (PBST)
}
If (ECOK)
{
Store (^^PCI0.LPC0.EC0.MBTC, Local0)
Sleep (0x32)
Store (^^PCI0.LPC0.EC0.MBRM, Local1)
Sleep (0x32)
Store (^^PCI0.LPC0.EC0.MBVG, Local2)
Sleep (0x32)
Store (^^PCI0.LPC0.EC0.MCUR, Local3)
Sleep (0x32)
Store (^^PCI0.LPC0.EC0.BTST, Local4)
Sleep (0x32)
Store (^^PCI0.LPC0.EC0.MBTF, Local5)
Sleep (0x32)
Store (^^PCI0.LPC0.EC0.ACDF, Local6)
Sleep (0x32)
If (Local6)
{
If (LEqual (Local5, One))
{
Store (Zero, Local7)
Store (LFCC, Local1)
}
Else
{
If (LEqual (Local0, One))
{
Store (0x02, Local7)
}
Else
{
Store (Zero, Local7)
}
}
}
Else
{
If (LAnd (Local4, One))
{
Store (One, Local7)
}
Else
{
Store (Zero, Local7)
}
}
And (Local4, 0x04, Local4)
If (LEqual (Local4, 0x04))
{
Or (Local7, Local4, Local7)
}
Store (Local7, Index (PBST, Zero))
If (LNot (And (Local1, 0x8000)))
{
Store (Local1, Index (PBST, 0x02))
}
If (LNot (And (Local2, 0x8000)))
{
Store (Local2, Index (PBST, 0x03))
}
If (LAnd (Local3, 0x8000))
{
If (LNotEqual (Local3, 0xFFFF))
{
Not (Local3, Local3)
Increment (Local3)
And (Local3, 0xFFFF, Local3)
}
}
Store (Local3, Index (PBST, One))
}
Return (PBST)
}
Method (BSTA, 0, NotSerialized)
{
If (ECOK)
{
Store (^^PCI0.LPC0.EC0.MBTS, Local0)
If (LEqual (Local0, One))
{
If (LEqual (BTIN, Zero))
{
Store (One, BTCH)
Store (Zero, BIFI)
}
Store (One, BTIN)
}
Else
{
If (LEqual (BTIN, One))
{
Store (One, BTCH)
Store (Zero, BIFI)
}
Store (Zero, BTIN)
}
}
}
}
Device (ACAD)
{
Name (_HID, "ACPI0003")
Name (_PCL, Package (0x01)
{
_SB
})
Name (ACST, Zero)
Method (_PSR, 0, NotSerialized)
{
If (ECOK)
{
Store (^^PCI0.LPC0.EC0.ACDF, ACST)
}
Else
{
Store (One, ACST)
}
If (ACST)
{
Store (One, Local0)
Store (Zero, ^^BAT1.BCRI)
}
Else
{
Store (Zero, Local0)
}
Return (Local0)
}
}
Device (LID)
{
Name (_HID, EisaId ("PNP0C0D"))
Name (LSTS, Zero)
Method (_LID, 0, NotSerialized)
{
If (LEqual (INS3, 0x55))
{
Store (Zero, INS3)
Return (One)
}
If (ECOK)
{
Store (^^PCI0.LPC0.EC0.LIDS, LSTS)
Store (LSTS, P80H)
}
Else
{
Store (One, LSTS)
}
Return (LSTS)
}
Name (_PRW, Package (0x02)
{
0x17,
0x05
})
Method (_PSW, 1, NotSerialized)
{
If (Arg0)
{
Store (One, SSTS)
}
Else
{
Store (Zero, SSTS)
}
}
}
Scope (\_TZ)
{
ThermalZone (THRM)
{
Method (_TMP, 0, NotSerialized)
{
If (\_SB.ECOK)
{
Store (\_SB.PCI0.LPC0.EC0.CTMP, Local0)
Return (Add (Multiply (Local0, 0x0A), 0x0AAC))
}
Return (0x0C3C)
}
Method (_PSL, 0, Serialized)
{
Return (Package (0x01)
{
\_PR.C000
})
}
Method (_CRT, 0, Serialized)
{
Return (0x0EC6)
}
Method (_PSV, 0, Serialized)
{
Return (0x0E80)
}
Name (_TC1, 0x02)
Name (_TC2, 0x03)
Name (_TSP, 0x28)
}
}
Device (BT)
{
Name (_HID, EisaId ("TOS6205"))
Method (_STA, 0, NotSerialized)
{
If (BTEN)
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Method (DUSB, 0, NotSerialized)
{
If (ECOK)
{
Store (Zero, ^^PCI0.LPC0.EC0.BLTH)
}
}
Method (AUSB, 0, NotSerialized)
{
If (ECOK)
{
Store (One, ^^PCI0.LPC0.EC0.BLTH)
}
}
Method (BTPO, 0, NotSerialized)
{
Store (BTEN, ^^PCI0.LPC0.EC0.BLTH)
FSMI (0x25, Zero)
}
Method (BTPF, 0, NotSerialized)
{
Store (BTEN, ^^PCI0.LPC0.EC0.BLTH)
FSMI (0x26, Zero)
}
Method (BTST, 0, NotSerialized)
{
If (ECOK)
{
Store (^^PCI0.LPC0.EC0.KSWH, Local0)
XOr (Local0, One, Local0)
Store (^^PCI0.LPC0.EC0.BTHE, Local7)
If (Local0)
{
ShiftLeft (Local7, 0x06, Local6)
ShiftLeft (Local7, 0x07, Local7)
Or (Local7, Local6, Local1)
Or (Local0, Local1, Local2)
Return (Local2)
}
Else
{
Return (Zero)
}
}
}
}
Device (QWMI)
{
Name (_HID, "PNP0C14")
Name (_UID, One)
Name (_WDG, Buffer (0x3C)
{
/* 0000 */ 0x69, 0xA4, 0x2B, 0xC6, 0x2C, 0x69, 0x4C, 0x4A,
/* 0008 */ 0x98, 0x69, 0x31, 0xB8, 0x3E, 0x0C, 0x76, 0x71,
/* 0010 */ 0x41, 0x41, 0x01, 0x00, 0x76, 0xF0, 0x58, 0x15,
/* 0018 */ 0x69, 0x3C, 0xDB, 0x4C, 0x80, 0xA5, 0xD2, 0xF3,
/* 0020 */ 0x9C, 0x62, 0x94, 0x9B, 0x41, 0x42, 0x01, 0x00,
/* 0028 */ 0x21, 0x12, 0x90, 0x05, 0x66, 0xD5, 0xD1, 0x11,
/* 0030 */ 0xB2, 0xF0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0x10,
/* 0038 */ 0x42, 0x41, 0x01, 0x00
})
Name (FCOD, Zero)
Name (RCOD, Zero)
Name (SFAI, Zero)
Name (SFLG, Zero)
Name (UFAI, Zero)
Name (UFLG, Zero)
Name (VERB, Buffer (0x0201)
{
0x00
})
CreateField (VERB, Zero, 0x08, QMJV)
CreateField (VERB, 0x08, 0x08, QMNV)
Name (FBUF, Buffer (0x0201)
{
0x00
})
CreateField (FBUF, Zero, 0x08, F000)
CreateField (FBUF, 0x08, 0x08, F001)
Name (RBUF, Buffer (0x0201)
{
0x00
})
Name (QBUF, Buffer (0x0201)
{
0x00
})
CreateField (QBUF, Zero, 0x08, Q000)
CreateField (QBUF, 0x08, 0x08, Q001)
CreateField (QBUF, 0x10, 0x08, Q002)
CreateField (QBUF, 0x18, 0x08, Q003)
CreateField (QBUF, 0x20, 0x08, Q004)
CreateField (QBUF, 0x28, 0x08, Q005)
CreateField (QBUF, 0x30, 0x08, Q006)
CreateField (QBUF, 0x38, 0x08, Q007)
CreateField (QBUF, 0x40, 0x08, Q008)
CreateField (QBUF, 0x48, 0x08, Q009)
CreateField (QBUF, 0x50, 0x08, Q010)
CreateField (QBUF, 0x58, 0x08, Q011)
CreateField (QBUF, 0x60, 0x08, Q012)
CreateField (QBUF, 0x68, 0x08, Q013)
CreateField (QBUF, 0x70, 0x08, Q014)
CreateField (QBUF, 0x78, 0x08, Q015)
CreateField (QBUF, 0x80, 0x08, Q016)
CreateField (QBUF, 0x88, 0x08, Q017)
CreateField (QBUF, 0x90, 0x08, Q018)
CreateField (QBUF, Zero, 0xA0, QL20)
CreateField (QBUF, Zero, 0x1000, Q512)
CreateField (QBUF, 0x1000, 0x08, QZZZ)
Method (WQAA, 1, NotSerialized)
{
Store (One, QMJV)
Store (One, QMNV)
Return (VERB)
}
Method (WSAA, 2, NotSerialized)
{
Store (Arg1, FBUF)
Store (F000, FCOD)
Store (F001, RCOD)
If (LEqual (RCOD, One))
{
RQ01 (Arg0)
}
If (LEqual (RCOD, 0x02))
{
RQ02 (Arg0)
}
If (LEqual (RCOD, 0x03))
{
RQ03 (Arg0)
}
If (LEqual (RCOD, 0x04))
{
RQ04 (Arg0)
}
If (LEqual (RCOD, 0x06))
{
RQ06 (Arg0)
}
If (LEqual (RCOD, 0x07))
{
RQ07 (Arg0)
}
If (LEqual (RCOD, 0x08))
{
RQ08 (Arg0)
}
If (LEqual (RCOD, 0x09))
{
RQ09 (Arg0)
}
If (LEqual (RCOD, 0x0A))
{
RQ0A (Arg0)
}
If (LEqual (RCOD, 0x0B))
{
RQ0B (Arg0)
}
If (LEqual (RCOD, 0x0C))
{
RQ0C (Arg0)
}
If (LEqual (RCOD, 0x12))
{
RQ12 (Arg0)
}
If (LEqual (RCOD, 0x13))
{
RQ13 (Arg0)
}
If (LEqual (RCOD, 0x14))
{
RQ14 (Arg0)
}
If (LEqual (RCOD, 0x15))
{
RQ15 (Arg0)
}
If (LEqual (RCOD, 0x16))
{
RQ16 (Arg0)
}
If (LEqual (RCOD, 0x17))
{
RQ17 (Arg0)
}
If (LEqual (RCOD, 0x19))
{
RQ19 (Arg0)
}
If (LEqual (RCOD, 0x20))
{
RQ20 (Arg0)
}
If (LEqual (RCOD, 0x21))
{
RQ21 (Arg0)
}
If (LEqual (RCOD, 0x22))
{
RQ22 (Arg0)
}
If (LEqual (RCOD, 0x24))
{
RQ23 (Arg0)
}
If (LEqual (RCOD, 0xF0))
{
RQF0 (Arg0)
}
Store (QBUF, RBUF)
}
Method (WQAB, 1, NotSerialized)
{
Return (RBUF)
}
Method (WSAB, 2, NotSerialized)
{
If (LEqual (RCOD, One))
{
RS01 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x02))
{
RS02 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x03))
{
RS03 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x04))
{
RS04 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x06))
{
RS06 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x07))
{
RS07 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x08))
{
RS08 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x09))
{
RS09 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x0A))
{
RS0A (Arg0, Arg1)
}
If (LEqual (RCOD, 0x0B))
{
RS0B (Arg0, Arg1)
}
If (LEqual (RCOD, 0x0C))
{
RS0C (Arg0, Arg1)
}
If (LEqual (RCOD, 0x12))
{
RS12 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x14))
{
RS14 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x15))
{
RS15 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x16))
{
RS16 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x17))
{
RS17 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x19))
{
RS19 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x20))
{
RS20 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x21))
{
RS21 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x22))
{
RS22 (Arg0, Arg1)
}
If (LEqual (RCOD, 0x24))
{
RS23 (Arg0, Arg1)
}
If (LEqual (RCOD, 0xF0))
{
RSF0 (Arg0, Arg1)
}
Store (QBUF, RBUF)
}
Method (RQ01, 1, NotSerialized)
{
If (LEqual (FCOD, 0x02))
{
OSMI (One, Zero)
Store (OWNS, Q512)
}
If (LEqual (FCOD, 0x05))
{
Store (SFAI, Q000)
}
If (LEqual (FCOD, 0x04))
{
If (LEqual (SFLG, Zero))
{
Store (One, Q000)
}
Else
{
Store (Zero, Q000)
}
}
}
Method (RS01, 2, NotSerialized)
{
Store (Arg1, Q512)
Store (Q512, OWNS)
If (LEqual (FCOD, 0x04))
{
Store (Zero, SFLG)
OSMI (One, 0x04)
Store (OWNS, Q512)
Store (Q000, SFLG)
If (LEqual (SFLG, Zero))
{
Store (One, Q000)
}
Else
{
Store (Zero, Q000)
}
}
If (LEqual (FCOD, One))
{
OSMI (One, 0x02)
}
If (LEqual (FCOD, 0x03))
{
Store (One, OG13)
OSMI (One, 0x03)
}
If (LEqual (FCOD, 0x05))
{
Store (OWNS, Q512)
Store (Q000, SFAI)
}
}
Method (RQ02, 1, NotSerialized)
{
If (LEqual (FCOD, 0x02))
{
OSMI (0x02, Zero)
Store (OWNS, Q512)
}
If (LEqual (FCOD, 0x05))
{
Store (UFAI, Q000)
}
If (LEqual (FCOD, 0x04))
{
If (LEqual (UFLG, Zero))
{
Store (One, Q000)
}
Else
{
Store (Zero, Q000)
}
}
}
Method (RS02, 2, NotSerialized)
{
Store (Arg1, OWNS)
If (LEqual (FCOD, 0x04))
{
Store (Zero, UFLG)
OSMI (0x02, 0x04)
Store (OWNS, Q512)
Store (Q000, UFLG)
}
If (LEqual (FCOD, One))
{
OSMI (0x02, 0x02)
}
If (LEqual (FCOD, 0x03))
{
OSMI (0x02, 0x03)
}
If (LEqual (FCOD, 0x05))
{
Store (OWNS, Q512)
Store (Q000, UFAI)
}
}
Method (RQ03, 1, NotSerialized)
{
If (LEqual (FCOD, One))
{
Store (Zero, Q000)
}
Else
{
Store (OG04, Q000)
}
}
Method (RS03, 2, NotSerialized)
{
Store (Arg1, OG04)
OSMI (0x03, One)
}
Method (RQ04, 1, NotSerialized)
{
If (LEqual (FCOD, One))
{
Store (Zero, Q000)
Store (0x08, Q001)
Store (0x12, Q002)
Store (0x04, Q003)
Store (0x11, Q004)
Store (0x3F, Q005)
}
Else
{
OSMI (0x04, Zero)
Store (OWNS, Q512)
}
}
Method (RS04, 2, NotSerialized)
{
Store (Arg1, OWNS)
OSMI (0x04, One)
}
Method (RQ06, 1, NotSerialized)
{
If (LEqual (FCOD, One))
{
Store (Zero, Q000)
}
Else
{
Store (OG05, Q000)
}
}
Method (RS06, 2, NotSerialized)
{
Store (Arg1, OG05)
OSMI (0x06, One)
}
Method (RQ07, 1, NotSerialized)
{
If (LEqual (FCOD, One))
{
Store (One, Q000)
}
Else
{
Store (OG00, Q000)
}
}
Method (RS07, 2, NotSerialized)
{
Store (Arg1, OG00)
OSMI (0x07, One)
}
Method (RQ08, 1, NotSerialized)
{
If (LEqual (FCOD, One))
{
Store (One, Q000)
}
Else
{
Store (OG01, Q000)
}
}
Method (RS08, 2, NotSerialized)
{
Store (Arg1, OG01)
OSMI (0x08, One)
}
Method (RQ09, 1, NotSerialized)
{
OSMI (Zero, Zero)
Store (OWNS, Q512)
Store (Zero, QZZZ)
}
Method (RS09, 2, NotSerialized)
{
Store (Arg1, OWNS)
OSMI (Zero, One)
}
Method (RQ0A, 1, NotSerialized)
{
Store (OG15, Q000)
}
Method (RS0A, 2, NotSerialized)
{
}
Method (RQ0B, 1, NotSerialized)
{
Store (OG13, Q000)
}
Method (RS0B, 2, NotSerialized)
{
Store (Arg1, OG13)
OSMI (0x0A, One)
}
Method (RQ0C, 1, NotSerialized)
{
OSMI (0x0B, Zero)
Store (OWNS, Q512)
}
Method (RS0C, 2, NotSerialized)
{
}
Method (RQ12, 1, NotSerialized)
{
OSMI (0x10, Zero)
Store (OWNS, Q512)
Store (Zero, Q001)
Store (Zero, Q003)
Store (TPDV, Q004)
Store (One, Q005)
Store (Zero, Q006)
Store (Zero, Q007)
Store (^^PCI0.LPC0.EC0.PLID, Q008)
Store (Zero, Q009)
Store (Zero, Q018)
}
Method (RS12, 2, NotSerialized)
{
}
Method (RQ13, 1, NotSerialized)
{
OSMI (0x12, Zero)
Store (DVDI, QL20)
}
Method (RQ14, 1, NotSerialized)
{
If (LEqual (FCOD, One))
{
Store (One, Q000)
}
Else
{
Store (OG10, Q000)
}
}
Method (RS14, 2, NotSerialized)
{
Store (Arg1, OG10)
OSMI (0x13, One)
}
Method (RQ15, 1, NotSerialized)
{
If (LEqual (FCOD, One))
{
Store (Zero, Q000)
}
Else
{
Store (OG02, Q000)
}
}
Method (RS15, 2, NotSerialized)
{
Store (Arg1, OG02)
OSMI (0x14, One)
}
Method (RQ16, 1, NotSerialized)
{
}
Method (RS16, 2, NotSerialized)
{
}
Method (RQ17, 1, NotSerialized)
{
If (LEqual (FCOD, One))
{
Store (One, Q000)
}
Else
{
Store (OG11, Q000)
}
}
Method (RS17, 2, NotSerialized)
{
Store (Arg1, OG11)
OSMI (0x16, One)
}
Method (RQ19, 1, NotSerialized)
{
Store (^^PCI0.LPC0.EC0.BLVL, Q001)
Store (0x08, Q000)
Store (One, Q002)
}
Name (BLVL, Zero)
Method (RS19, 2, NotSerialized)
{
Store (Arg1, Q512)
Store (Q000, BLVL)
Store (BLVL, ^^PCI0.LPC0.EC0.BLVL)
^^PCI0.LPC0.EC0.SVBN ()
}
Method (RQ20, 1, NotSerialized)
{
If (LEqual (FCOD, One))
{
Store (One, Q000)
}
Else
{
Store (OG07, Q000)
}
}
Method (RS20, 2, NotSerialized)
{
Store (Arg1, OG07)
OSMI (0x18, One)
}
Method (RQ21, 1, NotSerialized)
{
If (LEqual (FCOD, One))
{
Store (Zero, Q000)
}
Else
{
Store (OG08, Q000)
}
}
Method (RS21, 2, NotSerialized)
{
Store (Arg1, OG08)
OSMI (0x19, One)
}
Method (RQ22, 1, NotSerialized)
{
If (LEqual (FCOD, One))
{
Store (One, Q000)
}
Else
{
Store (OG09, Q000)
}
}
Method (RS22, 2, NotSerialized)
{
Store (Arg1, OG09)
OSMI (0x1A, One)
}
Method (RQF0, 1, NotSerialized)
{
}
Method (RSF0, 2, NotSerialized)
{
Store (Arg1, Q512)
If (LEqual (ToInteger (Q000), One))
{
OSMI (0x17, One)
}
}
Method (RQ23, 1, NotSerialized)
{
If (LEqual (FCOD, One))
{
Store (Zero, Q000)
}
Else
{
Store (OG16, Q000)
}
}
Method (RS23, 2, NotSerialized)
{
Store (ToInteger (Arg1), OG16)
OSMI (0x1C, One)
}
Name (WQBA, Buffer (0x02C0)
{
/* 0000 */ 0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,
/* 0008 */ 0xB0, 0x02, 0x00, 0x00, 0xC0, 0x08, 0x00, 0x00,
/* 0010 */ 0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,
/* 0018 */ 0x28, 0x5F, 0x84, 0x00, 0x01, 0x06, 0x18, 0x42,
/* 0020 */ 0x10, 0x05, 0x10, 0x92, 0x28, 0x81, 0x42, 0x04,
/* 0028 */ 0x12, 0x4F, 0x24, 0x51, 0x30, 0x28, 0x0D, 0x20,
/* 0030 */ 0x92, 0x04, 0x21, 0x17, 0x4C, 0x4C, 0x80, 0x10,
/* 0038 */ 0x58, 0x0B, 0x30, 0x2F, 0x40, 0xB7, 0x00, 0xC3,
/* 0040 */ 0x02, 0x6C, 0x0B, 0x30, 0x2D, 0xC0, 0x31, 0x90,
/* 0048 */ 0xFA, 0xF7, 0x87, 0x28, 0x0D, 0x44, 0x9B, 0x10,
/* 0050 */ 0x01, 0x91, 0x02, 0x21, 0xA1, 0x02, 0x94, 0x0B,
/* 0058 */ 0xF0, 0x2D, 0x40, 0x3B, 0xA2, 0x24, 0x0B, 0xB0,
/* 0060 */ 0x0C, 0x23, 0x02, 0x7B, 0x15, 0x60, 0x53, 0x80,
/* 0068 */ 0x49, 0x34, 0x04, 0x41, 0x39, 0xC3, 0x40, 0xC1,
/* 0070 */ 0x1B, 0x90, 0x0D, 0x82, 0xC9, 0x1D, 0x04, 0x4A,
/* 0078 */ 0xCC, 0x68, 0xC8, 0x0C, 0x3A, 0x9F, 0x8B, 0xE0,
/* 0080 */ 0x4F, 0xA2, 0x70, 0x01, 0xD2, 0x31, 0x34, 0x82,
/* 0088 */ 0x23, 0x4A, 0xD0, 0xA3, 0x00, 0xD9, 0x28, 0x52,
/* 0090 */ 0x3C, 0x27, 0x81, 0x14, 0x24, 0xC0, 0x21, 0x16,
/* 0098 */ 0xC1, 0x3B, 0x11, 0x03, 0x79, 0x0E, 0x71, 0x3C,
/* 00A0 */ 0x20, 0x6B, 0x46, 0x14, 0x7E, 0x94, 0x04, 0x46,
/* 00A8 */ 0x3B, 0x0E, 0x8C, 0x8C, 0x11, 0x10, 0xAB, 0xA8,
/* 00B0 */ 0x9A, 0x48, 0x02, 0xBB, 0x1F, 0x81, 0xB4, 0x09,
/* 00B8 */ 0x50, 0x26, 0x40, 0xA1, 0x00, 0x83, 0xA3, 0x14,
/* 00C0 */ 0x4A, 0x73, 0x02, 0x6C, 0x61, 0x10, 0xA4, 0x60,
/* 00C8 */ 0x51, 0x22, 0x9D, 0x41, 0x88, 0x43, 0x88, 0x12,
/* 00D0 */ 0xA9, 0x38, 0x3C, 0xEA, 0x4C, 0x80, 0x31, 0x5C,
/* 00D8 */ 0xE1, 0x04, 0x69, 0x51, 0x80, 0x30, 0x4C, 0x79,
/* 00E0 */ 0x03, 0x13, 0x44, 0xA8, 0xF6, 0x07, 0x41, 0x86,
/* 00E8 */ 0x8D, 0x1B, 0xBF, 0xE7, 0xE6, 0x01, 0x9C, 0x9B,
/* 00F0 */ 0xC7, 0xC4, 0x26, 0xDB, 0xE9, 0x58, 0x05, 0x5E,
/* 00F8 */ 0x3C, 0xAA, 0x30, 0x0E, 0x22, 0x81, 0x83, 0x3D,
/* 0100 */ 0x0A, 0x64, 0x01, 0x44, 0x91, 0xE0, 0x51, 0xA3,
/* 0108 */ 0x4E, 0x70, 0xF0, 0x9E, 0xA4, 0x87, 0x7C, 0x94,
/* 0110 */ 0x27, 0x10, 0xE4, 0x20, 0xAD, 0xF3, 0x48, 0x40,
/* 0118 */ 0xC6, 0xC0, 0xB0, 0x12, 0x74, 0x70, 0x0C, 0x80,
/* 0120 */ 0xE2, 0x1A, 0x50, 0x97, 0x83, 0xC7, 0x00, 0x36,
/* 0128 */ 0xEA, 0x04, 0xFF, 0xFF, 0x70, 0x7C, 0xBC, 0xF6,
/* 0130 */ 0x7E, 0x09, 0x20, 0x23, 0x37, 0x20, 0x1B, 0xD1,
/* 0138 */ 0xC1, 0x61, 0x07, 0x79, 0x32, 0x47, 0x56, 0xAA,
/* 0140 */ 0x00, 0xB3, 0xC7, 0x03, 0x0D, 0x34, 0xC1, 0xF1,
/* 0148 */ 0x18, 0xD9, 0xF3, 0xE9, 0x19, 0x92, 0x1C, 0x0D,
/* 0150 */ 0x3C, 0x08, 0x3E, 0x32, 0x43, 0x7B, 0xFA, 0xA7,
/* 0158 */ 0xF5, 0x62, 0xE0, 0x93, 0xC2, 0x61, 0xB1, 0x71,
/* 0160 */ 0x3F, 0x4A, 0xB0, 0x71, 0xC0, 0xBF, 0x01, 0x1C,
/* 0168 */ 0xF7, 0xE3, 0x81, 0xB1, 0xCF, 0xD3, 0xC7, 0x05,
/* 0170 */ 0x51, 0xCB, 0xC8, 0xE2, 0x3C, 0x0E, 0xD4, 0x45,
/* 0178 */ 0xC1, 0x83, 0x8D, 0x10, 0xD1, 0xD7, 0x88, 0x04,
/* 0180 */ 0xA3, 0x43, 0x68, 0xEC, 0x16, 0x35, 0x5E, 0x7A,
/* 0188 */ 0xA0, 0xE0, 0x67, 0x88, 0xF7, 0x0A, 0x9F, 0x12,
/* 0190 */ 0x82, 0x1E, 0xBB, 0x87, 0x12, 0xD6, 0x23, 0xF2,
/* 0198 */ 0x31, 0x02, 0xB8, 0x9D, 0x03, 0xE0, 0x1F, 0x0B,
/* 01A0 */ 0x3C, 0x32, 0x3E, 0x22, 0x8F, 0xF7, 0xD4, 0x8B,
/* 01A8 */ 0xA5, 0xF1, 0x61, 0x41, 0xB2, 0xC6, 0x0D, 0xDD,
/* 01B0 */ 0xFA, 0x69, 0x80, 0x8C, 0xE1, 0x19, 0xC0, 0x22,
/* 01B8 */ 0x61, 0xD1, 0xE3, 0xB6, 0x5F, 0x01, 0x08, 0xA1,
/* 01C0 */ 0xCB, 0x9C, 0x84, 0x0E, 0x11, 0x11, 0x12, 0x44,
/* 01C8 */ 0x0F, 0x74, 0x84, 0xB8, 0xC9, 0xE1, 0xFE, 0xFF,
/* 01D0 */ 0x93, 0xE3, 0x43, 0xC0, 0x8D, 0xD9, 0x43, 0xE0,
/* 01D8 */ 0xA7, 0x88, 0x33, 0x38, 0x9E, 0xB3, 0x39, 0x84,
/* 01E0 */ 0xE3, 0x89, 0x72, 0x16, 0x07, 0xE4, 0xE9, 0x1A,
/* 01E8 */ 0xE1, 0x04, 0x1E, 0x00, 0x1E, 0x52, 0x3C, 0x02,
/* 01F0 */ 0x4F, 0xEA, 0x2C, 0x5E, 0x26, 0x3C, 0x02, 0x8C,
/* 01F8 */ 0xA4, 0xE3, 0x0B, 0x95, 0xFD, 0x14, 0x90, 0x08,
/* 0200 */ 0x18, 0xD4, 0x09, 0x06, 0x78, 0x63, 0x3E, 0x2B,
/* 0208 */ 0x80, 0x65, 0xA8, 0xC7, 0x18, 0xE8, 0x44, 0x3C,
/* 0210 */ 0x16, 0x23, 0xC6, 0x8A, 0xF2, 0x8C, 0x10, 0xFF,
/* 0218 */ 0xBC, 0xC2, 0x44, 0x78, 0x43, 0x08, 0xE4, 0x03,
/* 0220 */ 0x84, 0x8F, 0x2F, 0xB0, 0x2F, 0x2B, 0xAD, 0x21,
/* 0228 */ 0xE8, 0x60, 0x50, 0xE3, 0x51, 0x43, 0x27, 0x16,
/* 0230 */ 0x5F, 0x5B, 0x7C, 0x86, 0xF1, 0xC9, 0xC5, 0xA7,
/* 0238 */ 0x17, 0x4F, 0xE0, 0x95, 0x20, 0x4A, 0xC0, 0x78,
/* 0240 */ 0x4F, 0x01, 0x41, 0xA3, 0x04, 0x7F, 0x8A, 0x09,
/* 0248 */ 0x1B, 0x32, 0xE0, 0xCB, 0x0C, 0x03, 0x89, 0x19,
/* 0250 */ 0xE2, 0x89, 0xE3, 0xF1, 0x05, 0xCC, 0x71, 0x8E,
/* 0258 */ 0x2F, 0xA0, 0xF9, 0xFF, 0x1F, 0x5F, 0x00, 0xBF,
/* 0260 */ 0x22, 0x8E, 0x2F, 0xE8, 0xC1, 0x59, 0xEB, 0xF8,
/* 0268 */ 0xC9, 0x51, 0xE1, 0x34, 0x1C, 0xFA, 0xF4, 0x02,
/* 0270 */ 0xBA, 0x23, 0x04, 0xF0, 0x39, 0xBA, 0x00, 0xCF,
/* 0278 */ 0x6B, 0x85, 0x8F, 0x2E, 0x70, 0xFE, 0xFF, 0x47,
/* 0280 */ 0x17, 0xBC, 0xD2, 0x69, 0x09, 0xFC, 0x10, 0x8D,
/* 0288 */ 0x7E, 0x44, 0x67, 0xF0, 0xAA, 0xC3, 0xAE, 0x0B,
/* 0290 */ 0x3E, 0xB9, 0x00, 0x23, 0x85, 0x36, 0x7D, 0x6A,
/* 0298 */ 0x34, 0x6A, 0xD5, 0xA0, 0x4C, 0x8D, 0x32, 0x0D,
/* 02A0 */ 0x6A, 0xF5, 0xA9, 0xD4, 0x98, 0xB1, 0x73, 0x8B,
/* 02A8 */ 0xE5, 0x0C, 0x53, 0x83, 0xB5, 0x78, 0x10, 0x1A,
/* 02B0 */ 0x85, 0x42, 0x20, 0x96, 0x4A, 0x27, 0x10, 0x07,
/* 02B8 */ 0x03, 0xA1, 0xF1, 0x3C, 0x80, 0xB0, 0xFF, 0x3F
})
}
Device (TVAP)
{
Name (_HID, EisaId ("TOS1900"))
Method (_STA, 0, NotSerialized)
{
If (LGreaterEqual (MYOS, 0x07D6))
{
Return (0x0B)
}
Else
{
Return (Zero)
}
}
Name (_DDN, "VALZeneral")
Name (VZOK, Zero)
Name (VBFG, 0x0A)
Name (VALF, Zero)
Name (VRFS, Zero)
Name (SPFG, Zero)
Name (INTC, Zero)
Method (ENAB, 0, NotSerialized)
{
Store (One, VZOK)
Store (^^PCI0.LPC0.EC0.RFST, Local0)
Store (Local0, VRFS)
}
Method (EVNT, 1, NotSerialized)
{
While (VZOK)
{
If (LEqual (VZOK, One))
{
Store (Arg0, VZOK)
Notify (TVAP, 0x80)
Return (Zero)
}
Else
{
If (LEqual (VALF, 0x1E))
{
Store (One, VZOK)
Store (Zero, VALF)
Return (Zero)
}
Sleep (0x64)
Add (VALF, One, VALF)
}
}
}
Name (HMBB, Buffer (0x1C) {})
CreateField (HMBB, Zero, 0x60, HMPN)
CreateField (HMBB, 0x60, 0x60, HMMN)
CreateField (HMBB, 0xC0, 0x10, HMMD)
CreateField (HMBB, 0xD0, 0x10, HMSN)
Name (HMBT, Package (0x06)
{
Buffer (0x1C) {},
Zero,
Zero,
Zero,
Zero,
Zero
})
Method (ABCD, 0, NotSerialized)
{
Return (Zero)
}
Method (HMB1, 0, NotSerialized)
{
If (^^PCI0.LPC0.EC0.MBTS)
{
Store (^^PCI0.LPC0.EC0.MBPN, HMPN)
Store (^^PCI0.LPC0.EC0.MBMN, HMMN)
Store (^^PCI0.LPC0.EC0.MBMD, HMMD)
Store (^^PCI0.LPC0.EC0.BTSN, HMSN)
Store (ToBCD (^^PCI0.LPC0.EC0.MCLC), Index (HMBT, One))
Store (HMBB, Index (HMBT, Zero))
Return (HMBT)
}
Else
{
Return (Zero)
}
}
Method (HMB2, 0, NotSerialized)
{
Return (Zero)
}
Method (INFO, 0, Serialized)
{
If (LEqual (VZOK, 0x02))
{
Store (^^PCI0.LPC0.EC0.VEVT, Local0)
Store (One, VZOK)
Return (Local0)
}
Else
{
If (LEqual (VZOK, 0x03))
{
Store (^^PCI0.LPC0.EC0.FEVT, Local0)
Store (One, VZOK)
Return (Local0)
}
Else
{
If (LEqual (VZOK, 0x04))
{
Store (^^PCI0.LPC0.EC0.NEVT, Local0)
Store (One, VZOK)
Return (Local0)
}
Else
{
If (LEqual (VZOK, 0xB0))
{
Store (0x19B0, Local0)
Store (One, VZOK)
Return (Local0)
}
Else
{
If (LEqual (VZOK, 0xB1))
{
Store (0x19B1, Local0)
Store (One, VZOK)
Return (Local0)
}
Else
{
If (LEqual (VZOK, 0xB2))
{
Store (0x19B2, Local0)
Store (One, VZOK)
Return (Local0)
}
Else
{
If (LEqual (VZOK, 0xB3))
{
Store (0x19B3, Local0)
Store (One, VZOK)
Return (Local0)
}
Else
{
If (LEqual (VZOK, 0xB6))
{
Store (0x19B6, Local0)
Store (One, VZOK)
Return (Local0)
}
Else
{
If (LEqual (VZOK, 0xB7))
{
Store (0x19B7, Local0)
Store (One, VZOK)
Return (Local0)
}
Else
{
If (LEqual (VZOK, 0xB4))
{
Store (0x0401, Local0)
Store (One, VZOK)
Return (Local0)
}
Else
{
If (LEqual (VZOK, 0xB5))
{
Store (0x0402, Local0)
Store (One, VZOK)
Return (Local0)
}
Else
{
Return (Zero)
}
}
}
}
}
}
}
}
}
}
}
}
Name (VALI, Package (0x06)
{
Ones,
Ones,
Ones,
Ones,
Ones,
Ones
})
Name (VALO, Package (0x06)
{
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
Name (GWFS, Package (0x06)
{
0xFE00,
0x56,
Zero,
One,
Zero,
Zero
})
Name (SWRN, Package (0x06)
{
0xFF00,
0x56,
One,
0x0200,
Zero,
Zero
})
Name (SWRF, Package (0x06)
{
0xFF00,
0x56,
Zero,
0x0200,
Zero,
Zero
})
Name (SURN, Package (0x06)
{
0xFF00,
0x56,
One,
0x0800,
Zero,
Zero
})
Name (SURF, Package (0x06)
{
0xFF00,
0x56,
Zero,
0x0800,
Zero,
Zero
})
Name (DI3G, Package (0x06)
{
0xFE00,
0x56,
Zero,
0x03,
Zero,
Zero
})
Name (TGRN, Package (0x06)
{
0xFF00,
0x56,
One,
0x2000,
Zero,
Zero
})
Name (TGRF, Package (0x06)
{
0xFF00,
0x56,
Zero,
0x2000,
Zero,
Zero
})
Name (TGPN, Package (0x06)
{
0xFF00,
0x56,
One,
0x4000,
Zero,
Zero
})
Name (TGPF, Package (0x06)
{
0xFF00,
0x56,
Zero,
0x4000,
Zero,
Zero
})
Name (GTPS, Package (0x06)
{
0xF300,
0x050E,
Zero,
Zero,
Zero,
Zero
})
Name (STPD, Package (0x06)
{
0xF400,
0x050E,
Zero,
Zero,
Zero,
Zero
})
Name (STPE, Package (0x06)
{
0xF400,
0x050E,
One,
Zero,
Zero,
Zero
})
Name (GFBS, Package (0x06)
{
0xF300,
0x015D,
Zero,
Zero,
Zero,
Zero
})
Name (FBME, Package (0x06)
{
0xF400,
0x015D,
One,
Zero,
Zero,
Zero
})
Name (FBMD, Package (0x06)
{
0xF400,
0x015D,
Zero,
Zero,
Zero,
Zero
})
Name (FNDS, Package (0x06)
{
0xFF00,
0x5A,
Zero,
One,
Zero,
Zero
})
Name (FNTP, Package (0x06)
{
0xFF00,
0x5A,
One,
One,
Zero,
Zero
})
Name (FNTC, Package (0x06)
{
0xFF00,
0x5A,
0x02,
One,
Zero,
Zero
})
Name (GCCM, Package (0x06)
{
0xFE00,
0x7F,
Zero,
Zero,
Zero,
Zero
})
Name (SCMP, Package (0x06)
{
0xFF00,
0x7F,
Zero,
Zero,
Zero,
Zero
})
Name (SCMS, Package (0x06)
{
0xFF00,
0x7F,
One,
Zero,
Zero,
Zero
})
Name (CESS, Package (0x06)
{
0xFE00,
0x62,
Zero,
Zero,
Zero,
Zero
})
Name (GPNL, Package (0x06)
{
0xFE00,
0x11,
Zero,
Zero,
Zero,
Zero
})
Name (SHK0, Package (0x06)
{
0xFF00,
0xC000,
Zero,
Zero,
Zero,
Zero
})
Name (SHK1, Package (0x06)
{
0xFF00,
0xC000,
Zero,
One,
Zero,
Zero
})
Name (GHKM, Package (0x06)
{
0xFE00,
0xC000,
0x03,
Zero,
Zero,
Zero
})
Name (SBED, Package (0x06)
{
0xFF00,
0x1E,
One,
Zero,
Zero,
Zero
})
Name (SBEE, Package (0x06)
{
0xFF00,
0x1E,
0x03,
Zero,
Zero,
Zero
})
Name (SHEE, Package (0x06)
{
0xFF00,
0x1E,
0x09,
Zero,
Zero,
Zero
})
Name (SBHE, Package (0x06)
{
0xFF00,
0x1E,
0x0B,
Zero,
Zero,
Zero
})
Name (GBEM, Package (0x06)
{
0xFE00,
0x1E,
Zero,
Zero,
Zero,
Zero
})
Name (HPG1, Package (0x06)
{
0xFE00,
0x6D,
Zero,
Zero,
Zero,
Zero
})
Name (HPG2, Package (0x06)
{
0xFE00,
0x6D,
Zero,
One,
Zero,
Zero
})
Name (HPG3, Package (0x06)
{
0xFE00,
0x6D,
Zero,
0x0200,
Zero,
Zero
})
Name (HPG4, Package (0x06)
{
0xFE00,
0x6D,
Zero,
0x0201,
Zero,
Zero
})
Name (HPS1, Package (0x06)
{
0xFE00,
0x6D,
Zero,
0x0100,
Zero,
Zero
})
Name (HPS2, Package (0x06)
{
0xFE00,
0x6D,
Zero,
0x0102,
Zero,
Zero
})
Name (RMGW, Package (0x06)
{
0xFE00,
0x47,
Zero,
Zero,
Zero,
Zero
})
Name (RMCW, Package (0x06)
{
0xFF00,
0x47,
0x5A00,
Zero,
Zero,
Zero
})
Name (RMGS, Package (0x06)
{
0xFE00,
0x61,
Zero,
Zero,
Zero,
Zero
})
Name (RMSD, Package (0x06)
{
0xFF00,
0x61,
Zero,
Zero,
Zero,
Zero
})
Name (RMSE, Package (0x06)
{
0xFF00,
0x61,
One,
Zero,
Zero,
Zero
})
Name (PANS, Package (0x06)
{
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
Name (PT01, Package (0x06)
{
0x02,
0x80,
One,
0xE0,
Zero,
Zero
})
Name (PT02, Package (0x06)
{
0x03,
0x20,
0x02,
0x58,
Zero,
Zero
})
Name (PT03, Package (0x06)
{
0x04,
Zero,
0x03,
Zero,
Zero,
Zero
})
Name (PT04, Package (0x06)
{
0x04,
Zero,
0x02,
0x58,
Zero,
Zero
})
Name (PT05, Package (0x06)
{
0x03,
0x20,
One,
0xE0,
Zero,
Zero
})
Name (PT06, Package (0x06)
{
0x05,
Zero,
0x04,
Zero,
Zero,
Zero
})
Name (PT07, Package (0x06)
{
0x05,
0x78,
0x04,
0x1A,
Zero,
Zero
})
Name (PT08, Package (0x06)
{
0x06,
0x40,
0x04,
0xB0,
Zero,
Zero
})
Name (PT09, Package (0x06)
{
0x05,
Zero,
0x02,
0x58,
Zero,
Zero
})
Name (PT0A, Package (0x06)
{
0x05,
Zero,
0x03,
0x20,
Zero,
Zero
})
Name (PT0B, Package (0x06)
{
0x05,
0xA0,
0x03,
0x84,
Zero,
Zero
})
Name (PT0C, Package (0x06)
{
0x06,
0x90,
0x04,
0x1A,
Zero,
Zero
})
Name (PT0D, Package (0x06)
{
0x07,
0x80,
0x04,
0xB0,
Zero,
Zero
})
Name (PT0E, Package (0x06)
{
0x05,
Zero,
0x03,
Zero,
Zero,
Zero
})
Name (PT0F, Package (0x06)
{
0x07,
0x80,
0x04,
0x38,
Zero,
Zero
})
Name (PT10, Package (0x06)
{
0x06,
0x90,
0x03,
0xB1,
Zero,
Zero
})
Name (PT11, Package (0x06)
{
0x05,
0x56,
0x03,
Zero,
Zero,
Zero
})
Name (PT12, Package (0x06)
{
0x06,
0x40,
0x03,
0x84,
Zero,
Zero
})
Name (PT13, Package (0x06)
{
0x04,
Zero,
0x02,
0x40,
Zero,
Zero
})
Method (MTCH, 2, NotSerialized)
{
If (LNotEqual (DerefOf (Index (Arg0, Zero)), DerefOf (Index (
Arg1, Zero))))
{
Return (Zero)
}
If (LNotEqual (DerefOf (Index (Arg0, One)), DerefOf (Index (
Arg1, One))))
{
Return (Zero)
}
If (LNotEqual (DerefOf (Index (Arg0, 0x02)), DerefOf (Index (
Arg1, 0x02))))
{
Return (Zero)
}
If (LNotEqual (DerefOf (Index (Arg0, 0x03)), DerefOf (Index (
Arg1, 0x03))))
{
Return (Zero)
}
If (LNotEqual (DerefOf (Index (Arg0, 0x04)), DerefOf (Index (
Arg1, 0x04))))
{
Return (Zero)
}
If (LNotEqual (DerefOf (Index (Arg0, 0x05)), DerefOf (Index (
Arg1, 0x05))))
{
Return (Zero)
}
Return (One)
}
Method (SPFC, 6, Serialized)
{
Name (_T_J, Zero)
Name (_T_I, Zero)
Name (_T_H, Zero)
Name (_T_G, Zero)
Name (_T_F, Zero)
Name (_T_E, Zero)
Name (_T_D, Zero)
Name (_T_C, Zero)
Name (_T_B, Zero)
Name (_T_A, Zero)
Name (_T_9, Zero)
Name (_T_8, Zero)
Name (_T_7, Zero)
Name (_T_6, Zero)
Name (_T_5, Zero)
Name (_T_4, Zero)
Name (_T_3, Zero)
Name (_T_2, Zero)
Name (_T_1, Zero)
Name (_T_0, Zero)
Store (ToInteger (Arg0), Index (VALI, Zero))
Store (ToInteger (Arg1), Index (VALI, One))
Store (ToInteger (Arg2), Index (VALI, 0x02))
Store (ToInteger (Arg3), Index (VALI, 0x03))
Store (ToInteger (Arg4), Index (VALI, 0x04))
Store (ToInteger (Arg5), Index (VALI, 0x05))
Store (Zero, Index (VALO, Zero))
Store (Zero, Index (VALO, One))
Store (Zero, Index (VALO, 0x02))
Store (Zero, Index (VALO, 0x03))
Store (Zero, Index (VALO, 0x04))
Store (Zero, Index (VALO, 0x05))
Store (^^PCI0.LPC0.EC0.POLG, Local0)
If (LEqual (Local0, Zero))
{
Store (One, ^^PCI0.LPC0.EC0.POLG)
}
Store (ToInteger (Arg1), Local0)
And (Local0, 0x00FFFFFF, Local0)
While (One)
{
Store (ToInteger (Local0), _T_0)
If (LEqual (_T_0, 0x56))
{
If (MTCH (VALI, GWFS))
{
Store (^^PCI0.LPC0.EC0.KSWH, Local0)
XOr (Local0, One, Local0)
Store (^^PCI0.LPC0.EC0.W3GE, Local2)
Store (VRFS, Local1)
ShiftLeft (Local1, 0x09, Local1)
ShiftLeft (Local2, 0x0D, Local2)
If (Local0)
{
Or (Local0, Local1, Local0)
Or (Local0, Local2, Local0)
}
Store (Local0, Index (VALO, 0x02))
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, SWRN))
{
FSMI (0x23, Zero)
Store (Zero, Index (VALO, Zero))
Store (WLAN, ^^PCI0.LPC0.EC0.WLAN)
Store (One, VRFS)
}
Else
{
If (MTCH (VALI, SWRF))
{
FSMI (0x24, Zero)
Store (Zero, Index (VALO, Zero))
Store (WLAN, ^^PCI0.LPC0.EC0.WLAN)
Store (Zero, VRFS)
}
Else
{
If (MTCH (VALI, SURN))
{
FSMI (0x25, Zero)
Store (Zero, Index (VALO, Zero))
Store (BTEN, ^^PCI0.LPC0.EC0.BLTH)
Store (One, VRFS)
}
Else
{
If (MTCH (VALI, SURF))
{
FSMI (0x26, Zero)
Store (Zero, Index (VALO, Zero))
Store (BTEN, ^^PCI0.LPC0.EC0.BLTH)
Store (Zero, VRFS)
}
Else
{
If (MTCH (VALI, TGRN))
{
FSMI (0x3A, Zero)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, TGRF))
{
FSMI (0x3B, Zero)
Store (Zero, Index (VALO, Zero))
}
Else
{
Store (0x8000, Index (VALO, Zero))
}
}
}
}
}
}
}
}
Else
{
If (LEqual (_T_0, 0x050E))
{
If (MTCH (VALI, GTPS))
{
Store (^^PCI0.LPC0.EC0.TPAD, Local0)
XOr (Local0, One, Local0)
Store (Local0, Index (VALO, 0x02))
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, STPE))
{
FSMI (0x5A, Zero)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, STPD))
{
FSMI (0x5B, Zero)
Store (Zero, Index (VALO, Zero))
}
Else
{
Store (0x8000, Index (VALO, Zero))
}
}
}
}
Else
{
If (LEqual (_T_0, 0x015D))
{
If (MTCH (VALI, GFBS))
{
If (OG09)
{
Store (Zero, Index (VALO, 0x02))
}
Else
{
Store (One, Index (VALO, 0x02))
}
Store (One, Index (VALO, Zero))
Store (Zero, Index (VALO, 0x04))
}
Else
{
If (MTCH (VALI, FBME))
{
Store (One, Index (VALO, Zero))
Store (Zero, OG09)
OSMI (0x1A, One)
}
Else
{
If (MTCH (VALI, FBMD))
{
Store (One, Index (VALO, Zero))
Store (One, OG09)
OSMI (0x1A, One)
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
}
}
Else
{
If (LEqual (_T_0, 0x5A))
{
If (MTCH (VALI, FNDS))
{
Store (Zero, OWNS)
HSMI (0x02, One)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, FNTP))
{
Store (One, OWNS)
HSMI (0x02, One)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, FNTC))
{
Store (0x02, OWNS)
HSMI (0x02, One)
Store (Zero, Index (VALO, Zero))
}
Else
{
Store (0x8000, Index (VALO, Zero))
}
}
}
}
Else
{
If (LEqual (_T_0, 0x7F))
{
If (MTCH (VALI, GCCM))
{
Store (^^PCI0.LPC0.EC0.TMOD, Local0)
Store (Local0, Index (VALO, 0x02))
Store (One, Index (VALO, 0x03))
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, SCMP))
{
Store (Zero, ^^PCI0.LPC0.EC0.TMOD)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, SCMS))
{
Store (One, ^^PCI0.LPC0.EC0.TMOD)
Store (Zero, Index (VALO, Zero))
}
Else
{
Store (0x8000, Index (VALO, Zero))
}
}
}
}
Else
{
If (LEqual (_T_0, 0x62))
{
If (LEqual (ToInteger (Arg0), 0xFE00))
{
If (LEqual (ENSR, 0x02))
{
Store (Zero, Index (VALO, Zero))
Store (0x21, Index (VALO, 0x03))
}
Else
{
Store (Zero, Index (VALO, Zero))
Store (Zero, Index (VALO, 0x03))
}
}
Else
{
Store (0x8000, Index (VALO, Zero))
}
}
Else
{
If (LEqual (_T_0, 0x11))
{
Name (PBUF, Buffer (0x0200)
{
0x00
})
CreateField (PBUF, Zero, 0x10, P000)
OSMI (0x0B, Zero)
Store (OWNS, PBUF)
Store (P000, Local0)
Store (Zero, Index (VALO, Zero))
Store (ToInteger (Local0), Index (VALO, 0x02))
}
Else
{
If (LEqual (_T_0, 0xC000))
{
If (MTCH (VALI, SHK0))
{
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, SHK1))
{
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, GHKM))
{
Store (Zero, Index (VALO, 0x03))
Store (Zero, Index (VALO, Zero))
Store (Zero, Local0)
Or (Local0, 0x10, Local0)
Store (Local0, Index (VALO, 0x03))
}
Else
{
Store (0x8000, Index (VALO, Zero))
}
}
}
}
Else
{
If (LEqual (_T_0, 0x1E))
{
If (MTCH (VALI, SBED))
{
Store (Zero, VBFG)
Store (One, ^^PCI0.LPC0.EC0.HEUE)
Store (One, ^^PCI0.LPC0.EC0.BEUE)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, SBEE))
{
Store (0x02, VBFG)
Store (One, ^^PCI0.LPC0.EC0.HEUE)
Store (Zero, ^^PCI0.LPC0.EC0.BEUE)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, SHEE))
{
Store (0x08, VBFG)
Store (Zero, ^^PCI0.LPC0.EC0.HEUE)
Store (One, ^^PCI0.LPC0.EC0.BEUE)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, SBHE))
{
Store (0x0A, VBFG)
Store (Zero, ^^PCI0.LPC0.EC0.HEUE)
Store (Zero, ^^PCI0.LPC0.EC0.BEUE)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (MTCH (VALI, GBEM))
{
Store (VBFG, Local0)
Store (Increment (Local0), Index (VALO, 0x02))
Store (Zero, Index (VALO, Zero))
}
Else
{
Store (0x8000, Index (VALO, Zero))
}
}
}
}
}
}
Else
{
If (LEqual (_T_0, 0xB7))
{
Store (0x8000, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_0, 0x0150))
{
If (LEqual (ToInteger (Arg0), 0xF300))
{
If (One)
{
Store (Zero, Index (VALO, Zero))
If (LEqual (ToInteger (Arg5), Zero))
{
Store (0x800C, Index (VALO, One))
OSMI (0x0E, Zero)
Store (SLPB, Index (VALO, 0x02))
Store (0x00080029, Index (VALO, 0x03))
Store (0x00080000, Index (VALO, 0x04))
}
Else
{
If (LEqual (ToInteger (Arg5), 0x0100))
{
Store (0x8001, Index (VALO, One))
Store (One, Index (VALO, 0x02))
}
Else
{
If (LEqual (ToInteger (Arg5), 0x0101))
{
Store (0x800C, Index (VALO, One))
Store (0x00080029, Index (VALO, 0x02))
}
Else
{
If (LEqual (ToInteger (Arg5), 0x0200))
{
Store (0x800D, Index (VALO, One))
Store (Zero, Local0)
Or (ShiftLeft (^^PCI0.LPC0.EC0.SLPL, 0x10), ^^PCI0.LPC0.EC0.SLPM, Index (VALO, 0x02))
If (LEqual (^^PCI0.LPC0.EC0.MBTS, One))
{
Store (0x00640005, Index (VALO, 0x03))
}
Else
{
Store (0x00640001, Index (VALO, 0x03))
}
If (LEqual (^^PCI0.LPC0.EC0.MBTS, One))
{
Store (0x000A0004, Index (VALO, 0x04))
}
Else
{
Store (0x000A0001, Index (VALO, 0x04))
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
}
}
}
Else
{
Store (0x8000, Index (VALO, Zero))
}
}
Else
{
If (LEqual (ToInteger (Arg0), 0xF400))
{
If (One)
{
If (LEqual (ToInteger (Arg5), Zero))
{
Store (ToInteger (Arg2), Local0)
If (LOr (LOr (LEqual (Local0, 0x00080000), LEqual (Local0, 0x00080009)), LEqual (
Local0, 0x00080021)))
{
Store (ToInteger (Arg2), SLPB)
OSMI (0x0E, One)
Store (Zero, Index (VALO, Zero))
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Else
{
If (LEqual (ToInteger (Arg5), 0x0200))
{
Store (ToInteger (Arg2), Local0)
If (LNotEqual (And (Local0, 0xFF80FFF8), Zero))
{
Store (0x8300, Index (VALO, Zero))
}
Else
{
If (LOr (LEqual (And (Local0, 0x07), One), LEqual (And (
Local0, 0x07), 0x04)))
{
If (LGreater (ShiftRight (Local0, 0x10), 0x64))
{
Store (0x8300, Index (VALO, Zero))
}
Else
{
If (LAnd (LEqual (And (Local0, 0x07), 0x04), LEqual (^^PCI0.LPC0.EC0.MBTS,
Zero)))
{
Store (0x8300, Index (VALO, Zero))
}
Else
{
Store (And (Local0, 0x07), ^^PCI0.LPC0.EC0.SLPM)
Store (ShiftRight (Local0, 0x10), ^^PCI0.LPC0.EC0.SLPL)
Store (Zero, Index (VALO, Zero))
}
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
}
Else
{
Store (0x8000, Index (VALO, Zero))
}
}
}
}
Else
{
If (LEqual (_T_0, 0x2A))
{
Store (Zero, Index (VALO, Zero))
Store (^^PCI0.LPC0.EC0.BLVL, Local0)
While (One)
{
Store (Local0, _T_1)
If (LEqual (_T_1, Zero))
{
Store (Zero, Index (VALO, 0x02))
}
Else
{
If (LEqual (_T_1, One))
{
Store (0x2000, Index (VALO, 0x02))
}
Else
{
If (LEqual (_T_1, 0x02))
{
Store (0x4000, Index (VALO, 0x02))
}
Else
{
If (LEqual (_T_1, 0x03))
{
Store (0x6000, Index (VALO, 0x02))
}
Else
{
If (LEqual (_T_1, 0x04))
{
Store (0x8000, Index (VALO, 0x02))
}
Else
{
If (LEqual (_T_1, 0x05))
{
Store (0xA000, Index (VALO, 0x02))
}
Else
{
If (LEqual (_T_1, 0x06))
{
Store (0xC000, Index (VALO, 0x02))
}
Else
{
If (LEqual (_T_1, 0x07))
{
Store (0xE000, Index (VALO, 0x02))
}
}
}
}
}
}
}
}
Break
}
Store (0xE000, Index (VALO, 0x03))
}
Else
{
If (LEqual (_T_0, 0x42))
{
While (One)
{
Store (ToInteger (Arg2), _T_2)
If (LEqual (_T_2, One))
{
Store (One, ^^PCI0.LPC0.EC0.REFT)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_2, 0x10))
{
Store (0x10, ^^PCI0.LPC0.EC0.REFT)
Store (Zero, Index (VALO, Zero))
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
}
Else
{
If (LEqual (_T_0, 0x9F))
{
If (LEqual (ToInteger (Arg0), 0xFE00))
{
While (One)
{
Store (ToInteger (Arg2), _T_3)
If (LEqual (_T_3, Zero))
{
Store (Zero, Index (VALO, Zero))
Store (^^PCI0.LPC0.EC0.EPFF, Local0)
Store (^^PCI0.LPC0.EC0.EPFE, Local1)
Store (Or (ShiftLeft (Local0, 0x08), Local1), Index (VALO,
0x03))
}
Else
{
If (LEqual (_T_3, 0xFFFF))
{
Store (Zero, Index (VALO, Zero))
Store (0x0200, Index (VALO, 0x03))
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
}
Else
{
If (LEqual (ToInteger (Arg0), 0xFF00))
{
While (One)
{
Store (ToInteger (Arg2), _T_4)
If (LEqual (_T_4, Zero))
{
Store (Zero, Index (VALO, Zero))
Store (ToInteger (Arg3), Local0)
Store (And (Local0, 0xFF), ^^PCI0.LPC0.EC0.EPFE)
Store (And (ShiftRight (Local0, 0x08), 0xFF), ^^PCI0.LPC0.EC0.EPFF)
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
Break
}
}
}
}
Else
{
If (LEqual (_T_0, 0xA1))
{
While (One)
{
Store (ToInteger (Arg5), _T_5)
If (LEqual (_T_5, Zero))
{
Store (One, HM01)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_5, One))
{
If (LEqual (HM01, One))
{
Store (Zero, Index (VALO, Zero))
If (LEqual (ToInteger (Arg2), One))
{
If (^^PCI0.LPC0.EC0.MBTS)
{
Store (^^PCI0.LPC0.EC0.MBVG, Local0)
Divide (Local0, 0x64, Local1, Index (VALO, 0x02))
}
Else
{
Store (0xFF, Index (VALO, 0x02))
}
}
Else
{
Store (0xFF, Index (VALO, 0x02))
}
}
Else
{
Store (0x8D50, Index (VALO, Zero))
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
}
Else
{
If (LEqual (_T_0, 0xA2))
{
While (One)
{
Store (ToInteger (Arg5), _T_6)
If (LEqual (_T_6, Zero))
{
Store (One, HM02)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_6, One))
{
If (LEqual (HM02, One))
{
Store (Zero, Index (VALO, Zero))
If (LEqual (ToInteger (Arg2), Zero))
{
If (LEqual (ToInteger (Arg3), Zero))
{
Store (^^PCI0.LPC0.EC0.FSPD, Local0)
Divide (0x000F0000, Local0, Local0, Index (VALO, 0x02))
}
Else
{
If (LEqual (ToInteger (Arg3), One))
{
Divide (0x000F0000, ^^PCI0.LPC0.EC0.FSPD, Local0, Index (VALO, 0x02))
Store (Multiply (^^PCI0.LPC0.EC0.MAXS, 0x64), Index (VALO, 0x03))
}
}
}
Else
{
If (LEqual (ToInteger (Arg2), One))
{
If (LEqual (ToInteger (Arg3), Zero))
{
Divide (0x000F0000, ^^PCI0.LPC0.EC0.FSP2, Local0, Index (VALO, 0x02))
}
Else
{
If (LEqual (ToInteger (Arg3), One))
{
Divide (0x000F0000, ^^PCI0.LPC0.EC0.FSP2, Local0, Index (VALO, 0x02))
Store (Zero, Index (VALO, 0x03))
}
}
}
}
}
Else
{
Store (0x8D50, Index (VALO, Zero))
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
}
Else
{
If (LEqual (_T_0, 0xA6))
{
Store (0x8000, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_0, 0xA7))
{
While (One)
{
Store (ToInteger (Arg5), _T_7)
If (LEqual (_T_7, Zero))
{
Store (One, HM04)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_7, One))
{
If (LEqual (HM04, One))
{
Store (Zero, Index (VALO, Zero))
Store (^^PCI0.LPC0.EC0.ACDF, Local0)
If (Local0)
{
Store (Zero, Local0)
Store (^^PCI0.LPC0.EC0.ACCU, Local1)
Store (^^PCI0.LPC0.EC0.ACCA, Local2)
Store (^^PCI0.LPC0.EC0.ACVO, Local3)
Store (^^PCI0.LPC0.EC0.CTMP, Local4)
Store (^^PCI0.LPC0.EC0.RG59, Local5)
Or (ShiftLeft (Or (ShiftLeft (Or (ShiftLeft (Local5, 0x08), INTC
), 0x08), Local4), 0x08), Local3, Index (VALO, 0x02
))
Or (ShiftLeft (Local2, 0x10), Local1, Index (VALO, 0x03))
}
Else
{
Store (Zero, Local0)
Store (^^PCI0.LPC0.EC0.CTMP, Local1)
Store (^^PCI0.LPC0.EC0.RG59, Local2)
Or (ShiftLeft (Or (ShiftLeft (Or (ShiftLeft (Local2, 0x08), INTC
), 0x08), Local1), 0x08), 0xFF, Index (VALO, 0x02
))
Store (0xFFFF, Index (VALO, 0x03))
}
}
Else
{
Store (0x8D50, Index (VALO, Zero))
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
}
Else
{
If (LEqual (_T_0, 0xA8))
{
While (One)
{
Store (ToInteger (Arg4), _T_8)
If (LEqual (_T_8, 0x98))
{
While (One)
{
Store (ToInteger (Arg5), _T_9)
If (LEqual (_T_9, Zero))
{
Store (One, HM05)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_9, One))
{
If (LEqual (HM05, One))
{
Store (Zero, Index (VALO, Zero))
If (LEqual (ToInteger (Arg2), One))
{
If (^^PCI0.LPC0.EC0.MBTS)
{
If (^^PCI0.LPC0.EC0.ACDF)
{
Store (^^PCI0.LPC0.EC0.MCUR, Local1)
Store (Local1, Index (VALO, 0x02))
}
Else
{
Store (^^PCI0.LPC0.EC0.MCUR, Local1)
Subtract (0xFFFF, Local1, Index (VALO, 0x02))
}
Store (^^PCI0.LPC0.EC0.MTEM, Local0)
Subtract (Local0, 0x0AAC, Local0)
Divide (Local0, 0x0A, Local0, Index (VALO, 0x03))
}
Else
{
Store (0xFFFF, Index (VALO, 0x02))
Store (0xFF, Index (VALO, 0x03))
}
}
Else
{
Store (0xFFFF, Index (VALO, 0x02))
Store (0xFF, Index (VALO, 0x03))
}
}
Else
{
Store (0x8D50, Index (VALO, Zero))
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
}
Else
{
If (LEqual (_T_8, 0x9A))
{
While (One)
{
Store (ToInteger (Arg5), _T_A)
If (LEqual (_T_A, Zero))
{
Store (One, HM06)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_A, One))
{
If (LEqual (HM06, One))
{
Store (Zero, Index (VALO, Zero))
If (LEqual (ToInteger (Arg2), Zero))
{
Store (^^PCI0.LPC0.EC0.PWM1, Index (VALO, 0x02))
}
Else
{
If (LEqual (ToInteger (Arg2), One))
{
Store (^^PCI0.LPC0.EC0.PWM2, Local0)
Store (Local0, Index (VALO, 0x02))
}
}
}
Else
{
Store (0x8D50, Index (VALO, Zero))
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
}
Else
{
If (LEqual (_T_8, 0x9B))
{
While (One)
{
Store (ToInteger (Arg5), _T_B)
If (LEqual (_T_B, Zero))
{
Store (One, HM07)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_B, One))
{
If (LEqual (HM07, One))
{
Store (Zero, Index (VALO, Zero))
If (LEqual (ToInteger (Arg2), Zero))
{
Store (^^PCI0.LPC0.EC0.VOLC, Local0)
Store (Zero, Local1)
Store (Zero, Local2)
Store (^^PCI0.LPC0.EC0.PPBC, Local3)
Store (^^PCI0.LPC0.EC0.FPOC, Local4)
Store (^^PCI0.LPC0.EC0.ACAC, Local5)
Store (^^PCI0.LPC0.EC0.PAOC, Local6)
Or (ShiftLeft (Or (ShiftLeft (Or (ShiftLeft (Local2, 0x08), Zero
), 0x08), Local1), 0x08), Local0, Index (VALO, 0x03
))
Or (ShiftLeft (Or (ShiftLeft (Or (ShiftLeft (Local6, 0x08), Local5
), 0x08), Local4), 0x08), Local3, Index (VALO, 0x02
))
Store (Zero, ^^PCI0.LPC0.EC0.VOLC)
Store (Zero, ^^PCI0.LPC0.EC0.PPBC)
Store (Zero, ^^PCI0.LPC0.EC0.FPOC)
Store (Zero, ^^PCI0.LPC0.EC0.ACAC)
Store (Zero, ^^PCI0.LPC0.EC0.PAOC)
}
Else
{
If (LEqual (ToInteger (Arg2), One))
{
Store (^^PCI0.LPC0.EC0.BTCC, Index (VALO, 0x02))
Store (Zero, ^^PCI0.LPC0.EC0.BTCC)
}
Else
{
If (LEqual (ToInteger (Arg2), 0x02))
{
Store (^^PCI0.LPC0.EC0.GPB1, Local0)
Store (^^PCI0.LPC0.EC0.GPB2, Local1)
Store (^^PCI0.LPC0.EC0.GPB3, Local2)
Store (^^PCI0.LPC0.EC0.GPB4, Local3)
Store (^^PCI0.LPC0.EC0.GPB5, Local4)
Store (^^PCI0.LPC0.EC0.GPB6, Local5)
Store (^^PCI0.LPC0.EC0.GPB7, Local6)
Store (^^PCI0.LPC0.EC0.GPB8, Local7)
Or (ShiftLeft (Or (ShiftLeft (Or (ShiftLeft (Local7, 0x08), Local6
), 0x08), Local5), 0x08), Local4, Index (VALO, 0x03
))
Or (ShiftLeft (Or (ShiftLeft (Or (ShiftLeft (Local3, 0x08), Local2
), 0x08), Local1), 0x08), Local0, Index (VALO, 0x02
))
Store (Zero, ^^PCI0.LPC0.EC0.GPB1)
Store (Zero, ^^PCI0.LPC0.EC0.GPB2)
Store (Zero, ^^PCI0.LPC0.EC0.GPB3)
Store (Zero, ^^PCI0.LPC0.EC0.GPB4)
Store (Zero, ^^PCI0.LPC0.EC0.GPB5)
Store (Zero, ^^PCI0.LPC0.EC0.GPB6)
Store (Zero, ^^PCI0.LPC0.EC0.GPB7)
Store (Zero, ^^PCI0.LPC0.EC0.GPB8)
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
}
}
Else
{
Store (0x8D50, Index (VALO, Zero))
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
}
Else
{
If (LEqual (_T_8, 0xA0))
{
If (LEqual (ToInteger (Arg0), 0xFE00))
{
While (One)
{
Store (ToInteger (Arg5), _T_C)
If (LEqual (_T_C, Zero))
{
Store (One, HM08)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_C, One))
{
If (LEqual (HM08, One))
{
Store (Zero, Index (VALO, Zero))
Or (ShiftLeft (^^PCI0.LPC0.EC0.PECC, 0x03), ShiftLeft (^^PCI0.LPC0.EC0.PECL, One), Local0)
Or (Local0, ^^PCI0.LPC0.EC0.PECB, Index (VALO, 0x02))
}
Else
{
Store (0x8D50, Index (VALO, Zero))
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
If (LNotEqual (ToInteger (Arg3), Zero))
{
Store (0x8300, Index (VALO, Zero))
}
}
}
Else
{
If (LEqual (_T_8, 0xA9))
{
While (One)
{
Store (ToInteger (Arg5), _T_D)
If (LEqual (_T_D, Zero))
{
Store (One, HM09)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_D, One))
{
If (LEqual (HM09, One))
{
Store (Zero, Index (VALO, Zero))
While (One)
{
Store (ToInteger (Arg2), _T_E)
If (LEqual (_T_E, One))
{
If (^^PCI0.LPC0.EC0.MBTS)
{
Store (^^PCI0.LPC0.EC0.MBRM, Local0)
Store (^^PCI0.LPC0.EC0.BTDC, Local1)
Store (^^PCI0.LPC0.EC0.LFCC, Local2)
Store (^^PCI0.LPC0.EC0.BTDV, Local3)
Divide (Local0, 0x64, , Local0)
Divide (Local1, 0x64, , Local1)
Divide (Local2, 0x64, , Local2)
Divide (Local3, 0x64, , Local3)
Multiply (Local0, Local3, Local0)
Multiply (Local1, Local3, Local1)
Multiply (Local2, Local3, Local2)
Or (ShiftLeft (Local0, 0x10), ^^PCI0.LPC0.EC0.BATS, Index (VALO, 0x02))
Or (ShiftLeft (^^PCI0.LPC0.EC0.CSV2, 0x10), ^^PCI0.LPC0.EC0.CSV1, Index (VALO, 0x03))
Or (ShiftLeft (Local1, 0x10), Local2, Index (VALO, 0x04))
Or (ShiftLeft (^^PCI0.LPC0.EC0.CSV4, 0x10), ^^PCI0.LPC0.EC0.CSV3, Index (VALO, 0x05))
}
Else
{
Store (0xFFFF, Index (VALO, 0x02))
Store (0xFFFF, Index (VALO, 0x03))
Store (0xFFFF, Index (VALO, 0x04))
Store (0xFFFF, Index (VALO, 0x05))
}
}
Else
{
If (LEqual (_T_E, 0x8001))
{
If (^^PCI0.LPC0.EC0.MBTS)
{
Store (^^PCI0.LPC0.EC0.BTDV, Index (VALO, 0x02))
}
Else
{
Store (0xFFFF, Index (VALO, 0x02))
Store (0xFFFF, Index (VALO, 0x03))
Store (0xFFFF, Index (VALO, 0x04))
Store (0xFFFF, Index (VALO, 0x05))
}
}
Else
{
Store (0xFFFF, Index (VALO, 0x02))
Store (0xFFFF, Index (VALO, 0x03))
Store (0xFFFF, Index (VALO, 0x04))
Store (0xFFFF, Index (VALO, 0x05))
}
}
Break
}
}
Else
{
Store (0x8D50, Index (VALO, Zero))
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
}
Else
{
If (LEqual (_T_8, 0x9D))
{
While (One)
{
Store (ToInteger (Arg5), _T_F)
If (LEqual (_T_F, Zero))
{
Store (Zero, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_F, One))
{
Store (Zero, Index (VALO, Zero))
Store (^^PCI0.LPC0.EC0.HPCF, Index (VALO, 0x02))
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
}
}
}
}
}
}
Break
}
}
Else
{
If (LEqual (_T_0, 0x9D))
{
If (LEqual (ToInteger (Arg0), 0xFF00))
{
While (One)
{
Store (ToInteger (Arg3), _T_G)
If (LEqual (_T_G, Zero))
{
While (One)
{
Store (ToInteger (Arg2), _T_H)
If (LEqual (_T_H, Zero))
{
Store (Zero, ^^PCI0.LPC0.EC0.HPCF)
Store (Zero, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_H, One))
{
Store (One, ^^PCI0.LPC0.EC0.HPCF)
Store (Zero, Index (VALO, Zero))
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
Break
}
}
}
Else
{
If (LEqual (_T_0, 0xA0))
{
If (LEqual (ToInteger (Arg3), Zero))
{
Store (ToInteger (Arg2), Local0)
And (Local0, 0xF4, Local0)
If (LNot (Local0))
{
Store (Zero, Index (VALO, Zero))
Store (ToInteger (Arg2), Local1)
And (Local1, One, ^^PCI0.LPC0.EC0.PECB)
And (ShiftRight (Local1, One), One, ^^PCI0.LPC0.EC0.PECL)
And (ShiftRight (Local1, 0x03), One, ^^PCI0.LPC0.EC0.PECC)
If (^^PCI0.LPC0.EC0.PECL)
{
If (^^PCI0.LPC0.EC0.DSPL)
{
EVNT (0xB2)
}
Else
{
EVNT (0xB3)
}
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Else
{
If (LEqual (_T_0, 0xAA))
{
Store (Zero, Index (VALO, Zero))
Store (^^PCI0.LPC0.EC0.CTTO, Index (VALO, 0x02))
Store (^^PCI0.LPC0.EC0.CTTB, Index (VALO, 0x03))
}
Else
{
If (LEqual (_T_0, 0x96))
{
If (LEqual (ToInteger (Arg0), 0xFE00))
{
Store (Zero, Index (VALO, Zero))
Store (0xFF50, Index (VALO, 0x02))
Store (0x0618, Index (VALO, 0x03))
}
Else
{
Store (0x8000, Index (VALO, Zero))
}
}
Else
{
If (LEqual (_T_0, 0x95))
{
While (One)
{
Store (ToInteger (Arg0), _T_I)
If (LEqual (_T_I, 0xFE00))
{
Store (0x8000, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_I, 0xFF00))
{
While (One)
{
Store (ToInteger (Arg2), _T_J)
If (LEqual (_T_J, Zero))
{
Store (0x8000, Index (VALO, Zero))
}
Else
{
If (LEqual (_T_J, One))
{
Store (0x8000, Index (VALO, Zero))
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
Break
}
}
Else
{
Store (0x8000, Index (VALO, Zero))
}
}
Break
}
}
Else
{
If (LEqual (_T_0, 0x97))
{
If (LEqual (ToInteger (Arg0), 0xFE00))
{
Store (0x8000, Index (VALO, Zero))
}
Else
{
If (LEqual (ToInteger (Arg0), 0xFF00))
{
If (LAnd (LEqual (ToInteger (Arg3), One), LEqual (ToInteger (Arg2
), Zero)))
{
Store (0x8000, Index (VALO, Zero))
}
Else
{
If (LAnd (LEqual (ToInteger (Arg3), One), LEqual (ToInteger (Arg2
), One)))
{
Store (0x8000, Index (VALO, Zero))
}
Else
{
If (LAnd (LEqual (ToInteger (Arg3), Zero), LEqual (ToInteger (Arg2
), Zero)))
{
Store (0x8000, Index (VALO, Zero))
}
Else
{
If (LAnd (LEqual (ToInteger (Arg3), Zero), LEqual (ToInteger (Arg2
), One)))
{
Store (0x8000, Index (VALO, Zero))
}
Else
{
If (LAnd (LEqual (ToInteger (Arg3), Zero), LEqual (ToInteger (Arg2
), 0x02)))
{
Store (0x8000, Index (VALO, Zero))
}
Else
{
Store (0x8300, Index (VALO, Zero))
}
}
}
}
}
}
}
}
Else
{
Store (0x8000, Index (VALO, Zero))
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
Break
}
Return (VALO)
}
Scope (\_SB)
{
Name (HM01, Zero)
Name (HM02, Zero)
Name (HM03, Zero)
Name (HM04, Zero)
Name (HM05, Zero)
Name (HM06, Zero)
Name (HM07, Zero)
Name (HM08, Zero)
Name (HM09, Zero)
}
}
Device (QITR)
{
Name (_HID, EisaId ("QCI0701"))
Method (_STA, 0, NotSerialized)
{
If (LGreaterEqual (MYOS, 0x07D6))
{
Return (0x0B)
}
Else
{
Return (Zero)
}
}
Name (VZOK, Zero)
Name (VALI, Package (0x06)
{
Ones,
Ones,
Ones,
Ones,
Ones,
Ones
})
Name (VALO, Package (0x06)
{
0x88888888,
0x88888888,
0x88888888,
0x88888888,
0x88888888,
0x88888888
})
Name (BBBB, Package (0x05)
{
"ABCD",
"SRJING",
Buffer (0x05)
{
0x12, 0x34, 0x56, 0x78, 0x90
},
Package (0x02)
{
0x07,
0x09
},
0x13572468
})
Method (ENAB, 0, NotSerialized)
{
Store (0x02, VZOK)
}
Method (EVNT, 1, NotSerialized)
{
Store (Arg0, VZOK)
Notify (QITR, 0x80)
Return (VZOK)
}
Method (INFO, 0, NotSerialized)
{
Store (0x12, Local0)
Return (Local0)
}
Method (AB00, 0, NotSerialized)
{
Store (0x02, VZOK)
}
Method (AB11, 1, NotSerialized)
{
Store (Arg0, VZOK)
Return (VZOK)
}
Method (AB01, 0, NotSerialized)
{
Store (0x12, Local0)
Return (Local0)
}
Method (BBAA, 0, NotSerialized)
{
Return (BBBB)
}
Method (SPFC, 6, NotSerialized)
{
Store (Arg0, Index (VALI, Zero))
Store (Arg1, Index (VALI, One))
Store (Arg2, Index (VALI, 0x02))
Store (Arg3, Index (VALI, 0x03))
Store (Arg4, Index (VALI, 0x04))
Store (Arg5, Index (VALI, 0x05))
Store (Arg0, Local0)
Store (Arg1, Local1)
Store (Arg2, Local2)
Store (Arg3, Local3)
Store (Arg4, Local4)
Store (Arg5, Local5)
Store (Local0, Index (VALO, Zero))
Store (Local1, Index (VALO, One))
Store (Local2, Index (VALO, 0x02))
Store (Local3, Index (VALO, 0x03))
Store (Local4, Index (VALO, 0x04))
Store (Local5, Index (VALO, 0x05))
Return (VALO)
}
Method (AB66, 6, NotSerialized)
{
Store (Arg0, Index (VALI, Zero))
Store (Arg1, Index (VALI, One))
Store (Arg2, Index (VALI, 0x02))
Store (Arg3, Index (VALI, 0x03))
Store (Arg4, Index (VALI, 0x04))
Store (Arg5, Index (VALI, 0x05))
Store (Arg0, Local0)
Store (Arg1, Local1)
Store (Arg2, Local2)
Store (Arg3, Local3)
Store (Arg4, Local4)
Store (Arg5, Local5)
Store (Local0, Index (VALO, Zero))
Store (Local1, Index (VALO, One))
Store (Local2, Index (VALO, 0x02))
Store (Local3, Index (VALO, 0x03))
Store (Local4, Index (VALO, 0x04))
Store (Local5, Index (VALO, 0x05))
Return (VALO)
}
Name (HMBB, Buffer (0x1C) {})
CreateField (HMBB, Zero, 0x60, HMPN)
CreateField (HMBB, 0x60, 0x60, HMMN)
CreateField (HMBB, 0xC0, 0x10, HMMD)
CreateField (HMBB, 0xD0, 0x10, HMSN)
Name (HMBT, Package (0x06)
{
Buffer (0x1C) {},
Zero,
Zero,
Zero,
Zero,
Zero
})
Method (HMB1, 0, NotSerialized)
{
Store ("NS2P3SZSV4WO", HMPN)
Store ("SANYO ", HMMN)
Store ("12", HMMD)
Store ("34", HMSN)
Store (HMBB, Index (HMBT, Zero))
Store (One, Index (HMBT, One))
Store (0x02, Index (HMBT, 0x02))
Store (0x03, Index (HMBT, 0x03))
Store (0x04, Index (HMBT, 0x04))
Store (0x05, Index (HMBT, 0x05))
Store (One, ^^PCI0.LPC0.EC0.POLG)
Return (HMBT)
}
Method (HMB2, 0, NotSerialized)
{
Return (Zero)
}
}
}
}
Download Here: Click
When I compile this, I get these errors:
110 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
104 Error Object does not exist (\_SB.PCI0.SMBS.CLPS)
105 Error Object does not exist (\_SB.PCI0.SMBS.SLPS)
115 Error Object does not exist (\_SB.PCI0.SMBS.PWDE)
120 Error Object does not exist (\_SB.PCI0.SMBS.G05S)
122 Error Object does not exist (\_SB.PCI0.SMBS.G05T)
126 Error Object does not exist (\_SB.PCI0.SMBS.G05T)
... 5 more.
---
590 Error Object does not exist (\_SB.PCI0.PB2)
591 Error Object does not exist (\_SB.PCI0.PB3)
... alot more
---
699 Error syntax error, unexpected PARSEOP_SLEEP, expecting ',' or ')'
700 Error syntax error, unexpected ')'
700 Error syntax error, unexpected ','
700 Error syntax error, unexpected ')'
---
700 Error Object does not exist (\_SB.PCI0.PB5)
... about 50 more
Now, my DSDT editor has this little button below the DSDT errors list view, called "Fix Errors". So I clicked it to see what would happen and it does something that reduces all the errors to 19.
Here they are:
104 Error Object does not exist (\_SB.PCI0.SMBS.CLPS)
105 Error Object does not exist (\_SB.PCI0.SMBS.SLPS)
115 Error Object does not exist (\_SB.PCI0.SMBS.PWDE)
120 Error Object does not exist (\_SB.PCI0.SMBS.G05S)
122 Error Object does not exist (\_SB.PCI0.SMBS.G05T)
126 Error Object does not exist (\_SB.PCI0.SMBS.G05T)
128 Error Object does not exist (\_SB.PCI0.SMBS.GE16)
128 Error Object does not exist (\_SB.PCI0.SMBS.G16T)
699 Error syntax error, unexpected PARSEOP_SLEEP, expecting ',' or ')'
700 Error syntax error, unexpected ')'
700 Error syntax error, unexpected ','
700 Error syntax error, unexpected ')'
733 Error syntax error, unexpected '{'
742 Error syntax error, unexpected '{'
787 Error syntax error, unexpected '{'
834 Error syntax error, unexpected ')'
865 Error syntax error, unexpected '{'
867 Error syntax error, unexpected ')'
871 Error syntax error, unexpected ')'
Here's the DSDT file after I clicked the "Fix Errors" button:
Download Here: Click
I would be over the moon if someone could help me fix the errors in the DSDT (BAT1._BIX and BAT1.UBIX errors particularly, causes Linux to fail to pick it up).
Last edited by kvanberendonck (2012-11-11 02:08:54)
Offline
Welcome to the party
Yep, this is 100% Microsoft's fault. They deliberately created an AML code compiler that is not standards complaint, so ACPI will only work correctly with Windows OS, because the MS AML compiler is Close Source and only Microsoft knows how it messes up the code i.e. only Windows will work with it. Then Microsoft tells the computer manufacturers that to insure ACPI will work well with Windows they must use their AML compiler.
Microsoft was one of the members of the group that created the AML standard. There are email's between Bill Gates and others in Microsoft where he states something like,....We spend all this time and money developing AML. Why should others get to use our hard work for free? We should make ACPI not work with any other OS.
These documents were part of the US Supreme Court case against Microsoft. Yes, the case that they lost. They were also deliberately trying to make IE non-standards complaint, so only Windows Server IIS could run websites.
….back story over...
Okay well, the Intel AML compiler is Open Source and that is the one you are using. AML is really rather simple byte code. You can fix it with a little bit of time and effort, even if you have never programmed before.
http://www.acpi.info/DOWNLOADS/ACPIspec50.pdf
The only catch is that the Linux ACPI guys have done a vary good job finding all the bugs the MS compiler makes, and patching the Linux implementation to deal with it. Because of this, if memory serves me, the ability to load a modified DSDT file into the kernel as been removed. I think you have to patch your kernel now to allow this ability, BUT there is a vary good chance I am wrong about that. However, it may be something you will want to check on before you spend the time messing with the DSDT.
Last edited by hunterthomson (2012-11-09 10:36:35)
OpenBSD-current Thinkpad X230, i7-3520M, 16GB CL9 Kingston, Samsung 830 256GB
Contributor: linux-grsec
Offline
Thanks for the link! Looks like a good read, and it'll definitely set me on my way
Offline
First remove any acpi_os_name=linux or acpi_osi=linux that you have on the kernel command line, if need be use acpi_osi="!Linux", told you that already in the other thread, I only suggested that you decompile your dsdt so you can pinpoint which acpi_os_name and acpi_osi names are being checked and try to spoof _using windows_ with those names.
This is the part you should be looking at first:
Method (OSTP, 0, NotSerialized)
{
If (LEqual (OSTB, Ones))
{
If (CondRefOf (\_OSI, Local0))
{
Store (Zero, OSTB)
Store (Zero, TPOS)
If (_OSI ("Windows 2001"))
{
Store (0x08, OSTB)
Store (0x08, TPOS)
}
If (_OSI ("Windows 2001.1"))
{
Store (0x20, OSTB)
Store (0x20, TPOS)
}
If (_OSI ("Windows 2001 SP1"))
{
Store (0x10, OSTB)
Store (0x10, TPOS)
}
If (_OSI ("Windows 2001 SP2"))
{
Store (0x11, OSTB)
Store (0x11, TPOS)
}
If (_OSI ("Windows 2001 SP3"))
{
Store (0x12, OSTB)
Store (0x12, TPOS)
}
If (_OSI ("Windows 2006"))
{
Store (0x40, OSTB)
Store (0x40, TPOS)
}
If (_OSI ("Windows 2006 SP1"))
{
Store (0x41, OSTB)
Store (0x41, TPOS)
Store (One, OSSP)
}
If (_OSI ("Windows 2009"))
{
Store (One, OSSP)
Store (0x50, OSTB)
Store (0x50, TPOS)
}
If (_OSI ("Linux"))
{
Store (One, LINX)
Store (0x80, OSTB)
Store (0x80, TPOS)
}
}
Else
{
If (CondRefOf (\_OS, Local0))
{
If (SEQL (_OS, "Microsoft Windows"))
{
Store (One, OSTB)
Store (One, TPOS)
}
Else
{
If (SEQL (_OS, "Microsoft WindowsME: Millennium Edition"))
{
Store (0x02, OSTB)
Store (0x02, TPOS)
}
Else
{
If (SEQL (_OS, "Microsoft Windows NT"))
{
Store (0x04, OSTB)
Store (0x04, TPOS)
}
Else
{
Store (Zero, OSTB)
Store (Zero, TPOS)
}
}
}
}
Else
{
Store (Zero, OSTB)
Store (Zero, TPOS)
}
}
}
Return (OSTB)
}
You can clearly see that linux is being checked for and different stuff is done for it, as is the case for each windows version, like I also said in the other thread first try to spoof a windows version where the battery shows up and the fan works correctly. Only after trying that and if it fails, I would go about trying to fix the dsdt myself.
R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K
Offline
@R00KIE
Yeah, I took your advice and tried acpi_osi="Windows 2009" and acpi_os_name="Microsoft Windows" as per it looks like the DSDT is checking for and it didn't make a difference, sadly.
What was interesting though, was that if I used acpi_osi="Linux" and acpi_os_name="Linux" at the same time in the kernel parameters (just to see what happens) my screen would turn purple and all my hardware would work really hard and generate alot of heat for no reason - usually followed by me panicking and shutting it down fast.
Last edited by kvanberendonck (2012-11-09 13:44:24)
Offline
Yay, another firmware fail for BIOS engineers. My laptop would not report battery drain because someone decided to ignore all negative values.
I suggest not to override the DSDT completely, but instead override a single method only as this requires less efforts and is less error-prone too because you cannot accidentally change the meaning of the DSDT.
Based on your DSDT I have created a patch for your method: https://gist.github.com/4046743 (instructions included). Making the systemd or whatever load that code in time is an exercise for the reader.
Last edited by Lekensteyn (2012-11-09 16:43:41)
Offline
Try with ="!Linux", note that the exclamation mark is important. Or try without any parameter (ex.: acpi_osi= ), that should disable all strings, might also yield some different result.
If I'm not wrong, the kernel will answer yes/identify itself as all known windows versions, it might just be that it is identifying itself with some windows version that also makes the bios disable some features.
R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K
Offline
Yay, another firmware fail for BIOS engineers. My laptop would not report battery drain because someone decided to ignore all negative values.
I suggest not to override the DSDT completely, but instead override a single method only as this requires less efforts and is less error-prone too because you cannot accidentally change the meaning of the DSDT.
Based on your DSDT I have created a patch for your method: https://gist.github.com/4046743 (instructions included). Making the systemd or whatever load that code in time is an exercise for the reader.
You sir, are a legend. I cannot thank you enough for what you've done.
I'll report back with the results as soon as I get everything up and running! Thankyou!!
Edit: Is the initramfs too early to merge the ACPI method?
Last edited by kvanberendonck (2012-11-10 07:12:07)
Offline
Initramfs should be ok, judging from your kernel messages anything that loads before toshiba_laptop is OK. I suggest you to read the mkinitcpio(.conf) manpages if you encounter issues with the below.
Store the ASL file from https://gist.github.com/4046743 in /etc/fix-UBIF-typo.dsl.
Create /usr/lib/initcpio/hooks/fix-dsdt:
#!/bin/sh
run_earlyhook() {
modprobe custom_method
mount -t debugfs none /sys/kernel/debug
cat /etc/fix-UBIF-typo.aml > /sys/kernel/debug/acpi/custom_method
umount /sys/kernel/debug
rmmod custom_method
}
Create /usr/lib/initcpio/install/fix-dsdt:
#!/bin/sh
build() {
local name=fix-UBIF-typo
local tmpdir="$(mktemp -d)"
# compile AML from ASL, iasl outputs relative to soure, therefore copy first
(cd "$tmpdir" && cp "/etc/$name.dsl" . && iasl "$name.dsl" && rm "$name.dsl")
add_file "$tmpdir/$name.aml" "/etc/$name.aml" 644
rm "$tmpdir/$name.aml"; rmdir "$tmpdir"
# add dependency
add_module custom_method
# install hook
add_runscript
}
In your /etc/mkinitcpio.conf add "fix-dsdt" to your HOOKS string. Then run `mkinitcpio -p linux` to re-generate the initramfs.
Last edited by Lekensteyn (2012-11-10 14:42:09)
Offline
Lekensteyn: Everything is working incredibly now, thanks VERY much!
Offline
Wooohoo! I am glad you figured this out kvanberendonck. Maybe you should add a section to the wiki for your particular machine. As it would be a great community contribution to save others from this headache.
Offline
Wooohoo! I am glad you figured this out kvanberendonck. Maybe you should add a section to the wiki for your particular machine. As it would be a great community contribution to save others from this headache.
I'll write up something on either my blog or the wiki after I finish mapping all the scancodes for the Fn keys and get hibernate working
Offline
<snip>
Sorry about the bump, but a strange issue I hadn't noticed before has appeared. The battery seems to be capping at 75% when I run `acpi`, however the capacity and time it lasts seems to be the same. I have the feeling that the full capacity of the battery is being reported as 75% and the rest has been squashed down to fit inside. Could the fact that the design capacity is being reported as zero (but the other 2 correct) be the reason for this strange occurrence?
Offline
Can you post the output of cat /sys/class/power_supply/BAT0/uevent (substitute BAT0 if necessary)? Try it while discharging/charging. Please give 3 samples per state with a constant delay (say, 10 seconds). So in the end you should have 6 outputs that takes about 60 seconds. A simple bash snippet:
for i in 1 2 3; do
cat /sys/class/power_supply/BAT0/uevent
sleep 10
done > trial.txt
If you want to, you can remove unchanged information (things like names, serial numbers and design capacity usually do not change).
Offline
It could be just a "problem" with the gauge circuit inside the battery. I see something sort of similar but at the end of discharge.
The original battery that came with my laptop died so I bought a new one, with the original when it said that I had no more power left I really had almost no power left, with the no name replacement after it says there is no power left I can still run the machine for a good 20 minutes.
R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K
Offline
Can you post the output of cat /sys/class/power_supply/BAT0/uevent (substitute BAT0 if necessary)? Try it while discharging/charging. Please give 3 samples per state with a constant delay (say, 10 seconds). So in the end you should have 6 outputs that takes about 60 seconds. A simple bash snippet:
for i in 1 2 3; do cat /sys/class/power_supply/BAT0/uevent sleep 10 done > trial.txt
If you want to, you can remove unchanged information (things like names, serial numbers and design capacity usually do not change).
Charging:
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_STATUS=Charging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Unknown
POWER_SUPPLY_CYCLE_COUNT=100
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=1000
POWER_SUPPLY_VOLTAGE_NOW=11327000
POWER_SUPPLY_POWER_NOW=62516000
POWER_SUPPLY_ENERGY_FULL_DESIGN=0
POWER_SUPPLY_ENERGY_FULL=4400000
POWER_SUPPLY_ENERGY_NOW=133000
POWER_SUPPLY_CAPACITY=3
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=LION
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_STATUS=Charging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Unknown
POWER_SUPPLY_CYCLE_COUNT=100
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=1000
POWER_SUPPLY_VOLTAGE_NOW=11334000
POWER_SUPPLY_POWER_NOW=62516000
POWER_SUPPLY_ENERGY_FULL_DESIGN=0
POWER_SUPPLY_ENERGY_FULL=4400000
POWER_SUPPLY_ENERGY_NOW=146000
POWER_SUPPLY_CAPACITY=3
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=LION
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_STATUS=Charging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Unknown
POWER_SUPPLY_CYCLE_COUNT=100
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=1000
POWER_SUPPLY_VOLTAGE_NOW=11341000
POWER_SUPPLY_POWER_NOW=62516000
POWER_SUPPLY_ENERGY_FULL_DESIGN=0
POWER_SUPPLY_ENERGY_FULL=4400000
POWER_SUPPLY_ENERGY_NOW=152000
POWER_SUPPLY_CAPACITY=3
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=LION
Discharging:
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Unknown
POWER_SUPPLY_CYCLE_COUNT=100
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=1000
POWER_SUPPLY_VOLTAGE_NOW=10388000
POWER_SUPPLY_POWER_NOW=1075000
POWER_SUPPLY_ENERGY_FULL_DESIGN=0
POWER_SUPPLY_ENERGY_FULL=4400000
POWER_SUPPLY_ENERGY_NOW=275000
POWER_SUPPLY_CAPACITY=6
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=LION
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Unknown
POWER_SUPPLY_CYCLE_COUNT=100
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=1000
POWER_SUPPLY_VOLTAGE_NOW=10296000
POWER_SUPPLY_POWER_NOW=1020000
POWER_SUPPLY_ENERGY_FULL_DESIGN=0
POWER_SUPPLY_ENERGY_FULL=4400000
POWER_SUPPLY_ENERGY_NOW=273000
POWER_SUPPLY_CAPACITY=6
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=LION
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Unknown
POWER_SUPPLY_CYCLE_COUNT=100
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=1000
POWER_SUPPLY_VOLTAGE_NOW=10290000
POWER_SUPPLY_POWER_NOW=1023000
POWER_SUPPLY_ENERGY_FULL_DESIGN=0
POWER_SUPPLY_ENERGY_FULL=4400000
POWER_SUPPLY_ENERGY_NOW=269000
POWER_SUPPLY_CAPACITY=6
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=LION
Removed the serial number, but it didn't change.
Last edited by kvanberendonck (2012-11-18 05:50:57)
Offline
Uhh, well I meant removing it from that command output. I do not know where you'd remove it otherwise?
Two oddities:
POWER_SUPPLY_CAPACITY=3 (3%) and POWER_SUPPLY_CAPACITY=6 (6%). Li-Ion batteries do not like to get deep-discharged. I hope this is just a wrong report because of an invalid ENERGY_FULL_DESIGN value, but you might be unlucky and have broken batteries. Can you fully charge the batteries, and post one output of that uevent file?
POWER_SUPPLY_ENERGY_FULL_DESIGN=0 - it looks like your battery has never been fully charged? The value shown here comes from \_SB.PCI0.LPC0.EC0.LFCC. Does your BIOS have a battery calibration feature?
Offline
Li-Ion batteries do not like to get deep-discharged.
That is true, however a full discharge should be done every once in a while so that the gauge circuit in the battery can measure how much energy the battery can really hold and in turn report correct estimates of the remaining runtime. I suppose most manuals say that.
POWER_SUPPLY_ENERGY_FULL_DESIGN=0 - it looks like your battery has never been fully charged?
As far as I can tell, that value is or should have been set at the factory and is never updated, the _DESIGN part is the telltale sign, it is defined by the rated capacity of the cells used, POWER_SUPPLY_ENERGY_FULL is the value that should get updated after a complete discharge + charge or calibration cycle.
That I know of, POWER_SUPPLY_ENERGY_FULL_DESIGN is only needed if you want to determine the capacity loss, when determining the remaining capacity the values that are used are POWER_SUPPLY_ENERGY_FULL and POWER_SUPPLY_ENERGY_NOW.
R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K
Offline
Uhh, well I meant removing it from that command output. I do not know where you'd remove it otherwise?
Two oddities:
POWER_SUPPLY_CAPACITY=3 (3%) and POWER_SUPPLY_CAPACITY=6 (6%). Li-Ion batteries do not like to get deep-discharged. I hope this is just a wrong report because of an invalid ENERGY_FULL_DESIGN value, but you might be unlucky and have broken batteries. Can you fully charge the batteries, and post one output of that uevent file?POWER_SUPPLY_ENERGY_FULL_DESIGN=0 - it looks like your battery has never been fully charged? The value shown here comes from \_SB.PCI0.LPC0.EC0.LFCC. Does your BIOS have a battery calibration feature?
In regards to POWER_SUPPLY_CAPACITY, these were actually legitimate values because I had let it run flat from testing the charge time the previous day and had forgotten to plug it back in to charge.
ENERGY_FULL_DESIGN before the BIOS update that caused the faulty DSDT read something around 44x10^? and back then the battery was working fine. I'll try and charge/discharge the laptop a few times to see if it makes a difference, but this could very well be the issue.
And no, my BIOS is basically a class-1 bootloader. It doesn't let me do anything except re-order the boot devices.
Offline
Hi guys,
Not an arch linux person myself (I'm on ubuntu), but suffering from the same problem and I'm trying to fix it. My kernel comes with custom_method compiled in, and debugfs is already mounted at /sys/kernel/debug. I can touch everything in that directory, including acpi/, but when I try to do anything in the acpi/ subdir as root, I'm getting permission denied. Could someone help me with that please?
Thanks!
Offline
@aprsa, "as root" as in "sudo ..." or "sudo -s", ...? In the earlier case, see http://askubuntu.com/q/20578/6969
Remember to read your kernel logs if you get an error...
Offline
Thanks for the reply! As root I meant through su -, not sudo. The issue seems to stem from the fact that ubuntu disables write access to /sys/kernel/debugfs/acpi for security reasons. Here's how far I got:
https://answers.launchpad.net/ubuntu/+question/215689
If you could point me to any information on how to fix the DSDT (and corresponding tables) myself and recompile it, I'd be ever so grateful!
Offline
I wonder why Ubuntu provides a custom_method module if it is blocked anyway... Try chmod +w the debugfs file and follow the above instructions.
If you figure out, please post it to http://askubuntu.com/q/50656/6969 or something.
Offline
The directory shows as drwx, and debugfs is mounted rw; I tried chmod-ing it but it made no difference.
Right now I am inclining to simply fixing the DSDT tables. Is there an easy way how I could incorporate your fix into the faulty DSDT table without having to deal with the 110 errors reported by the original poster above? Ignoring those errors leaves my system in a lockup. If not, any suggestions on how I'd go about fixing the errors?
Thanks!
Offline
It is not about the directory, but the custom_method file. Have you loaded the custom_method module? Do that before doing anything else. Rebuilding the kernel with a full DSDT override is not recommended if you don't know if you're doing (even if you do know, custom_method is much easier to use)
Offline