hybrid-graphics-linux team mailing list archive
-
hybrid-graphics-linux team
-
Mailing list archive
-
Message #01492
Re: DSDT tables needed -- AMD muxless BACON switchable graphics laptops
On 06/18/2011 06:09 AM, Albert Vilella wrote:
If you have a laptop with AMD muxless BACON switchable graphics
technology[1,2], please provide the DSDT tables as explained here:
http://linux-hybrid-graphics.blogspot.com/
[1] http://www.rage3d.com/articles/amd_powerxpress4_asif_rehman_interview/
[2] http://www.notebookcheck.net/AMD-PowerXPress-4-0-aka-BACON-vs-Nvidia-Optimus.55204.0.html
_______________________________________________
Mailing list: https://launchpad.net/~hybrid-graphics-linux
Post to : hybrid-graphics-linux@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~hybrid-graphics-linux
More help : https://help.launchpad.net/ListHelp
Attached is an ACPI dump from an HP dv6tqe 6100 series with the HD 3000
and 6770M 2GB.
A kind person from notebookforums provided it. Open using gedit or your
favorite text editor.
Hope this is useful. I'll be posting more as I get them.
- Eric
Root System Description Pointer: 0x000FE020
52 53 44 20 50 54 52 20 EE 48 50 51 4F 45 4D 02 RSD PTR .HPQOEM.
AC E0 FF 9C 24 00 00 00 20 E1 FF 9C 00 00 00 00 ....$... .......
40 00 00 00 @...
Signature "RSD PTR "
Checksum 0xEE (238)
OEM ID "HPQOEM"
Revision 0x02 (2) - ACPI 2.0
RSDT Address 0x9CFFE0AC
Length 0x00000024
XsdtAddress 0x000000009CFFE120
Extended Checksum 0x40 (64)
Reserved 0x00 0x00 0x00
Root System Description Table: 0x9CFFE0AC
52 53 44 54 60 00 00 00 01 F1 48 50 51 4F 45 4D RSDT`.....HPQOEM
53 4C 49 43 2D 4D 50 43 01 00 00 00 20 20 20 20 SLIC-MPC....
13 00 00 01 00 C0 FF 9C 00 D0 FF 9C 00 B0 FF 9C ................
00 A0 FF 9C 00 90 FF 9C 00 B0 FE 9C 00 A0 FE 9C ................
00 80 FE 9C 00 50 FE 9C 00 40 FE 9C 00 30 FE 9C .....P...@...0..
00 20 FE 9C 00 10 FE 9C 00 00 FE 9C 00 A0 FD 9C . ..............
Signature "RSDT"
Length 0x00000060 (96)
Revision 0x01 (1)
Checksum 0xF1 (241)
OEM ID "HPQOEM"
OEM Table ID "SLIC-MPC"
OEM Revision 0x00000001 (1)
Creator ID " "
Creator Revision 0x01000013 (16777235)
Entry0 0x9CFFC000
Entry1 0x9CFFD000
Entry2 0x9CFFB000
Entry3 0x9CFFA000
Entry4 0x9CFF9000
Entry5 0x9CFEB000
Entry6 0x9CFEA000
Entry7 0x9CFE8000
Entry8 0x9CFE5000
Entry9 0x9CFE4000
Entry10 0x9CFE3000
Entry11 0x9CFE2000
Entry12 0x9CFE1000
Entry13 0x9CFE0000
Entry14 0x9CFDA000
Fixed ACPI Description Table: 0x9CFFC000
46 41 43 50 F4 00 00 00 04 33 48 50 51 4F 45 4D FACP.....3HPQOEM
53 4C 49 43 2D 4D 50 43 01 00 00 00 4D 53 46 54 SLIC-MPC....MSFT
13 00 00 01 00 C0 F6 9C 00 C0 FE 9C 01 02 09 00 ................
B2 00 00 00 A0 A1 00 80 00 04 00 00 00 00 00 00 ................
04 04 00 00 00 00 00 00 50 04 00 00 08 04 00 00 ........P.......
20 04 00 00 00 00 00 00 04 02 01 04 10 00 00 85 ...............
65 00 39 00 00 04 10 00 01 03 0D 00 32 13 00 00 e.9.........2...
A5 86 03 00 01 08 00 01 B2 00 00 00 00 00 00 00 ................
FB 00 00 00 00 C0 F6 9C 00 00 00 00 00 C0 FE 9C ................
00 00 00 00 01 20 00 03 00 04 00 00 00 00 00 00 ..... ..........
00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 02 ................
04 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 01 08 00 01 50 04 00 00 00 00 00 00 ........P.......
01 20 00 03 08 04 00 00 00 00 00 00 01 80 00 00 . ..............
20 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...............
00 00 00 00 ....
Signature "FACP"
Length 0x000000F4 (244)
Revision 0x04 (4)
Checksum 0x33 (51)
OEM ID "HPQOEM"
OEM Table ID "SLIC-MPC"
OEM Revision 0x00000001 (1)
Creator ID "MSFT"
Creator Revision 0x01000013 (16777235)
Firmware Control 0x9CF6C000 - FACS
DSDT Address 0x9CFEC000 - DSDT
Interrupt Mode 0x01 (1) - Multiple APIC
PM Profile 0x02 (2)
SCI Interrupt 0x0009 (9)
SMI Port 0x000000B2 (178)
ACPI Enable 0xA0 (160)
ACPI Disable 0xA1 (161)
S4 Request 0x00 (0) - Not supported
PSTATE_CNT 0x80 (128)
PM1a_EVT_BLK 0x00000400 (1024)
PM1b_EVT_BLK 0x00000000 (0) - Not supported
PM1a_CNT_BLK 0x00000404 (1028)
PM1b_CNT_BLK 0x00000000 (0) - Not supported
PM2_CNT_BLK 0x00000450 (1104)
PM_TMR_BLK 0x00000408 (1032)
GPE0_BLK 0x00000420 (1056)
GPE1_BLK 0x00000000 (0) - Not supported
PM1_EVT_LEN 0x04 (4)
PM1_CNT_LEN 0x02 (2)
PM2_CNT_LEN 0x01 (1)
PM_TMR_LEN 0x04 (4)
GPE0_BLK_LEN 0x10 (16)
GPE1_BLK_LEN 0x00 (0)
GPE1_BASE 0x00 (0)
CST_CNT 0x85 (133)
P_LVL2_LAT 0x0065 (101) - C2 state not supported
P_LVL3_LAT 0x0039 (57)
FLUSH_SIZE 0x0400 (1024)
FLUSH_STRIDE 0x0010 (16)
DUTY_OFFSET 0x01 (1)
DUTY_WIDTH 0x03 (3)
DAY_ALRM 0x0D (13)
MON_ALRM 0x00 (0) - Month alarm not supported
CENTURY 0x32 (50)
IAPC_Boot_Arch 0x13 0x00
Reserved 0x00 (0)
Flags 0x000386A5
WBINVD 1 - WBINVD instruction fully supported
WBINVD_Flush 0 - WBINVD instruction not for sleep states (Don't care if WBINVD=1)
PROC_C1 1 - C1 power state: all processors
P_LVL2_UP 0 - C2 power state: UP system only
PWR_BUTTON 0 - Power button supported as fixed feature
SLP_BUTTON 1 - Sleep button not support or handled by ASL code
FIX_RTC 0 - Fixed register support RTC wake
RTC_S4 1 - RTC wakeup support: S1, S2, S3, S4
TMR_VAL_EXT 0 - 24bit PM Timer
DCK_CAP 1 - Docking supported
RESET_REG_SUP 1 - Reset Register supported
SEALED_CASE 0 - System is not sealed
HEADLESS 0 - Not headless mode
CPU_SW_SLP 0 - Normal method to write SLP_TYPx
PCI_EXP_WAK 0 - PM1 block does not support PCIE wakeup event bits
USE_PLATFORM_CLOCK 1 - OSPM use HPET (if exist) or ACPI PM Timer
S4_RTC_STS_VALID 1 - RTC_STS flag is valid when resume from S4
REMOTE_POWER_ON_CAPABLE 1 - System compatible with remote power on
FORCE_APIC_CLUSTER_MODEL 0 - Cluster destination model not required
FORCE_APIC_PHYSICAL_DESTINATION_MODE 0 - Physical destination mode not required
ASF! Table: 0x9CFFD000
41 53 46 21 A5 00 00 00 20 5D 48 50 20 20 20 20 ASF!.... ]HP
49 4E 53 59 44 45 20 20 01 00 00 00 4D 53 46 54 INSYDE ....MSFT
13 00 00 01 00 00 10 00 05 FF 01 00 00 00 01 57 ...............W
00 00 00 00 01 00 2C 00 00 00 03 0C 89 04 01 01 ......,.........
05 6F 00 68 08 88 17 00 89 04 04 04 07 6F 00 68 .o.h.........o.h
20 88 03 00 89 05 01 01 19 6F 00 68 20 88 22 00 ........o.h .".
02 00 18 00 04 04 00 00 00 88 00 03 01 88 00 02 ................
02 88 00 01 03 88 00 04 03 00 17 00 20 F8 00 00 ............ ...
00 1F F0 00 00 00 00 00 00 00 00 00 00 00 00 84 ................
00 16 00 00 10 5C 68 88 C2 D2 DC A0 A2 A4 A6 C8 .....\h.........
00 00 00 00 00 .....
Signature "ASF!"
Length 0x000000A5 (165)
Revision 0x20 (32)
Checksum 0x5D (93)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00000001 (1)
Creator ID "MSFT"
Creator Revision 0x01000013 (16777235)
Data 0x00 0x00 0x10 0x00 0x05 0xFF 0x01 0x00 0x00 0x00 0x01 0x57 0x00 0x00 0x00 0x00
Data 0x01 0x00 0x2C 0x00 0x00 0x00 0x03 0x0C 0x89 0x04 0x01 0x01 0x05 0x6F 0x00 0x68
Data 0x08 0x88 0x17 0x00 0x89 0x04 0x04 0x04 0x07 0x6F 0x00 0x68 0x20 0x88 0x03 0x00
Data 0x89 0x05 0x01 0x01 0x19 0x6F 0x00 0x68 0x20 0x88 0x22 0x00 0x02 0x00 0x18 0x00
Data 0x04 0x04 0x00 0x00 0x00 0x88 0x00 0x03 0x01 0x88 0x00 0x02 0x02 0x88 0x00 0x01
Data 0x03 0x88 0x00 0x04 0x03 0x00 0x17 0x00 0x20 0xF8 0x00 0x00 0x00 0x1F 0xF0 0x00
Data 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x84 0x00 0x16 0x00 0x00
Data 0x10 0x5C 0x68 0x88 0xC2 0xD2 0xDC 0xA0 0xA2 0xA4 0xA6 0xC8 0x00 0x00 0x00 0x00
Data 0x00
High Precision Event Timers Table: 0x9CFFB000
48 50 45 54 38 00 00 00 01 2C 48 50 20 20 20 20 HPET8....,HP
49 4E 53 59 44 45 20 20 01 00 00 00 4D 53 46 54 INSYDE ....MSFT
13 00 00 01 01 A2 86 80 00 00 00 00 00 00 D0 FE ................
00 00 00 00 00 80 00 00 ........
Signature "HPET"
Length 0x00000038 (56)
Revision 0x01 (1)
Checksum 0x2C (44)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00000001 (1)
Creator ID "MSFT"
Creator Revision 0x01000013 (16777235)
Event Timer Block ID 0x8086A201
Bit[31:16]=Vendor Intel Corporation
Bit[15]=LegacyReplacement IRQ Routing Capable
Bit[13]=Counter Size 64-bits
Bit[12:8]=Number of Timers 0x03 (3)
Bit[7:0]:Revision ID 0x01 (1)
Base Address Memory: 0xFED00000, BitWidth: 0x0 (0), BitOffset: 0x0 (0), AccessSize: Undefined
HPET Number 0x00 (0)
Minimum Clock Tick 0x0080 (128)
Page Protection & OEM Attribute 0x00 (0)
Multiple APIC Description Table: 0x9CFFA000
41 50 49 43 8C 00 00 00 02 77 48 50 20 20 20 20 APIC.....wHP
49 4E 53 59 44 45 20 20 01 00 00 00 4D 53 46 54 INSYDE ....MSFT
13 00 00 01 00 00 E0 FE 01 00 00 00 00 08 01 00 ................
01 00 00 00 00 08 02 01 01 00 00 00 00 08 03 02 ................
01 00 00 00 00 08 04 03 01 00 00 00 00 08 05 04 ................
01 00 00 00 00 08 06 05 01 00 00 00 00 08 07 06 ................
01 00 00 00 00 08 08 07 01 00 00 00 01 0C 00 00 ................
00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00 ................
00 00 02 0A 00 09 09 00 00 00 0D 00 ............
Signature "APIC"
Length 0x0000008C (140)
Revision 0x02 (2)
Checksum 0x77 (119)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00000001 (1)
Creator ID "MSFT"
Creator Revision 0x01000013 (16777235)
Local APIC 0xFEE00000
Flags 0x00000001
Dual-8259 1 - Yes
Processor Local APIC Structure
Type 0x00 (0)
Length 0x08 (8)
ACPI Processor ID 0x01 (1)
APIC ID 0x00 (0)
Flags 0x00000001 (1) - Enabled
Processor Local APIC Structure
Type 0x00 (0)
Length 0x08 (8)
ACPI Processor ID 0x02 (2)
APIC ID 0x01 (1)
Flags 0x00000001 (1) - Enabled
Processor Local APIC Structure
Type 0x00 (0)
Length 0x08 (8)
ACPI Processor ID 0x03 (3)
APIC ID 0x02 (2)
Flags 0x00000001 (1) - Enabled
Processor Local APIC Structure
Type 0x00 (0)
Length 0x08 (8)
ACPI Processor ID 0x04 (4)
APIC ID 0x03 (3)
Flags 0x00000001 (1) - Enabled
Processor Local APIC Structure
Type 0x00 (0)
Length 0x08 (8)
ACPI Processor ID 0x05 (5)
APIC ID 0x04 (4)
Flags 0x00000001 (1) - Enabled
Processor Local APIC Structure
Type 0x00 (0)
Length 0x08 (8)
ACPI Processor ID 0x06 (6)
APIC ID 0x05 (5)
Flags 0x00000001 (1) - Enabled
Processor Local APIC Structure
Type 0x00 (0)
Length 0x08 (8)
ACPI Processor ID 0x07 (7)
APIC ID 0x06 (6)
Flags 0x00000001 (1) - Enabled
Processor Local APIC Structure
Type 0x00 (0)
Length 0x08 (8)
ACPI Processor ID 0x08 (8)
APIC ID 0x07 (7)
Flags 0x00000001 (1) - Enabled
I/O APIC Structure
Type 0x01 (1)
Length 0x0C (12)
I/O APIC ID 0x00 (0)
Reserved 0x00 (0)
I/O APIC Address 0xFEC00000
System Interrupt Base 0x00000000 (0)
Interrupt Source Override Structure
Type 0x02 (2)
Length 0x0A (10)
Bus 0x00 (0) - ISA
Source IRQ0
System Interrupt 0x00000002 (2)
Flags 0x0000
Polarity 0x00 - Conforms to the specifications of the bus
Trigger Mode 0x00 - Conforms to the specifications of the bus
Interrupt Source Override Structure
Type 0x02 (2)
Length 0x0A (10)
Bus 0x00 (0) - ISA
Source IRQ9
System Interrupt 0x00000009 (9)
Flags 0x000D
Polarity 0x01 - Active high
Trigger Mode 0x03 - Level triggered
Memory Mapped Configuration Space Base Address Description Table: 0x9CFF9000
4D 43 46 47 3C 00 00 00 01 54 48 50 20 20 20 20 MCFG<....THP
49 4E 53 59 44 45 20 20 01 00 00 00 4D 53 46 54 INSYDE ....MSFT
13 00 00 01 00 00 00 00 00 00 00 00 00 00 00 E0 ................
00 00 00 00 00 00 00 FF 00 00 00 00 ............
Signature "MCFG"
Length 0x0000003C (60)
Revision 0x01 (1)
Checksum 0x54 (84)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00000001 (1)
Creator ID "MSFT"
Creator Revision 0x01000013 (16777235)
Reserved 0x0000000000000000
Configuration Base Address Allocation
Base Address 0x00000000E0000000
PCI Segment 0x0000 (0)
Start Bus Number 0x00 (0)
End Bus Number 0xFF (255)
Reserved 0x00000000 (0)
Software Licensing Description Table: 0x9CFEB000
53 4C 49 43 76 01 00 00 01 67 48 50 51 4F 45 4D SLICv....gHPQOEM
53 4C 49 43 2D 4D 50 43 01 00 00 00 4D 53 46 54 SLIC-MPC....MSFT
13 00 00 01 00 00 00 00 9C 00 00 00 06 02 00 00 ................
00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 .$..RSA1........
5B AB 60 56 BC 58 1E E8 C1 D2 A1 5C E5 4F BB FD [.`V.X.....\.O..
1D A9 8C 94 B4 AE 08 11 DC 13 59 D3 7F F6 3E 87 ..........Y...>.
31 B9 95 74 10 DA 3B A4 5B B5 19 82 7C 39 D7 0D 1..t..;.[...|9..
7C 22 AC 1C 2A 84 E9 0A 88 6D FA B1 E2 D8 E8 21 |"..*....m.....!
96 E1 2E 68 9A BF 44 45 3E 3C 8E 99 90 DE 37 38 ...h..DE><....78
57 0B 92 15 BC DE FF F2 07 7E B5 40 8C 51 3A C3 W........~.@.Q:.
02 48 F6 13 12 72 FB 42 78 E6 47 88 54 C7 B0 F0 .H...r.Bx.G.T...
93 9E FB 04 B7 B8 B8 90 DE DB ED 32 E1 FB 54 A6 ...........2..T.
01 00 00 00 B6 00 00 00 00 00 02 00 48 50 51 4F ............HPQO
45 4D 53 4C 49 43 2D 4D 50 43 57 49 4E 44 4F 57 EMSLIC-MPCWINDOW
53 20 01 00 02 00 00 00 00 00 00 00 00 00 00 00 S ..............
00 00 00 00 00 00 30 90 1F B4 A4 BE 80 1E E9 33 ......0........3
EC 7F FC B1 28 0E A6 CE 43 72 8C 79 30 B4 F4 59 ....(...Cr.y0..Y
EA 7D CF B7 11 8B DA 70 C5 C8 3F 79 20 08 6F 64 .}.....p..?y .od
CA 07 88 B3 B1 16 B4 BA 1A F1 85 52 B1 F5 07 55 ...........R...U
B5 70 61 EF 44 8C AA 5F 78 14 66 98 9C F3 58 D8 .pa.D.._x.f...X.
AA 48 E0 37 F8 F6 AB 64 FA DA 17 2A 62 E3 04 1D .H.7...d...*b...
32 2D D5 EA 33 66 5C 5B 3B 0E F7 09 66 42 32 AA 2-..3f\[;...fB2.
14 99 C3 EE 1A 62 3B 07 5F F0 48 44 C4 E6 32 59 .....b;._.HD..2Y
1F 14 3E F1 B2 38 ..>..8
Signature "SLIC"
Length 0x00000176 (374)
Revision 0x01 (1)
Checksum 0x67 (103)
OEM ID "HPQOEM"
OEM Table ID "SLIC-MPC"
OEM Revision 0x00000001 (1)
Creator ID "MSFT"
Creator Revision 0x01000013 (16777235)
OEM Public Key Structure
Type 0x00000000 (0)
Length 0x0000009C (156)
Key Type 0x06 (6)
Version 0x02 (2)
Reserved 0x0000 (0)
Algorithm 0x00002400 (9216)
Magic "RSA1"
Bit Length 0x00000400 (1024)
Exponent 0x00010001 (65537)
Modulus 0x5B 0xAB 0x60 0x56 0xBC 0x58 0x1E 0xE8 0xC1 0xD2 0xA1 0x5C 0xE5 0x4F 0xBB 0xFD
0x1D 0xA9 0x8C 0x94 0xB4 0xAE 0x08 0x11 0xDC 0x13 0x59 0xD3 0x7F 0xF6 0x3E 0x87
0x31 0xB9 0x95 0x74 0x10 0xDA 0x3B 0xA4 0x5B 0xB5 0x19 0x82 0x7C 0x39 0xD7 0x0D
0x7C 0x22 0xAC 0x1C 0x2A 0x84 0xE9 0x0A 0x88 0x6D 0xFA 0xB1 0xE2 0xD8 0xE8 0x21
0x96 0xE1 0x2E 0x68 0x9A 0xBF 0x44 0x45 0x3E 0x3C 0x8E 0x99 0x90 0xDE 0x37 0x38
0x57 0x0B 0x92 0x15 0xBC 0xDE 0xFF 0xF2 0x07 0x7E 0xB5 0x40 0x8C 0x51 0x3A 0xC3
0x02 0x48 0xF6 0x13 0x12 0x72 0xFB 0x42 0x78 0xE6 0x47 0x88 0x54 0xC7 0xB0 0xF0
0x93 0x9E 0xFB 0x04 0xB7 0xB8 0xB8 0x90 0xDE 0xDB 0xED 0x32 0xE1 0xFB 0x54 0xA6
SLIC Marker Structure
Type 0x00000001 (1)
Length 0x000000B6 (182)
Version 0x00020000 (131072)
OEM ID "HPQOEM"
OEM Table ID "SLIC-MPC"
Windows Flag "WINDOWS "
Reserved 0x01 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Signature 0x30 0x90 0x1F 0xB4 0xA4 0xBE 0x80 0x1E 0xE9 0x33 0xEC 0x7F 0xFC 0xB1 0x28 0x0E
0xA6 0xCE 0x43 0x72 0x8C 0x79 0x30 0xB4 0xF4 0x59 0xEA 0x7D 0xCF 0xB7 0x11 0x8B
0xDA 0x70 0xC5 0xC8 0x3F 0x79 0x20 0x08 0x6F 0x64 0xCA 0x07 0x88 0xB3 0xB1 0x16
0xB4 0xBA 0x1A 0xF1 0x85 0x52 0xB1 0xF5 0x07 0x55 0xB5 0x70 0x61 0xEF 0x44 0x8C
0xAA 0x5F 0x78 0x14 0x66 0x98 0x9C 0xF3 0x58 0xD8 0xAA 0x48 0xE0 0x37 0xF8 0xF6
0xAB 0x64 0xFA 0xDA 0x17 0x2A 0x62 0xE3 0x04 0x1D 0x32 0x2D 0xD5 0xEA 0x33 0x66
0x5C 0x5B 0x3B 0x0E 0xF7 0x09 0x66 0x42 0x32 0xAA 0x14 0x99 0xC3 0xEE 0x1A 0x62
0x3B 0x07 0x5F 0xF0 0x48 0x44 0xC4 0xE6 0x32 0x59 0x1F 0x14 0x3E 0xF1 0xB2 0x38
Secondary System Description Table: 0x9CFEA000
Signature "SSDT"
Length 0x0000051F (1311)
Revision 0x01 (1)
Checksum 0xFA (250)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00001000 (4096)
Creator ID "MSFT"
Creator Revision 0x01000013 (16777235)
DefinitionBlock ("SSDT.AML", "SSDT", 0x01, "HP ", "INSYDE ", 0x00001000)
{
Scope(\_SB)
{
Device(PTID)
{
Name(_HID, 0x0E34D425)
Name(_CID, EISAID("PNP0C02"))
Name(IVER, 0x00030000)
Method(_STA, 0, NotSerialized)
{
Return(0x0F)
}
Name(TSDL, Package(46)
{
Zero, "CPU Core 0 DTS", Zero, "CPU Core 1 DTS", Zero, "CPU Core 2 DTS",
Zero, "CPU Core 3 DTS", Zero, "CPU Core Package DTS", 0x03, "CPU Core VR (IMVP) Temperature",
0x03, "CPU GT VR (IMVP) Temperature", 0x03, "Heat Exchanger Fan Temperature",
0x03, "Skin Temperature", 0x03, "Ambient Temperature", 0x03, "Minicard Region Temperature",
0x02, "Channel 0 DIMM Temperature", 0x02, "Channel 1 DIMM Temperature",
Zero, "CPU Package Temperature", 0x05, "PCH DTS Temperature from PCH",
Zero, "CPU PECI reading", 0x05, "SA DTS Temperature from PCH", 0x02,
"TS-on-DIMM0 Temperature", 0x02, "TS-on-DIMM1 Temperature", 0x02,
"TS-on-DIMM2 Temperature", 0x02, "TS-on-DIMM3 Temperature", 0x02,
"TZ00 _TMP", 0x02, "TZ01 _TMP"
})
Name(PSDL, Package(12)
{
Zero, "CPU Power", One, "Gfx Core Power", 0x0A, "System Power", Zero,
"CPU Average Power", One, "Gfx Core Average Power", 0x0A, "System Average Power"
})
Name(OSDL, Package(6) {Zero, "CPU Fan Speed", "RPM", Zero, "CPU energy", "RAW"})
Method(TSDD, 0, NotSerialized)
{
Name(TMPV, Package(23)
{
0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000,
0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000,
0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000,
0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000
})
Store(Add(Multiply(DTS1, 0x0A), 0x0AAC), Index(TMPV, Zero))
Store(Add(Multiply(DTS2, 0x0A), 0x0AAC), Index(TMPV, One))
Store(Add(Multiply(DTS3, 0x0A), 0x0AAC), Index(TMPV, 0x02))
Store(Add(Multiply(DTS4, 0x0A), 0x0AAC), Index(TMPV, 0x03))
Store(Add(Multiply(PDTS, 0x0A), 0x0AAC), Index(TMPV, 0x04))
Return(TMPV)
}
Method(PSDD, 0, NotSerialized)
{
Name(PWRV, Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000})
Return(PWRV)
}
Method(OSDD, 0, NotSerialized)
{
Name(OSDV, Package(2) {0x80000000, 0x80000000})
Return(OSDV)
}
Method(SDSP, 0, NotSerialized)
{
Return(0x0A)
}
Name(PADA, Package(10) {One, Ones, Ones, 0x1A, Ones, Ones, Ones, Ones, Ones, Ones})
Name(PADD, Package(10) {0x02, 0x6C, 0x68, 0x1A, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65})
Method(PADT, 0, NotSerialized)
{
Return(PADD)
}
Method(RPMD, 0, NotSerialized)
{
Name(MTMP, Buffer(0x1A){})
Return(MTMP)
}
Method(WPMD, 1, NotSerialized)
{
If(LNotEqual(SizeOf(Arg0), 0x1A))
{
Return(Ones)
}
Return(Zero)
}
Method(ISPC, 0, NotSerialized)
{
Return(Zero)
}
Method(ENPC, 0, NotSerialized)
{
Return(Zero)
}
Method(RPCS, 0, NotSerialized)
{
Return(Zero)
}
Method(RPEC, 0, NotSerialized)
{
Store(Zero, Local0)
Return(Local0)
}
}
}
}
Simple Boot Flag Table: 0x9CFE8000
42 4F 4F 54 28 00 00 00 01 EC 48 50 20 20 20 20 BOOT(.....HP
49 4E 53 59 44 45 20 20 01 00 00 00 4D 53 46 54 INSYDE ....MSFT
13 00 00 01 44 00 00 00 ....D...
Signature "BOOT"
Length 0x00000028 (40)
Revision 0x01 (1)
Checksum 0xEC (236)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00000001 (1)
Creator ID "MSFT"
Creator Revision 0x01000013 (16777235)
CMOS Index 0x44 (68)
Reserved 0x00 0x00 0x00
ASPT Table: 0x9CFE5000
41 53 50 54 34 00 00 00 07 1A 48 50 20 20 20 20 ASPT4.....HP
49 4E 53 59 44 45 20 20 01 00 00 00 4D 53 46 54 INSYDE ....MSFT
13 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 ....
Signature "ASPT"
Length 0x00000034 (52)
Revision 0x07 (7)
Checksum 0x1A (26)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00000001 (1)
Creator ID "MSFT"
Creator Revision 0x01000013 (16777235)
Data 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Secondary System Description Table: 0x9CFE4000
Signature "SSDT"
Length 0x0000094E (2382)
Revision 0x01 (1)
Checksum 0xDC (220)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00003000 (12288)
Creator ID "INTL"
Creator Revision 0x20100806 (537921542)
DefinitionBlock ("SSDT.AML", "SSDT", 0x01, "HP ", "INSYDE ", 0x00003000)
{
Scope(\_PR.CPU0)
{
Name(_PPC, Zero)
Method(_PCT, 0, NotSerialized)
{
If(LAnd(And(CFGD, One), And(PDC0, One)))
{
Return(Package(2)
{
ResourceTemplate()
{
Register(FFixedHW, 0x00, 0x00, 0x0000000000000000)
},
ResourceTemplate()
{
Register(FFixedHW, 0x00, 0x00, 0x0000000000000000)
}
})
}
Return(Package(2)
{
ResourceTemplate()
{
Register(SystemIO, 0x10, 0x00, 0x0000000000001000)
},
ResourceTemplate()
{
Register(SystemIO, 0x08, 0x00, 0x00000000000000B3)
}
})
}
Method(XPSS, 0, NotSerialized)
{
If(And(PDC0, One))
{
Return(NPSS)
}
Return(SPSS)
}
Name(SPSS, Package(15)
{
Package(6) {0x00000899, 0x0000AFC8, 0x0000006E, 0x0000000A, 0x00000083, 0x00000000},
Package(6) {0x00000898, 0x0000AFC8, 0x0000006E, 0x0000000A, 0x00000183, 0x00000001},
Package(6) {0x000007D0, 0x00009A9D, 0x0000006E, 0x0000000A, 0x00000283, 0x00000002},
Package(6) {0x0000076C, 0x0000920B, 0x0000006E, 0x0000000A, 0x00000383, 0x00000003},
Package(6) {0x00000708, 0x000087F6, 0x0000006E, 0x0000000A, 0x00000483, 0x00000004},
Package(6) {0x000006A4, 0x00007FBF, 0x0000006E, 0x0000000A, 0x00000583, 0x00000005},
Package(6) {0x00000640, 0x00007613, 0x0000006E, 0x0000000A, 0x00000683, 0x00000006},
Package(6) {0x000005DC, 0x00006E34, 0x0000006E, 0x0000000A, 0x00000783, 0x00000007},
Package(6) {0x00000578, 0x000064E4, 0x0000006E, 0x0000000A, 0x00000883, 0x00000008},
Package(6) {0x00000514, 0x00005D5C, 0x0000006E, 0x0000000A, 0x00000983, 0x00000009},
Package(6) {0x000004B0, 0x0000546D, 0x0000006E, 0x0000000A, 0x00000A83, 0x0000000A},
Package(6) {0x0000044C, 0x00004D3F, 0x0000006E, 0x0000000A, 0x00000B83, 0x0000000B},
Package(6) {0x000003E8, 0x000044AE, 0x0000006E, 0x0000000A, 0x00000C83, 0x0000000C},
Package(6) {0x00000384, 0x00003C4D, 0x0000006E, 0x0000000A, 0x00000D83, 0x0000000D},
Package(6) {0x00000320, 0x0000359B, 0x0000006E, 0x0000000A, 0x00000E83, 0x0000000E}
})
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Name(_PSS, Package(15)
{
Package(6) {0x00000899, 0x0000AFC8, 0x0000000A, 0x0000000A, 0x00002100, 0x00002100},
Package(6) {0x00000898, 0x0000AFC8, 0x0000000A, 0x0000000A, 0x00001600, 0x00001600},
Package(6) {0x000007D0, 0x00009A9D, 0x0000000A, 0x0000000A, 0x00001400, 0x00001400},
Package(6) {0x0000076C, 0x0000920B, 0x0000000A, 0x0000000A, 0x00001300, 0x00001300},
Package(6) {0x00000708, 0x000087F6, 0x0000000A, 0x0000000A, 0x00001200, 0x00001200},
Package(6) {0x000006A4, 0x00007FBF, 0x0000000A, 0x0000000A, 0x00001100, 0x00001100},
Package(6) {0x00000640, 0x00007613, 0x0000000A, 0x0000000A, 0x00001000, 0x00001000},
Package(6) {0x000005DC, 0x00006E34, 0x0000000A, 0x0000000A, 0x00000F00, 0x00000F00},
Package(6) {0x00000578, 0x000064E4, 0x0000000A, 0x0000000A, 0x00000E00, 0x00000E00},
Package(6) {0x00000514, 0x00005D5C, 0x0000000A, 0x0000000A, 0x00000D00, 0x00000D00},
Package(6) {0x000004B0, 0x0000546D, 0x0000000A, 0x0000000A, 0x00000C00, 0x00000C00},
Package(6) {0x0000044C, 0x00004D3F, 0x0000000A, 0x0000000A, 0x00000B00, 0x00000B00},
Package(6) {0x000003E8, 0x000044AE, 0x0000000A, 0x0000000A, 0x00000A00, 0x00000A00},
Package(6) {0x00000384, 0x00003C4D, 0x0000000A, 0x0000000A, 0x00000900, 0x00000900},
Package(6) {0x00000320, 0x0000359B, 0x0000000A, 0x0000000A, 0x00000800, 0x00000800}
})
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Package(6) {0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
Name(PSDF, Zero)
Method(_PSD, 0, NotSerialized)
{
If(LNot(PSDF))
{
Store(TCNT, Index(DerefOf(Index(HPSD, Zero)), 0x04))
Store(TCNT, Index(DerefOf(Index(SPSD, Zero)), 0x04))
Store(Ones, PSDF)
}
If(And(PDC0, 0x0800))
{
Return(HPSD)
}
Return(SPSD)
}
Name(HPSD, Package(1)
{
Package(5) {0x05, Zero, Zero, 0xFE, 0x80}
})
Name(SPSD, Package(1)
{
Package(5) {0x05, Zero, Zero, 0xFC, 0x80}
})
}
}
Secondary System Description Table: 0x9CFE3000
Signature "SSDT"
Length 0x00000996 (2454)
Revision 0x01 (1)
Checksum 0x58 (88)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00003000 (12288)
Creator ID "INTL"
Creator Revision 0x20100806 (537921542)
DefinitionBlock ("SSDT.AML", "SSDT", 0x01, "HP ", "INSYDE ", 0x00003000)
{
Scope(\)
{
Name(SSDT, Package(12)
{
"CPU0IST ", 0x9AF2D018, 0x0000094E, "APIST ", 0x9CE71A98, 0x00000303,
"CPU0CST ", 0x9CE70798, 0x00000727, "APCST ", 0x9CE6FD98, 0x00000119
})
Name(CFGD, 0x007EFEFF)
Name(\PDC0, 0x80000000)
Name(\PDC1, 0x80000000)
Name(\PDC2, 0x80000000)
Name(\PDC3, 0x80000000)
Name(\PDC4, 0x80000000)
Name(\PDC5, 0x80000000)
Name(\PDC6, 0x80000000)
Name(\PDC7, 0x80000000)
Name(\SDTL, Zero)
}
Scope(\_PR.CPU0)
{
Name(HI0, Zero)
Name(HC0, Zero)
Method(_PDC, 1, NotSerialized)
{
Store(CPDC(Arg0), Local0)
GCAP(Local0)
Return(Local0)
}
Method(_OSC, 4, NotSerialized)
{
Store(COSC(Arg0, Arg1, Arg2, Arg3), Local0)
GCAP(Local0)
Return(Local0)
}
Method(CPDC, 1, NotSerialized)
{
CreateDWordField(Arg0, Zero, REVS)
CreateDWordField(Arg0, 0x04, SIZE)
Store(SizeOf(Arg0), Local0)
Store(Subtract(Local0, 0x08), Local1)
CreateField(Arg0,0x40,Multiply(Local1, 0x08),TEMP)
Name(STS0, Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
})
Concatenate(STS0, TEMP, Local2)
Return(COSC(Buffer(0x10)
{
0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
}, REVS, SIZE, Local2))
}
Method(COSC, 4, NotSerialized)
{
CreateDWordField(Arg3, Zero, STS0)
CreateDWordField(Arg3, 0x04, CAP0)
CreateDWordField(Arg0, Zero, IID0)
CreateDWordField(Arg0, 0x04, IID1)
CreateDWordField(Arg0, 0x08, IID2)
CreateDWordField(Arg0, 0x0C, IID3)
Name(UID0, Buffer(0x10)
{
0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
})
CreateDWordField(UID0, Zero, EID0)
CreateDWordField(UID0, 0x04, EID1)
CreateDWordField(UID0, 0x08, EID2)
CreateDWordField(UID0, 0x0C, EID3)
If(LNot(LAnd(LAnd(LEqual(IID0, EID0), LEqual(IID1, EID1)), LAnd(LEqual(IID2, EID2), LEqual(IID3, EID3)))))
{
Store(0x06, STS0)
Return(Arg3)
}
If(LNotEqual(Arg1, One))
{
Store(0x0A, STS0)
Return(Arg3)
}
Return(Arg3)
}
Method(GCAP, 1, NotSerialized)
{
CreateDWordField(Arg0, Zero, STS0)
CreateDWordField(Arg0, 0x04, CAP0)
If(LOr(LEqual(STS0, 0x06), LEqual(STS0, 0x0A)))
{
Return(Zero)
}
If(And(STS0, One))
{
And(CAP0, 0x0BFF, CAP0)
Return(Zero)
}
Or(And(PDC0, 0x7FFFFFFF), CAP0, PDC0)
If(And(CFGD, 0x3E))
{
If(LAnd(LAnd(And(CFGD, 0x0400), And(PDC0, 0x18)), LNot(And(SDTL, 0x02))))
{
Or(SDTL, 0x02, SDTL)
OperationRegion(CST0, SystemMemory, DerefOf(Index(SSDT, 0x07)), DerefOf(Index(SSDT, 0x08)))
Load(CST0, HC0)
}
}
Return(Zero)
}
}
Scope(\_PR.CPU1)
{
Name(HI1, Zero)
Name(HC1, Zero)
Method(_PDC, 1, NotSerialized)
{
Store(\_PR.CPU0.CPDC(Arg0), Local0)
GCAP(Local0)
Return(Local0)
}
Method(_OSC, 4, NotSerialized)
{
Store(\_PR.CPU0.COSC(Arg0, Arg1, Arg2, Arg3), Local0)
GCAP(Local0)
Return(Local0)
}
Method(GCAP, 1, NotSerialized)
{
CreateDWordField(Arg0, Zero, STS1)
CreateDWordField(Arg0, 0x04, CAP1)
If(LOr(LEqual(STS1, 0x06), LEqual(STS1, 0x0A)))
{
Return(Zero)
}
If(And(STS1, One))
{
And(CAP1, 0x0BFF, CAP1)
Return(Zero)
}
Or(And(PDC1, 0x7FFFFFFF), CAP1, PDC1)
If(LEqual(And(PDC0, 0x09), 0x09))
{
APPT()
}
If(And(PDC0, 0x18))
{
APCT()
}
Return(Zero)
}
Method(APCT, 0, NotSerialized)
{
If(LAnd(And(CFGD, 0x2E), LNot(And(SDTL, 0x20))))
{
Or(SDTL, 0x20, SDTL)
OperationRegion(CST1, SystemMemory, DerefOf(Index(SSDT, 0x0A)), DerefOf(Index(SSDT, 0x0B)))
Load(CST1, HC1)
}
}
Method(APPT, 0, NotSerialized)
{
If(LAnd(And(CFGD, One), LNot(And(SDTL, 0x10))))
{
Or(SDTL, 0x10, SDTL)
OperationRegion(IST1, SystemMemory, DerefOf(Index(SSDT, 0x04)), DerefOf(Index(SSDT, 0x05)))
Load(IST1, HI1)
}
}
}
Scope(\_PR.CPU2)
{
Method(_PDC, 1, NotSerialized)
{
Store(\_PR.CPU0.CPDC(Arg0), Local0)
GCAP(Local0)
Return(Local0)
}
Method(_OSC, 4, NotSerialized)
{
Store(\_PR.CPU0.COSC(Arg0, Arg1, Arg2, Arg3), Local0)
GCAP(Local0)
Return(Local0)
}
Method(GCAP, 1, NotSerialized)
{
CreateDWordField(Arg0, Zero, STS2)
CreateDWordField(Arg0, 0x04, CAP2)
If(LOr(LEqual(STS2, 0x06), LEqual(STS2, 0x0A)))
{
Return(Zero)
}
If(And(STS2, One))
{
And(CAP2, 0x0BFF, CAP2)
Return(Zero)
}
Or(And(PDC2, 0x7FFFFFFF), CAP2, PDC2)
If(LEqual(And(PDC2, 0x09), 0x09))
{
\_PR.CPU1.APPT()
}
If(And(PDC2, 0x18))
{
\_PR.CPU1.APCT()
}
Return(Zero)
}
}
Scope(\_PR.CPU3)
{
Method(_PDC, 1, NotSerialized)
{
Store(\_PR.CPU0.CPDC(Arg0), Local0)
GCAP(Local0)
Return(Local0)
}
Method(_OSC, 4, NotSerialized)
{
Store(\_PR.CPU0.COSC(Arg0, Arg1, Arg2, Arg3), Local0)
GCAP(Local0)
Return(Local0)
}
Method(GCAP, 1, NotSerialized)
{
CreateDWordField(Arg0, Zero, STS3)
CreateDWordField(Arg0, 0x04, CAP3)
If(LOr(LEqual(STS3, 0x06), LEqual(STS3, 0x0A)))
{
Return(Zero)
}
If(And(STS3, One))
{
And(CAP3, 0x0BFF, CAP3)
Return(Zero)
}
Or(And(PDC3, 0x7FFFFFFF), CAP3, PDC3)
If(LEqual(And(PDC3, 0x09), 0x09))
{
\_PR.CPU1.APPT()
}
If(And(PDC3, 0x18))
{
\_PR.CPU1.APCT()
}
Return(Zero)
}
}
Scope(\_PR.CPU4)
{
Method(_PDC, 1, NotSerialized)
{
Store(\_PR.CPU0.CPDC(Arg0), Local0)
GCAP(Local0)
Return(Local0)
}
Method(_OSC, 4, NotSerialized)
{
Store(\_PR.CPU0.COSC(Arg0, Arg1, Arg2, Arg3), Local0)
GCAP(Local0)
Return(Local0)
}
Method(GCAP, 1, NotSerialized)
{
CreateDWordField(Arg0, Zero, STS4)
CreateDWordField(Arg0, 0x04, CAP4)
If(LOr(LEqual(STS4, 0x06), LEqual(STS4, 0x0A)))
{
Return(Zero)
}
If(And(STS4, One))
{
And(CAP4, 0x0BFF, CAP4)
Return(Zero)
}
Or(And(PDC4, 0x7FFFFFFF), CAP4, PDC4)
If(LEqual(And(PDC4, 0x09), 0x09))
{
\_PR.CPU1.APPT()
}
If(And(PDC4, 0x18))
{
\_PR.CPU1.APCT()
}
Return(Zero)
}
}
Scope(\_PR.CPU5)
{
Method(_PDC, 1, NotSerialized)
{
Store(\_PR.CPU0.CPDC(Arg0), Local0)
GCAP(Local0)
Return(Local0)
}
Method(_OSC, 4, NotSerialized)
{
Store(\_PR.CPU0.COSC(Arg0, Arg1, Arg2, Arg3), Local0)
GCAP(Local0)
Return(Local0)
}
Method(GCAP, 1, NotSerialized)
{
CreateDWordField(Arg0, Zero, STS5)
CreateDWordField(Arg0, 0x04, CAP5)
If(LOr(LEqual(STS5, 0x06), LEqual(STS5, 0x0A)))
{
Return(Zero)
}
If(And(STS5, One))
{
And(CAP5, 0x0BFF, CAP5)
Return(Zero)
}
Or(And(PDC5, 0x7FFFFFFF), CAP5, PDC5)
If(LEqual(And(PDC5, 0x09), 0x09))
{
\_PR.CPU1.APPT()
}
If(And(PDC5, 0x18))
{
\_PR.CPU1.APCT()
}
Return(Zero)
}
}
Scope(\_PR.CPU6)
{
Method(_PDC, 1, NotSerialized)
{
Store(\_PR.CPU0.CPDC(Arg0), Local0)
GCAP(Local0)
Return(Local0)
}
Method(_OSC, 4, NotSerialized)
{
Store(\_PR.CPU0.COSC(Arg0, Arg1, Arg2, Arg3), Local0)
GCAP(Local0)
Return(Local0)
}
Method(GCAP, 1, NotSerialized)
{
CreateDWordField(Arg0, Zero, STS6)
CreateDWordField(Arg0, 0x04, CAP6)
If(LOr(LEqual(STS6, 0x06), LEqual(STS6, 0x0A)))
{
Return(Zero)
}
If(And(STS6, One))
{
And(CAP6, 0x0BFF, CAP6)
Return(Zero)
}
Or(And(PDC6, 0x7FFFFFFF), CAP6, PDC6)
If(LEqual(And(PDC6, 0x09), 0x09))
{
\_PR.CPU1.APPT()
}
If(And(PDC6, 0x18))
{
\_PR.CPU1.APCT()
}
Return(Zero)
}
}
Scope(\_PR.CPU7)
{
Method(_PDC, 1, NotSerialized)
{
Store(\_PR.CPU0.CPDC(Arg0), Local0)
GCAP(Local0)
Return(Local0)
}
Method(_OSC, 4, NotSerialized)
{
Store(\_PR.CPU0.COSC(Arg0, Arg1, Arg2, Arg3), Local0)
GCAP(Local0)
Return(Local0)
}
Method(GCAP, 1, NotSerialized)
{
CreateDWordField(Arg0, Zero, STS7)
CreateDWordField(Arg0, 0x04, CAP7)
If(LOr(LEqual(STS7, 0x06), LEqual(STS7, 0x0A)))
{
Return(Zero)
}
If(And(STS7, One))
{
And(CAP7, 0x0BFF, CAP7)
Return(Zero)
}
Or(And(PDC7, 0x7FFFFFFF), CAP7, PDC7)
If(LEqual(And(PDC7, 0x09), 0x09))
{
\_PR.CPU1.APPT()
}
If(And(PDC7, 0x18))
{
\_PR.CPU1.APCT()
}
Return(Zero)
}
}
}
Secondary System Description Table: 0x9CFE2000
Signature "SSDT"
Length 0x000002DA (730)
Revision 0x01 (1)
Checksum 0xFE (254)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00003000 (12288)
Creator ID "INTL"
Creator Revision 0x20100806 (537921542)
DefinitionBlock ("SSDT.AML", "SSDT", 0x01, "HP ", "INSYDE ", 0x00003000)
{
Scope(\_PR.CPU0)
{
Name(_TPC, Zero)
Method(_PTC, 0, NotSerialized)
{
If(And(PDC0, 0x04))
{
Return(Package(2)
{
ResourceTemplate()
{
Register(FFixedHW, 0x00, 0x00, 0x0000000000000000)
},
ResourceTemplate()
{
Register(FFixedHW, 0x00, 0x00, 0x0000000000000000)
}
})
}
Return(Package(2)
{
ResourceTemplate()
{
Register(SystemIO, 0x05, 0x00, 0x0000000000000410)
},
ResourceTemplate()
{
Register(SystemIO, 0x05, 0x00, 0x0000000000000410)
}
})
}
Name(TSMF, Package(15)
{
Package(5) {0x64, 0x03E8, Zero, Zero, Zero},
Package(5) {0x5E, 0x03AC, Zero, 0x1F, Zero},
Package(5) {0x58, 0x0370, Zero, 0x1E, Zero},
Package(5) {0x52, 0x0334, Zero, 0x1D, Zero},
Package(5) {0x4B, 0x02F8, Zero, 0x1C, Zero},
Package(5) {0x45, 0x02BC, Zero, 0x1B, Zero},
Package(5) {0x3F, 0x0280, Zero, 0x1A, Zero},
Package(5) {0x39, 0x0244, Zero, 0x19, Zero},
Package(5) {0x32, 0x0208, Zero, 0x18, Zero},
Package(5) {0x2C, 0x01CC, Zero, 0x17, Zero},
Package(5) {0x26, 0x0190, Zero, 0x16, Zero},
Package(5) {0x20, 0x0154, Zero, 0x15, Zero},
Package(5) {0x19, 0x0118, Zero, 0x14, Zero},
Package(5) {0x13, 0xDC, Zero, 0x13, Zero},
Package(5) {0x0D, 0xA0, Zero, 0x12, Zero}
})
Name(TSMC, Package(8)
{
Package(5) {0x64, 0x03E8, Zero, Zero, Zero},
Package(5) {0x58, 0x036B, Zero, 0x1E, Zero},
Package(5) {0x4B, 0x02EE, Zero, 0x1C, Zero},
Package(5) {0x3F, 0x0271, Zero, 0x1A, Zero},
Package(5) {0x32, 0x01F4, Zero, 0x18, Zero},
Package(5) {0x26, 0x0177, Zero, 0x16, Zero},
Package(5) {0x19, 0xFA, Zero, 0x14, Zero},
Package(5) {0x0D, 0x7D, Zero, 0x12, Zero}
})
Name(TSSF, Zero)
Mutex(TSMO, 0)
Method(_TSS, 0, NotSerialized)
{
If(LAnd(LNot(TSSF), CondRefOf(_PSS)))
{
Acquire(TSMO, 0xFFFF)
If(LAnd(LNot(TSSF), CondRefOf(_PSS)))
{
Name(LFMI, Zero)
Store(SizeOf(_PSS), LFMI)
Decrement(LFMI)
Name(LFMP, Zero)
Store(DerefOf(Index(DerefOf(Index(_PSS, LFMI)), One)), LFMP)
Store(Zero, Local0)
If(And(CFGD, 0x00080000))
{
Store(RefOf(TSMF), Local1)
Store(SizeOf(TSMF), Local2)
}
Else
{
Store(RefOf(TSMC), Local1)
Store(SizeOf(TSMC), Local2)
}
While(LLess(Local0, Local2))
{
Store(Divide(Multiply(LFMP, Subtract(Local2, Local0)), Local2, , ), Local4)
Store(Local4, Index(DerefOf(Index(DerefOf(Local1), Local0)), One))
Increment(Local0)
}
Store(Ones, TSSF)
}
Release(TSMO)
}
If(And(CFGD, 0x00080000))
{
Return(TSMF)
}
Else
{
Return(TSMC)
}
}
Method(_TSD, 0, NotSerialized)
{
If(LNot(And(PDC0, 0x04)))
{
Return(Package(1)
{
Package(5) {0x05, Zero, Zero, 0xFD, TCNT}
})
}
Return(Package(1)
{
Package(5) {0x05, Zero, Zero, 0xFC, TCNT}
})
}
}
}
Secondary System Description Table: 0x9CFE1000
Signature "SSDT"
Length 0x0000035D (861)
Revision 0x01 (1)
Checksum 0x0A (10)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00003000 (12288)
Creator ID "INTL"
Creator Revision 0x20100806 (537921542)
DefinitionBlock ("SSDT.AML", "SSDT", 0x01, "HP ", "INSYDE ", 0x00003000)
{
Scope(\_PR.CPU1)
{
Name(_TPC, Zero)
Method(_PTC, 0, NotSerialized)
{
Return(\_PR.CPU0._PTC)
}
Method(_TSS, 0, NotSerialized)
{
Return(\_PR.CPU0._TSS)
}
Method(_TSD, 0, NotSerialized)
{
If(LNot(And(PDC0, 0x04)))
{
Return(Package(1)
{
Package(5) {0x05, Zero, Zero, 0xFD, TCNT}
})
}
Return(Package(1)
{
Package(5) {0x05, Zero, One, 0xFC, TCNT}
})
}
}
Scope(\_PR.CPU2)
{
Name(_TPC, Zero)
Method(_PTC, 0, NotSerialized)
{
Return(\_PR.CPU0._PTC)
}
Method(_TSS, 0, NotSerialized)
{
Return(\_PR.CPU0._TSS)
}
Method(_TSD, 0, NotSerialized)
{
If(LNot(And(PDC0, 0x04)))
{
Return(Package(1)
{
Package(5) {0x05, Zero, Zero, 0xFD, TCNT}
})
}
Return(Package(1)
{
Package(5) {0x05, Zero, 0x02, 0xFC, TCNT}
})
}
}
Scope(\_PR.CPU3)
{
Name(_TPC, Zero)
Method(_PTC, 0, NotSerialized)
{
Return(\_PR.CPU0._PTC)
}
Method(_TSS, 0, NotSerialized)
{
Return(\_PR.CPU0._TSS)
}
Method(_TSD, 0, NotSerialized)
{
If(LNot(And(PDC0, 0x04)))
{
Return(Package(1)
{
Package(5) {0x05, Zero, Zero, 0xFD, TCNT}
})
}
Return(Package(1)
{
Package(5) {0x05, Zero, 0x03, 0xFC, TCNT}
})
}
}
Scope(\_PR.CPU4)
{
Name(_TPC, Zero)
Method(_PTC, 0, NotSerialized)
{
Return(\_PR.CPU0._PTC)
}
Method(_TSS, 0, NotSerialized)
{
Return(\_PR.CPU0._TSS)
}
Method(_TSD, 0, NotSerialized)
{
If(LNot(And(PDC0, 0x04)))
{
Return(Package(1)
{
Package(5) {0x05, Zero, Zero, 0xFD, TCNT}
})
}
Return(Package(1)
{
Package(5) {0x05, Zero, 0x04, 0xFC, TCNT}
})
}
}
Scope(\_PR.CPU5)
{
Name(_TPC, Zero)
Method(_PTC, 0, NotSerialized)
{
Return(\_PR.CPU0._PTC)
}
Method(_TSS, 0, NotSerialized)
{
Return(\_PR.CPU0._TSS)
}
Method(_TSD, 0, NotSerialized)
{
If(LNot(And(PDC0, 0x04)))
{
Return(Package(1)
{
Package(5) {0x05, Zero, Zero, 0xFD, TCNT}
})
}
Return(Package(1)
{
Package(5) {0x05, Zero, 0x05, 0xFC, TCNT}
})
}
}
Scope(\_PR.CPU6)
{
Name(_TPC, Zero)
Method(_PTC, 0, NotSerialized)
{
Return(\_PR.CPU0._PTC)
}
Method(_TSS, 0, NotSerialized)
{
Return(\_PR.CPU0._TSS)
}
Method(_TSD, 0, NotSerialized)
{
If(LNot(And(PDC0, 0x04)))
{
Return(Package(1)
{
Package(5) {0x05, Zero, Zero, 0xFD, TCNT}
})
}
Return(Package(1)
{
Package(5) {0x05, Zero, 0x06, 0xFC, TCNT}
})
}
}
Scope(\_PR.CPU7)
{
Name(_TPC, Zero)
Method(_PTC, 0, NotSerialized)
{
Return(\_PR.CPU0._PTC)
}
Method(_TSS, 0, NotSerialized)
{
Return(\_PR.CPU0._TSS)
}
Method(_TSD, 0, NotSerialized)
{
If(LNot(And(PDC0, 0x04)))
{
Return(Package(1)
{
Package(5) {0x05, Zero, Zero, 0xFD, TCNT}
})
}
Return(Package(1)
{
Package(5) {0x05, Zero, 0x07, 0xFC, TCNT}
})
}
}
}
DMA Remapping Reporting Table: 0x9CFE0000
44 4D 41 52 E8 00 00 00 01 29 48 50 20 20 20 20 DMAR.....)HP
49 4E 53 59 44 45 20 20 01 00 00 00 49 4E 54 4C INSYDE ....INTL
01 00 00 00 23 01 00 00 00 00 00 00 00 00 00 00 ....#...........
00 00 18 00 00 00 00 00 00 00 D9 FE 00 00 00 00 ................
01 08 00 00 00 00 02 00 00 00 58 00 01 00 00 00 ..........X.....
00 10 D9 FE 00 00 00 00 03 08 00 00 00 F0 1F 00 ................
04 08 00 00 00 F0 0F 00 04 08 00 00 00 F0 0F 01 ................
04 08 00 00 00 F0 0F 02 04 08 00 00 00 F0 0F 03 ................
04 08 00 00 00 F0 0F 04 04 08 00 00 00 F0 0F 05 ................
04 08 00 00 00 F0 0F 06 04 08 00 00 00 F0 0F 07 ................
01 00 28 00 00 00 00 00 00 C0 E9 9C 00 00 00 00 ..(.............
FF BF EB 9C 00 00 00 00 01 08 00 00 00 00 1D 00 ................
01 08 00 00 00 00 1A 00 01 00 20 00 00 00 00 00 .......... .....
00 00 80 9D 00 00 00 00 FF FF 9F 9F 00 00 00 00 ................
01 08 00 00 00 00 02 00 ........
Signature "DMAR"
Length 0x000000E8 (232)
Revision 0x01 (1)
Checksum 0x29 (41)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00000001 (1)
Creator ID "INTL"
Creator Revision 0x00000001 (1)
Host Address Width 0x23 (36Bits)
Reserved 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
DMA Remapping Hardware Unit Definition Structure
Type 0x0000 (0)
Length 0x0018 (24)
Flags 0x00 (0)
Reserved 0x00 0x00 0x00
Register Base Address 0x00000000FED90000
Device Scope Entry
Type 0x01 (1)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0x0000 0x0002
DMA Remapping Hardware Unit Definition Structure
Type 0x0000 (0)
Length 0x0058 (88)
Flags 0x01 (1)
Reserved 0x00 0x00 0x00
Register Base Address 0x00000000FED91000
Device Scope Entry
Type 0x03 (3)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0xF000 0x001F
Device Scope Entry
Type 0x03 (3)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0xF000 0x001F
Device Scope Entry
Type 0x03 (3)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0xF000 0x001F
Device Scope Entry
Type 0x03 (3)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0xF000 0x001F
Device Scope Entry
Type 0x03 (3)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0xF000 0x001F
Device Scope Entry
Type 0x03 (3)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0xF000 0x001F
Device Scope Entry
Type 0x03 (3)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0xF000 0x001F
Device Scope Entry
Type 0x03 (3)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0xF000 0x001F
Device Scope Entry
Type 0x03 (3)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0xF000 0x001F
DMA Remapping Hardware Unit Definition Structure
Type 0x0001 (1)
Length 0x0028 (40)
Flags 0x00 (0)
Reserved 0x00 0x00 0x00
Region Base Address 0x000000009CE9C000
Region Limit Address 0x000000009CEBBFFF
Device Scope Entry
Type 0x01 (1)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0x0000 0x001D
Device Scope Entry
Type 0x01 (1)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0x0000 0x001D
DMA Remapping Hardware Unit Definition Structure
Type 0x0001 (1)
Length 0x0020 (32)
Flags 0x00 (0)
Reserved 0x00 0x00 0x00
Region Base Address 0x000000009D800000
Region Limit Address 0x000000009F9FFFFF
Device Scope Entry
Type 0x01 (1)
Length 0x08 (8)
Segment Number 0x00 (0)
Starting Bus Number 0x00 (0)
PCI Path 0x0000 0x0002
Secondary System Description Table: 0x9CFDA000
Signature "SSDT"
Length 0x000024A1 (9377)
Revision 0x01 (1)
Checksum 0xF3 (243)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00001000 (4096)
Creator ID "INTL"
Creator Revision 0x20100806 (537921542)
DefinitionBlock ("SSDT.AML", "SSDT", 0x01, "HP ", "INSYDE ", 0x00001000)
{
Scope(\_SB.PCI0.PEG0.PEGP)
{
OperationRegion(SGOP, SystemMemory, 0x9CFBEE18, 0x0000004B)
Field(SGOP, AnyAcc, Lock, Preserve)
{
EBAS, 32,
CPSP, 32,
EECP, 32,
EVCP, 32,
XBAS, 32,
SGMD, 8,
SGFL, 8,
PWOK, 8,
HLRS, 8,
DSEL, 8,
ESEL, 8,
PSEL, 8,
PWEN, 8,
PRST, 8,
MXD1, 32,
MXD2, 32,
MXD3, 32,
MXD4, 32,
MXD5, 32,
MXD6, 32,
MXD7, 32,
MXD8, 32,
GBAS, 16,
APDT, 32,
AHDT, 32,
IHDT, 32,
}
}
Scope(\_SB.PCI0.PEG0.PEGP)
{
OperationRegion(AOPR, SystemMemory, 0x9CF53018, 0x00010036)
Field(AOPR, AnyAcc, Lock, Preserve)
{
RVBS, 32,
NTLE, 16,
TLE1, 16,
TLE2, 16,
TLE3, 16,
TLE4, 16,
TLE5, 16,
TLE6, 16,
TLE7, 16,
TLE8, 16,
TLE9, 16,
TL10, 16,
TL11, 16,
TL12, 16,
TL13, 16,
TL14, 16,
TL15, 16,
TGXA, 16,
AGXA, 16,
GSTP, 8,
DSWR, 8,
EMDR, 8,
PXGS, 8,
CACD, 16,
CCND, 16,
NACD, 16,
EXPM, 8,
TLSN, 8,
PXDY, 8,
PXFD, 8,
RBF1, 262144,
RBF2, 262144,
}
}
Scope(\_SB.PCI0.GFX0)
{
Method(MXVL, 1, Serialized)
{
Name(TMP0, Buffer(0x04)
{
0x00
})
CreateByteField(TMP0,Zero,DTYP)
CreateByteField(TMP0,One,DDSP)
CreateByteField(TMP0,0x02,DAUX)
CreateByteField(TMP0,0x03,DHPD)
Store(Arg0, DTYP)
ShiftRight(Arg0, 0x08, DDSP)
ShiftRight(Arg0, 0x10, DAUX)
ShiftRight(Arg0, 0x18, DHPD)
Return(TMP0)
}
Method(_DSM, 4, Serialized)
{
If(LEqual(Arg0, ToUUID("7ED873D3-C2D04E4F-A8540F1317B01C2C")}))
{
If(LEqual(Arg2, Zero))
{
Name(DRET, Buffer(0x04)
{
0x00
})
CreateWordField(DRET, Zero, F0SS)
CreateByteField(DRET,0x03,TPVE)
Store(One, F0SS)
If(LEqual(And(\_SB.PCI0.PEG0.PEGP.SGMD, 0x0F), One))
{
Store(0x03, F0SS)
}
Else
{
Store(One, F0SS)
}
If(And(\_SB.PCI0.PEG0.PEGP.SGMD, 0x80))
{
Store(0x80, TPVE)
}
Return(DRET)
}
If(LEqual(Arg2, One))
{
Name(MXIF, Package(10)
{
Zero,
Package(2)
{
Zero,
Buffer(0x04)
{
0x00
}
},
Package(2)
{
Zero,
Buffer(0x04)
{
0x00
}
},
Package(2)
{
Zero,
Buffer(0x04)
{
0x00
}
},
Package(2)
{
Zero,
Buffer(0x04)
{
0x00
}
},
Package(2)
{
Zero,
Buffer(0x04)
{
0x00
}
},
Package(2)
{
Zero,
Buffer(0x04)
{
0x00
}
},
Package(2)
{
Zero,
Buffer(0x04)
{
0x00
}
},
Package(2)
{
Zero,
Buffer(0x04)
{
0x00
}
},
Package(2)
{
Zero,
Buffer(0x04)
{
0x00
}
}
})
Store(NDID, Index(MXIF, Zero))
Store(DID1, Index(DerefOf(Index(MXIF, One)), Zero))
Store(DID2, Index(DerefOf(Index(MXIF, 0x02)), Zero))
Store(DID3, Index(DerefOf(Index(MXIF, 0x03)), Zero))
Store(DID4, Index(DerefOf(Index(MXIF, 0x04)), Zero))
Store(DID5, Index(DerefOf(Index(MXIF, 0x05)), Zero))
Store(DID6, Index(DerefOf(Index(MXIF, 0x06)), Zero))
Store(DID7, Index(DerefOf(Index(MXIF, 0x07)), Zero))
Store(DID8, Index(DerefOf(Index(MXIF, 0x08)), Zero))
Store(MXVL(\_SB.PCI0.PEG0.PEGP.MXD1), Index(DerefOf(Index(MXIF, One)), One))
Store(MXVL(\_SB.PCI0.PEG0.PEGP.MXD2), Index(DerefOf(Index(MXIF, 0x02)), One))
Store(MXVL(\_SB.PCI0.PEG0.PEGP.MXD3), Index(DerefOf(Index(MXIF, 0x03)), One))
Store(MXVL(\_SB.PCI0.PEG0.PEGP.MXD4), Index(DerefOf(Index(MXIF, 0x04)), One))
Store(MXVL(\_SB.PCI0.PEG0.PEGP.MXD5), Index(DerefOf(Index(MXIF, 0x05)), One))
Store(MXVL(\_SB.PCI0.PEG0.PEGP.MXD6), Index(DerefOf(Index(MXIF, 0x06)), One))
Store(MXVL(\_SB.PCI0.PEG0.PEGP.MXD7), Index(DerefOf(Index(MXIF, 0x07)), One))
Store(MXVL(\_SB.PCI0.PEG0.PEGP.MXD8), Index(DerefOf(Index(MXIF, 0x08)), One))
If(And(\_SB.PCI0.PEG0.PEGP.SGFL, One))
{
Store(0x80010306, Index(DerefOf(Index(MXIF, NDID)), Zero))
Store(MXVL(0x0101010E), Index(DerefOf(Index(MXIF, NDID)), One))
}
Return(MXIF)
}
}
If(CondRefOf(\_SB.PCI0.GFX0.HDSM))
{
Return(\_SB.PCI0.GFX0.HDSM)
Arg0
Arg1
Arg2
Arg3
}
Return(One)
}
Method(IDAB, 0, Serialized)
{
If(LEqual(And(\_SB.PCI0.PEG0.PEGP.SGMD, 0x0F), One))
{
If(LEqual(\_SB.PCI0.PEG0.PEGP.SGFL, One))
{
WIID()
}
}
Else
{
Store(Zero, NDID)
If(LNotEqual(DIDL, Zero))
{
Store(SDDL, DIDL)
DID1
}
If(LNotEqual(DDL2, Zero))
{
Store(SDDL, DDL2)
DID2
}
If(LNotEqual(DDL3, Zero))
{
Store(SDDL, DDL3)
DID3
}
If(LNotEqual(DDL4, Zero))
{
Store(SDDL, DDL4)
DID4
}
If(LNotEqual(DDL5, Zero))
{
Store(SDDL, DDL5)
DID5
}
If(LNotEqual(DDL6, Zero))
{
Store(SDDL, DDL6)
DID6
}
If(LNotEqual(DDL7, Zero))
{
Store(SDDL, DDL7)
DID7
}
If(LNotEqual(DDL8, Zero))
{
Store(SDDL, DDL8)
DID8
}
}
Return(Zero)
}
Method(HWID, 0, Serialized)
{
Name(TMP9, Package(9) {Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones})
Store(Or(0x00010000, DID1), Index(TMP9, Zero))
Store(Or(0x00010000, DID2), Index(TMP9, One))
Store(Or(0x00010000, DID3), Index(TMP9, 0x02))
Store(Or(0x00010000, DID4), Index(TMP9, 0x03))
Store(Or(0x00010000, DID5), Index(TMP9, 0x04))
Store(Or(0x00010000, DID6), Index(TMP9, 0x05))
Store(Or(0x00010000, DID7), Index(TMP9, 0x06))
Store(Or(0x00010000, DID8), Index(TMP9, 0x07))
Store(Zero, Index(TMP9, 0x08))
If(And(\_SB.PCI0.PEG0.PEGP.SGFL, One))
{
Store(0x80010306, Index(TMP9, 0x08))
}
Return(TMP9)
}
Method(WIID, 0, Serialized)
{
Name(_T_0, Zero)
If(LEqual(And(DIDL, 0x0F0F), 0x0306))
{
Return(Zero)
}
If(LEqual(And(DID2, 0x0F0F), 0x0306))
{
Return(Zero)
}
If(LEqual(And(DID3, 0x0F0F), 0x0306))
{
Return(Zero)
}
If(LEqual(And(DID4, 0x0F0F), 0x0306))
{
Return(Zero)
}
If(LEqual(And(DID5, 0x0F0F), 0x0306))
{
Return(Zero)
}
If(LEqual(And(DID6, 0x0F0F), 0x0306))
{
Return(Zero)
}
If(LEqual(And(DID7, 0x0F0F), 0x0306))
{
Return(Zero)
}
If(LEqual(And(DID8, 0x0F0F), 0x0306))
{
Return(Zero)
}
While(One)
{
Store(NDID, _T_0)
If(LEqual(_T_0, One))
{
Store(0x80010306, DID2)
Store(0x02, NDID)
}
Else
{
If(LEqual(_T_0, 0x02))
{
Store(0x80010306, DID3)
Store(0x03, NDID)
}
Else
{
If(LEqual(_T_0, 0x03))
{
Store(0x80010306, DID4)
Store(0x04, NDID)
}
Else
{
If(LEqual(_T_0, 0x04))
{
Store(0x80010306, DID5)
Store(0x05, NDID)
}
Else
{
If(LEqual(_T_0, 0x05))
{
Store(0x80010306, DID6)
Store(0x06, NDID)
}
Else
{
If(LEqual(_T_0, 0x06))
{
Store(0x80010306, DID7)
Store(0x07, NDID)
}
Else
{
If(LEqual(_T_0, 0x07))
{
Store(0x80010306, DID8)
Store(0x08, NDID)
}
Else
{
If(LEqual(_T_0, 0x08))
{
Store(0x09, NDID)
}
}
}
}
}
}
}
}
Break
}
Return(Zero)
}
}
Scope(\_SB.PCI0.PEG0)
{
OperationRegion(RPCI, PCI_Config, Zero, 0xF0)
Field(RPCI, DWordAcc, Lock, Preserve)
{
Offset(0xB0), //Offset(176),
ASPM, 2,
, 2,
LNKD, 1,
}
OperationRegion(RPCX, SystemMemory, \_SB.PCI0.PEG0.PEGP.XBAS, 0x8400)
Field(RPCX, DWordAcc, NoLock, Preserve)
{
Offset(0x8214), //Offset(33300),
Offset(0x8216), //Offset(33302),
LNKS, 4,
}
Device(PEGA)
{
Name(_ADR, One)
Name(_PRW, Package(2) {0x09, 0x04})
OperationRegion(ACAP, PCI_Config, \_SB.PCI0.PEG0.PEGP.EECP, 0x14)
Field(ACAP, DWordAcc, NoLock, Preserve)
{
Offset(0x10), //Offset(16),
LCT1, 16,
}
}
}
Scope(\_SB.PCI0.PEG0.PEGP)
{
Name(ELCT, Zero)
Name(HVID, Zero)
Name(HDID, Zero)
OperationRegion(PCIS, PCI_Config, Zero, 0x0100)
Field(PCIS, DWordAcc, Lock, Preserve)
{
DVID, 16,
Offset(0x2C), //Offset(44),
SVID, 16,
SDID, 16,
Offset(0x4C), //Offset(76),
WVID, 16,
WDID, 16,
}
Field(PCIS, ByteAcc, NoLock, Preserve)
{
Offset(0x4), //Offset(4),
CMDR, 8,
VGAR, 2008,
}
Name(VGAB, Buffer(0xFB)
{
0x00
})
OperationRegion(GPIO, SystemIO, GBAS, 0x60)
Field(GPIO, ByteAcc, Lock, Preserve)
{
Offset(0xC), //Offset(12),
LVL0, 32,
Offset(0x38), //Offset(56),
LVL1, 32,
Offset(0x48), //Offset(72),
LVL2, 32,
}
OperationRegion(PCAP, PCI_Config, EECP, 0x14)
Field(PCAP, DWordAcc, NoLock, Preserve)
{
Offset(0x10), //Offset(16),
LCTL, 16,
}
Method(_INI, 0, NotSerialized)
{
Store(Zero, \_SB.PCI0.PEG0.PEGP._ADR)
}
Method(_ON, 0, Serialized)
{
GLSC()
SGPO(HLRS, One)
SGPO(PWEN, One)
Sleep(APDT)
SGPO(HLRS, Zero)
Sleep(IHDT)
GLSR()
Store(Zero, LNKD)
While(LLess(LNKS, 0x07))
{
Sleep(One)
}
Store(Zero, CMDR)
Store(VGAB, VGAR)
Store(0x06, CMDR)
Store(HVID, WVID)
Store(HDID, WDID)
Or(And(ELCT, 0x43), And(LCTL, 0xFFBC), LCTL)
Or(And(ELCT, 0x43), And(\_SB.PCI0.PEG0.PEGA.LCT1, 0xFFBC), \_SB.PCI0.PEG0.PEGA.LCT1)
Notify(\_SB.PCI0.PEG0, Zero)
Return(One)
}
Method(_OFF, 0, Serialized)
{
Store(LCTL, ELCT)
Store(SVID, HVID)
Store(SDID, HDID)
Store(VGAR, VGAB)
Store(One, LNKD)
While(LNotEqual(LNKS, Zero))
{
Sleep(One)
}
GLSC()
SGPO(HLRS, One)
SGPO(PWEN, Zero)
GLSR()
Notify(\_SB.PCI0.PEG0, Zero)
Return(Zero)
}
Method(_STA, 0, Serialized)
{
If(And(SGMD, 0x0F))
{
If(LEqual(SGPI(PWOK), One))
{
Return(0x0F)
}
Return(Zero)
}
If(LNotEqual(DVID, 0xFFFF))
{
Return(0x0F)
}
Return(Zero)
}
Method(_DOD, 0, NotSerialized)
{
Return(\_SB.PCI0.GFX0._DOD)
}
Device(DD01)
{
Method(_ADR, 0, Serialized)
{
Return(\_SB.PCI0.GFX0.DD01._ADR)
}
Method(_DCS, 0, NotSerialized)
{
}
Method(_DGS, 0, NotSerialized)
{
Return(\_SB.PCI0.GFX0.DD01._DGS)
}
Method(_DSS, 1, NotSerialized)
{
}
}
Device(DD02)
{
Method(_ADR, 0, Serialized)
{
Return(\_SB.PCI0.GFX0.DD02._ADR)
}
Method(_DCS, 0, NotSerialized)
{
Return(\_SB.PCI0.GFX0.DD02._DCS)
}
Method(_DGS, 0, NotSerialized)
{
Return(\_SB.PCI0.GFX0.DD02._DGS)
}
Method(_DSS, 1, NotSerialized)
{
}
Method(_BCL, 0, NotSerialized)
{
Return(\_SB.PCI0.GFX0.DD02._BCL)
}
Method(_BQC, 0, NotSerialized)
{
Return(\_SB.PCI0.GFX0.DD02._BQC)
}
Method(_BCM, 1, NotSerialized)
{
Return(\_SB.PCI0.GFX0.DD02._BCM)
Arg0
}
}
Device(DD03)
{
Method(_ADR, 0, Serialized)
{
Return(\_SB.PCI0.GFX0.DD03._ADR)
}
Method(_DCS, 0, NotSerialized)
{
}
Method(_DGS, 0, NotSerialized)
{
Return(\_SB.PCI0.GFX0.DD03._DGS)
}
Method(_DSS, 1, NotSerialized)
{
}
}
Device(DD04)
{
Method(_ADR, 0, Serialized)
{
Return(\_SB.PCI0.GFX0.DD04._ADR)
}
Method(_DCS, 0, NotSerialized)
{
}
Method(_DGS, 0, NotSerialized)
{
Return(\_SB.PCI0.GFX0.DD04._DGS)
}
Method(_DSS, 1, NotSerialized)
{
}
}
Device(DD05)
{
Method(_ADR, 0, Serialized)
{
Return(\_SB.PCI0.GFX0.DD05._ADR)
}
Method(_DCS, 0, NotSerialized)
{
}
Method(_DGS, 0, NotSerialized)
{
Return(\_SB.PCI0.GFX0.DD05._DGS)
}
Method(_DSS, 1, NotSerialized)
{
}
}
Device(DD06)
{
Method(_ADR, 0, Serialized)
{
Return(\_SB.PCI0.GFX0.DD06._ADR)
}
Method(_DCS, 0, NotSerialized)
{
}
Method(_DGS, 0, NotSerialized)
{
Return(\_SB.PCI0.GFX0.DD06._DGS)
}
Method(_DSS, 1, NotSerialized)
{
}
}
Device(DD07)
{
Method(_ADR, 0, Serialized)
{
Return(\_SB.PCI0.GFX0.DD07._ADR)
}
Method(_DCS, 0, NotSerialized)
{
}
Method(_DGS, 0, NotSerialized)
{
Return(\_SB.PCI0.GFX0.DD07._DGS)
}
Method(_DSS, 1, NotSerialized)
{
}
}
Device(DD08)
{
Method(_ADR, 0, Serialized)
{
Return(\_SB.PCI0.GFX0.DD08._ADR)
}
Method(_DCS, 0, NotSerialized)
{
}
Method(_DGS, 0, NotSerialized)
{
Return(\_SB.PCI0.GFX0.DD08._DGS)
}
Method(_DSS, 1, NotSerialized)
{
}
}
Method(SGPI, 1, Serialized)
{
ShiftRight(Arg0, 0x07, Local1)
And(Arg0, 0x7F, Arg0)
If(LLess(Arg0, 0x20))
{
Store(\_SB.PCI0.PEG0.PEGP.LVL0, Local0)
ShiftRight(Local0, Arg0, Local0)
}
Else
{
If(LLess(Arg0, 0x40))
{
Store(\_SB.PCI0.PEG0.PEGP.LVL1, Local0)
ShiftRight(Local0, Subtract(Arg0, 0x20), Local0)
}
Else
{
Store(\_SB.PCI0.PEG0.PEGP.LVL2, Local0)
ShiftRight(Local0, Subtract(Arg0, 0x40), Local0)
}
}
If(LEqual(Local1, Zero))
{
Not(Local0, Local0)
}
Return(And(Local0, One))
}
Method(SGPO, 2, Serialized)
{
ShiftRight(Arg0, 0x07, Local3)
And(Arg0, 0x7F, Arg0)
If(LEqual(Local3, Zero))
{
Not(Arg1, Local3)
And(Local3, One, Local3)
}
If(LLess(Arg0, 0x20))
{
ShiftLeft(Local3, Arg0, Local0)
ShiftLeft(One, Arg0, Local1)
And(\_SB.PCI0.PEG0.PEGP.LVL0, Not(Local1), Local2)
Or(Local2, Local0, \_SB.PCI0.PEG0.PEGP.LVL0)
}
Else
{
If(LLess(Arg0, 0x40))
{
ShiftLeft(Local3, Subtract(Arg0, 0x20), Local0)
ShiftLeft(One, Subtract(Arg0, 0x20), Local1)
And(\_SB.PCI0.PEG0.PEGP.LVL1, Not(Local1), Local2)
Or(Local2, Local0, \_SB.PCI0.PEG0.PEGP.LVL1)
}
Else
{
ShiftLeft(Local3, Subtract(Arg0, 0x40), Local0)
ShiftLeft(One, Subtract(Arg0, 0x40), Local1)
And(\_SB.PCI0.PEG0.PEGP.LVL2, Not(Local1), Local2)
Or(Local2, Local0, \_SB.PCI0.PEG0.PEGP.LVL2)
}
}
Return(One)
}
}
Scope(\_SB.PCI0.GFX0)
{
Method(ATPX, 2, Serialized)
{
If(LEqual(Arg0, Zero))
{
Name(TMP1, Buffer(0x0100)
{
0x00
})
CreateWordField(TMP1, Zero, F0SS)
CreateWordField(TMP1, 0x02, F0IV)
CreateDWordField(TMP1, 0x04, F0SF)
Store(0x08, F0SS)
Store(One, F0IV)
Store(0xBF, F0SF)
If(LEqual(And(\_SB.PCI0.PEG0.PEGP.SGMD, 0x0F), Zero))
{
Store(Zero, F0SF)
Return(TMP1)
}
If(LEqual(And(\_SB.PCI0.PEG0.PEGP.SGMD, 0x0F), 0x03))
{
Store(Zero, F0SF)
Return(TMP1)
}
If(LEqual(And(\_SB.PCI0.PEG0.PEGP.SGMD, 0x0F), 0x02))
{
Store(0x33, F0SF)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.PXDY, One))
{
And(F0SF, 0xFFFFFFFD, F0SF)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.PXFD, One))
{
Or(F0SF, 0x02, F0SF)
}
Return(TMP1)
}
If(LEqual(Arg0, One))
{
Name(TMP2, Buffer(0x0100)
{
0x00
})
CreateWordField(TMP2, Zero, F1SS)
CreateDWordField(TMP2, 0x02, F1VM)
CreateDWordField(TMP2, 0x06, F1FG)
Store(0x0A, F1SS)
Store(0x7F, F1VM)
If(LEqual(And(\_SB.PCI0.PEG0.PEGP.SGMD, 0x0F), 0x02))
{
Store(Zero, F1FG)
Store(Zero, F1VM)
If(LEqual(\_SB.PCI0.PEG0.PEGP.PXDY, One))
{
Store(0x80, F1FG)
Store(0x80, F1VM)
}
}
Else
{
Store(0x40, F1FG)
Store(0x40, F1VM)
}
Return(TMP2)
}
If(LEqual(Arg0, 0x02))
{
CreateWordField(Arg1, Zero, FN2S)
CreateByteField(Arg1,0x02,DGPR)
If(LEqual(DGPR, Zero))
{
\_SB.PCI0.PEG0.PEGP._OFF()
}
If(LEqual(DGPR, One))
{
\_SB.PCI0.PEG0.PEGP._ON()
}
Return(Zero)
}
If(LEqual(Arg0, 0x03))
{
CreateWordField(Arg1, Zero, FN3S)
CreateWordField(Arg1, 0x02, SDMG)
GLSC()
If(LEqual(SDMG, Zero))
{
\_SB.PCI0.PEG0.PEGP.SGPO(\_SB.PCI0.PEG0.PEGP.DSEL, Zero)
}
If(LEqual(SDMG, One))
{
\_SB.PCI0.PEG0.PEGP.SGPO(\_SB.PCI0.PEG0.PEGP.DSEL, One)
}
GLSR()
Return(Zero)
}
If(LEqual(Arg0, 0x04))
{
CreateWordField(Arg1, Zero, FN4S)
CreateWordField(Arg1, 0x02, SIMG)
GLSC()
If(LEqual(SIMG, Zero))
{
\_SB.PCI0.PEG0.PEGP.SGPO(\_SB.PCI0.PEG0.PEGP.ESEL, Zero)
}
If(LEqual(SIMG, One))
{
\_SB.PCI0.PEG0.PEGP.SGPO(\_SB.PCI0.PEG0.PEGP.ESEL, One)
}
GLSR()
Return(Zero)
}
If(LEqual(Arg0, 0x05))
{
CreateWordField(Arg1, Zero, FN5S)
CreateWordField(Arg1, 0x02, TGFX)
Store(TGFX, \_SB.PCI0.PEG0.PEGP.TGXA)
Store(One, \_SB.PCI0.PEG0.PEGP.GSTP)
Return(Zero)
}
If(LEqual(Arg0, 0x06))
{
CreateWordField(Arg1, Zero, FN6S)
CreateWordField(Arg1, 0x02, AGFX)
Store(AGFX, \_SB.PCI0.PEG0.PEGP.AGXA)
Store(Zero, \_SB.PCI0.PEG0.PEGP.GSTP)
Return(Zero)
}
If(LEqual(Arg0, 0x08))
{
Name(TMP3, Buffer(0x0100)
{
0x0E, 0x00, 0x46, 0x00, 0x07, 0x01, 0x00, 0x00,
0x01, 0x07, 0x01, 0x01, 0x00, 0x01, 0x05, 0x00,
0x00, 0x00, 0x04, 0x05, 0x00, 0x01, 0x10, 0x01,
0x07, 0x03, 0x00, 0x00, 0x03, 0x07, 0x03, 0x01,
0x10, 0x02, 0x07, 0x07, 0x00, 0x01, 0x03, 0x07,
0x07, 0x01, 0x10, 0x02, 0x07, 0x09, 0x00, 0x02,
0x03, 0x07, 0x09, 0x01, 0x20, 0x02, 0x07, 0x0A,
0x00, 0x03, 0x03, 0x07, 0x0A, 0x01, 0x30, 0x02,
0x07, 0x0B, 0x00, 0x04, 0x03, 0x07, 0x0B, 0x01,
0x30, 0x02, 0x07, 0x0C, 0x00, 0x06, 0x03
})
CreateWordField(TMP3, Zero, ATNO)
CreateWordField(TMP3, 0x02, ATSZ)
Store(ADPM(\_SB.PCI0.PEG0.PEGP.MXD2, One), Index(TMP3, 0x0E))
Store(ADPM(\_SB.PCI0.PEG0.PEGP.MXD2, One), Index(TMP3, 0x13))
Store(ADPM(\_SB.PCI0.PEG0.PEGP.MXD3, One), Index(TMP3, 0x18))
Store(ADPM(\_SB.PCI0.PEG0.PEGP.MXD3, 0x02), Index(TMP3, 0x1D))
Store(ADPM(\_SB.PCI0.PEG0.PEGP.MXD4, One), Index(TMP3, 0x22))
Store(ADPM(\_SB.PCI0.PEG0.PEGP.MXD4, 0x02), Index(TMP3, 0x27))
Store(ADPM(\_SB.PCI0.PEG0.PEGP.MXD5, One), Index(TMP3, 0x2C))
Store(ADPM(\_SB.PCI0.PEG0.PEGP.MXD5, 0x02), Index(TMP3, 0x31))
Store(ADPM(\_SB.PCI0.PEG0.PEGP.MXD6, One), Index(TMP3, 0x36))
Store(ADPM(\_SB.PCI0.PEG0.PEGP.MXD6, 0x02), Index(TMP3, 0x3B))
Store(ADPM(\_SB.PCI0.PEG0.PEGP.MXD7, One), Index(TMP3, 0x40))
Store(ADPM(\_SB.PCI0.PEG0.PEGP.MXD7, 0x02), Index(TMP3, 0x45))
If(And(\_SB.PCI0.PEG0.PEGP.SGFL, One))
{
Store(Add(ATNO, One), ATNO)
Store(Add(ATSZ, 0x05), ATSZ)
}
Return(TMP3)
}
Return(Zero)
}
Method(ADPM, 2, Serialized)
{
Store(Zero, Local1)
ShiftRight(Arg0, 0x10, Local0)
If(LEqual(Arg1, One))
{
Or(And(Local0, One), Local1, Local1)
}
Else
{
Or(ShiftRight(And(Local0, 0x02), One), Local1, Local1)
}
ShiftLeft(Local1, One, Local1)
ShiftRight(Arg0, 0x18, Local0)
If(LEqual(Arg1, One))
{
Or(And(Local0, One), Local1, Local1)
}
Else
{
Or(ShiftRight(And(Local0, 0x02), One), Local1, Local1)
}
ShiftLeft(Local1, One, Local1)
ShiftRight(Arg0, 0x08, Local0)
If(LEqual(Arg1, One))
{
Or(And(Local0, One), Local1, Local1)
}
Else
{
Or(ShiftRight(And(Local0, 0x02), One), Local1, Local1)
}
Return(Local1)
}
Method(ATRM, 2, Serialized)
{
Store(Arg0, Local0)
Store(Arg1, Local1)
If(LGreater(Local1, 0x1000))
{
Store(0x1000, Local1)
}
If(LGreater(Local0, 0x00010000))
{
Return(Buffer(Local1)
{
0x00
})
}
If(LGreater(Local0, \_SB.PCI0.PEG0.PEGP.RVBS))
{
Return(Buffer(Local1)
{
0x00
})
}
Multiply(Local1, 0x08, Local3)
Name(ROM1, Buffer(0x8000)
{
0x00
})
Name(ROM2, Buffer(Local1)
{
0x00
})
If(LLess(Local0, 0x8000))
{
Store(\_SB.PCI0.PEG0.PEGP.RBF1, ROM1)
}
Else
{
Subtract(Local0, 0x8000, Local0)
Store(\_SB.PCI0.PEG0.PEGP.RBF2, ROM1)
}
Multiply(Local0, 0x08, Local2)
CreateField(ROM1,Local2,Local3,TMPB)
Store(TMPB, ROM2)
Return(ROM2)
}
}
Name(BDFR, 0x000F804C)
Name(GPLS, Zero)
OperationRegion(GPCR, SystemMemory, Or(PEBS, BDFR, BDFR), One)
Field(GPCR, AnyAcc, NoLock, Preserve)
{
GPCT, 1,
}
Method(GLSC, 0, Serialized)
{
Store(GPCT, GPLS)
If(LEqual(GPCT, One))
{
Store(Zero, GPCT)
}
}
Method(GLSR, 0, Serialized)
{
Store(GPLS, GPCT)
}
Method(HGAS, 0, NotSerialized)
{
Store(One, \_SB.PCI0.PEG0.PEGP.PXGS)
Notify(\_SB.PCI0.GFX0, 0x81)
}
Method(HBRT, 1, Serialized)
{
If(And(0x04, DSEN))
{
If(LEqual(Arg0, 0x04))
{
Notify(\_SB.PCI0.PEG0.PEGP.DD02, 0x87)
}
If(LEqual(Arg0, 0x03))
{
Notify(\_SB.PCI0.PEG0.PEGP.DD02, 0x86)
}
}
}
Method(HPFS, 0, Serialized)
{
If(LNotEqual(\_SB.PCI0.PEG0.PEGP.GSTP, One))
{
If(LEqual(\_SB.PCI0.PEG0.PEGP.AGXA, Zero))
{
\_SB.PCI0.GFX0.AINT
0x02
Zero
}
Else
{
Store(One, \_SB.PCI0.PEG0.PEGP.EMDR)
If(LEqual(\_SB.PCI0.PEG0.PEGP.EXPM, 0x02))
{
Store(Zero, \_SB.PCI0.PEG0.PEGP.EXPM)
}
Else
{
Increment(\_SB.PCI0.PEG0.PEGP.EXPM)
}
Notify(\_SB.PCI0.GFX0, 0x81)
}
}
}
Method(HNOT, 1, Serialized)
{
Name(TMP0, Zero)
While(One)
{
Store(Arg0, TMP0)
If(LEqual(TMP0, One))
{
If(LNotEqual(\_SB.PCI0.PEG0.PEGP.GSTP, One))
{
If(And(\_SB.PCI0.PEG0.PEGP.SGMD, 0x02))
{
If(LEqual(\_SB.PCI0.PEG0.PEGP.AGXA, Zero))
{
Notify(\_SB.PCI0.GFX0, 0x80)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.AGXA, One))
{
Notify(\_SB.PCI0.PEG0.PEGP, 0x80)
}
}
Else
{
Store(TMP0, \_SB.PCI0.PEG0.PEGP.DSWR)
Notify(\_SB.PCI0.GFX0, 0x81)
}
}
}
Else
{
If(LEqual(TMP0, 0x02))
{
If(And(\_SB.PCI0.PEG0.PEGP.SGMD, 0x02))
{
If(LEqual(\_SB.PCI0.PEG0.PEGP.AGXA, Zero))
{
Notify(\_SB.PCI0.GFX0, 0x80)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.AGXA, One))
{
Notify(\_SB.PCI0.PEG0.PEGP, 0x80)
}
}
Else
{
Notify(\_SB.PCI0.GFX0, 0x80)
}
}
Else
{
If(LEqual(TMP0, 0x03))
{
If(And(\_SB.PCI0.PEG0.PEGP.SGMD, 0x02))
{
If(LEqual(\_SB.PCI0.PEG0.PEGP.AGXA, Zero))
{
Notify(\_SB.PCI0.GFX0, 0x80)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.AGXA, One))
{
Notify(\_SB.PCI0.PEG0.PEGP, 0x80)
}
}
Else
{
Notify(\_SB.PCI0.GFX0, 0x80)
}
}
Else
{
Notify(\_SB.PCI0.GFX0, 0x80)
}
}
}
Break
}
}
Scope(\_SB.PCI0.GFX0)
{
Method(ATIF, 2, Serialized)
{
If(LEqual(Arg0, Zero))
{
Name(TMP0, Buffer(0x0100)
{
0x00
})
CreateWordField(TMP0, Zero, F0SS)
CreateWordField(TMP0, 0x02, F0IV)
CreateDWordField(TMP0, 0x04, F0SN)
CreateDWordField(TMP0, 0x08, F0SF)
Store(0x0C, F0SS)
Store(One, F0IV)
Store(0x41, F0SN)
Store(0x07, F0SF)
If(LEqual(And(\_SB.PCI0.PEG0.PEGP.SGMD, 0x0F), 0x02))
{
Store(Zero, F0SN)
Store(Zero, F0SF)
}
Return(TMP0)
}
If(LEqual(Arg0, One))
{
Name(TMP1, Buffer(0x0100)
{
0x00
})
CreateWordField(TMP1, Zero, F1SS)
CreateDWordField(TMP1, 0x02, F1VF)
CreateDWordField(TMP1, 0x06, F1FG)
Store(0x0A, F1SS)
Store(0x03, F1VF)
Store(One, F1FG)
Return(TMP1)
}
If(LEqual(Arg0, 0x02))
{
Name(TMP2, Buffer(0x0100)
{
0x00
})
CreateWordField(TMP2, Zero, F2SS)
CreateDWordField(TMP2, 0x02, F2PR)
CreateByteField(TMP2,0x06,F2EM)
CreateByteField(TMP2,0x07,F2TG)
CreateByteField(TMP2,0x08,F2SI)
CreateByteField(TMP2,0x09,F2FG)
CreateByteField(TMP2,0x0A,F2FI)
CreateByteField(TMP2,0x0B,F2SP)
Store(0x0A, F2SS)
Name(STS2, Zero)
Or(\_SB.PCI0.PEG0.PEGP.DSWR, STS2, STS2)
Or(ShiftLeft(\_SB.PCI0.PEG0.PEGP.PXGS, 0x06), STS2, STS2)
Store(STS2, F2PR)
Store(Zero, \_SB.PCI0.PEG0.PEGP.DSWR)
Store(Zero, \_SB.PCI0.PEG0.PEGP.PXGS)
Return(TMP2)
}
If(LEqual(Arg0, 0x03))
{
Name(TMP3, Buffer(0x0100)
{
0x00
})
CreateWordField(TMP3, Zero, F3SS)
CreateWordField(TMP3, 0x02, F3SD)
CreateWordField(Arg1, Zero, AI3S)
CreateWordField(Arg1, 0x02, SLDS)
CreateWordField(Arg1, 0x04, CODS)
Store(SLDS, \_SB.PCI0.PEG0.PEGP.CACD)
Store(CODS, \_SB.PCI0.PEG0.PEGP.CCND)
If(\ECON)
{
If(LEqual(\_SB.PCI0.LPCB.H_EC.LSTE, One))
{
Or(\_SB.PCI0.PEG0.PEGP.CCND, One, \_SB.PCI0.PEG0.PEGP.CCND)
}
}
Store(0x04, F3SS)
Store(CTOI(\_SB.PCI0.PEG0.PEGP.CACD), \_SB.PCI0.PEG0.PEGP.TLSN)
Store(\_SB.PCI0.PEG0.PEGP.CACD, Local1)
Store(\_SB.PCI0.PEG0.PEGP.NTLE, Local0)
While(Local0)
{
Store(NATL(\_SB.PCI0.PEG0.PEGP.TLSN), Local1)
If(LNotEqual(Local1, Zero))
{
If(LEqual(And(Local1, \_SB.PCI0.PEG0.PEGP.CCND), Local1))
{
Store(One, Local0)
}
}
Decrement(Local0)
Increment(\_SB.PCI0.PEG0.PEGP.TLSN)
If(LGreater(\_SB.PCI0.PEG0.PEGP.TLSN, \_SB.PCI0.PEG0.PEGP.NTLE))
{
Store(One, \_SB.PCI0.PEG0.PEGP.TLSN)
}
}
SNXD(Local1)
Store(Local1, \_SB.PCI0.PEG0.PEGP.NACD)
Store(\_SB.PCI0.PEG0.PEGP.NACD, F3SD)
Return(TMP3)
}
Return(Zero)
}
Method(CTOI, 1, NotSerialized)
{
If(LNotEqual(\_SB.PCI0.PEG0.PEGP.NTLE, Zero))
{
If(LEqual(\_SB.PCI0.PEG0.PEGP.TLE1, Arg0))
{
Return(One)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TLE2, Arg0))
{
Return(0x02)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TLE3, Arg0))
{
Return(0x03)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TLE4, Arg0))
{
Return(0x04)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TLE5, Arg0))
{
Return(0x05)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TLE6, Arg0))
{
Return(0x06)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TLE7, Arg0))
{
Return(0x07)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TLE8, Arg0))
{
Return(0x08)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TLE9, Arg0))
{
Return(0x09)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TL10, Arg0))
{
Return(0x0A)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TL11, Arg0))
{
Return(0x0B)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TL12, Arg0))
{
Return(0x0C)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TL13, Arg0))
{
Return(0x0D)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TL14, Arg0))
{
Return(0x0E)
}
If(LEqual(\_SB.PCI0.PEG0.PEGP.TL15, Arg0))
{
Return(0x0F)
}
}
Return(Zero)
}
Method(NATL, 1, NotSerialized)
{
If(LNotEqual(\_SB.PCI0.PEG0.PEGP.NTLE, Zero))
{
If(LEqual(Arg0, One))
{
Return(\_SB.PCI0.PEG0.PEGP.TLE2)
}
If(LEqual(Arg0, 0x02))
{
Return(\_SB.PCI0.PEG0.PEGP.TLE3)
}
If(LEqual(Arg0, 0x03))
{
Return(\_SB.PCI0.PEG0.PEGP.TLE4)
}
If(LEqual(Arg0, 0x04))
{
Return(\_SB.PCI0.PEG0.PEGP.TLE5)
}
If(LEqual(Arg0, 0x05))
{
Return(\_SB.PCI0.PEG0.PEGP.TLE6)
}
If(LEqual(Arg0, 0x06))
{
Return(\_SB.PCI0.PEG0.PEGP.TLE7)
}
If(LEqual(Arg0, 0x07))
{
Return(\_SB.PCI0.PEG0.PEGP.TLE8)
}
If(LEqual(Arg0, 0x08))
{
Return(\_SB.PCI0.PEG0.PEGP.TLE9)
}
If(LEqual(Arg0, 0x09))
{
Return(\_SB.PCI0.PEG0.PEGP.TL10)
}
If(LEqual(Arg0, 0x0A))
{
Return(\_SB.PCI0.PEG0.PEGP.TL11)
}
If(LEqual(Arg0, 0x0B))
{
Return(\_SB.PCI0.PEG0.PEGP.TL12)
}
If(LEqual(Arg0, 0x0C))
{
Return(\_SB.PCI0.PEG0.PEGP.TL13)
}
If(LEqual(Arg0, 0x0D))
{
Return(\_SB.PCI0.PEG0.PEGP.TL14)
}
If(LEqual(Arg0, 0x0E))
{
Return(\_SB.PCI0.PEG0.PEGP.TL15)
}
If(LEqual(Arg0, 0x0F))
{
Return(\_SB.PCI0.PEG0.PEGP.TLE1)
}
}
Return(Zero)
}
Method(INDL, 0, Serialized)
{
Store(Zero, NXD1)
Store(Zero, NXD2)
Store(Zero, NXD3)
Store(Zero, NXD4)
Store(Zero, NXD5)
Store(Zero, NXD6)
Store(Zero, NXD7)
Store(Zero, NXD8)
}
Method(SNXD, 1, Serialized)
{
INDL()
Store(Arg0, Local0)
If(And(Local0, 0x02))
{
Store(One, NXD1)
}
If(And(Local0, One))
{
Store(One, NXD2)
}
If(And(Local0, 0x08))
{
Store(One, NXD3)
}
If(And(Local0, 0x80))
{
Store(One, NXD4)
}
If(And(Local0, 0x0200))
{
Store(One, NXD5)
}
If(And(Local0, 0x0400))
{
Store(One, NXD6)
}
If(And(Local0, 0x0800))
{
Store(One, NXD7)
}
}
}
}
Firmware ACPI Control Structure: 0x9CF6C000
46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 FACS@...........
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Signature FACS
Length 0x00000040 (64)
Hardware Signature 0x00000000 (0)
Waking Vector 0x00000000 (0)
Global Lock 0x00000000 (0)
Flags 0x00000000
S4BIOS 0 - Not supported
Reserved 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Reserved 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Reserved 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Differentiated System Description Table: 0x9CFEC000
Signature "DSDT"
Length 0x0000C553 (50515)
Revision 0x01 (1)
Checksum 0x62 (98)
OEM ID "HP "
OEM Table ID "INSYDE "
OEM Revision 0x00000000 (0)
Creator ID "MSFT"
Creator Revision 0x01000013 (16777235)
DefinitionBlock ("DSDT.AML", "DSDT", 0x01, "HP ", "INSYDE ", 0x00000000)
{
Name(SS1, Zero)
Name(SS2, Zero)
Name(SS3, One)
Name(SS4, One)
Name(SP2O, 0x4E)
Name(SP1O, 0x2E)
Name(IO1B, 0x0600)
Name(IO1L, 0x70)
Name(IO2B, 0x0600)
Name(IO2L, 0x20)
Name(IO3B, 0x0290)
Name(IO3L, 0x10)
Name(SP3O, 0x2E)
Name(IO4B, 0x0A20)
Name(IO4L, 0x20)
Name(MCHB, 0xFED10000)
Name(MCHL, 0x8000)
Name(EGPB, 0xFED19000)
Name(EGPL, 0x1000)
Name(DMIB, 0xFED18000)
Name(DMIL, 0x1000)
Name(IFPB, 0xFED14000)
Name(IFPL, 0x1000)
Name(PEBS, 0xE0000000)
Name(PELN, 0x10000000)
Name(SMBS, 0x0580)
Name(SMBL, 0x20)
Name(PBLK, 0x0410)
Name(PMBS, 0x0400)
Name(PMLN, 0x80)
Name(LVL2, 0x0414)
Name(LVL3, 0x0415)
Name(LVL4, 0x0416)
Name(SMIP, 0xB2)
Name(GPBS, 0x0500)
Name(GPLN, 0x80)
Name(APCB, 0xFEC00000)
Name(APCL, 0x1000)
Name(PM30, 0x0430)
Name(SRCB, 0xFED1C000)
Name(SRCL, 0x4000)
Name(HPTB, 0xFED00000)
Name(HPTC, 0xFED1F404)
Name(ACPH, 0xDE)
Name(ASSB, Zero)
Name(AOTB, Zero)
Name(AAXB, Zero)
Name(PEHP, One)
Name(SHPC, One)
Name(PEPM, One)
Name(PEER, One)
Name(PECS, One)
Name(DSSP, Zero)
Name(FHPP, Zero)
Name(FMBL, One)
Name(FDTP, 0x02)
Name(BSH, Zero)
Name(BEL, One)
Name(BEH, 0x02)
Name(BRH, 0x03)
Name(BTF, 0x04)
Name(BHC, 0x05)
Name(BYB, 0x06)
Name(BPH, 0x07)
Name(BSHS, 0x08)
Name(BELS, 0x09)
Name(BRHS, 0x0A)
Name(BTFS, 0x0B)
Name(BEHS, 0x0C)
Name(BPHS, 0x0D)
Name(BTL, 0x10)
Name(BSR, 0x14)
Name(BOF, 0x20)
Name(BEF, 0x21)
Name(BLLE, 0x22)
Name(BLLC, 0x23)
Name(BLCA, 0x24)
Name(BLLS, 0x25)
Name(BLLP, 0x26)
Name(BLLD, 0x27)
Name(BHBE, 0x30)
Name(BHBC, 0x31)
Name(BHBN, 0x32)
Name(BHBM, 0x33)
Name(TCGM, One)
Name(TRTP, One)
Name(WDTE, One)
Name(TRTD, 0x02)
Name(TRTI, 0x03)
Name(PDBR, 0x4D)
Name(DPPB, 0xFED98000)
Name(DPPL, 0x8000)
OperationRegion(GNVS, SystemMemory, 0x9CFBCE18, 0x000001BA)
Field(GNVS, AnyAcc, Lock, Preserve)
{
OSYS, 16,
SMIF, 8,
PRM0, 8,
PRM1, 8,
SCIF, 8,
PRM2, 8,
PRM3, 8,
LCKF, 8,
PRM4, 8,
PRM5, 8,
P80D, 32,
LIDS, 8,
PWRS, 8,
DBGS, 8,
THOF, 8,
ACT1, 8,
ACTT, 8,
PSVT, 8,
TC1V, 8,
TC2V, 8,
TSPV, 8,
CRTT, 8,
DTSE, 8,
DTS1, 8,
DTS2, 8,
DTSF, 8,
Offset(0x25), //Offset(37),
REVN, 8,
Offset(0x28), //Offset(40),
APIC, 8,
TCNT, 8,
PCP0, 8,
PCP1, 8,
PPCM, 8,
PPMF, 32,
C67L, 8,
NATP, 8,
CMAP, 8,
CMBP, 8,
LPTP, 8,
FDCP, 8,
COMA, 8,
COMB, 8,
SMSC, 8,
W381, 8,
SMC1, 8,
IGDS, 8,
TLST, 8,
CADL, 8,
PADL, 8,
CSTE, 16,
NSTE, 16,
SSTE, 16,
NDID, 8,
DID1, 32,
DID2, 32,
DID3, 32,
DID4, 32,
DID5, 32,
KSV0, 32,
KSV1, 8,
Offset(0x67), //Offset(103),
BLCS, 8,
BRTL, 8,
ALSE, 8,
ALAF, 8,
LLOW, 8,
LHIH, 8,
, 8,
EMAE, 8,
EMAP, 16,
EMAL, 16,
, 8,
MEFE, 8,
DSTS, 8,
Offset(0x78), //Offset(120),
TPMP, 8,
TPME, 8,
MORD, 8,
TCGP, 8,
PPRP, 32,
PPRQ, 8,
LPPR, 8,
GTF0, 56,
GTF2, 56,
IDEM, 8,
GTF1, 56,
BID, 8,
Offset(0xAA), //Offset(170),
ASLB, 32,
IBTT, 8,
IPAT, 8,
ITVF, 8,
ITVM, 8,
IPSC, 8,
IBLC, 8,
IBIA, 8,
ISSC, 8,
I409, 8,
I509, 8,
I609, 8,
I709, 8,
IPCF, 8,
IDMS, 8,
IF1E, 8,
HVCO, 8,
NXD1, 32,
NXD2, 32,
NXD3, 32,
NXD4, 32,
NXD5, 32,
NXD6, 32,
NXD7, 32,
NXD8, 32,
GSMI, 8,
PAVP, 8,
, 8,
OSCC, 8,
NEXP, 8,
SBV1, 8,
SBV2, 8,
Offset(0xEB), //Offset(235),
DSEN, 8,
, 8,
GPIC, 8,
CTYP, 8,
L01C, 8,
VFN0, 8,
VFN1, 8,
VFN2, 8,
VFN3, 8,
VFN4, 8,
Offset(0x100), //Offset(256),
NVGA, 32,
NVHA, 32,
AMDA, 32,
DID6, 32,
DID7, 32,
DID8, 32,
EBAS, 32,
CPSP, 32,
EECP, 32,
EVCP, 32,
XBAS, 32,
OBS1, 32,
OBS2, 32,
OBS3, 32,
OBS4, 32,
OBS5, 32,
OBS6, 32,
OBS7, 32,
OBS8, 32,
Offset(0x157), //Offset(343),
ATMC, 8,
PTMC, 8,
ATRA, 8,
PTRA, 8,
PNHM, 32,
TBAB, 32,
TBAH, 32,
RTIP, 8,
TSOD, 8,
ATPC, 8,
PTPC, 8,
PFLV, 8,
BREV, 8,
SGMD, 8,
SGFL, 8,
PWOK, 8,
HLRS, 8,
DSEL, 8,
ESEL, 8,
PSEL, 8,
PWEN, 8,
PRST, 8,
MXD1, 32,
MXD2, 32,
MXD3, 32,
MXD4, 32,
MXD5, 32,
MXD6, 32,
MXD7, 32,
MXD8, 32,
GBAS, 16,
Offset(0x19D), //Offset(413),
ALFP, 8,
IMON, 8,
PDTS, 8,
PKGA, 8,
PAMT, 8,
AC0F, 8,
AC1F, 8,
DTS3, 8,
DTS4, 8,
CCMD, 8,
COMD, 8,
LPT1, 8,
PSTP, 8,
WKMD, 8,
IDER, 8,
PIE0, 8,
PIE1, 8,
CSTS, 8,
PMEE, 8,
WOLE, 8,
NVAD, 32,
NVSZ, 32,
OPTF, 8,
}
OperationRegion(OGNS, SystemMemory, 0x9CFBA018, 0x000010C8)
Field(OGNS, AnyAcc, Lock, Preserve)
{
SERN, 80,
MDID, 256,
GUID, 64,
UUID, 128,
SKUN, 96,
LCOD, 24,
MACA, 48,
KBMX, 8,
CHID, 8,
OSKU, 8,
QKPM, 8,
WPFL, 8,
DBSW, 8,
WPCR, 8,
WINA, 8,
GPSA, 8,
MSME, 8,
PREV, 24,
ODDC, 8,
WIN7, 8,
IMID, 8,
WSDY, 32,
WSDM, 16,
WSDD, 16,
CTNU, 152,
ESTL, 8,
Offset(0x1000), //Offset(4096),
HWCT, 8,
HWBC, 8,
HWRC, 8,
HWBF, 1024,
IAOR, 8,
CDAT, 32,
WLVD, 16,
WLDD, 16,
WLSV, 16,
WLSS, 16,
BTVD, 16,
BTDD, 16,
WWVD, 16,
WWDD, 16,
GPVD, 16,
GPDD, 16,
FACM, 16,
SMA4, 8,
WIVD, 16,
WIDD, 16,
PLID, 16,
PRON, 8,
VGAT, 8,
FFLG, 8,
OG05, 8,
OG06, 8,
OG07, 8,
OG08, 8,
OG09, 8,
OG10, 8,
ECON, 8,
SMP0, 8,
SMP1, 8,
SMP2, 8,
SMP3, 8,
SMP4, 8,
SMP5, 8,
SMP6, 8,
SMP7, 8,
SID0, 8,
SID1, 8,
SID2, 8,
SID3, 8,
SID4, 8,
SID5, 8,
SID6, 8,
SID7, 8,
LCDD, 32,
JYNC, 8,
GSEN, 8,
MAXP, 16,
CPID, 8,
}
OperationRegion(FXEM, SystemMemory, 0xFFD80000, 0xFF)
Field(FXEM, AnyAcc, Lock, Preserve)
{
Offset(0x71), //Offset(113),
UNDA, 1,
UNDB, 1,
UNDC, 1,
, 5,
WINC, 8,
GCAC, 8,
}
OperationRegion(H1DA, SystemMemory, 0x9CFBEF98, 0x0000001F)
Field(H1DA, AnyAcc, Lock, Preserve)
{
H1SG, 32,
RCKP, 8,
HDSM, 16,
HD1H, 64,
HD2H, 64,
OD1H, 64,
}
OperationRegion(HSMI, SystemIO, 0xB2, 0x02)
Field(HSMI, ByteAcc, NoLock, Preserve)
{
HSMC, 8,
HSMS, 8,
}
Scope(_SB)
{
Name(PRSA, ResourceTemplate()
{
IRQ(Level, ActiveLow, Shared) {1, 3, 4, 5, 6, 10, 11, 12, 14, 15}
})
Alias(PRSA, PRSB)
Alias(PRSA, PRSC)
Alias(PRSA, PRSD)
Alias(PRSA, PRSE)
Alias(PRSA, PRSF)
Alias(PRSA, PRSG)
Alias(PRSA, PRSH)
Device(PCI0)
{
Name(_HID, EISAID("PNP0A08"))
Name(_CID, EISAID("PNP0A03"))
Name(_ADR, Zero)
Method(^BN00, 0, NotSerialized)
{
Return(Zero)
}
Method(_BBN, 0, NotSerialized)
{
Return(BN00())
}
Name(_UID, Zero)
Name(PR00, Package(36)
{
Package(4) {0x0016FFFF, Zero, LNKA, Zero},
Package(4) {0x0016FFFF, One, LNKB, Zero},
Package(4) {0x0016FFFF, 0x02, LNKC, Zero},
Package(4) {0x0016FFFF, 0x03, LNKD, Zero},
Package(4) {0x0019FFFF, Zero, LNKE, Zero},
Package(4) {0x001AFFFF, Zero, LNKA, Zero},
Package(4) {0x001AFFFF, One, LNKF, Zero},
Package(4) {0x001AFFFF, 0x02, LNKD, Zero},
Package(4) {0x001AFFFF, 0x03, LNKC, Zero},
Package(4) {0x001BFFFF, Zero, LNKG, Zero},
Package(4) {0x001CFFFF, Zero, LNKB, Zero},
Package(4) {0x001CFFFF, One, LNKA, Zero},
Package(4) {0x001CFFFF, 0x02, LNKC, Zero},
Package(4) {0x001CFFFF, 0x03, LNKD, Zero},
Package(4) {0x001DFFFF, Zero, LNKE, Zero},
Package(4) {0x001DFFFF, One, LNKD, Zero},
Package(4) {0x001DFFFF, 0x02, LNKC, Zero},
Package(4) {0x001DFFFF, 0x03, LNKA, Zero},
Package(4) {0x001FFFFF, Zero, LNKF, Zero},
Package(4) {0x001FFFFF, One, LNKD, Zero},
Package(4) {0x001FFFFF, 0x02, LNKD, Zero},
Package(4) {0x001FFFFF, 0x03, LNKA, Zero},
Package(4) {0x0001FFFF, Zero, LNKA, Zero},
Package(4) {0x0001FFFF, One, LNKB, Zero},
Package(4) {0x0001FFFF, 0x02, LNKC, Zero},
Package(4) {0x0001FFFF, 0x03, LNKD, Zero},
Package(4) {0x0002FFFF, Zero, LNKA, Zero},
Package(4) {0x0004FFFF, Zero, LNKA, Zero},
Package(4) {0x0004FFFF, One, LNKB, Zero},
Package(4) {0x0004FFFF, 0x02, LNKC, Zero},
Package(4) {0x0004FFFF, 0x03, LNKD, Zero},
Package(4) {0x0006FFFF, Zero, LNKD, Zero},
Package(4) {0x0006FFFF, One, LNKA, Zero},
Package(4) {0x0006FFFF, 0x02, LNKB, Zero},
Package(4) {0x0006FFFF, 0x03, LNKC, Zero},
Package(4) {0x0018FFFF, Zero, LNKE, Zero}
})
Name(AR00, Package(36)
{
Package(4) {0x0016FFFF, Zero, Zero, 0x10},
Package(4) {0x0016FFFF, One, Zero, 0x11},
Package(4) {0x0016FFFF, 0x02, Zero, 0x12},
Package(4) {0x0016FFFF, 0x03, Zero, 0x13},
Package(4) {0x0019FFFF, Zero, Zero, 0x14},
Package(4) {0x001AFFFF, Zero, Zero, 0x10},
Package(4) {0x001AFFFF, One, Zero, 0x15},
Package(4) {0x001AFFFF, 0x02, Zero, 0x13},
Package(4) {0x001AFFFF, 0x03, Zero, 0x12},
Package(4) {0x001BFFFF, Zero, Zero, 0x16},
Package(4) {0x001CFFFF, Zero, Zero, 0x11},
Package(4) {0x001CFFFF, One, Zero, 0x10},
Package(4) {0x001CFFFF, 0x02, Zero, 0x12},
Package(4) {0x001CFFFF, 0x03, Zero, 0x13},
Package(4) {0x001DFFFF, Zero, Zero, 0x14},
Package(4) {0x001DFFFF, One, Zero, 0x13},
Package(4) {0x001DFFFF, 0x02, Zero, 0x12},
Package(4) {0x001DFFFF, 0x03, Zero, 0x10},
Package(4) {0x001FFFFF, Zero, Zero, 0x15},
Package(4) {0x001FFFFF, One, Zero, 0x13},
Package(4) {0x001FFFFF, 0x02, Zero, 0x13},
Package(4) {0x001FFFFF, 0x03, Zero, 0x10},
Package(4) {0x0001FFFF, Zero, Zero, 0x10},
Package(4) {0x0001FFFF, One, Zero, 0x11},
Package(4) {0x0001FFFF, 0x02, Zero, 0x12},
Package(4) {0x0001FFFF, 0x03, Zero, 0x13},
Package(4) {0x0002FFFF, Zero, Zero, 0x10},
Package(4) {0x0004FFFF, Zero, Zero, 0x10},
Package(4) {0x0004FFFF, One, Zero, 0x11},
Package(4) {0x0004FFFF, 0x02, Zero, 0x12},
Package(4) {0x0004FFFF, 0x03, Zero, 0x13},
Package(4) {0x0006FFFF, Zero, Zero, 0x13},
Package(4) {0x0006FFFF, One, Zero, 0x10},
Package(4) {0x0006FFFF, 0x02, Zero, 0x11},
Package(4) {0x0006FFFF, 0x03, Zero, 0x12},
Package(4) {0x0018FFFF, Zero, Zero, 0x14}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR00)
}
Return(PR00)
}
OperationRegion(HBUS, PCI_Config, Zero, 0x0100)
Field(HBUS, DWordAcc, NoLock, Preserve)
{
Offset(0x40), //Offset(64),
EPEN, 1,
, 7,
Offset(0x41), //Offset(65),
, 4,
EPBR, 20,
Offset(0x48), //Offset(72),
MHEN, 1,
, 7,
Offset(0x49), //Offset(73),
, 7,
MHBR, 17,
Offset(0x50), //Offset(80),
GCLK, 1,
Offset(0x54), //Offset(84),
D0EN, 1,
Offset(0x60), //Offset(96),
PXEN, 1,
PXSZ, 2,
, 5,
Offset(0x63), //Offset(99),
, 2,
PXBR, 6,
Offset(0x68), //Offset(104),
DIEN, 1,
, 7,
Offset(0x69), //Offset(105),
, 4,
DIBR, 20,
Offset(0x70), //Offset(112),
Offset(0x72), //Offset(114),
, 4,
MEBR, 12,
Offset(0x80), //Offset(128),
, 4,
PM0H, 2,
, 2,
PM1L, 2,
, 2,
PM1H, 2,
, 2,
PM2L, 2,
, 2,
PM2H, 2,
, 2,
PM3L, 2,
, 2,
PM3H, 2,
, 2,
PM4L, 2,
, 2,
PM4H, 2,
, 2,
PM5L, 2,
, 2,
PM5H, 2,
, 2,
PM6L, 2,
, 2,
PM6H, 2,
, 2,
Offset(0xA8), //Offset(168),
Offset(0xAA), //Offset(170),
, 4,
TUUD, 19,
Offset(0xBC), //Offset(188),
Offset(0xBE), //Offset(190),
, 4,
TLUD, 12,
Offset(0xC8), //Offset(200),
, 7,
HTSE, 1,
}
OperationRegion(MCHT, SystemMemory, 0xFED10000, 0x1100)
Field(MCHT, ByteAcc, NoLock, Preserve)
{
}
Name(BUF0, Buffer(0x01D4)
{
0x88, 0x0D, 0x00, 0x02, 0x0C, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01,
0x87, 0x17, 0x00, 0x01, 0x0C, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0C,
0x00, 0x00, 0x47, 0x01, 0xF8, 0x0C, 0xF8, 0x0C,
0x01, 0x08, 0x87, 0x17, 0x00, 0x01, 0x0C, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00,
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF3, 0x00, 0x00, 0x87, 0x17, 0x00, 0x00,
0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0A, 0x00, 0xFF, 0xFF, 0x0B, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x87, 0x17,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x00, 0xFF, 0x3F, 0x0C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x87, 0x17, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0x0C, 0x00, 0xFF, 0x7F,
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
0x00, 0x00, 0x87, 0x17, 0x00, 0x00, 0x0C, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0C, 0x00,
0xFF, 0xBF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x40, 0x00, 0x00, 0x87, 0x17, 0x00, 0x00,
0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
0x0C, 0x00, 0xFF, 0xFF, 0x0C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x87, 0x17,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0D, 0x00, 0xFF, 0x3F, 0x0D, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x87, 0x17, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0x0D, 0x00, 0xFF, 0x7F,
0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
0x00, 0x00, 0x87, 0x17, 0x00, 0x00, 0x0C, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0D, 0x00,
0xFF, 0xBF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x40, 0x00, 0x00, 0x87, 0x17, 0x00, 0x00,
0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
0x0D, 0x00, 0xFF, 0xFF, 0x0D, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x87, 0x17,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0E, 0x00, 0xFF, 0x3F, 0x0E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x87, 0x17, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0x0E, 0x00, 0xFF, 0x7F,
0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
0x00, 0x00, 0x87, 0x17, 0x00, 0x00, 0x0C, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0E, 0x00,
0xFF, 0xBF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x40, 0x00, 0x00, 0x87, 0x17, 0x00, 0x00,
0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
0x0E, 0x00, 0xFF, 0xFF, 0x0E, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x87, 0x17,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0F, 0x00, 0xFF, 0xFF, 0x0F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x87, 0x17, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
0xAF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB0, 0xFE, 0x79, 0x00
})
Method(_CRS, 0, Serialized)
{
CreateWordField(BUF0, 0x0A, PBMX)
Store(Subtract(ShiftRight(PELN, 0x14), 0x02), PBMX)
CreateWordField(BUF0, 0x0E, PBLN)
Store(Subtract(ShiftRight(PELN, 0x14), One), PBLN)
If(PM1L)
{
CreateDWordField(BUF0, 0x7C, C0LN)
Store(Zero, C0LN)
}
If(LEqual(PM1L, One))
{
CreateBitField(BUF0,0x0358,C0RW)
Store(Zero, C0RW)
}
If(PM1H)
{
CreateDWordField(BUF0, 0x96, C4LN)
Store(Zero, C4LN)
}
If(LEqual(PM1H, One))
{
CreateBitField(BUF0,0x0428,C4RW)
Store(Zero, C4RW)
}
If(PM2L)
{
CreateDWordField(BUF0, 0xB0, C8LN)
Store(Zero, C8LN)
}
If(LEqual(PM2L, One))
{
CreateBitField(BUF0,0x04F8,C8RW)
Store(Zero, C8RW)
}
If(PM2H)
{
CreateDWordField(BUF0, 0xCA, CCLN)
Store(Zero, CCLN)
}
If(LEqual(PM2H, One))
{
CreateBitField(BUF0,0x05C8,CCRW)
Store(Zero, CCRW)
}
If(PM3L)
{
CreateDWordField(BUF0, 0xE4, D0LN)
Store(Zero, D0LN)
}
If(LEqual(PM3L, One))
{
CreateBitField(BUF0,0x0698,D0RW)
Store(Zero, D0RW)
}
If(PM3H)
{
CreateDWordField(BUF0, 0xFE, D4LN)
Store(Zero, D4LN)
}
If(LEqual(PM3H, One))
{
CreateBitField(BUF0,0x0768,D4RW)
Store(Zero, D4RW)
}
If(PM4L)
{
CreateDWordField(BUF0, 0x0118, D8LN)
Store(Zero, D8LN)
}
If(LEqual(PM4L, One))
{
CreateBitField(BUF0,0x0838,D8RW)
Store(Zero, D8RW)
}
If(PM4H)
{
CreateDWordField(BUF0, 0x0132, DCLN)
Store(Zero, DCLN)
}
If(LEqual(PM4H, One))
{
CreateBitField(BUF0,0x0908,DCRW)
Store(Zero, DCRW)
}
If(PM5L)
{
CreateDWordField(BUF0, 0x014C, E0LN)
Store(Zero, E0LN)
}
If(LEqual(PM5L, One))
{
CreateBitField(BUF0,0x09D8,E0RW)
Store(Zero, E0RW)
}
If(PM5H)
{
CreateDWordField(BUF0, 0x0166, E4LN)
Store(Zero, E4LN)
}
If(LEqual(PM5H, One))
{
CreateBitField(BUF0,0x0AA8,E4RW)
Store(Zero, E4RW)
}
If(PM6L)
{
CreateDWordField(BUF0, 0x0180, E8LN)
Store(Zero, E8LN)
}
If(LEqual(PM6L, One))
{
CreateBitField(BUF0,0x0B78,E8RW)
Store(Zero, E8RW)
}
If(PM6H)
{
CreateDWordField(BUF0, 0x019A, ECLN)
Store(Zero, ECLN)
}
If(LEqual(PM6H, One))
{
CreateBitField(BUF0,0x0C48,ECRW)
Store(Zero, ECRW)
}
If(PM0H)
{
CreateDWordField(BUF0, 0x01B4, F0LN)
Store(Zero, F0LN)
}
If(LEqual(PM0H, One))
{
CreateBitField(BUF0,0x0D18,F0RW)
Store(Zero, F0RW)
}
CreateDWordField(BUF0, 0x01C2, M1MN)
CreateDWordField(BUF0, 0x01C6, M1MX)
CreateDWordField(BUF0, 0x01CE, M1LN)
ShiftLeft(TLUD, 0x14, M1MN)
Add(Subtract(M1MX, M1MN), One, M1LN)
Return(BUF0)
}
Name(GUID, Buffer(0x10)
{
0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40,
0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
})
Name(SUPP, Zero)
Name(CTRL, Zero)
Method(_OSC, 4, Serialized)
{
Store(Arg3, Local0)
CreateDWordField(Local0, Zero, CDW1)
CreateDWordField(Local0, 0x04, CDW2)
CreateDWordField(Local0, 0x08, CDW3)
If(LAnd(LEqual(Arg0, GUID), NEXP))
{
Store(CDW2, SUPP)
Store(CDW3, CTRL)
If(Not(And(CDW1, One)))
{
If(And(CTRL, One))
{
NHPG()
}
If(And(CTRL, 0x04))
{
NPME()
}
}
If(LNotEqual(Arg1, One))
{
Or(CDW1, 0x08, CDW1)
}
If(LNotEqual(CDW3, CTRL))
{
Or(CDW1, 0x10, CDW1)
}
Store(CTRL, CDW3)
Store(CTRL, OSCC)
Return(Local0)
}
Else
{
Or(CDW1, 0x04, CDW1)
Return(Local0)
}
}
Device(P0P1)
{
Name(_ADR, 0x001E0000)
Method(_PRW, 0, NotSerialized)
{
If(PMEE)
{
Return(Package(2) {0x0B, 0x03})
}
Else
{
Return(Package(2) {0x0B, Zero})
}
}
Name(PR01, Package(12)
{
Package(4) {0xFFFF, Zero, LNKF, Zero},
Package(4) {0xFFFF, One, LNKG, Zero},
Package(4) {0xFFFF, 0x02, LNKH, Zero},
Package(4) {0xFFFF, 0x03, LNKE, Zero},
Package(4) {0x0001FFFF, Zero, LNKG, Zero},
Package(4) {0x0001FFFF, One, LNKF, Zero},
Package(4) {0x0001FFFF, 0x02, LNKE, Zero},
Package(4) {0x0001FFFF, 0x03, LNKH, Zero},
Package(4) {0x0005FFFF, Zero, LNKC, Zero},
Package(4) {0x0005FFFF, One, LNKE, Zero},
Package(4) {0x0005FFFF, 0x02, LNKG, Zero},
Package(4) {0x0005FFFF, 0x03, LNKF, Zero}
})
Name(AR01, Package(12)
{
Package(4) {0xFFFF, Zero, Zero, 0x15},
Package(4) {0xFFFF, One, Zero, 0x16},
Package(4) {0xFFFF, 0x02, Zero, 0x17},
Package(4) {0xFFFF, 0x03, Zero, 0x14},
Package(4) {0x0001FFFF, Zero, Zero, 0x16},
Package(4) {0x0001FFFF, One, Zero, 0x15},
Package(4) {0x0001FFFF, 0x02, Zero, 0x14},
Package(4) {0x0001FFFF, 0x03, Zero, 0x17},
Package(4) {0x0005FFFF, Zero, Zero, 0x12},
Package(4) {0x0005FFFF, One, Zero, 0x14},
Package(4) {0x0005FFFF, 0x02, Zero, 0x16},
Package(4) {0x0005FFFF, 0x03, Zero, 0x15}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR01)
}
Return(PR01)
}
}
Device(LPCB)
{
Name(_ADR, 0x001F0000)
Scope(\_SB)
{
OperationRegion(PCI0.LPCB.LPC1, PCI_Config, 0x40, 0xC0)
Field(PCI0.LPCB.LPC1, AnyAcc, NoLock, Preserve)
{
Offset(0x20), //Offset(32),
PARC, 8,
PBRC, 8,
PCRC, 8,
PDRC, 8,
Offset(0x28), //Offset(40),
PERC, 8,
PFRC, 8,
PGRC, 8,
PHRC, 8,
}
Device(LNKA)
{
Name(_HID, EISAID("PNP0C0F"))
Name(_UID, One)
Method(_DIS, 0, Serialized)
{
Or(PARC, 0x80, PARC)
}
Method(_PRS, 0, Serialized)
{
Return(PRSA)
}
Method(_CRS, 0, Serialized)
{
Name(RTLA, ResourceTemplate()
{
IRQ(Level, ActiveLow, Shared) {}
})
CreateWordField(RTLA, One, IRQ0)
Store(Zero, IRQ0)
ShiftLeft(One, And(PARC, 0x0F), IRQ0)
Return(RTLA)
}
Method(_SRS, 1, Serialized)
{
CreateWordField(Arg0, One, IRQ0)
FindSetRightBit(IRQ0, Local0)
Decrement(Local0)
Store(Local0, PARC)
}
Method(_STA, 0, Serialized)
{
If(And(PARC, 0x80))
{
Return(0x09)
}
Else
{
Return(0x0B)
}
}
}
Device(LNKB)
{
Name(_HID, EISAID("PNP0C0F"))
Name(_UID, 0x02)
Method(_DIS, 0, Serialized)
{
Or(PBRC, 0x80, PBRC)
}
Method(_PRS, 0, Serialized)
{
Return(PRSB)
}
Method(_CRS, 0, Serialized)
{
Name(RTLB, ResourceTemplate()
{
IRQ(Level, ActiveLow, Shared) {}
})
CreateWordField(RTLB, One, IRQ0)
Store(Zero, IRQ0)
ShiftLeft(One, And(PBRC, 0x0F), IRQ0)
Return(RTLB)
}
Method(_SRS, 1, Serialized)
{
CreateWordField(Arg0, One, IRQ0)
FindSetRightBit(IRQ0, Local0)
Decrement(Local0)
Store(Local0, PBRC)
}
Method(_STA, 0, Serialized)
{
If(And(PBRC, 0x80))
{
Return(0x09)
}
Else
{
Return(0x0B)
}
}
}
Device(LNKC)
{
Name(_HID, EISAID("PNP0C0F"))
Name(_UID, 0x03)
Method(_DIS, 0, Serialized)
{
Or(PCRC, 0x80, PCRC)
}
Method(_PRS, 0, Serialized)
{
Return(PRSC)
}
Method(_CRS, 0, Serialized)
{
Name(RTLC, ResourceTemplate()
{
IRQ(Level, ActiveLow, Shared) {}
})
CreateWordField(RTLC, One, IRQ0)
Store(Zero, IRQ0)
ShiftLeft(One, And(PCRC, 0x0F), IRQ0)
Return(RTLC)
}
Method(_SRS, 1, Serialized)
{
CreateWordField(Arg0, One, IRQ0)
FindSetRightBit(IRQ0, Local0)
Decrement(Local0)
Store(Local0, PCRC)
}
Method(_STA, 0, Serialized)
{
If(And(PCRC, 0x80))
{
Return(0x09)
}
Else
{
Return(0x0B)
}
}
}
Device(LNKD)
{
Name(_HID, EISAID("PNP0C0F"))
Name(_UID, 0x04)
Method(_DIS, 0, Serialized)
{
Or(PDRC, 0x80, PDRC)
}
Method(_PRS, 0, Serialized)
{
Return(PRSD)
}
Method(_CRS, 0, Serialized)
{
Name(RTLD, ResourceTemplate()
{
IRQ(Level, ActiveLow, Shared) {}
})
CreateWordField(RTLD, One, IRQ0)
Store(Zero, IRQ0)
ShiftLeft(One, And(PDRC, 0x0F), IRQ0)
Return(RTLD)
}
Method(_SRS, 1, Serialized)
{
CreateWordField(Arg0, One, IRQ0)
FindSetRightBit(IRQ0, Local0)
Decrement(Local0)
Store(Local0, PDRC)
}
Method(_STA, 0, Serialized)
{
If(And(PDRC, 0x80))
{
Return(0x09)
}
Else
{
Return(0x0B)
}
}
}
Device(LNKE)
{
Name(_HID, EISAID("PNP0C0F"))
Name(_UID, 0x05)
Method(_DIS, 0, Serialized)
{
Or(PERC, 0x80, PERC)
}
Method(_PRS, 0, Serialized)
{
Return(PRSE)
}
Method(_CRS, 0, Serialized)
{
Name(RTLE, ResourceTemplate()
{
IRQ(Level, ActiveLow, Shared) {}
})
CreateWordField(RTLE, One, IRQ0)
Store(Zero, IRQ0)
ShiftLeft(One, And(PERC, 0x0F), IRQ0)
Return(RTLE)
}
Method(_SRS, 1, Serialized)
{
CreateWordField(Arg0, One, IRQ0)
FindSetRightBit(IRQ0, Local0)
Decrement(Local0)
Store(Local0, PERC)
}
Method(_STA, 0, Serialized)
{
If(And(PERC, 0x80))
{
Return(0x09)
}
Else
{
Return(0x0B)
}
}
}
Device(LNKF)
{
Name(_HID, EISAID("PNP0C0F"))
Name(_UID, 0x06)
Method(_DIS, 0, Serialized)
{
Or(PFRC, 0x80, PFRC)
}
Method(_PRS, 0, Serialized)
{
Return(PRSF)
}
Method(_CRS, 0, Serialized)
{
Name(RTLF, ResourceTemplate()
{
IRQ(Level, ActiveLow, Shared) {}
})
CreateWordField(RTLF, One, IRQ0)
Store(Zero, IRQ0)
ShiftLeft(One, And(PFRC, 0x0F), IRQ0)
Return(RTLF)
}
Method(_SRS, 1, Serialized)
{
CreateWordField(Arg0, One, IRQ0)
FindSetRightBit(IRQ0, Local0)
Decrement(Local0)
Store(Local0, PFRC)
}
Method(_STA, 0, Serialized)
{
If(And(PFRC, 0x80))
{
Return(0x09)
}
Else
{
Return(0x0B)
}
}
}
Device(LNKG)
{
Name(_HID, EISAID("PNP0C0F"))
Name(_UID, 0x07)
Method(_DIS, 0, Serialized)
{
Or(PGRC, 0x80, PGRC)
}
Method(_PRS, 0, Serialized)
{
Return(PRSG)
}
Method(_CRS, 0, Serialized)
{
Name(RTLG, ResourceTemplate()
{
IRQ(Level, ActiveLow, Shared) {}
})
CreateWordField(RTLG, One, IRQ0)
Store(Zero, IRQ0)
ShiftLeft(One, And(PGRC, 0x0F), IRQ0)
Return(RTLG)
}
Method(_SRS, 1, Serialized)
{
CreateWordField(Arg0, One, IRQ0)
FindSetRightBit(IRQ0, Local0)
Decrement(Local0)
Store(Local0, PGRC)
}
Method(_STA, 0, Serialized)
{
If(And(PGRC, 0x80))
{
Return(0x09)
}
Else
{
Return(0x0B)
}
}
}
Device(LNKH)
{
Name(_HID, EISAID("PNP0C0F"))
Name(_UID, 0x08)
Method(_DIS, 0, Serialized)
{
Or(PHRC, 0x80, PHRC)
}
Method(_PRS, 0, Serialized)
{
Return(PRSH)
}
Method(_CRS, 0, Serialized)
{
Name(RTLH, ResourceTemplate()
{
IRQ(Level, ActiveLow, Shared) {}
})
CreateWordField(RTLH, One, IRQ0)
Store(Zero, IRQ0)
ShiftLeft(One, And(PHRC, 0x0F), IRQ0)
Return(RTLH)
}
Method(_SRS, 1, Serialized)
{
CreateWordField(Arg0, One, IRQ0)
FindSetRightBit(IRQ0, Local0)
Decrement(Local0)
Store(Local0, PHRC)
}
Method(_STA, 0, Serialized)
{
If(And(PHRC, 0x80))
{
Return(0x09)
}
Else
{
Return(0x0B)
}
}
}
}
OperationRegion(LPC0, PCI_Config, 0x40, 0xC0)
Field(LPC0, AnyAcc, NoLock, Preserve)
{
Offset(0x40), //Offset(64),
IOD0, 8,
IOD1, 8,
Offset(0xB0), //Offset(176),
RAEN, 1,
, 7,
Offset(0xB1), //Offset(177),
, 6,
RCBA, 18,
}
Device(EC)
{
Name(_HID, EISAID("PNP0C09"))
Name(_UID, One)
Name(ECOK, Zero)
Mutex(MTX2, 0)
Name(_CRS, ResourceTemplate()
{
IO(Decode16, 0x0062, 0x0062, 0x00, 0x01)
IO(Decode16, 0x0066, 0x0066, 0x00, 0x01)
})
Method(_REG, 2, NotSerialized)
{
If(LEqual(Arg0, 0x03))
{
Store(Arg1, ECOK)
Store(Arg1, ECOK)
If(_OSI("Windows 2009"))
{
Store(One, WN7)
}
Store(LDS, LIDS)
}
}
OperationRegion(ECF2, EmbeddedControl, Zero, 0xFF)
Field(ECF2, ByteAcc, Lock, Preserve)
{
Offset(0x8), //Offset(8),
BDNB, 112,
Offset(0x20), //Offset(32),
RTTE, 16,
ATTE, 16,
ATTF, 16,
AVGC, 16,
CHGV, 16,
CHGC, 16,
Offset(0x30), //Offset(48),
CTL, 128,
Offset(0x42), //Offset(66),
SPRT, 8,
SADD, 8,
SCMD, 8,
SLEN, 8,
SDA0, 8,
SDA1, 8,
SDA2, 8,
SDA3, 8,
SSTS, 7,
BSSF, 1,
Offset(0x55), //Offset(85),
MBID, 8,
, 2,
ADDC, 1,
OWAN, 1,
FTCM, 1,
, 1,
TRIC, 1,
STPC, 1,
QKL, 8,
QKH, 8,
GSTA, 8,
MMOS, 8,
DMOS, 8,
, 8,
CURP, 8,
BATC, 8,
BATR, 8,
BATS, 8,
, 8,
HOT, 8,
CRT, 8,
, 8,
PWM, 8,
WN7, 1,
VIS, 1,
WXP, 1,
, 5,
WOL, 1,
WOU, 1,
WOR, 1,
Offset(0x6C), //Offset(108),
TCCV, 8,
Offset(0x70), //Offset(112),
BSW, 16,
Offset(0x7A), //Offset(122),
CRI, 8,
Offset(0x7E), //Offset(126),
ECV, 16,
, 8,
SLP, 8,
, 2,
ACP, 1,
SMO, 1,
, 2,
DFN, 1,
B50, 1,
LDS, 1,
, 3,
TPS, 1,
, 2,
ACOV, 1,
ADP, 1,
S3L, 1,
BATP, 1,
, 1,
BCNL, 1,
BCCL, 1,
BF25, 1,
Offset(0x89), //Offset(137),
BDC, 16,
Offset(0x8D), //Offset(141),
BFC, 16,
BCY, 16,
BTEC, 16,
Offset(0x95), //Offset(149),
BDV, 16,
Offset(0x99), //Offset(153),
BST, 16,
Offset(0x9D), //Offset(157),
BPR, 16,
Offset(0xA1), //Offset(161),
BRC, 16,
Offset(0xA5), //Offset(165),
BPV, 16,
, 8,
TURS, 8,
BMD, 16,
Offset(0xAD), //Offset(173),
BCW, 16,
Offset(0xB1), //Offset(177),
BCL, 16,
Offset(0xB5), //Offset(181),
BG1, 16,
Offset(0xBD), //Offset(189),
BMN, 16,
Offset(0xC1), //Offset(193),
BTN, 64,
BSN, 16,
Offset(0xD1), //Offset(209),
BTY, 16,
Offset(0xD9), //Offset(217),
BC4, 16,
BC3, 16,
BC2, 16,
BC1, 16,
CTS, 8,
CT0, 8,
CT1, 8,
CT2, 8,
CPT0, 8,
SAS, 8,
BTT, 16,
Offset(0xEB), //Offset(235),
BPP, 8,
Offset(0xEE), //Offset(238),
BPC, 1,
BPF, 1,
BPW, 1,
BPT, 1,
Offset(0xF0), //Offset(240),
LCBD, 4,
LCBA, 4,
Offset(0xF3), //Offset(243),
FAO, 1,
FST, 1,
PAE, 1,
, 1,
QLB, 1,
Offset(0xF5), //Offset(245),
WLS, 1,
, 1,
WWS, 1,
, 1,
WLD, 1,
WWD, 1,
, 2,
BTS, 1,
, 3,
BTD, 1,
, 3,
FAT, 8,
BAB, 8,
GLD, 1,
, 7,
FSD, 8,
TAU, 1,
TCM, 1,
TLG, 1,
TSA, 1,
}
Method(ESBW, 5, NotSerialized)
{
Store(Arg0, SPRT)
Store(Arg1, SADD)
Store(Arg2, SCMD)
Store(Arg3, SLEN)
Store(Arg4, SDA0)
Store(Zero, SSTS)
Store(One, BSSF)
While(BSSF)
{
Sleep(0x0A)
}
And(SSTS, 0x1F, Local0)
Return(Local0)
}
Method(ESBR, 3, NotSerialized)
{
Store(Package(3) {0x07, Zero, Zero}, Local0)
Store(Arg0, SPRT)
Store(Arg1, SADD)
Store(Arg2, SCMD)
Store(Zero, SSTS)
Store(One, BSSF)
While(BSSF)
{
Sleep(0x0A)
}
Store(SLEN, Index(Local0, One))
Store(SDA0, Index(Local0, 0x02))
And(SSTS, 0x1F, Index(Local0, Zero))
Return(Local0)
}
Method(SPST, 1, NotSerialized)
{
Store(Arg0, \_PR.CPU0._PPC)
Notify(\_PR.CPU0, 0x80)
If(LGreater(Arg0, MAXP))
{
Store(MAXP, CURP)
}
Else
{
Store(Arg0, CURP)
}
}
Method(STST, 1, NotSerialized)
{
Store(Arg0, \_PR.CPU0._TPC)
Notify(\_PR.CPU0, 0x82)
}
Name(_GPE, 0x17)
Method(_Q03, 0, NotSerialized)
{
Store(0x03, IO80)
Notify(BAT0, 0x80)
}
Method(_Q04, 0, NotSerialized)
{
Store(0x04, IO80)
Notify(BAT0, 0x80)
}
Method(_Q06, 0, NotSerialized)
{
Store(0x06, IO80)
If(ADP)
{
Notify(BAT0, Zero)
Notify(BAT0, 0x80)
Store(One, BATC)
}
Else
{
Notify(BAT0, One)
Notify(BAT0, 0x80)
}
Store(0x03, ^^^^WMID.WMIU)
Store(Zero, ^^^^WMID.WMIV)
Notify(WMID, 0x80)
^^^^ACEL.AJAL()
If(LEqual(CPID, 0x05))
{
Store(ADP, PWRS)
PNOT()
}
}
Method(_Q08, 0, NotSerialized)
{
Store(0x08, IO80)
^^^^BAT0.INUT()
Notify(BAT0, 0x80)
If(BATP)
{
Store(Zero, SIMD)
}
Else
{
Store(One, SIMD)
}
Store(0x05, ^^^^WMID.WMIU)
Store(Zero, ^^^^WMID.WMIV)
Notify(WMID, 0x80)
}
Method(_Q09, 0, NotSerialized)
{
Store(0x09, IO80)
^^^^BAT0.UBST()
Notify(BAT0, 0x80)
}
Method(_Q0A, 0, NotSerialized)
{
Store(0x0A, IO80)
Notify(LID, 0x80)
^^^^ACEL.AJAL()
}
Method(_Q14, 0, NotSerialized)
{
Store(0x14, IO80)
^^^GFX0.GHDS(One)
}
Method(_Q17, 0, NotSerialized)
{
Store(0x17, IO80)
Notify(^^^GFX0.DD02, 0x87)
Notify(^^^PEG0.PEGP.DD02, 0x87)
STBL()
}
Method(_Q18, 0, NotSerialized)
{
Store(0x18, IO80)
Notify(^^^GFX0.DD02, 0x86)
Notify(^^^PEG0.PEGP.DD02, 0x86)
STBL()
}
Method(_Q1A, 0, NotSerialized)
{
Store(0x1A, IO80)
Divide(MAXP, 0x03, Local1, Local0)
Multiply(Local0, 0x02, Local0)
SPST(Local0)
}
Method(_Q1C, 0, NotSerialized)
{
Store(0x1C, IO80)
Divide(MAXP, 0x03, Local1, Local0)
Multiply(Local0, 0x02, Local0)
SPST(Local0)
}
Method(_Q1D, 0, NotSerialized)
{
Store(0x1D, IO80)
}
Method(_Q1F, 0, NotSerialized)
{
Store(0x1F, IO80)
^^^^WMID.STPS()
STST(Zero)
}
Method(_Q20, 0, NotSerialized)
{
Store(0x20, IO80)
_Q1F()
Sleep(0x14)
Notify(\_TZ.THRM, 0x80)
}
Method(_Q37, 0, NotSerialized)
{
Store(0x37, IO80)
Acquire(MTX2, 0xFFFF)
Divide(MAXP, 0x03, Local1, Local0)
Multiply(Local0, One, Local0)
SPST(Local0)
Release(MTX2)
}
Method(_Q38, 0, NotSerialized)
{
Store(0x38, IO80)
Acquire(MTX2, 0xFFFF)
Divide(MAXP, 0x03, Local1, Local0)
Multiply(Local0, 0x02, Local0)
SPST(Local0)
Release(MTX2)
}
Method(_Q39, 0, NotSerialized)
{
Store(0x39, IO80)
Acquire(MTX2, 0xFFFF)
SPST(MAXP)
Release(MTX2)
}
Method(_Q3A, 0, NotSerialized)
{
Store(0x3A, IO80)
Acquire(MTX2, 0xFFFF)
^^^^WMID.STPS()
}
Method(_Q3B, 0, NotSerialized)
{
Store(0x3B, IO80)
Acquire(MTX2, 0xFFFF)
Divide(MAXP, 0x03, Local1, Local0)
Multiply(Local0, One, Local0)
SPST(Local0)
Release(MTX2)
}
Method(_Q3C, 0, NotSerialized)
{
Store(0x3C, IO80)
Acquire(MTX2, 0xFFFF)
Divide(MAXP, 0x03, Local1, Local0)
Multiply(Local0, 0x02, Local0)
SPST(Local0)
Release(MTX2)
}
Method(_Q3F, 0, NotSerialized)
{
Store(0x3F, IO80)
Acquire(MTX2, 0xFFFF)
If(LEqual(TURS, One))
{
SPST(0x02)
}
Else
{
SPST(One)
}
Release(MTX2)
}
Name(WLSL, One)
Name(BTSL, One)
Name(WWSL, One)
Name(WLAS, One)
Method(_Q43, 0, NotSerialized)
{
Store(0x43, IO80)
If(BTNS)
{
Store(Zero, BTNS)
Store(Zero, BTNB)
If(WLS)
{
Store(Zero, WLD)
}
If(BTS)
{
Store(Zero, BTD)
Store(One, BTPR)
}
If(WWS)
{
Store(Zero, WWD)
}
}
Else
{
Store(One, BTNS)
Store(One, BTNB)
If(WLAS)
{
If(LAnd(WLS, WLSL))
{
If(WLWI)
{
Store(One, WLD)
}
}
If(LAnd(BTS, BTSL))
{
If(BTWI)
{
Store(One, BTD)
Store(Zero, BTPR)
}
}
If(LAnd(WWS, WWSL))
{
If(WWWI)
{
Store(One, WWD)
}
}
}
Else
{
If(LAnd(WLS, WLSL))
{
Store(Zero, WLD)
}
If(LAnd(BTS, BTSL))
{
Store(Zero, BTD)
Store(One, BTPR)
}
If(LAnd(WWS, WWSL))
{
Store(Zero, WWD)
}
}
}
Sleep(0xC8)
Store(0x05, ^^^^WMID.WMIU)
Store(Zero, ^^^^WMID.WMIV)
Notify(WMID, 0x80)
}
Method(_QCC, 0, NotSerialized)
{
Store(0xCC, IO80)
^^^^WMID.STPS()
}
Method(_Q44, 0, NotSerialized)
{
Store(0x44, IO80)
Store(0xD7, SSMP)
}
Method(_QCE, 0, NotSerialized)
{
Store(0xCE, IO80)
If(And(CFGD, 0x00080000))
{
STST(0x08)
}
Else
{
STST(0x04)
}
}
Name(LGP1, Package(11) {0x06, 0x08, 0x0A, 0x0E, 0x13, 0x19, 0x21, 0x2C, 0x3A, 0x4C, 0x64})
Name(CMO1, Package(11) {0x07, 0x09, 0x0C, 0x0F, 0x14, 0x1B, 0x24, 0x2F, 0x3E, 0x52, 0x64})
Name(BUFF, Buffer(0x0B)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00
})
CreateByteField(BUFF,Zero,BUF0)
CreateByteField(BUFF,One,BUF1)
CreateByteField(BUFF,0x02,BUF2)
CreateByteField(BUFF,0x03,BUF3)
CreateByteField(BUFF,0x04,BUF4)
CreateByteField(BUFF,0x05,BUF5)
CreateByteField(BUFF,0x06,BUF6)
CreateByteField(BUFF,0x07,BUF7)
CreateByteField(BUFF,0x08,BUF8)
CreateByteField(BUFF,0x09,BUF9)
CreateByteField(BUFF,0x0A,BUFA)
Method(STBL, 0, Serialized)
{
Sleep(0x32)
If(ADP)
{
Store(RTBL(), LCBA)
}
Else
{
Store(RTBL(), LCBD)
}
}
Method(RTBL, 0, Serialized)
{
If(LEqual(LCDD, 0x15A2AF0D))
{
Store(DerefOf(Index(CMO1, Zero)), BUF0)
Store(DerefOf(Index(CMO1, One)), BUF1)
Store(DerefOf(Index(CMO1, 0x02)), BUF2)
Store(DerefOf(Index(CMO1, 0x03)), BUF3)
Store(DerefOf(Index(CMO1, 0x04)), BUF4)
Store(DerefOf(Index(CMO1, 0x05)), BUF5)
Store(DerefOf(Index(CMO1, 0x06)), BUF6)
Store(DerefOf(Index(CMO1, 0x07)), BUF7)
Store(DerefOf(Index(CMO1, 0x08)), BUF8)
Store(DerefOf(Index(CMO1, 0x09)), BUF9)
Store(DerefOf(Index(CMO1, 0x0A)), BUFA)
}
Else
{
Store(DerefOf(Index(LGP1, Zero)), BUF0)
Store(DerefOf(Index(LGP1, One)), BUF1)
Store(DerefOf(Index(LGP1, 0x02)), BUF2)
Store(DerefOf(Index(LGP1, 0x03)), BUF3)
Store(DerefOf(Index(LGP1, 0x04)), BUF4)
Store(DerefOf(Index(LGP1, 0x05)), BUF5)
Store(DerefOf(Index(LGP1, 0x06)), BUF6)
Store(DerefOf(Index(LGP1, 0x07)), BUF7)
Store(DerefOf(Index(LGP1, 0x08)), BUF8)
Store(DerefOf(Index(LGP1, 0x09)), BUF9)
Store(DerefOf(Index(LGP1, 0x0A)), BUFA)
}
Store(^^^GFX0.CBLV, Local1)
And(Local1, 0xFF, Local0)
If(LNotEqual(^^^GFX0.BCLP, 0xFF))
{
Add(Local0, One, Local0)
}
If(LEqual(Local0, BUF0))
{
Return(Zero)
}
Else
{
If(LEqual(Local0, BUF1))
{
Return(One)
}
Else
{
If(LEqual(Local0, BUF2))
{
Return(0x02)
}
Else
{
If(LEqual(Local0, BUF3))
{
Return(0x03)
}
Else
{
If(LEqual(Local0, BUF4))
{
Return(0x04)
}
Else
{
If(LEqual(Local0, BUF5))
{
Return(0x05)
}
Else
{
If(LEqual(Local0, BUF6))
{
Return(0x06)
}
Else
{
If(LEqual(Local0, BUF7))
{
Return(0x07)
}
Else
{
If(LEqual(Local0, BUF8))
{
Return(0x08)
}
Else
{
If(LEqual(Local0, BUF9))
{
Return(0x09)
}
Else
{
If(LEqual(Local0, BUFA))
{
Return(0x0A)
}
Else
{
Return(0x0F)
}
}
}
}
}
}
}
}
}
}
}
}
}
Device(LID)
{
Name(_HID, EISAID("PNP0C0D"))
Name(_PRW, Package(2) {0x1E, 0x03})
Method(_LID, 0, NotSerialized)
{
Store(One, ^^^GFX0.CLID)
If(^^EC.ECOK)
{
Store(^^EC.LDS, Local0)
If(Local0)
{
Notify(PCI0, Zero)
Return(One)
}
Else
{
Store(Zero, ^^^GFX0.CLID)
Return(Zero)
}
}
Else
{
Notify(PCI0, Zero)
Return(One)
}
}
Method(_PSW, 1, NotSerialized)
{
}
}
Scope(\_SB)
{
Device(PWRB)
{
Name(_HID, EISAID("PNP0C0C"))
Name(_PRW, Package(2) {0x1E, 0x04})
Method(_STA, 0, NotSerialized)
{
If(LEqual(ECON, One))
{
Return(0x0F)
}
Return(Zero)
}
}
}
Scope(\_SB)
{
Device(BAT0)
{
Name(_HID, EISAID("PNP0C0A"))
Name(_UID, Zero)
Name(_PCL, Package(1) {_SB})
Name(BIFB, Package(13)
{
One, 0x0514, 0x0514, One, 0x2A30, 0x0138, 0x9C, 0x0D, 0x0D, "CA54200",
"Li4402A", " ", " HP "
})
Name(BSTB, Package(4) {Zero, Ones, Ones, 0x2710})
Name(MDLS, Package(7) {"Unknown", " 3500", " 3800", " 4500", " 2600", " 3000", " 3200"})
Name(CHAR, Package(16)
{
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C",
"D", "E", "F"
})
Method(PBFE, 3, NotSerialized)
{
CreateByteField(Arg0,Arg1,TIDX)
Store(Arg2, TIDX)
}
Method(ITOS, 1, NotSerialized)
{
Store("", Local0)
Store(0x08, Local1)
While(Local1)
{
Decrement(Local1)
And(ShiftRight(Arg0, ShiftLeft(Local1, 0x02)), 0x0F, Local4)
Store(DerefOf(Index(CHAR, Local4)), Local2)
Concatenate(Local0, Local2, Local5)
Store(Local5, Local0)
}
Return(Local0)
}
Method(Z00C, 1, NotSerialized)
{
Store("", Local0)
Store(0x04, Local1)
While(Local1)
{
Decrement(Local1)
And(ShiftRight(Arg0, ShiftLeft(Local1, 0x02)), 0x0F, Local4)
Store(DerefOf(Index(CHAR, Local4)), Local2)
Concatenate(Local0, Local2, Local5)
Store(Local5, Local0)
}
Return(Local0)
}
Method(ITSN, 2, NotSerialized)
{
Store("", Local0)
Store(Arg1, Local1)
While(Local1)
{
Decrement(Local1)
And(ShiftRight(Arg0, ShiftLeft(Local1, 0x02)), 0x0F, Local4)
Store(DerefOf(Index(CHAR, Local4)), Local2)
Concatenate(Local0, Local2, Local5)
Store(Local5, Local0)
}
Return(Local0)
}
Method(_STA, 0, NotSerialized)
{
If(LEqual(^^PCI0.LPCB.EC.ECOK, Zero))
{
Return(0x0F)
}
Else
{
Store(^^PCI0.LPCB.EC.BATP, Local0)
Or(Local0, Local0, Local0)
If(Local0)
{
Return(0x1F)
}
Else
{
Return(0x0F)
}
}
}
Method(_BIF, 0, NotSerialized)
{
If(LEqual(^^PCI0.LPCB.EC.ECOK, Zero))
{
Store(One, Index(BIFB, Zero))
Store(0x0514, Index(BIFB, One))
Store(0x0514, Index(BIFB, 0x02))
Store(One, Index(BIFB, 0x03))
Store(0x2A30, Index(BIFB, 0x04))
Store(0x0138, Index(BIFB, 0x05))
Store(0x9C, Index(BIFB, 0x06))
Store(0x0D, Index(BIFB, 0x07))
Store(0x0D, Index(BIFB, 0x08))
Store("CA54200", Index(BIFB, 0x09))
Store("Li4402A", Index(BIFB, 0x0A))
Store(" ", Index(BIFB, 0x0B))
Store(" HP ", Index(BIFB, 0x0C))
}
Else
{
Store(Zero, Index(BIFB, Zero))
Store(^^PCI0.LPCB.EC.BDV, Local1)
Store(^^PCI0.LPCB.EC.BDC, Local0)
Multiply(Local0, Local1, Local0)
Divide(Local0, 0x03E8, Local2, Local0)
Store(Local0, Index(BIFB, One))
Store(^^PCI0.LPCB.EC.BFC, Local0)
Multiply(Local0, Local1, Local0)
Divide(Local0, 0x03E8, Local2, Local0)
Store(Local0, Index(BIFB, 0x02))
Store(^^PCI0.LPCB.EC.BTEC, Index(BIFB, 0x03))
Store(^^PCI0.LPCB.EC.BDV, Index(BIFB, 0x04))
Store(^^PCI0.LPCB.EC.BCW, Local0)
Multiply(Local0, Local1, Local0)
Divide(Local0, 0x03E8, Local2, Local0)
Store(Local0, Index(BIFB, 0x05))
Store(^^PCI0.LPCB.EC.BCL, Local0)
Multiply(Local0, Local1, Local0)
Divide(Local0, 0x03E8, Local2, Local0)
Store(Local0, Index(BIFB, 0x06))
Store(^^PCI0.LPCB.EC.BFC, Local0)
Multiply(Local0, Local1, Local0)
Divide(Local0, 0x000186A0, Local2, Local0)
Store(Local0, Index(BIFB, 0x07))
Store(^^PCI0.LPCB.EC.BFC, Local0)
Multiply(Local0, Local1, Local0)
Divide(Local0, 0x000186A0, Local2, Local0)
Store(Local0, Index(BIFB, 0x08))
Store(^^PCI0.LPCB.EC.BMN, Local5)
And(Local5, 0x0F, Local5)
If(LGreater(Local5, 0x06))
{
Store(DerefOf(Index(MDLS, Zero)), Index(BIFB, 0x09))
}
Else
{
Store("---------------- NABT < 6 ", Debug)
Store(^^PCI0.LPCB.EC.BMN, Local5)
And(Local5, 0x0F, Local5)
Store(Zero, Local1)
If(LEqual(Local5, One))
{
Store(One, Local1)
}
If(LEqual(Local5, 0x04))
{
Store(One, Local1)
}
Store(^^PCI0.LPCB.EC.BDC, Local0)
If(LEqual(Local1, One))
{
Store("---------------------NiMH battery, NABT =1,4 ", Debug)
If(LGreaterEqual(Local0, 0x0ED8))
{
Store(Z00C(ToBCD(Local0)), Local1)
Store(Local1, Index(BIFB, 0x09))
Store("-------------------- DC > 3800 ", Debug)
}
Else
{
Store("3800", Index(BIFB, 0x09))
Store("-------------------- DC <= 3800 ", Debug)
}
Store(^^PCI0.LPCB.EC.BDC, Local0)
If(LEqual(Local0, 0x11C6))
{
Store("3800", Index(BIFB, 0x09))
Store("-------------------- DC =4550 ", Debug)
}
}
Else
{
Store("---------------- Li Battery ", Debug)
If(LGreaterEqual(Local0, 0x0BB8))
{
Store(Z00C(ToBCD(Local0)), Local1)
Store(Local1, Index(BIFB, 0x09))
Store("--------------------- DC >= 3000 ", Debug)
}
Else
{
Store("2600", Index(BIFB, 0x09))
Store("--------------------- DC < 3000 ", Debug)
}
}
}
Store(^^PCI0.LPCB.EC.BSN, Local0)
Store(^^PCI0.LPCB.EC.BTY, Local0)
Store(Buffer(0x05){}, Local4)
PBFE(Local4, Zero, Local0)
PBFE(Local4, 0x04, Zero)
Name(Z00D, "xxxxxxxx")
Store(Local4, Z00D)
Store("Li", Index(BIFB, 0x0B))
If(^^PCI0.LPCB.EC.BATP)
{
Store(" Hewlett-Packard ", Index(BIFB, 0x0C))
}
Else
{
Store(" ", Index(BIFB, 0x0C))
}
Return(BIFB)
}
Return(BIFB)
}
Method(_BST, 0, NotSerialized)
{
If(^^PCI0.LPCB.EC.ECOK)
{
UBST()
}
Return(BSTB)
}
Name(CRIT, Zero)
Method(UBST, 0, NotSerialized)
{
Store(^^PCI0.LPCB.EC.BST, Index(BSTB, Zero))
Store(^^PCI0.LPCB.EC.BPR, Local0)
Store(^^PCI0.LPCB.EC.BDV, Local1)
If(LGreaterEqual(Local0, 0x8000))
{
Subtract(0x00010000, Local0, Local0)
Multiply(Local0, Local1, Local0)
Divide(Local0, 0x03E8, Local2, Local0)
}
Else
{
Multiply(Local0, Local1, Local0)
Divide(Local0, 0x03E8, Local2, Local0)
}
Store(Local0, Index(BSTB, One))
Store(^^PCI0.LPCB.EC.BFC, Local0)
Multiply(Local0, Local1, Local0)
Divide(Local0, 0x03E8, Local2, Local0)
Store(^^PCI0.LPCB.EC.BPP, Local2)
Multiply(Local0, Local2, Local0)
Divide(Local0, 0x64, Local2, Local0)
Add(Local0, One, Local0)
Store(Local0, Index(BSTB, 0x02))
Store(^^PCI0.LPCB.EC.BPV, Index(BSTB, 0x03))
Store(DerefOf(Index(BSTB, Zero)), Local0)
If(^^PCI0.LPCB.EC.ECOK)
{
Store(^^PCI0.LPCB.EC.BCCL, Local1)
}
And(Local0, 0xFFFB, Local0)
ShiftLeft(Local1, 0x02, Local1)
Add(Local0, Local1, Local0)
Store(Local0, Index(BSTB, Zero))
}
Method(INUT, 0, NotSerialized)
{
If(^^PCI0.LPCB.EC.ECOK)
{
If(LEqual(_STA(), 0x1F))
{
UBST()
_BIF()
Sleep(0x01F4)
Notify(AC, Zero)
Notify(BAT0, Zero)
Notify(BAT0, 0x80)
Notify(BAT0, 0x81)
}
Else
{
UBST()
Notify(AC, Zero)
Notify(BAT0, Zero)
Notify(BAT0, 0x80)
Notify(BAT0, 0x81)
}
^^AC.FLPA()
}
}
}
Device(AC)
{
Name(_HID, "ACPI0003")
Name(_PCL, Package(1) {_SB})
Name(ACP, Zero)
Method(_STA, 0, NotSerialized)
{
Store("---------------------------- AC _STA", Debug)
Return(0x0F)
}
Method(_PSR, 0, NotSerialized)
{
Store("---------------------------- AC _PSR", Debug)
Store(ACP, Local0)
If(^^PCI0.LPCB.EC.ECOK)
{
Store(^^PCI0.LPCB.EC.ADP, Local0)
If(LNotEqual(Local0, ACP))
{
FLPA()
}
}
If(Local0)
{
Store("---------------------------- AC on line", Debug)
}
Else
{
Store("---------------------------- AC off line", Debug)
}
Return(Local0)
}
Method(CHAC, 0, NotSerialized)
{
Store("---------------------------- AC _CHAC", Debug)
If(^^PCI0.LPCB.EC.ECOK)
{
Store(^^PCI0.LPCB.EC.ADP, Local0)
If(LNotEqual(Local0, ACP))
{
FLPA()
}
}
}
Method(FLPA, 0, NotSerialized)
{
Store("---------------------------- AC _FLPA", Debug)
If(ACP)
{
Store(Zero, ACP)
}
Else
{
Store(One, ACP)
}
Notify(AC, Zero)
}
}
Device(ACEL)
{
Name(_HID, 0x04001122)
Name(DEPT, 0xFF)
Name(CTST, 0xFF)
Name(_CRS, ResourceTemplate()
{
Interrupt(ResourceConsumer, Edge, ActiveLow, Exclusive)
{
0x00000017
}
})
Method(_STA, 0, NotSerialized)
{
If(GSEN)
{
Store(0x0F, DEPT)
}
Else
{
Store(Zero, DEPT)
}
Return(DEPT)
}
Method(AJAL, 0, Serialized)
{
If(^^PCI0.LPCB.EC.ECOK)
{
If(_STA())
{
Store(^^PCI0.LPCB.EC.ADP, Local0)
If(LAnd(LEqual(^^PCI0.LPCB.EC.LDS, Zero), LEqual(Local0, Zero))) {}
Else {}
}
}
}
Method(CLRI, 0, Serialized)
{
Store(Zero, Local2)
If(LEqual(^^PCI0.LPCB.EC.ADP, Zero))
{
Store(0x04, Local0)
If(LEqual(^^BAT0._STA(), 0x1F))
{
Store(One, Local0)
}
If(And(Local0, 0x04))
{
Store(One, Local2)
}
}
Return(Local2)
}
Method(ALRD, 1, NotSerialized)
{
Store(^^PCI0.LPCB.EC.ESBR(0x07, 0x3A, Arg0), Local1)
Store(DerefOf(Index(Local1, 0x02)), Local0)
Return(Local0)
}
Method(ALWR, 2, NotSerialized)
{
Store(^^PCI0.LPCB.EC.ESBW(0x06, 0x3A, Arg0, One, Arg1), Local0)
Return(Local0)
}
Method(ALID, 1, NotSerialized)
{
Return(^^PCI0.LPCB.EC.LDS)
}
Method(ALED, 1, NotSerialized)
{
If(Arg0)
{
Store(One, ^^PCI0.LPCB.EC.GLD)
}
Else
{
Store(Zero, ^^PCI0.LPCB.EC.GLD)
}
}
Method(ADSN, 0, NotSerialized)
{
Store(Zero, Local0)
Return(Local0)
}
}
}
Device(DMAC)
{
Name(_HID, EISAID("PNP0200"))
Name(_CRS, ResourceTemplate()
{
IO(Decode16, 0x0000, 0x0000, 0x01, 0x20)
IO(Decode16, 0x0081, 0x0081, 0x01, 0x11)
IO(Decode16, 0x0093, 0x0093, 0x01, 0x0D)
IO(Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
DMA(Compatibility, NotBusMaster, Transfer8_16) {4}
})
}
Device(FWHD)
{
Name(_HID, 0x0008D425)
Name(_CRS, ResourceTemplate()
{
Memory32Fixed(ReadOnly, 0xFF000000, 0x01000000)
})
}
Device(HPET)
{
Name(_HID, EISAID("PNP0103"))
Name(_UID, Zero)
Name(BUF0, ResourceTemplate()
{
Memory32Fixed(ReadWrite, 0xFED00000, 0x00000400)
})
Method(_STA, 0, NotSerialized)
{
If(LGreaterEqual(OSYS, 0x07D1))
{
If(HPAE)
{
Return(0x0F)
}
}
Else
{
If(HPAE)
{
Return(0x0B)
}
}
Return(Zero)
}
Method(_CRS, 0, Serialized)
{
If(HPAE)
{
CreateDWordField(BUF0, 0x04, HPT0)
If(LEqual(HPAS, One))
{
Store(0xFED01000, HPT0)
}
If(LEqual(HPAS, 0x02))
{
Store(0xFED02000, HPT0)
}
If(LEqual(HPAS, 0x03))
{
Store(0xFED03000, HPT0)
}
}
Return(BUF0)
}
}
Device(IPIC)
{
Name(_HID, EISAID("PNP0000"))
Name(_CRS, ResourceTemplate()
{
IO(Decode16, 0x0020, 0x0020, 0x01, 0x02)
IO(Decode16, 0x0024, 0x0024, 0x01, 0x02)
IO(Decode16, 0x0028, 0x0028, 0x01, 0x02)
IO(Decode16, 0x002C, 0x002C, 0x01, 0x02)
IO(Decode16, 0x0030, 0x0030, 0x01, 0x02)
IO(Decode16, 0x0034, 0x0034, 0x01, 0x02)
IO(Decode16, 0x0038, 0x0038, 0x01, 0x02)
IO(Decode16, 0x003C, 0x003C, 0x01, 0x02)
IO(Decode16, 0x00A0, 0x00A0, 0x01, 0x02)
IO(Decode16, 0x00A4, 0x00A4, 0x01, 0x02)
IO(Decode16, 0x00A8, 0x00A8, 0x01, 0x02)
IO(Decode16, 0x00AC, 0x00AC, 0x01, 0x02)
IO(Decode16, 0x00B0, 0x00B0, 0x01, 0x02)
IO(Decode16, 0x00B4, 0x00B4, 0x01, 0x02)
IO(Decode16, 0x00B8, 0x00B8, 0x01, 0x02)
IO(Decode16, 0x00BC, 0x00BC, 0x01, 0x02)
IO(Decode16, 0x04D0, 0x04D0, 0x01, 0x02)
IRQNoFlags() {2}
})
}
Device(MATH)
{
Name(_HID, EISAID("PNP0C04"))
Name(_CRS, ResourceTemplate()
{
IO(Decode16, 0x00F0, 0x00F0, 0x01, 0x01)
IRQNoFlags() {13}
})
}
Device(LDRC)
{
Name(_HID, EISAID("PNP0C02"))
Name(_UID, 0x02)
Name(_CRS, ResourceTemplate()
{
IO(Decode16, 0x002E, 0x002E, 0x01, 0x02)
IO(Decode16, 0x004E, 0x004E, 0x01, 0x02)
IO(Decode16, 0x0061, 0x0061, 0x01, 0x01)
IO(Decode16, 0x0063, 0x0063, 0x01, 0x01)
IO(Decode16, 0x0065, 0x0065, 0x01, 0x01)
IO(Decode16, 0x0067, 0x0067, 0x01, 0x01)
IO(Decode16, 0x0070, 0x0070, 0x01, 0x01)
IO(Decode16, 0x0080, 0x0080, 0x01, 0x01)
IO(Decode16, 0x0092, 0x0092, 0x01, 0x01)
IO(Decode16, 0x00B2, 0x00B2, 0x01, 0x02)
IO(Decode16, 0x0680, 0x0680, 0x01, 0x20)
IO(Decode16, 0x1000, 0x1000, 0x01, 0x10)
IO(Decode16, 0x1010, 0x1010, 0x01, 0x04)
IO(Decode16, 0xFFFF, 0xFFFF, 0x01, 0x01)
IO(Decode16, 0x0400, 0x0400, 0x01, 0x54)
IO(Decode16, 0x0458, 0x0458, 0x01, 0x28)
IO(Decode16, 0x0500, 0x0500, 0x01, 0x80)
IO(Decode16, 0x164E, 0x164E, 0x01, 0x02)
})
}
Device(RTC)
{
Name(_HID, EISAID("PNP0B00"))
Name(_CRS, ResourceTemplate()
{
IO(Decode16, 0x0070, 0x0070, 0x01, 0x08)
IRQNoFlags() {8}
})
}
Device(TIMR)
{
Name(_HID, EISAID("PNP0100"))
Name(_CRS, ResourceTemplate()
{
IO(Decode16, 0x0040, 0x0040, 0x01, 0x04)
IO(Decode16, 0x0050, 0x0050, 0x10, 0x04)
IRQNoFlags() {0}
})
}
Device(CWDT)
{
Name(_HID, 0x0D3FD425)
Name(_CID, EISAID("PNP0C02"))
Name(BUF0, ResourceTemplate()
{
IO(Decode16, 0x0454, 0x0454, 0x04, 0x04)
})
Method(_STA, 0, Serialized)
{
Return(0x0F)
}
Method(_CRS, 0, Serialized)
{
Return(BUF0)
}
}
OperationRegion(PKBS, SystemIO, 0x60, 0x05)
Field(PKBS, ByteAcc, Lock, Preserve)
{
PKBD, 8,
, 8,
, 8,
, 8,
PKBC, 8,
}
Device(PS2K)
{
Name(_HID, EISAID("PNP0303"))
Method(_STA, 0, NotSerialized)
{
If(And(LEqual(PKBD, 0xFF), LEqual(PKBC, 0xFF)))
{
Return(Zero)
}
Return(0x0F)
}
Name(_CRS, ResourceTemplate()
{
IO(Decode16, 0x0060, 0x0060, 0x01, 0x01)
IO(Decode16, 0x0064, 0x0064, 0x01, 0x01)
IRQ(Edge, ActiveHigh, Exclusive) {1}
})
Name(_PRS, ResourceTemplate()
{
StartDependentFn(0, 0)
{
FixedIO(0x0060, 0x01)
FixedIO(0x0064, 0x01)
IRQNoFlags() {1}
}
EndDependentFn()
})
}
Device(PS2M)
{
Name(_HID, 0x471E2E4F)
Name(_CID, Package(3) {0x001E2E4F, 0x02002E4F, EISAID("PNP0F13")})
Method(_STA, 0, NotSerialized)
{
If(And(LEqual(PKBD, 0xFF), LEqual(PKBC, 0xFF)))
{
Return(Zero)
}
Return(0x0F)
}
Name(_CRS, ResourceTemplate()
{
IRQ(Edge, ActiveHigh, Exclusive) {12}
})
Name(_PRS, ResourceTemplate()
{
StartDependentFn(0, 0)
{
IRQNoFlags() {12}
}
EndDependentFn()
})
}
}
}
Device(WMID)
{
Method(CSTA, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
Store(One, IAOR)
Store(0xC1, SSMP)
If(LEqual(IAOR, One))
{
Store(0x1C, Index(Local0, Zero))
}
Else
{
Store(IAOR, Index(Local0, Zero))
Store(And(CDAT, 0xFF), Index(DerefOf(Index(Local0, 0x02)), Zero))
}
Return(Local0)
}
Method(CACT, 1, NotSerialized)
{
Store(Package(2) {Zero, Zero}, Local0)
Store(0x02, IAOR)
Store(Arg0, CDAT)
Store(0xC1, SSMP)
If(LEqual(IAOR, 0x02))
{
Store(0x1C, Index(Local0, Zero))
}
Else
{
Store(IAOR, Index(Local0, Zero))
}
Store(Zero, CDAT)
Return(Local0)
}
Method(CDAC, 1, NotSerialized)
{
Store(Package(2) {Zero, Zero}, Local0)
Store(0x03, IAOR)
Store(Arg0, CDAT)
Store(0xC1, SSMP)
If(LEqual(IAOR, 0x03))
{
Store(0x1C, Index(Local0, Zero))
}
Else
{
Store(IAOR, Index(Local0, Zero))
}
Store(Zero, CDAT)
Return(Local0)
}
Method(HDWC, 2, NotSerialized)
{
CreateDWordField(Arg1, 0x04, WMI7)
CreateDWordField(Arg1, 0x08, WMI8)
CreateDWordField(Arg1, 0x0C, WMI9)
If(LEqual(Arg0, One))
{
Store(Zero, Local0)
}
If(LEqual(Arg0, 0x02))
{
Store(0x04, Local0)
}
If(LEqual(Arg0, 0x03))
{
Store(0x80, Local0)
}
If(LEqual(Arg0, 0x04))
{
Store(0x0400, Local0)
}
If(LEqual(Arg0, 0x05))
{
Store(0x1000, Local0)
}
Store(Buffer(Add(0x08, Local0)){}, Local1)
CreateDWordField(Local1, Zero, WMIA)
CreateDWordField(Local1, 0x04, WMIB)
Store(0x4C494146, WMIA)
Store(0x02, WMIB)
Store(0x03, WMIB)
If(LEqual(WMI7, One))
{
Store(0x04, WMIB)
If(LEqual(WMI8, 0x07))
{
If(WMI9)
{
Store(DerefOf(Index(Arg1, 0x10)), Local3)
Store(GTBI(Local3), Local2)
Store(Zero, WMIB)
}
Else
{
Store(0x05, WMIB)
}
}
If(LEqual(WMI8, 0x08))
{
Store(BBHT(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x09))
{
Store(WKHC(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x0A))
{
Store(WKHF(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x0B))
{
Store(BEBA(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x0C))
{
Store(WKLB(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x0D))
{
Store(FRPT(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x0F))
{
Store(WMSA(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x10))
{
Store(GHPI(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x14))
{
Store(WPTG(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x1B))
{
Store(GWDI(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x1D))
{
Store(GDLC(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x1E))
{
Store(GBUS(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x1F))
{
Store(WMBG(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x26))
{
Store(GROC(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x28))
{
CreateDWordField(Arg1, 0x10, DAIN)
Store(GTDC(DAIN), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x29))
{
Store(GFCC(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x2A))
{
Store(GPES(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x2B))
{
Store(GBCO(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x2C))
{
Store(GTCS(), Local2)
Store(Zero, WMIB)
}
}
If(LEqual(WMI7, 0x02))
{
Store(0x04, WMIB)
If(LAnd(LGreater(WMI8, Zero), LLessEqual(WMI8, 0x32)))
{
If(LLess(WMI9, DerefOf(Index(WMI4, Subtract(WMI8, One)))))
{
Store(0x05, WMIB)
}
Else
{
CreateDWordField(Arg1, 0x10, WMIL)
If(LEqual(WMI8, 0x09))
{
Store(WMIN(WMIL), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x0A))
{
Store(WMIO(WMIL), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x10))
{
Store(WWAR(Arg1), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x14))
{
Store(WPTS(WMIL), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x1B))
{
Store(SWDS(WMIL), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x1D))
{
Store(SDLC(WMIL), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x1E))
{
Store(SBUS(WMIL), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x1F))
{
Store(Package(3) {Zero, Zero, Zero}, Local2)
Store(WMSG(WMIL), Index(Local2, Zero))
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x28))
{
Store(STDC(Arg1), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x29))
{
Store(SFCC(WMIL), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x2A))
{
Store(SPES(WMIL), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x2B))
{
Store(Package(3) {Zero, Zero, Zero}, Local2)
Store(SBCO(WMIL), Index(Local2, Zero))
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x2C))
{
Store(STCS(WMIL), Local2)
Store(Zero, WMIB)
}
}
}
}
If(LEqual(WMI7, 0x00020002))
{
Store(0x04, WMIB)
If(LAnd(LGreater(WMI8, Zero), LLessEqual(WMI8, 0x03)))
{
If(LLess(WMI9, DerefOf(Index(WMI5, Subtract(WMI8, One)))))
{
Store(0x05, WMIB)
}
Else
{
CreateDWordField(Arg1, 0x10, WMCT)
If(LEqual(WMI8, One))
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local2)
Store(CSTA(), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x02))
{
Store(Package(3) {Zero, Zero, Zero}, Local2)
Store(IAOR, Index(Local2, Zero))
Store(CACT(WMCT), Local2)
Store(Zero, WMIB)
}
If(LEqual(WMI8, 0x03))
{
Store(Package(3) {Zero, Zero, Zero}, Local2)
Store(CDAC(WMCT), Local2)
Store(Zero, WMIB)
}
}
}
}
If(LEqual(WMIB, Zero))
{
Store(DerefOf(Index(Local2, Zero)), WMIB)
If(LEqual(WMIB, Zero))
{
If(LLessEqual(DerefOf(Index(Local2, One)), Local0))
{
Store(Zero, Local0)
While(LLess(Local0, DerefOf(Index(Local2, One))))
{
Store(DerefOf(Index(DerefOf(Index(Local2, 0x02)), Local0)), Index(Local1, Add(Local0, 0x08)))
Increment(Local0)
}
Store(0x53534150, WMIA)
}
Else
{
Store(0x05, WMIB)
}
}
}
Return(Local1)
}
Name(WMI4, Package(50)
{
0x04, 0x04, 0x04, Zero, 0x04, 0x04, Zero, Zero, 0x04, 0x04, 0x0C,
Zero, Zero, Zero, Zero, 0x08, Zero, Zero, 0x04, Zero, Zero, Zero,
Zero, Zero, Zero, Zero, Zero, Zero, 0x04, 0x04, 0x04, Zero, Zero,
0x04, Zero, 0x04, Zero, Zero, Zero, Zero, 0x04, 0x04, 0x04, 0x04,
Zero, Zero, Zero, Zero, Zero, Zero
})
Name(WMI5, Package(3) {Zero, 0x04, 0x04})
Name(_HID, "PNP0C14")
Name(_UID, Zero)
Name(WMIU, Zero)
Name(WMIV, Zero)
Name(ETYP, Buffer(One){})
Name(S001, Buffer(0x32){})
Name(BF2S, " ")
Name(EVNT, Package(3)
{
Package(5) {"BIOS Configuration Change", "BIOS Settings", 0x04, 0x05, 0x02},
Package(5)
{
"BIOS Configuration Security", "An attempt has been made to Access BIOS features unsuccessfully",
0x04, 0x0A, 0x06
},
Package(5) {"Unknown Event", "Unknown event type", Zero, Zero, Zero}
})
Name(WMIY, Zero)
Name(WMIZ, Zero)
Name(WEVT, Zero)
Name(WMBF, Buffer(0x80){})
CreateByteField(WMBF,Zero,WB00)
Name(BUFF, Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
})
CreateByteField(BUFF,Zero,OB0)
CreateByteField(BUFF,One,OB1)
CreateByteField(BUFF,0x02,OB2)
CreateByteField(BUFF,0x03,OB3)
CreateBitField(BUFF,Zero,OB00)
CreateBitField(BUFF,One,OB01)
CreateBitField(BUFF,0x02,OB02)
CreateBitField(BUFF,0x03,OB03)
CreateBitField(BUFF,0x04,OB04)
CreateBitField(BUFF,0x05,OB05)
CreateBitField(BUFF,0x06,OB06)
CreateBitField(BUFF,0x07,OB07)
CreateBitField(BUFF,0x08,OB10)
CreateBitField(BUFF,0x09,OB11)
CreateBitField(BUFF,0x0A,OB12)
CreateBitField(BUFF,0x0B,OB13)
CreateBitField(BUFF,0x0C,OB14)
CreateBitField(BUFF,0x10,OB20)
CreateBitField(BUFF,0x11,OB21)
CreateBitField(BUFF,0x12,OB22)
CreateBitField(BUFF,0x13,OB23)
CreateBitField(BUFF,0x18,OB30)
CreateBitField(BUFF,0x19,OB31)
CreateBitField(BUFF,0x1A,OB32)
CreateBitField(BUFF,0x1B,OB33)
CreateBitField(BUFF,0x1C,OB34)
CreateBitField(BUFF,0x1D,OB35)
CreateBitField(BUFF,0x1E,OB36)
CreateBitField(BUFF,0x1F,OB37)
Name(_WDG, Buffer(0x50)
{
0x34, 0xF0, 0xB7, 0x5F, 0x63, 0x2C, 0xE9, 0x45,
0xBE, 0x91, 0x3D, 0x44, 0xE2, 0xC7, 0x07, 0xE4,
0x41, 0x44, 0x01, 0x02, 0x79, 0x42, 0xF2, 0x95,
0x7B, 0x4D, 0x34, 0x43, 0x93, 0x87, 0xAC, 0xCD,
0xC6, 0x7E, 0xF6, 0x1C, 0x80, 0x00, 0x01, 0x08,
0x21, 0x12, 0x90, 0x05, 0x66, 0xD5, 0xD1, 0x11,
0xB2, 0xF0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0x10,
0x41, 0x45, 0x01, 0x00, 0xD4, 0x2B, 0x99, 0xD0,
0x7C, 0xA4, 0xFE, 0x4E, 0xB0, 0x72, 0x32, 0x4A,
0xEC, 0x92, 0x29, 0x6C, 0x42, 0x43, 0x01, 0x00
})
Method(WMAD, 3, Serialized)
{
Store(HDWC(Arg1, Arg2), Local0)
Return(Local0)
}
Method(GTBI, 1, NotSerialized)
{
Store("HP WMI Command 0x7 (BIOS Read)", Debug)
If(Arg0)
{
Store(Package(2) {0x06, Zero}, Local0)
Sleep(0x96)
Return(Local0)
}
If(^^PCI0.LPCB.EC.BATP)
{
Store(Package(3)
{
Zero,
0x80,
Buffer(0x80){}
}, Local0)
Store(^^PCI0.LPCB.EC.BDC, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), One))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), Zero))
Store(^^PCI0.LPCB.EC.BFC, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x03))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x02))
Store(^^PCI0.LPCB.EC.BFC, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x05))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x04))
Store(^^PCI0.LPCB.EC.BTT, Local1)
Subtract(Local1, 0x0AAA, Local1)
Divide(Local1, 0x0A, Local2, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x0B))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x0A))
Store(^^PCI0.LPCB.EC.BPV, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x0D))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x0C))
Store(^^PCI0.LPCB.EC.BPR, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x0F))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x0E))
Store(^^PCI0.LPCB.EC.BDV, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x11))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x10))
Store(^^PCI0.LPCB.EC.BST, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x13))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x12))
Store(^^PCI0.LPCB.EC.BC1, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x15))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x14))
Store(^^PCI0.LPCB.EC.BC2, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x17))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x16))
Store(^^PCI0.LPCB.EC.BC3, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x19))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x18))
Store(^^PCI0.LPCB.EC.BC4, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x1B))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x1A))
Store(^^BAT0.ITSN(ToBCD(^^PCI0.LPCB.EC.BSN), 0x05), Local1)
Concatenate(Local1, " ", Local4)
Store(^^PCI0.LPCB.EC.BMD, Local1)
And(Local1, 0xFF, Local2)
And(Local1, 0xFF00, Local3)
ShiftLeft(Local2, 0x08, Local2)
ShiftRight(Local3, 0x08, Local3)
Or(Local2, Local3, Local1)
And(Local1, 0x01E0, Local2)
ShiftRight(Local2, 0x05, Local2)
Store(^^BAT0.ITSN(ToBCD(Local2), 0x02), Local2)
Concatenate(Local4, Local2, Local3)
Concatenate(Local3, "/", Local4)
And(Local1, 0x1F, Local2)
Store(^^BAT0.ITSN(ToBCD(Local2), 0x02), Local2)
Concatenate(Local4, Local2, Local3)
Concatenate(Local3, "/", Local4)
And(Local1, 0xFE00, Local2)
ShiftRight(Local2, 0x09, Local2)
Add(Local2, 0x07BC, Local2)
Store(^^BAT0.ITSN(ToBCD(Local2), 0x04), Local2)
Concatenate(Local4, Local2, Local3)
Name(SNUM, Buffer(0x10){})
Store(Local3, SNUM)
Store(SNUM, Local3)
Store(0x1C, Local2)
Store(Zero, Local4)
Store(0x10, Local1)
While(Local1)
{
Store(DerefOf(Index(Local3, Local4)), Local5)
^^BAT0.PBFE(DerefOf(Index(Local0, 0x02)), Local2, Local5)
Decrement(Local1)
Increment(Local2)
Increment(Local4)
}
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Local2))
Store(Buffer(0x10)
{
0x48, 0x65, 0x77, 0x6C, 0x65, 0x74, 0x74, 0x2D,
0x50, 0x61, 0x63, 0x6B, 0x61, 0x72, 0x64, 0x00
}, Local3)
Store(^^PCI0.LPCB.EC.BTN, Local3)
Store(0x2C, Local2)
Store(Zero, Local4)
Store(0x08, Local1)
While(Local1)
{
Store(DerefOf(Index(Local3, Local4)), Local5)
^^BAT0.PBFE(DerefOf(Index(Local0, 0x02)), Local2, Local5)
Decrement(Local1)
Increment(Local2)
Increment(Local4)
}
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Local2))
Store(^^PCI0.LPCB.EC.CTL, Local3)
Store(0x3E, Local2)
Store(Zero, Local4)
Store(0x0F, Local1)
While(Local1)
{
Store(DerefOf(Index(Local3, Local4)), Local5)
Store(Local5, Index(DerefOf(Index(Local0, 0x02)), Local2))
Decrement(Local1)
Increment(Local2)
Increment(Local4)
}
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Local2))
Store(^^PCI0.LPCB.EC.BDNB, Local3)
Store(0x4F, Local2)
Store(Zero, Local4)
Store(0x07, Local1)
While(Local1)
{
Store(DerefOf(Index(Local3, Local4)), Local5)
Store(Local5, Index(DerefOf(Index(Local0, 0x02)), Local2))
Decrement(Local1)
Increment(Local2)
Increment(Local4)
}
Store(Buffer(0x05)
{
0x4C, 0x49, 0x4F, 0x4E, 0x00
}, Local3)
Store(0x56, Local2)
Store(Zero, Local4)
Store(0x04, Local1)
While(Local1)
{
Store(DerefOf(Index(Local3, Local4)), Local5)
Store(Local5, Index(DerefOf(Index(Local0, 0x02)), Local2))
Decrement(Local1)
Increment(Local2)
Increment(Local4)
}
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x5A))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x5B))
Store(^^PCI0.LPCB.EC.BMD, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x5D))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x5C))
Store(^^PCI0.LPCB.EC.CHGC, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x5F))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x5E))
Store(^^PCI0.LPCB.EC.CHGV, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x61))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x60))
Store(^^PCI0.LPCB.EC.AVGC, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x63))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x62))
Store(^^PCI0.LPCB.EC.RTTE, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x65))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x64))
Store(^^PCI0.LPCB.EC.ATTE, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x67))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x66))
Store(^^PCI0.LPCB.EC.ATTF, Local1)
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02)), 0x69))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x68))
Store(One, Index(DerefOf(Index(Local0, 0x02)), 0x6A))
}
Else
{
Store(Package(2) {0x06, Zero}, Local0)
Sleep(0x96)
}
Return(Local0)
}
Method(BBHT, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x80,
Buffer(0x80){}
}, Local0)
CBHB(Zero, 0x0131)
CBHB(0x02, 0x01AE)
CBHB(0x04, 0x01B6)
CBHB(0x06, 0x01B7)
CBHB(0x08, 0x0265)
CBHB(0x0A, 0x0267)
CBHB(0x0C, 0x0268)
CBHB(0x0E, 0x026A)
CBHB(0x10, 0x026B)
CBHB(0x12, 0x026C)
CBHB(0x14, 0xFFFF)
CBHB(0x16, 0x21A9)
CBHB(0x18, Zero)
Store(BFHT, Index(Local0, 0x02))
Return(Local0)
}
Name(BFHT, Buffer(0x80){})
Method(CBHB, 2, NotSerialized)
{
CreateWordField(BFHT, Arg0, PIO0)
Store(Arg1, PIO0)
}
Method(WKHC, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
If(^^PCI0.LPCB.EC.ECOK)
{
Store(^^PCI0.LPCB.EC.QLB, Local1)
If(Local1)
{
Store(0x6E, Index(DerefOf(Index(Local0, 0x02)), Zero))
}
Else
{
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Zero))
}
}
Else
{
Store(Package(2) {0x0D, Zero}, Local0)
}
Return(Local0)
}
Method(WMIN, 1, NotSerialized)
{
If(^^PCI0.LPCB.EC.ECOK)
{
If(LEqual(Arg0, 0x6E))
{
Store(One, ^^PCI0.LPCB.EC.QLB)
Return(Package(2) {Zero, Zero})
}
If(LEqual(Arg0, Zero))
{
Store(Zero, ^^PCI0.LPCB.EC.QLB)
Return(Package(2) {Zero, Zero})
}
Return(Package(2) {0x06, Zero})
}
Else
{
Return(Package(2) {0x0D, Zero})
}
}
Method(WKHF, 0, NotSerialized)
{
If(^^PCI0.LPCB.EC.ECOK)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
Store(^^PCI0.LPCB.EC.QKL, Index(DerefOf(Index(Local0, 0x02)), Zero))
Store(^^PCI0.LPCB.EC.QKH, Index(DerefOf(Index(Local0, 0x02)), One))
Store(^^PCI0.LPCB.EC.QKH, Local1)
Store(^^PCI0.LPCB.EC.QKL, Local2)
If(LAnd(LEqual(Local2, 0xB7), LEqual(Local1, One)))
{
If(LEqual(^^PCI0.LPCB.EC.ADP, One))
{
Store(^^PCI0.LPCB.EC.LCBA, Index(DerefOf(Index(Local0, 0x02)), 0x02))
}
Else
{
Store(^^PCI0.LPCB.EC.LCBD, Index(DerefOf(Index(Local0, 0x02)), 0x02))
}
Store(0x0A, Index(DerefOf(Index(Local0, 0x02)), 0x03))
^^PCI0.LPCB.EC.STBL()
}
If(LAnd(LEqual(Local2, 0xB6), LEqual(Local1, One)))
{
If(LEqual(^^PCI0.LPCB.EC.ADP, One))
{
Store(^^PCI0.LPCB.EC.LCBA, Index(DerefOf(Index(Local0, 0x02)), 0x02))
}
Else
{
Store(^^PCI0.LPCB.EC.LCBD, Index(DerefOf(Index(Local0, 0x02)), 0x02))
}
Store(0x0A, Index(DerefOf(Index(Local0, 0x02)), 0x03))
^^PCI0.LPCB.EC.STBL()
}
If(LAnd(LEqual(Local2, 0xAE), LEqual(Local1, One)))
{
Store(Zero, Local1)
Store(Package(8){}, Local2)
Store(^^PCI0.GFX0.CADL, Index(Local2, Zero))
Store(^^PCI0.GFX0.CAL2, Index(Local2, One))
Store(^^PCI0.GFX0.CAL3, Index(Local2, 0x02))
Store(^^PCI0.GFX0.CAL4, Index(Local2, 0x03))
Store(^^PCI0.GFX0.CAL5, Index(Local2, 0x04))
Store(^^PCI0.GFX0.CAL6, Index(Local2, 0x05))
Store(^^PCI0.GFX0.CAL7, Index(Local2, 0x06))
Store(^^PCI0.GFX0.CAL8, Index(Local2, 0x07))
Store(Zero, Local3)
Store(DerefOf(Index(Local2, Local3)), Local4)
While(LAnd(LLess(Local3, 0x08), LNotEqual(Local4, Zero)))
{
And(ShiftRight(Local4, 0x08), 0x0F, Local4)
If(LEqual(Local4, 0x04))
{
Or(Local1, One, Local1)
}
Else
{
If(LEqual(Local4, One))
{
Or(Local1, 0x02, Local1)
}
Else
{
If(LEqual(Local4, 0x02))
{
Or(Local1, 0x04, Local1)
}
Else
{
If(LEqual(Local4, 0x03))
{
Or(Local1, 0x10, Local1)
}
}
}
}
Increment(Local3)
Store(DerefOf(Index(Local2, Local3)), Local4)
}
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), 0x03))
Store(Zero, Local1)
Store(Package(8){}, Local2)
Store(^^PCI0.GFX0.NADL, Index(Local2, Zero))
Store(^^PCI0.GFX0.NDL2, Index(Local2, One))
Store(^^PCI0.GFX0.NDL3, Index(Local2, 0x02))
Store(^^PCI0.GFX0.NDL4, Index(Local2, 0x03))
Store(^^PCI0.GFX0.NDL5, Index(Local2, 0x04))
Store(^^PCI0.GFX0.NDL6, Index(Local2, 0x05))
Store(^^PCI0.GFX0.NDL7, Index(Local2, 0x06))
Store(^^PCI0.GFX0.NDL8, Index(Local2, 0x07))
Store(Zero, Local3)
Store(DerefOf(Index(Local2, Local3)), Local4)
While(LAnd(LLess(Local3, 0x08), LNotEqual(Local4, Zero)))
{
And(ShiftRight(Local4, 0x08), 0x0F, Local4)
If(LEqual(Local4, 0x04))
{
Or(Local1, One, Local1)
}
Else
{
If(LEqual(Local4, One))
{
Or(Local1, 0x02, Local1)
}
Else
{
If(LEqual(Local4, 0x02))
{
Or(Local1, 0x04, Local1)
}
Else
{
If(LEqual(Local4, 0x03))
{
Or(Local1, 0x10, Local1)
}
}
}
}
Increment(Local3)
Store(DerefOf(Index(Local2, Local3)), Local4)
}
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), 0x02))
^^PCI0.GFX0.GHDS(One)
Sleep(0x01F4)
}
Store(Zero, ^^PCI0.LPCB.EC.QKH)
Store(Zero, ^^PCI0.LPCB.EC.QKL)
Store(0x8A, P80H)
Return(Local0)
}
Else
{
Store(Package(2) {0x0D, Zero}, Local0)
Return(Local0)
}
}
Method(WMIO, 1, NotSerialized)
{
If(^^PCI0.LPCB.EC.ECOK)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
Store(Arg0, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Zero))
Store(ShiftRight(Local1, 0x08), Index(DerefOf(Index(Local0, 0x02)), One))
If(LEqual(Arg0, 0x01AE))
{
Store(Zero, Local1)
Store(Package(8){}, Local2)
Store(^^PCI0.GFX0.CADL, Index(Local2, Zero))
Store(^^PCI0.GFX0.CAL2, Index(Local2, One))
Store(^^PCI0.GFX0.CAL3, Index(Local2, 0x02))
Store(^^PCI0.GFX0.CAL4, Index(Local2, 0x03))
Store(^^PCI0.GFX0.CAL5, Index(Local2, 0x04))
Store(^^PCI0.GFX0.CAL6, Index(Local2, 0x05))
Store(^^PCI0.GFX0.CAL7, Index(Local2, 0x06))
Store(^^PCI0.GFX0.CAL8, Index(Local2, 0x07))
Store(Zero, Local3)
Store(DerefOf(Index(Local2, Local3)), Local4)
While(LAnd(LLess(Local3, 0x08), LNotEqual(Local4, Zero)))
{
And(ShiftRight(Local4, 0x08), 0x0F, Local4)
If(LEqual(Local4, 0x04))
{
Or(Local1, One, Local1)
}
Else
{
If(LEqual(Local4, One))
{
Or(Local1, 0x02, Local1)
}
Else
{
If(LEqual(Local4, 0x02))
{
Or(Local1, 0x04, Local1)
}
Else
{
If(LEqual(Local4, 0x03))
{
Or(Local1, 0x10, Local1)
}
}
}
}
Increment(Local3)
Store(DerefOf(Index(Local2, Local3)), Local4)
}
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), 0x03))
Store(Zero, Local1)
Store(Package(8){}, Local2)
Store(^^PCI0.GFX0.NADL, Index(Local2, Zero))
Store(^^PCI0.GFX0.NDL2, Index(Local2, One))
Store(^^PCI0.GFX0.NDL3, Index(Local2, 0x02))
Store(^^PCI0.GFX0.NDL4, Index(Local2, 0x03))
Store(^^PCI0.GFX0.NDL5, Index(Local2, 0x04))
Store(^^PCI0.GFX0.NDL6, Index(Local2, 0x05))
Store(^^PCI0.GFX0.NDL7, Index(Local2, 0x06))
Store(^^PCI0.GFX0.NDL8, Index(Local2, 0x07))
Store(Zero, Local3)
Store(DerefOf(Index(Local2, Local3)), Local4)
While(LAnd(LLess(Local3, 0x08), LNotEqual(Local4, Zero)))
{
And(ShiftRight(Local4, 0x08), 0x0F, Local4)
If(LEqual(Local4, 0x04))
{
Or(Local1, One, Local1)
}
Else
{
If(LEqual(Local4, One))
{
Or(Local1, 0x02, Local1)
}
Else
{
If(LEqual(Local4, 0x02))
{
Or(Local1, 0x04, Local1)
}
Else
{
If(LEqual(Local4, 0x03))
{
Or(Local1, 0x10, Local1)
}
}
}
}
Increment(Local3)
Store(DerefOf(Index(Local2, Local3)), Local4)
}
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), 0x02))
^^PCI0.GFX0.GHDS(One)
Sleep(0x01F4)
}
If(LEqual(Arg0, 0x01B7))
{
If(LEqual(^^PCI0.LPCB.EC.ADP, One))
{
Store(^^PCI0.LPCB.EC.LCBA, Index(DerefOf(Index(Local0, 0x02)), 0x02))
}
Else
{
Store(^^PCI0.LPCB.EC.LCBD, Index(DerefOf(Index(Local0, 0x02)), 0x02))
}
Store(0x0A, Index(DerefOf(Index(Local0, 0x02)), 0x03))
^^PCI0.LPCB.EC.STBL()
}
If(LEqual(Arg0, 0x01B6))
{
If(LEqual(^^PCI0.LPCB.EC.ADP, One))
{
Store(^^PCI0.LPCB.EC.LCBA, Index(DerefOf(Index(Local0, 0x02)), 0x02))
}
Else
{
Store(^^PCI0.LPCB.EC.LCBD, Index(DerefOf(Index(Local0, 0x02)), 0x02))
}
Store(0x0A, Index(DerefOf(Index(Local0, 0x02)), 0x03))
^^PCI0.LPCB.EC.STBL()
}
}
Else
{
Store(Package(2) {0x0D, Zero}, Local0)
Return(Local0)
}
Return(Local0)
}
Method(BEBA, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
Return(Local0)
}
Method(WKLB, 0, NotSerialized)
{
Store(0x5C, P80H)
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
If(^^PCI0.LPCB.EC.ECOK)
{
Store(^^PCI0.LPCB.EC.QKH, Local1)
Store(^^PCI0.LPCB.EC.QKL, Local2)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), One))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), Zero))
If(LAnd(LEqual(Local2, 0xA9), LEqual(Local1, 0x21)))
{
Store(^^PCI0.LPCB.EC.TPS, Index(DerefOf(Index(Local0, 0x02)), 0x02))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x03))
}
Store(Zero, ^^PCI0.LPCB.EC.QKH)
Store(Zero, ^^PCI0.LPCB.EC.QKL)
}
Else
{
Store(Package(2) {0x0D, Zero}, Local0)
}
Store(0x7C, P80H)
Return(Local0)
}
Method(FRPT, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x80,
Buffer(0x80){}
}, Local0)
Store(Zero, OB0)
Store(One, OB00)
Store(One, OB01)
Store(Zero, OB02)
Store(Zero, OB03)
Store(One, OB04)
Store(One, OB05)
Store(Zero, OB06)
Store(One, OB07)
Store(OB0, Index(DerefOf(Index(Local0, 0x02)), Zero))
Store(0x19, Index(DerefOf(Index(Local0, 0x02)), One))
Store(One, Index(DerefOf(Index(Local0, 0x02)), 0x02))
Store(0x7D, Local2)
Store(0x03, Local1)
While(Local2)
{
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Local1))
Decrement(Local2)
Increment(Local1)
}
Return(Local0)
}
Method(WMSA, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
Store(^^PCI0.LPCB.EC.SAS, Index(DerefOf(Index(Local0, 0x02)), Zero))
Return(Local0)
}
Method(GHPI, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x80,
Buffer(0x80){}
}, Local0)
Store(0xC5, SSMP)
Store(SID0, Index(DerefOf(Index(Local0, 0x02)), Zero))
Store(SID1, Index(DerefOf(Index(Local0, 0x02)), One))
Store(SID2, Index(DerefOf(Index(Local0, 0x02)), 0x02))
Store(SID3, Index(DerefOf(Index(Local0, 0x02)), 0x03))
Store(SID4, Index(DerefOf(Index(Local0, 0x02)), 0x04))
Store(SID5, Index(DerefOf(Index(Local0, 0x02)), 0x05))
Store(SID6, Index(DerefOf(Index(Local0, 0x02)), 0x06))
Store(SID7, Index(DerefOf(Index(Local0, 0x02)), 0x07))
Return(Local0)
}
Method(WWAR, 1, NotSerialized)
{
Store("HP WMI Command 0x10 (BIOS Write)", Debug)
CreateByteField(Arg0,0x10,DA0)
CreateByteField(Arg0,0x11,DA1)
CreateByteField(Arg0,0x12,DA2)
CreateByteField(Arg0,0x13,DA3)
CreateByteField(Arg0,0x14,DA4)
CreateByteField(Arg0,0x15,DA5)
CreateByteField(Arg0,0x16,DA6)
CreateByteField(Arg0,0x17,DA7)
Store(DA0, SID0)
Store(DA1, SID1)
Store(DA2, SID2)
Store(DA3, SID3)
Store(DA4, SID4)
Store(DA5, SID5)
Store(DA6, SID6)
Store(DA7, SID7)
Store(0xC4, SSMP)
Return(Package(2) {Zero, Zero})
}
Method(WPTG, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
Store(WAPT, Index(DerefOf(Index(Local0, 0x02)), Zero))
Return(Local0)
}
Method(WPTS, 1, NotSerialized)
{
And(Arg0, 0xFF, Local0)
Store(Local0, WAPT)
Return(Package(2) {Zero, Zero})
}
Method(GWDI, 0, NotSerialized)
{
If(LNot(^^PCI0.LPCB.EC.WLAS))
{
Store(One, ^^PCI0.LPCB.EC.WLAS)
}
Store(Package(3)
{
Zero,
0x80,
Buffer(0x80){}
}, Local0)
Store(One, Index(DerefOf(Index(Local0, 0x02)), Zero))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), One))
Store(Zero, Local2)
If(LEqual(WINC, 0x31))
{
Or(Local2, One, Local2)
}
If(LEqual(GCAC, 0x31))
{
Or(Local2, 0x02, Local2)
}
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x02))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x03))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x04))
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x05))
Store(0x03, Index(DerefOf(Index(Local0, 0x02)), 0x06))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x07))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x08))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x09))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x0A))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x0B))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x0C))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x0D))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x0E))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x0F))
Store(Zero, Local2)
If(^^PCI0.LPCB.EC.WLS)
{
Add(Local2, One, Local2)
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x07))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Multiply(Local2, 0x10)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), One)))
And(WLVD, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x02)))
ShiftRight(WLVD, 0x08, Local1)
And(Local1, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x03)))
And(WLDD, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x04)))
ShiftRight(WLDD, 0x08, Local1)
And(Local1, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x05)))
And(WLSV, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x06)))
ShiftRight(WLSV, 0x08, Local1)
And(Local1, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x07)))
And(WLSS, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x08)))
ShiftRight(WLSS, 0x08, Local1)
And(Local1, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x09)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0A)))
Store(Zero, Local1)
If(^^PCI0.LPCB.EC.WLD)
{
Or(Local1, One, Local1)
}
If(WLWI)
{
Or(Local1, 0x02, Local1)
}
If(^^PCI0.LPCB.EC.WLSL)
{
Or(Local1, 0x04, Local1)
}
If(BTNS)
{
Or(Local1, 0x08, Local1)
}
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0B)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0C)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0D)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0E)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0F)))
}
If(^^PCI0.LPCB.EC.WWS)
{
Add(Local2, One, Local2)
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x07))
Store(0x02, Index(DerefOf(Index(Local0, 0x02)), Multiply(Local2, 0x10)))
Store(One, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), One)))
And(WWVD, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x02)))
ShiftRight(WWVD, 0x08, Local1)
And(Local1, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x03)))
And(WWDD, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x04)))
ShiftRight(WWDD, 0x08, Local1)
And(Local1, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x05)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x06)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x07)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x08)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x09)))
Store(One, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0A)))
Store(Zero, Local1)
If(^^PCI0.LPCB.EC.OWAN)
{
Or(Local1, One, Local1)
}
Else
{
If(WAPT)
{
If(^^PCI0.LPCB.EC.BATP)
{
If(^^PCI0.LPCB.EC.WWD)
{
Or(Local1, One, Local1)
}
}
Else
{
And(Local1, 0xFE, Local1)
}
}
Else
{
If(^^PCI0.LPCB.EC.WWD)
{
Or(Local1, One, Local1)
}
}
}
If(WWWI)
{
Or(Local1, 0x02, Local1)
}
If(^^PCI0.LPCB.EC.WWSL)
{
Or(Local1, 0x04, Local1)
}
If(BTNS)
{
Or(Local1, 0x08, Local1)
}
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0B)))
Store(Zero, Local1)
If(LNot(^^PCI0.LPCB.EC.OWAN))
{
If(SIMD)
{
Or(Local1, One, Local1)
}
}
If(UNDA)
{
Or(Local1, 0x02, Local1)
}
If(UNDB)
{
Or(Local1, 0x04, Local1)
}
If(UNDC)
{
Or(Local1, 0x08, Local1)
}
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0C)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0D)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0E)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0F)))
}
If(^^PCI0.LPCB.EC.BTS)
{
Add(Local2, One, Local2)
Store(Local2, Index(DerefOf(Index(Local0, 0x02)), 0x07))
Store(One, Index(DerefOf(Index(Local0, 0x02)), Multiply(Local2, 0x10)))
Store(One, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), One)))
And(BTVD, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x02)))
ShiftRight(BTVD, 0x08, Local1)
And(Local1, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x03)))
And(BTDD, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x04)))
ShiftRight(BTDD, 0x08, Local1)
And(Local1, 0xFF, Local1)
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x05)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x06)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x07)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x08)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x09)))
If(WBCB)
{
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0A)))
}
Else
{
Store(0x02, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0A)))
}
Store(Zero, Local1)
If(WBCB)
{
If(^^PCI0.LPCB.EC.WLD)
{
Or(Local1, One, Local1)
}
If(WLWI)
{
Or(Local1, 0x02, Local1)
}
If(^^PCI0.LPCB.EC.WLSL)
{
Or(Local1, 0x04, Local1)
}
}
Else
{
If(^^PCI0.LPCB.EC.BTD)
{
Or(Local1, One, Local1)
}
If(BTWI)
{
Or(Local1, 0x02, Local1)
}
If(^^PCI0.LPCB.EC.BTSL)
{
Or(Local1, 0x04, Local1)
}
}
If(BTNS)
{
Or(Local1, 0x08, Local1)
}
Store(Local1, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0B)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0C)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0D)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0E)))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Add(Multiply(Local2, 0x10), 0x0F)))
}
Return(Local0)
}
Method(SWDS, 1, NotSerialized)
{
If(Or(Or(^^PCI0.LPCB.EC.WLS, ^^PCI0.LPCB.EC.BTS), ^^PCI0.LPCB.EC.WWS))
{
Store(Arg0, Local3)
And(Local3, 0xFF, Local0)
ShiftRight(Local3, 0x08, Local1)
And(Local1, 0xFF, Local1)
ShiftRight(Local3, 0x10, Local2)
And(Local2, 0xFF, Local2)
ShiftRight(Local3, 0x18, Local3)
And(Local3, 0xFF, Local3)
If(LEqual(Local3, One))
{
If(LEqual(Local2, Zero))
{
If(WBCB)
{
SWLS(One)
SBTS(One)
}
Else
{
SWLS(One)
}
}
If(LEqual(Local2, One))
{
SWWS(One)
}
If(LEqual(Local2, 0x02))
{
SBTS(One)
}
If(LEqual(Local2, 0xFE))
{
SWLS(One)
SBTS(One)
SWWS(One)
}
If(LEqual(Local2, 0xFF))
{
Store(One, BTNS)
SWLS(One)
SBTS(One)
SWWS(One)
}
}
Else
{
If(LEqual(Local2, Zero))
{
If(WBCB)
{
SWLS(Zero)
SBTS(Zero)
}
Else
{
SWLS(Zero)
}
}
If(LEqual(Local2, One))
{
SWWS(Zero)
}
If(LEqual(Local2, 0x02))
{
SBTS(Zero)
}
If(LEqual(Local2, 0xFE))
{
SWLS(Zero)
SBTS(Zero)
SWWS(Zero)
}
If(LEqual(Local2, 0xFF))
{
Store(Zero, BTNS)
SWLS(Zero)
SBTS(Zero)
SWWS(Zero)
}
}
}
Else
{
Return(Package(2) {0x0D, Zero})
}
Sleep(0xC8)
Store(0x05, WMIU)
Store(Zero, WMIV)
Notify(WMID, 0x80)
Store(0x85, P80H)
Return(Package(2) {Zero, Zero})
}
Method(SBTS, 1, NotSerialized)
{
Store(Arg0, Local0)
And(Local0, One, Local0)
If(LAnd(^^PCI0.LPCB.EC.BTS, ^^PCI0.LPCB.EC.BTSL))
{
Store(Local0, BTWI)
Store(Local0, ^^PCI0.LPCB.EC.BTD)
Not(Local0, Local1)
Store(Local1, BTPR)
Store(Local0, BTBK)
}
}
Method(SWLS, 1, NotSerialized)
{
Store(Arg0, Local0)
And(Local0, One, Local0)
If(LAnd(^^PCI0.LPCB.EC.WLS, ^^PCI0.LPCB.EC.WLSL))
{
Store(Local0, WLWI)
Store(Local0, ^^PCI0.LPCB.EC.WLD)
Store(Local0, WLBK)
}
}
Method(SWWS, 1, NotSerialized)
{
Store(Arg0, Local0)
And(Local0, One, Local0)
If(LAnd(^^PCI0.LPCB.EC.WWS, ^^PCI0.LPCB.EC.WWSL))
{
Store(Local0, WWWI)
Store(Local0, ^^PCI0.LPCB.EC.WWD)
Store(Local0, WWBK)
}
}
Method(GDLC, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
Store(0x1D, HWCT)
Store(One, HWBC)
Store(0xC3, SSMP)
CreateField(DerefOf(Index(Local0, 0x02)),Zero,0x20,BUFS)
Store(Buffer(0x80){}, Local1)
Store(HWBF, Local1)
CreateDWordField(Local1, Zero, HWD1)
Store(HWD1, BUFS)
Return(Local0)
}
Method(SDLC, 1, NotSerialized)
{
Store(Buffer(0x80){}, Local0)
CreateDWordField(Local0, Zero, HWD1)
Store(Arg0, HWD1)
Store(Local0, HWBF)
Store(0x1D, HWCT)
Store(0x02, HWBC)
Store(0xC3, SSMP)
Return(Package(2) {Zero, Zero})
}
Method(GBUS, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04){}
}, Local2)
If(LAnd(HBUC, One))
{
Store(One, Local0)
}
Else
{
Store(Zero, Local0)
}
Store(HBUS, Local1)
Store(Local0, Index(DerefOf(Index(Local2, 0x02)), Zero))
Store(Local1, Index(DerefOf(Index(Local2, 0x02)), One))
Return(Local2)
}
Method(SBUS, 1, NotSerialized)
{
Store(Arg0, HBUC)
Return(Package(2) {Zero, Zero})
}
Method(WMBG, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
If(^^PCI0.LPCB.EC.BATP)
{
If(^^PCI0.LPCB.EC.STPC)
{
Store(0x03, Index(DerefOf(Index(Local0, 0x02)), Zero))
}
Else
{
If(^^PCI0.LPCB.EC.ADDC)
{
Store(0x02, Index(DerefOf(Index(Local0, 0x02)), Zero))
}
Else
{
If(And(^^PCI0.LPCB.EC.BST, 0x02))
{
Store(One, Index(DerefOf(Index(Local0, 0x02)), Zero))
}
Else
{
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Zero))
}
}
}
}
Else
{
Store(0xFF, Index(DerefOf(Index(Local0, 0x02)), Zero))
}
Store(0xFF, Index(DerefOf(Index(Local0, 0x02)), One))
Return(Local0)
}
Method(WMSG, 1, NotSerialized)
{
Store(Arg0, Local1)
And(Local1, 0xFF, Local0)
ShiftRight(Local1, 0x08, Local1)
And(Local1, 0xFF, Local1)
If(LEqual(Local0, Zero))
{
If(^^PCI0.LPCB.EC.BATP)
{
If(LEqual(Local1, Zero))
{
Store(Zero, ^^PCI0.LPCB.EC.ADDC)
Store(Zero, ^^PCI0.LPCB.EC.STPC)
Store(Zero, Local0)
Return(Local0)
}
If(LEqual(Local1, One))
{
Store(Zero, ^^PCI0.LPCB.EC.ADDC)
Store(Zero, ^^PCI0.LPCB.EC.STPC)
Store(Zero, Local0)
Return(Local0)
}
If(LEqual(Local1, 0x02))
{
Store(One, ^^PCI0.LPCB.EC.ADDC)
Store(Zero, ^^PCI0.LPCB.EC.STPC)
Store(Zero, Local0)
Return(Local0)
}
}
Else
{
Store(0xFF, Local0)
Return(Local0)
}
}
If(LEqual(Local0, One))
{
Store(0xFF, Local0)
Return(Local0)
}
If(LEqual(Local0, 0x63))
{
If(^^PCI0.LPCB.EC.BATP)
{
If(LEqual(Local1, Zero))
{
Store(Zero, ^^PCI0.LPCB.EC.ADDC)
Store(Zero, ^^PCI0.LPCB.EC.STPC)
Store(Zero, Local0)
Return(Local0)
}
If(LEqual(Local1, One))
{
Store(One, ^^PCI0.LPCB.EC.ADDC)
Store(Zero, ^^PCI0.LPCB.EC.STPC)
Store(Zero, Local0)
Return(Local0)
}
If(LEqual(Local1, 0x02))
{
Store(Zero, ^^PCI0.LPCB.EC.ADDC)
Store(One, ^^PCI0.LPCB.EC.STPC)
Store(Zero, Local0)
Return(Local0)
}
}
Else
{
Store(0xFF, Local0)
Return(Local0)
}
}
Return(Local0)
}
Method(GROC, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), Zero))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), One))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x02))
Store(Zero, Index(DerefOf(Index(Local0, 0x02)), 0x03))
Return(Local0)
}
Method(GTDC, 1, NotSerialized)
{
Store(Buffer(0x80){}, Local0)
CreateDWordField(Local0, Zero, HWD1)
Store(Arg0, HWD1)
Store(Local0, HWBF)
Store(0x28, HWCT)
Store(One, HWBC)
Store(0xC3, SSMP)
Store(Package(3)
{
Zero,
0x80,
Buffer(0x80){}
}, Local1)
CreateField(DerefOf(Index(Local1, 0x02)),Zero,0x0400,BUFS)
Store(Buffer(0x80){}, Local2)
Store(HWBF, Local2)
Store(Local2, BUFS)
Return(Local1)
}
Method(STDC, 1, NotSerialized)
{
Store(Buffer(0x80){}, Local0)
CreateField(Arg0,0x80,0x0400,BUFS)
Store(BUFS, Local0)
Store(Local0, HWBF)
Store(0x28, HWCT)
Store(0x02, HWBC)
Store(0xC3, SSMP)
Return(Package(2) {Zero, Zero})
}
Method(GFCC, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
Store(FACM, Index(DerefOf(Index(Local0, 0x02)), Zero))
Return(Local0)
}
Method(SFCC, 1, NotSerialized)
{
Store(0x29, HWCT)
Store(0x02, HWBC)
Store(Arg0, Index(WMBF, Zero))
Store(WMBF, HWBF)
Store(0xC3, SSMP)
Store(Arg0, FACM)
Return(Package(2) {Zero, Zero})
}
Method(GPES, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
Store(0x2A, HWCT)
Store(One, HWBC)
Store(0xC3, SSMP)
Store(HWBF, WMBF)
Store(WB00, Index(DerefOf(Index(Local0, 0x02)), Zero))
Return(Local0)
}
Method(SPES, 1, NotSerialized)
{
Store(0x2A, HWCT)
Store(0x02, HWBC)
Store(Arg0, Index(WMBF, Zero))
Store(WMBF, HWBF)
Store(0xC3, SSMP)
Return(Package(2) {Zero, Zero})
}
Method(GBCO, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
Store(Zero, Local1)
If(^^PCI0.LPCB.EC.BATP)
{
Store(^^PCI0.LPCB.EC.BATS, Index(DerefOf(Index(Local0, 0x02)), Zero))
}
Else
{
Store(0xFF, Index(DerefOf(Index(Local0, 0x02)), Zero))
}
Store(0xFF, Index(DerefOf(Index(Local0, 0x02)), One))
Return(Local0)
}
Method(SBCO, 1, NotSerialized)
{
Store(Arg0, Local1)
And(Local1, 0xFF, Local0)
ShiftRight(Local1, 0x08, Local1)
And(Local1, 0xFF, Local1)
If(LEqual(Local0, Zero))
{
If(LLessEqual(Local1, 0x05))
{
Store(Local1, ^^PCI0.LPCB.EC.BATC)
Sleep(0x64)
Return(^^PCI0.LPCB.EC.BATR)
}
Else
{
Return(0x03)
}
}
Else
{
Return(0x34)
}
}
Method(GTCS, 0, NotSerialized)
{
Store(Package(3)
{
Zero,
0x04,
Buffer(0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
If(^^PCI0.LPCB.EC.ECOK)
{
Store(^^PCI0.LPCB.EC.GSTA, Index(DerefOf(Index(Local0, 0x02)), Zero))
Store(^^PCI0.LPCB.EC.MMOS, Index(DerefOf(Index(Local0, 0x02)), One))
Store(^^PCI0.LPCB.EC.DMOS, Index(DerefOf(Index(Local0, 0x02)), 0x02))
STPS()
Return(Local0)
}
Else
{
Store(Package(2) {0x0D, Zero}, Local0)
Return(Local0)
}
}
Method(STCS, 1, NotSerialized)
{
If(^^PCI0.LPCB.EC.ECOK)
{
Store(Arg0, Local2)
And(Local2, 0xFF, Local0)
ShiftRight(Local2, 0x08, Local2)
And(Local2, 0xFF, Local1)
ShiftRight(Local2, 0x08, Local2)
And(Local2, 0xFF, Local2)
Store(Local1, ^^PCI0.LPCB.EC.MMOS)
Store(Local2, ^^PCI0.LPCB.EC.DMOS)
STPS()
Return(Package(2) {Zero, Zero})
}
Else
{
Store(Package(2) {0x0D, Zero}, Local0)
Return(Local0)
}
}
Method(STPS, 0, NotSerialized)
{
If(LEqual(^^PCI0.LPCB.EC.TURS, One))
{
Sleep(0x64)
If(LEqual(And(^^PCI0.LPCB.EC.GSTA, One), One))
{
If(LEqual(And(^^PCI0.LPCB.EC.GSTA, 0x02), 0x02))
{
If(LEqual(^^PCI0.LPCB.EC.MMOS, Zero))
{
^^PCI0.LPCB.EC.SPST(Zero)
}
Else
{
^^PCI0.LPCB.EC.SPST(One)
}
}
Else
{
If(LEqual(^^PCI0.LPCB.EC.DMOS, Zero))
{
^^PCI0.LPCB.EC.SPST(Zero)
}
Else
{
^^PCI0.LPCB.EC.SPST(One)
}
}
}
Else
{
If(LEqual(^^PCI0.LPCB.EC.DMOS, Zero))
{
^^PCI0.LPCB.EC.SPST(Zero)
}
Else
{
^^PCI0.LPCB.EC.SPST(One)
}
}
}
Else
{
^^PCI0.LPCB.EC.SPST(Zero)
}
}
Method(_WED, 1, NotSerialized)
{
If(LEqual(Arg0, 0xA0))
{
If(LEqual(DerefOf(Index(ETYP, Zero)), Zero))
{
Store(S001, BF2S)
Store(BF2S, Index(DerefOf(Index(EVNT, Zero)), One))
Return(DerefOf(Index(EVNT, Zero)))
}
If(LEqual(DerefOf(Index(ETYP, Zero)), One))
{
Return(DerefOf(Index(EVNT, One)))
}
Else
{
Return(DerefOf(Index(EVNT, 0x02)))
}
}
Else
{
Store(Buffer(0x08)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}, Local0)
CreateDWordField(Local0, Zero, EVID)
CreateDWordField(Local0, 0x04, EVDA)
Store(WMIU, EVID)
Store(WMIV, EVDA)
If(LNotEqual(WMIY, Zero))
{
Store(WMIY, WMIU)
Store(WMIZ, WMIV)
Store(WMIU, EVID)
Store(WMIV, EVDA)
Store(Zero, WMIY)
Store(Zero, WMIZ)
If(LEqual(WEVT, Zero))
{
Store(One, WEVT)
Notify(WMID, 0x80)
}
}
Else
{
Store(Zero, WMIU)
Store(Zero, WMIV)
}
Return(Local0)
}
}
Name(WQAE, Buffer(0x08A9)
{
0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,
0x99, 0x08, 0x00, 0x00, 0x8A, 0x3A, 0x00, 0x00,
0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,
0x98, 0x4B, 0x9C, 0x00, 0x01, 0x06, 0x18, 0x42,
0x10, 0x13, 0x10, 0x22, 0x21, 0x04, 0x12, 0x01,
0xA1, 0xC8, 0x2C, 0x0C, 0x86, 0x10, 0x38, 0x2E,
0x84, 0x1C, 0x40, 0x88, 0x59, 0x50, 0x08, 0x21,
0x10, 0xEA, 0x4F, 0x20, 0xBF, 0x02, 0x10, 0x3A,
0x14, 0x20, 0x53, 0x80, 0x41, 0x01, 0x4E, 0x11,
0x44, 0xD0, 0xAB, 0x00, 0x9B, 0x02, 0x4C, 0x0A,
0xB0, 0x28, 0x40, 0xBB, 0x00, 0xCB, 0x02, 0x74,
0x0B, 0x90, 0x0E, 0x4B, 0x44, 0x82, 0xA3, 0xC4,
0x80, 0xA3, 0x74, 0x62, 0x0B, 0x37, 0x6C, 0xF0,
0x42, 0x51, 0x34, 0x83, 0x28, 0x09, 0x2A, 0x17,
0xE0, 0x1B, 0x41, 0xE0, 0xE5, 0x0A, 0x90, 0x3C,
0x01, 0x69, 0x16, 0x60, 0x58, 0x80, 0x75, 0x01,
0xB2, 0x87, 0x40, 0xA5, 0x0E, 0x01, 0x25, 0x67,
0x08, 0xA8, 0x01, 0xB4, 0x3A, 0x01, 0xE1, 0x57,
0x3A, 0x25, 0x24, 0x41, 0x38, 0x63, 0x15, 0x8F,
0xAF, 0x59, 0x34, 0x3D, 0x27, 0x39, 0xC7, 0x90,
0xE3, 0x71, 0xA1, 0x07, 0xC1, 0x05, 0x78, 0x18,
0x06, 0x1D, 0xB2, 0x22, 0x6B, 0x80, 0xC1, 0x58,
0x18, 0x0B, 0x75, 0x31, 0x6A, 0xD4, 0x48, 0xD9,
0x80, 0x0C, 0x51, 0x12, 0x1C, 0x6A, 0xD4, 0x96,
0x28, 0xC0, 0xFC, 0x38, 0x34, 0xBB, 0xB6, 0xC7,
0x42, 0x20, 0x99, 0xB4, 0xA1, 0xA0, 0xA4, 0x40,
0x68, 0x6C, 0x67, 0xEA, 0x19, 0x45, 0x3C, 0x52,
0xC3, 0x24, 0xF0, 0x28, 0x22, 0x1B, 0x8D, 0x43,
0x63, 0x87, 0xE1, 0x61, 0x06, 0x3B, 0x88, 0xC3,
0x38, 0xE6, 0xC8, 0x09, 0x3C, 0xA1, 0x23, 0x3D,
0xF2, 0xC2, 0xE6, 0x29, 0xD4, 0x18, 0xCD, 0x41,
0x11, 0xB8, 0xD0, 0x18, 0x19, 0x10, 0xF2, 0x3C,
0x7E, 0x8D, 0xC4, 0x04, 0x76, 0x2F, 0xC0, 0x1A,
0xA6, 0x60, 0x1B, 0x9B, 0x98, 0xFE, 0xFF, 0x10,
0x47, 0x1E, 0xA3, 0xAD, 0xB9, 0x0B, 0x29, 0x4C,
0x8C, 0x28, 0xC1, 0xE2, 0x55, 0x3C, 0x0D, 0xA1,
0x3C, 0x29, 0x84, 0x8A, 0x54, 0x19, 0x8A, 0x86,
0x1E, 0xA5, 0x42, 0x01, 0xCE, 0xE6, 0x21, 0xDC,
0x1A, 0x41, 0x85, 0x10, 0x2B, 0x52, 0xAC, 0xF6,
0x07, 0x41, 0x42, 0x2E, 0x5B, 0xC7, 0x07, 0x47,
0x1A, 0x0D, 0xEA, 0x50, 0xE0, 0xB1, 0x7B, 0xDC,
0xCF, 0x02, 0x3E, 0x08, 0x9C, 0x5B, 0x90, 0xA3,
0x3B, 0x8B, 0x47, 0x85, 0x83, 0xF6, 0xF0, 0xD8,
0x6D, 0xC0, 0x67, 0x08, 0x9F, 0x02, 0xF0, 0xAE,
0x01, 0x35, 0xFD, 0x83, 0x67, 0x82, 0xE0, 0x50,
0x43, 0xF4, 0xA8, 0xC3, 0x9D, 0xC0, 0x21, 0x32,
0x40, 0x4F, 0xEA, 0xB8, 0xB1, 0x83, 0x3B, 0x99,
0x83, 0x7E, 0x6F, 0x68, 0xF6, 0xC6, 0x40, 0x08,
0x8E, 0xC7, 0x97, 0x05, 0x36, 0xE1, 0x04, 0x96,
0x3F, 0x08, 0xD4, 0xC8, 0x0C, 0xED, 0x51, 0x9E,
0x56, 0xCC, 0x90, 0xCF, 0x0C, 0x26, 0xB0, 0x58,
0x08, 0x29, 0x80, 0xD0, 0x78, 0xC0, 0x7F, 0x03,
0x78, 0xC0, 0xF0, 0xCD, 0xC0, 0xF3, 0x35, 0xC1,
0xB0, 0x10, 0x32, 0xB2, 0x0A, 0x8F, 0x87, 0x8E,
0xC2, 0xD7, 0x83, 0xC3, 0x39, 0xAD, 0x78, 0x26,
0x18, 0x0E, 0x42, 0x27, 0x09, 0x8B, 0x1A, 0x36,
0x3D, 0x39, 0xF0, 0x43, 0x03, 0xBB, 0x19, 0x9C,
0xC1, 0x23, 0x80, 0x47, 0x72, 0x42, 0xFE, 0x98,
0x78, 0x60, 0xF0, 0x01, 0xF1, 0xDE, 0xA7, 0x4C,
0x46, 0x70, 0xA6, 0x06, 0xF4, 0x71, 0xC0, 0xFF,
0xFF, 0xA1, 0xF0, 0x21, 0x7A, 0x7C, 0xA7, 0x7C,
0xBC, 0x96, 0x00, 0x21, 0x59, 0xE3, 0x84, 0x7E,
0x87, 0xF0, 0xF1, 0xC3, 0x47, 0x16, 0x47, 0x84,
0x90, 0x93, 0x53, 0x00, 0x1A, 0xF8, 0x74, 0xCF,
0x2E, 0xC2, 0xE9, 0x7A, 0x52, 0x0E, 0x34, 0x0C,
0x3A, 0x4E, 0x70, 0x9C, 0x07, 0xC0, 0x31, 0x4E,
0xF8, 0xE7, 0x02, 0xF8, 0x03, 0xE4, 0xA7, 0x8C,
0x57, 0x8C, 0x04, 0x8E, 0x39, 0x42, 0xF4, 0xB9,
0xC6, 0x23, 0xC4, 0xC2, 0x3F, 0x55, 0x14, 0x3E,
0x10, 0x32, 0x46, 0x70, 0x01, 0x7A, 0x8C, 0xC0,
0x37, 0xE0, 0x18, 0xD1, 0x47, 0x09, 0xAE, 0xFE,
0xA0, 0x41, 0x07, 0x88, 0xFB, 0xFF, 0x0F, 0x10,
0x3E, 0xA8, 0x07, 0x08, 0x7C, 0xA3, 0x1F, 0x3D,
0xD0, 0xE3, 0xB2, 0xE8, 0xF3, 0x80, 0x8C, 0x9F,
0x68, 0x34, 0x2F, 0x7E, 0x3A, 0xE0, 0x87, 0x0F,
0xF0, 0x80, 0x7A, 0x48, 0x38, 0x50, 0xCC, 0xB4,
0x39, 0xE8, 0xB3, 0xCB, 0xA1, 0x63, 0x87, 0x0B,
0xFE, 0x13, 0x08, 0xB8, 0xE4, 0x1D, 0xC2, 0x40,
0x31, 0x62, 0xFC, 0x39, 0xC8, 0xA7, 0x30, 0xF0,
0xFF, 0xFF, 0x4F, 0x61, 0xB8, 0x11, 0xF0, 0x20,
0xAF, 0x05, 0x9F, 0xB6, 0xA8, 0x74, 0x18, 0xD4,
0x81, 0x0B, 0x30, 0x09, 0x1A, 0xE1, 0x59, 0xA2,
0x36, 0x08, 0x01, 0xBF, 0x4D, 0xBC, 0x6D, 0xF9,
0x16, 0x10, 0xE7, 0xC8, 0x7B, 0x3B, 0x70, 0x11,
0x8C, 0x08, 0xA7, 0x1D, 0xCA, 0x63, 0x88, 0x18,
0x23, 0xCA, 0xE3, 0x96, 0x51, 0xDE, 0xB6, 0x5E,
0x00, 0xE2, 0x9D, 0xE5, 0xF3, 0x96, 0x31, 0x82,
0x47, 0x7E, 0xE0, 0x62, 0x62, 0xDF, 0x13, 0xFA,
0xB9, 0xF9, 0xC0, 0x05, 0x38, 0xFB, 0xFF, 0x1F,
0xB8, 0x00, 0x0E, 0x05, 0x3D, 0x0C, 0xA1, 0x87,
0xE1, 0xA9, 0x9C, 0xCB, 0x13, 0xE5, 0xA9, 0x44,
0x8C, 0x1A, 0x26, 0xEA, 0x33, 0x94, 0x2F, 0x1A,
0x3E, 0x10, 0x81, 0xEF, 0xCC, 0x05, 0xFC, 0xFE,
0xFF, 0x07, 0x22, 0x38, 0x02, 0xCF, 0x34, 0xA0,
0xF4, 0x39, 0x03, 0x81, 0x9C, 0x8A, 0x0F, 0x35,
0xC0, 0x48, 0xF4, 0xAB, 0xC1, 0x27, 0x1A, 0x2A,
0x13, 0x06, 0x75, 0xA8, 0x01, 0x4C, 0x5E, 0x61,
0x9E, 0x46, 0xCF, 0xF9, 0x59, 0xC6, 0xA7, 0x1A,
0x1F, 0x4A, 0x8D, 0x63, 0x88, 0x97, 0x99, 0x87,
0x1A, 0x1F, 0x0B, 0x5E, 0x49, 0x7D, 0xA8, 0x31,
0x54, 0x9C, 0x87, 0x1A, 0x9F, 0x48, 0x03, 0x45,
0x7D, 0xB3, 0x79, 0xB6, 0x31, 0x7A, 0x7C, 0xDF,
0x50, 0x0D, 0xF1, 0x50, 0xC3, 0x84, 0xBD, 0x23,
0xF4, 0xC1, 0xF5, 0xA1, 0x06, 0x1C, 0xFF, 0xFF,
0x43, 0x0D, 0xC0, 0xFF, 0xFF, 0xFF, 0xA1, 0x06,
0x70, 0x74, 0x34, 0x80, 0x73, 0x64, 0xC4, 0x1D,
0x0D, 0xC0, 0x75, 0x28, 0x05, 0x0E, 0x47, 0x03,
0xE0, 0x71, 0x14, 0x02, 0xF3, 0x85, 0xC6, 0x47,
0x21, 0x60, 0xF1, 0xFF, 0x3F, 0x0A, 0xE1, 0x64,
0x9F, 0x83, 0x50, 0x42, 0x8F, 0x42, 0x80, 0x54,
0xC8, 0xA7, 0x88, 0x67, 0x1F, 0x5F, 0x7E, 0x1E,
0x08, 0x22, 0xBC, 0xE6, 0xFB, 0x14, 0xE4, 0x43,
0xBE, 0x8F, 0x42, 0x0C, 0xC6, 0x50, 0xBE, 0x06,
0xF9, 0x28, 0xC4, 0xA0, 0x5E, 0x83, 0x7C, 0xDF,
0x37, 0xC8, 0x91, 0x18, 0xFB, 0x99, 0xC0, 0x47,
0x21, 0x26, 0xED, 0x28, 0x04, 0x28, 0xFC, 0xFF,
0x1F, 0x85, 0x00, 0xFE, 0xFF, 0xFF, 0x8F, 0x42,
0x80, 0xB3, 0x00, 0x47, 0x03, 0xD0, 0x4D, 0xEB,
0x51, 0x08, 0xBC, 0x77, 0x96, 0xD3, 0x3E, 0x01,
0x9F, 0x85, 0x00, 0xB3, 0xFF, 0xFF, 0xB3, 0x10,
0x30, 0x3B, 0x0A, 0x45, 0x3D, 0xE8, 0x57, 0xA1,
0x27, 0x80, 0x17, 0x80, 0x18, 0x61, 0xDE, 0x81,
0x5E, 0x32, 0xD9, 0x5D, 0xDC, 0x38, 0x4F, 0x2E,
0xA7, 0x6D, 0x94, 0x97, 0x20, 0x1F, 0x28, 0x9E,
0x85, 0x0C, 0xF5, 0x2E, 0x14, 0xF4, 0x8D, 0xDC,
0xA3, 0x8C, 0x19, 0x3F, 0xC4, 0xF3, 0x90, 0x21,
0x9E, 0x85, 0x00, 0x76, 0xFD, 0xFF, 0xCF, 0x42,
0x00, 0xFF, 0xFF, 0xFF, 0x47, 0x03, 0xF8, 0x2F,
0x00, 0x9F, 0x85, 0x80, 0xE7, 0x09, 0xE0, 0x41,
0xDB, 0x67, 0x21, 0x80, 0x33, 0x87, 0xCB, 0xF3,
0x0F, 0x7A, 0x60, 0xEF, 0x11, 0x9E, 0xF5, 0x71,
0xBF, 0x5E, 0x7A, 0xE0, 0x0F, 0x05, 0xCF, 0x42,
0x0C, 0xEB, 0x98, 0x7C, 0x16, 0x62, 0x10, 0x2F,
0x9A, 0x86, 0x78, 0xE1, 0xF4, 0x61, 0xC0, 0xFF,
0x7F, 0xBC, 0xC0, 0xAF, 0x9C, 0x06, 0x0A, 0x12,
0xE8, 0x59, 0x08, 0x60, 0xFC, 0xFF, 0xFF, 0x2C,
0x04, 0x90, 0x71, 0x8D, 0x3A, 0x0B, 0x01, 0xCB,
0x63, 0x0C, 0x3B, 0xAD, 0x24, 0xF8, 0xFF, 0x3F,
0x0B, 0x01, 0x9F, 0x5C, 0x46, 0x0E, 0x42, 0x98,
0x88, 0x6F, 0x05, 0x1F, 0x33, 0x01, 0xA5, 0xE7,
0xA0, 0x17, 0x77, 0x63, 0x04, 0x7E, 0x91, 0x78,
0xCC, 0x64, 0x47, 0x4D, 0xC3, 0x3C, 0x0B, 0x19,
0xEF, 0x30, 0xCE, 0xE0, 0x09, 0xDE, 0x93, 0x7F,
0x16, 0x62, 0x60, 0xC7, 0x18, 0xEC, 0x51, 0xC8,
0xA0, 0x06, 0x8F, 0x1D, 0x22, 0x4C, 0xA0, 0x67,
0x21, 0x16, 0x6A, 0xDC, 0x3A, 0x7F, 0xF8, 0x2C,
0x04, 0xBC, 0xFF, 0xFF, 0x67, 0x21, 0xC0, 0xD3,
0x61, 0xC3, 0x67, 0x0D, 0xF0, 0x0C, 0xDF, 0xA3,
0x3A, 0x87, 0xC7, 0x63, 0xE0, 0x92, 0x55, 0xC7,
0x09, 0x83, 0xE5, 0x5E, 0xA7, 0x6C, 0x9C, 0x61,
0xE8, 0x20, 0xAC, 0x0E, 0x48, 0xC3, 0xC1, 0xDC,
0x43, 0x0E, 0xE2, 0x7C, 0xD8, 0x40, 0xAD, 0x08,
0x4E, 0xC7, 0x24, 0x0F, 0xDA, 0x5A, 0x28, 0xA4,
0x80, 0x46, 0x03, 0x32, 0xBC, 0x33, 0x9F, 0x96,
0x28, 0x88, 0x01, 0x7D, 0x02, 0xB2, 0x8D, 0x73,
0x00, 0x6A, 0x2F, 0x9A, 0x02, 0x39, 0xDA, 0x60,
0xF4, 0x5F, 0x16, 0xE8, 0x6C, 0x7C, 0x0D, 0xE0,
0x1A, 0x20, 0x74, 0x30, 0x30, 0xB4, 0xD5, 0xDC,
0x62, 0x50, 0x60, 0xC6, 0x7F, 0x70, 0x31, 0x81,
0x8F, 0x2E, 0xF8, 0xB3, 0x00, 0xEE, 0xFF, 0x3F,
0x5C, 0x8F, 0xF6, 0x5D, 0xA0, 0xEA, 0xC9, 0xEA,
0x8A, 0x60, 0x75, 0x97, 0x17, 0x08, 0x33, 0x32,
0x41, 0x7D, 0x07, 0x02, 0x50, 0x00, 0xF9, 0x0E,
0xE0, 0xA3, 0xD3, 0x73, 0x00, 0x9B, 0x48, 0x88,
0x30, 0xD1, 0x8C, 0x8E, 0x98, 0x30, 0x2A, 0xFA,
0x84, 0x29, 0x88, 0x27, 0xEC, 0x58, 0x13, 0x46,
0xCF, 0xC4, 0x77, 0x1B, 0x36, 0x62, 0x4C, 0x88,
0xDB, 0x06, 0xB4, 0x09, 0x06, 0xF5, 0x3D, 0x08,
0xD6, 0x90, 0xF9, 0x58, 0x7C, 0x67, 0xC0, 0x4D,
0x19, 0x8C, 0x73, 0x62, 0xD7, 0x04, 0x0B, 0x9C,
0x33, 0xC8, 0xE1, 0x31, 0xD7, 0x2F, 0x7E, 0x5B,
0xF2, 0xE8, 0xF8, 0x41, 0xC1, 0x37, 0x1C, 0x86,
0xFD, 0x30, 0xE6, 0x19, 0xBD, 0x8A, 0xF9, 0xE6,
0x86, 0x81, 0xF5, 0x78, 0x39, 0xAC, 0xD1, 0xC2,
0x1E, 0xDA, 0xAB, 0x87, 0xCF, 0x2D, 0x3E, 0x4F,
0x18, 0x23, 0xAC, 0x2F, 0x2C, 0xE0, 0x00, 0xFC,
0xFF, 0xBF, 0x5A, 0xC1, 0xBE, 0x6B, 0x80, 0xE7,
0x26, 0xE4, 0xBB, 0x06, 0xC0, 0xDA, 0xFF, 0xFF,
0x5D, 0x03, 0xFE, 0x35, 0xC1, 0x77, 0x0D, 0xE0,
0x3D, 0x74, 0xDF, 0x35, 0x80, 0x6B, 0xF6, 0xBB,
0x06, 0xEA, 0x18, 0x60, 0x85, 0x77, 0x0D, 0x68,
0xB7, 0xB4, 0x57, 0xB4, 0x87, 0x2A, 0x6B, 0xBA,
0x6C, 0xA0, 0xD4, 0x5C, 0x36, 0x00, 0x6D, 0xFF,
0xFF, 0xCB, 0x06, 0xB0, 0x91, 0x32, 0x61, 0x54,
0xF8, 0x09, 0x53, 0x10, 0x4F, 0xD8, 0xC1, 0x2E,
0x1B, 0xA0, 0x88, 0x71, 0xD9, 0x00, 0xFD, 0xD8,
0x5E, 0x36, 0x80, 0xC1, 0x3D, 0x81, 0xDF, 0x36,
0x80, 0x37, 0xA4, 0x6F, 0x1B, 0xC0, 0xF4, 0xFF,
0x0F, 0x31, 0xFF, 0x6D, 0x03, 0xC5, 0x61, 0x95,
0xB7, 0x0D, 0x88, 0x87, 0x77, 0x46, 0x60, 0x55,
0xD7, 0x0D, 0x94, 0x9E, 0xEB, 0x06, 0x40, 0x02,
0x31, 0x13, 0x46, 0xC5, 0x9F, 0x30, 0x05, 0xF1,
0x84, 0x1D, 0xED, 0xBA, 0x01, 0x8A, 0x20, 0xD7,
0x0D, 0xD0, 0xCF, 0xEB, 0x94, 0xC1, 0xFA, 0xFF,
0xBF, 0x6E, 0x60, 0x2F, 0x0A, 0x98, 0xFB, 0x06,
0xF0, 0x86, 0xE5, 0xF7, 0x0D, 0xC0, 0xC7, 0xE5,
0x1B, 0x73, 0xDF, 0x00, 0x6C, 0xFE, 0xFF, 0xEF,
0x1B, 0x00, 0x13, 0x2E, 0x0A, 0xB8, 0xFB, 0x06,
0xF0, 0xBE, 0x48, 0xFB, 0xBE, 0x01, 0x5C, 0x83,
0x49, 0xF8, 0xFF, 0xDF, 0xF5, 0xE8, 0x0B, 0x40,
0x51, 0x60, 0x50, 0x43, 0xF2, 0x99, 0x00, 0x3F,
0xBA, 0x83, 0x3B, 0xA6, 0xE0, 0x4C, 0x12, 0x1C,
0x6A, 0xE0, 0xBE, 0x02, 0x3C, 0xCD, 0x9F, 0xD6,
0x7B, 0xBD, 0xE7, 0xF1, 0x24, 0x10, 0x92, 0x1D,
0x61, 0x7C, 0x6C, 0x43, 0x9C, 0x0C, 0xC8, 0x41,
0xDC, 0x47, 0xF7, 0x88, 0xEF, 0xE1, 0x86, 0x49,
0xE0, 0x21, 0x33, 0x34, 0x0E, 0x8D, 0x1D, 0x86,
0xEF, 0x02, 0xC1, 0x0E, 0xE2, 0x30, 0xCE, 0xD7,
0x04, 0x9E, 0xD0, 0x83, 0xC0, 0x7B, 0xF9, 0xA3,
0x41, 0xF1, 0x77, 0x03, 0x4A, 0x60, 0xB8, 0xD0,
0x98, 0x91, 0xFA, 0x6C, 0xFF, 0x8E, 0x70, 0x24,
0x26, 0xB0, 0x7B, 0x48, 0x59, 0x13, 0xA0, 0xF1,
0x96, 0x43, 0x20, 0x7A, 0xC3, 0x91, 0x2D, 0x14,
0xCD, 0x2D, 0xCA, 0xFB, 0x42, 0x14, 0x3B, 0x43,
0x10, 0x46, 0x94, 0x60, 0x41, 0x9E, 0xD6, 0x62,
0x45, 0x79, 0x66, 0x37, 0x42, 0xC4, 0x10, 0xAF,
0x0C, 0x81, 0x5E, 0x12, 0xC2, 0x07, 0x79, 0xEC,
0x89, 0xD3, 0xFE, 0x20, 0x88, 0xF8, 0x17, 0x82,
0x3C, 0x80, 0x28, 0xD2, 0x68, 0x50, 0xE7, 0x06,
0x8F, 0xDD, 0x87, 0x10, 0x5F, 0xFE, 0x7D, 0xB8,
0xF7, 0xE8, 0x0E, 0xEE, 0x45, 0xFE, 0xA0, 0x3D,
0x3C, 0x76, 0xC2, 0xF0, 0x41, 0x03, 0x8E, 0x6B,
0x40, 0x4D, 0xFF, 0x19, 0x01, 0x2C, 0x97, 0x7F,
0xF8, 0xE3, 0xF1, 0x3D, 0xC1, 0xF3, 0x39, 0xE1,
0x04, 0x96, 0x3F, 0x08, 0xD4, 0x71, 0x84, 0xCF,
0xF3, 0x85, 0xC3, 0x90, 0xCF, 0x02, 0x87, 0xC5,
0xC4, 0x0A, 0xF8, 0xFF, 0x9F, 0x4C, 0xD8, 0x78,
0xC0, 0x7F, 0x0F, 0x79, 0xFD, 0xF7, 0xCD, 0xC0,
0xF3, 0x35, 0xC1, 0x88, 0x10, 0x72, 0x32, 0x1E,
0x34, 0xE8, 0xD9, 0xF8, 0x80, 0xE1, 0xEB, 0x09,
0x3B, 0x77, 0x70, 0x51, 0xE7, 0x0E, 0xD4, 0xD1,
0xC1, 0xA7, 0x06, 0x76, 0xB3, 0xC1, 0x1C, 0xB7,
0xF9, 0x59, 0x03, 0xFC, 0x23, 0x84, 0x7F, 0x7B,
0xF0, 0xBC, 0x7C, 0x65, 0x78, 0x75, 0x48, 0xE0,
0x90, 0x23, 0x44, 0x8F, 0xCB, 0x23, 0xC4, 0x9C,
0x6F, 0x30, 0x43, 0x04, 0xD7, 0x59, 0x00, 0x1C,
0x43, 0x04, 0x3E, 0x67, 0x4C, 0x9F, 0x71, 0x60,
0xFE, 0xFF, 0xCF, 0x38, 0xEC, 0xD2, 0xC3, 0x07,
0x6A, 0x78, 0x13, 0xF8, 0xFE, 0x8C, 0x3B, 0xD2,
0x18, 0x9C, 0x1F, 0x33, 0x1E, 0x76, 0x18, 0xF8,
0xFB, 0x8E, 0x67, 0x70, 0x34, 0x3E, 0xA0, 0x18,
0x21, 0xF8, 0x73, 0xC9, 0x73, 0x8A, 0x35, 0x0F,
0x52, 0x33, 0x7A, 0x67, 0x38, 0x04, 0x76, 0xB3,
0xC2, 0x1D, 0x38, 0x3C, 0x04, 0x3E, 0x80, 0x56,
0x27, 0x47, 0x4E, 0x3F, 0xA7, 0x84, 0x1B, 0x3E,
0xBF, 0x0A, 0x60, 0x0E, 0x41, 0x38, 0x85, 0x36,
0x7D, 0x6A, 0x34, 0x6A, 0xD5, 0xA0, 0x4C, 0x8D,
0x32, 0x0D, 0x6A, 0xF5, 0xA9, 0xD4, 0x98, 0xB1,
0x0B, 0x8B, 0x03, 0xBE, 0x02, 0x74, 0x1C, 0xB0,
0x3C, 0x0A, 0x1D, 0xC1, 0xC8, 0x9B, 0x40, 0x20,
0x0E, 0x0B, 0x42, 0x23, 0xBD, 0x71, 0x04, 0x62,
0xC9, 0xEF, 0x2F, 0x81, 0x58, 0xEE, 0x03, 0x45,
0x20, 0x0E, 0x68, 0x02, 0x9C, 0xAA, 0x00, 0xA7,
0xAF, 0x01, 0x81, 0x38, 0x32, 0x08, 0x15, 0xFA,
0x35, 0x13, 0x88, 0x63, 0x82, 0xD0, 0x50, 0x3E,
0x40, 0x98, 0xF4, 0x17, 0x80, 0x00, 0x89, 0x11,
0x10, 0x16, 0xEE, 0xE5, 0x20, 0x10, 0x4B, 0x7B,
0x2D, 0x08, 0xC4, 0x42, 0xAC, 0x80, 0xB0, 0xB8,
0x20, 0x34, 0x9C, 0x16, 0x10, 0x26, 0xC9, 0x0C,
0x08, 0x0B, 0x04, 0x42, 0xE5, 0x3F, 0xD3, 0x04,
0x62, 0x91, 0x6E, 0x00, 0xE9, 0xBA, 0x05, 0xE2,
0x20, 0x7A, 0x40, 0x98, 0x0C, 0x3F, 0x20, 0x2C,
0x34, 0x08, 0x8D, 0xF6, 0x6C, 0x10, 0x20, 0x31,
0x04, 0xC2, 0xE2, 0x3B, 0x02, 0x61, 0xE2, 0xDF,
0x44, 0x02, 0x71, 0x4A, 0x4B, 0x10, 0x37, 0xA5,
0x01, 0x06, 0x11, 0x90, 0x93, 0x6A, 0x02, 0x62,
0xB9, 0x41, 0x34, 0x24, 0xF2, 0xB0, 0x10, 0x90,
0x93, 0x82, 0x68, 0xC0, 0xC4, 0x14, 0x90, 0xFF,
0xFF, 0x43, 0x13, 0x88, 0x80, 0x9C, 0xCA, 0x15,
0x10, 0x8B, 0x08, 0x22, 0x20, 0x27, 0x7B, 0x52,
0x09, 0xC8, 0x39, 0x41, 0x74, 0x04, 0x20, 0xBA,
0x80, 0x58, 0x3E, 0x10, 0x01, 0x39, 0x96, 0x2F,
0x20, 0x16, 0x12, 0x44, 0x40, 0x4E, 0xF4, 0xF3,
0x09, 0x44, 0xE2, 0x81, 0x68, 0x10, 0xE4, 0x3F,
0x21, 0x20, 0x67, 0x04, 0x11, 0x10, 0x79, 0x12,
0x05, 0x21, 0x9A, 0x3E, 0x62, 0x02, 0x71, 0x6A,
0x10, 0x9A, 0xEC, 0x27, 0x14, 0x84, 0xFC, 0xFF,
0x01
})
}
Method(HTS3, 1, NotSerialized)
{
If(LEqual(Arg0, Zero))
{
Store(Zero, HSMS)
Store(0xD6, HSMC)
}
If(LEqual(Arg0, One))
{
Store(One, HSMS)
Store(0xD6, HSMC)
}
}
}
OperationRegion(CMS1, SystemIO, 0x72, 0x02)
Field(CMS1, ByteAcc, NoLock, Preserve)
{
CMSI, 8,
CMSD, 8,
}
IndexField(CMSI, CMSD, ByteAcc, Lock, Preserve)
{
Offset(0x41), //Offset(65),
IOSF, 1,
Offset(0x45), //Offset(69),
EFID, 8,
EFI1, 8,
WANT, 1,
, 7,
GPSF, 1,
Offset(0x52), //Offset(82),
WLWI, 1,
BTWI, 1,
WWWI, 1,
BTNS, 1,
SIMD, 1,
WAPT, 1,
, 2,
WLBK, 1,
BTBK, 1,
WWBK, 1,
BTNB, 1,
, 4,
WBCB, 1,
Offset(0x56), //Offset(86),
UND0, 1,
UND1, 1,
UND2, 1,
Offset(0x60), //Offset(96),
S4FG, 8,
HOTW, 8,
Offset(0x77), //Offset(119),
HSDC, 8,
HSDS, 8,
HBUC, 8,
HBUS, 8,
}
Method(CMSW, 2, NotSerialized)
{
Store(Arg0, CMSI)
Store(Arg1, CMSD)
}
Mutex(MUTX, 0)
OperationRegion(DBG0, SystemIO, 0x80, One)
Field(DBG0, ByteAcc, NoLock, Preserve)
{
IO80, 8,
}
OperationRegion(PRT0, SystemIO, 0x80, 0x04)
Field(PRT0, DWordAcc, Lock, Preserve)
{
P80H, 32,
}
Method(P8XH, 3, Serialized)
{
If(LEqual(Arg0, Zero))
{
Store(Or(And(P80D, 0xFFFFFF00), Arg1), P80D)
}
If(LEqual(Arg0, One))
{
Store(Or(And(P80D, 0xFFFF00FF), ShiftLeft(Arg1, 0x08)), P80D)
}
If(LEqual(Arg0, 0x02))
{
Store(Or(And(P80D, 0xFF00FFFF), ShiftLeft(Arg1, 0x10)), P80D)
}
If(LEqual(Arg0, 0x03))
{
Store(Or(And(P80D, 0x00FFFFFF), ShiftLeft(Arg1, 0x18)), P80D)
}
If(LEqual(Arg0, 0x04))
{
Store(Or(And(P80D, Zero), Arg1), P80D)
}
If(LEqual(Arg2, Zero)) {}
If(LEqual(Arg2, One))
{
Store(P80D, P80H)
}
}
OperationRegion(SPRT, SystemIO, 0xB2, 0x02)
Field(SPRT, ByteAcc, Lock, Preserve)
{
SSMP, 8,
}
Method(_PIC, 1, NotSerialized)
{
Store(Arg0, GPIC)
Store(Arg0, PICM)
}
Method(_PTS, 1, NotSerialized)
{
Store(Zero, P80D)
P8XH(Zero, Arg0, Zero)
If(LEqual(Arg0, 0x05))
{
Store(0x05, \_SB.PCI0.LPCB.EC.SLP)
}
If(LEqual(Arg0, 0x03))
{
Store(0x03, \_SB.PCI0.LPCB.EC.SLP)
P8XH(0x04, 0x53, Zero)
P8XH(0x04, 0x53, One)
If(LAnd(DTSE, LGreater(TCNT, One)))
{
TRAP(TRTD, 0x1E)
}
}
If(LEqual(Arg0, 0x04))
{
Store(0x04, \_SB.PCI0.LPCB.EC.SLP)
P8XH(0x04, 0x54, Zero)
P8XH(0x04, 0x54, One)
CMSW(0xE0, 0x60)
}
If(LOr(LOr(LEqual(Arg0, 0x03), LEqual(Arg0, 0x04)), LEqual(Arg0, 0x05)))
{
If(LEqual(PFLV, FDTP))
{
Store(One, GP27)
}
}
}
Method(_WAK, 1, Serialized)
{
Store(Zero, P80D)
CMSW(0xE0, Zero)
If(NEXP)
{
If(And(OSCC, 0x02))
{
\_SB.PCI0.NHPG()
}
If(And(OSCC, 0x04))
{
\_SB.PCI0.NPME()
}
}
If(LEqual(Arg0, 0x03))
{
P8XH(0x04, 0xE3, Zero)
P8XH(0x04, 0xE3, One)
Notify(\_SB.PCI0.LPCB.LID, 0x80)
If(LEqual(Zero, ACTT))
{
If(LEqual(ECON, One)) {}
}
}
If(LOr(LEqual(Arg0, 0x03), LEqual(Arg0, 0x04)))
{
If(LAnd(DTSE, LGreater(TCNT, One)))
{
TRAP(TRTD, 0x14)
}
If(LEqual(PMEE, One))
{
Store(One, PMEN)
}
If(LEqual(OSYS, 0x07D2))
{
If(And(CFGD, One))
{
If(LGreater(\_PR.CPU0._PPC, Zero))
{
Subtract(\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
PNOT()
Add(\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
PNOT()
}
Else
{
Add(\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
PNOT()
Subtract(\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
PNOT()
}
}
}
If(LEqual(ECON, One)) {}
If(LEqual(RP1D, Zero))
{
Notify(\_SB.PCI0.RP01, Zero)
}
If(LEqual(RP2D, Zero))
{
Notify(\_SB.PCI0.RP02, Zero)
}
If(LEqual(RP3D, Zero))
{
Notify(\_SB.PCI0.RP03, Zero)
}
If(LEqual(RP4D, Zero))
{
Notify(\_SB.PCI0.RP04, Zero)
}
If(LEqual(RP5D, Zero))
{
Notify(\_SB.PCI0.RP05, Zero)
}
If(LEqual(RP7D, Zero))
{
If(LEqual(DSTS, Zero))
{
Notify(\_SB.PCI0.RP07, Zero)
}
}
If(LEqual(RP8D, Zero))
{
If(LEqual(DSTS, Zero))
{
Notify(\_SB.PCI0.RP08, Zero)
}
}
}
If(LEqual(Arg0, 0x04))
{
P8XH(0x04, 0xE4, Zero)
P8XH(0x04, 0xE4, One)
}
If(LEqual(Arg0, 0x03))
{
If(BTNS)
{
If(LAnd(\_SB.PCI0.LPCB.EC.BTS, BTWI))
{
Store(One, \_SB.PCI0.LPCB.EC.BTD)
Store(Zero, BTPR)
}
Else
{
Store(Zero, \_SB.PCI0.LPCB.EC.BTD)
Store(One, BTPR)
}
}
Else
{
Store(Zero, \_SB.PCI0.LPCB.EC.BTD)
Store(One, BTPR)
}
}
\_SB.PCI0.LPCB.EC.SPST(Zero)
Return(Package(2) {Zero, Zero})
}
Method(GETB, 3, Serialized)
{
Multiply(Arg0, 0x08, Local0)
Multiply(Arg1, 0x08, Local1)
CreateField(Arg2,Local0,Local1,TBF3)
Return(TBF3)
}
Method(PNOT, 0, Serialized)
{
If(LGreater(TCNT, One))
{
If(And(PDC0, 0x08))
{
Notify(\_PR.CPU0, 0x80)
If(And(PDC0, 0x10))
{
Sleep(0x64)
Notify(\_PR.CPU0, 0x81)
}
}
If(And(PDC1, 0x08))
{
Notify(\_PR.CPU1, 0x80)
If(And(PDC1, 0x10))
{
Sleep(0x64)
Notify(\_PR.CPU1, 0x81)
}
}
If(And(PDC2, 0x08))
{
Notify(\_PR.CPU2, 0x80)
If(And(PDC2, 0x10))
{
Sleep(0x64)
Notify(\_PR.CPU2, 0x81)
}
}
If(And(PDC3, 0x08))
{
Notify(\_PR.CPU3, 0x80)
If(And(PDC3, 0x10))
{
Sleep(0x64)
Notify(\_PR.CPU3, 0x81)
}
}
If(And(PDC4, 0x08))
{
Notify(\_PR.CPU4, 0x80)
If(And(PDC4, 0x10))
{
Sleep(0x64)
Notify(\_PR.CPU4, 0x81)
}
}
If(And(PDC5, 0x08))
{
Notify(\_PR.CPU5, 0x80)
If(And(PDC5, 0x10))
{
Sleep(0x64)
Notify(\_PR.CPU5, 0x81)
}
}
If(And(PDC6, 0x08))
{
Notify(\_PR.CPU6, 0x80)
If(And(PDC6, 0x10))
{
Sleep(0x64)
Notify(\_PR.CPU6, 0x81)
}
}
If(And(PDC7, 0x08))
{
Notify(\_PR.CPU7, 0x80)
If(And(PDC7, 0x10))
{
Sleep(0x64)
Notify(\_PR.CPU7, 0x81)
}
}
}
Else
{
Notify(\_PR.CPU0, 0x80)
Sleep(0x64)
Notify(\_PR.CPU0, 0x81)
}
If(LEqual(ECON, One)) {}
}
Method(TRAP, 2, Serialized)
{
Store(Arg1, SMIF)
If(LEqual(Arg0, TRTP))
{
Store(Zero, TRP0)
}
If(LEqual(Arg0, TRTD))
{
Store(Arg1, DTSF)
Store(Zero, TRPD)
Return(DTSF)
}
If(LEqual(Arg0, TRTI))
{
Store(Zero, TRPH)
}
Return(SMIF)
}
Scope(_SB.PCI0)
{
Method(_INI, 0, NotSerialized)
{
CMSW(0xE0, Zero)
Store(0x07D0, OSYS)
If(CondRefOf(\_OSI, Local0))
{
If(_OSI("Linux"))
{
Store(0x03E8, OSYS)
}
If(_OSI("Windows 2001"))
{
Store(0x07D1, OSYS)
}
If(_OSI("Windows 2001 SP1"))
{
Store(0x07D1, OSYS)
}
If(_OSI("Windows 2001 SP2"))
{
Store(0x07D2, OSYS)
}
If(_OSI("Windows 2001.1"))
{
Store(0x07D3, OSYS)
}
If(_OSI("Windows 2006"))
{
Store(0x07D6, OSYS)
}
If(_OSI("Windows 2009"))
{
Store(0x07D9, OSYS)
}
}
}
Method(NHPG, 0, Serialized)
{
Store(Zero, ^RP01.HPEX)
Store(Zero, ^RP02.HPEX)
Store(Zero, ^RP03.HPEX)
Store(Zero, ^RP04.HPEX)
Store(Zero, ^RP05.HPEX)
Store(Zero, ^RP07.HPEX)
Store(Zero, ^RP08.HPEX)
Store(One, ^RP01.HPSX)
Store(One, ^RP02.HPSX)
Store(One, ^RP03.HPSX)
Store(One, ^RP04.HPSX)
Store(One, ^RP05.HPSX)
Store(One, ^RP07.HPSX)
Store(One, ^RP08.HPSX)
}
Method(NPME, 0, Serialized)
{
Store(Zero, ^RP01.PMEX)
Store(Zero, ^RP02.PMEX)
Store(Zero, ^RP03.PMEX)
Store(Zero, ^RP04.PMEX)
Store(Zero, ^RP05.PMEX)
Store(Zero, ^RP07.PMEX)
Store(Zero, ^RP08.PMEX)
Store(One, ^RP01.PMSX)
Store(One, ^RP02.PMSX)
Store(One, ^RP03.PMSX)
Store(One, ^RP04.PMSX)
Store(One, ^RP05.PMSX)
Store(One, ^RP07.PMSX)
Store(One, ^RP08.PMSX)
}
}
Scope(\)
{
Name(PICM, Zero)
}
Scope(_PR)
{
Processor(CPU0,0x01,0x00000410,0x06) {}
Processor(CPU1,0x02,0x00000410,0x06) {}
Processor(CPU2,0x03,0x00000410,0x06) {}
Processor(CPU3,0x04,0x00000410,0x06) {}
Processor(CPU4,0x05,0x00000410,0x06) {}
Processor(CPU5,0x06,0x00000410,0x06) {}
Processor(CPU6,0x07,0x00000410,0x06) {}
Processor(CPU7,0x08,0x00000410,0x06) {}
}
Scope(_TZ)
{
ThermalZone(THRM)
{
Name(REGN, "Processor Thermal Zone")
Name(FMAX, 0x15E0)
Name(FMIN, 0x07D0)
Method(FRSP, 0, NotSerialized)
{
If(\_SB.PCI0.LPCB.EC.ECOK)
{
Return(Multiply(\_SB.PCI0.LPCB.EC.FAT, 0xFF))
}
Return(FMAX)
}
Method(FSSP, 1, NotSerialized)
{
If(\_SB.PCI0.LPCB.EC.ECOK)
{
Store(And(LNot(Arg0), One), \_SB.PCI0.LPCB.EC.FST)
}
}
Method(_TMP, 0, Serialized)
{
If(\_SB.PCI0.LPCB.EC.ECOK)
{
Store(\_SB.PCI0.LPCB.EC.CPT0, Local0)
And(HOTW, One, HOTW)
If(LEqual(HOTW, Zero))
{
If(LGreaterEqual(Local0, \_SB.PCI0.LPCB.EC.HOT))
{
Store(One, HOTW)
}
}
Return(Add(Multiply(Local0, 0x0A), 0x0AAC))
}
Else
{
Return(0x0C3C)
}
}
Method(_CRT, 0, Serialized)
{
Store(\_SB.PCI0.LPCB.EC.CRT, Local0)
Return(Add(0x0AAC, Multiply(Local0, 0x0A)))
}
Method(_HOT, 0, NotSerialized)
{
Store(\_SB.PCI0.LPCB.EC.HOT, Local0)
Return(Add(0x0AAC, Multiply(Local0, 0x0A)))
}
Method(_SCP, 1, Serialized)
{
Store(Zero, \_SB.PCI0.LPCB.EC.PAE)
}
}
}
Scope(_SB.PCI0)
{
Device(PDRC)
{
Name(_HID, EISAID("PNP0C02"))
Name(_UID, One)
Name(BUF0, ResourceTemplate()
{
Memory32Fixed(ReadWrite, 0x00000000, 0x00004000)
Memory32Fixed(ReadWrite, 0x00000000, 0x00008000)
Memory32Fixed(ReadWrite, 0x00000000, 0x00001000)
Memory32Fixed(ReadWrite, 0x00000000, 0x00001000)
Memory32Fixed(ReadWrite, 0x00000000, 0x00000000)
Memory32Fixed(ReadWrite, 0xFED20000, 0x00020000)
Memory32Fixed(ReadOnly, 0xFED90000, 0x00004000)
Memory32Fixed(ReadOnly, 0xFF000000, 0x01000000)
Memory32Fixed(ReadOnly, 0xFEE00000, 0x00100000)
Memory32Fixed(ReadWrite, 0x00000000, 0x00001000)
})
Method(_CRS, 0, Serialized)
{
CreateDWordField(BUF0, 0x04, RBR0)
ShiftLeft(^^LPCB.RCBA, 0x0E, RBR0)
CreateDWordField(BUF0, 0x70, TBR0)
Store(TBAB, TBR0)
CreateDWordField(BUF0, 0x74, TBLN)
If(LEqual(TBAB, Zero))
{
Store(Zero, TBLN)
}
CreateDWordField(BUF0, 0x10, MBR0)
ShiftLeft(MHBR, 0x0F, MBR0)
CreateDWordField(BUF0, 0x1C, DBR0)
ShiftLeft(DIBR, 0x0C, DBR0)
CreateDWordField(BUF0, 0x28, EBR0)
ShiftLeft(EPBR, 0x0C, EBR0)
CreateDWordField(BUF0, 0x34, XBR0)
ShiftLeft(PXBR, 0x1A, XBR0)
CreateDWordField(BUF0, 0x38, XSZ0)
ShiftRight(0x10000000, PXSZ, XSZ0)
Return(BUF0)
}
}
}
Method(BRTN, 1, Serialized)
{
If(LEqual(And(DID1, 0x0F00), 0x0400))
{
Notify(\_SB.PCI0.GFX0.DD01, Arg0)
}
If(LEqual(And(DID2, 0x0F00), 0x0400))
{
Notify(\_SB.PCI0.GFX0.DD02, Arg0)
}
If(LEqual(And(DID3, 0x0F00), 0x0400))
{
Notify(\_SB.PCI0.GFX0.DD03, Arg0)
}
If(LEqual(And(DID4, 0x0F00), 0x0400))
{
Notify(\_SB.PCI0.GFX0.DD04, Arg0)
}
If(LEqual(And(DID5, 0x0F00), 0x0400))
{
Notify(\_SB.PCI0.GFX0.DD05, Arg0)
}
If(LEqual(And(DID6, 0x0F00), 0x0400))
{
Notify(\_SB.PCI0.GFX0.DD06, Arg0)
}
If(LEqual(And(DID7, 0x0F00), 0x0400))
{
Notify(\_SB.PCI0.GFX0.DD07, Arg0)
}
If(LEqual(And(DID8, 0x0F00), 0x0400))
{
Notify(\_SB.PCI0.GFX0.DD08, Arg0)
}
}
Scope(_GPE)
{
Method(_L0B, 0, NotSerialized)
{
Notify(\_SB.PCI0.P0P1, 0x02)
}
Method(_L09, 0, NotSerialized)
{
If(LEqual(RP1D, Zero))
{
\_SB.PCI0.RP01.HPME()
Notify(\_SB.PCI0.RP01, 0x02)
}
If(LEqual(RP2D, Zero))
{
\_SB.PCI0.RP02.HPME()
Notify(\_SB.PCI0.RP02, 0x02)
}
If(LEqual(RP3D, Zero))
{
\_SB.PCI0.RP03.HPME()
Notify(\_SB.PCI0.RP03, 0x02)
}
If(LEqual(RP4D, Zero))
{
\_SB.PCI0.RP04.HPME()
Notify(\_SB.PCI0.RP04, 0x02)
}
If(LEqual(RP5D, Zero))
{
\_SB.PCI0.RP05.HPME()
Notify(\_SB.PCI0.RP05, 0x02)
}
If(LEqual(RP7D, Zero))
{
\_SB.PCI0.RP07.HPME()
Notify(\_SB.PCI0.RP07, 0x02)
}
If(LEqual(RP8D, Zero))
{
\_SB.PCI0.RP08.HPME()
Notify(\_SB.PCI0.RP08, 0x02)
}
Notify(\_SB.PCI0.PEG0, 0x02)
Notify(\_SB.PCI0.PEG0.PEGP, 0x02)
Notify(\_SB.PCI0.PEG1, 0x02)
Notify(\_SB.PCI0.PEG2, 0x02)
Notify(\_SB.PCI0.PEG3, 0x02)
}
Method(_L0D, 0, NotSerialized)
{
Notify(\_SB.PCI0.EHC1, 0x02)
Notify(\_SB.PCI0.EHC2, 0x02)
Notify(\_SB.PCI0.HDEF, 0x02)
Notify(\_SB.PCI0.GLAN, 0x02)
}
Method(_L01, 0, NotSerialized)
{
Add(L01C, One, L01C)
If(LAnd(LEqual(RP1D, Zero), \_SB.PCI0.RP01.HPSX))
{
P8XH(One, One, One)
P8XH(Zero, L01C, One)
Sleep(0x64)
If(\_SB.PCI0.RP01.PDCX)
{
Store(One, \_SB.PCI0.RP01.PDCX)
Store(One, \_SB.PCI0.RP01.HPSX)
If(LNot(\_SB.PCI0.RP01.PDSX))
{
Store(Zero, \_SB.PCI0.RP01.L0SE)
}
Notify(\_SB.PCI0.RP01, Zero)
}
Else
{
Store(One, \_SB.PCI0.RP01.HPSX)
}
}
If(LAnd(LEqual(RP2D, Zero), \_SB.PCI0.RP02.HPSX))
{
P8XH(One, 0x02, One)
P8XH(Zero, L01C, One)
Sleep(0x64)
If(\_SB.PCI0.RP02.PDCX)
{
Store(One, \_SB.PCI0.RP02.PDCX)
Store(One, \_SB.PCI0.RP02.HPSX)
If(LNot(\_SB.PCI0.RP02.PDSX))
{
Store(Zero, \_SB.PCI0.RP02.L0SE)
}
Notify(\_SB.PCI0.RP02, Zero)
}
Else
{
Store(One, \_SB.PCI0.RP02.HPSX)
}
}
If(LAnd(LEqual(RP3D, Zero), \_SB.PCI0.RP03.HPSX))
{
P8XH(One, 0x03, One)
P8XH(Zero, L01C, One)
Sleep(0x64)
If(\_SB.PCI0.RP03.PDCX)
{
Store(One, \_SB.PCI0.RP03.PDCX)
Store(One, \_SB.PCI0.RP03.HPSX)
If(LNot(\_SB.PCI0.RP03.PDSX))
{
Store(Zero, \_SB.PCI0.RP03.L0SE)
}
Notify(\_SB.PCI0.RP03, Zero)
}
Else
{
Store(One, \_SB.PCI0.RP03.HPSX)
}
}
If(LAnd(LEqual(RP4D, Zero), \_SB.PCI0.RP04.HPSX))
{
P8XH(One, 0x04, One)
P8XH(Zero, L01C, One)
Sleep(0x64)
If(\_SB.PCI0.RP04.PDCX)
{
Store(One, \_SB.PCI0.RP04.PDCX)
Store(One, \_SB.PCI0.RP04.HPSX)
If(LNot(\_SB.PCI0.RP04.PDSX))
{
Store(Zero, \_SB.PCI0.RP04.L0SE)
}
Notify(\_SB.PCI0.RP04, Zero)
}
Else
{
Store(One, \_SB.PCI0.RP04.HPSX)
}
}
If(LAnd(LEqual(RP5D, Zero), \_SB.PCI0.RP05.HPSX))
{
P8XH(One, 0x05, One)
P8XH(Zero, L01C, One)
Sleep(0x64)
If(\_SB.PCI0.RP05.PDCX)
{
Store(One, \_SB.PCI0.RP05.PDCX)
Store(One, \_SB.PCI0.RP05.HPSX)
If(LNot(\_SB.PCI0.RP05.PDSX))
{
Store(Zero, \_SB.PCI0.RP05.L0SE)
}
Notify(\_SB.PCI0.RP05, Zero)
}
Else
{
Store(One, \_SB.PCI0.RP05.HPSX)
}
}
If(LAnd(LEqual(RP7D, Zero), \_SB.PCI0.RP07.HPSX))
{
P8XH(One, 0x07, One)
P8XH(Zero, L01C, One)
Sleep(0x64)
If(\_SB.PCI0.RP07.PDCX)
{
Store(One, \_SB.PCI0.RP07.PDCX)
Store(One, \_SB.PCI0.RP07.HPSX)
If(LNot(\_SB.PCI0.RP07.PDSX))
{
Store(Zero, \_SB.PCI0.RP07.L0SE)
}
If(ECON) {}
}
Else
{
Store(One, \_SB.PCI0.RP07.HPSX)
}
}
If(LAnd(LEqual(RP8D, Zero), \_SB.PCI0.RP08.HPSX))
{
P8XH(One, 0x08, One)
P8XH(Zero, L01C, One)
Sleep(0x64)
If(\_SB.PCI0.RP08.PDCX)
{
Store(One, \_SB.PCI0.RP08.PDCX)
Store(One, \_SB.PCI0.RP08.HPSX)
If(LNot(\_SB.PCI0.RP08.PDSX))
{
Store(Zero, \_SB.PCI0.RP08.L0SE)
}
If(ECON) {}
}
Else
{
Store(One, \_SB.PCI0.RP08.HPSX)
}
}
}
Method(_L02, 0, NotSerialized)
{
Store(Zero, GPEC)
If(CondRefOf(\_SB.PCI0.IEIT.EITV))
{
\_SB.PCI0.IEIT.EITV
}
If(CondRefOf(\TNOT))
{
TNOT
}
}
Method(_L06, 0, NotSerialized)
{
If(LAnd(\_SB.PCI0.GFX0.GSSE, LNot(GSMI)))
{
\_SB.PCI0.GFX0.GSCI()
}
}
Method(_L07, 0, NotSerialized)
{
Store(0x20, \_SB.PCI0.SBUS.HSTS)
}
Method(_L1E, 0, NotSerialized)
{
If(LEqual(ECON, Zero))
{
Return(Zero)
}
If(LNotEqual(LIDS, \_SB.PCI0.LPCB.EC.LDS))
{
Store(\_SB.PCI0.LPCB.EC.LDS, LIDS)
If(IGDS)
{
If(\_SB.PCI0.GFX0.GLID(LIDS))
{
Or(0x80000000, \_SB.PCI0.GFX0.CLID, \_SB.PCI0.GFX0.CLID)
}
}
Notify(\_SB.PCI0.LPCB.LID, 0x80)
}
Return(Zero)
}
}
Device(_SB.PCI0.DOCK)
{
Name(_HID, "ABCDEFGH")
Name(_CID, EISAID("PNP0C15"))
Name(_UID, "SADDLESTRING")
Method(_EJ0, 1, NotSerialized)
{
P8XH(Zero, 0xED, Zero)
If(LEqual(ECON, One)) {}
Return(One)
}
Method(_STA, 0, NotSerialized)
{
If(LEqual(ECON, Zero))
{
Return(Zero)
}
If(DSTS)
{
Return(0x0F)
}
Else
{
Return(Zero)
}
}
Method(_DCK, 1, NotSerialized)
{
P8XH(Zero, 0xD3, Zero)
If(Arg0)
{
Return(One)
}
Else
{
Store(Zero, DSTS)
If(LEqual(ECON, One)) {}
Return(One)
}
}
Name(_EDL, Package(5) {^RP01.PXSX, ^RP02.PXSX, EHC1, SAT0, HDEF})
}
Scope(\)
{
OperationRegion(IO_T, SystemIO, 0x1000, 0x10)
Field(IO_T, ByteAcc, NoLock, Preserve)
{
TRPI, 16,
Offset(0x4), //Offset(4),
Offset(0x6), //Offset(6),
Offset(0x8), //Offset(8),
TRP0, 8,
, 8,
, 8,
, 8,
, 8,
, 8,
, 8,
, 8,
}
OperationRegion(IO_D, SystemIO, 0x1010, 0x04)
Field(IO_D, ByteAcc, NoLock, Preserve)
{
TRPD, 8,
}
OperationRegion(IO_H, SystemIO, 0x1000, 0x04)
Field(IO_H, ByteAcc, NoLock, Preserve)
{
TRPH, 8,
}
OperationRegion(PMIO, SystemIO, PMBS, 0x80)
Field(PMIO, ByteAcc, NoLock, Preserve)
{
Offset(0x20), //Offset(32),
Offset(0x22), //Offset(34),
, 3,
GPS3, 1,
Offset(0x28), //Offset(40),
Offset(0x2A), //Offset(42),
, 3,
GPE3, 1,
Offset(0x3C), //Offset(60),
PMEN, 1,
UPRW, 1,
Offset(0x42), //Offset(66),
, 1,
GPEC, 1,
Offset(0x64), //Offset(100),
Offset(0x65), //Offset(101),
, 1,
SCIS, 1,
, 6,
}
OperationRegion(GPIO, SystemIO, GPBS, 0x64)
Field(GPIO, ByteAcc, NoLock, Preserve)
{
GU00, 8,
GU01, 8,
GU02, 8,
GU03, 8,
GIO0, 8,
GIO1, 8,
GIO2, 8,
GIO3, 8,
Offset(0xC), //Offset(12),
GL00, 8,
GL01, 8,
BTPR, 1,
GL02, 7,
, 3,
GP27, 1,
GP28, 1,
, 3,
Offset(0x18), //Offset(24),
GB00, 8,
GB01, 8,
GB02, 8,
GB03, 8,
Offset(0x2C), //Offset(44),
GIV0, 8,
GIV1, 8,
GIV2, 8,
GIV3, 8,
GU04, 8,
GU05, 8,
GU06, 8,
GU07, 8,
GIO4, 8,
GIO5, 8,
GIO6, 8,
GIO7, 8,
GL04, 8,
GL05, 8,
GL06, 8,
GL07, 8,
Offset(0x40), //Offset(64),
GU08, 8,
GU09, 8,
GU0A, 8,
GU0B, 8,
GIO8, 8,
GIO9, 8,
GIOA, 8,
GIOB, 8,
GL08, 8,
GL09, 8,
GL0A, 8,
GL0B, 8,
}
OperationRegion(RCRB, SystemMemory, SRCB, 0x4000)
Field(RCRB, DWordAcc, Lock, Preserve)
{
Offset(0x1000), //Offset(4096),
Offset(0x3000), //Offset(12288),
Offset(0x3404), //Offset(13316),
HPAS, 2,
, 5,
HPAE, 1,
Offset(0x3418), //Offset(13336),
, 1,
, 1,
SATD, 1,
SMBD, 1,
HDAD, 1,
Offset(0x341A), //Offset(13338),
RP1D, 1,
RP2D, 1,
RP3D, 1,
RP4D, 1,
RP5D, 1,
RP6D, 1,
RP7D, 1,
RP8D, 1,
Offset(0x359C), //Offset(13724),
UP0D, 1,
UP1D, 1,
UP2D, 1,
UP3D, 1,
UP4D, 1,
UP5D, 1,
UP6D, 1,
UP7D, 1,
UP8D, 1,
UP9D, 1,
UPAD, 1,
UPBD, 1,
UPCD, 1,
UPDD, 1,
, 1,
, 1,
}
Method(GPI0, 4, NotSerialized)
{
If(LEqual(Or(Arg0, Arg1), Zero))
{
Return(Ones)
}
Else
{
If(And(LEqual(Arg0, Zero), LEqual(Arg1, One)))
{
Return(0x0384)
}
}
Return(Multiply(0x1E, Subtract(0x09, Add(Arg2, Arg3))))
}
Method(GDMA, 2, NotSerialized)
{
If(LEqual(Arg0, One))
{
If(LEqual(Arg1, One))
{
Return(0x0F)
}
}
Return(Ones)
}
Method(SFLG, 5, NotSerialized)
{
Store(Zero, Local0)
Or(Arg1, Local0, Local0)
Or(ShiftLeft(Arg0, One), Local0, Local0)
Or(ShiftLeft(Arg2, 0x03), Local0, Local0)
Or(ShiftLeft(Arg3, 0x02), Local0, Local0)
Or(ShiftLeft(Arg4, 0x04), Local0, Local0)
Return(Local0)
}
Method(SPIO, 3, NotSerialized)
{
Name(PBUF, Buffer(0x05)
{
0x00, 0x00, 0x00, 0x00, 0x00
})
CreateByteField(PBUF,Zero,RCT)
CreateByteField(PBUF,One,ISP)
CreateByteField(PBUF,0x02,FAST)
CreateByteField(PBUF,0x03,DMAE)
CreateByteField(PBUF,0x04,PIOT)
If(LOr(LEqual(Arg0, Zero), LEqual(Arg0, Ones)))
{
Return(PBUF)
}
If(LGreater(Arg0, 0xF0))
{
Store(One, DMAE)
Store(Zero, PIOT)
}
Else
{
Store(One, FAST)
If(And(Arg1, 0x02))
{
If(And(LEqual(Arg0, 0x78), And(Arg2, 0x02)))
{
Store(0x03, RCT)
Store(0x02, ISP)
Store(0x04, PIOT)
Return(PBUF)
}
If(And(LLessEqual(Arg0, 0xB4), And(Arg2, One)))
{
Store(One, RCT)
Store(0x02, ISP)
Store(0x03, PIOT)
Return(PBUF)
}
Else
{
Store(Zero, RCT)
Store(One, ISP)
Store(0x02, PIOT)
}
}
}
Return(PBUF)
}
Method(SDMA, 3, NotSerialized)
{
Name(PBUF, Buffer(0x05)
{
0x00, 0x00, 0x00, 0x00
})
CreateByteField(PBUF,Zero,PCT)
CreateByteField(PBUF,One,PCB)
CreateByteField(PBUF,0x02,UDMT)
CreateByteField(PBUF,0x03,UDME)
CreateByteField(PBUF,0x04,DMAT)
If(LOr(LEqual(Arg0, Zero), LEqual(Arg0, Ones)))
{
Return(PBUF)
}
If(LLessEqual(Arg0, 0x78))
{
If(And(Arg1, 0x04))
{
Store(One, UDME)
If(And(LLessEqual(Arg0, 0x0F), And(Arg2, 0x40)))
{
Store(One, UDMT)
Store(One, PCB)
Store(One, PCT)
Store(0x06, DMAT)
Return(PBUF)
}
If(And(LLessEqual(Arg0, 0x14), And(Arg2, 0x20)))
{
Store(One, UDMT)
Store(One, PCB)
Store(One, PCT)
Store(0x05, DMAT)
Return(PBUF)
}
If(And(LLessEqual(Arg0, 0x1E), And(Arg2, 0x10)))
{
Store(One, PCB)
Store(0x02, PCT)
Store(0x04, DMAT)
Return(PBUF)
}
If(And(LLessEqual(Arg0, 0x2D), And(Arg2, 0x08)))
{
Store(One, PCB)
Store(One, PCT)
Store(0x03, DMAT)
Return(PBUF)
}
If(And(LLessEqual(Arg0, 0x3C), And(Arg2, 0x04)))
{
Store(0x02, PCT)
Store(0x02, DMAT)
Return(PBUF)
}
If(And(LLessEqual(Arg0, 0x5A), And(Arg2, 0x02)))
{
Store(One, PCT)
Store(One, DMAT)
Return(PBUF)
}
If(And(LLessEqual(Arg0, 0x78), And(Arg2, One)))
{
Store(Zero, DMAT)
}
}
}
Return(PBUF)
}
Method(SETT, 3, Serialized)
{
If(And(Arg1, 0x02))
{
If(LAnd(LLessEqual(Arg0, 0x78), And(Arg2, 0x02)))
{
Return(0x0B)
}
If(LAnd(LLessEqual(Arg0, 0xB4), And(Arg2, One)))
{
Return(0x09)
}
}
Return(0x04)
}
}
Scope(_SB.PCI0)
{
Device(GLAN)
{
Name(_ADR, 0x00190000)
Method(_PRW, 0, NotSerialized)
{
If(WOLE)
{
Return(Package(2) {0x0D, 0x04})
}
Else
{
Return(Package(2) {0x0D, Zero})
}
}
}
Device(EHC1)
{
Name(_ADR, 0x001D0000)
OperationRegion(PWKE, PCI_Config, 0x62, 0x04)
Field(PWKE, DWordAcc, NoLock, Preserve)
{
, 1,
PWUC, 8,
}
Method(_PSW, 1, NotSerialized)
{
If(Arg0)
{
Store(Ones, PWUC)
}
Else
{
Store(Zero, PWUC)
}
}
Method(_S3D, 0, NotSerialized)
{
Return(0x02)
}
Method(_S4D, 0, NotSerialized)
{
Return(0x02)
}
Device(HUBN)
{
Name(_ADR, Zero)
Device(PR01)
{
Name(_ADR, One)
Name(_UPC, Package(4) {0xFF, Zero, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
Device(PR11)
{
Name(_ADR, One)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE1, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
}
Device(PR12)
{
Name(_ADR, 0x02)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE1, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
}
Device(PR13)
{
Name(_ADR, 0x03)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE1, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
}
Device(PR14)
{
Name(_ADR, 0x04)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
Alias(SBV1, SDGV)
Method(_DSM, 4, Serialized)
{
Name(_T_0, Zero)
If(LEqual(Arg0, ToUUID("A5FC708F-87754BA6-BD0CBA90A1EC72F8")}))
{
While(One)
{
Store(ToInteger(Arg2), _T_0)
If(LEqual(_T_0, Zero))
{
If(LEqual(Arg1, One))
{
Return(Buffer(One)
{
0x07
})
}
Else
{
Return(Buffer(One)
{
0x00
})
}
}
Else
{
If(LEqual(_T_0, One))
{
If(LEqual(SDGV, 0xFF))
{
Return(Zero)
}
Else
{
Return(One)
}
}
Else
{
If(LEqual(_T_0, 0x02))
{
Return(SDGV)
}
}
}
Break
}
}
Return(Zero)
}
}
Device(PR15)
{
Name(_ADR, 0x05)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB0, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
Alias(SBV2, SDGV)
Method(_DSM, 4, Serialized)
{
Name(_T_0, Zero)
If(LEqual(Arg0, ToUUID("A5FC708F-87754BA6-BD0CBA90A1EC72F8")}))
{
While(One)
{
Store(ToInteger(Arg2), _T_0)
If(LEqual(_T_0, Zero))
{
If(LEqual(Arg1, One))
{
Return(Buffer(One)
{
0x07
})
}
Else
{
Return(Buffer(One)
{
0x00
})
}
}
Else
{
If(LEqual(_T_0, One))
{
If(LEqual(SDGV, 0xFF))
{
Return(Zero)
}
Else
{
Return(One)
}
}
Else
{
If(LEqual(_T_0, 0x02))
{
Return(SDGV)
}
}
}
Break
}
}
Return(Zero)
}
}
Device(PR16)
{
Name(_ADR, 0x06)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB0, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
Alias(SBV1, SDGV)
Method(_DSM, 4, Serialized)
{
Name(_T_0, Zero)
If(LEqual(Arg0, ToUUID("A5FC708F-87754BA6-BD0CBA90A1EC72F8")}))
{
While(One)
{
Store(ToInteger(Arg2), _T_0)
If(LEqual(_T_0, Zero))
{
If(LEqual(Arg1, One))
{
Return(Buffer(One)
{
0x07
})
}
Else
{
Return(Buffer(One)
{
0x00
})
}
}
Else
{
If(LEqual(_T_0, One))
{
If(LEqual(SDGV, 0xFF))
{
Return(Zero)
}
Else
{
Return(One)
}
}
Else
{
If(LEqual(_T_0, 0x02))
{
Return(SDGV)
}
}
}
Break
}
}
Return(Zero)
}
}
Device(PR17)
{
Name(_ADR, 0x07)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
Alias(SBV2, SDGV)
Method(_DSM, 4, Serialized)
{
Name(_T_0, Zero)
If(LEqual(Arg0, ToUUID("A5FC708F-87754BA6-BD0CBA90A1EC72F8")}))
{
While(One)
{
Store(ToInteger(Arg2), _T_0)
If(LEqual(_T_0, Zero))
{
If(LEqual(Arg1, One))
{
Return(Buffer(One)
{
0x07
})
}
Else
{
Return(Buffer(One)
{
0x00
})
}
}
Else
{
If(LEqual(_T_0, One))
{
If(LEqual(SDGV, 0xFF))
{
Return(Zero)
}
Else
{
Return(One)
}
}
Else
{
If(LEqual(_T_0, 0x02))
{
Return(SDGV)
}
}
}
Break
}
}
Return(Zero)
}
}
Device(PR18)
{
Name(_ADR, 0x08)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
}
}
}
Name(_PRW, Package(2) {0x0D, 0x03})
}
Device(EHC2)
{
Name(_ADR, 0x001A0000)
OperationRegion(PWKE, PCI_Config, 0x62, 0x04)
Field(PWKE, DWordAcc, NoLock, Preserve)
{
, 1,
PWUC, 6,
}
Method(_PSW, 1, NotSerialized)
{
If(Arg0)
{
Store(Ones, PWUC)
}
Else
{
Store(Zero, PWUC)
}
}
Method(_S3D, 0, NotSerialized)
{
Return(0x02)
}
Method(_S4D, 0, NotSerialized)
{
Return(0x02)
}
Device(HUBN)
{
Name(_ADR, Zero)
Device(PR01)
{
Name(_ADR, One)
Name(_UPC, Package(4) {0xFF, Zero, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
Device(PR11)
{
Name(_ADR, One)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
}
Device(PR12)
{
Name(_ADR, 0x02)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE0, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
Alias(SBV1, SDGV)
Method(_DSM, 4, Serialized)
{
Name(_T_0, Zero)
If(LEqual(Arg0, ToUUID("A5FC708F-87754BA6-BD0CBA90A1EC72F8")}))
{
While(One)
{
Store(ToInteger(Arg2), _T_0)
If(LEqual(_T_0, Zero))
{
If(LEqual(Arg1, One))
{
Return(Buffer(One)
{
0x07
})
}
Else
{
Return(Buffer(One)
{
0x00
})
}
}
Else
{
If(LEqual(_T_0, One))
{
If(LEqual(SDGV, 0xFF))
{
Return(Zero)
}
Else
{
Return(One)
}
}
Else
{
If(LEqual(_T_0, 0x02))
{
Return(SDGV)
}
}
}
Break
}
}
Return(Zero)
}
}
Device(PR13)
{
Name(_ADR, 0x03)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE0, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
Alias(SBV2, SDGV)
Method(_DSM, 4, Serialized)
{
Name(_T_0, Zero)
If(LEqual(Arg0, ToUUID("A5FC708F-87754BA6-BD0CBA90A1EC72F8")}))
{
While(One)
{
Store(ToInteger(Arg2), _T_0)
If(LEqual(_T_0, Zero))
{
If(LEqual(Arg1, One))
{
Return(Buffer(One)
{
0x07
})
}
Else
{
Return(Buffer(One)
{
0x00
})
}
}
Else
{
If(LEqual(_T_0, One))
{
If(LEqual(SDGV, 0xFF))
{
Return(Zero)
}
Else
{
Return(One)
}
}
Else
{
If(LEqual(_T_0, 0x02))
{
Return(SDGV)
}
}
}
Break
}
}
Return(Zero)
}
}
Device(PR14)
{
Name(_ADR, 0x04)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
}
Device(PR15)
{
Name(_ADR, 0x05)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
}
Device(PR16)
{
Name(_ADR, 0x06)
Name(_UPC, Package(4) {0xFF, 0xFF, Zero, Zero})
Name(_PLD, Package(1)
{
Buffer(0x10)
{
0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
}
}
}
Name(_PRW, Package(2) {0x0D, 0x03})
}
Device(HDEF)
{
Name(_ADR, 0x001B0000)
OperationRegion(HDAR, PCI_Config, 0x4C, 0x10)
Field(HDAR, WordAcc, NoLock, Preserve)
{
DCKA, 1,
, 7,
DCKM, 1,
, 6,
DCKS, 1,
Offset(0x8), //Offset(8),
Offset(0x9), //Offset(9),
, 7,
PMES, 1,
}
Method(_PRW, 0, NotSerialized)
{
If(WKMD)
{
Return(Package(2) {0x0D, 0x04})
}
Else
{
Return(Package(2) {0x0D, Zero})
}
}
}
Device(RP01)
{
Name(_ADR, 0x001C0000)
OperationRegion(PXCS, PCI_Config, 0x40, 0xC0)
Field(PXCS, AnyAcc, NoLock, Preserve)
{
Offset(0x10), //Offset(16),
L0SE, 1,
, 7,
, 8,
Offset(0x13), //Offset(19),
, 5,
LASX, 1,
Offset(0x1A), //Offset(26),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
, 1,
LSCX, 1,
Offset(0x20), //Offset(32),
Offset(0x22), //Offset(34),
PSPX, 1,
Offset(0x98), //Offset(152),
Offset(0x9B), //Offset(155),
, 6,
HPEX, 1,
PMEX, 1,
Offset(0x9F), //Offset(159),
, 6,
HPSX, 1,
PMSX, 1,
}
Device(PXSX)
{
Name(_ADR, Zero)
Name(_PRW, Package(2) {0x09, 0x04})
}
Method(HPME, 0, Serialized)
{
If(PMSX)
{
Store(0xC8, Local0)
While(Local0)
{
Store(One, PMSX)
If(PMSX)
{
Decrement(Local0)
}
Else
{
Store(Zero, Local0)
}
}
}
}
Method(_PRW, 0, NotSerialized)
{
If(PMEE)
{
Return(Package(2) {0x09, 0x04})
}
Else
{
Return(Package(2) {0x09, Zero})
}
}
Scope(PXSX)
{
OperationRegion(WOLS, PCI_Config, 0x45, One)
Field(WOLS, AnyAcc, NoLock, Preserve)
{
WOLA, 8,
}
Method(_PSW, 1, NotSerialized)
{
Store(Arg0, ^^^LPCB.EC.WOL)
}
}
Name(PR05, Package(4)
{
Package(4) {0xFFFF, Zero, LNKA, Zero},
Package(4) {0xFFFF, One, LNKB, Zero},
Package(4) {0xFFFF, 0x02, LNKC, Zero},
Package(4) {0xFFFF, 0x03, LNKD, Zero}
})
Name(AR05, Package(4)
{
Package(4) {0xFFFF, Zero, Zero, 0x10},
Package(4) {0xFFFF, One, Zero, 0x11},
Package(4) {0xFFFF, 0x02, Zero, 0x12},
Package(4) {0xFFFF, 0x03, Zero, 0x13}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR05)
}
Return(PR05)
}
}
Device(RP02)
{
Name(_ADR, 0x001C0001)
OperationRegion(PXCS, PCI_Config, 0x40, 0xC0)
Field(PXCS, AnyAcc, NoLock, Preserve)
{
Offset(0x10), //Offset(16),
L0SE, 1,
, 7,
, 8,
Offset(0x13), //Offset(19),
, 5,
LASX, 1,
Offset(0x1A), //Offset(26),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
, 1,
LSCX, 1,
Offset(0x20), //Offset(32),
Offset(0x22), //Offset(34),
PSPX, 1,
Offset(0x98), //Offset(152),
Offset(0x9B), //Offset(155),
, 6,
HPEX, 1,
PMEX, 1,
Offset(0x9F), //Offset(159),
, 6,
HPSX, 1,
PMSX, 1,
}
Device(PXSX)
{
Name(_ADR, Zero)
Name(_PRW, Package(2) {0x09, 0x04})
}
Method(HPME, 0, Serialized)
{
If(PMSX)
{
Store(0xC8, Local0)
While(Local0)
{
Store(One, PMSX)
If(PMSX)
{
Decrement(Local0)
}
Else
{
Store(Zero, Local0)
}
}
Notify(PXSX, 0x02)
}
}
Method(_PRW, 0, NotSerialized)
{
If(PMEE)
{
Return(Package(2) {0x09, 0x03})
}
Else
{
Return(Package(2) {0x09, Zero})
}
}
Name(PR06, Package(4)
{
Package(4) {0xFFFF, Zero, LNKB, Zero},
Package(4) {0xFFFF, One, LNKC, Zero},
Package(4) {0xFFFF, 0x02, LNKD, Zero},
Package(4) {0xFFFF, 0x03, LNKA, Zero}
})
Name(AR06, Package(4)
{
Package(4) {0xFFFF, Zero, Zero, 0x11},
Package(4) {0xFFFF, One, Zero, 0x12},
Package(4) {0xFFFF, 0x02, Zero, 0x13},
Package(4) {0xFFFF, 0x03, Zero, 0x10}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR06)
}
Return(PR06)
}
}
Device(RP03)
{
Name(_ADR, 0x001C0002)
OperationRegion(PXCS, PCI_Config, 0x40, 0xC0)
Field(PXCS, AnyAcc, NoLock, Preserve)
{
Offset(0x10), //Offset(16),
L0SE, 1,
, 7,
, 8,
Offset(0x13), //Offset(19),
, 5,
LASX, 1,
Offset(0x1A), //Offset(26),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
, 1,
LSCX, 1,
Offset(0x20), //Offset(32),
Offset(0x22), //Offset(34),
PSPX, 1,
Offset(0x98), //Offset(152),
Offset(0x9B), //Offset(155),
, 6,
HPEX, 1,
PMEX, 1,
Offset(0x9F), //Offset(159),
, 6,
HPSX, 1,
PMSX, 1,
}
Device(PXSX)
{
Name(_ADR, Zero)
Name(_PRW, Package(2) {0x09, 0x04})
}
Method(HPME, 0, Serialized)
{
If(PMSX)
{
Store(0xC8, Local0)
While(Local0)
{
Store(One, PMSX)
If(PMSX)
{
Decrement(Local0)
}
Else
{
Store(Zero, Local0)
}
}
Notify(PXSX, 0x02)
}
}
Method(_PRW, 0, NotSerialized)
{
If(PMEE)
{
Return(Package(2) {0x09, 0x03})
}
Else
{
Return(Package(2) {0x09, Zero})
}
}
Name(PR07, Package(4)
{
Package(4) {0xFFFF, Zero, LNKC, Zero},
Package(4) {0xFFFF, One, LNKD, Zero},
Package(4) {0xFFFF, 0x02, LNKA, Zero},
Package(4) {0xFFFF, 0x03, LNKB, Zero}
})
Name(AR07, Package(4)
{
Package(4) {0xFFFF, Zero, Zero, 0x12},
Package(4) {0xFFFF, One, Zero, 0x13},
Package(4) {0xFFFF, 0x02, Zero, 0x10},
Package(4) {0xFFFF, 0x03, Zero, 0x11}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR07)
}
Return(PR07)
}
}
Device(RP04)
{
Name(_ADR, 0x001C0003)
OperationRegion(PXCS, PCI_Config, 0x40, 0xC0)
Field(PXCS, AnyAcc, NoLock, Preserve)
{
Offset(0x10), //Offset(16),
L0SE, 1,
, 7,
, 8,
Offset(0x13), //Offset(19),
, 5,
LASX, 1,
Offset(0x1A), //Offset(26),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
, 1,
LSCX, 1,
Offset(0x20), //Offset(32),
Offset(0x22), //Offset(34),
PSPX, 1,
Offset(0x98), //Offset(152),
Offset(0x9B), //Offset(155),
, 6,
HPEX, 1,
PMEX, 1,
Offset(0x9F), //Offset(159),
, 6,
HPSX, 1,
PMSX, 1,
}
Device(PXSX)
{
Name(_ADR, Zero)
Name(_PRW, Package(2) {0x09, 0x04})
}
Method(HPME, 0, Serialized)
{
If(PMSX)
{
Store(0xC8, Local0)
While(Local0)
{
Store(One, PMSX)
If(PMSX)
{
Decrement(Local0)
}
Else
{
Store(Zero, Local0)
}
}
Notify(PXSX, 0x02)
}
}
Method(_PRW, 0, NotSerialized)
{
If(PMEE)
{
Return(Package(2) {0x09, 0x03})
}
Else
{
Return(Package(2) {0x09, Zero})
}
}
Name(PR08, Package(4)
{
Package(4) {0xFFFF, Zero, LNKD, Zero},
Package(4) {0xFFFF, One, LNKA, Zero},
Package(4) {0xFFFF, 0x02, LNKB, Zero},
Package(4) {0xFFFF, 0x03, LNKC, Zero}
})
Name(AR08, Package(4)
{
Package(4) {0xFFFF, Zero, Zero, 0x13},
Package(4) {0xFFFF, One, Zero, 0x10},
Package(4) {0xFFFF, 0x02, Zero, 0x11},
Package(4) {0xFFFF, 0x03, Zero, 0x12}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR08)
}
Return(PR08)
}
}
Device(RP05)
{
Name(_ADR, 0x001C0004)
OperationRegion(PXCS, PCI_Config, 0x40, 0xC0)
Field(PXCS, AnyAcc, NoLock, Preserve)
{
Offset(0x10), //Offset(16),
L0SE, 1,
, 7,
, 8,
Offset(0x13), //Offset(19),
, 5,
LASX, 1,
Offset(0x1A), //Offset(26),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
, 1,
LSCX, 1,
Offset(0x20), //Offset(32),
Offset(0x22), //Offset(34),
PSPX, 1,
Offset(0x98), //Offset(152),
Offset(0x9B), //Offset(155),
, 6,
HPEX, 1,
PMEX, 1,
Offset(0x9F), //Offset(159),
, 6,
HPSX, 1,
PMSX, 1,
}
Device(PXSX)
{
Name(_ADR, Zero)
Name(_PRW, Package(2) {0x09, 0x04})
}
Method(HPME, 0, Serialized)
{
If(PMSX)
{
Store(0xC8, Local0)
While(Local0)
{
Store(One, PMSX)
If(PMSX)
{
Decrement(Local0)
}
Else
{
Store(Zero, Local0)
}
}
Notify(PXSX, 0x02)
}
}
Method(_PRW, 0, NotSerialized)
{
If(PMEE)
{
Return(Package(2) {0x09, 0x03})
}
Else
{
Return(Package(2) {0x09, Zero})
}
}
Name(PR09, Package(4)
{
Package(4) {0xFFFF, Zero, LNKA, Zero},
Package(4) {0xFFFF, One, LNKB, Zero},
Package(4) {0xFFFF, 0x02, LNKC, Zero},
Package(4) {0xFFFF, 0x03, LNKD, Zero}
})
Name(AR09, Package(4)
{
Package(4) {0xFFFF, Zero, Zero, 0x10},
Package(4) {0xFFFF, One, Zero, 0x11},
Package(4) {0xFFFF, 0x02, Zero, 0x12},
Package(4) {0xFFFF, 0x03, Zero, 0x13}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR09)
}
Return(PR09)
}
}
Device(RP06)
{
Name(_ADR, 0x001C0005)
OperationRegion(PXCS, PCI_Config, 0x40, 0xC0)
Field(PXCS, AnyAcc, NoLock, Preserve)
{
Offset(0x10), //Offset(16),
L0SE, 1,
, 7,
, 8,
Offset(0x13), //Offset(19),
, 5,
LASX, 1,
Offset(0x1A), //Offset(26),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
, 1,
LSCX, 1,
Offset(0x20), //Offset(32),
Offset(0x22), //Offset(34),
PSPX, 1,
Offset(0x98), //Offset(152),
Offset(0x9B), //Offset(155),
, 6,
HPEX, 1,
PMEX, 1,
Offset(0x9F), //Offset(159),
, 6,
HPSX, 1,
PMSX, 1,
}
Device(PXSX)
{
Name(_ADR, Zero)
Name(_PRW, Package(2) {0x09, 0x04})
}
Method(HPME, 0, Serialized)
{
If(PMSX)
{
Store(0xC8, Local0)
While(Local0)
{
Store(One, PMSX)
If(PMSX)
{
Decrement(Local0)
}
Else
{
Store(Zero, Local0)
}
}
Notify(PXSX, 0x02)
}
}
Method(_PRW, 0, NotSerialized)
{
If(PMEE)
{
Return(Package(2) {0x09, 0x03})
}
Else
{
Return(Package(2) {0x09, Zero})
}
}
Name(PR0C, Package(4)
{
Package(4) {0xFFFF, Zero, LNKB, Zero},
Package(4) {0xFFFF, One, LNKC, Zero},
Package(4) {0xFFFF, 0x02, LNKD, Zero},
Package(4) {0xFFFF, 0x03, LNKA, Zero}
})
Name(AR0C, Package(4)
{
Package(4) {0xFFFF, Zero, Zero, 0x11},
Package(4) {0xFFFF, One, Zero, 0x12},
Package(4) {0xFFFF, 0x02, Zero, 0x13},
Package(4) {0xFFFF, 0x03, Zero, 0x10}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR0C)
}
Return(PR0C)
}
}
Device(RP07)
{
Name(_ADR, 0x001C0006)
OperationRegion(PXCS, PCI_Config, 0x40, 0xC0)
Field(PXCS, AnyAcc, NoLock, Preserve)
{
Offset(0x10), //Offset(16),
L0SE, 1,
, 7,
, 8,
Offset(0x13), //Offset(19),
, 5,
LASX, 1,
Offset(0x1A), //Offset(26),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
, 1,
LSCX, 1,
Offset(0x20), //Offset(32),
Offset(0x22), //Offset(34),
PSPX, 1,
Offset(0x98), //Offset(152),
Offset(0x9B), //Offset(155),
, 6,
HPEX, 1,
PMEX, 1,
Offset(0x9F), //Offset(159),
, 6,
HPSX, 1,
PMSX, 1,
}
Device(PXSX)
{
Name(_ADR, Zero)
Name(_PRW, Package(2) {0x09, 0x04})
}
Method(HPME, 0, Serialized)
{
If(PMSX)
{
Store(0xC8, Local0)
While(Local0)
{
Store(One, PMSX)
If(PMSX)
{
Decrement(Local0)
}
Else
{
Store(Zero, Local0)
}
}
Notify(PXSX, 0x02)
}
}
Method(_PRW, 0, NotSerialized)
{
If(PMEE)
{
Return(Package(2) {0x09, 0x03})
}
Else
{
Return(Package(2) {0x09, Zero})
}
}
Name(PR0D, Package(4)
{
Package(4) {0xFFFF, Zero, LNKC, Zero},
Package(4) {0xFFFF, One, LNKD, Zero},
Package(4) {0xFFFF, 0x02, LNKE, Zero},
Package(4) {0xFFFF, 0x03, LNKF, Zero}
})
Name(AR0D, Package(4)
{
Package(4) {0xFFFF, Zero, Zero, 0x12},
Package(4) {0xFFFF, One, Zero, 0x13},
Package(4) {0xFFFF, 0x02, Zero, 0x14},
Package(4) {0xFFFF, 0x03, Zero, 0x15}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR0D)
}
Return(PR0D)
}
}
Device(RP08)
{
Name(_ADR, 0x001C0007)
OperationRegion(PXCS, PCI_Config, 0x40, 0xC0)
Field(PXCS, AnyAcc, NoLock, Preserve)
{
Offset(0x10), //Offset(16),
L0SE, 1,
, 7,
, 8,
Offset(0x13), //Offset(19),
, 5,
LASX, 1,
Offset(0x1A), //Offset(26),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
, 1,
LSCX, 1,
Offset(0x20), //Offset(32),
Offset(0x22), //Offset(34),
PSPX, 1,
Offset(0x98), //Offset(152),
Offset(0x9B), //Offset(155),
, 6,
HPEX, 1,
PMEX, 1,
Offset(0x9F), //Offset(159),
, 6,
HPSX, 1,
PMSX, 1,
}
Device(PXSX)
{
Name(_ADR, Zero)
Name(_PRW, Package(2) {0x09, 0x04})
}
Method(HPME, 0, Serialized)
{
If(PMSX)
{
Store(0xC8, Local0)
While(Local0)
{
Store(One, PMSX)
If(PMSX)
{
Decrement(Local0)
}
Else
{
Store(Zero, Local0)
}
}
Notify(PXSX, 0x02)
}
}
Method(_PRW, 0, NotSerialized)
{
If(PMEE)
{
Return(Package(2) {0x09, 0x03})
}
Else
{
Return(Package(2) {0x09, Zero})
}
}
Name(PR0E, Package(4)
{
Package(4) {0xFFFF, Zero, LNKD, Zero},
Package(4) {0xFFFF, One, LNKA, Zero},
Package(4) {0xFFFF, 0x02, LNKB, Zero},
Package(4) {0xFFFF, 0x03, LNKC, Zero}
})
Name(AR0E, Package(4)
{
Package(4) {0xFFFF, Zero, Zero, 0x13},
Package(4) {0xFFFF, One, Zero, 0x10},
Package(4) {0xFFFF, 0x02, Zero, 0x11},
Package(4) {0xFFFF, 0x03, Zero, 0x12}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR0E)
}
Return(PR0E)
}
}
Device(SAT0)
{
Name(_ADR, 0x001F0002)
}
Device(SAT1)
{
Name(_ADR, 0x001F0005)
}
Device(SBUS)
{
Name(_ADR, 0x001F0003)
OperationRegion(SMBP, PCI_Config, 0x40, 0xC0)
Field(SMBP, DWordAcc, NoLock, Preserve)
{
, 2,
I2CE, 1,
}
OperationRegion(SMPB, PCI_Config, 0x20, 0x04)
Field(SMPB, DWordAcc, NoLock, Preserve)
{
, 5,
SBAR, 11,
}
OperationRegion(SMBI, SystemIO, ShiftLeft(SBAR, 0x05), 0x10)
Field(SMBI, ByteAcc, NoLock, Preserve)
{
HSTS, 8,
, 8,
HCON, 8,
HCOM, 8,
TXSA, 8,
DAT0, 8,
DAT1, 8,
HBDR, 8,
PECR, 8,
RXSA, 8,
SDAT, 16,
}
Method(SSXB, 2, Serialized)
{
If(STRT())
{
Return(Zero)
}
Store(Zero, I2CE)
Store(0xBF, HSTS)
Store(Arg0, TXSA)
Store(Arg1, HCOM)
Store(0x48, HCON)
If(COMP())
{
Or(HSTS, 0xFF, HSTS)
Return(One)
}
Return(Zero)
}
Method(SRXB, 1, Serialized)
{
If(STRT())
{
Return(0xFFFF)
}
Store(Zero, I2CE)
Store(0xBF, HSTS)
Store(Or(Arg0, One), TXSA)
Store(0x44, HCON)
If(COMP())
{
Or(HSTS, 0xFF, HSTS)
Return(DAT0)
}
Return(0xFFFF)
}
Method(SWRB, 3, Serialized)
{
If(STRT())
{
Return(Zero)
}
Store(Zero, I2CE)
Store(0xBF, HSTS)
Store(Arg0, TXSA)
Store(Arg1, HCOM)
Store(Arg2, DAT0)
Store(0x48, HCON)
If(COMP())
{
Or(HSTS, 0xFF, HSTS)
Return(One)
}
Return(Zero)
}
Method(SRDB, 2, Serialized)
{
If(STRT())
{
Return(0xFFFF)
}
Store(Zero, I2CE)
Store(0xBF, HSTS)
Store(Or(Arg0, One), TXSA)
Store(Arg1, HCOM)
Store(0x48, HCON)
If(COMP())
{
Or(HSTS, 0xFF, HSTS)
Return(DAT0)
}
Return(0xFFFF)
}
Method(SWRW, 3, Serialized)
{
If(STRT())
{
Return(Zero)
}
Store(Zero, I2CE)
Store(0xBF, HSTS)
Store(Arg0, TXSA)
Store(Arg1, HCOM)
And(Arg2, 0xFF, DAT1)
And(ShiftRight(Arg2, 0x08), 0xFF, DAT0)
Store(0x4C, HCON)
If(COMP())
{
Or(HSTS, 0xFF, HSTS)
Return(One)
}
Return(Zero)
}
Method(SRDW, 2, Serialized)
{
If(STRT())
{
Return(0xFFFF)
}
Store(Zero, I2CE)
Store(0xBF, HSTS)
Store(Or(Arg0, One), TXSA)
Store(Arg1, HCOM)
Store(0x4C, HCON)
If(COMP())
{
Or(HSTS, 0xFF, HSTS)
Return(Or(ShiftLeft(DAT0, 0x08), DAT1))
}
Return(Ones)
}
Method(SBLW, 4, Serialized)
{
If(STRT())
{
Return(Zero)
}
Store(Arg3, I2CE)
Store(0xBF, HSTS)
Store(Arg0, TXSA)
Store(Arg1, HCOM)
Store(SizeOf(Arg2), DAT0)
Store(Zero, Local1)
Store(DerefOf(Index(Arg2, Zero)), HBDR)
Store(0x54, HCON)
While(LGreater(SizeOf(Arg2), Local1))
{
Store(0x0FA0, Local0)
While(LAnd(LNot(And(HSTS, 0x80)), Local0))
{
Decrement(Local0)
Stall(0x32)
}
If(LNot(Local0))
{
KILL()
Return(Zero)
}
Store(0x80, HSTS)
Increment(Local1)
If(LGreater(SizeOf(Arg2), Local1))
{
Store(DerefOf(Index(Arg2, Local1)), HBDR)
}
}
If(COMP())
{
Or(HSTS, 0xFF, HSTS)
Return(One)
}
Return(Zero)
}
Method(SBLR, 3, Serialized)
{
Name(TBUF, Buffer(0x0100){})
If(STRT())
{
Return(Zero)
}
Store(Arg2, I2CE)
Store(0xBF, HSTS)
Store(Or(Arg0, One), TXSA)
Store(Arg1, HCOM)
Store(0x54, HCON)
Store(0x0FA0, Local0)
While(LAnd(LNot(And(HSTS, 0x80)), Local0))
{
Decrement(Local0)
Stall(0x32)
}
If(LNot(Local0))
{
KILL()
Return(Zero)
}
Store(DAT0, Index(TBUF, Zero))
Store(0x80, HSTS)
Store(One, Local1)
While(LLess(Local1, DerefOf(Index(TBUF, Zero))))
{
Store(0x0FA0, Local0)
While(LAnd(LNot(And(HSTS, 0x80)), Local0))
{
Decrement(Local0)
Stall(0x32)
}
If(LNot(Local0))
{
KILL()
Return(Zero)
}
Store(HBDR, Index(TBUF, Local1))
Store(0x80, HSTS)
Increment(Local1)
}
If(COMP())
{
Or(HSTS, 0xFF, HSTS)
Return(TBUF)
}
Return(Zero)
}
Method(STRT, 0, Serialized)
{
Store(0xC8, Local0)
While(Local0)
{
If(And(HSTS, 0x40))
{
Decrement(Local0)
Sleep(One)
If(LEqual(Local0, Zero))
{
Return(One)
}
}
Else
{
Store(Zero, Local0)
}
}
Store(0x0FA0, Local0)
While(Local0)
{
If(And(HSTS, One))
{
Decrement(Local0)
Stall(0x32)
If(LEqual(Local0, Zero))
{
KILL()
}
}
Else
{
Return(Zero)
}
}
Return(One)
}
Method(COMP, 0, Serialized)
{
Store(0x0FA0, Local0)
While(Local0)
{
If(And(HSTS, 0x02))
{
Return(One)
}
Else
{
Decrement(Local0)
Stall(0x32)
If(LEqual(Local0, Zero))
{
KILL()
}
}
}
Return(Zero)
}
Method(KILL, 0, Serialized)
{
Or(HCON, 0x02, HCON)
Or(HSTS, 0xFF, HSTS)
}
}
}
Scope(_SB.PCI0.SAT0)
{
Device(PRT5)
{
Name(_ADR, 0x0005FFFF)
Method(_DSM, 4, Serialized)
{
Name(_T_1, Zero)
Name(_T_0, Zero)
If(LEqual(Arg0, ToUUID("BDFAEF30-AEBB11DE-8A390800200C9A66")}))
{
While(One)
{
Store(ToInteger(Arg2), _T_0)
If(LEqual(_T_0, Zero))
{
While(One)
{
Store(ToInteger(Arg1), _T_1)
If(LEqual(_T_1, One))
{
If(LEqual(PFLV, FDTP))
{
Return(Buffer(One)
{
0x00
})
}
Return(Buffer(One)
{
0x0F
})
}
Else
{
Return(Buffer(One)
{
0x00
})
}
Break
}
}
Else
{
If(LEqual(_T_0, One))
{
Return(One)
}
Else
{
If(LEqual(_T_0, 0x02))
{
Store(Zero, GPE3)
If(LEqual(And(GL00, 0x08), 0x08))
{
Or(GIV0, 0x08, GIV0)
}
Else
{
And(GIV0, 0xF7, GIV0)
}
And(GIO0, 0xF7, GIO0)
Sleep(0x32)
And(GL08, 0xEF, GL08)
Sleep(0xC8)
Or(GIO0, 0x08, GIO0)
Store(One, GPS3)
Store(One, GPE3)
Return(One)
}
Else
{
If(LEqual(_T_0, 0x03))
{
Store(Zero, GPE3)
Store(One, GPS3)
And(GIO0, 0xF7, GIO0)
Sleep(0x32)
Or(GL08, 0x10, GL08)
Sleep(0x012C)
Or(GIO0, 0x08, GIO0)
Return(One)
}
Else
{
Return(Zero)
}
}
}
}
Break
}
}
Else
{
Return(Zero)
}
}
}
}
Scope(_GPE)
{
Method(_L13, 0, NotSerialized)
{
If(LEqual(PFLV, FDTP))
{
Return(Zero)
}
Store(Zero, GPE3)
Or(GL08, 0x10, GL08)
Notify(\_SB.PCI0.SAT0, 0x85)
Return(Zero)
}
}
Scope(_SB.PCI0)
{
Device(PEG0)
{
Name(_ADR, 0x00010000)
Name(_PRW, Package(2) {0x09, 0x04})
Name(PR0A, Package(4)
{
Package(4) {0xFFFF, Zero, LNKA, Zero},
Package(4) {0xFFFF, One, LNKB, Zero},
Package(4) {0xFFFF, 0x02, LNKC, Zero},
Package(4) {0xFFFF, 0x03, LNKD, Zero}
})
Name(AR0A, Package(4)
{
Package(4) {0xFFFF, Zero, Zero, 0x10},
Package(4) {0xFFFF, One, Zero, 0x11},
Package(4) {0xFFFF, 0x02, Zero, 0x12},
Package(4) {0xFFFF, 0x03, Zero, 0x13}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR0A)
}
Return(PR0A)
}
Device(PEGP)
{
Name(_ADR, Zero)
Name(_PRW, Package(2) {0x09, 0x04})
}
}
Device(PEG1)
{
Name(_ADR, 0x00010001)
Name(_PRW, Package(2) {0x09, 0x04})
Name(PR02, Package(4)
{
Package(4) {0xFFFF, Zero, LNKB, Zero},
Package(4) {0xFFFF, One, LNKC, Zero},
Package(4) {0xFFFF, 0x02, LNKD, Zero},
Package(4) {0xFFFF, 0x03, LNKA, Zero}
})
Name(AR02, Package(4)
{
Package(4) {0xFFFF, Zero, Zero, 0x10},
Package(4) {0xFFFF, One, Zero, 0x11},
Package(4) {0xFFFF, 0x02, Zero, 0x12},
Package(4) {0xFFFF, 0x03, Zero, 0x13}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR02)
}
Return(PR02)
}
}
Device(PEG2)
{
Name(_ADR, 0x00010002)
Name(_PRW, Package(2) {0x09, 0x04})
Name(PR03, Package(4)
{
Package(4) {0xFFFF, Zero, LNKC, Zero},
Package(4) {0xFFFF, One, LNKD, Zero},
Package(4) {0xFFFF, 0x02, LNKA, Zero},
Package(4) {0xFFFF, 0x03, LNKB, Zero}
})
Name(AR03, Package(4)
{
Package(4) {0xFFFF, Zero, Zero, 0x10},
Package(4) {0xFFFF, One, Zero, 0x11},
Package(4) {0xFFFF, 0x02, Zero, 0x12},
Package(4) {0xFFFF, 0x03, Zero, 0x13}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR03)
}
Return(PR03)
}
}
Device(PEG3)
{
Name(_ADR, 0x00060000)
Name(_PRW, Package(2) {0x09, 0x04})
Name(PR0B, Package(4)
{
Package(4) {0xFFFF, Zero, LNKD, Zero},
Package(4) {0xFFFF, One, LNKA, Zero},
Package(4) {0xFFFF, 0x02, LNKB, Zero},
Package(4) {0xFFFF, 0x03, LNKC, Zero}
})
Name(AR0B, Package(4)
{
Package(4) {0xFFFF, Zero, Zero, 0x10},
Package(4) {0xFFFF, One, Zero, 0x11},
Package(4) {0xFFFF, 0x02, Zero, 0x12},
Package(4) {0xFFFF, 0x03, Zero, 0x13}
})
Method(_PRT, 0, NotSerialized)
{
If(PICM)
{
Return(AR0B)
}
Return(PR0B)
}
}
Device(B0D4)
{
Name(_ADR, 0x00040000)
}
Device(GFX0)
{
Name(_ADR, 0x00020000)
Method(PCPC, 0, NotSerialized)
{
If(ECON) {}
ECST
0x6F
}
Method(PAPR, 0, NotSerialized)
{
If(ECON) {}
Else
{
Return(Zero)
}
}
Method(_DOS, 1, NotSerialized)
{
Store(And(Arg0, 0x07), DSEN)
If(LEqual(And(Arg0, 0x03), Zero))
{
If(CondRefOf(HDOS))
{
HDOS
}
}
}
Method(_DOD, 0, NotSerialized)
{
If(CondRefOf(IDAB))
{
IDAB
}
Else
{
Store(Zero, NDID)
If(LNotEqual(DIDL, Zero))
{
Store(SDDL(DIDL), DID1)
}
If(LNotEqual(DDL2, Zero))
{
Store(SDDL(DDL2), DID2)
}
If(LNotEqual(DDL3, Zero))
{
Store(SDDL(DDL3), DID3)
}
If(LNotEqual(DDL4, Zero))
{
Store(SDDL(DDL4), DID4)
}
If(LNotEqual(DDL5, Zero))
{
Store(SDDL(DDL5), DID5)
}
If(LNotEqual(DDL6, Zero))
{
Store(SDDL(DDL6), DID6)
}
If(LNotEqual(DDL7, Zero))
{
Store(SDDL(DDL7), DID7)
}
If(LNotEqual(DDL8, Zero))
{
Store(SDDL(DDL8), DID8)
}
}
If(LEqual(NDID, One))
{
Name(TMP1, Package(1) {Ones})
Store(Or(0x00010000, DID1), Index(TMP1, Zero))
Return(TMP1)
}
If(LEqual(NDID, 0x02))
{
Name(TMP2, Package(2) {Ones, Ones})
Store(Or(0x00010000, DID1), Index(TMP2, Zero))
Store(Or(0x00010000, DID2), Index(TMP2, One))
Return(TMP2)
}
If(LEqual(NDID, 0x03))
{
Name(TMP3, Package(3) {Ones, Ones, Ones})
Store(Or(0x00010000, DID1), Index(TMP3, Zero))
Store(Or(0x00010000, DID2), Index(TMP3, One))
Store(Or(0x00010000, DID3), Index(TMP3, 0x02))
Return(TMP3)
}
If(LEqual(NDID, 0x04))
{
Name(TMP4, Package(4) {Ones, Ones, Ones, Ones})
Store(Or(0x00010000, DID1), Index(TMP4, Zero))
Store(Or(0x00010000, DID2), Index(TMP4, One))
Store(Or(0x00010000, DID3), Index(TMP4, 0x02))
Store(Or(0x00010000, DID4), Index(TMP4, 0x03))
Return(TMP4)
}
If(LEqual(NDID, 0x05))
{
Name(TMP5, Package(5) {Ones, Ones, Ones, Ones, Ones})
Store(Or(0x00010000, DID1), Index(TMP5, Zero))
Store(Or(0x00010000, DID2), Index(TMP5, One))
Store(Or(0x00010000, DID3), Index(TMP5, 0x02))
Store(Or(0x00010000, DID4), Index(TMP5, 0x03))
Store(Or(0x00010000, DID5), Index(TMP5, 0x04))
Return(TMP5)
}
If(LEqual(NDID, 0x06))
{
Name(TMP6, Package(6) {Ones, Ones, Ones, Ones, Ones, Ones})
Store(Or(0x00010000, DID1), Index(TMP6, Zero))
Store(Or(0x00010000, DID2), Index(TMP6, One))
Store(Or(0x00010000, DID3), Index(TMP6, 0x02))
Store(Or(0x00010000, DID4), Index(TMP6, 0x03))
Store(Or(0x00010000, DID5), Index(TMP6, 0x04))
Store(Or(0x00010000, DID6), Index(TMP6, 0x05))
Return(TMP6)
}
If(LEqual(NDID, 0x07))
{
Name(TMP7, Package(7) {Ones, Ones, Ones, Ones, Ones, Ones, Ones})
Store(Or(0x00010000, DID1), Index(TMP7, Zero))
Store(Or(0x00010000, DID2), Index(TMP7, One))
Store(Or(0x00010000, DID3), Index(TMP7, 0x02))
Store(Or(0x00010000, DID4), Index(TMP7, 0x03))
Store(Or(0x00010000, DID5), Index(TMP7, 0x04))
Store(Or(0x00010000, DID6), Index(TMP7, 0x05))
Store(Or(0x00010000, DID7), Index(TMP7, 0x06))
Return(TMP7)
}
If(LEqual(NDID, 0x08))
{
Name(TMP8, Package(8) {Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones})
Store(Or(0x00010000, DID1), Index(TMP8, Zero))
Store(Or(0x00010000, DID2), Index(TMP8, One))
Store(Or(0x00010000, DID3), Index(TMP8, 0x02))
Store(Or(0x00010000, DID4), Index(TMP8, 0x03))
Store(Or(0x00010000, DID5), Index(TMP8, 0x04))
Store(Or(0x00010000, DID6), Index(TMP8, 0x05))
Store(Or(0x00010000, DID7), Index(TMP8, 0x06))
Store(Or(0x00010000, DID8), Index(TMP8, 0x07))
Return(TMP8)
}
If(LEqual(NDID, 0x09))
{
If(CondRefOf(HWID))
{
Return(HWID)
}
}
Return(Package(1) {0x0400})
}
Device(DD01)
{
Method(_ADR, 0, Serialized)
{
If(LEqual(DID1, Zero))
{
Return(One)
}
Else
{
Return(And(0xFFFF, DID1))
}
}
Method(_DCS, 0, NotSerialized)
{
Return(CDDS(DID1))
}
Method(_DGS, 0, NotSerialized)
{
If(LAnd(LEqual(And(SGMD, One), One), CondRefOf(SNXD)))
{
Return(NXD1)
}
Return(NDDS(DID1))
}
Method(_DSS, 1, NotSerialized)
{
If(LEqual(And(Arg0, 0xC0000000), 0xC0000000))
{
Store(NSTE, CSTE)
}
}
}
Device(DD02)
{
Method(_ADR, 0, Serialized)
{
If(LEqual(DID2, Zero))
{
Return(0x02)
}
Else
{
Return(And(0xFFFF, DID2))
}
}
Method(_DCS, 0, NotSerialized)
{
If(LEqual(LIDS, Zero))
{
Return(Zero)
}
Return(CDDS(DID2))
}
Method(_DGS, 0, NotSerialized)
{
If(LAnd(LEqual(And(SGMD, One), One), CondRefOf(SNXD)))
{
Return(NXD2)
}
Return(NDDS(DID2))
}
Method(_DSS, 1, NotSerialized)
{
If(LEqual(And(Arg0, 0xC0000000), 0xC0000000))
{
Store(NSTE, CSTE)
}
}
Method(_BCL, 0, NotSerialized)
{
Store(0x8010, BTM0)
Store(0x8A16, BTM1)
Store(0x941C, BTM2)
Store(0x9E25, BTM3)
Store(0xA831, BTM4)
Store(0xB241, BTM5)
Store(0xBC56, BTM6)
Store(0xC671, BTM7)
Store(0xD094, BTM8)
Store(0xDAC3, BTM9)
Store(0xE4FF, BTMA)
If(LEqual(LCDD, 0x15A2AF0D))
{
Store(0x8012, BTM0)
Store(0x8A18, BTM1)
Store(0x941F, BTM2)
Store(0x9E29, BTM3)
Store(0xA836, BTM4)
Store(0xB248, BTM5)
Store(0xBC5F, BTM6)
Store(0xC67E, BTM7)
Store(0xD0A6, BTM8)
Store(0xDADA, BTM9)
Store(0xE4FF, BTMA)
}
Return(Package(13)
{
0x64, 0x32, Zero, 0x0A, 0x14, 0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50,
0x5A, 0x64
})
}
Name(LGP1, Package(11) {0x06, 0x08, 0x0A, 0x0E, 0x13, 0x19, 0x21, 0x2C, 0x3A, 0x4C, 0x64})
Name(CMO1, Package(11) {0x07, 0x09, 0x0C, 0x0F, 0x14, 0x1B, 0x24, 0x2F, 0x3E, 0x52, 0x64})
Method(_BCM, 1, NotSerialized)
{
If(LAnd(LGreaterEqual(Arg0, Zero), LLessEqual(Arg0, 0x64)))
{
Store(Arg0, BRTL)
Divide(Arg0, 0x0A, Local2, Local1)
Store(DerefOf(Index(LGP1, Local1)), Local0)
If(LEqual(LCDD, 0x15A2AF0D))
{
Store(DerefOf(Index(CMO1, Local1)), Local0)
}
AINT(One, Local0)
}
^^^LPCB.EC.STBL()
}
Method(_BQC, 0, NotSerialized)
{
Return(BRTL)
}
}
Device(DD03)
{
Method(_ADR, 0, Serialized)
{
If(LEqual(DID3, Zero))
{
Return(0x03)
}
Else
{
Return(And(0xFFFF, DID3))
}
}
Method(_DCS, 0, NotSerialized)
{
If(LEqual(DID3, Zero))
{
Return(0x0B)
}
Else
{
Return(CDDS(DID3))
}
}
Method(_DGS, 0, NotSerialized)
{
If(LAnd(LEqual(And(SGMD, One), One), CondRefOf(SNXD)))
{
Return(NXD3)
}
Return(NDDS(DID3))
}
Method(_DSS, 1, NotSerialized)
{
If(LEqual(And(Arg0, 0xC0000000), 0xC0000000))
{
Store(NSTE, CSTE)
}
}
}
Device(DD04)
{
Method(_ADR, 0, Serialized)
{
If(LEqual(DID4, Zero))
{
Return(0x04)
}
Else
{
Return(And(0xFFFF, DID4))
}
}
Method(_DCS, 0, NotSerialized)
{
If(LEqual(DID4, Zero))
{
Return(0x0B)
}
Else
{
Return(CDDS(DID4))
}
}
Method(_DGS, 0, NotSerialized)
{
If(LAnd(LEqual(And(SGMD, One), One), CondRefOf(SNXD)))
{
Return(NXD4)
}
Return(NDDS(DID4))
}
Method(_DSS, 1, NotSerialized)
{
If(LEqual(And(Arg0, 0xC0000000), 0xC0000000))
{
Store(NSTE, CSTE)
}
}
}
Device(DD05)
{
Method(_ADR, 0, Serialized)
{
If(LEqual(DID5, Zero))
{
Return(0x05)
}
Else
{
Return(And(0xFFFF, DID5))
}
}
Method(_DCS, 0, NotSerialized)
{
If(LEqual(DID5, Zero))
{
Return(0x0B)
}
Else
{
Return(CDDS(DID5))
}
}
Method(_DGS, 0, NotSerialized)
{
If(LAnd(LEqual(And(SGMD, One), One), CondRefOf(SNXD)))
{
Return(NXD5)
}
Return(NDDS(DID5))
}
Method(_DSS, 1, NotSerialized)
{
If(LEqual(And(Arg0, 0xC0000000), 0xC0000000))
{
Store(NSTE, CSTE)
}
}
}
Device(DD06)
{
Method(_ADR, 0, Serialized)
{
If(LEqual(DID6, Zero))
{
Return(0x06)
}
Else
{
Return(And(0xFFFF, DID6))
}
}
Method(_DCS, 0, NotSerialized)
{
If(LEqual(DID6, Zero))
{
Return(0x0B)
}
Else
{
Return(CDDS(DID6))
}
}
Method(_DGS, 0, NotSerialized)
{
If(LAnd(LEqual(And(SGMD, One), One), CondRefOf(SNXD)))
{
Return(NXD6)
}
Return(NDDS(DID6))
}
Method(_DSS, 1, NotSerialized)
{
If(LEqual(And(Arg0, 0xC0000000), 0xC0000000))
{
Store(NSTE, CSTE)
}
}
}
Device(DD07)
{
Method(_ADR, 0, Serialized)
{
If(LEqual(DID7, Zero))
{
Return(0x07)
}
Else
{
Return(And(0xFFFF, DID7))
}
}
Method(_DCS, 0, NotSerialized)
{
If(LEqual(DID7, Zero))
{
Return(0x0B)
}
Else
{
Return(CDDS(DID7))
}
}
Method(_DGS, 0, NotSerialized)
{
If(LAnd(LEqual(And(SGMD, One), One), CondRefOf(SNXD)))
{
Return(NXD7)
}
Return(NDDS(DID7))
}
Method(_DSS, 1, NotSerialized)
{
If(LEqual(And(Arg0, 0xC0000000), 0xC0000000))
{
Store(NSTE, CSTE)
}
}
}
Device(DD08)
{
Method(_ADR, 0, Serialized)
{
If(LEqual(DID8, Zero))
{
Return(0x08)
}
Else
{
Return(And(0xFFFF, DID8))
}
}
Method(_DCS, 0, NotSerialized)
{
If(LEqual(DID8, Zero))
{
Return(0x0B)
}
Else
{
Return(CDDS(DID8))
}
}
Method(_DGS, 0, NotSerialized)
{
If(LAnd(LEqual(And(SGMD, One), One), CondRefOf(SNXD)))
{
Return(NXD8)
}
Return(NDDS(DID8))
}
Method(_DSS, 1, NotSerialized)
{
If(LEqual(And(Arg0, 0xC0000000), 0xC0000000))
{
Store(NSTE, CSTE)
}
}
}
Method(SDDL, 1, NotSerialized)
{
Increment(NDID)
Store(And(Arg0, 0x0F0F), Local0)
Or(0x80000000, Local0, Local1)
If(LEqual(DIDL, Local0))
{
Return(Local1)
}
If(LEqual(DDL2, Local0))
{
Return(Local1)
}
If(LEqual(DDL3, Local0))
{
Return(Local1)
}
If(LEqual(DDL4, Local0))
{
Return(Local1)
}
If(LEqual(DDL5, Local0))
{
Return(Local1)
}
If(LEqual(DDL6, Local0))
{
Return(Local1)
}
If(LEqual(DDL7, Local0))
{
Return(Local1)
}
If(LEqual(DDL8, Local0))
{
Return(Local1)
}
Return(Zero)
}
Method(CDDS, 1, NotSerialized)
{
Store(And(Arg0, 0x0F0F), Local0)
If(LEqual(Zero, Local0))
{
Return(0x1D)
}
If(LEqual(CADL, Local0))
{
Return(0x1F)
}
If(LEqual(CAL2, Local0))
{
Return(0x1F)
}
If(LEqual(CAL3, Local0))
{
Return(0x1F)
}
If(LEqual(CAL4, Local0))
{
Return(0x1F)
}
If(LEqual(CAL5, Local0))
{
Return(0x1F)
}
If(LEqual(CAL6, Local0))
{
Return(0x1F)
}
If(LEqual(CAL7, Local0))
{
Return(0x1F)
}
If(LEqual(CAL8, Local0))
{
Return(0x1F)
}
Return(0x1D)
}
Method(NDDS, 1, NotSerialized)
{
Store(And(Arg0, 0x0F0F), Local0)
If(LEqual(Zero, Local0))
{
Return(Zero)
}
If(LEqual(NADL, Local0))
{
Return(One)
}
If(LEqual(NDL2, Local0))
{
Return(One)
}
If(LEqual(NDL3, Local0))
{
Return(One)
}
If(LEqual(NDL4, Local0))
{
Return(One)
}
If(LEqual(NDL5, Local0))
{
Return(One)
}
If(LEqual(NDL6, Local0))
{
Return(One)
}
If(LEqual(NDL7, Local0))
{
Return(One)
}
If(LEqual(NDL8, Local0))
{
Return(One)
}
Return(Zero)
}
Scope(^^PCI0)
{
OperationRegion(MCHP, PCI_Config, 0x40, 0xC0)
Field(MCHP, AnyAcc, NoLock, Preserve)
{
Offset(0x60), //Offset(96),
TASM, 10,
, 6,
}
}
OperationRegion(IGDP, PCI_Config, 0x40, 0xC0)
Field(IGDP, AnyAcc, NoLock, Preserve)
{
Offset(0x12), //Offset(18),
, 1,
GIVD, 1,
, 2,
GUMA, 3,
Offset(0x14), //Offset(20),
, 4,
GMFN, 1,
Offset(0x18), //Offset(24),
Offset(0xA4), //Offset(164),
ASLE, 8,
Offset(0xA8), //Offset(168),
GSSE, 1,
GSSB, 14,
GSES, 1,
Offset(0xB0), //Offset(176),
Offset(0xB1), //Offset(177),
, 4,
CDVL, 1,
, 3,
Offset(0xB5), //Offset(181),
LBPC, 8,
Offset(0xBC), //Offset(188),
ASLS, 32,
}
OperationRegion(IGDM, SystemMemory, ASLB, 0x2000)
Field(IGDM, AnyAcc, NoLock, Preserve)
{
SIGN, 128,
SIZE, 32,
OVER, 32,
SVER, 256,
VVER, 128,
GVER, 128,
MBOX, 32,
DMOD, 32,
Offset(0x100), //Offset(256),
DRDY, 32,
CSTS, 32,
CEVT, 32,
Offset(0x120), //Offset(288),
DIDL, 32,
DDL2, 32,
DDL3, 32,
DDL4, 32,
DDL5, 32,
DDL6, 32,
DDL7, 32,
DDL8, 32,
CPDL, 32,
CPL2, 32,
CPL3, 32,
CPL4, 32,
CPL5, 32,
CPL6, 32,
CPL7, 32,
CPL8, 32,
CADL, 32,
CAL2, 32,
CAL3, 32,
CAL4, 32,
CAL5, 32,
CAL6, 32,
CAL7, 32,
CAL8, 32,
NADL, 32,
NDL2, 32,
NDL3, 32,
NDL4, 32,
NDL5, 32,
NDL6, 32,
NDL7, 32,
NDL8, 32,
ASLP, 32,
TIDX, 32,
CHPD, 32,
CLID, 32,
CDCK, 32,
SXSW, 32,
EVTS, 32,
CNOT, 32,
NRDY, 32,
Offset(0x200), //Offset(512),
SCIE, 1,
GEFC, 4,
GXFC, 3,
GESF, 8,
Offset(0x204), //Offset(516),
PARM, 32,
DSLP, 32,
Offset(0x300), //Offset(768),
ARDY, 32,
ASLC, 32,
TCHE, 32,
ALSI, 32,
BCLP, 32,
PFIT, 32,
CBLV, 32,
BTM0, 16,
BTM1, 16,
BTM2, 16,
BTM3, 16,
BTM4, 16,
BTM5, 16,
BTM6, 16,
BTM7, 16,
BTM8, 16,
BTM9, 16,
BTMA, 16,
Offset(0x344), //Offset(836),
CPFM, 32,
EPFM, 32,
PLUT, 592,
PFMB, 32,
CCDV, 32,
PCFT, 32,
Offset(0x400), //Offset(1024),
GVD1, 49152,
PHED, 32,
BDDC, 2048,
}
Name(DBTB, Package(21)
{
Zero, 0x07, 0x38, 0x01C0, 0x0E00, 0x3F, 0x01C7, 0x0E07, 0x01F8, 0x0E38,
0x0FC0, Zero, Zero, Zero, Zero, Zero, 0x7000, 0x7007, 0x7038, 0x71C0,
0x7E00
})
Name(CDCT, Package(5)
{
Package(2) {0xE4, 0x0140},
Package(2) {0xDE, 0x014D},
Package(2) {0xDE, 0x014D},
Package(2) {Zero, Zero},
Package(2) {0xDE, 0x014D}
})
Name(SUCC, One)
Name(NVLD, 0x02)
Name(CRIT, 0x04)
Name(NCRT, 0x06)
Method(GSCI, 0, Serialized)
{
Method(GBDA, 0, Serialized)
{
If(LEqual(GESF, Zero))
{
Store(0x0679, PARM)
Store(Zero, GESF)
Return(SUCC)
}
If(LEqual(GESF, One))
{
Store(0x0240, PARM)
Store(Zero, GESF)
Return(SUCC)
}
If(LEqual(GESF, 0x04))
{
And(PARM, 0xEFFF0000, PARM)
And(PARM, ShiftLeft(DerefOf(Index(DBTB, IBTT)), 0x10), PARM)
Or(IBTT, PARM, PARM)
Store(Zero, GESF)
Return(SUCC)
}
If(LEqual(GESF, 0x05))
{
Store(IPSC, PARM)
Or(PARM, ShiftLeft(IPAT, 0x08), PARM)
Add(PARM, 0x0100, PARM)
Or(PARM, ShiftLeft(LIDS, 0x10), PARM)
Add(PARM, 0x00010000, PARM)
Or(PARM, ShiftLeft(IBIA, 0x14), PARM)
Store(Zero, GESF)
Return(SUCC)
}
If(LEqual(GESF, 0x06))
{
Store(ITVF, PARM)
Or(PARM, ShiftLeft(ITVM, 0x04), PARM)
Store(Zero, GESF)
Return(SUCC)
}
If(LEqual(GESF, 0x07))
{
Store(GIVD, PARM)
Xor(PARM, One, PARM)
Or(PARM, ShiftLeft(GMFN, One), PARM)
Or(PARM, 0x1800, PARM)
Or(PARM, ShiftLeft(IDMS, 0x11), PARM)
Or(ShiftLeft(DerefOf(Index(DerefOf(Index(CDCT, HVCO)), CDVL)), 0x15), PARM, PARM)
Store(One, GESF)
Return(SUCC)
}
If(LEqual(GESF, 0x0A))
{
Store(Zero, PARM)
If(ISSC)
{
Or(PARM, 0x03, PARM)
}
Store(Zero, GESF)
Return(SUCC)
}
If(LEqual(GESF, 0x0B))
{
Store(KSV0, PARM)
Store(KSV1, GESF)
Return(SUCC)
}
Store(Zero, GESF)
Return(CRIT)
}
Method(SBCB, 0, Serialized)
{
If(LEqual(GESF, Zero))
{
Store(Zero, PARM)
Store(0x000F87FD, PARM)
Store(Zero, GESF)
Return(SUCC)
}
If(LEqual(GESF, One))
{
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x03))
{
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x04))
{
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x05))
{
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x06))
{
Store(And(PARM, 0x0F), ITVF)
Store(ShiftRight(And(PARM, 0xF0), 0x04), ITVM)
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x07))
{
If(LEqual(PARM, Zero))
{
Store(CLID, Local0)
If(And(0x80000000, Local0))
{
And(CLID, 0x0F, CLID)
GLID(CLID)
}
}
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x08))
{
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x09))
{
And(PARM, 0xFF, IBTT)
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x0A))
{
And(PARM, 0xFF, IPSC)
If(And(ShiftRight(PARM, 0x08), 0xFF))
{
And(ShiftRight(PARM, 0x08), 0xFF, IPAT)
Decrement(IPAT)
}
And(ShiftRight(PARM, 0x14), 0x07, IBIA)
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x0B))
{
And(ShiftRight(PARM, One), One, IF1E)
If(And(PARM, 0x0001E000))
{
And(ShiftRight(PARM, 0x0D), 0x0F, IDMS)
}
Else
{
And(ShiftRight(PARM, 0x11), 0x0F, IDMS)
}
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x10))
{
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x11))
{
Store(ShiftLeft(LIDS, 0x08), PARM)
Add(PARM, 0x0100, PARM)
Store(Zero, GESF)
Return(SUCC)
}
If(LEqual(GESF, 0x12))
{
If(And(PARM, One))
{
If(LEqual(ShiftRight(PARM, One), One))
{
Store(One, ISSC)
}
Else
{
Store(Zero, GESF)
Return(CRIT)
}
}
Else
{
Store(Zero, ISSC)
}
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x13))
{
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
If(LEqual(GESF, 0x14))
{
And(PARM, 0x0F, PAVP)
Store(Zero, GESF)
Store(Zero, PARM)
Return(SUCC)
}
Store(Zero, GESF)
Return(SUCC)
}
If(LEqual(GEFC, 0x04))
{
Store(GBDA, GXFC)
}
If(LEqual(GEFC, 0x06))
{
Store(SBCB, GXFC)
}
Store(Zero, GEFC)
Store(One, SCIS)
Store(Zero, GSSE)
Store(Zero, SCIE)
Return(Zero)
}
Method(PDRD, 0, NotSerialized)
{
If(LNot(DRDY))
{
Sleep(ASLP)
}
Return(LNot(DRDY))
}
Method(PSTS, 0, NotSerialized)
{
If(LGreater(CSTS, 0x02))
{
Sleep(ASLP)
}
Return(LEqual(CSTS, 0x03))
}
Method(GNOT, 2, NotSerialized)
{
If(PDRD())
{
Return(One)
}
Store(Arg0, CEVT)
Store(0x03, CSTS)
If(LAnd(LEqual(CHPD, Zero), LEqual(Arg1, Zero)))
{
If(LOr(LGreater(OSYS, 0x07D0), LLess(OSYS, 0x07D6)))
{
Notify(PCI0, Arg1)
}
Else
{
Notify(GFX0, Arg1)
}
}
If(CondRefOf(HNOT))
{
HNOT
Arg0
}
Else
{
Notify(GFX0, 0x80)
}
Return(Zero)
}
Method(GHDS, 1, NotSerialized)
{
Store(Arg0, TIDX)
Return(GNOT(One, Zero))
}
Method(GLID, 1, NotSerialized)
{
If(LEqual(Arg0, One))
{
Store(0x03, CLID)
}
Else
{
Store(Arg0, CLID)
}
Return(GNOT(0x02, Zero))
}
Method(GDCK, 1, NotSerialized)
{
Store(Arg0, CDCK)
Return(GNOT(0x04, Zero))
}
Method(PARD, 0, NotSerialized)
{
If(LNot(ARDY))
{
Sleep(ASLP)
}
Return(LNot(ARDY))
}
Method(AINT, 2, NotSerialized)
{
If(LNot(And(TCHE, ShiftLeft(One, Arg0))))
{
Return(One)
}
If(PARD())
{
Return(One)
}
If(LEqual(Arg0, 0x02))
{
If(CPFM)
{
And(CPFM, 0x0F, Local0)
And(EPFM, 0x0F, Local1)
If(LEqual(Local0, One))
{
If(And(Local1, 0x06))
{
Store(0x06, PFIT)
}
Else
{
If(And(Local1, 0x08))
{
Store(0x08, PFIT)
}
Else
{
Store(One, PFIT)
}
}
}
If(LEqual(Local0, 0x06))
{
If(And(Local1, 0x08))
{
Store(0x08, PFIT)
}
Else
{
If(And(Local1, One))
{
Store(One, PFIT)
}
Else
{
Store(0x06, PFIT)
}
}
}
If(LEqual(Local0, 0x08))
{
If(And(Local1, One))
{
Store(One, PFIT)
}
Else
{
If(And(Local1, 0x06))
{
Store(0x06, PFIT)
}
Else
{
Store(0x08, PFIT)
}
}
}
}
Else
{
Xor(PFIT, 0x07, PFIT)
}
Or(PFIT, 0x80000000, PFIT)
Store(0x04, ASLC)
}
Else
{
If(LEqual(Arg0, One))
{
And(BCLP, 0xFFFF0000, BCLP)
If(LEqual(And(BCLP, 0x30000000), 0x30000000))
{
Or(Multiply(Arg1, 0x64), BCLP, BCLP)
}
Else
{
If(LEqual(And(BCLP, 0x30000000), 0x20000000))
{
Or(Multiply(Arg1, 0x0A), BCLP, BCLP)
}
Else
{
If(LEqual(And(BCLP, 0x30000000), 0x10000000))
{
Or(Arg1, BCLP, BCLP)
}
Else
{
Or(Divide(Multiply(Arg1, 0xFF), 0x64, , ), BCLP, BCLP)
}
}
}
Or(BCLP, 0x80000000, BCLP)
Store(0x02, ASLC)
}
Else
{
If(LEqual(Arg0, Zero))
{
Store(Arg1, ALSI)
Store(One, ASLC)
}
Else
{
Return(One)
}
}
}
Store(One, ASLE)
Return(Zero)
}
Method(SCIP, 0, NotSerialized)
{
If(LNotEqual(OVER, Zero))
{
Return(LNot(GSMI))
}
Return(Zero)
}
Device(^^MEM2)
{
Name(_HID, EISAID("PNP0C01"))
Name(_UID, 0x02)
Name(CRS, ResourceTemplate()
{
Memory32Fixed(ReadWrite, 0x20000000, 0x00200000)
Memory32Fixed(ReadWrite, 0x40000000, 0x00200000)
})
Method(_CRS, 0, NotSerialized)
{
If(IGDS)
{
Return(CRS)
}
}
}
}
}
Name(BUFN, Zero)
Name(MBUF, Buffer(0x1000){})
OperationRegion(MDBG, SystemMemory, 0x9CF6A018, 0x00001004)
Field(MDBG, AnyAcc, Lock, Preserve)
{
MDG0, 32768,
}
Method(DB2H, 1, Serialized)
{
SHOW(Arg0)
MDGC(0x20)
}
Method(DW2H, 1, Serialized)
{
Store(Arg0, Local0)
ShiftRight(Arg0, 0x08, Local1)
And(Local0, 0xFF, Local0)
And(Local1, 0xFF, Local1)
DB2H(Local1)
Decrement(BUFN)
DB2H(Local0)
}
Method(DD2H, 1, Serialized)
{
Store(Arg0, Local0)
ShiftRight(Arg0, 0x10, Local1)
And(Local0, 0xFFFF, Local0)
And(Local1, 0xFFFF, Local1)
DW2H(Local1)
Decrement(BUFN)
DW2H(Local0)
}
Method(MBGS, 1, Serialized)
{
Store(SizeOf(Arg0), Local0)
Name(BUFS, Buffer(Local0){})
Store(Arg0, BUFS)
MDGC(0x20)
While(Local0)
{
MDGC(DerefOf(Index(BUFS, Subtract(SizeOf(Arg0), Local0))))
Decrement(Local0)
}
}
Method(SHOW, 1, Serialized)
{
MDGC(NTOC(ShiftRight(Arg0, 0x04)))
MDGC(NTOC(Arg0))
}
Method(LINE, 0, Serialized)
{
Store(BUFN, Local0)
And(Local0, 0x0F, Local0)
While(Local0)
{
MDGC(Zero)
Increment(Local0)
And(Local0, 0x0F, Local0)
}
}
Method(MDGC, 1, Serialized)
{
Store(Arg0, Index(MBUF, BUFN))
Add(BUFN, One, BUFN)
If(LGreater(BUFN, 0x0FFF))
{
And(BUFN, 0x0FFF, BUFN)
UP_L(One)
}
}
Method(UP_L, 1, Serialized)
{
Store(Arg0, Local2)
ShiftLeft(Local2, 0x04, Local2)
MOVE(Local2)
Subtract(0x1000, Local2, Local3)
While(Local2)
{
Store(Zero, Index(MBUF, Local3))
Increment(Local3)
Decrement(Local2)
}
}
Method(MOVE, 1, Serialized)
{
Store(Arg0, Local4)
Store(Zero, BUFN)
Subtract(0x1000, Local4, Local5)
While(Local5)
{
Decrement(Local5)
Store(DerefOf(Index(MBUF, Local4)), Index(MBUF, BUFN))
Increment(BUFN)
Increment(Local4)
}
}
Method(NTOC, 1, Serialized)
{
And(Arg0, 0x0F, Local0)
If(LLess(Local0, 0x0A))
{
Add(Local0, 0x30, Local0)
}
Else
{
Add(Local0, 0x37, Local0)
}
Return(Local0)
}
Name(_S0, Package(4) {Zero, Zero, Zero, Zero})
If(SS1)
{
Name(_S1, Package(4) {One, Zero, Zero, Zero})
}
If(SS3)
{
Name(_S3, Package(4) {0x05, Zero, Zero, Zero})
}
If(SS4)
{
Name(_S4, Package(4) {0x06, Zero, Zero, Zero})
}
Name(_S5, Package(4) {0x07, Zero, Zero, Zero})
}
References