tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Thinkpad X200 volume hotkeys
On Mon, Jan 22, 2024 at 10:39:28PM +0000, Taylor R Campbell wrote:
> > Date: Mon, 22 Jan 2024 20:49:56 +0100
> > From: Andreas Hecht <a.e.hecht%t-online.de@localhost>
> >
> > I am trying to get the volume hotkeys (VolumeUp, VolumeDown, VolumeMute) on my
> > Lenovo Thinkpad X200 to work. Unfortunately the respective hotkey events are
> > not seen by thinkpad_acpi driver's thinkpad_notify_handler. The comments (->
> > "Not seen on T61") in the driver indicate that these volume hotkeys are not
> > working for the Thinkpad T61 either. Could someone please point me in the right
> > direction how to fix this? The volume hotkeys work fine on the same X200 with
> > OpenBSD 7.4.
>
> Some things to try:
>
> 1. Post the output of `acpidump -dt' somewhere -- maybe it will have
> clues.
>
> 2. Run
>
> dtrace -n 'sdt:thinkpad:hotkey:MHKP { print(args[1]) }'
>
> and then try hitting the hotkeys, and post what comes out. (Hit ^C
> when done.)
>
> 3. If that doesn't turn anything up, could try:
>
> (a) dtracing fbt::wskbd_input:entry (print args[0]->dv_xname,
> args[1], and args[2]) and see if anything interesting comes
> out,
> (b) building a new kernel to printf what's happening inside
> thinkpad_attach to see if that helps, and maybe comparing with
> what OpenBSD does.
>
> And, if this is NetBSD 9.x, try NetBSD 10.0_RC3 -- it has had some
> changes in the Thinkpad hotkey driver.
Tested the volume hotkeys with a netbsd-10-0-RC3 kernel with ACPI_DEBUG
option enabled but volume hotkey events did not show up. Will try the
suggestions you've made and post my findings. Thanks for your help. Here
is the acpidump:
/*
RSD PTR: OEM=COREv4, ACPI_Rev=2.0x (2)
XSDT=0x000000007d74a0e0, length=36, cksum=107
*/
/*
XSDT: Length=84, Revision=1, Checksum=95,
OEMID=COREv4, OEM Table ID=COREBOOT, OEM Revision=0x0,
Creator ID=CORE, Creator Revision=0x20210331
Entries={ 0x000000007d74dca0, 0x000000007d74ddc0, 0x000000007d74e6f0, 0x000000007d74e730, 0x000000007d74e7a0, 0x000000007d74e820 }
*/
/*
FACP: Length=276, Revision=6, Checksum=191,
OEMID=COREv4, OEM Table ID=COREBOOT, OEM Revision=0x0,
Creator ID=CORE, Creator Revision=0x20210331
FACS=0x7d74a240, DSDT=0x7d74a280
INT_MODEL=PIC
Preferred_PM_Profile=Mobile (2)
SCI_INT=9
SMI_CMD=0xb2, ACPI_ENABLE=0xe1, ACPI_DISABLE=0x1e, S4BIOS_REQ=0x0
PSTATE_CNT=0x0
PM1a_EVT_BLK=0x500-0x503
PM1a_CNT_BLK=0x504-0x505
PM2_CNT_BLK=0x550-0x550
PM_TMR_BLK=0x508-0x50b
GPE0_BLK=0x520-0x52f
P_LVL2_LAT=1 us, P_LVL3_LAT=57 us
FLUSH_SIZE=0, FLUSH_STRIDE=0
DUTY_OFFSET=1, DUTY_WIDTH=3
DAY_ALRM=13, MON_ALRM=0, CENTURY=0
IAPC_BOOT_ARCH={}
Flags={WBINVD,C1_SUPPORTED,SLEEP_BUTTON,S4_RTC_WAKE,DOCKING_SUPPORTED,RESET_REGISTER,PLATFORM_CLOCK}
RESET_REG=0xcf9:0[8] (IO), RESET_VALUE=0x6
ArmBootFlags={}
MinorRevision=0
X_FACS=0x000000007d74a240, X_DSDT=0x000000007d74a280
X_PM1a_EVT_BLK=0x500:0[32] (IO)
X_PM1a_CNT_BLK=0x504:0[16] (IO)
X_PM2_CNT_BLK=0x550:0[8] (IO)
X_PM_TMR_BLK=0x508:0[32] (IO)
X_GPE0_BLK=0x520:0[128] (IO)
HypervisorId=0x0000000000000000
*/
/*
FACS: Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
Global_Lock={}
Flags={}
Version=1
OspmFlags={}
*/
/*
DSDT: Length=14868, Revision=2, Checksum=52,
OEMID=COREv4, OEM Table ID=COREBOOT, OEM Revision=0x20090419,
Creator ID=INTL, Creator Revision=0x20210331
*/
/*
SSDT: Length=2346, Revision=2, Checksum=114,
OEMID=COREv4, OEM Table ID=COREBOOT, OEM Revision=0x2a,
Creator ID=CORE, Creator Revision=0x20210331
Data={
53 53 44 54 2a 09 00 00 02 72 43 4f 52 45 76 34
43 4f 52 45 42 4f 4f 54 2a 00 00 00 43 4f 52 45
31 03 21 20 5b 82 82 04 00 43 54 42 4c 08 5f 48
49 44 0d 42 4f 4f 54 30 30 30 30 00 08 5f 55 49
44 00 14 8b 00 00 5f 53 54 41 00 a4 0a 0b 08 5f
43 52 53 11 84 01 00 0b 0e 00 86 09 00 00 00 f0
76 7d 00 80 00 00 79 00 10 82 01 00 5c 2f 03 5f
53 42 5f 50 43 49 30 4c 50 43 42 5b 83 8a 18 00
5c 2e 5f 53 42 5f 43 50 30 30 00 10 05 00 00 06
08 5f 50 43 54 12 2c 02 11 14 0a 11 82 0c 00 7f
00 00 00 00 00 00 00 00 00 00 00 79 00 11 14 0a
11 82 0c 00 7f 00 00 00 00 00 00 00 00 00 00 00
79 00 08 5f 50 53 44 12 8c 01 00 01 12 87 01 00
05 0a 05 0a 00 0c 00 00 00 00 0c fe 00 00 00 0c
02 00 00 00 08 5f 50 53 53 12 80 09 00 04 12 82
02 00 06 0c e6 09 00 00 0c b8 88 00 00 0c 00 00
00 00 0c 00 00 00 00 0c 2b 0a 00 00 0c 2b 0a 00
00 12 82 02 00 06 0c e5 09 00 00 0c b8 88 00 00
0c 00 00 00 00 0c 00 00 00 00 0c 25 49 00 00 0c
25 49 00 00 12 82 02 00 06 0c 40 06 00 00 0c 98
3a 00 00 0c 00 00 00 00 0c 00 00 00 00 0c 17 06
00 00 0c 17 06 00 00 12 82 02 00 06 0c 20 03 00
00 0c e0 2e 00 00 0c 00 00 00 00 0c 00 00 00 00
0c 11 86 00 00 0c 11 86 00 00 14 8b 00 00 5f 50
50 43 00 a4 0a 00 08 5f 43 53 54 12 8b 07 00 04
0a 03 12 86 02 00 04 11 87 01 00 0b 11 00 82 0c
00 7f 01 02 01 00 00 00 00 00 00 00 00 79 00 0a
01 0b 01 00 0c e8 03 00 00 12 86 02 00 04 11 87
01 00 0b 11 00 82 0c 00 7f 01 02 01 10 00 00 00
00 00 00 00 79 00 0a 02 0b 01 00 0c f4 01 00 00
12 86 02 00 04 11 87 01 00 0b 11 00 82 0c 00 7f
01 02 01 20 00 00 00 00 00 00 00 79 00 0a 03 0b
37 00 0c fa 00 00 00 5b 83 8a 18 00 5c 2e 5f 53
42 5f 43 50 30 31 01 00 00 00 00 00 08 5f 50 43
54 12 2c 02 11 14 0a 11 82 0c 00 7f 00 00 00 00
00 00 00 00 00 00 00 79 00 11 14 0a 11 82 0c 00
7f 00 00 00 00 00 00 00 00 00 00 00 79 00 08 5f
50 53 44 12 8c 01 00 01 12 87 01 00 05 0a 05 0a
00 0c 00 00 00 00 0c fe 00 00 00 0c 02 00 00 00
08 5f 50 53 53 12 80 09 00 04 12 82 02 00 06 0c
e6 09 00 00 0c b8 88 00 00 0c 00 00 00 00 0c 00
00 00 00 0c 2b 0a 00 00 0c 2b 0a 00 00 12 82 02
00 06 0c e5 09 00 00 0c b8 88 00 00 0c 00 00 00
00 0c 00 00 00 00 0c 25 49 00 00 0c 25 49 00 00
12 82 02 00 06 0c 40 06 00 00 0c 98 3a 00 00 0c
00 00 00 00 0c 00 00 00 00 0c 17 06 00 00 0c 17
06 00 00 12 82 02 00 06 0c 20 03 00 00 0c e0 2e
00 00 0c 00 00 00 00 0c 00 00 00 00 0c 11 86 00
00 0c 11 86 00 00 14 8b 00 00 5f 50 50 43 00 a4
0a 00 08 5f 43 53 54 12 8b 07 00 04 0a 03 12 86
02 00 04 11 87 01 00 0b 11 00 82 0c 00 7f 01 02
01 00 00 00 00 00 00 00 00 79 00 0a 01 0b 01 00
0c e8 03 00 00 12 86 02 00 04 11 87 01 00 0b 11
00 82 0c 00 7f 01 02 01 10 00 00 00 00 00 00 00
79 00 0a 02 0b 01 00 0c f4 01 00 00 12 86 02 00
04 11 87 01 00 0b 11 00 82 0c 00 7f 01 02 01 20
00 00 00 00 00 00 00 79 00 0a 03 0b 37 00 0c fa
00 00 00 08 50 50 4b 47 12 88 01 00 02 5c 2e 5f
53 42 5f 43 50 30 30 5c 2e 5f 53 42 5f 43 50 30
31 14 86 02 00 5c 2e 5f 53 42 5f 43 4e 4f 54 01
86 5c 2e 5f 53 42 5f 43 50 30 30 68 86 5c 2e 5f
53 42 5f 43 50 30 31 68 10 8b 00 00 5c 00 08 4d
50 45 4e 00 10 89 0f 00 5c 2f 03 5f 53 42 5f 50
43 49 30 47 46 58 30 14 8d 01 00 5f 44 4f 44 00
a4 12 83 01 00 03 0c 00 01 01 80 0c 40 02 01 80
0c 10 04 01 80 5b 82 81 03 00 56 47 41 30 08 5f
41 44 52 0c 00 01 00 00 14 8b 00 00 5f 44 43 53
00 a4 0a 1d 14 8a 00 00 5f 44 47 53 00 a4 00 14
88 00 00 5f 44 53 53 01 5b 82 81 03 00 54 56 30
5f 08 5f 41 44 52 0c 40 02 00 00 14 8b 00 00 5f
44 43 53 00 a4 0a 1d 14 8a 00 00 5f 44 47 53 00
a4 00 14 88 00 00 5f 44 53 53 01 5b 82 81 06 00
4c 43 44 30 08 5f 41 44 52 0c 10 04 00 00 14 8f
00 00 5f 42 43 4c 00 a4 5e 5e 58 42 43 4c 14 8f
00 00 5f 42 43 4d 01 5e 5e 58 42 43 4d 68 14 8f
00 00 5f 42 51 43 00 a4 5e 5e 58 42 51 43 14 8b
00 00 5f 44 43 53 00 a4 0a 1d 14 8a 00 00 5f 44
47 53 00 a4 00 14 88 00 00 5f 44 53 53 01 10 8d
02 00 5c 2f 03 5f 53 42 5f 50 43 49 30 52 50 30
34 5b 82 89 01 00 53 4c 4f 54 08 5f 41 44 52 0a
00 14 8a 00 00 5f 52 4d 56 00 a4 01 10 8e 07 00
5c 5f 47 50 45 14 85 07 00 5f 4c 30 31 00 a0 8c
06 00 5c 2f 04 5f 53 42 5f 50 43 49 30 52 50 30
34 48 50 43 53 5b 22 0a 64 70 01 5c 2f 04 5f 53
42 5f 50 43 49 30 52 50 30 34 48 50 43 53 a0 8c
03 00 5c 2f 04 5f 53 42 5f 50 43 49 30 52 50 30
34 50 44 43 5f 70 01 5c 2f 04 5f 53 42 5f 50 43
49 30 52 50 30 34 50 44 43 5f 86 5c 2f 03 5f 53
42 5f 50 43 49 30 52 50 30 34 00 10 87 36 00 5c
2e 5f 53 42 5f 50 43 49 30 14 89 35 00 5f 50 52
54 00 a0 8a 12 00 50 49 43 4d a4 12 81 12 00 0f
12 82 01 00 04 0c ff ff 02 00 0a 00 0a 00 0c 10
00 00 00 12 82 01 00 04 0c ff ff 19 00 0a 00 0a
00 0c 10 00 00 00 12 82 01 00 04 0c ff ff 1a 00
0a 00 0a 00 0c 10 00 00 00 12 82 01 00 04 0c ff
ff 1a 00 0a 01 0a 00 0c 11 00 00 00 12 82 01 00
04 0c ff ff 1a 00 0a 02 0a 00 0c 12 00 00 00 12
82 01 00 04 0c ff ff 1b 00 0a 00 0a 00 0c 10 00
00 00 12 82 01 00 04 0c ff ff 1c 00 0a 00 0a 00
0c 10 00 00 00 12 82 01 00 04 0c ff ff 1c 00 0a
01 0a 00 0c 11 00 00 00 12 82 01 00 04 0c ff ff
1c 00 0a 02 0a 00 0c 12 00 00 00 12 82 01 00 04
0c ff ff 1c 00 0a 03 0a 00 0c 13 00 00 00 12 82
01 00 04 0c ff ff 1d 00 0a 00 0a 00 0c 10 00 00
00 12 82 01 00 04 0c ff ff 1d 00 0a 01 0a 00 0c
11 00 00 00 12 82 01 00 04 0c ff ff 1d 00 0a 02
0a 00 0c 12 00 00 00 12 82 01 00 04 0c ff ff 1f
00 0a 01 0a 00 0c 11 00 00 00 12 82 01 00 04 0c
ff ff 1f 00 0a 02 0a 00 0c 12 00 00 00 a1 85 22
00 a4 12 80 22 00 0f 12 83 02 00 04 0c ff ff 02
00 0a 00 5c 2f 04 5f 53 42 5f 50 43 49 30 4c 50
43 42 4c 4e 4b 41 0c 00 00 00 00 12 83 02 00 04
0c ff ff 19 00 0a 00 5c 2f 04 5f 53 42 5f 50 43
49 30 4c 50 43 42 4c 4e 4b 41 0c 00 00 00 00 12
83 02 00 04 0c ff ff 1a 00 0a 00 5c 2f 04 5f 53
42 5f 50 43 49 30 4c 50 43 42 4c 4e 4b 41 0c 00
00 00 00 12 83 02 00 04 0c ff ff 1a 00 0a 01 5c
2f 04 5f 53 42 5f 50 43 49 30 4c 50 43 42 4c 4e
4b 42 0c 00 00 00 00 12 83 02 00 04 0c ff ff 1a
00 0a 02 5c 2f 04 5f 53 42 5f 50 43 49 30 4c 50
43 42 4c 4e 4b 43 0c 00 00 00 00 12 83 02 00 04
0c ff ff 1b 00 0a 00 5c 2f 04 5f 53 42 5f 50 43
49 30 4c 50 43 42 4c 4e 4b 41 0c 00 00 00 00 12
83 02 00 04 0c ff ff 1c 00 0a 00 5c 2f 04 5f 53
42 5f 50 43 49 30 4c 50 43 42 4c 4e 4b 41 0c 00
00 00 00 12 83 02 00 04 0c ff ff 1c 00 0a 01 5c
2f 04 5f 53 42 5f 50 43 49 30 4c 50 43 42 4c 4e
4b 42 0c 00 00 00 00 12 83 02 00 04 0c ff ff 1c
00 0a 02 5c 2f 04 5f 53 42 5f 50 43 49 30 4c 50
43 42 4c 4e 4b 43 0c 00 00 00 00 12 83 02 00 04
0c ff ff 1c 00 0a 03 5c 2f 04 5f 53 42 5f 50 43
49 30 4c 50 43 42 4c 4e 4b 44 0c 00 00 00 00 12
83 02 00 04 0c ff ff 1d 00 0a 00 5c 2f 04 5f 53
42 5f 50 43 49 30 4c 50 43 42 4c 4e 4b 41 0c 00
00 00 00 12 83 02 00 04 0c ff ff 1d 00 0a 01 5c
2f 04 5f 53 42 5f 50 43 49 30 4c 50 43 42 4c 4e
4b 42 0c 00 00 00 00 12 83 02 00 04 0c ff ff 1d
00 0a 02 5c 2f 04 5f 53 42 5f 50 43 49 30 4c 50
43 42 4c 4e 4b 43 0c 00 00 00 00 12 83 02 00 04
0c ff ff 1f 00 0a 01 5c 2f 04 5f 53 42 5f 50 43
49 30 4c 50 43 42 4c 4e 4b 42 0c 00 00 00 00 12
83 02 00 04 0c ff ff 1f 00 0a 02 5c 2f 04 5f 53
42 5f 50 43 49 30 4c 50 43 42 4c 4e 4b 43 0c 00
00 00 00 10 86 03 00 5c 2f 05 5f 53 42 5f 50 43
49 30 4c 50 43 42 45 43 5f 5f 48 4b 45 59 08 48
42 44 43 0a 01 08 48 57 41 4e 0a 01 08 48 4b 42
4c 0a 00 08 48 55 57 42 0a 01
}
*/
/*
MCFG: Length=60, Revision=1, Checksum=169,
OEMID=COREv4, OEM Table ID=COREBOOT, OEM Revision=0x0,
Creator ID=CORE, Creator Revision=0x20210331
Base Address=0x00000000f0000000
Segment Group=0x0000
Start Bus=0
End Bus=63
*/
/*
APIC: Length=104, Revision=3, Checksum=139,
OEMID=COREv4, OEM Table ID=COREBOOT, OEM Revision=0x0,
Creator ID=CORE, Creator Revision=0x20210331
Local APIC ADDR=0xfee00000
Flags={PC-AT}
Type=Local APIC
ACPI CPU=0
Flags={ENABLED}
APIC ID=0
Type=Local APIC
ACPI CPU=1
Flags={ENABLED}
APIC ID=1
Type=IO APIC
APIC ID=2
INT BASE=0
ADDR=0x00000000fec00000
Type=Local APIC NMI
ACPI CPU=0
LINT Pin=1
Flags={Polarity=active-hi, Trigger=edge}
Type=Local APIC NMI
ACPI CPU=1
LINT Pin=1
Flags={Polarity=active-hi, Trigger=edge}
Type=INT Override
BUS=0
IRQ=0
INTR=2
Flags={Polarity=active-hi, Trigger=edge}
Type=INT Override
BUS=0
IRQ=9
INTR=9
Flags={Polarity=active-hi, Trigger=level}
*/
/*
DMAR: Length=120, Revision=1, Checksum=41,
OEMID=COREv4, OEM Table ID=COREBOOT, OEM Revision=0x0,
Creator ID=CORE, Creator Revision=0x20210331
Host Address Width=36
Flags={}
Type=DRHD
Length=24
Flags={}
Segment=0
Address=0x00000000fed90000
Device Scope:
Type=PCI Endpoint Device
Length=8
EnumerationId=0
StartBusNumber=0
Path={27:0}
Type=DRHD
Length=32
Flags={}
Segment=0
Address=0x00000000fed91000
Device Scope:
Type=PCI Endpoint Device
Length=8
EnumerationId=0
StartBusNumber=0
Path={2:0}
Type=PCI Endpoint Device
Length=8
EnumerationId=0
StartBusNumber=0
Path={2:1}
Type=DRHD
Length=16
Flags={INCLUDE_ALL}
Segment=0
Address=0x00000000fed93000
*/
/*
HPET: Length=56, Revision=1, Checksum=144,
OEMID=COREv4, OEM Table ID=COREBOOT, OEM Revision=0x0,
Creator ID=CORE, Creator Revision=0x20210331
HPET Number=0
ADDR=0x00000000fed00000:0[64] (Memory)
HW Rev=0x1
Comparators=3
Counter Size=1
Legacy IRQ routing capable={TRUE}
PCI Vendor ID=0x8086
Minimal Tick=128
Flags=0x00
*/
/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20221020 (64-bit version)
* Copyright (c) 2000 - 2022 Intel Corporation
*
* Disassembling to symbolic ASL+ operators
*
* Disassembly of /tmp/acpidump.eqwbvr/acpdump.din, Wed Jan 24 06:26:25 2024
*
* Original Table Header:
* Signature "DSDT"
* Length 0x0000431A (17178)
* Revision 0x02
* Checksum 0x02
* OEM ID "COREv4"
* OEM Table ID "COREBOOT"
* OEM Revision 0x20090419 (537461785)
* Compiler ID "INTL"
* Compiler Version 0x20210331 (539034417)
*/
DefinitionBlock ("", "DSDT", 2, "COREv4", "COREBOOT", 0x20090419)
{
External (_SB_.CNOT, MethodObj) // 1 Arguments
External (_SB_.CP00, DeviceObj)
External (_SB_.CP00._PPC, UnknownObj)
External (_SB_.CP01._PPC, UnknownObj)
External (_SB_.PCI0.GFX0.LCD0, DeviceObj)
External (DNVS, OpRegionObj)
External (GNVS, OpRegionObj)
External (HBDC, IntObj)
External (HKBL, IntObj)
External (HUWB, IntObj)
External (HWAN, IntObj)
External (MPEN, IntObj)
External (PPKG, MethodObj) // 0 Arguments
Scope (\)
{
OperationRegion (GNVS, SystemMemory, 0x7D7FEA20, 0xFE)
}
Name (OSYS, Zero)
Name (PICM, Zero)
Name (PWRS, One)
Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
{
PICM = Arg0
}
Scope (_SB)
{
Name (PCBA, 0xF0000000)
Name (PCLN, 0x04000000)
OperationRegion (PCFG, SystemMemory, PCBA, PCLN)
}
Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep
{
\_SB.PCI0.LPCB.EC.MUTE (One)
\_SB.PCI0.LPCB.EC.USBP (Zero)
\_SB.PCI0.LPCB.EC.RADI (Zero)
}
Method (_WAK, 1, NotSerialized) // _WAK: Wake
{
\_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
If ((Arg0 == 0x03)){}
If ((Arg0 == 0x04)){}
Return (Package (0x02)
{
Zero,
Zero
})
}
Scope (_SB)
{
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
GOS ()
}
}
Field (GNVS, ByteAcc, NoLock, Preserve)
{
Offset (0x02),
SMIF, 8,
Offset (0x04),
Offset (0x05),
SCIF, 8,
Offset (0x07),
Offset (0x08),
Offset (0x09),
Offset (0x0A),
Offset (0x0B),
P80D, 32,
LIDS, 8,
Offset (0x11),
DBGS, 8,
LINX, 8,
DCKN, 8,
ACTT, 8,
TPSV, 8,
TC1V, 8,
TC2V, 8,
TSPV, 8,
TCRT, 8,
DTSE, 8,
DTS1, 8,
FLVL, 8,
Offset (0x1E),
BNUM, 8,
B0SC, 8,
B1SC, 8,
B2SC, 8,
B0SS, 8,
B1SS, 8,
B2SS, 8,
Offset (0x28),
Offset (0x29),
Offset (0x2A),
PCP0, 8,
PCP1, 8,
PPCM, 8,
Offset (0x32),
NATP, 8,
CMAP, 8,
CMBP, 8,
LPTP, 8,
FDCP, 8,
RFDV, 8,
HOTK, 8,
RTCF, 8,
UTIL, 8,
ACIN, 8,
IGDS, 8,
TLST, 8,
CADL, 8,
PADL, 8,
Offset (0x64),
BLCS, 8,
BRTL, 8,
ODDS, 8,
Offset (0x6E),
ALSE, 8,
ALAF, 8,
LLOW, 8,
LHIH, 8,
Offset (0x78),
EMAE, 8,
EMAP, 16,
EMAL, 16,
Offset (0x82),
MEFE, 8,
Offset (0x8C),
TPMP, 8,
TPME, 8,
Offset (0x96),
GTF0, 56,
GTF1, 56,
GTF2, 56,
IDEM, 8,
IDET, 8,
Offset (0xF0),
DOCK, 8,
BTEN, 8,
CBMC, 32,
PM1I, 32,
GPEI, 32
}
OperationRegion (APMP, SystemIO, 0xB2, 0x02)
Field (APMP, ByteAcc, NoLock, Preserve)
{
APMC, 8,
APMS, 8
}
OperationRegion (POST, SystemIO, 0x80, One)
Field (POST, ByteAcc, Lock, Preserve)
{
DBG0, 8
}
Method (TRAP, 1, Serialized)
{
SMIF = Arg0
TRP0 = Zero
Return (SMIF) /* \SMIF */
}
Method (GOS, 0, NotSerialized)
{
OSYS = 0x07D0
If (CondRefOf (_OSI))
{
If (_OSI ("Windows 2001"))
{
OSYS = 0x07D1
}
If (_OSI ("Windows 2001 SP1"))
{
OSYS = 0x07D1
}
If (_OSI ("Windows 2001 SP2"))
{
OSYS = 0x07D2
}
If (_OSI ("Windows 2006"))
{
OSYS = 0x07D6
}
}
}
Method (HPTS, 1, NotSerialized)
{
If (!Arg0)
{
Return (Zero)
}
If ((OSYS < 0x07D1))
{
Return (0x0B)
}
Return (0x0F)
}
Scope (_GPE)
{
Method (_L18, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF
{
Local0 = \_SB.PCI0.LPCB.EC.WAKE
Local0++
}
}
Method (PNOT, 0, NotSerialized)
{
If (MPEN)
{
\_SB.CNOT (0x80)
Sleep (0x64)
\_SB.CNOT (0x81)
}
Else
{
Notify (\_SB.CP00, 0x80) // Performance Capability Change
Sleep (0x64)
Notify (\_SB.CP00, 0x81) // C-State Change
}
}
Scope (_SB)
{
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID
Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID
Name (_BBN, Zero) // _BBN: BIOS Bus Number
Device (MCHC)
{
Name (_ADR, Zero) // _ADR: Address
OperationRegion (MCHP, PCI_Config, Zero, 0x0100)
Field (MCHP, DWordAcc, NoLock, Preserve)
{
Offset (0x40),
EPEN, 1,
, 11,
EPBR, 24,
Offset (0x48),
MHEN, 1,
, 13,
MHBR, 22,
Offset (0x60),
PXEN, 1,
PXSZ, 2,
, 23,
PXBR, 10,
Offset (0x68),
DMEN, 1,
, 11,
DMBR, 24,
Offset (0x90),
, 4,
PM0H, 2,
Offset (0x91),
PM1L, 2,
, 2,
PM1H, 2,
Offset (0x92),
PM2L, 2,
, 2,
PM2H, 2,
Offset (0x93),
PM3L, 2,
, 2,
PM3H, 2,
Offset (0x94),
PM4L, 2,
, 2,
PM4H, 2,
Offset (0x95),
PM5L, 2,
, 2,
PM5H, 2,
Offset (0x96),
PM6L, 2,
, 2,
PM6H, 2,
Offset (0x97),
Offset (0xA0),
TOM, 8,
Offset (0xB0),
, 4,
TLUD, 12
}
}
Name (MCRS, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
0x0000, // Granularity
0x0000, // Range Minimum
0x00FF, // Range Maximum
0x0000, // Translation Offset
0x0100, // Length
,, )
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x00000000, // Granularity
0x00000000, // Range Minimum
0x00000CF7, // Range Maximum
0x00000000, // Translation Offset
0x00000CF8, // Length
,, , TypeStatic, DenseTranslation)
IO (Decode16,
0x0CF8, // Range Minimum
0x0CF8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x00000000, // Granularity
0x00000D00, // Range Minimum
0x0000FFFF, // Range Maximum
0x00000000, // Translation Offset
0x0000F300, // Length
,, , TypeStatic, DenseTranslation)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000A0000, // Range Minimum
0x000BFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00020000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000C0000, // Range Minimum
0x000C3FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000C4000, // Range Minimum
0x000C7FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000C8000, // Range Minimum
0x000CBFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000CC000, // Range Minimum
0x000CFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000D0000, // Range Minimum
0x000D3FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000D4000, // Range Minimum
0x000D7FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000D8000, // Range Minimum
0x000DBFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000DC000, // Range Minimum
0x000DFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000E0000, // Range Minimum
0x000E3FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000E4000, // Range Minimum
0x000E7FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000E8000, // Range Minimum
0x000EBFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000EC000, // Range Minimum
0x000EFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000F0000, // Range Minimum
0x000FFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00010000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x00000000, // Range Minimum
0xFEBFFFFF, // Range Maximum
0x00000000, // Translation Offset
0xFEC00000, // Length
,, _Y00, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0xFED40000, // Range Minimum
0xFED44FFF, // Range Maximum
0x00000000, // Translation Offset
0x00005000, // Length
,, , AddressRangeMemory, TypeStatic)
})
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
CreateDWordField (MCRS, \_SB.PCI0._Y00._MIN, PMIN) // _MIN: Minimum Base Address
CreateDWordField (MCRS, \_SB.PCI0._Y00._MAX, PMAX) // _MAX: Maximum Base Address
CreateDWordField (MCRS, \_SB.PCI0._Y00._LEN, PLEN) // _LEN: Length
PMIN = (^MCHC.TLUD << 0x14)
PLEN = ((PMAX - PMIN) + One)
Return (MCRS) /* \_SB_.PCI0.MCRS */
}
Device (PDRC)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Name (PDRS, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFED1C000, // Address Base
0x00004000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFED14000, // Address Base
0x00004000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFED18000, // Address Base
0x00001000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFED19000, // Address Base
0x00001000, // Address Length
)
Memory32Fixed (ReadWrite,
0xF0000000, // Address Base
0x04000000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFED20000, // Address Base
0x00020000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFED40000, // Address Base
0x00005000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFED45000, // Address Base
0x0004B000, // Address Length
)
})
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Return (PDRS) /* \_SB_.PCI0.PDRC.PDRS */
}
}
Device (PEGP)
{
Name (_ADR, 0x00010000) // _ADR: Address
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM)
{
Return (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
}
})
}
Else
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
^^LPCB.LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
One,
^^LPCB.LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
^^LPCB.LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
^^LPCB.LNKD,
Zero
}
})
}
}
}
Device (GFX0)
{
Name (_ADR, 0x00020000) // _ADR: Address
}
Scope (\)
{
OperationRegion (IO_T, SystemIO, 0x0800, 0x10)
Field (IO_T, ByteAcc, NoLock, Preserve)
{
Offset (0x08),
TRP0, 8
}
OperationRegion (PMIO, SystemIO, 0x0500, 0x80)
Field (PMIO, ByteAcc, NoLock, Preserve)
{
Offset (0x11),
THRO, 1,
Offset (0x42),
, 1,
GPEC, 1,
Offset (0x64),
, 9,
SCIS, 1
}
OperationRegion (GPIO, SystemIO, 0x0580, 0x3C)
Field (GPIO, ByteAcc, NoLock, Preserve)
{
GU00, 8,
GU01, 8,
GU02, 8,
GU03, 8,
GIO0, 8,
GIO1, 8,
GIO2, 8,
GIO3, 8,
Offset (0x0C),
GP00, 1,
GP01, 1,
GP02, 1,
GP03, 1,
GP04, 1,
GP05, 1,
GP06, 1,
GP07, 1,
GP08, 1,
GP09, 1,
GP10, 1,
GP11, 1,
GP12, 1,
GP13, 1,
GP14, 1,
GP15, 1,
GP16, 1,
GP17, 1,
GP18, 1,
GP19, 1,
GP20, 1,
GP21, 1,
GP22, 1,
GP23, 1,
GP24, 1,
GP25, 1,
GP26, 1,
GP27, 1,
GP28, 1,
GP29, 1,
GP30, 1,
GP31, 1,
Offset (0x18),
GB00, 8,
GB01, 8,
GB02, 8,
GB03, 8,
Offset (0x2C),
GIV0, 8,
GIV1, 8,
GIV2, 8,
GIV3, 8,
GU04, 8,
GU05, 8,
GU06, 8,
GU07, 8,
GIO4, 8,
GIO5, 8,
GIO6, 8,
GIO7, 8,
GP32, 1,
GP33, 1,
GP34, 1,
GP35, 1,
GP36, 1,
GP37, 1,
GP38, 1,
GP39, 1,
GL05, 8,
GL06, 8,
GL07, 8
}
OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000)
Field (RCRB, DWordAcc, Lock, Preserve)
{
Offset (0x1000),
Offset (0x3000),
Offset (0x3404),
HPAS, 2,
, 5,
HPTE, 1,
Offset (0x3418),
, 2,
SA1D, 1,
SMBD, 1,
HDAD, 1,
, 2,
US6D, 1,
US1D, 1,
US2D, 1,
US3D, 1,
US4D, 1,
US5D, 1,
EH2D, 1,
LPBD, 1,
EH1D, 1,
RP1D, 1,
RP2D, 1,
RP3D, 1,
RP4D, 1,
RP5D, 1,
RP6D, 1,
Offset (0x341B),
THRD, 1,
SA2D, 1
}
}
Device (HDEF)
{
Name (_ADR, 0x001B0000) // _ADR: Address
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x05,
0x04
})
}
Name (IQAA, 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
}
})
Name (IQAP, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LPCB.LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LPCB.LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LPCB.LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LPCB.LNKD,
Zero
}
})
Name (IQBA, 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
}
})
Name (IQBP, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LPCB.LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LPCB.LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LPCB.LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LPCB.LNKA,
Zero
}
})
Name (IQCA, 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
}
})
Name (IQCP, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LPCB.LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LPCB.LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LPCB.LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LPCB.LNKB,
Zero
}
})
Name (IQDA, 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
}
})
Name (IQDP, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LPCB.LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LPCB.LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LPCB.LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LPCB.LNKC,
Zero
}
})
Method (IRQM, 1, Serialized)
{
Switch (ToInteger (Arg0))
{
Case (Package (0x02)
{
One,
0x05
}
)
{
If (PICM)
{
Return (IQAA) /* \_SB_.PCI0.IQAA */
}
Else
{
Return (IQAP) /* \_SB_.PCI0.IQAP */
}
}
Case (Package (0x02)
{
0x02,
0x06
}
)
{
If (PICM)
{
Return (IQBA) /* \_SB_.PCI0.IQBA */
}
Else
{
Return (IQBP) /* \_SB_.PCI0.IQBP */
}
}
Case (Package (0x02)
{
0x03,
0x07
}
)
{
If (PICM)
{
Return (IQCA) /* \_SB_.PCI0.IQCA */
}
Else
{
Return (IQCP) /* \_SB_.PCI0.IQCP */
}
}
Case (Package (0x02)
{
0x04,
0x08
}
)
{
If (PICM)
{
Return (IQDA) /* \_SB_.PCI0.IQDA */
}
Else
{
Return (IQDP) /* \_SB_.PCI0.IQDP */
}
}
Default
{
If (PICM)
{
Return (IQDA) /* \_SB_.PCI0.IQDA */
}
Else
{
Return (IQDP) /* \_SB_.PCI0.IQDP */
}
}
}
}
Device (RP01)
{
Name (_ADR, 0x001C0000) // _ADR: Address
OperationRegion (RPCS, PCI_Config, Zero, 0xFF)
Field (RPCS, AnyAcc, NoLock, Preserve)
{
Offset (0x4C),
Offset (0x4F),
RPPN, 8,
Offset (0x5A),
, 3,
PDC, 1,
Offset (0xDF),
, 6,
HPCS, 1
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
Return (IRQM (RPPN))
}
}
Device (RP02)
{
Name (_ADR, 0x001C0001) // _ADR: Address
OperationRegion (RPCS, PCI_Config, Zero, 0xFF)
Field (RPCS, AnyAcc, NoLock, Preserve)
{
Offset (0x4C),
Offset (0x4F),
RPPN, 8,
Offset (0x5A),
, 3,
PDC, 1,
Offset (0xDF),
, 6,
HPCS, 1
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
Return (IRQM (RPPN))
}
}
Device (RP03)
{
Name (_ADR, 0x001C0002) // _ADR: Address
OperationRegion (RPCS, PCI_Config, Zero, 0xFF)
Field (RPCS, AnyAcc, NoLock, Preserve)
{
Offset (0x4C),
Offset (0x4F),
RPPN, 8,
Offset (0x5A),
, 3,
PDC, 1,
Offset (0xDF),
, 6,
HPCS, 1
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
Return (IRQM (RPPN))
}
}
Device (RP04)
{
Name (_ADR, 0x001C0003) // _ADR: Address
OperationRegion (RPCS, PCI_Config, Zero, 0xFF)
Field (RPCS, AnyAcc, NoLock, Preserve)
{
Offset (0x4C),
Offset (0x4F),
RPPN, 8,
Offset (0x5A),
, 3,
PDC, 1,
Offset (0xDF),
, 6,
HPCS, 1
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
Return (IRQM (RPPN))
}
}
Device (RP05)
{
Name (_ADR, 0x001C0004) // _ADR: Address
OperationRegion (RPCS, PCI_Config, Zero, 0xFF)
Field (RPCS, AnyAcc, NoLock, Preserve)
{
Offset (0x4C),
Offset (0x4F),
RPPN, 8,
Offset (0x5A),
, 3,
PDC, 1,
Offset (0xDF),
, 6,
HPCS, 1
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
Return (IRQM (RPPN))
}
}
Device (RP06)
{
Name (_ADR, 0x001C0005) // _ADR: Address
OperationRegion (RPCS, PCI_Config, Zero, 0xFF)
Field (RPCS, AnyAcc, NoLock, Preserve)
{
Offset (0x4C),
Offset (0x4F),
RPPN, 8,
Offset (0x5A),
, 3,
PDC, 1,
Offset (0xDF),
, 6,
HPCS, 1
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
Return (IRQM (RPPN))
}
}
Device (RP07)
{
Name (_ADR, 0x001C0006) // _ADR: Address
OperationRegion (RPCS, PCI_Config, Zero, 0xFF)
Field (RPCS, AnyAcc, NoLock, Preserve)
{
Offset (0x4C),
Offset (0x4F),
RPPN, 8,
Offset (0x5A),
, 3,
PDC, 1,
Offset (0xDF),
, 6,
HPCS, 1
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
Return (IRQM (RPPN))
}
}
Device (RP08)
{
Name (_ADR, 0x001C0007) // _ADR: Address
OperationRegion (RPCS, PCI_Config, Zero, 0xFF)
Field (RPCS, AnyAcc, NoLock, Preserve)
{
Offset (0x4C),
Offset (0x4F),
RPPN, 8,
Offset (0x5A),
, 3,
PDC, 1,
Offset (0xDF),
, 6,
HPCS, 1
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
Return (IRQM (RPPN))
}
}
Device (USB1)
{
Name (_ADR, 0x001D0000) // _ADR: Address
OperationRegion (U01P, PCI_Config, Zero, 0x0100)
Field (U01P, DWordAcc, NoLock, Preserve)
{
Offset (0xC4),
U1WE, 2
}
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x03,
0x04
})
Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
{
If (Arg0)
{
U1WE = 0x03
}
Else
{
U1WE = Zero
}
}
Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State
{
Return (0x02)
}
}
Device (USB2)
{
Name (_ADR, 0x001D0001) // _ADR: Address
OperationRegion (U02P, PCI_Config, Zero, 0x0100)
Field (U02P, DWordAcc, NoLock, Preserve)
{
Offset (0xC4),
U2WE, 2
}
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x03,
0x04
})
Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
{
If (Arg0)
{
U2WE = 0x03
}
Else
{
U2WE = Zero
}
}
Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State
{
Return (0x02)
}
}
Device (USB3)
{
Name (_ADR, 0x001D0002) // _ADR: Address
OperationRegion (U03P, PCI_Config, Zero, 0x0100)
Field (U03P, DWordAcc, NoLock, Preserve)
{
Offset (0xC4),
U3WE, 2
}
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x03,
0x04
})
Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
{
If (Arg0)
{
U3WE = 0x03
}
Else
{
U3WE = Zero
}
}
Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State
{
Return (0x02)
}
}
Device (EHC1)
{
Name (_ADR, 0x001D0007) // _ADR: Address
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x0D,
0x04
})
Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State
{
Return (0x02)
}
Device (HUB7)
{
Name (_ADR, Zero) // _ADR: Address
Device (PRT1)
{
Name (_ADR, One) // _ADR: Address
}
Device (PRT2)
{
Name (_ADR, 0x02) // _ADR: Address
}
Device (PRT3)
{
Name (_ADR, 0x03) // _ADR: Address
}
Device (PRT4)
{
Name (_ADR, 0x04) // _ADR: Address
}
Device (PRT5)
{
Name (_ADR, 0x05) // _ADR: Address
}
Device (PRT6)
{
Name (_ADR, 0x06) // _ADR: Address
}
}
}
Device (USB4)
{
Name (_ADR, 0x001A0000) // _ADR: Address
OperationRegion (U01P, PCI_Config, Zero, 0x0100)
Field (U01P, DWordAcc, NoLock, Preserve)
{
Offset (0xC4),
U1WE, 2
}
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x03,
0x04
})
Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
{
If (Arg0)
{
U1WE = 0x03
}
Else
{
U1WE = Zero
}
}
Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State
{
Return (0x02)
}
}
Device (USB5)
{
Name (_ADR, 0x001A0001) // _ADR: Address
OperationRegion (U02P, PCI_Config, Zero, 0x0100)
Field (U02P, DWordAcc, NoLock, Preserve)
{
Offset (0xC4),
U2WE, 2
}
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x03,
0x04
})
Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
{
If (Arg0)
{
U2WE = 0x03
}
Else
{
U2WE = Zero
}
}
Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State
{
Return (0x02)
}
}
Device (USB6)
{
Name (_ADR, 0x001A0002) // _ADR: Address
OperationRegion (U03P, PCI_Config, Zero, 0x0100)
Field (U03P, DWordAcc, NoLock, Preserve)
{
Offset (0xC4),
U3WE, 2
}
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x03,
0x04
})
Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
{
If (Arg0)
{
U3WE = 0x03
}
Else
{
U3WE = Zero
}
}
Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State
{
Return (0x02)
}
}
Device (EHC2)
{
Name (_ADR, 0x001A0007) // _ADR: Address
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x0D,
0x04
})
Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State
{
Return (0x02)
}
Device (HUB7)
{
Name (_ADR, Zero) // _ADR: Address
Device (PRT1)
{
Name (_ADR, One) // _ADR: Address
}
Device (PRT2)
{
Name (_ADR, 0x02) // _ADR: Address
}
Device (PRT3)
{
Name (_ADR, 0x03) // _ADR: Address
}
Device (PRT4)
{
Name (_ADR, 0x04) // _ADR: Address
}
Device (PRT5)
{
Name (_ADR, 0x05) // _ADR: Address
}
Device (PRT6)
{
Name (_ADR, 0x06) // _ADR: Address
}
}
}
Device (PCIB)
{
Name (_ADR, 0x001E0000) // _ADR: Address
Device (SLT1)
{
Name (_ADR, Zero) // _ADR: Address
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x0B,
0x04
})
}
Device (SLT2)
{
Name (_ADR, 0x00010000) // _ADR: Address
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x0B,
0x04
})
}
Device (SLT3)
{
Name (_ADR, 0x00020000) // _ADR: Address
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x0B,
0x04
})
}
Device (SLT6)
{
Name (_ADR, 0x00050000) // _ADR: Address
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x0B,
0x04
})
}
Device (LANC)
{
Name (_ADR, 0x00080000) // _ADR: Address
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x0B,
0x03
})
}
Device (LANR)
{
Name (_ADR, Zero) // _ADR: Address
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x0B,
0x03
})
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM)
{
Return (Package (0x18)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x10
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x12
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x13
},
Package (0x04)
{
0x0001FFFF,
Zero,
Zero,
0x11
},
Package (0x04)
{
0x0001FFFF,
One,
Zero,
0x12
},
Package (0x04)
{
0x0001FFFF,
0x02,
Zero,
0x13
},
Package (0x04)
{
0x0001FFFF,
0x03,
Zero,
0x10
},
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)
{
0x0003FFFF,
Zero,
Zero,
0x10
},
Package (0x04)
{
0x0003FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x0003FFFF,
0x02,
Zero,
0x12
},
Package (0x04)
{
0x0003FFFF,
0x03,
Zero,
0x13
},
Package (0x04)
{
0x0004FFFF,
Zero,
Zero,
0x10
},
Package (0x04)
{
0x0004FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x0004FFFF,
0x02,
Zero,
0x12
},
Package (0x04)
{
0x0004FFFF,
0x03,
Zero,
0x13
},
Package (0x04)
{
0x0005FFFF,
Zero,
Zero,
0x11
},
Package (0x04)
{
0x0005FFFF,
One,
Zero,
0x12
},
Package (0x04)
{
0x0005FFFF,
0x02,
Zero,
0x13
},
Package (0x04)
{
0x0005FFFF,
0x03,
Zero,
0x10
}
})
}
Else
{
Return (Package (0x18)
{
Package (0x04)
{
0xFFFF,
Zero,
^^LPCB.LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
One,
^^LPCB.LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
^^LPCB.LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
^^LPCB.LNKD,
Zero
},
Package (0x04)
{
0x0001FFFF,
Zero,
^^LPCB.LNKB,
Zero
},
Package (0x04)
{
0x0001FFFF,
One,
^^LPCB.LNKC,
Zero
},
Package (0x04)
{
0x0001FFFF,
0x02,
^^LPCB.LNKD,
Zero
},
Package (0x04)
{
0x0001FFFF,
0x03,
^^LPCB.LNKA,
Zero
},
Package (0x04)
{
0x0002FFFF,
Zero,
^^LPCB.LNKC,
Zero
},
Package (0x04)
{
0x0002FFFF,
One,
^^LPCB.LNKD,
Zero
},
Package (0x04)
{
0x0002FFFF,
0x02,
^^LPCB.LNKA,
Zero
},
Package (0x04)
{
0x0002FFFF,
0x03,
^^LPCB.LNKB,
Zero
},
Package (0x04)
{
0x0003FFFF,
Zero,
^^LPCB.LNKA,
Zero
},
Package (0x04)
{
0x0003FFFF,
One,
^^LPCB.LNKB,
Zero
},
Package (0x04)
{
0x0003FFFF,
0x02,
^^LPCB.LNKC,
Zero
},
Package (0x04)
{
0x0003FFFF,
0x03,
^^LPCB.LNKD,
Zero
},
Package (0x04)
{
0x0004FFFF,
Zero,
^^LPCB.LNKA,
Zero
},
Package (0x04)
{
0x0004FFFF,
One,
^^LPCB.LNKB,
Zero
},
Package (0x04)
{
0x0004FFFF,
0x02,
^^LPCB.LNKC,
Zero
},
Package (0x04)
{
0x0004FFFF,
0x03,
^^LPCB.LNKD,
Zero
},
Package (0x04)
{
0x0005FFFF,
Zero,
^^LPCB.LNKB,
Zero
},
Package (0x04)
{
0x0005FFFF,
One,
^^LPCB.LNKC,
Zero
},
Package (0x04)
{
0x0005FFFF,
0x02,
^^LPCB.LNKD,
Zero
},
Package (0x04)
{
0x0005FFFF,
0x03,
^^LPCB.LNKA,
Zero
}
})
}
}
}
Device (LPCB)
{
Name (_ADR, 0x001F0000) // _ADR: Address
OperationRegion (LPC0, PCI_Config, Zero, 0x0100)
Field (LPC0, AnyAcc, NoLock, Preserve)
{
Offset (0x40),
PMBS, 16,
Offset (0x60),
PRTA, 8,
PRTB, 8,
PRTC, 8,
PRTD, 8,
Offset (0x68),
PRTE, 8,
PRTF, 8,
PRTG, 8,
PRTH, 8,
Offset (0x80),
IOD0, 8,
IOD1, 8
}
Device (LNKA)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Method (_DIS, 0, Serialized) // _DIS: Disable Device
{
PRTA = 0x80
}
Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,10,11,12,14,15}
})
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Name (RTLA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{}
})
CreateWordField (RTLA, One, IRQ0)
IRQ0 = Zero
IRQ0 = (One << (PRTA & 0x0F))
Return (RTLA) /* \_SB_.PCI0.LPCB.LNKA._CRS.RTLA */
}
Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, One, IRQ0)
FindSetRightBit (IRQ0, Local0)
Local0--
PRTA = Local0
}
Method (_STA, 0, Serialized) // _STA: Status
{
If ((PRTA & 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
}
Device (LNKB)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x02) // _UID: Unique ID
Method (_DIS, 0, Serialized) // _DIS: Disable Device
{
PRTB = 0x80
}
Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,10,11,12,14,15}
})
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Name (RTLB, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{}
})
CreateWordField (RTLB, One, IRQ0)
IRQ0 = Zero
IRQ0 = (One << (PRTB & 0x0F))
Return (RTLB) /* \_SB_.PCI0.LPCB.LNKB._CRS.RTLB */
}
Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, One, IRQ0)
FindSetRightBit (IRQ0, Local0)
Local0--
PRTB = Local0
}
Method (_STA, 0, Serialized) // _STA: Status
{
If ((PRTB & 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
}
Device (LNKC)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x03) // _UID: Unique ID
Method (_DIS, 0, Serialized) // _DIS: Disable Device
{
PRTC = 0x80
}
Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,10,11,12,14,15}
})
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Name (RTLC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{}
})
CreateWordField (RTLC, One, IRQ0)
IRQ0 = Zero
IRQ0 = (One << (PRTC & 0x0F))
Return (RTLC) /* \_SB_.PCI0.LPCB.LNKC._CRS.RTLC */
}
Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, One, IRQ0)
FindSetRightBit (IRQ0, Local0)
Local0--
PRTC = Local0
}
Method (_STA, 0, Serialized) // _STA: Status
{
If ((PRTC & 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
}
Device (LNKD)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x04) // _UID: Unique ID
Method (_DIS, 0, Serialized) // _DIS: Disable Device
{
PRTD = 0x80
}
Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,10,11,12,14,15}
})
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Name (RTLD, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{}
})
CreateWordField (RTLD, One, IRQ0)
IRQ0 = Zero
IRQ0 = (One << (PRTD & 0x0F))
Return (RTLD) /* \_SB_.PCI0.LPCB.LNKD._CRS.RTLD */
}
Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, One, IRQ0)
FindSetRightBit (IRQ0, Local0)
Local0--
PRTD = Local0
}
Method (_STA, 0, Serialized) // _STA: Status
{
If ((PRTD & 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
}
Device (LNKE)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x05) // _UID: Unique ID
Method (_DIS, 0, Serialized) // _DIS: Disable Device
{
PRTE = 0x80
}
Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,10,11,12,14,15}
})
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Name (RTLE, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{}
})
CreateWordField (RTLE, One, IRQ0)
IRQ0 = Zero
IRQ0 = (One << (PRTE & 0x0F))
Return (RTLE) /* \_SB_.PCI0.LPCB.LNKE._CRS.RTLE */
}
Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, One, IRQ0)
FindSetRightBit (IRQ0, Local0)
Local0--
PRTE = Local0
}
Method (_STA, 0, Serialized) // _STA: Status
{
If ((PRTE & 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
}
Device (LNKF)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x06) // _UID: Unique ID
Method (_DIS, 0, Serialized) // _DIS: Disable Device
{
PRTF = 0x80
}
Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,10,11,12,14,15}
})
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Name (RTLF, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{}
})
CreateWordField (RTLF, One, IRQ0)
IRQ0 = Zero
IRQ0 = (One << (PRTF & 0x0F))
Return (RTLF) /* \_SB_.PCI0.LPCB.LNKF._CRS.RTLF */
}
Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, One, IRQ0)
FindSetRightBit (IRQ0, Local0)
Local0--
PRTF = Local0
}
Method (_STA, 0, Serialized) // _STA: Status
{
If ((PRTF & 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
}
Device (LNKG)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x07) // _UID: Unique ID
Method (_DIS, 0, Serialized) // _DIS: Disable Device
{
PRTG = 0x80
}
Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,10,11,12,14,15}
})
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Name (RTLG, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{}
})
CreateWordField (RTLG, One, IRQ0)
IRQ0 = Zero
IRQ0 = (One << (PRTG & 0x0F))
Return (RTLG) /* \_SB_.PCI0.LPCB.LNKG._CRS.RTLG */
}
Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, One, IRQ0)
FindSetRightBit (IRQ0, Local0)
Local0--
PRTG = Local0
}
Method (_STA, 0, Serialized) // _STA: Status
{
If ((PRTG & 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
}
Device (LNKH)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x08) // _UID: Unique ID
Method (_DIS, 0, Serialized) // _DIS: Disable Device
{
PRTH = 0x80
}
Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,10,11,12,14,15}
})
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Name (RTLH, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{}
})
CreateWordField (RTLH, One, IRQ0)
IRQ0 = Zero
IRQ0 = (One << (PRTH & 0x0F))
Return (RTLH) /* \_SB_.PCI0.LPCB.LNKH._CRS.RTLH */
}
Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, One, IRQ0)
FindSetRightBit (IRQ0, Local0)
Local0--
PRTH = Local0
}
Method (_STA, 0, Serialized) // _STA: Status
{
If ((PRTH & 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
}
Device (EC)
{
Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Name (_GPE, 0x11) // _GPE: General Purpose Events
Mutex (ECLK, 0x00)
OperationRegion (ERAM, EmbeddedControl, Zero, 0x0100)
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x02),
DKR1, 1,
Offset (0x05),
HSPA, 1,
Offset (0x0C),
LEDS, 8,
Offset (0x0F),
, 7,
TBSW, 1,
Offset (0x1A),
DKR2, 1,
Offset (0x2A),
EVNT, 8,
Offset (0x2F),
, 6,
FAND, 1,
FANA, 1,
, 6,
ALMT, 1,
Offset (0x31),
, 2,
UWBE, 1,
Offset (0x3A),
AMUT, 1,
, 3,
BTEB, 1,
WLEB, 1,
WWEB, 1,
Offset (0x3B),
, 1,
KBLT, 1,
, 2,
USPW, 1,
Offset (0x48),
HPPI, 1,
GSTS, 1,
Offset (0x4E),
WAKE, 16,
Offset (0x78),
TMP0, 8,
TMP1, 8,
Offset (0x81),
PAGE, 8,
Offset (0xFE),
, 4,
DKR3, 1
}
Method (_REG, 2, NotSerialized) // _REG: Region Availability
{
If ((Arg1 == One))
{
If ((^HKEY.INIT == Zero))
{
^HKEY.WBDC = BTEB /* \_SB_.PCI0.LPCB.EC__.BTEB */
^HKEY.WWAN = WWEB /* \_SB_.PCI0.LPCB.EC__.WWEB */
^HKEY.INIT = One
}
}
}
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Name (ECMD, 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
)
})
Return (ECMD) /* \_SB_.PCI0.LPCB.EC__._CRS.ECMD */
}
Method (TLED, 1, NotSerialized)
{
LEDS = Arg0
}
Method (LED, 2, NotSerialized)
{
TLED ((Arg0 | Arg1))
}
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
}
Method (MUTE, 1, NotSerialized)
{
AMUT = Arg0
}
Method (RADI, 1, NotSerialized)
{
WLEB = Arg0
WWEB = Arg0
BTEB = Arg0
}
Method (USBP, 1, NotSerialized)
{
USPW = Arg0
}
Method (LGHT, 1, NotSerialized)
{
KBLT = Arg0
}
Method (_Q13, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (SLPB, 0x80) // Status Change
}
Method (_Q14, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^^^GFX0.INCB ()
}
Method (_Q15, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^^^GFX0.DECB ()
}
Method (_Q16, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (GFX0, 0x82) // Device-Specific Change
}
Method (_Q26, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (AC, 0x80) // Status Change
PNOT ()
}
Method (_Q27, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (AC, 0x80) // Status Change
EVNT = 0x50
PNOT ()
}
Method (_Q2A, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (LID, 0x80) // Status Change
}
Method (_Q2B, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (LID, 0x80) // Status Change
}
Method (_Q10, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (One)
}
Method (_Q11, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x02)
}
Method (_Q12, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x03)
}
Method (_Q64, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x05)
}
Method (_Q65, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x06)
}
Method (_Q17, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x08)
}
Method (_Q66, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x0A)
}
Method (_Q6A, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x1B)
}
Method (_Q1A, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x0B)
}
Method (_Q1B, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x0C)
}
Method (_Q62, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x0D)
}
Method (_Q60, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x0E)
}
Method (_Q61, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x0F)
}
Method (_Q1F, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x12)
}
Method (_Q67, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x13)
}
Method (_Q63, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x14)
}
Method (_Q19, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x18)
}
Method (_Q1C, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x19)
}
Method (_Q1D, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RHK (0x1A)
}
Method (_Q5C, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RTAB (0x0B)
}
Method (_Q5D, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RTAB (0x0C)
}
Method (_Q5E, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RTAB (0x09)
}
Method (_Q5F, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
^HKEY.RTAB (0x0A)
}
Method (FANE, 1, Serialized)
{
If (Arg0)
{
FAND = One
FANA = Zero
}
Else
{
FAND = Zero
FANA = One
}
}
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x46),
, 4,
HPAC, 1
}
Device (AC)
{
Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
_SB
})
Method (_PSR, 0, NotSerialized) // _PSR: Power Source
{
Local0 = HPAC /* \_SB_.PCI0.LPCB.EC__.HPAC */
PWRS = Local0
PNOT ()
Return (Local0)
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
}
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x38),
B0ST, 4,
, 1,
B0CH, 1,
B0DI, 1,
B0PR, 1,
B1ST, 4,
, 1,
B1CH, 1,
B1DI, 1,
B1PR, 1
}
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
BARC, 16,
BAFC, 16,
Offset (0xA8),
BAPR, 16,
BAVO, 16
}
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
, 15,
BAMA, 1
}
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
BADC, 16,
BADV, 16,
Offset (0xA6),
Offset (0xA8),
Offset (0xAA),
BASN, 16
}
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
BATY, 32
}
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
BAOE, 128
}
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
BANA, 128
}
Method (BPAG, 1, NotSerialized)
{
PAGE = Arg0
}
Method (BSTA, 4, NotSerialized)
{
Acquire (ECLK, 0xFFFF)
Local0 = Zero
BPAG ((Arg0 | One))
Local1 = BAMA /* \_SB_.PCI0.LPCB.EC__.BAMA */
BPAG (Arg0)
Local2 = BAPR /* \_SB_.PCI0.LPCB.EC__.BAPR */
If (Arg2)
{
Local0 |= 0x02
}
ElseIf (Arg3)
{
Local0 |= One
Local2 = (0x00010000 - Local2)
}
Else
{
Local2 = Zero
}
If ((Local2 >= 0x8000))
{
Local2 = Zero
}
Arg1 [Zero] = Local0
If (Local1)
{
Arg1 [0x02] = (BARC * 0x0A)
Local2 *= BAVO /* \_SB_.PCI0.LPCB.EC__.BAVO */
Arg1 [One] = (Local2 / 0x03E8)
}
Else
{
Arg1 [0x02] = BARC /* \_SB_.PCI0.LPCB.EC__.BARC */
Arg1 [One] = Local2
}
Arg1 [0x03] = BAVO /* \_SB_.PCI0.LPCB.EC__.BAVO */
Release (ECLK)
Return (Arg1)
}
Method (BINF, 2, Serialized)
{
Acquire (ECLK, 0xFFFF)
BPAG ((One | Arg1))
Arg0 [Zero] = (BAMA ^ One)
Local0 = BAMA /* \_SB_.PCI0.LPCB.EC__.BAMA */
BPAG (Arg1)
Local2 = BAFC /* \_SB_.PCI0.LPCB.EC__.BAFC */
BPAG ((Arg1 | 0x02))
Local1 = BADC /* \_SB_.PCI0.LPCB.EC__.BADC */
If (Local0)
{
Local1 *= 0x0A
Local2 *= 0x0A
}
Arg0 [One] = Local1
Arg0 [0x02] = Local2
Arg0 [0x04] = BADV /* \_SB_.PCI0.LPCB.EC__.BADV */
Local0 = (Local2 % 0x14)
Arg0 [0x05] = (Local2 / 0x14)
Local0 = BASN /* \_SB_.PCI0.LPCB.EC__.BASN */
Name (SERN, Buffer (0x06)
{
" "
})
Local1 = 0x04
While (Local0)
{
Local2 = (Local0 % 0x0A)
Local0 /= 0x0A
SERN [Local1] = (Local2 + 0x30)
Local1--
}
Arg0 [0x0A] = SERN /* \_SB_.PCI0.LPCB.EC__.BINF.SERN */
BPAG ((0x04 | Arg1))
Name (TYPE, Buffer (0x05)
{
0x00, 0x00, 0x00, 0x00, 0x00 // .....
})
TYPE = BATY /* \_SB_.PCI0.LPCB.EC__.BATY */
Arg0 [0x0B] = TYPE /* \_SB_.PCI0.LPCB.EC__.BINF.TYPE */
BPAG ((Arg1 | 0x05))
Arg0 [0x0C] = BAOE /* \_SB_.PCI0.LPCB.EC__.BAOE */
BPAG ((Arg1 | 0x06))
Arg0 [0x09] = BANA /* \_SB_.PCI0.LPCB.EC__.BANA */
Release (ECLK)
Return (Arg0)
}
Device (BAT0)
{
Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
_SB
})
Name (BATS, Package (0x0D)
{
Zero,
0xFFFFFFFF,
0xFFFFFFFF,
One,
0x2A30,
Zero,
0xC8,
One,
One,
"",
"",
"",
""
})
Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
{
Return (BINF (BATS, Zero))
}
Name (BATI, Package (0x04)
{
Zero,
Zero,
Zero,
Zero
})
Method (_BST, 0, NotSerialized) // _BST: Battery Status
{
If (B0PR)
{
Return (BSTA (Zero, BATI, B0CH, B0DI))
}
Else
{
Return (Package (0x04)
{
Zero,
Zero,
Zero,
Zero
})
}
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (B0PR)
{
Return (0x1F)
}
Else
{
Return (0x0F)
}
}
}
Device (BAT1)
{
Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
_SB
})
Name (BATS, Package (0x0D)
{
Zero,
0xFFFFFFFF,
0xFFFFFFFF,
One,
0x2A30,
Zero,
0xC8,
One,
One,
"",
"",
"",
""
})
Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
{
Return (BINF (BATS, 0x10))
}
Name (BATI, Package (0x04)
{
Zero,
Zero,
Zero,
Zero
})
Method (_BST, 0, NotSerialized) // _BST: Battery Status
{
If (B1PR)
{
Return (BSTA (0x10, BATI, B1CH, B1DI))
}
Else
{
Return (Package (0x04)
{
Zero,
Zero,
Zero,
Zero
})
}
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (B1PR)
{
Return (0x1F)
}
Else
{
Return (0x0F)
}
}
}
Method (_Q24, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (BAT0, 0x80) // Status Change
}
Method (_Q25, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (BAT1, 0x80) // Status Change
}
Method (_Q4A, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (BAT0, 0x81) // Information Change
}
Method (_Q4B, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (BAT0, 0x80) // Status Change
}
Method (_Q4C, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (BAT1, 0x81) // Information Change
}
Method (_Q4D, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (BAT1, 0x80) // Status Change
}
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x32),
, 4,
WKFN, 1,
Offset (0x83),
FNKY, 8
}
Device (SLPB)
{
Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */) // _HID: Hardware ID
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (Package (0x02)
{
0x18,
0x03
})
}
Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
{
If (Arg0)
{
FNKY = 0x06
WKFN = One
}
Else
{
FNKY = Zero
WKFN = Zero
}
}
}
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x32),
, 2,
WKLD, 1,
Offset (0x46),
, 2,
LIDS, 1
}
Device (LID)
{
Name (_HID, "PNP0C0D" /* Lid Device */) // _HID: Hardware ID
Method (_LID, 0, NotSerialized) // _LID: Lid Status
{
Return (LIDS) /* \_SB_.PCI0.LPCB.EC__.LIDS */
}
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (Package (0x02)
{
0x18,
0x03
})
}
Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
{
If (Arg0)
{
WKLD = One
}
Else
{
WKLD = Zero
}
}
}
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x06),
SNDS, 8
}
Method (BEEP, 1, NotSerialized)
{
SNDS = Arg0
}
Scope (\_TZ)
{
Method (C2K, 1, NotSerialized)
{
Local0 = (Arg0 * 0x0A)
Local0 += 0x0AAC
If ((Local0 <= 0x0AAC))
{
Return (0x0BB8)
}
If ((Local0 > 0x0FAC))
{
Return (0x0BB8)
}
Return (Local0)
}
ThermalZone (THM0)
{
Name (_TZP, 0x64) // _TZP: Thermal Zone Polling
Name (_TSP, 0x64) // _TSP: Thermal Sampling Period
Name (_TC1, 0x02) // _TC1: Thermal Constant 1
Name (_TC2, 0x05) // _TC2: Thermal Constant 2
Method (_PSL, 0, Serialized) // _PSL: Passive List
{
Return (PPKG) /* \PPKG */
}
Method (GCRT, 0, NotSerialized)
{
Local0 = TCRT /* \TCRT */
If ((Local0 > Zero))
{
Return (Local0)
}
Return (0x7F)
}
Method (GPSV, 0, NotSerialized)
{
Local0 = TPSV /* \TPSV */
If ((Local0 > Zero))
{
Return (Local0)
}
Return (0x5F)
}
Method (_CRT, 0, NotSerialized) // _CRT: Critical Temperature
{
Return (C2K (GCRT ()))
}
Method (_PSV, 0, NotSerialized) // _PSV: Passive Temperature
{
Return (C2K (GPSV ()))
}
Method (_TMP, 0, NotSerialized) // _TMP: Temperature
{
Return (C2K (\_SB.PCI0.LPCB.EC.TMP0))
}
Method (_AC0, 0, NotSerialized) // _ACx: Active Cooling, x=0-9
{
Local0 = GPSV ()
Local0 -= 0x0A
If (FLVL)
{
Local0 -= 0x05
}
Return (C2K (Local0))
}
Name (_AL0, Package (0x01) // _ALx: Active List, x=0-9
{
FAN
})
PowerResource (FPWR, 0x00, 0x0000)
{
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (FLVL) /* \FLVL */
}
Method (_ON, 0, NotSerialized) // _ON_: Power On
{
\_SB.PCI0.LPCB.EC.FANE (One)
FLVL = One
Notify (THM0, 0x81) // Thermal Trip Point Change
}
Method (_OFF, 0, NotSerialized) // _OFF: Power Off
{
\_SB.PCI0.LPCB.EC.FANE (Zero)
FLVL = Zero
Notify (THM0, 0x81) // Thermal Trip Point Change
}
}
Device (FAN)
{
Name (_HID, EisaId ("PNP0C0B") /* Fan (Thermal Solution) */) // _HID: Hardware ID
Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
{
FPWR
})
}
}
ThermalZone (THM1)
{
Name (_TZP, 0x64) // _TZP: Thermal Zone Polling
Name (_TSP, 0x64) // _TSP: Thermal Sampling Period
Name (_TC1, 0x02) // _TC1: Thermal Constant 1
Name (_TC2, 0x05) // _TC2: Thermal Constant 2
Method (_PSL, 0, Serialized) // _PSL: Passive List
{
Return (PPKG) /* \PPKG */
}
Method (_CRT, 0, NotSerialized) // _CRT: Critical Temperature
{
Return (C2K (0x63))
}
Method (_PSV, 0, NotSerialized) // _PSV: Passive Temperature
{
Return (C2K (0x5E))
}
Method (_TMP, 0, NotSerialized) // _TMP: Temperature
{
Return (C2K (\_SB.PCI0.LPCB.EC.TMP1))
}
}
}
Scope (\_SI)
{
Method (_SST, 1, NotSerialized) // _SST: System Status
{
If ((Arg0 == Zero))
{
\_SB.PCI0.LPCB.EC.TLED (Zero)
\_SB.PCI0.LPCB.EC.TLED (0x07)
}
If ((Arg0 == One))
{
\_SB.PCI0.LPCB.EC.TLED (0x80)
\_SB.PCI0.LPCB.EC.TLED (0x07)
}
If ((Arg0 == 0x02))
{
\_SB.PCI0.LPCB.EC.TLED (0x80)
\_SB.PCI0.LPCB.EC.TLED (0xC7)
}
If ((Arg0 == 0x03))
{
\_SB.PCI0.LPCB.EC.TLED (0xA0)
\_SB.PCI0.LPCB.EC.TLED (0x87)
}
}
}
Device (HKEY)
{
Name (_HID, EisaId ("IBM0068")) // _HID: Hardware ID
Name (BTN, Zero)
Name (BTAB, Zero)
Name (DHKN, 0x080C)
Name (EMSK, Zero)
Name (ETAB, Zero)
Name (EN, Zero)
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
Method (MHKP, 0, NotSerialized)
{
Local0 = BTN /* \_SB_.PCI0.LPCB.EC__.HKEY.BTN_ */
If ((Local0 != Zero))
{
BTN = Zero
Local0 += 0x1000
Return (Local0)
}
Local0 = BTAB /* \_SB_.PCI0.LPCB.EC__.HKEY.BTAB */
If ((Local0 != Zero))
{
BTAB = Zero
Local0 += 0x5000
Return (Local0)
}
Return (Zero)
}
Method (RHK, 1, NotSerialized)
{
Local0 = (One << (Arg0 - One))
If ((EMSK & Local0))
{
BTN = Arg0
Notify (HKEY, 0x80) // Status Change
}
}
Method (RTAB, 1, NotSerialized)
{
Local0 = (One << (Arg0 - One))
If ((ETAB & Local0))
{
BTAB = Arg0
Notify (HKEY, 0x80) // Status Change
}
}
Method (MHKC, 1, NotSerialized)
{
If (Arg0)
{
EMSK = DHKN /* \_SB_.PCI0.LPCB.EC__.HKEY.DHKN */
ETAB = Ones
}
Else
{
EMSK = Zero
ETAB = Zero
}
EN = Arg0
}
Method (MHKM, 2, NotSerialized)
{
If ((Arg0 <= 0x20))
{
Local0 = (One << (Arg0 - One))
If (Arg1)
{
DHKN |= Local0
}
Else
{
DHKN &= ~Local0
}
If (EN)
{
EMSK = DHKN /* \_SB_.PCI0.LPCB.EC__.HKEY.DHKN */
}
}
}
Method (MHKA, 0, NotSerialized)
{
Return (0x07FFFFFF)
}
Method (MHKG, 0, NotSerialized)
{
Return ((TBSW << 0x03))
}
Method (SSMS, 1, NotSerialized)
{
ALMT = Arg0
}
Method (MMTS, 1, NotSerialized)
{
If (Arg0)
{
TLED (0x8E)
}
Else
{
TLED (0x0E)
}
}
Method (MHKV, 0, NotSerialized)
{
Return (0x0100)
}
Method (WLSW, 0, NotSerialized)
{
Return (GSTS) /* \_SB_.PCI0.LPCB.EC__.GSTS */
}
Name (INIT, Zero)
Name (HAST, Zero)
Name (WBDC, Zero)
Method (GBDC, 0, NotSerialized)
{
HAST = One
If (HBDC)
{
Local0 = One
If (BTEB)
{
Local0 |= 0x02
}
Local0 |= (WBDC << 0x02)
Return (Local0)
}
Else
{
Return (Zero)
}
}
Method (SBDC, 1, NotSerialized)
{
HAST = One
If (HBDC)
{
Local0 = ((Arg0 & 0x02) >> One)
BTEB = Local0
Local0 = ((Arg0 & 0x04) >> 0x02)
WBDC = Local0
}
}
Name (WWAN, Zero)
Method (GWAN, 0, NotSerialized)
{
HAST = One
If (HWAN)
{
Local0 = One
If (WWEB)
{
Local0 |= 0x02
}
Local0 |= (WWAN << 0x02)
Return (Local0)
}
Else
{
Return (Zero)
}
}
Method (SWAN, 1, NotSerialized)
{
HAST = One
If (HWAN)
{
Local0 = ((Arg0 & 0x02) >> One)
WWEB = Local0
WWAN = ((Arg0 & 0x04) >> 0x02)
}
}
Method (MLCG, 1, NotSerialized)
{
If (HKBL)
{
Local0 = 0x0200
Local0 |= KBLT /* \_SB_.PCI0.LPCB.EC__.KBLT */
Return (Local0)
}
Else
{
Return (Zero)
}
}
Method (MLCS, 1, NotSerialized)
{
If (HKBL)
{
WWEB = (Arg0 & One)
}
}
Method (GUWB, 0, NotSerialized)
{
If (HUWB)
{
Local0 = One
If (UWBE)
{
Local0 |= 0x02
}
Return (Local0)
}
Else
{
Return (Zero)
}
}
Method (SUWB, 1, NotSerialized)
{
If (HUWB)
{
Local0 = ((Arg0 & 0x02) >> One)
UWBE = Local0
}
}
Method (WAKE, 1, NotSerialized)
{
If (HAST)
{
BTEB = WBDC /* \_SB_.PCI0.LPCB.EC__.HKEY.WBDC */
WWEB = WWAN /* \_SB_.PCI0.LPCB.EC__.HKEY.WWAN */
}
}
Method (BCSS, 1, NotSerialized)
{
Local0 = (Arg0 & 0xFF)
Local1 = ((Arg0 >> 0x08) & 0x03)
If ((Local1 == Zero))
{
^^BAT0.SETT (One, Local0)
^^BAT1.SETT (One, Local0)
Local2 = (Local0 != ^^BAT0.GETT (One))
Local3 = (Local0 != ^^BAT1.GETT (One))
Return (((Local2 && Local3) << 0x1F))
}
If ((Local1 == One))
{
^^BAT0.SETT (One, Local0)
Return (((Local0 != ^^BAT0.GETT (One)) << 0x1F))
}
If ((Local1 == 0x02))
{
^^BAT1.SETT (One, Local0)
Return (((Local0 != ^^BAT1.GETT (One)) << 0x1F))
}
Return (0x80000000)
}
Method (BCCS, 1, NotSerialized)
{
Local0 = (Arg0 & 0xFF)
Local1 = ((Arg0 >> 0x08) & 0x03)
If ((Local1 == Zero))
{
^^BAT0.SETT (Zero, Local0)
^^BAT1.SETT (Zero, Local0)
Local2 = (Local0 != ^^BAT0.GETT (Zero))
Local3 = (Local0 != ^^BAT1.GETT (Zero))
Return (((Local2 && Local3) << 0x1F))
}
If ((Local1 == One))
{
^^BAT0.SETT (Zero, Local0)
Return (((Local0 != ^^BAT0.GETT (Zero)) << 0x1F))
}
If ((Local1 == 0x02))
{
^^BAT1.SETT (Zero, Local0)
Return (((Local0 != ^^BAT1.GETT (Zero)) << 0x1F))
}
Return (0x80000000)
}
Method (BCSG, 1, NotSerialized)
{
If ((Arg0 == One))
{
Return ((0x0300 | ^^BAT0.GETT (One)))
}
If ((Arg0 == 0x02))
{
Return ((0x0300 | ^^BAT1.GETT (One)))
}
Return (0x80000000)
}
Method (BCTG, 1, NotSerialized)
{
If ((Arg0 == One))
{
Return ((0x0300 | ^^BAT0.GETT (Zero)))
}
If ((Arg0 == 0x02))
{
Return ((0x0300 | ^^BAT1.GETT (Zero)))
}
Return (0x80000000)
}
}
}
Scope (EC)
{
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x03),
, 2,
BSTP, 1,
Offset (0x24),
TSH0, 8,
TSH1, 8
}
}
Scope (EC.BAT0)
{
Method (SETT, 2, NotSerialized)
{
If (((Arg0 <= One) && (Arg1 <= 0x64)))
{
BSTP = Arg0
TSH0 = (Arg1 | 0x80)
}
}
Method (GETT, 1, NotSerialized)
{
If ((Arg0 <= One))
{
BSTP = Arg0
Return ((TSH0 & 0xFFFFFFFFFFFFFF7F))
}
Return (Zero)
}
}
Scope (EC.BAT1)
{
Method (SETT, 2, NotSerialized)
{
If (((Arg0 <= One) && (Arg1 <= 0x64)))
{
BSTP = Arg0
TSH1 = (Arg1 | 0x80)
}
}
Method (GETT, 1, NotSerialized)
{
If ((Arg0 <= One))
{
BSTP = Arg0
Return ((TSH1 & 0xFFFFFFFFFFFFFF7F))
}
Return (Zero)
}
}
Device (DMAC)
{
Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x20, // Length
)
IO (Decode16,
0x0081, // Range Minimum
0x0081, // Range Maximum
0x01, // Alignment
0x11, // Length
)
IO (Decode16,
0x0093, // Range Minimum
0x0093, // Range Maximum
0x01, // Alignment
0x0D, // Length
)
IO (Decode16,
0x00C0, // Range Minimum
0x00C0, // Range Maximum
0x01, // Alignment
0x20, // Length
)
DMA (Compatibility, NotBusMaster, Transfer8_16, )
{4}
})
}
Device (FWH)
{
Name (_HID, EisaId ("INT0800") /* Intel 82802 Firmware Hub Device */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
Memory32Fixed (ReadOnly,
0xFF000000, // Address Base
0x01000000, // Address Length
)
})
}
Device (HPET)
{
Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID
Name (_CID, EisaId ("PNP0C01") /* System Board */) // _CID: Compatible ID
Name (BUF0, ResourceTemplate ()
{
Memory32Fixed (ReadOnly,
0xFED00000, // Address Base
0x00000400, // Address Length
_Y01)
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (HPTS (HPTE))
}
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
If (HPTE)
{
CreateDWordField (BUF0, \_SB.PCI0.LPCB.HPET._Y01._BAS, HPT0) // _BAS: Base Address
If ((HPAS == One))
{
HPT0 = 0xFED01000
}
If ((HPAS == 0x02))
{
HPT0 = 0xFED02000
}
If ((HPAS == 0x03))
{
HPT0 = 0xFED03000
}
}
Return (BUF0) /* \_SB_.PCI0.LPCB.HPET.BUF0 */
}
}
Device (PIC)
{
Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0024, // Range Minimum
0x0024, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0028, // Range Minimum
0x0028, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x002C, // Range Minimum
0x002C, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0030, // Range Minimum
0x0030, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0034, // Range Minimum
0x0034, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0038, // Range Minimum
0x0038, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x003C, // Range Minimum
0x003C, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A4, // Range Minimum
0x00A4, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A8, // Range Minimum
0x00A8, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00AC, // Range Minimum
0x00AC, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00B0, // Range Minimum
0x00B0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00B4, // Range Minimum
0x00B4, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00B8, // Range Minimum
0x00B8, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00BC, // Range Minimum
0x00BC, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x04D0, // Range Minimum
0x04D0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IRQNoFlags ()
{2}
})
}
Device (MATH)
{
Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x00F0, // Range Minimum
0x00F0, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IRQNoFlags ()
{13}
})
}
Device (LDRC)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Name (_UID, 0x02) // _UID: Unique ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x002E, // Range Minimum
0x002E, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x004E, // Range Minimum
0x004E, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0061, // Range Minimum
0x0061, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0063, // Range Minimum
0x0063, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0065, // Range Minimum
0x0065, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0067, // Range Minimum
0x0067, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0080, // Range Minimum
0x0080, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0092, // Range Minimum
0x0092, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x00B2, // Range Minimum
0x00B2, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0800, // Range Minimum
0x0800, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x0500, // Range Minimum
0x0500, // Range Maximum
0x01, // Alignment
0x80, // Length
)
IO (Decode16,
0x0580, // Range Minimum
0x0580, // Range Maximum
0x01, // Alignment
0x40, // Length
)
})
}
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x08, // Length
)
})
}
Device (TIMR)
{
Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x0050, // Range Minimum
0x0050, // Range Maximum
0x10, // Alignment
0x04, // Length
)
IRQNoFlags ()
{0}
})
}
Device (PS2K)
{
Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID
Name (_CID, EisaId ("PNP030B")) // _CID: Compatible ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{1}
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
}
Device (PS2M)
{
Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IRQ (Edge, ActiveHigh, Exclusive, )
{12}
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
}
}
Device (AHC1)
{
Name (_ADR, 0x001F0002) // _ADR: Address
Device (PRID)
{
Name (_ADR, Zero) // _ADR: Address
Method (_GTM, 0, Serialized) // _GTM: Get Timing Mode
{
Name (PBUF, Buffer (0x14)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0010 */ 0x00, 0x00, 0x00, 0x00 // ....
})
CreateDWordField (PBUF, Zero, PIO0)
CreateDWordField (PBUF, 0x04, DMA0)
CreateDWordField (PBUF, 0x08, PIO1)
CreateDWordField (PBUF, 0x0C, DMA1)
CreateDWordField (PBUF, 0x10, FLAG)
Return (PBUF) /* \_SB_.PCI0.AHC1.PRID._GTM.PBUF */
}
Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode
{
CreateDWordField (Arg0, Zero, PIO0)
CreateDWordField (Arg0, 0x04, DMA0)
CreateDWordField (Arg0, 0x08, PIO1)
CreateDWordField (Arg0, 0x0C, DMA1)
CreateDWordField (Arg0, 0x10, FLAG)
}
Device (DSK0)
{
Name (_ADR, Zero) // _ADR: Address
}
Device (DSK1)
{
Name (_ADR, One) // _ADR: Address
}
}
}
Device (AHC2)
{
Name (_ADR, 0x001F0005) // _ADR: Address
Device (PRID)
{
Name (_ADR, Zero) // _ADR: Address
Method (_GTM, 0, Serialized) // _GTM: Get Timing Mode
{
Name (PBUF, Buffer (0x14)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0010 */ 0x00, 0x00, 0x00, 0x00 // ....
})
CreateDWordField (PBUF, Zero, PIO0)
CreateDWordField (PBUF, 0x04, DMA0)
CreateDWordField (PBUF, 0x08, PIO1)
CreateDWordField (PBUF, 0x0C, DMA1)
CreateDWordField (PBUF, 0x10, FLAG)
Return (PBUF) /* \_SB_.PCI0.AHC2.PRID._GTM.PBUF */
}
Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode
{
CreateDWordField (Arg0, Zero, PIO0)
CreateDWordField (Arg0, 0x04, DMA0)
CreateDWordField (Arg0, 0x08, PIO1)
CreateDWordField (Arg0, 0x0C, DMA1)
CreateDWordField (Arg0, 0x10, FLAG)
}
Device (DSK0)
{
Name (_ADR, Zero) // _ADR: Address
}
Device (DSK1)
{
Name (_ADR, One) // _ADR: Address
}
}
}
Device (SBUS)
{
Name (_ADR, 0x001F0003) // _ADR: Address
}
Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities
{
If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
{
Return (Arg3)
}
Else
{
CreateDWordField (Arg3, Zero, CDW1)
CDW1 |= 0x04
Return (Arg3)
}
}
Scope (GFX0)
{
OperationRegion (GFXC, PCI_Config, Zero, 0x0100)
Field (GFXC, DWordAcc, NoLock, Preserve)
{
Offset (0x10),
BAR0, 64,
Offset (0xE4),
ASLE, 32,
Offset (0xFC),
ASLS, 32
}
OperationRegion (GFRG, SystemMemory, (BAR0 & 0xFFFFFFFFFFFFFFF0), 0x00400000)
Field (GFRG, DWordAcc, NoLock, Preserve)
{
Offset (0x61254),
BCLV, 16
}
Field (GFRG, DWordAcc, NoLock, Preserve)
{
Offset (0x61256),
BCLM, 16
}
Device (BOX3)
{
Name (_ADR, Zero) // _ADR: Address
OperationRegion (OPRG, SystemMemory, ASLS, 0x2000)
Field (OPRG, DWordAcc, NoLock, Preserve)
{
Offset (0x58),
MBOX, 32,
Offset (0x300),
ARDY, 1,
Offset (0x304),
ASLC, 32,
TCHE, 32,
ALSI, 32,
BCLP, 32,
PFIT, 32,
CBLV, 32
}
Method (XBCM, 1, Serialized)
{
If ((ASLS == Zero))
{
Return (Ones)
}
If (((MBOX & 0x04) == Zero))
{
Return (Ones)
}
Local1 = ((Arg0 * 0xFF) / 0x64)
If ((Local1 > 0xFF))
{
Local1 = 0xFF
}
BCLP = (Local1 | 0x80000000)
If ((ARDY == Zero))
{
Return (Ones)
}
ASLC = 0x02
ASLE = One
Local0 = 0x20
While ((Local0 > Zero))
{
Sleep (One)
If (((ASLC & 0x02) == Zero))
{
Local1 = ((ASLC >> 0x0C) & 0x03)
If ((Local1 == Zero))
{
Return (Zero)
}
Else
{
Return (Ones)
}
}
Local0--
}
Return (Ones)
}
}
Device (LEGA)
{
Name (_ADR, Zero) // _ADR: Address
Method (DRCL, 2, NotSerialized)
{
Return (((Arg0 + (Arg1 / 0x02)) / Arg1))
}
Method (XBCM, 1, NotSerialized)
{
BCLV = DRCL ((Arg0 * BCLM), 0x64)
}
Method (XBQC, 0, NotSerialized)
{
If ((BCLM == Zero))
{
Return (Zero)
}
Local0 = DRCL ((BCLV * 0x64), BCLM)
Local1 = 0x02
While ((Local1 < (SizeOf (BRIG) - One)))
{
Local2 = DerefOf (BRIG [Local1])
Local3 = DerefOf (BRIG [(Local1 + One)])
If ((Local0 < Local3))
{
If (((Local0 < Local2) || ((Local0 - Local2) < (Local3 -
Local0))))
{
Return (Local2)
}
Else
{
Return (Local3)
}
}
Local1++
}
Return (Local3)
}
}
Method (XBCM, 1, NotSerialized)
{
If ((^BOX3.XBCM (Arg0) == Ones))
{
^LEGA.XBCM (Arg0)
}
}
Method (XBQC, 0, NotSerialized)
{
Return (^LEGA.XBQC ())
}
Name (BRCT, Zero)
Method (BRID, 1, NotSerialized)
{
Local0 = Match (BRIG, MEQ, Arg0, MTR, Zero, 0x02)
If ((Local0 == Ones))
{
Return ((SizeOf (BRIG) - One))
}
Return (Local0)
}
Method (XBCL, 0, NotSerialized)
{
BRCT = One
Return (BRIG) /* \_SB_.PCI0.GFX0.BRIG */
}
Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching
{
}
Method (DECB, 0, NotSerialized)
{
If (BRCT)
{
Notify (LCD0, 0x87) // Device-Specific
}
Else
{
Local0 = BRID (XBQC ())
If ((Local0 != 0x02))
{
Local0--
}
XBCM (DerefOf (BRIG [Local0]))
}
}
Method (INCB, 0, NotSerialized)
{
If (BRCT)
{
Notify (LCD0, 0x86) // Device-Specific
}
Else
{
Local0 = BRID (XBQC ())
If ((Local0 != (SizeOf (BRIG) - One)))
{
Local0++
}
XBCM (DerefOf (BRIG [Local0]))
}
}
}
Scope (GFX0)
{
Name (BRIG, Package (0x12)
{
0x64,
0x64,
0x02,
0x04,
0x05,
0x07,
0x09,
0x0B,
0x0D,
0x12,
0x14,
0x18,
0x1D,
0x21,
0x28,
0x32,
0x43,
0x64
})
}
}
}
Name (_S0, Package (0x04) // _S0_: S0 System State
{
Zero,
Zero,
Zero,
Zero
})
Name (_S3, Package (0x04) // _S3_: S3 System State
{
0x05,
Zero,
Zero,
Zero
})
Name (_S4, Package (0x04) // _S4_: S4 System State
{
0x06,
Zero,
Zero,
Zero
})
Name (_S5, Package (0x04) // _S5_: S5 System State
{
0x07,
Zero,
Zero,
Zero
})
Scope (_SB)
{
Device (DOCK)
{
Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
_SB
})
Method (_DCK, 1, NotSerialized) // _DCK: Dock Present
{
If (Arg0)
{
GP28 = One
^^PCI0.LPCB.EC.DKR1 = One
}
Else
{
GP28 = Zero
^^PCI0.LPCB.EC.DKR1 = Zero
}
Local0 = (Arg0 ^ ^^PCI0.LPCB.EC.DKR1) /* \_SB_.PCI0.LPCB.EC__.DKR1 */
Return (Local0)
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (^^PCI0.LPCB.EC.DKR1) /* \_SB_.PCI0.LPCB.EC__.DKR1 */
}
Name (G_ID, 0xFFFFFFFF)
Method (GGID, 0, NotSerialized)
{
Local0 = G_ID /* \_SB_.DOCK.G_ID */
If ((Local0 == 0xFFFFFFFF))
{
Local0 = ((GP02 | (GP03 << One)) | (GP04 << 0x02
))
If ((Local0 == Zero))
{
Local0 = 0x03
}
G_ID = Local0
}
Return (Local0)
}
}
}
Scope (_SB.PCI0.LPCB.EC)
{
Method (_Q18, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (DOCK, 0x03) // Eject Request
}
Method (_Q37, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (DOCK, Zero) // Bus Check
}
Method (_Q45, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (DOCK, 0x03) // Eject Request
}
Method (_Q50, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Local0 = ^^^^DOCK.GGID ()
If ((Local0 != 0x07))
{
Notify (DOCK, 0x03) // Eject Request
}
}
Method (_Q58, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (DOCK, Zero) // Bus Check
}
Method (_Q5A, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Local0 = ^^^^DOCK.GGID ()
If ((Local0 == 0x07))
{
Notify (DOCK, 0x03) // Eject Request
}
If ((Local0 == 0x03))
{
Sleep (0x64)
Local1 = DKR1 /* \_SB_.PCI0.LPCB.EC__.DKR1 */
If ((Local1 == One))
{
Notify (DOCK, Zero) // Bus Check
}
}
}
}
Method (UCMS, 1, Serialized)
{
Switch (ToInteger (Arg0))
{
Case (0x0C)
{
\_SB.PCI0.LPCB.EC.LGHT (One)
}
Case (0x0D)
{
\_SB.PCI0.LPCB.EC.LGHT (Zero)
}
}
}
Device (CTBL)
{
Name (_HID, "BOOT0000") // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0B)
}
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
Memory32Fixed (ReadOnly,
0x7D76F000, // Address Base
0x00008000, // Address Length
)
})
}
Scope (\_SB.PCI0.LPCB)
{
}
Processor (\_SB.CP00, 0x00, 0x00000510, 0x06)
{
Name (_PCT, Package (0x02) // _PCT: Performance Control
{
ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},
ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
}
})
Name (_PSD, Package (0x01) // _PSD: Power State Dependencies
{
Package (0x05)
{
0x05,
0x00,
0x00000000,
0x000000FE,
0x00000002
}
})
Name (_PSS, Package (0x04) // _PSS: Performance Supported States
{
Package (0x06)
{
0x000009E6,
0x000088B8,
0x00000000,
0x00000000,
0x00000A2B,
0x00000A2B
},
Package (0x06)
{
0x000009E5,
0x000088B8,
0x00000000,
0x00000000,
0x00004925,
0x00004925
},
Package (0x06)
{
0x00000640,
0x00003A98,
0x00000000,
0x00000000,
0x00000617,
0x00000617
},
Package (0x06)
{
0x00000320,
0x00002EE0,
0x00000000,
0x00000000,
0x00008611,
0x00008611
}
})
Method (_PPC, 0, NotSerialized) // _PPC: Performance Present Capabilities
{
Return (0x00)
}
Name (_CST, Package (0x04) // _CST: C-States
{
0x03,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000000, // Address
0x01, // Access Size
)
},
0x01,
0x0001,
0x000003E8
},
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000010, // Address
0x01, // Access Size
)
},
0x02,
0x0001,
0x000001F4
},
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000020, // Address
0x01, // Access Size
)
},
0x03,
0x0037,
0x000000FA
}
})
}
Processor (\_SB.CP01, 0x01, 0x00000000, 0x00)
{
Name (_PCT, Package (0x02) // _PCT: Performance Control
{
ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},
ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
}
})
Name (_PSD, Package (0x01) // _PSD: Power State Dependencies
{
Package (0x05)
{
0x05,
0x00,
0x00000000,
0x000000FE,
0x00000002
}
})
Name (_PSS, Package (0x04) // _PSS: Performance Supported States
{
Package (0x06)
{
0x000009E6,
0x000088B8,
0x00000000,
0x00000000,
0x00000A2B,
0x00000A2B
},
Package (0x06)
{
0x000009E5,
0x000088B8,
0x00000000,
0x00000000,
0x00004925,
0x00004925
},
Package (0x06)
{
0x00000640,
0x00003A98,
0x00000000,
0x00000000,
0x00000617,
0x00000617
},
Package (0x06)
{
0x00000320,
0x00002EE0,
0x00000000,
0x00000000,
0x00008611,
0x00008611
}
})
Method (_PPC, 0, NotSerialized) // _PPC: Performance Present Capabilities
{
Return (0x00)
}
Name (_CST, Package (0x04) // _CST: C-States
{
0x03,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000000, // Address
0x01, // Access Size
)
},
0x01,
0x0001,
0x000003E8
},
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000010, // Address
0x01, // Access Size
)
},
0x02,
0x0001,
0x000001F4
},
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000020, // Address
0x01, // Access Size
)
},
0x03,
0x0037,
0x000000FA
}
})
}
Name (PPKG, Package (0x02)
{
\_SB.CP00,
\_SB.CP01
})
Method (\_SB.CNOT, 1, NotSerialized)
{
Notify (\_SB.CP00, Arg0)
Notify (\_SB.CP01, Arg0)
}
Scope (\)
{
Name (MPEN, Zero)
}
Scope (\_SB.PCI0.GFX0)
{
Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices
{
Return (Package (0x03)
{
0x80010100,
0x80010240,
0x80010410
})
}
Device (VGA0)
{
Name (_ADR, 0x00000100) // _ADR: Address
Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
{
Return (0x1D)
}
Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
{
Return (Zero)
}
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
}
}
Device (TV0)
{
Name (_ADR, 0x00000240) // _ADR: Address
Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
{
Return (0x1D)
}
Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
{
Return (Zero)
}
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
}
}
Device (LCD0)
{
Name (_ADR, 0x00000410) // _ADR: Address
Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels
{
Return (^^XBCL ())
}
Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method
{
^^XBCM (Arg0)
}
Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current
{
Return (^^XBQC ())
}
Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
{
Return (0x1D)
}
Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
{
Return (Zero)
}
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
}
}
}
Scope (\_SB.PCI0.RP04)
{
Device (SLOT)
{
Name (_ADR, 0x00) // _ADR: Address
Method (_RMV, 0, NotSerialized) // _RMV: Removal Status
{
Return (One)
}
}
}
Scope (\_GPE)
{
Method (_L01, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF
{
If (\_SB.PCI0.RP04.HPCS)
{
Sleep (0x64)
\_SB.PCI0.RP04.HPCS = One
If (\_SB.PCI0.RP04.PDC)
{
\_SB.PCI0.RP04.PDC = One
Notify (\_SB.PCI0.RP04, Zero) // Bus Check
}
}
}
}
Scope (\_SB.PCI0)
{
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM)
{
Return (Package (0x0F)
{
Package (0x04)
{
0x0002FFFF,
0x00,
0x00,
0x00000010
},
Package (0x04)
{
0x0019FFFF,
0x00,
0x00,
0x00000010
},
Package (0x04)
{
0x001AFFFF,
0x00,
0x00,
0x00000010
},
Package (0x04)
{
0x001AFFFF,
0x01,
0x00,
0x00000011
},
Package (0x04)
{
0x001AFFFF,
0x02,
0x00,
0x00000012
},
Package (0x04)
{
0x001BFFFF,
0x00,
0x00,
0x00000010
},
Package (0x04)
{
0x001CFFFF,
0x00,
0x00,
0x00000010
},
Package (0x04)
{
0x001CFFFF,
0x01,
0x00,
0x00000011
},
Package (0x04)
{
0x001CFFFF,
0x02,
0x00,
0x00000012
},
Package (0x04)
{
0x001CFFFF,
0x03,
0x00,
0x00000013
},
Package (0x04)
{
0x001DFFFF,
0x00,
0x00,
0x00000010
},
Package (0x04)
{
0x001DFFFF,
0x01,
0x00,
0x00000011
},
Package (0x04)
{
0x001DFFFF,
0x02,
0x00,
0x00000012
},
Package (0x04)
{
0x001FFFFF,
0x01,
0x00,
0x00000011
},
Package (0x04)
{
0x001FFFFF,
0x02,
0x00,
0x00000012
}
})
}
Else
{
Return (Package (0x0F)
{
Package (0x04)
{
0x0002FFFF,
0x00,
\_SB.PCI0.LPCB.LNKA,
0x00000000
},
Package (0x04)
{
0x0019FFFF,
0x00,
\_SB.PCI0.LPCB.LNKA,
0x00000000
},
Package (0x04)
{
0x001AFFFF,
0x00,
\_SB.PCI0.LPCB.LNKA,
0x00000000
},
Package (0x04)
{
0x001AFFFF,
0x01,
\_SB.PCI0.LPCB.LNKB,
0x00000000
},
Package (0x04)
{
0x001AFFFF,
0x02,
\_SB.PCI0.LPCB.LNKC,
0x00000000
},
Package (0x04)
{
0x001BFFFF,
0x00,
\_SB.PCI0.LPCB.LNKA,
0x00000000
},
Package (0x04)
{
0x001CFFFF,
0x00,
\_SB.PCI0.LPCB.LNKA,
0x00000000
},
Package (0x04)
{
0x001CFFFF,
0x01,
\_SB.PCI0.LPCB.LNKB,
0x00000000
},
Package (0x04)
{
0x001CFFFF,
0x02,
\_SB.PCI0.LPCB.LNKC,
0x00000000
},
Package (0x04)
{
0x001CFFFF,
0x03,
\_SB.PCI0.LPCB.LNKD,
0x00000000
},
Package (0x04)
{
0x001DFFFF,
0x00,
\_SB.PCI0.LPCB.LNKA,
0x00000000
},
Package (0x04)
{
0x001DFFFF,
0x01,
\_SB.PCI0.LPCB.LNKB,
0x00000000
},
Package (0x04)
{
0x001DFFFF,
0x02,
\_SB.PCI0.LPCB.LNKC,
0x00000000
},
Package (0x04)
{
0x001FFFFF,
0x01,
\_SB.PCI0.LPCB.LNKB,
0x00000000
},
Package (0x04)
{
0x001FFFFF,
0x02,
\_SB.PCI0.LPCB.LNKC,
0x00000000
}
})
}
}
}
Scope (\_SB.PCI0.LPCB.EC.HKEY)
{
Name (HBDC, 0x01)
Name (HWAN, 0x01)
Name (HKBL, 0x00)
Name (HUWB, 0x01)
}
}
Home |
Main Index |
Thread Index |
Old Index