NetBSD Problem Report #42895
From rhialto@falu.nl Sun Feb 28 00:23:09 2010
Return-Path: <rhialto@falu.nl>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
by www.NetBSD.org (Postfix) with ESMTP id 4E9C363B89F
for <gnats-bugs@gnats.NetBSD.org>; Sun, 28 Feb 2010 00:23:09 +0000 (UTC)
Message-Id: <201002280022.o1S0MnAB022157@radl.falu.nl>
Date: Sun, 28 Feb 2010 01:22:49 +0100 (CET)
From: rhialto@falu.nl
Reply-To: rhialto@falu.nl
To: gnats-bugs@gnats.NetBSD.org
Cc: rhialto@falu.nl
Subject: Weird ACPI messages every 30 seconds on the console
X-Send-Pr-Version: 3.95
>Number: 42895
>Category: port-amd64
>Synopsis: Weird ACPI messages every 30 seconds on the console
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: port-amd64-maintainer
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Feb 28 00:25:00 +0000 2010
>Closed-Date: Tue Jun 14 19:57:05 +0000 2011
>Last-Modified: Tue Jun 14 19:57:05 +0000 2011
>Originator: Rhialto
>Release: NetBSD 5.0.1
>Organization:
>Environment:
System: NetBSD vargaz.falu.nl 5.99.24 NetBSD 5.99.24 (VARGAZ) #1: Tue Feb 16 23:05:19 CET 2010 rhialto@vargaz.falu.nl:/home/rhialto/tmp/obj.amd64/sys/arch/amd64/compile/VARGAZ amd64
Architecture: x86_64
Machine: amd64
>Description:
Every 30 seconds some ACPI error messages appear on the console,
related to thermal zone 0. Also, ACPI sleep doesn't wake up properly,
although this may be unrelated.
ACPI Error (psargs-0464): [\_PR_.CPU0._PPC] Namespace lookup failure,
AE_NOT_FOUND
ACPI Error (psparse-0627): Method parse/execution failed [\CPUL] (Node
0xffff800007b26700), AE_NOT_FOUND
ACPI Error (psparse-0627): Method parse/execution failed [\_TZ_.TZ01.OTHD]
(Node 0xffff800007b26960), AE_NOT_FOUND
ACPI Error (psparse-0627): Method parse/execution failed [\_TZ_.TZ01._TMP]
(Node 0xffff800007b26a40), AE_NOT_FOUND
acpitz0: failed to evaluate _TMP
There are various warnings already during booting:
NetBSD 5.0.1 (GENERIC) #0: Thu Jul 30 00:08:07 UTC 2009
builds@b7.netbsd.org:/home/builds/ab/netbsd-5-0-1-RELEASE/amd64/200907292356Z-obj/home/builds/ab/netbsd-5-0-1-RELEASE/src/sys/arch/amd64/compile/GENERIC
total memory = 3998 MB
avail memory = 3861 MB
timecounter: Timecounters tick every 10.000 msec
RTC BIOS diagnostic error 80<clock_battery>
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
SMBIOS rev. 2.4 @ 0xe8290 (26 entries)
Hewlett-Packard Compaq Presario CQ71 Notebook PC (Rev 1)
mainbus0 (root)
cpu0 at mainbus0 apid 0: Intel 686-class, 2095MHz, id 0x1067a
cpu1 at mainbus0 apid 1: Intel 686-class, 2095MHz, id 0x1067a
ioapic0 at mainbus0 apid 4: pa 0xfec00000, version 20, 24 pins
acpi0 at mainbus0: Intel ACPICA 20080321
acpi0: X/RSDT: OemId <HPQOEM,SLIC-MPC,00000001>, AslId < ,01000013>
ACPI Error (evregion-0427): No handler for Region [ERAM] (0xffff800007b3aa80) [EmbeddedControl] [20080321]
ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20080321]
ACPI Error (psparse-0627): Method parse/execution failed [\_SB_.PCI0._INI] (Node 0xffff800007b43100), AE_NOT_EXIST
acpi0: SCI interrupting at int 9
acpi0: fixed-feature power button present
timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000
ACPI-Fast 24-bit timer
acpibut0 at acpi0 (PWRB, PNP0C0C): ACPI Power Button
acpilid0 at acpi0 (LID0, PNP0C0D): ACPI Lid Switch
acpibut1 at acpi0 (SLPB, PNP0C0E): ACPI Sleep Button
acpiacad0 at acpi0 (ACAD, ACPI0003): ACPI AC Adapter
acpibat0 at acpi0 (BAT0, PNP0C0A-1): ACPI Battery (Control Method)
hpet0 at acpi0 (HPET, PNP0103)
hpet0: mem 0xfed00000-0xfed003ff irq 0,8
timecounter: Timecounter "hpet0" frequency 14318179 Hz quality 2000
attimer1 at acpi0 (TIMR, PNP0100): AT Timer
attimer1: io 0x40-0x43,0x50-0x53
FWHD (INT0800) at acpi0 not configured
pckbc1 at acpi0 (KBC, PNP0303): kbd port
pckbc1: io 0x60,0x64 irq 1
pckbc2 at acpi0 (MOUE, SYN1E08): aux port
pckbc2: irq 12
acpiec0 at acpi0 (EC0, PNP0C09-1): ACPI Embedded Controller
acpiec0: io 0x62,0x66
WMID (PNP0C14) at acpi0 not configured
acpitz0 at acpi0 (TZ01):ACPI Error (psargs-0464): [\_PR_.CPU0._PPC] Namespace lookup failure, AE_NOT_FOUND
ACPI Error (psparse-0627): Method parse/execution failed [\CPUL] (Node 0xffff800007b43700), AE_NOT_FOUND
ACPI Error (psparse-0627): Method parse/execution failed [\_TZ_.TZ01.OTHD] (Node 0xffff800007b43960), AE_NOT_FOUND
ACPI Error (psparse-0627): Method parse/execution failed [\_TZ_.TZ01._TMP] (Node 0xffff800007b43a40), AE_NOT_FOUND
critical 110.0C passive -273.-3C, passive cooling
ACPI Error (psargs-0464): [\_PR_.CPU0._PPC] Namespace lookup failure, AE_NOT_FOUND
ACPI Error (psparse-0627): Method parse/execution failed [\CPUL] (Node 0xffff800007b43700), AE_NOT_FOUND
ACPI Error (psparse-0627): Method parse/execution failed [\_TZ_.TZ01.OTHD] (Node 0xffff800007b43960), AE_NOT_FOUND
ACPI Error (psparse-0627): Method parse/execution failed [\_TZ_.TZ01._TMP] (Node 0xffff800007b43a40), AE_NOT_FOUND
acpitz0: failed to evaluate _TMP
pckbd0 at pckbc1 (kbd slot)
These boot messages are from GENERIC but the results from my
slimmed down kernel don't differ.
It seems there is no ECDT, at least xubuntu's acpidump didn't
show a table by that name. The DSDT disassembly (from NetBSD's
acpidump, which differs somewhat in layout) is appended at the
end, in full.
I have attached everything that results from that acpidump at
http://www.falu.nl/~rhialto/pressario-cq71-acpi.tar.gz .
See also the thread starting at
http://mail-index.netbsd.org/current-users/2010/02/07/msg012464.html
.
>How-To-Repeat:
Buy a laptop without having time to do full research on it.
>Fix:
Curse PC industry, wish they would make real computers.
-Olaf.
--
___ Olaf 'Rhialto' Seibert -- You author it, and I'll reader it.
\X/ rhialto/at/xs4all.nl -- Cetero censeo "authored" delendum esse.
/*
RSD PTR: Checksum=81, OEMID=HPQOEM, RsdtAddress=0xb9ff60ac
*/
/*
RSDT: Length=68, Revision=1, Checksum=170,
OEMID=HPQOEM, OEM Table ID=SLIC-MPC, OEM Revision=0x1,
Creator ID=, Creator Revision=0x1000013
*/
/*
Entries={ 0xb9ff5000, 0xb9ff4000, 0xb9ff3000, 0xb9ff2000, 0xb9ff1000, 0xb9fe4000, 0xb9fe3000, 0xb9fe2000 }
*/
/*
DSDT=0xb9fe5000
INT_MODEL=PIC
SCI_INT=9
SMI_CMD=0xb2, ACPI_ENABLE=0xa0, ACPI_DISABLE=0xa1, S4BIOS_REQ=0x0
PM1a_EVT_BLK=0x400-0x403
PM1a_CNT_BLK=0x404-0x405
PM2_CNT_BLK=0x450-0x450
PM2_TMR_BLK=0x408-0x40b
PM2_GPE0_BLK=0x420-0x42f
P_LVL2_LAT=101ms, P_LVL3_LAT=1001ms
FLUSH_SIZE=0, FLUSH_STRIDE=0
DUTY_OFFSET=1, DUTY_WIDTH=3
DAY_ALRM=13, MON_ALRM=0, CENTURY=0
Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4}
*/
/*
DSDT: Length=48912, Revision=1, Checksum=197,
OEMID=HPQOEM, OEM Table ID=SLIC-MPC, OEM Revision=0x1,
Creator ID=MSFT, Creator Revision=0x1000013
*/
DefinitionBlock ("acpi_dst.aml", "DSDT", 0x1, "HPQOEM", "SLIC-MPC", 0x1)
{
Name(SP2O, 0x4e)
Name(SP1O, 0x164e)
Name(IO1B, 0x0600)
Name(IO1L, 0x70)
Name(IO2B, 0x0680)
Name(IO2L, 0x20)
Name(IO3B, 0x0290)
Name(IO3L, 0x10)
Name(MCHB, 0xfed10000)
Name(MCHL, 0x4000)
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(TTTB, 0xfed20000)
Name(TTTL, 0x00020000)
Name(SMBS, 0xefa0)
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, 0x40)
Name(APCB, 0xfec00000)
Name(APCL, 0x1000)
Name(PM30, 0x0430)
Name(SRCB, 0xfed1c000)
Name(SRCL, 0x4000)
Name(SUSW, 0xff)
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(ITKE, Zero)
Name(TRTP, One)
Name(TRTD, 0x02)
Name(TRTI, 0x03)
Name(TRTO, 0x04)
Name(GCDD, One)
Name(DSTA, 0x0a)
Name(DSLO, 0x0c)
Name(DSLC, 0x0e)
Name(PITS, 0x10)
Name(SBCS, 0x12)
Name(SALS, 0x13)
Name(LSSS, 0x2a)
Name(PSSS, 0x2b)
Name(SOOT, 0x35)
Name(ESCS, 0x48)
Name(PDBR, 0x4d)
Name(SMBL, 0x10)
Name(PEHS, 0xf4)
Name(KBWK, Zero)
Name(MUWK, Zero)
Name(LAWK, Zero)
Name(WA40, Zero)
OperationRegion(GPIO, SystemIO, 0x0500, 0x10)
Field(GPIO, ByteAcc, NoLock, Preserve) {
Offset(0xe),
, 1,
, 1,
HLED, 1
}
OperationRegion(PMBA, SystemIO, 0x0400, 0x80)
Field(PMBA, ByteAcc, NoLock, Preserve) {
Offset(0x28),
, 2,
SPST, 1,
Offset(0x42),
, 1,
GPEC, 1,
Offset(0x64),
, 9,
SCIS, 1,
Offset(0x66)
}
OperationRegion(RCRB, SystemMemory, 0xfed1c000, 0x4000)
Field(RCRB, DWordAcc, Lock, Preserve) {
Offset(0x1000),
Offset(0x3000),
Offset(0x3404),
HPAS, 2,
, 5,
HPAE, 1,
Offset(0x3418),
, 1,
PATD, 1,
SATD, 1,
SMBD, 1,
HDAD, 1,
Offset(0x341a),
RP1D, 1,
RP2D, 1,
RP3D, 1,
RP4D, 1,
RP5D, 1,
RP6D, 1
}
OperationRegion(MBOX, SystemMemory, 0xb9fbec18, 0x000002bc)
Field(MBOX, AnyAcc, NoLock, Preserve) {
PCI1, 8,
PCI2, 8,
PCI3, 8,
PCI4, 8,
PCI5, 8,
PCI6, 8,
PCI7, 8,
PCI8, 8,
NLCK, 8,
ZIPE, 8,
COMA, 8,
CAIO, 8,
CAIP, 8,
CAMD, 8,
CADA, 8,
COMB, 8,
CBIO, 8,
CBIP, 8,
CBMD, 8,
CBDA, 8,
FHSD, 8,
COMC, 8,
CCIO, 8,
CCIP, 8,
CCMD, 8,
CCDA, 8,
COMD, 8,
CDIO, 8,
CDIP, 8,
CDMD, 8,
CDDA, 8,
LPT1, 8,
L1IO, 8,
L1IP, 8,
L1MD, 8,
L1DA, 8,
LPT2, 8,
L2IO, 8,
L2IP, 8,
L2MD, 8,
L2DA, 8,
LPT3, 8,
L3IO, 8,
L3IP, 8,
L3MD, 8,
L3DA, 8,
FDDC, 8,
FDWP, 8,
HGMP, 8,
LGMP, 8,
MIDI, 8,
AZLA, 8,
AUDO, 8,
MODM, 8,
IDEC, 8,
SSED, 8,
PACT, 8,
SCFG, 8,
AMOD, 8,
IMOD, 8,
LCFG, 8,
IDLY, 8,
PMTP, 8,
PMIO, 8,
PMBM, 8,
PMTM, 8,
PSTP, 8,
PSIO, 8,
PSBM, 8,
PSTM, 8,
IDE0, 8,
IDE1, 8,
IDE2, 8,
IDE3, 8,
IDE4, 8,
IDE5, 8,
IDE6, 8,
IDE7, 8,
HIUB, 8,
LUBS, 8,
PLYT, 8,
EDCG, 8,
SDFY, 8,
SDTC, 8,
SDRP, 8,
SDCL, 8,
SDRC, 8,
SDRE, 8,
FC2L, 8,
FC3L, 8,
FCS4, 8,
APIM, 8,
HPTS, 8,
HPTA, 8,
EMAS, 8,
VGAO, 8,
SOFF, 8,
KBPO, 8,
MSPO, 8,
USBB, 8,
EVTL, 8,
SYBE, 8,
ETLC, 8,
AC30, 8,
TPMD, 8,
TPMO, 8,
TPMC, 8,
TPMM, 8,
TPCC, 8,
TPLC, 8,
TPLR, 32,
QBOT, 8,
BOTQ, 8,
PBOT, 8,
M256, 8,
PEGF, 8,
OSYS, 16,
BMTP, 8,
BNPT, 8,
LNMT, 8,
NBTO, 8,
NABD, 8,
NEBD, 8,
NLBD, 8,
DFBT, 16,
NPSP, 16,
LANG, 8,
UACL, 8,
SUPS, 8,
DVET, 8,
S3RS, 8,
DAS1, 8,
DAS3, 8,
WKPM, 8,
WKMD, 8,
WKS5, 8,
HOUR, 8,
MINS, 8,
SECS, 8,
DOFM, 8,
NBTV, 64,
BTOD, 64,
SPVP, 16,
POPW, 16,
USPW, 16,
HDPW, 16,
SAHP, 16,
SAHF, 8,
SUVF, 8,
USRF, 8,
UMPW, 8,
SMHP, 16,
SAMP, 16,
SAMF, 8,
SPFA, 8,
SPFB, 8,
SPFC, 8,
SPFD, 8,
SPFE, 8,
SPFF, 8,
SPFG, 8,
SPFH, 8,
SPFI, 8,
SPFJ, 8,
SPFK, 8,
SPFL, 8,
SPFM, 8,
SPFN, 8,
SPFO, 8,
SPFP, 8,
SPFQ, 8,
SPFR, 8,
SPFS, 8,
SPFT, 8,
SPFU, 8,
SPFV, 8,
SPFW, 8,
SPFX, 8,
SPFY, 8,
SPFZ, 8,
SPF0, 8,
SPF1, 8,
SPF2, 8,
SPF3, 8,
SPF4, 8,
SPF5, 8,
KRSV, 136,
LANE, 8,
AORS, 8,
P0HP, 8,
P1HP, 8,
P4HP, 8,
P5HP, 8,
P0IL, 8,
P1IL, 8,
P2IL, 8,
PEGS, 8,
D2F1, 8,
IGMT, 8,
DTSZ, 8,
CLKC, 8,
CKSC, 8,
BOTT, 8,
PANT, 8,
TVTP, 8,
U201, 8,
U202, 8,
U111, 8,
U112, 8,
U113, 8,
U114, 8,
U115, 8,
UPPC, 8,
UP00, 8,
UP01, 8,
UP02, 8,
UP03, 8,
UP04, 8,
UP05, 8,
UP06, 8,
UP07, 8,
UP08, 8,
UP09, 8,
UP10, 8,
UP11, 8,
P80R, 8,
WDOG, 8,
WDTO, 16,
WDTB, 16,
MASF, 8,
MAMT, 8,
ABXP, 8,
SPIL, 8,
PWDW, 8,
HETO, 8,
AWTR, 16,
EOPT, 8,
ASFB, 8,
MBTX, 8,
IDER, 8,
SOLE, 8,
PRE0, 8,
PRE1, 8,
PRE2, 8,
PRE3, 8,
PRE4, 8,
PRE5, 8,
PRA0, 8,
PRA1, 8,
PRA2, 8,
PRA3, 8,
PRA4, 8,
PRA5, 8,
PRV0, 8,
PRV1, 8,
PRV2, 8,
PRV3, 8,
PRV4, 8,
PRV5, 8,
PAA0, 8,
PAA1, 8,
PAA2, 8,
PAA3, 8,
PAA4, 8,
PAA5, 8,
L0S0, 8,
L0S1, 8,
L0S2, 8,
L0S3, 8,
L0S4, 8,
L0S5, 8,
AL10, 8,
AL11, 8,
AL12, 8,
AL13, 8,
AL14, 8,
AL15, 8,
PES0, 8,
PES1, 8,
PES2, 8,
PES3, 8,
PES4, 8,
PES5, 8,
PRU0, 8,
PRU1, 8,
PRU2, 8,
PRU3, 8,
PRU4, 8,
PRU5, 8,
PRF0, 8,
PRF1, 8,
PRF2, 8,
PRF3, 8,
PRF4, 8,
PRF5, 8,
PRN0, 8,
PRN1, 8,
PRN2, 8,
PRN3, 8,
PRN4, 8,
PRN5, 8,
PRC0, 8,
PRC1, 8,
PRC2, 8,
PRC3, 8,
PRC4, 8,
PRC5, 8,
CTD0, 8,
CTD1, 8,
CTD2, 8,
CTD3, 8,
CTD4, 8,
CTD5, 8,
PIE0, 8,
PIE1, 8,
PIE2, 8,
PIE3, 8,
PIE4, 8,
PIE5, 8,
SFE0, 8,
SFE1, 8,
SFE2, 8,
SFE3, 8,
SFE4, 8,
SFE5, 8,
SNE0, 8,
SNE1, 8,
SNE2, 8,
SNE3, 8,
SNE4, 8,
SNE5, 8,
SCE0, 8,
SCE1, 8,
SCE2, 8,
SCE3, 8,
SCE4, 8,
SCE5, 8,
MCE0, 8,
MCE1, 8,
MCE2, 8,
MCE3, 8,
MCE4, 8,
MCE5, 8,
PCE0, 8,
PCE1, 8,
PCE2, 8,
PCE3, 8,
PCE4, 8,
PCE5, 8,
PTC0, 8,
PTC1, 8,
PTC2, 8,
PTC3, 8,
PTC4, 8,
PTC5, 8,
DAPM, 8,
DPMA, 8,
DL0S, 8,
DAL1, 8,
PEGA, 8,
PGAA, 8,
PGL0, 8,
PL0A, 8,
PGL1, 8,
PGES, 8,
ISTC, 8,
TRML, 8,
FNON, 8,
TRON, 8,
NXMD, 8,
PCRR, 8,
C4EN, 8,
C43D, 8,
EMTT, 8,
PROH, 8,
DFSB, 8,
TUBM, 8,
TSTE, 8,
BPST, 8,
QKS4, 8,
POPU, 8,
POPD, 8,
NXFE, 8,
VTST, 8,
VTFE, 8,
S5FG, 8,
CSTS, 8,
ENCS, 8,
DEC4, 8,
HC4E, 8,
ENC6, 8,
CSTR, 8,
CMPE, 8,
CSMD, 8,
DTSE, 8,
DTSC, 8,
RAID, 8,
PSHM, 8,
PEXC, 8,
DTST, 8,
TXTS, 8,
VTDE, 8,
C4ET, 8,
SMRR, 8,
CART, 8,
CATT, 8,
PAVP, 8,
ITPM, 8,
STBE, 8,
PEBE, 8,
PCBE, 8,
EHBE, 8,
UHBE, 8,
HABE, 8,
MTME, 8,
MTSD, 8,
MTML, 8,
ERS2, 8,
GLPM, 8,
SMFQ, 8,
UPFF, 8,
UPFT, 8,
GRTT, 8,
CRID, 8,
CRSV, 480,
HPOP, 16,
FKDY, 8,
CDRB, 8,
FLYB, 8,
FK11, 8,
ACPT, 8,
OSFG, 8,
VTDT, 8,
C4DT, 8,
C6DT, 8,
BAT1, 8,
ORSV, 464,
BTND, 8,
LPSD, 8,
CRPS, 8,
MCID, 8,
CFCR, 8,
DIC2, 8,
CKPF, 8,
CHPL, 8,
DRSV, 736
}
OperationRegion(IO_T, SystemIO, 0x0800, 0x10)
Field(IO_T, ByteAcc, NoLock, Preserve) {
Offset(0x2),
Offset(0x4),
Offset(0x6),
Offset(0x8),
TRP0, 8,
Offset(0xa),
Offset(0xb),
Offset(0xc),
Offset(0xd),
Offset(0xe),
Offset(0xf),
Offset(0x10)
}
OperationRegion(IO_D, SystemIO, 0x0810, 0x08)
Field(IO_D, ByteAcc, NoLock, Preserve) {
TRPD, 8
}
OperationRegion(IO_H, SystemIO, 0x0820, 0x04)
Field(IO_H, ByteAcc, NoLock, Preserve) {
TRPH, 8
}
OperationRegion(NVST, SystemMemory, 0xb9fbeed4, 0x000000ff)
Field(NVST, AnyAcc, Lock, Preserve) {
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,
CRTT, 8,
Offset(0x15),
DTS1, 8,
DTS2, 8,
DTSF, 8,
BNUM, 8,
APIC, 8,
PCP0, 8,
PCP1, 8,
PPCM, 8,
PPMF, 32,
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,
BDSP, 8,
PTY1, 8,
PTY2, 8,
PSCL, 8,
TVF1, 8,
TVF2, 8,
GETM, 8,
BLCS, 8,
BRTL, 8,
ALSE, 8,
ALAF, 8,
LLOW, 8,
LHIH, 8,
EMAE, 8,
EMAP, 16,
EMAL, 16,
MEFE, 8,
DSTS, 8,
TPMP, 8,
TPME, 8,
GTF0, 56,
GTF2, 56,
IDEM, 8,
GTF1, 56,
BID, 8,
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,
IPC, 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,
DSEN, 8,
ECON, 8,
GPIC, 8,
CTYP, 8,
L01C, 8,
VFN0, 8,
VFN1, 8,
LCDA, 16,
BVAL, 32,
KSV0, 32,
KSV1, 8,
WMIA, 8,
WMIO, 8,
ACPS, 8,
HPBD, 8,
IVIM, 8,
EXTM, 8,
WDI0, 8,
WDI1, 8,
WDI2, 8,
WDI3, 8,
WSI0, 8,
WSI1, 8,
WSI2, 8,
WSI3, 8,
NCDD, 8,
NCAD, 8,
NNDD, 8,
EXCM, 8,
VBTL, 8,
SID0, 8,
SID1, 8,
SID2, 8,
SID3, 8,
SID4, 8,
SID5, 8,
SID6, 8,
SID7, 8,
WBLC, 8,
WLD0, 8,
WLD1, 8,
WLD2, 8,
WLD3, 8,
WLD4, 8,
WLD5, 8,
WLD6, 8,
WLD7, 8,
WBD0, 8,
WBD1, 8,
WBD2, 8,
WBD3, 8,
WWD0, 8,
WWD1, 8,
WWD2, 8,
WWD3, 8,
WAB0, 8,
WAB1, 8,
WAB2, 8,
WAB3, 8,
WAB4, 8,
WAB5, 8,
PSTN, 8,
DBGD, 8,
MCHD, 8,
LCDD, 32,
RTID, 8,
HSV0, 32,
HSV1, 8,
CMTF, 8,
CMTI, 32,
CMTO, 8,
TJMX, 8,
EIST, 8,
CHPF, 8,
USBW, 8,
CKPL, 8,
MSRA, 8
}
Scope(_PR) {
Processor(CPU0, 1, 0x410, 0x6) {
}
Processor(CPU1, 2, 0x410, 0x6) {
}
Processor(CPU2, 3, 0x410, 0x6) {
}
Processor(CPU3, 4, 0x410, 0x6) {
}
}
Name(DQ30, Zero)
Name(ECOK, Zero)
Name(WAOK, Zero)
Name(RTL0, Zero)
Name(BCLT, Package(0x0d) {
0x64,
0x32,
Zero,
0x0a,
0x14,
0x1e,
0x28,
0x32,
0x3c,
0x46,
0x50,
0x5a,
0x64,
})
Name(BCT1, Package(0x0b) {
0x07,
0x09,
0x0d,
0x12,
0x16,
0x1a,
0x1f,
0x2c,
0x39,
0x46,
0x4f,
})
Name(BCT2, Package(0x0b) {
0x07,
0x09,
0x0d,
0x11,
0x18,
0x1a,
0x1e,
0x2b,
0x39,
0x46,
0x57,
})
Name(BCT3, Package(0x0b) {
0x15,
0x1a,
0x20,
0x25,
0x2a,
0x2f,
0x35,
0x3e,
0x46,
0x56,
0x5d,
})
Name(BCL1, Package(0x0d) {
0x4f,
0x1a,
0x06,
0x09,
0x0d,
0x12,
0x16,
0x1a,
0x1f,
0x2c,
0x39,
0x46,
0x4f,
})
Name(BCL2, Package(0x0d) {
0x57,
0x1a,
0x07,
0x09,
0x0d,
0x11,
0x18,
0x1a,
0x1e,
0x2b,
0x39,
0x46,
0x57,
})
Name(BCL3, Package(0x0d) {
0x5d,
0x2f,
0x15,
0x1a,
0x20,
0x25,
0x2a,
0x2f,
0x35,
0x3e,
0x46,
0x56,
0x5d,
})
Name(CCBL, Zero)
OperationRegion(PRT0, SystemIO, 0x80, One)
Field(PRT0, ByteAcc, Lock, Preserve) {
P80H, 8
}
Method(P8XH, 2, 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)
}
Store(P80D, P80H)
}
OperationRegion(SPRT, SystemIO, 0xb2, 0x02)
Field(SPRT, ByteAcc, Lock, Preserve) {
SSMP, 8
}
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)
}
OperationRegion(CMS1, SystemIO, 0x72, 0x02)
Field(CMS1, ByteAcc, NoLock, Preserve) {
CMSI, 8,
CMSD, 8
}
Method(CMSW, 2) {
Store(Arg0, CMSI)
Store(Arg1, CMSD)
}
Method(CMSR, 1) {
Store(Arg0, CMSI)
Return(CMSD)
}
Method(_PTS, 1) {
Store(Zero, \_SB.PCI0.LPC.EC0.RFLE)
Store(Zero, DQ30)
Store(0xe4, DBGD)
TRAP(TRTI, 0x21)
TRAP(TRTI, 0x22)
Store(0x90, DBGD)
TRAP(TRTI, 0x21)
If(LEqual(Arg0, 0x04)) {
CMSW(0x6e, 0x6e)
}
Store(0x91, DBGD)
TRAP(TRTI, 0x21)
If(LEqual(Arg0, 0x03)) {
If(ECOK) {
Store(KBWK, \_SB.PCI0.LPC.EC0.PSKB)
Store(MUWK, \_SB.PCI0.LPC.EC0.PSTP)
}
}
Else {
If(ECOK) {
Store(Zero, \_SB.PCI0.LPC.EC0.PSKB)
Store(Zero, \_SB.PCI0.LPC.EC0.PSTP)
}
}
Store(0x92, DBGD)
TRAP(TRTI, 0x21)
If(ECOK) {
Store(LAWK, \_SB.PCI0.LPC.EC0.PWOL)
}
Store(0x93, DBGD)
TRAP(TRTI, 0x21)
If(LAnd(LNot(LLess(MCHD, 0x04)), LEqual(LPSD, One))) {
Store(One, \_SB.PCI0.LPC.EC0.NICD)
}
Store(0x94, DBGD)
TRAP(TRTI, 0x21)
}
Method(_WAK, 1) {
Store(Zero, Local0)
Store(0xf6, DBGD)
TRAP(TRTI, 0x21)
CMSW(0x6e, Zero)
If(LEqual(RP1D, Zero)) {
If(LEqual(\_SB.PCI0.EXP1.PDSX, One)) {
Notify(\_SB.PCI0.EXP1, Zero)
Store(One, PRM0)
Store(PEHS, SSMP)
}
}
If(LEqual(RP2D, Zero)) {
If(LEqual(\_SB.PCI0.EXP2.PDSX, One)) {
Notify(\_SB.PCI0.EXP2, Zero)
Store(0x02, PRM0)
Store(PEHS, SSMP)
}
}
If(LEqual(RP3D, Zero)) {
If(LEqual(\_SB.PCI0.EXP3.PDSX, One)) {
Notify(\_SB.PCI0.EXP3, Zero)
Store(0x03, PRM0)
Store(PEHS, SSMP)
}
}
If(LEqual(RP4D, Zero)) {
If(LEqual(\_SB.PCI0.EXP4.PDSX, One)) {
Notify(\_SB.PCI0.EXP4, Zero)
Store(0x04, PRM0)
Store(PEHS, SSMP)
}
}
If(LEqual(RP5D, Zero)) {
If(LEqual(\_SB.PCI0.EXP5.PDSX, One)) {
Notify(\_SB.PCI0.EXP5, Zero)
Store(0x05, PRM0)
Store(PEHS, SSMP)
}
}
If(LEqual(Arg0, 0x03)) {
If(LAnd(LEqual(CRPS, One), LNot(LLess(MCHD, 0x04)))) {
If(LNot(IGDS)) {
Notify(\_SB.PCI0.EXP5, Zero)
}
}
If(ECOK) {
If(LNot(LLess(OSYS, 0x07d9))) {
Store(One, \_SB.PCI0.LPC.EC0.W7OS)
}
Else {
Store(Zero, \_SB.PCI0.LPC.EC0.W7OS)
}
}
If(ECOK) {
If(LEqual(\_SB.PCI0.LPC.EC0.W7OS, One)) {
If(LEqual(\_SB.PCI0.LPC.EC0.BACR, One)) {
Notify(\_SB.BAT0, 0x80)
}
If(LEqual(\_SB.PCI0.LPC.EC0.BACR, Zero)) {
}
}
}
}
Store(0x95, DBGD)
TRAP(TRTI, 0x21)
If(LEqual(Arg0, 0x03)) {
Store(Zero, \_SB.PCI0.LPC.EC0.RTCW)
}
If(LOr(LEqual(Arg0, 0x03), LEqual(Arg0, 0x04))) {
Store(CMSR(0x70), Local0)
If(LEqual(Local0, One)) {
Notify(\_SB.PWRB, 0x02)
}
}
Store(0x96, DBGD)
TRAP(TRTI, 0x21)
If(LOr(LEqual(Arg0, 0x03), LEqual(Arg0, 0x04))) {
If(LEqual(EIST, One)) {
Store(Zero, THR0)
Store(Zero, Q8E0)
Store(Zero, CUPS)
Store(CUPS, \_PR.CPU0._PPC)
If(CMPE) {
Notify(\_PR.CPU0, 0x80)
Notify(\_PR.CPU1, 0x80)
}
Else {
Notify(\_PR.CPU0, 0x80)
}
}
Store(0x97, DBGD)
TRAP(TRTI, 0x21)
If(ECOK) {
Store(Zero, \_SB.PCI0.LPC.EC0.CLOW)
}
If(ECOK) {
If(LNot(LLess(OSYS, 0x07d9))) {
Store(One, \_SB.PCI0.LPC.EC0.W7OS)
}
Else {
Store(Zero, \_SB.PCI0.LPC.EC0.W7OS)
}
}
Store(0x98, DBGD)
TRAP(TRTI, 0x21)
Store(0x99, DBGD)
TRAP(TRTI, 0x21)
If(LAnd(LNot(LLess(MCHD, 0x04)), LEqual(LPSD, One))) {
If(ECOK) {
If(LNot(LEqual(DQ30, One))) {
If(LGreater(Arg0, 0x03)) {
\_SB.PCI0.LPC.EC0._Q30()
}
Store(One, DQ30)
}
}
}
}
Store(0x9a, DBGD)
TRAP(TRTI, 0x21)
Return(Package(0x02) {
Zero,
Zero,
})
}
Name(_S0, Package(0x04) {
Zero,
Zero,
Zero,
Zero,
})
If(LEqual(DAS3, One)) {
Name(_S3, Package(0x04) {
0x05,
0x05,
Zero,
Zero,
})
}
Name(_S4, Package(0x04) {
0x06,
0x06,
Zero,
Zero,
})
Name(_S5, Package(0x04) {
0x07,
0x07,
Zero,
Zero,
})
Scope(_GPE) {
Method(_L01) {
Add(L01C, One, L01C)
P8XH(Zero, One)
P8XH(One, L01C)
TRAP(TRTI, 0xa1)
If(LAnd(LEqual(RP1D, Zero), \_SB.PCI0.EXP1.HPSX)) {
Sleep(0x64)
If(\_SB.PCI0.EXP1.PDCX) {
Store(One, \_SB.PCI0.EXP1.PDCX)
Store(One, \_SB.PCI0.EXP1.HPSX)
Notify(\_SB.PCI0.EXP1, Zero)
Store(One, PRM0)
Store(PEHS, SSMP)
}
Else {
Store(One, \_SB.PCI0.EXP1.HPSX)
}
}
If(LAnd(LEqual(RP2D, Zero), \_SB.PCI0.EXP2.HPSX)) {
Sleep(0x64)
If(\_SB.PCI0.EXP2.PDCX) {
Store(One, \_SB.PCI0.EXP2.PDCX)
Store(One, \_SB.PCI0.EXP2.HPSX)
Notify(\_SB.PCI0.EXP2, Zero)
Store(0x02, PRM0)
Store(PEHS, SSMP)
}
Else {
Store(One, \_SB.PCI0.EXP2.HPSX)
}
}
If(LAnd(LEqual(RP3D, Zero), \_SB.PCI0.EXP3.HPSX)) {
Sleep(0x64)
If(\_SB.PCI0.EXP3.PDCX) {
Store(One, \_SB.PCI0.EXP3.PDCX)
Store(One, \_SB.PCI0.EXP3.HPSX)
Notify(\_SB.PCI0.EXP3, Zero)
Store(0x03, PRM0)
Store(PEHS, SSMP)
}
Else {
Store(One, \_SB.PCI0.EXP3.HPSX)
}
}
If(LAnd(LEqual(RP4D, Zero), \_SB.PCI0.EXP4.HPSX)) {
Sleep(0x64)
If(\_SB.PCI0.EXP4.PDCX) {
Store(One, \_SB.PCI0.EXP4.PDCX)
Store(One, \_SB.PCI0.EXP4.HPSX)
Notify(\_SB.PCI0.EXP4, Zero)
Store(0x04, PRM0)
Store(PEHS, SSMP)
}
Else {
Store(One, \_SB.PCI0.EXP4.HPSX)
}
}
If(LAnd(LEqual(CRPS, One), LNot(LLess(MCHD, 0x04)))) {
If(LNot(IGDS)) {
If(LAnd(LEqual(RP5D, Zero), \_SB.PCI0.EXP5.HPSX)) {
Sleep(0x64)
If(\_SB.PCI0.EXP5.PDCX) {
Store(One, \_SB.PCI0.EXP5.PDCX)
Store(One, \_SB.PCI0.EXP5.HPSX)
If(\_SB.PCI0.EXP5.PDSX) {
Store(0x0a, Local2)
While(LGreater(Local2, Zero)) {
Sleep(0x64)
And(\_SB.PCI0.EXP5.J380.DVID, 0xfff0ffff, Local1)
If(LEqual(Local1, 0x2380197b)) {
Store(0x88, \_SB.PCI0.EXP5.J380.LAT0)
Store(0x80, \_SB.PCI0.EXP5.J380.PMC0)
TRAP(TRTI, 0x5a)
Store(Zero, Local2)
CMSW(0x75, Zero)
If(And(One, \_SB.PCI0.LPC.EC0.SW2S, )) {
CMSW(0x75, 0xaa)
Store(Zero, \_SB.PCI0.EXP5.J380.D3EF)
}
}
Else {
Decrement(Local2)
}
}
}
Else {
Sleep(0x64)
}
Notify(\_SB.PCI0.EXP5, Zero)
Store(0x05, PRM0)
Store(PEHS, SSMP)
}
Else {
Store(One, \_SB.PCI0.EXP5.HPSX)
}
}
}
}
If(LAnd(LEqual(RP6D, Zero), \_SB.PCI0.EXP6.HPSX)) {
Sleep(0x64)
If(\_SB.PCI0.EXP6.PDCX) {
Store(One, \_SB.PCI0.EXP6.PDCX)
Store(One, \_SB.PCI0.EXP6.HPSX)
Notify(\_SB.PCI0.EXP6, Zero)
Store(0x06, PRM0)
Store(PEHS, SSMP)
}
Else {
Store(One, \_SB.PCI0.EXP6.HPSX)
}
}
}
Method(_L06) {
If(LAnd(\_SB.PCI0.OVGA.GSSE, LNot(GSMI))) {
\_SB.PCI0.OVGA.GSCI()
}
Else {
If(LEqual(And(\_SB.PCI0.ESCS, 0x08, ), 0x08)) {
Store(One, Local0)
Store(\_SB.PCI0.T0IS, \_SB.PCI0.T0IS)
Store(\_SB.PCI0.T0IS, Local0)
Store(\_SB.PCI0.T1IS, \_SB.PCI0.T1IS)
Store(\_SB.PCI0.T1IS, Local0)
Store(One, SCIS)
Store(One, \_SB.PCI0.GTSE)
}
Else {
Store(One, SCIS)
}
}
}
Method(_L07) {
}
Method(_L08) {
}
Method(_L0B) {
Notify(\_SB.PCI0.P32, 0x02)
}
Method(_L03) {
Notify(\_SB.PCI0.UHC1, 0x02)
}
Method(_L04) {
Notify(\_SB.PCI0.UHC2, 0x02)
}
Method(_L0C) {
Notify(\_SB.PCI0.UHC3, 0x02)
}
Method(_L20) {
}
Method(_L0D) {
}
Method(_L0E) {
}
Method(_L05) {
}
}
Method(_PIC, 1) {
Store(Arg0, GPIC)
}
Scope(_TZ) {
Name(TP85, 0x53)
Name(TPTM, 0x4a)
Name(TPAS, 0x87)
Name(TPPP, 0x42)
Name(AS00, 0x5f)
Name(AS85, 0x52)
Name(AS05, 0x64)
Name(AS90, 0x57)
Name(TA85, 0x4d)
Name(OT01, Buffer(0x03) {0x64, 0x5f, 0x5a })
Name(OT02, Buffer(0x03) {0x55, 0x52, 0x4b })
Name(OT03, Buffer(0x03) {0x69, 0x64, 0x5f })
Name(OT04, Buffer(0x03) {0x5a, 0x57, 0x50 })
Name(S4TP, 0x6e)
ThermalZone(TZ01) {
Method(_HOT, 0, Serialized) {
If(LNot(LLess(OSYS, 0x07d6))) {
If(LEqual(TJMX, 0x64)) {
Store(0x69, S4TP)
Return(0x0ec6)
}
If(LEqual(TJMX, 0x55)) {
Store(0x5a, S4TP)
Return(0x0e30)
}
If(LEqual(TJMX, 0x69)) {
Store(0x6e, S4TP)
Return(0x0ef8)
}
If(LEqual(TJMX, 0x5a)) {
Store(0x5f, S4TP)
Return(0x0e62)
}
}
}
Method(_CRT, 0, Serialized) {
If(LLess(OSYS, 0x07d6)) {
If(LEqual(TJMX, 0x64)) {
Store(0x69, S4TP)
Return(0x0ec6)
}
If(LEqual(TJMX, 0x55)) {
Store(0x5a, S4TP)
Return(0x0e30)
}
If(LEqual(TJMX, 0x69)) {
Store(0x6e, S4TP)
Return(0x0ef8)
}
If(LEqual(TJMX, 0x5a)) {
Store(0x5f, S4TP)
Return(0x0e62)
}
}
}
Method(_TMP) {
If(ECOK) {
Store(\_SB.PCI0.LPC.EC0.RTMP, Local0)
If(LNot(LLess(Local0, S4TP))) {
CMSW(0x6f, 0x6f)
}
If(LEqual(CTYP, Zero)) {
OTHD(Local0)
}
Return(Add(0x0aac, Multiply(Local0, 0x0a, ), ))
}
Else {
If(LEqual(CTYP, Zero)) {
OTHD(TPTM)
}
Return(Add(0x0aac, Multiply(TPTM, 0x0a, ), ))
}
}
Method(_PSL) {
If(CMPE) {
Return(Package(0x02) {
\_PR.CPU0,
\_PR.CPU1,
})
}
Return(Package(0x01) {
\_PR.CPU0,
})
}
Method(_SCP, 1, Serialized) {
CMSW(0x3e, Arg0)
If(LGreater(OSYS, 0x07d6)) {
Store(Arg0, CTYP)
Store(Arg0, \_SB.PCI0.LPC.EC0.THPM)
}
Else {
Store(Zero, CTYP)
Store(Zero, \_SB.PCI0.LPC.EC0.THPM)
}
}
Method(_PSV) {
If(CTYP) {
Return(Add(0x0aac, Multiply(TPPP, 0x0a, ), ))
}
Else {
And(PPMF, One, Local0)
If(Local0) {
Return(Add(0x0aac, Multiply(TPAS, 0x0a, ), ))
}
Else {
If(LEqual(TJMX, 0x64)) {
Return(Add(0x0aac, Multiply(AS00, 0x0a, ), ))
}
If(LEqual(TJMX, 0x55)) {
Return(Add(0x0aac, Multiply(AS85, 0x0a, ), ))
}
If(LEqual(TJMX, 0x69)) {
Return(Add(0x0aac, Multiply(AS05, 0x0a, ), ))
}
If(LEqual(TJMX, 0x5a)) {
Return(Add(0x0aac, Multiply(AS90, 0x0a, ), ))
}
}
}
}
Name(_TC1, 0x02)
Name(_TC2, 0x05)
Name(_TSP, 0x32)
Method(OTHD, 1) {
If(LEqual(TJMX, 0x64)) {
Store(OT01, Local0)
}
If(LEqual(TJMX, 0x55)) {
Store(OT02, Local0)
}
If(LEqual(TJMX, 0x69)) {
Store(OT03, Local0)
}
If(LEqual(TJMX, 0x5a)) {
Store(OT04, Local0)
}
If(LNot(LLess(Arg0, DerefOf(Index(Local0, Zero, ))))) {
THL1()
}
Else {
If(LNot(LLess(Arg0, DerefOf(Index(Local0, One, ))))) {
THL2()
}
Else {
If(LNot(LGreater(Arg0, DerefOf(Index(Local0, 0x02, ))))) {
THL3()
}
}
}
CPUL()
}
Method(THL1) {
Store(Subtract(PSTN, One, ), THR0)
}
Method(THL2) {
If(LEqual(TJMX, 0x64)) {
Store(0x02, THR0)
}
If(LEqual(TJMX, 0x55)) {
Store(One, THR0)
}
If(LEqual(TJMX, 0x69)) {
Store(0x02, THR0)
}
If(LEqual(TJMX, 0x5a)) {
Store(One, THR0)
}
}
Method(THL3) {
Store(Zero, THR0)
}
Name(REGN, "Processor\x20Thermal\x20Zone")
Name(FMAX, 0x1388)
Name(FMIN, Zero)
Method(FRSP) {
Store(Zero, Local2)
If(ECOK) {
Store(\_SB.PCI0.LPC.EC0.RPM1, Local0)
Store(\_SB.PCI0.LPC.EC0.RPM2, Local1)
ShiftLeft(Local1, 0x08, Local1)
Or(Local0, Local1, Local0)
If(LNot(LEqual(Local0, Zero))) {
Divide(0x00075300, Local0, Local0, Local2)
}
}
Return(Local2)
}
Method(FSSP, 1) {
If(ECOK) {
If(LNot(LEqual(Arg0, Zero))) {
Store(Zero, \_SB.PCI0.LPC.EC0.SFAN)
}
Else {
Store(0x02, \_SB.PCI0.LPC.EC0.SFAN)
}
}
}
}
}
Method(GETP, 1, Serialized) {
If(LEqual(And(Arg0, 0x09, ), Zero)) {
Return(Ones)
}
If(LEqual(And(Arg0, 0x09, ), 0x08)) {
Return(0x0384)
}
ShiftRight(And(Arg0, 0x0300, ), 0x08, Local0)
ShiftRight(And(Arg0, 0x3000, ), 0x0c, Local1)
Return(Multiply(0x1e, Subtract(0x09, Add(Local0, Local1, ), ), ))
}
Method(GDMA, 5, Serialized) {
If(Arg0) {
If(Arg1) {
Return(0x14)
}
If(Arg2) {
Return(Multiply(Subtract(0x04, Arg3, ), 0x0f, ))
}
Return(Multiply(Subtract(0x04, Arg3, ), 0x1e, ))
}
Return(Ones)
}
Method(GETT, 1, Serialized) {
Return(Multiply(0x1e, Subtract(0x09, Add(And(ShiftRight(Arg0, 0x02, ), 0x03, ), And(Arg0, 0x03, ), ), ), ))
}
Method(GETF, 3, Serialized) {
Name(TMPF, Zero)
If(Arg0) {
Or(TMPF, One, TMPF)
}
If(And(Arg2, 0x02, )) {
Or(TMPF, 0x02, TMPF)
}
If(Arg1) {
Or(TMPF, 0x04, TMPF)
}
If(And(Arg2, 0x20, )) {
Or(TMPF, 0x08, TMPF)
}
If(And(Arg2, 0x4000, )) {
Or(TMPF, 0x10, TMPF)
}
Return(TMPF)
}
Method(SETP, 3, Serialized) {
If(LGreater(Arg0, 0xf0)) {
Return(0x08)
}
Else {
If(And(Arg1, 0x02, )) {
If(LAnd(LNot(LGreater(Arg0, 0x78)), And(Arg2, 0x02, ))) {
Return(0x2301)
}
If(LAnd(LNot(LGreater(Arg0, 0xb4)), And(Arg2, One, ))) {
Return(0x2101)
}
}
Return(0x1001)
}
}
Method(SDMA, 1, Serialized) {
If(LNot(LGreater(Arg0, 0x14))) {
Return(One)
}
If(LNot(LGreater(Arg0, 0x1e))) {
Return(0x02)
}
If(LNot(LGreater(Arg0, 0x2d))) {
Return(One)
}
If(LNot(LGreater(Arg0, 0x3c))) {
Return(0x02)
}
If(LNot(LGreater(Arg0, 0x5a))) {
Return(One)
}
Return(Zero)
}
Method(SETT, 3, Serialized) {
If(And(Arg1, 0x02, )) {
If(LAnd(LNot(LGreater(Arg0, 0x78)), And(Arg2, 0x02, ))) {
Return(0x0b)
}
If(LAnd(LNot(LGreater(Arg0, 0xb4)), And(Arg2, One, ))) {
Return(0x09)
}
}
Return(0x04)
}
Name(Q8E0, Zero)
Name(THR0, Zero)
Name(CUPS, Zero)
Method(CPUL) {
And(PPMF, One, Local1)
If(Local1) {
Store(Zero, Local0)
Or(Local0, LNot(LEqual(Q8E0, Zero)), Local0)
Or(Local0, LNot(LEqual(THR0, Zero)), Local0)
If(Local0) {
Store(Zero, CUPS)
If(LGreater(Q8E0, CUPS)) {
Store(Q8E0, CUPS)
}
If(LGreater(THR0, CUPS)) {
Store(THR0, CUPS)
}
If(LNot(LEqual(CUPS, \_PR.CPU0._PPC))) {
Store(CUPS, \_PR.CPU0._PPC)
If(CMPE) {
Notify(\_PR.CPU0, 0x80)
Notify(\_PR.CPU1, 0x80)
}
Else {
Notify(\_PR.CPU0, 0x80)
}
}
}
Else {
If(LNot(LEqual(\_PR.CPU0._PPC, Zero))) {
Store(Zero, \_PR.CPU0._PPC)
If(CMPE) {
Notify(\_PR.CPU0, 0x80)
Notify(\_PR.CPU1, 0x80)
}
Else {
Notify(\_PR.CPU0, 0x80)
}
}
Store(Zero, CUPS)
}
}
}
Scope(_SB) {
Device(MCFG) {
Name(_HID, 0x020cd041)
Name(_CRS, Buffer(0x1c) {0x87, 0x17, 0x0, 0x0, 0xd, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff, 0xff, 0xff, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x79, 0x0 })
}
Device(PWRB) {
Name(_HID, 0x0c0cd041)
}
Device(LID0) {
Name(_HID, 0x0d0cd041)
Name(LSTS, Zero)
Method(_LID) {
If(ECOK) {
If(LEqual(^^PCI0.LPC.EC0.ECLS, One)) {
Store(Zero, LSTS)
}
Else {
Store(One, LSTS)
}
If(IGDS) {
Store(LSTS, LIDS)
Store(LSTS, ^^PCI0.OVGA.CLID)
}
Return(LSTS)
}
Else {
If(IGDS) {
Store(LIDS, ^^PCI0.OVGA.CLID)
}
Return(LIDS)
}
}
}
Device(SLPB) {
Name(_HID, 0x0e0cd041)
}
Method(GBFE, 3) {
CreateByteField(Arg0, Arg1, TIDX)
Store(TIDX, Arg2)
}
Method(PBFE, 3) {
CreateByteField(Arg0, Arg1, TIDX)
Store(Arg2, TIDX)
}
Method(ITOS, 1) {
Store(Buffer(0x09) {0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0 }, Local0)
Store(Buffer(0x11) {0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x0 }, Local7)
Store(0x08, Local1)
Store(Zero, Local2)
Store(Zero, Local3)
While(Local1) {
Decrement(Local1)
And(ShiftRight(Arg0, ShiftLeft(Local1, 0x02, ), ), 0x0f, Local4)
If(Local4) {
Store(Ones, Local3)
}
If(Local3) {
GBFE(Local7, Local4, RefOf(Local5))
PBFE(Local0, Local2, Local5)
Increment(Local2)
}
}
Return(Local0)
}
Device(ACAD) {
Name(_HID, "ACPI0003")
Name(_PCL, Package(0x01) {
_SB,
})
Name(ACP, Ones)
Method(_PSR) {
If(ECOK) {
And(One, ^^PCI0.LPC.EC0.SW2S, Local0)
Store(Local0, PWRS)
TRAP(TRTP, PSSS)
Return(Local0)
}
Store(ACPS, PWRS)
Return(ACPS)
}
Method(_STA) {
Return(0x0f)
}
}
Device(BAT0) {
Name(FRST, One)
Name(_HID, 0x0a0cd041)
Name(_UID, One)
Name(_PCL, Package(0x01) {
_SB,
})
Name(PBIF, Package(0x0d) {
One,
Ones,
Ones,
One,
Ones,
0xfa,
0x96,
0x0a,
0x19,
"BAT1",
"\x20",
"\x20",
"\x20",
})
Name(PBST, Package(0x04) {
Zero,
Ones,
Ones,
0x2710,
})
Name(BAST, Zero)
Name(B1ST, 0x0f)
Name(B1WT, Zero)
Name(FABL, Ones)
Method(_STA) {
If(ECOK) {
If(^^PCI0.LPC.EC0.MBTS) {
Store(0x1f, B1ST)
}
Else {
Store(0x0f, B1ST)
}
}
Else {
Store(0x0f, B1ST)
}
Return(B1ST)
}
Method(_BIF) {
If(ECOK) {
If(^^PCI0.LPC.EC0.MBTS) {
UPBI()
}
Else {
IVBI()
}
}
Else {
IVBI()
}
Return(PBIF)
}
Method(_BST) {
If(ECOK) {
If(^^PCI0.LPC.EC0.MBTS) {
UPBS()
}
Else {
IVBS()
}
}
Else {
IVBS()
}
Return(PBST)
}
Method(UPBI) {
If(LNot(^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x10, RefOf(Local5)))) {
If(LAnd(Local5, LNot(And(Local5, 0x8000, )))) {
ShiftRight(Local5, 0x05, Local5)
ShiftLeft(Local5, 0x05, Local5)
Store(Local5, Index(PBIF, 0x02, ))
Divide(Local5, 0x64, , Local2)
Add(Local2, One, Local2)
If(LEqual(^^PCI0.LPC.EC0.W7OS, One)) {
Multiply(Local2, 0x0c, Local4)
Add(Local4, 0x02, Index(PBIF, 0x05, ))
Multiply(Local2, 0x07, Local4)
Add(Local4, 0x02, Index(PBIF, 0x06, ))
Multiply(Local2, 0x09, Local4)
Add(Local4, 0x02, FABL)
}
Else {
Multiply(Local2, 0x05, Local4)
Add(Local4, 0x02, Index(PBIF, 0x05, ))
Multiply(Local2, 0x03, Local4)
Add(Local4, 0x02, Index(PBIF, 0x06, ))
}
}
}
Store(^^PCI0.LPC.EC0.BCLB, Local0)
Store(^^PCI0.LPC.EC0.BCHB, Local1)
ShiftLeft(Local1, 0x08, Local1)
Or(Local0, Local1, Local0)
Store(Local0, Index(PBIF, One, ))
Store(^^PCI0.LPC.EC0.BVLB, Local0)
Store(^^PCI0.LPC.EC0.BVHB, Local1)
ShiftLeft(Local1, 0x08, Local1)
Or(Local0, Local1, Local0)
Store(Local0, Index(PBIF, 0x04, ))
If(^^PCI0.LPC.EC0.MBNH) {
Store("OANI\x24", Index(PBIF, 0x09, ))
Store("NiMH", Index(PBIF, 0x0b, ))
}
Else {
Sleep(0x32)
Store("LION", Index(PBIF, 0x0b, ))
}
Store("Primary", Index(PBIF, 0x09, ))
UPUM()
Store(One, Index(PBIF, Zero, ))
}
Method(UPUM) {
Store(Buffer(0x0a) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, Local0)
Store(Buffer(0x05) {0x36, 0x35, 0x35, 0x33, 0x35 }, Local6)
Store(Buffer(0x05) {0x31, 0x32, 0x33, 0x32, 0x31 }, Local7)
Store("Hewlett\x2dPackard", Index(PBIF, 0x0c, ))
}
Method(UPBS) {
Store(^^PCI0.LPC.EC0.MBRM, Local5)
If(LNot(And(Local5, 0x8000, ))) {
ShiftRight(Local5, 0x05, Local5)
ShiftLeft(Local5, 0x05, Local5)
If(LNot(LEqual(Local5, DerefOf(Index(PBST, 0x02, ))))) {
If(LEqual(^^PCI0.LPC.EC0.W7OS, One)) {
If(LEqual(^^PCI0.LPC.EC0.BACR, One)) {
Store(FABL, Index(PBST, 0x02, ))
}
Else {
Store(Local5, Index(PBST, 0x02, ))
}
}
Else {
Store(Local5, Index(PBST, 0x02, ))
}
}
}
Store(^^PCI0.LPC.EC0.MBCV, Index(PBST, 0x03, ))
Store(^^PCI0.LPC.EC0.MBST, Index(PBST, Zero, ))
}
Method(IVBI) {
Store(Ones, Index(PBIF, One, ))
Store(Ones, Index(PBIF, 0x02, ))
Store(Ones, Index(PBIF, 0x04, ))
Store("Bad", Index(PBIF, 0x09, ))
Store("Bad", Index(PBIF, 0x0a, ))
Store("Bad", Index(PBIF, 0x0b, ))
Store("Bad", Index(PBIF, 0x0c, ))
}
Method(IVBS) {
Store(Zero, Index(PBST, Zero, ))
Store(Ones, Index(PBST, One, ))
Store(Ones, Index(PBST, 0x02, ))
Store(0x2710, Index(PBST, 0x03, ))
}
}
Device(PCI0) {
Name(_HID, 0x080ad041)
Name(_CID, 0x030ad041)
Name(_ADR, Zero)
Name(SUPP, Zero)
Name(CTRL, Zero)
Method(_OSC, 4) {
CreateDWordField(Arg3, Zero, CDW1)
CreateDWordField(Arg3, 0x04, CDW2)
CreateDWordField(Arg3, 0x08, CDW3)
If(LEqual(Arg0, Buffer(0x10) {0x5b, 0x4d, 0xdb, 0x33, 0xf7, 0x1f, 0x1c, 0x40, 0x96, 0x57, 0x74, 0x41, 0xc0, 0x3d, 0xd7, 0x66 })) {
Store(CDW2, SUPP)
Store(CDW3, CTRL)
And(CTRL, 0x1e, CTRL)
And(CTRL, 0x1d, CTRL)
If(Not(And(CDW1, One, ), )) {
}
If(LNot(LEqual(CDW3, CTRL))) {
Or(CDW1, 0x10, CDW1)
}
Store(CTRL, CDW3)
Return(Arg3)
}
Else {
Or(CDW1, 0x04, CDW1)
Return(Arg3)
}
}
Name(TPOS, Zero)
Method(_INI) {
If(CondRefOf(_OSI, Local0)) {
If(_OSI("Linux")) {
Store(0x03e8, OSYS)
Store(0x80, TPOS)
Store(One, ^LPC.EC0.ECOS)
}
Else {
Store(0x07d1, OSYS)
Store(0x08, TPOS)
}
If(_OSI("Windows\x202001\x20SP2")) {
Store(0x07d2, OSYS)
Store(0x11, TPOS)
}
If(_OSI("Windows\x202006")) {
Store(0x07d6, OSYS)
Store(0x40, TPOS)
}
If(_OSI("Windows\x202009")) {
Store(0x07d9, OSYS)
}
}
Else {
Store(0x07d0, OSYS)
Store(0x04, TPOS)
}
}
OperationRegion(HBUS, PCI_Config, 0x40, 0xc0)
Field(HBUS, DWordAcc, NoLock, Preserve) {
EPEN, 1,
, 11,
EPBR, 20,
Offset(0x8),
MHEN, 1,
, 13,
MHBR, 18,
Offset(0x20),
PXEN, 1,
PXSZ, 2,
, 23,
PXBR, 6,
Offset(0x28),
DIEN, 1,
, 11,
DIBR, 20,
Offset(0x30),
IPEN, 1,
, 11,
IPBR, 20,
Offset(0x50),
, 4,
PM0H, 2,
Offset(0x51),
PM1L, 2,
, 2,
PM1H, 2,
Offset(0x52),
PM2L, 2,
, 2,
PM2H, 2,
Offset(0x53),
PM3L, 2,
, 2,
PM3H, 2,
Offset(0x54),
PM4L, 2,
, 2,
PM4H, 2,
Offset(0x55),
PM5L, 2,
, 2,
PM5H, 2,
Offset(0x56),
PM6L, 2,
, 2,
PM6H, 2,
Offset(0x57),
, 7,
HENA, 1,
Offset(0x62),
TUUD, 16,
Offset(0x70),
, 4,
TLUD, 12,
Offset(0x89),
, 3,
GTSE, 1,
Offset(0x8a)
}
OperationRegion(MCHT, SystemMemory, 0xfed11000, 0xff)
Field(MCHT, ByteAcc, NoLock, Preserve) {
Offset(0x1e),
T0IS, 16,
Offset(0x5e),
T1IS, 16,
Offset(0xef),
ESCS, 8
}
Name(BUF0, Buffer(0x01ee) {0x88, 0xd, 0x0, 0x2, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x87, 0x17, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xc, 0x0, 0x0, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 0x1, 0x8, 0x87, 0x17, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0xff, 0xff, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xff, 0x3f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xc, 0x0, 0xff, 0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xc, 0x0, 0xff, 0xbf, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x!
0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xc, 0x0, 0xff, 0xff, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xff, 0x3f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xd, 0x0, 0xff, 0x7f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xd, 0x0, 0xff, 0xbf, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xd, 0x0, 0xff, 0xff, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0xff, 0x3f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xe, 0x0, 0xff, 0x7f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, !
0x80, 0xe, 0x0, 0xff, 0xbf, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,!
0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xe, 0x0, 0xff, 0xff, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0xff, 0xff, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xbf, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd4, 0xfe, 0xff, 0x4f, 0xd4, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
Method(_CRS, 0, Serialized) {
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)
}
If(LNot(LEqual(^LPC.TPM.ACC0, 0xff))) {
CreateDWordField(BUF0, 0x01e8, TPML)
Store(0x5000, TPML)
}
CreateDWordField(BUF0, 0x01c2, M1MN)
CreateDWordField(BUF0, 0x01c6, M1MX)
CreateDWordField(BUF0, 0x01ce, M1LN)
ShiftLeft(TLUD, 0x14, M1MN)
Add(Subtract(M1MX, M1MN, ), One, M1LN)
Return(BUF0)
}
Method(_PRT) {
If(LEqual(GPIC, Zero)) {
Return(Package(0x1a) {
Package(0x04) {
0x0001ffff,
Zero,
^LPC.LNKA,
Zero,
},
Package(0x04) {
0x0001ffff,
One,
^LPC.LNKB,
Zero,
},
Package(0x04) {
0x0001ffff,
0x02,
^LPC.LNKC,
Zero,
},
Package(0x04) {
0x0001ffff,
0x03,
^LPC.LNKD,
Zero,
},
Package(0x04) {
0x0002ffff,
Zero,
^LPC.LNKA,
Zero,
},
Package(0x04) {
0x0003ffff,
Zero,
^LPC.LNKA,
Zero,
},
Package(0x04) {
0x0003ffff,
One,
^LPC.LNKB,
Zero,
},
Package(0x04) {
0x0003ffff,
0x02,
^LPC.LNKC,
Zero,
},
Package(0x04) {
0x0003ffff,
0x03,
^LPC.LNKD,
Zero,
},
Package(0x04) {
0x001affff,
Zero,
^LPC.LNKA,
Zero,
},
Package(0x04) {
0x001affff,
One,
^LPC.LNKF,
Zero,
},
Package(0x04) {
0x001affff,
0x02,
^LPC.LNKC,
Zero,
},
Package(0x04) {
0x001affff,
0x03,
^LPC.LNKD,
Zero,
},
Package(0x04) {
0x001bffff,
Zero,
^LPC.LNKG,
Zero,
},
Package(0x04) {
0x001cffff,
Zero,
^LPC.LNKB,
Zero,
},
Package(0x04) {
0x001cffff,
One,
^LPC.LNKA,
Zero,
},
Package(0x04) {
0x001cffff,
0x02,
^LPC.LNKC,
Zero,
},
Package(0x04) {
0x001cffff,
0x03,
^LPC.LNKD,
Zero,
},
Package(0x04) {
0x001dffff,
Zero,
^LPC.LNKE,
Zero,
},
Package(0x04) {
0x001dffff,
One,
^LPC.LNKD,
Zero,
},
Package(0x04) {
0x001dffff,
0x02,
^LPC.LNKC,
Zero,
},
Package(0x04) {
0x001dffff,
0x03,
^LPC.LNKA,
Zero,
},
Package(0x04) {
0x001fffff,
Zero,
^LPC.LNKC,
Zero,
},
Package(0x04) {
0x001fffff,
One,
^LPC.LNKD,
Zero,
},
Package(0x04) {
0x001fffff,
0x02,
^LPC.LNKC,
Zero,
},
Package(0x04) {
0x001fffff,
0x03,
^LPC.LNKA,
Zero,
},
})
}
Else {
Return(Package(0x1a) {
Package(0x04) {
0x0001ffff,
Zero,
Zero,
0x10,
},
Package(0x04) {
0x0001ffff,
One,
Zero,
0x11,
},
Package(0x04) {
0x0001ffff,
0x02,
Zero,
0x12,
},
Package(0x04) {
0x0001ffff,
0x03,
Zero,
0x13,
},
Package(0x04) {
0x0002ffff,
Zero,
Zero,
0x10,
},
Package(0x04) {
0x0003ffff,
Zero,
Zero,
0x10,
},
Package(0x04) {
0x0003ffff,
One,
Zero,
0x11,
},
Package(0x04) {
0x0003ffff,
0x02,
Zero,
0x12,
},
Package(0x04) {
0x0003ffff,
0x03,
Zero,
0x13,
},
Package(0x04) {
0x001affff,
Zero,
Zero,
0x10,
},
Package(0x04) {
0x001affff,
One,
Zero,
0x15,
},
Package(0x04) {
0x001affff,
0x02,
Zero,
0x12,
},
Package(0x04) {
0x001affff,
0x03,
Zero,
0x13,
},
Package(0x04) {
0x001bffff,
Zero,
Zero,
0x16,
},
Package(0x04) {
0x001cffff,
Zero,
Zero,
0x11,
},
Package(0x04) {
0x001cffff,
One,
Zero,
0x10,
},
Package(0x04) {
0x001cffff,
0x02,
Zero,
0x12,
},
Package(0x04) {
0x001cffff,
0x03,
Zero,
0x13,
},
Package(0x04) {
0x001dffff,
Zero,
Zero,
0x14,
},
Package(0x04) {
0x001dffff,
One,
Zero,
0x13,
},
Package(0x04) {
0x001dffff,
0x02,
Zero,
0x12,
},
Package(0x04) {
0x001dffff,
0x03,
Zero,
0x10,
},
Package(0x04) {
0x001fffff,
Zero,
Zero,
0x12,
},
Package(0x04) {
0x001fffff,
One,
Zero,
0x13,
},
Package(0x04) {
0x001fffff,
0x02,
Zero,
0x12,
},
Package(0x04) {
0x001fffff,
0x03,
Zero,
0x10,
},
})
}
}
Device(OVGA) {
Name(_ADR, 0x00020000)
Method(_DOS, 1) {
Store(And(Arg0, 0x07, ), DSEN)
}
Method(_DOD) {
Store(Zero, NDID)
If(LNot(LEqual(DIDL, Zero))) {
Store(SDDL(DID1), DID1)
}
If(LNot(LEqual(DDL2, Zero))) {
Store(SDDL(DID2), DID2)
}
If(LNot(LEqual(DDL3, Zero))) {
Store(SDDL(DID3), DID3)
}
If(LNot(LEqual(DDL4, Zero))) {
Store(SDDL(DID4), DID4)
}
If(LNot(LEqual(DDL5, Zero))) {
Store(SDDL(DID5), DID5)
}
If(LEqual(NDID, One)) {
Name(TMP1, Package(0x01) {
Ones,
})
Store(Or(0x00010000, DID1, ), Index(TMP1, Zero, ))
Return(TMP1)
}
If(LEqual(NDID, 0x02)) {
Name(TMP2, Package(0x02) {
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(0x03) {
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(0x04) {
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(LGreater(NDID, 0x04)) {
Name(TMP5, Package(0x05) {
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)
}
Return(Package(0x01) {
0x0400,
})
}
Device(DD01) {
Method(_ADR, 0, Serialized) {
If(LEqual(DID1, Zero)) {
Return(One)
}
Else {
Return(And(0xffff, DID1, ))
}
}
Method(_DCS) {
Return(CDDS(DID1))
}
Method(_DGS) {
Return(NDDS(DID1))
}
Method(_DSS, 1) {
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) {
Return(CDDS(DID2))
}
Method(_DGS) {
Return(NDDS(DID2))
}
Method(_DSS, 1) {
If(LEqual(And(Arg0, 0xc0000000, ), 0xc0000000)) {
Store(NSTE, CSTE)
}
}
}
Device(DD03) {
Method(_ADR, 0, Serialized) {
Store(0xe3, DBGD)
TRAP(TRTI, 0x21)
If(LEqual(DID3, Zero)) {
Return(0x03)
}
Else {
Return(And(0xffff, DID3, ))
}
}
Method(_DCS) {
If(LEqual(DID3, Zero)) {
Return(0x0b)
}
Else {
Return(CDDS(DID3))
}
}
Method(_DGS) {
Return(NDDS(DID3))
}
Method(_DSS, 1) {
If(LEqual(And(Arg0, 0xc0000000, ), 0xc0000000)) {
Store(NSTE, CSTE)
}
}
Method(_BCL) {
If(LEqual(CHPF, One)) {
Return(BCLT)
}
Else {
Return(BCLT)
}
}
Method(_BCM, 1) {
If(ECOK) {
SBCM(Arg0)
}
}
Method(_BQC) {
If(ECOK) {
Return(GBQC())
}
Else {
Return(GBQC())
}
}
Method(GBQC) {
Store(Zero, Local0)
Store(^^^LPC.EC0.BRTL, Local1)
While(LLess(Local0, 0x0b)) {
If(LEqual(CHPF, One)) {
Store(DerefOf(Index(BCT2, Local0, )), Local2)
}
Else {
If(LEqual(CKPL, One)) {
Store(DerefOf(Index(BCT3, Local0, )), Local2)
}
Else {
Store(DerefOf(Index(BCT1, Local0, )), Local2)
}
}
If(LEqual(Local1, Local2)) {
Add(Local0, 0x02, Local2)
Store(DerefOf(Index(BCLT, Local2, )), Local3)
Store(0x0b, Local0)
}
Increment(Local0)
}
Return(Local3)
}
Method(SBCM, 1) {
Store(Zero, Local0)
While(LLess(Local0, 0x0b)) {
Add(Local0, 0x02, Local1)
Store(DerefOf(Index(BCLT, Local1, )), Local2)
If(LEqual(Arg0, Local2)) {
If(LEqual(CHPF, One)) {
Store(DerefOf(Index(BCT2, Local0, )), ^^^LPC.EC0.BRTL)
}
Else {
If(LEqual(CKPL, One)) {
Store(DerefOf(Index(BCT3, Local0, )), ^^^LPC.EC0.BRTL)
}
Else {
Store(DerefOf(Index(BCT1, Local0, )), ^^^LPC.EC0.BRTL)
}
}
Store(0x0b, Local0)
}
Increment(Local0)
}
}
}
Device(DD04) {
Method(_ADR, 0, Serialized) {
If(LEqual(DID4, Zero)) {
Return(0x04)
}
Else {
Return(And(0xffff, DID4, ))
}
}
Method(_DCS) {
If(LEqual(DID4, Zero)) {
Return(0x0b)
}
Else {
Return(CDDS(DID4))
}
}
Method(_DGS) {
Return(NDDS(DID4))
}
Method(_DSS, 1) {
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) {
If(LEqual(DID5, Zero)) {
Return(0x0b)
}
Else {
Return(CDDS(DID5))
}
}
Method(_DGS) {
Return(NDDS(DID5))
}
Method(_DSS, 1) {
If(LEqual(And(Arg0, 0xc0000000, ), 0xc0000000)) {
Store(NSTE, CSTE)
}
}
}
Method(SDDL, 1) {
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) {
If(LEqual(CADL, And(Arg0, 0x0f0f, ))) {
Return(0x1f)
}
If(LEqual(CAL2, And(Arg0, 0x0f0f, ))) {
Return(0x1f)
}
If(LEqual(CAL3, And(Arg0, 0x0f0f, ))) {
Return(0x1f)
}
If(LEqual(CAL4, And(Arg0, 0x0f0f, ))) {
Return(0x1f)
}
If(LEqual(CAL5, And(Arg0, 0x0f0f, ))) {
Return(0x1f)
}
If(LEqual(CAL6, And(Arg0, 0x0f0f, ))) {
Return(0x1f)
}
If(LEqual(CAL7, And(Arg0, 0x0f0f, ))) {
Return(0x1f)
}
If(LEqual(CAL8, And(Arg0, 0x0f0f, ))) {
Return(0x1f)
}
Return(0x1d)
}
Method(NDDS, 1) {
If(LEqual(NADL, And(Arg0, 0x0f0f, ))) {
Return(One)
}
If(LEqual(NDL2, And(Arg0, 0x0f0f, ))) {
Return(One)
}
If(LEqual(NDL3, And(Arg0, 0x0f0f, ))) {
Return(One)
}
If(LEqual(NDL4, And(Arg0, 0x0f0f, ))) {
Return(One)
}
If(LEqual(NDL5, And(Arg0, 0x0f0f, ))) {
Return(One)
}
If(LEqual(NDL6, And(Arg0, 0x0f0f, ))) {
Return(One)
}
If(LEqual(NDL7, And(Arg0, 0x0f0f, ))) {
Return(One)
}
If(LEqual(NDL8, And(Arg0, 0x0f0f, ))) {
Return(One)
}
Return(Zero)
}
Scope(^^PCI0) {
OperationRegion(MCHP, PCI_Config, 0x40, 0xc0)
Field(MCHP, AnyAcc, NoLock, Preserve) {
Offset(0x60),
TASM, 10,
Offset(0x62)
}
}
OperationRegion(IGDP, PCI_Config, 0x40, 0xc0)
Field(IGDP, AnyAcc, NoLock, Preserve) {
Offset(0x12),
, 1,
GIVD, 1,
, 2,
GUMA, 3,
Offset(0x14),
, 4,
GMFN, 1,
Offset(0x18),
Offset(0xa4),
ASLE, 8,
Offset(0xa8),
GSSE, 1,
GSSB, 14,
GSES, 1,
Offset(0xb0),
, 12,
CDVL, 1,
Offset(0xb2),
Offset(0xb5),
LBPC, 8,
Offset(0xbc),
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),
DRDY, 32,
CSTS, 32,
CEVT, 32,
Offset(0x120),
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),
SCIE, 1,
GEFC, 4,
GXFC, 3,
GESF, 8,
Offset(0x204),
PARM, 32,
DSLP, 32,
Offset(0x300),
ARDY, 32,
ASLC, 32,
TCHE, 32,
ALSI, 32,
BCLP, 32,
PFIT, 32,
CBLV, 32,
BCLM, 320,
CPFM, 32,
EPFM, 32,
PLUT, 592,
PFMB, 32,
CCDV, 32,
PCFT, 32,
Offset(0x400),
GVD1, 49152,
PHED, 32,
BDDC, 2048
}
Name(DBTB, Package(0x15) {
Zero,
0x07,
0x38,
0x01c0,
0x0e00,
0x3f,
0x01c7,
0x0e07,
0x01f8,
0x0e38,
0x0fc0,
Zero,
Zero,
Zero,
Zero,
Zero,
0x7000,
0x7007,
0x7038,
0x71c0,
0x7e00,
})
Name(CDCT, Package(0x05) {
Package(0x02) {
0xe4,
0x0140,
},
Package(0x02) {
0xde,
0x014d,
},
Package(0x02) {
0xde,
0x014d,
},
Package(0x02) {
Zero,
Zero,
},
Package(0x02) {
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(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) {
If(LNot(DRDY)) {
Sleep(ASLP)
}
Return(LNot(DRDY))
}
Method(PSTS) {
If(LGreater(CSTS, 0x02)) {
Sleep(ASLP)
}
Return(LEqual(CSTS, 0x03))
}
Method(GNOT, 2) {
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(OVGA, Arg1)
}
}
Notify(OVGA, 0x80)
Return(Zero)
}
Method(GHDS, 1) {
Store(Arg0, TIDX)
Return(GNOT(One, Zero))
}
Method(GLID, 1) {
Store(Arg0, CLID)
Return(GNOT(0x02, Zero))
}
Method(GDCK, 1) {
Store(Arg0, CDCK)
Return(GNOT(0x04, Zero))
}
Method(PARD) {
If(LNot(ARDY)) {
Sleep(ASLP)
}
Return(LNot(ARDY))
}
Method(AINT, 2) {
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)) {
Store(Divide(Multiply(Arg1, 0xff, ), 0x64, , ), BCLP)
Or(BCLP, 0x80000000, BCLP)
Store(0x02, ASLC)
}
Else {
If(LEqual(Arg0, Zero)) {
Store(Arg1, ALSI)
Store(One, ASLC)
}
Else {
Return(One)
}
}
}
Store(Zero, LBPC)
Return(Zero)
}
Method(SCIP) {
If(LNot(LEqual(OVER, Zero))) {
Return(LNot(GSMI))
}
Return(Zero)
}
}
Device(PEGP) {
Name(_ADR, 0x00010000)
Method(_PRT) {
If(LEqual(GPIC, Zero)) {
Return(Package(0x01) {
Package(0x04) {
0xffff,
Zero,
^^LPC.LNKA,
Zero,
},
})
}
Else {
Return(Package(0x01) {
Package(0x04) {
0xffff,
Zero,
Zero,
0x10,
},
})
}
}
Device(VGA) {
Name(_ADR, Zero)
Name(SWIT, One)
Name(CRTA, One)
Name(LCDA, One)
Name(TV0A, One)
Name(HDTV, One)
Method(_STA) {
Return(0x0f)
}
Name(_PSC, Zero)
Method(_PS0) {
Store(0xe3, DBGD)
TRAP(TRTI, 0x21)
Store(Zero, _PSC)
}
Method(_PS3) {
Store(0x03, _PSC)
}
Method(_DOS, 1) {
Store(And(Arg0, 0x03, ), SWIT)
}
Method(_DOD) {
Return(Package(0x03) {
0x00010100,
0x00010118,
0x00010121,
})
}
Device(CRT) {
Name(_ADR, 0x0100)
Method(_DCS) {
Store("CRT\x20\x2d\x2d\x20\x5fDCS", Debug)
If(CRTA) {
Return(0x1f)
}
Else {
Return(0x1d)
}
}
Method(_DGS) {
Store("CRT\x20\x2d\x2d\x20\x5fDGS", Debug)
If(CRTA) {
Return(One)
}
Else {
Return(Zero)
}
}
Method(_DSS, 1) {
Store("CRT\x20\x2d\x2d\x20\x5fDSS", Debug)
}
}
Device(LCD) {
Name(_ADR, 0x0118)
Method(_DCS) {
Store("LCD\x20\x2d\x2d\x20\x5fDCS", Debug)
If(LCDA) {
Return(0x1f)
}
Else {
Return(0x1d)
}
}
Method(_DGS) {
Store("LCD\x20\x2d\x2d\x20\x5fDCS", Debug)
If(LCDA) {
Return(One)
}
Else {
Return(Zero)
}
}
Method(_DSS, 1) {
Store("LCD\x20\x2d\x2d\x20\x5fDSS", Debug)
}
Method(_BCL) {
If(LEqual(CHPF, One)) {
Return(BCLT)
}
Else {
Return(BCLT)
}
}
Method(_BCM, 1) {
If(ECOK) {
SBCM(Arg0)
}
}
Method(_BQC) {
If(ECOK) {
Return(GBQC())
}
Else {
Return(GBQC())
}
}
Method(GBQC) {
Store(Zero, Local0)
Store(^^^^LPC.EC0.BRTL, Local1)
While(LLess(Local0, 0x0b)) {
If(LEqual(CHPF, One)) {
Store(DerefOf(Index(BCT2, Local0, )), Local2)
}
Else {
If(LEqual(CKPL, One)) {
Store(DerefOf(Index(BCT3, Local0, )), Local2)
}
Else {
Store(DerefOf(Index(BCT1, Local0, )), Local2)
}
}
If(LEqual(Local1, Local2)) {
Add(Local0, 0x02, Local2)
Store(DerefOf(Index(BCLT, Local2, )), Local3)
Store(0x0b, Local0)
}
Increment(Local0)
}
Return(Local3)
}
Method(SBCM, 1) {
Store(Zero, Local0)
While(LLess(Local0, 0x0b)) {
Add(Local0, 0x02, Local1)
Store(DerefOf(Index(BCLT, Local1, )), Local2)
If(LEqual(Arg0, Local2)) {
If(LEqual(CHPF, One)) {
Store(DerefOf(Index(BCT2, Local0, )), ^^^^LPC.EC0.BRTL)
}
Else {
If(LEqual(CKPL, One)) {
Store(DerefOf(Index(BCT3, Local0, )), ^^^^LPC.EC0.BRTL)
}
Else {
Store(DerefOf(Index(BCT1, Local0, )), ^^^^LPC.EC0.BRTL)
}
}
Store(0x0b, Local0)
}
Increment(Local0)
}
}
}
Device(HDMI) {
Name(_ADR, 0x0121)
Method(_DCS) {
Store("HDMI\x20TV\x20\x2d\x2d\x20\x5fDCS", Debug)
If(HDTV) {
Return(0x1f)
}
Else {
Return(0x1d)
}
}
Method(_DGS) {
Store("HDMI\x20TV\x20\x2d\x2d\x20\x5fDCS", Debug)
If(HDTV) {
Return(One)
}
Else {
Return(Zero)
}
}
Method(_DSS, 1) {
Store("HDMI\x20TV\x20\x2d\x2d\x20\x5fDSS", Debug)
}
}
}
}
Device(LANC) {
Name(_ADR, 0x00190000)
Name(_PRW, Package(0x02) {
0x0d,
0x04,
})
}
Device(P32) {
Name(_ADR, 0x001e0000)
Method(_PRW) {
If(LEqual(WKPM, One)) {
Return(Package(0x02) {
0x0b,
0x04,
})
}
Else {
Return(Package(0x02) {
0x0b,
Zero,
})
}
}
Method(_PRT) {
If(LEqual(GPIC, Zero)) {
Return(Package(0x04) {
Package(0x04) {
0x0002ffff,
Zero,
^^LPC.LNKD,
Zero,
},
Package(0x04) {
0x0002ffff,
One,
^^LPC.LNKC,
Zero,
},
Package(0x04) {
0x0002ffff,
0x02,
^^LPC.LNKA,
Zero,
},
Package(0x04) {
0x0002ffff,
0x03,
^^LPC.LNKB,
Zero,
},
})
}
Else {
Return(Package(0x04) {
Package(0x04) {
0x0002ffff,
Zero,
Zero,
0x13,
},
Package(0x04) {
0x0002ffff,
One,
Zero,
0x12,
},
Package(0x04) {
0x0002ffff,
0x02,
Zero,
0x10,
},
Package(0x04) {
0x0002ffff,
0x03,
Zero,
0x11,
},
})
}
}
}
Device(LPC) {
Name(_ADR, 0x001f0000)
OperationRegion(PRR0, PCI_Config, 0x60, 0x04)
Field(PRR0, AnyAcc, NoLock, Preserve) {
PIRA, 8,
PIRB, 8,
PIRC, 8,
PIRD, 8
}
OperationRegion(PRR1, PCI_Config, 0x68, 0x04)
Field(PRR1, AnyAcc, NoLock, Preserve) {
PIRE, 8,
PIRF, 8,
PIRG, 8,
PIRH, 8
}
OperationRegion(PRR2, PCI_Config, 0x80, 0x02)
Field(PRR2, AnyAcc, NoLock, Preserve) {
IODL, 8,
IODH, 8
}
Device(LNKA) {
Name(_HID, 0x0f0cd041)
Name(_UID, One)
Method(_STA) {
If(And(PIRA, 0x80, )) {
Return(0x09)
}
Else {
Return(0x0b)
}
}
Method(_DIS) {
Or(PIRA, 0x80, PIRA)
}
Method(_CRS) {
Name(BUF0, Buffer(0x06) {0x23, 0x1, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUF0, One, IRQW)
If(And(PIRA, 0x80, )) {
Store(Zero, Local0)
}
Else {
Store(One, Local0)
}
ShiftLeft(Local0, And(PIRA, 0x0f, ), IRQW)
Return(BUF0)
}
Name(_PRS, Buffer(0x06) {0x23, 0xb8, 0x1e, 0x18, 0x79, 0x0 })
Method(_SRS, 1) {
CreateWordField(Arg0, One, IRQW)
FindSetRightBit(IRQW, Local0)
If(LNot(LEqual(IRQW, Zero))) {
And(Local0, 0x7f, Local0)
Decrement(Local0)
}
Else {
Or(Local0, 0x80, Local0)
}
Store(Local0, PIRA)
}
}
Device(LNKB) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x02)
Method(_STA) {
If(And(PIRB, 0x80, )) {
Return(0x09)
}
Else {
Return(0x0b)
}
}
Method(_DIS) {
Or(PIRB, 0x80, PIRB)
}
Method(_CRS) {
Name(BUF0, Buffer(0x06) {0x23, 0x1, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUF0, One, IRQW)
If(And(PIRB, 0x80, )) {
Store(Zero, Local0)
}
Else {
Store(One, Local0)
}
ShiftLeft(Local0, And(PIRB, 0x0f, ), IRQW)
Return(BUF0)
}
Name(_PRS, Buffer(0x06) {0x23, 0xb8, 0x1e, 0x18, 0x79, 0x0 })
Method(_SRS, 1) {
CreateWordField(Arg0, One, IRQW)
FindSetRightBit(IRQW, Local0)
If(LNot(LEqual(IRQW, Zero))) {
And(Local0, 0x7f, Local0)
Decrement(Local0)
}
Else {
Or(Local0, 0x80, Local0)
}
Store(Local0, PIRB)
}
}
Device(LNKC) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x03)
Method(_STA) {
If(And(PIRC, 0x80, )) {
Return(0x09)
}
Else {
Return(0x0b)
}
}
Method(_DIS) {
Or(PIRC, 0x80, PIRC)
}
Method(_CRS) {
Name(BUF0, Buffer(0x06) {0x23, 0x1, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUF0, One, IRQW)
If(And(PIRC, 0x80, )) {
Store(Zero, Local0)
}
Else {
Store(One, Local0)
}
ShiftLeft(Local0, And(PIRC, 0x0f, ), IRQW)
Return(BUF0)
}
Name(_PRS, Buffer(0x06) {0x23, 0xb8, 0x1e, 0x18, 0x79, 0x0 })
Method(_SRS, 1) {
CreateWordField(Arg0, One, IRQW)
FindSetRightBit(IRQW, Local0)
If(LNot(LEqual(IRQW, Zero))) {
And(Local0, 0x7f, Local0)
Decrement(Local0)
}
Else {
Or(Local0, 0x80, Local0)
}
Store(Local0, PIRC)
}
}
Device(LNKD) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x04)
Method(_STA) {
If(And(PIRD, 0x80, )) {
Return(0x09)
}
Else {
Return(0x0b)
}
}
Method(_DIS) {
Or(PIRD, 0x80, PIRD)
}
Method(_CRS) {
Name(BUF0, Buffer(0x06) {0x23, 0x1, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUF0, One, IRQW)
If(And(PIRD, 0x80, )) {
Store(Zero, Local0)
}
Else {
Store(One, Local0)
}
ShiftLeft(Local0, And(PIRD, 0x0f, ), IRQW)
Return(BUF0)
}
Name(_PRS, Buffer(0x06) {0x23, 0xb8, 0x1e, 0x18, 0x79, 0x0 })
Method(_SRS, 1) {
CreateWordField(Arg0, One, IRQW)
FindSetRightBit(IRQW, Local0)
If(LNot(LEqual(IRQW, Zero))) {
And(Local0, 0x7f, Local0)
Decrement(Local0)
}
Else {
Or(Local0, 0x80, Local0)
}
Store(Local0, PIRD)
}
}
Device(LNKE) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x05)
Method(_STA) {
If(And(PIRE, 0x80, )) {
Return(0x09)
}
Else {
Return(0x0b)
}
}
Method(_DIS) {
Or(PIRE, 0x80, PIRE)
}
Method(_CRS) {
Name(BUF0, Buffer(0x06) {0x23, 0x1, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUF0, One, IRQW)
If(And(PIRE, 0x80, )) {
Store(Zero, Local0)
}
Else {
Store(One, Local0)
}
ShiftLeft(Local0, And(PIRE, 0x0f, ), IRQW)
Return(BUF0)
}
Name(_PRS, Buffer(0x06) {0x23, 0xb8, 0x1e, 0x18, 0x79, 0x0 })
Method(_SRS, 1) {
CreateWordField(Arg0, One, IRQW)
FindSetRightBit(IRQW, Local0)
If(LNot(LEqual(IRQW, Zero))) {
And(Local0, 0x7f, Local0)
Decrement(Local0)
}
Else {
Or(Local0, 0x80, Local0)
}
Store(Local0, PIRE)
}
}
Device(LNKF) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x06)
Method(_STA) {
If(And(PIRF, 0x80, )) {
Return(0x09)
}
Else {
Return(0x0b)
}
}
Method(_DIS) {
Or(PIRF, 0x80, PIRF)
}
Method(_CRS) {
Name(BUF0, Buffer(0x06) {0x23, 0x1, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUF0, One, IRQW)
If(And(PIRF, 0x80, )) {
Store(Zero, Local0)
}
Else {
Store(One, Local0)
}
ShiftLeft(Local0, And(PIRF, 0x0f, ), IRQW)
Return(BUF0)
}
Name(_PRS, Buffer(0x06) {0x23, 0xb8, 0x1e, 0x18, 0x79, 0x0 })
Method(_SRS, 1) {
CreateWordField(Arg0, One, IRQW)
FindSetRightBit(IRQW, Local0)
If(LNot(LEqual(IRQW, Zero))) {
And(Local0, 0x7f, Local0)
Decrement(Local0)
}
Else {
Or(Local0, 0x80, Local0)
}
Store(Local0, PIRF)
}
}
Device(LNKG) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x07)
Method(_STA) {
If(And(PIRG, 0x80, )) {
Return(0x09)
}
Else {
Return(0x0b)
}
}
Method(_DIS) {
Or(PIRG, 0x80, PIRG)
}
Method(_CRS) {
Name(BUF0, Buffer(0x06) {0x23, 0x1, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUF0, One, IRQW)
If(And(PIRG, 0x80, )) {
Store(Zero, Local0)
}
Else {
Store(One, Local0)
}
ShiftLeft(Local0, And(PIRG, 0x0f, ), IRQW)
Return(BUF0)
}
Name(_PRS, Buffer(0x06) {0x23, 0xb8, 0x1e, 0x18, 0x79, 0x0 })
Method(_SRS, 1) {
CreateWordField(Arg0, One, IRQW)
FindSetRightBit(IRQW, Local0)
If(LNot(LEqual(IRQW, Zero))) {
And(Local0, 0x7f, Local0)
Decrement(Local0)
}
Else {
Or(Local0, 0x80, Local0)
}
Store(Local0, PIRG)
}
}
Device(LNKH) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x08)
Method(_STA) {
If(And(PIRH, 0x80, )) {
Return(0x09)
}
Else {
Return(0x0b)
}
}
Method(_DIS) {
Or(PIRH, 0x80, PIRH)
}
Method(_CRS) {
Name(BUF0, Buffer(0x06) {0x23, 0x1, 0x0, 0x18, 0x79, 0x0 })
CreateWordField(BUF0, One, IRQW)
If(And(PIRH, 0x80, )) {
Store(Zero, Local0)
}
Else {
Store(One, Local0)
}
ShiftLeft(Local0, And(PIRH, 0x0f, ), IRQW)
Return(BUF0)
}
Name(_PRS, Buffer(0x06) {0x23, 0xb8, 0x1e, 0x18, 0x79, 0x0 })
Method(_SRS, 1) {
CreateWordField(Arg0, One, IRQW)
FindSetRightBit(IRQW, Local0)
If(LNot(LEqual(IRQW, Zero))) {
And(Local0, 0x7f, Local0)
Decrement(Local0)
}
Else {
Or(Local0, 0x80, Local0)
}
Store(Local0, PIRH)
}
}
Device(SYSR) {
Name(_HID, 0x020cd041)
Name(BUF0, Buffer(0x0112) {0x47, 0x1, 0x2e, 0x0, 0x2e, 0x0, 0x1, 0x2, 0x47, 0x1, 0x4e, 0x0, 0x4e, 0x0, 0x1, 0x2, 0x47, 0x1, 0x4e, 0x16, 0x4e, 0x16, 0x1, 0x2, 0x47, 0x1, 0x61, 0x0, 0x61, 0x0, 0x1, 0x1, 0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x1, 0x1, 0x47, 0x1, 0x80, 0x0, 0x80, 0x0, 0x1, 0x1, 0x47, 0x1, 0x92, 0x0, 0x92, 0x0, 0x1, 0x1, 0x47, 0x1, 0xb2, 0x0, 0xb2, 0x0, 0x1, 0x2, 0x47, 0x1, 0x63, 0x0, 0x63, 0x0, 0x1, 0x1, 0x47, 0x1, 0x65, 0x0, 0x65, 0x0, 0x1, 0x1, 0x47, 0x1, 0x67, 0x0, 0x67, 0x0, 0x1, 0x1, 0x47, 0x1, 0x0, 0x6, 0x0, 0x6, 0x1, 0x10, 0x47, 0x1, 0x10, 0x6, 0x10, 0x6, 0x1, 0x1, 0x47, 0x1, 0x0, 0x8, 0x0, 0x8, 0x1, 0x10, 0x47, 0x1, 0x10, 0x8, 0x10, 0x8, 0x1, 0x8, 0x47, 0x1, 0x20, 0x8, 0x20, 0x8, 0x1, 0x4, 0x47, 0x1, 0x0, 0x4, 0x0, 0x4, 0x1, 0x80, 0x47, 0x1, 0x0, 0x5, 0x0, 0x5, 0x1, 0x40, 0x47, 0x1, 0x80, 0x3, 0x80, 0x3, 0x1, 0x8, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x4, 0x86, 0x9, 0x0, 0x1, 0x0, 0xc0, 0xd1, 0xfe, 0x0, 0x40, 0x0, 0x0, 0x86!
, 0x9, 0x0, 0x1, 0x0, 0x0, 0xd1, 0xfe, 0x0, 0x40, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x80, 0xd1, 0xfe, 0x0, 0x10, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x90, 0xd1, 0xfe, 0x0, 0x10, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xc0, 0xfe, 0x0, 0x10, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xd2, 0xfe, 0x0, 0x0, 0x2, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xd4, 0xfe, 0x0, 0x50, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x50, 0xd4, 0xfe, 0x0, 0xb0, 0x4, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xe0, 0xfe, 0x0, 0x10, 0x0, 0x0, 0x79, 0x0 })
Method(_CRS, 0, Serialized) {
If(LNot(LEqual(^^TPM.ACC0, 0xff))) {
CreateDWordField(BUF0, 0xf4, HTPM)
Store(Zero, HTPM)
}
Return(BUF0)
}
}
Device(DMAC) {
Name(_HID, 0x0002d041)
Name(_CRS, Buffer(0x25) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x20, 0x47, 0x1, 0x81, 0x0, 0x81, 0x0, 0x1, 0x11, 0x47, 0x1, 0x93, 0x0, 0x93, 0x0, 0x1, 0xd, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0, 0x1, 0x20, 0x2a, 0x10, 0x1, 0x79, 0x0 })
}
Device(RTC) {
Name(_HID, 0x000bd041)
Name(BUF0, Buffer(0x0a) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x1, 0x8, 0x79, 0x0 })
Name(BUF1, Buffer(0x0d) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x1, 0x8, 0x22, 0x0, 0x1, 0x79, 0x0 })
Method(_CRS, 0, Serialized) {
If(LEqual(HPTS, One)) {
Return(BUF0)
}
Else {
Return(BUF1)
}
}
}
Device(HPET) {
Name(_HID, 0x0301d041)
Name(BUF0, Buffer(0x14) {0x22, 0x1, 0x0, 0x22, 0x0, 0x1, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xd0, 0xfe, 0x0, 0x4, 0x0, 0x0, 0x79, 0x0 })
Method(_STA) {
If(LNot(LLess(OSYS, 0x07d1))) {
If(LEqual(HPTS, One)) {
Return(0x0f)
}
Else {
Return(Zero)
}
}
Else {
If(HPTS) {
Return(0x0b)
}
Else {
Return(Zero)
}
}
}
Method(_CRS, 0, Serialized) {
If(LEqual(HPTS, One)) {
CreateDWordField(BUF0, 0x0a, HPT0)
If(LEqual(HPTA, One)) {
Store(0xfed01000, HPT0)
}
If(LEqual(HPTA, 0x02)) {
Store(0xfed02000, HPT0)
}
If(LEqual(HPTA, 0x03)) {
Store(0xfed03000, HPT0)
}
}
Return(BUF0)
}
}
Device(PIC) {
Name(_HID, 0xd041)
Name(_CRS, Buffer(0x8d) {0x47, 0x1, 0x20, 0x0, 0x20, 0x0, 0x1, 0x2, 0x47, 0x1, 0x24, 0x0, 0x24, 0x0, 0x1, 0x2, 0x47, 0x1, 0x28, 0x0, 0x28, 0x0, 0x1, 0x2, 0x47, 0x1, 0x2c, 0x0, 0x2c, 0x0, 0x1, 0x2, 0x47, 0x1, 0x30, 0x0, 0x30, 0x0, 0x1, 0x2, 0x47, 0x1, 0x34, 0x0, 0x34, 0x0, 0x1, 0x2, 0x47, 0x1, 0x38, 0x0, 0x38, 0x0, 0x1, 0x2, 0x47, 0x1, 0x3c, 0x0, 0x3c, 0x0, 0x1, 0x2, 0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x47, 0x1, 0xa4, 0x0, 0xa4, 0x0, 0x1, 0x2, 0x47, 0x1, 0xa8, 0x0, 0xa8, 0x0, 0x1, 0x2, 0x47, 0x1, 0xac, 0x0, 0xac, 0x0, 0x1, 0x2, 0x47, 0x1, 0xb0, 0x0, 0xb0, 0x0, 0x1, 0x2, 0x47, 0x1, 0xb4, 0x0, 0xb4, 0x0, 0x1, 0x2, 0x47, 0x1, 0xb8, 0x0, 0xb8, 0x0, 0x1, 0x2, 0x47, 0x1, 0xbc, 0x0, 0xbc, 0x0, 0x1, 0x2, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x1, 0x2, 0x22, 0x4, 0x0, 0x79, 0x0 })
}
Device(FPU) {
Name(_HID, 0x040cd041)
Name(_CRS, Buffer(0x0d) {0x47, 0x1, 0xf0, 0x0, 0xf0, 0x0, 0x1, 0x1, 0x22, 0x0, 0x20, 0x79, 0x0 })
}
Device(TIMR) {
Name(_HID, 0x0001d041)
Name(BUF0, Buffer(0x12) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x1, 0x4, 0x47, 0x1, 0x50, 0x0, 0x50, 0x0, 0x10, 0x4, 0x79, 0x0 })
Name(BUF1, Buffer(0x15) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x1, 0x4, 0x47, 0x1, 0x50, 0x0, 0x50, 0x0, 0x10, 0x4, 0x22, 0x1, 0x0, 0x79, 0x0 })
Method(_CRS, 0, Serialized) {
If(HPTS) {
Return(BUF0)
}
Return(BUF1)
}
}
Device(FWHD) {
Name(_HID, 0x0008d425)
Name(_CRS, Buffer(0x0e) {0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0x80, 0xff, 0x0, 0x0, 0x80, 0x0, 0x79, 0x0 })
}
Device(KBC) {
Name(_HID, 0x0303d041)
Name(_CRS, Buffer(0x16) {0x47, 0x1, 0x60, 0x0, 0x60, 0x0, 0x1, 0x1, 0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x23, 0x2, 0x0, 0x1, 0x79, 0x0 })
Method(_STA) {
Return(0x0f)
}
Name(_PRW, Package(0x02) {
0x18,
0x03,
})
Method(_PSW, 1) {
Store(Arg0, KBWK)
}
}
Device(MOUE) {
Method(_HID) {
Return("\x2aSYN1E08")
}
Name(_CID, Package(0x03) {
0x001e2e4f,
0x02002e4f,
0x130fd041,
})
Name(_CRS, Buffer(0x06) {0x23, 0x0, 0x10, 0x1, 0x79, 0x0 })
Method(_STA) {
Return(0x0f)
}
Name(_PRW, Package(0x02) {
0x18,
0x03,
})
Method(_PSW, 1) {
Store(Arg0, MUWK)
}
}
Device(EC0) {
Name(_HID, 0x090cd041)
Name(_UID, One)
Method(_CRS) {
Name(BFFR, Buffer(0x12) {0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x0, 0x1, 0x47, 0x1, 0x66, 0x0, 0x66, 0x0, 0x0, 0x1, 0x79, 0x0 })
Return(BFFR)
}
OperationRegion(ERAM, EmbeddedControl, Zero, 0xff)
Field(ERAM, ByteAcc, NoLock, Preserve) {
SMPR, 8,
SMST, 8,
SMAD, 8,
SMCM, 8,
SMD0, 256,
BCNT, 8,
SMAA, 8,
BATD, 16,
Offset(0x40),
SW2S, 1,
, 3,
THPM, 1,
Offset(0x41),
W7OS, 1,
, 1,
RFLE, 1,
, 1,
ECOS, 1,
PFN2, 1,
WOLF, 1,
PFLG, 1,
Offset(0x43),
BBDA, 1,
CIRB, 1,
, 4,
NQLB, 1,
Offset(0x44),
NICL, 1,
NICD, 1,
Offset(0x4e),
LIDE, 1,
Offset(0x52),
ECLS, 1,
WBSS, 1,
Offset(0x58),
RTMP, 8,
ECT1, 8,
ECT2, 8,
RG5B, 8,
FSPD, 16,
Offset(0x5f),
CFN2, 1,
SFN2, 1,
Offset(0x70),
BCLB, 8,
BCHB, 8,
Offset(0x74),
BVLB, 8,
BVHB, 8,
Offset(0x7e),
BATP, 8,
Offset(0x82),
MBST, 8,
MCUR, 16,
MBRM, 16,
MBCV, 16,
Offset(0xa0),
QBHK, 8,
RTCW, 1,
Offset(0xa2),
QBBB, 8,
SMTD, 8,
MBTS, 1,
MBTF, 1,
, 5,
BACR, 1,
MBTC, 1,
, 2,
MBNH, 1,
Offset(0xa6),
BA1C, 8,
Offset(0xaa),
ADIM, 1,
Offset(0xaf),
MCER, 8,
Offset(0xb2),
RPM1, 8,
RPM2, 8,
CLOW, 4,
CMAX, 4,
Offset(0xbc),
MCEA, 8,
Offset(0xcf),
DLYC, 8,
EBPL, 1,
Offset(0xd2),
, 6,
APWR, 1,
DLYE, 1,
Offset(0xd6),
DBPL, 8,
Offset(0xda),
EPRW, 8,
PSKB, 1,
PSTP, 1,
PSBA, 1,
PWOL, 1,
Offset(0xdf),
ECBW, 1,
Offset(0xe0),
DLYT, 8,
Offset(0xe2),
BRTL, 8,
Offset(0xe6),
SFHK, 8,
GQKS, 7,
Offset(0xf4),
SFAN, 8
}
Name(BATO, Zero)
Name(BATN, Zero)
Name(BATF, 0xc0)
Name(WBDS, Zero)
Method(_REG, 2) {
Store(One, ECOK)
GBAS()
If(LNot(LLess(OSYS, 0x07d9))) {
Store(One, W7OS)
}
Else {
Store(Zero, W7OS)
}
CMSW(0x6e, Zero)
If(LNot(LEqual(DQ30, One))) {
_Q30()
Store(One, DQ30)
}
}
Method(BPOL, 1) {
Store(Arg0, DBPL)
Store(One, EBPL)
}
Method(BPOM) {
Store(Zero, DBPL)
Store(Zero, EBPL)
}
Name(_GPE, 0x17)
Method(_Q09) {
If(LNot(LLess(OSYS, 0x07d1))) {
BPOM()
Notify(BAT0, 0x80)
Notify(ACAD, 0x80)
}
If(LEqual(OSYS, 0x07d0)) {
Notify(BAT0, 0x80)
Notify(BAT0, Zero)
Notify(ACAD, Zero)
}
If(WBDS) {
}
}
Method(_Q20) {
CMSW(0x7b, 0x20)
GBAS()
CMSW(0x7b, 0x21)
Notify(BAT0, 0x81)
Notify(BAT0, 0x80)
If(And(0x02, BATF, )) {
CMSW(0x7b, 0x22)
Notify(ACAD, 0x80)
Store(SW2S, PWRS)
If(CMPE) {
Notify(\_PR.CPU0, 0x81)
Notify(\_PR.CPU1, 0x81)
}
Else {
Notify(\_PR.CPU0, 0x81)
}
TRAP(TRTP, PSSS)
_Q30()
If(SW2S) {
If(LAnd(LLess(OSYS, 0x07d6), LLess(BRAC, 0x0b))) {
Store(BRAC, Local0)
Add(Local0, 0x02, Local0)
If(LEqual(CHPF, One)) {
Store(DerefOf(Index(BCL2, Local0, )), BRTL)
}
Else {
If(LEqual(CKPL, One)) {
Store(DerefOf(Index(BCL3, Local0, )), BRTL)
}
Else {
Store(DerefOf(Index(BCL1, Local0, )), BRTL)
}
}
}
If(LAnd(LEqual(CRPS, One), LNot(LLess(MCHD, 0x04)))) {
If(LNot(IGDS)) {
Store(Zero, ^^^EXP5.J380.D3EF)
TRAP(TRTI, 0x5c)
}
}
Store(0x03, ^^^^WMID.WEID)
Store(Zero, ^^^^WMID.WMED)
Notify(WMID, 0x80)
}
Else {
If(LAnd(LLess(OSYS, 0x07d6), LLess(BRDC, 0x0b))) {
Store(BRDC, Local0)
Add(Local0, 0x02, Local0)
If(LEqual(CHPF, One)) {
Store(DerefOf(Index(BCL2, Local0, )), BRTL)
}
Else {
If(LEqual(CKPL, One)) {
Store(DerefOf(Index(BCL3, Local0, )), BRTL)
}
Else {
Store(DerefOf(Index(BCL1, Local0, )), BRTL)
}
}
}
If(LAnd(LEqual(CRPS, One), LNot(LLess(MCHD, 0x04)))) {
If(LNot(IGDS)) {
Store(0x40, ^^^EXP5.J380.D3EF)
}
}
}
}
}
Method(_Q22) {
Store(Zero, BACR)
Notify(BAT0, 0x80)
}
Method(GBAS) {
Store(Zero, BATF)
Store(MBTS, Local0)
Store(SW2S, Local1)
ShiftLeft(Local0, 0x06, Local0)
ShiftLeft(Local1, One, Local1)
If(LNot(LEqual(And(BATO, 0x40, ), Local0))) {
Or(BATF, 0x40, BATF)
}
If(LNot(LEqual(And(BATO, 0x02, ), Local1))) {
Or(BATF, 0x02, BATF)
}
Store(Zero, BATO)
Or(Local0, Local1, BATO)
}
Method(_Q80) {
Store("\x5fQ80\x20\x3a\x20Temperature\x20Up", Debug)
Notify(\_TZ.TZ01, 0x80)
\_TZ.TZ01.OTHD(RTMP)
}
Method(_Q81) {
Store("\x5fQ81\x20\x3a\x20Temperature\x20Down", Debug)
Notify(\_TZ.TZ01, 0x80)
\_TZ.TZ01.OTHD(RTMP)
}
Method(_Q8A) {
If(LIDE) {
Store("\x5fQ8A\x20\x3a\x20LID\x20Switch\x20Event", Debug)
Store(Zero, LIDE)
Notify(LID0, 0x80)
}
}
Method(_Q0D) {
If(IGDS) {
^^^OVGA.GHDS(Zero)
Sleep(0xc8)
}
Else {
TRAP(TRTI, 0x0b)
Store(NSTE, Local3)
Store(And(Local3, One, ), ^^^PEGP.VGA.LCDA)
Store(ShiftRight(And(Local3, 0x02, ), One, ), ^^^PEGP.VGA.CRTA)
Store(ShiftRight(And(Local3, 0x04, ), 0x02, ), ^^^PEGP.VGA.TV0A)
Store(ShiftRight(And(Local3, 0x10, ), 0x04, ), ^^^PEGP.VGA.HDTV)
Sleep(0xc8)
Notify(^^^PEGP.VGA, 0x80)
Sleep(0xc8)
}
}
Method(_Q11) {
If(LNot(LLess(OSYS, 0x07d6))) {
If(IGDS) {
Notify(^^^OVGA.DD03, 0x86)
}
Else {
Notify(^^^PEGP.VGA.LCD, 0x86)
}
}
Else {
BRXP(One)
}
}
Method(_Q10) {
If(LNot(LLess(OSYS, 0x07d6))) {
If(IGDS) {
Notify(^^^OVGA.DD03, 0x87)
}
Else {
Notify(^^^PEGP.VGA.LCD, 0x87)
}
}
Else {
BRXP(0x02)
}
}
Method(_Q14) {
TRAP(TRTI, 0xaa)
}
Method(_Q15) {
Store(0x15, P80H)
Store(CMSR(0x49), WAB1)
If(And(WAB1, 0x08, )) {
And(WAB1, 0xf7, WAB1)
Store(Zero, RFLE)
}
Else {
Or(WAB1, 0x08, WAB1)
If(LEqual(WAOK, Zero)) {
If(And(WBLC, One, )) {
Store(One, RFLE)
}
}
}
If(LEqual(WAOK, Zero)) {
Or(WAB1, 0x02, WAB1)
Or(WAB2, 0x02, WAB2)
Or(WAB3, 0x02, WAB3)
Or(WAB5, 0x08, WAB5)
Or(WAB4, 0x08, WAB4)
}
Else {
Store(0x07, WAB5)
Store(Zero, WAB4)
If(And(WAB1, 0x02, )) {
Or(WAB4, One, WAB4)
}
If(And(WAB2, 0x02, )) {
Or(WAB4, 0x02, WAB4)
}
If(And(WAB3, 0x02, )) {
Or(WAB4, 0x04, WAB4)
}
}
TRAP(TRTI, 0x20)
If(LEqual(WAOK, One)) {
Store(0x05, ^^^^WMID.WEID)
Store(Zero, ^^^^WMID.WMED)
Notify(WMID, 0x80)
}
}
Method(_Q16) {
Store("\x21\x21\x21\x20DVD\x2fMusic\x20Button\x20pressed\x20\x21\x21\x21", Debug)
Store(0x04, ^^^^WMID.WEID)
Store(Zero, ^^^^WMID.WMED)
Notify(WMID, 0x80)
}
Method(_Q8E) {
If(LLess(Q8E0, Subtract(PSTN, One, ))) {
Increment(Q8E0)
}
CPUL()
Store(CUPS, CLOW)
TRAP(TRTP, PSSS)
}
Method(_Q8F) {
If(LGreater(Q8E0, Zero)) {
Decrement(Q8E0)
}
CPUL()
Store(CUPS, CLOW)
TRAP(TRTP, PSSS)
}
Method(_Q30) {
}
Field(ERAM, ByteAcc, NoLock, Preserve) {
Offset(0x4),
SMW0, 16
}
Field(ERAM, ByteAcc, NoLock, Preserve) {
Offset(0x4),
SMB0, 8
}
Field(ERAM, ByteAcc, NoLock, Preserve) {
Offset(0x4),
FLD0, 64
}
Field(ERAM, ByteAcc, NoLock, Preserve) {
Offset(0x4),
FLD1, 128
}
Field(ERAM, ByteAcc, NoLock, Preserve) {
Offset(0x4),
FLD2, 192
}
Field(ERAM, ByteAcc, NoLock, Preserve) {
Offset(0x4),
FLD3, 256
}
Mutex(MUT0, 0)
Mutex(MUT1, 0)
Method(SMRD, 4) {
If(LNot(ECOK)) {
Return(0xff)
}
If(LNot(LEqual(Arg0, 0x07))) {
If(LNot(LEqual(Arg0, 0x09))) {
If(LNot(LEqual(Arg0, 0x0b))) {
Return(0x19)
}
}
}
Acquire(MUT0, 0xffff)
Store(0x04, Local0)
While(LGreater(Local0, One)) {
And(SMST, 0x40, SMST)
Store(Arg2, SMCM)
Store(Arg1, SMAD)
Store(Arg0, SMPR)
Store(Zero, Local3)
While(LNot(And(SMST, 0xbf, Local1))) {
Sleep(0x02)
Increment(Local3)
If(LEqual(Local3, 0x32)) {
And(SMST, 0x40, SMST)
Store(Arg2, SMCM)
Store(Arg1, SMAD)
Store(Arg0, SMPR)
Store(Zero, Local3)
}
}
If(LEqual(Local1, 0x80)) {
Store(Zero, Local0)
}
Else {
Decrement(Local0)
}
}
If(Local0) {
Store(And(Local1, 0x1f, ), Local0)
}
Else {
If(LEqual(Arg0, 0x07)) {
Store(SMB0, Arg3)
}
If(LEqual(Arg0, 0x09)) {
Store(SMW0, Arg3)
}
If(LEqual(Arg0, 0x0b)) {
Store(BCNT, Local3)
ShiftRight(0x0100, 0x03, Local2)
If(LGreater(Local3, Local2)) {
Store(Local2, Local3)
}
If(LLess(Local3, 0x09)) {
Store(FLD0, Local2)
}
Else {
If(LLess(Local3, 0x11)) {
Store(FLD1, Local2)
}
Else {
If(LLess(Local3, 0x19)) {
Store(FLD2, Local2)
}
Else {
Store(FLD3, Local2)
}
}
}
Increment(Local3)
Store(Buffer(Local3) { }, Local4)
Decrement(Local3)
Store(Zero, Local5)
While(LGreater(Local3, Local5)) {
GBFE(Local2, Local5, RefOf(Local6))
PBFE(Local4, Local5, Local6)
Increment(Local5)
}
PBFE(Local4, Local5, Zero)
Store(Local4, Arg3)
}
}
Release(MUT0)
Return(Local0)
}
Method(SMWR, 4) {
If(LNot(ECOK)) {
Return(0xff)
}
If(LNot(LEqual(Arg0, 0x06))) {
If(LNot(LEqual(Arg0, 0x08))) {
If(LNot(LEqual(Arg0, 0x0a))) {
Return(0x19)
}
}
}
Acquire(MUT0, 0xffff)
Store(0x04, Local0)
While(LGreater(Local0, One)) {
If(LEqual(Arg0, 0x06)) {
Store(Arg3, SMB0)
}
If(LEqual(Arg0, 0x08)) {
Store(Arg3, SMW0)
}
If(LEqual(Arg0, 0x0a)) {
Store(Arg3, SMD0)
}
And(SMST, 0x40, SMST)
Store(Arg2, SMCM)
Store(Arg1, SMAD)
Store(Arg0, SMPR)
Store(Zero, Local3)
While(LNot(And(SMST, 0xbf, Local1))) {
Sleep(0x02)
Increment(Local3)
If(LEqual(Local3, 0x32)) {
And(SMST, 0x40, SMST)
Store(Arg2, SMCM)
Store(Arg1, SMAD)
Store(Arg0, SMPR)
Store(Zero, Local3)
}
}
If(LEqual(Local1, 0x80)) {
Store(Zero, Local0)
}
Else {
Decrement(Local0)
}
}
If(Local0) {
Store(And(Local1, 0x1f, ), Local0)
}
Release(MUT0)
Return(Local0)
}
Method(GSHK, 0, Serialized) {
If(ECOK) {
Store(SFHK, Local0)
}
Return(Local0)
}
Method(SSHK, 1, Serialized) {
If(ECOK) {
Store(Arg0, SFHK)
}
}
Method(NHSB) {
Store(SVIM, Local0)
If(LEqual(Local0, 0x04)) {
Notify(QBTN, 0x02)
}
If(LEqual(Local0, 0x05)) {
Notify(DBTN, 0x02)
}
If(LEqual(Local0, 0x03)) {
Notify(MBTN, 0x02)
}
If(LEqual(Local0, 0x10)) {
Notify(EBTN, 0x02)
}
If(LEqual(Local0, 0x06)) {
Notify(PBTN, 0x02)
}
If(LEqual(Local0, 0x11)) {
Notify(VBTN, 0x02)
}
If(LEqual(Local0, 0x12)) {
Notify(TBTN, 0x02)
}
Store(Zero, SVIM)
}
}
Device(TPM) {
Name(_HID, 0x310cd041)
Name(_STR, Buffer(0x1e) {0x54, 0x0, 0x50, 0x0, 0x4d, 0x0, 0x20, 0x0, 0x31, 0x0, 0x2e, 0x0, 0x32, 0x0, 0x20, 0x0, 0x44, 0x0, 0x65, 0x0, 0x76, 0x0, 0x69, 0x0, 0x63, 0x0, 0x65, 0x0, 0x0, 0x0 })
Name(_CRS, Buffer(0x0e) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xd4, 0xfe, 0x0, 0x50, 0x0, 0x0, 0x79, 0x0 })
OperationRegion(CMOS, SystemIO, 0x70, 0x04)
Field(CMOS, ByteAcc, NoLock, Preserve) {
IDX0, 7,
Offset(0x1),
DAT0, 8,
IDX1, 7,
Offset(0x3),
DAT1, 8
}
IndexField(IDX1, DAT1, ByteAcc, NoLock, Preserve) {
Offset(0x40),
CCMD, 8,
LCMD, 8,
LRET, 32,
EXST, 8
}
OperationRegion(SSMI, SystemIO, 0xb2, One)
Field(SSMI, ByteAcc, NoLock, Preserve) {
SMID, 8
}
OperationRegion(TPMR, SystemMemory, 0xfed40000, 0x5000)
Field(TPMR, AnyAcc, NoLock, Preserve) {
ACC0, 8
}
Method(_INI) {
Store(_STA(), EXST)
}
Method(_STA) {
If(LEqual(ACC0, 0xff)) {
Return(Zero)
}
Return(0x0f)
}
Method(HINF, 3) {
Name(_T_0, Zero)
Store(Arg1, _T_0)
If(LEqual(_T_0, Zero)) {
Return(Buffer(One) {0x1 })
}
Else {
If(LEqual(_T_0, One)) {
If(LEqual(_STA(), Zero)) {
Return(Package(0x01) {
Zero,
})
}
Return(Package(0x02) {
One,
Package(0x02) {
One,
0x20,
},
})
}
Else {
BreakPoint
}
}
Return(Buffer(Zero) { })
}
Method(TPPI, 3) {
Name(_T_0, Zero)
Store(Arg1, _T_0)
If(LEqual(_T_0, Zero)) {
Return(Buffer(One) {0x3f })
}
Else {
If(LEqual(_T_0, One)) {
Return("1.0")
}
Else {
If(LEqual(_T_0, 0x02)) {
CreateByteField(Arg2, Zero, TPC1)
Or(TPC1, 0x80, TPCC)
Store(0x50, SMID)
Return(Zero)
}
Else {
If(LEqual(_T_0, 0x03)) {
Name(TCCP, Package(0x02) {
Zero,
0xff,
})
Store(TPCC, Index(TCCP, One, ))
Return(TCCP)
}
Else {
If(LEqual(_T_0, 0x04)) {
Return(0x02)
}
Else {
If(LEqual(_T_0, 0x05)) {
Name(TLCR, Package(0x03) {
Zero,
0xff,
0xffff,
})
Store(TPLC, Index(TLCR, One, ))
Store(TPLR, Index(TLCR, 0x02, ))
Return(TLCR)
}
Else {
If(LEqual(_T_0, 0x06)) {
Store(DerefOf(Index(Arg2, 0x04, )), Local0)
Store(DerefOf(Index(Arg2, 0x05, )), Local1)
If(LOr(LEqual(Local0, 0x65), LEqual(Local0, 0x45))) {
If(LOr(LEqual(Local1, 0x6e), LEqual(Local1, 0x4e))) {
Return(Zero)
}
}
Return(One)
}
Else {
BreakPoint
}
}
}
}
}
}
}
Return(One)
}
Method(SMOR, 3) {
Store(Index(Arg2, Zero, ), TPMM)
Store(0x48, SMID)
Return(Zero)
}
Method(_DSM, 4) {
If(LEqual(Arg0, Buffer(0x10) {0xa5, 0x16, 0x8e, 0xcf, 0xe8, 0xc1, 0x25, 0x4e, 0xb7, 0x12, 0x4f, 0x54, 0xa9, 0x67, 0x2, 0xc8 })) {
Return(HINF(Arg1, Arg2, Arg3))
}
If(LEqual(Arg0, Buffer(0x10) {0xa6, 0xfa, 0xdd, 0x3d, 0x1b, 0x36, 0xb4, 0x4e, 0xa4, 0x24, 0x8d, 0x10, 0x8, 0x9d, 0x16, 0x53 })) {
Return(TPPI(Arg1, Arg2, Arg3))
}
If(LEqual(Arg0, Buffer(0x10) {0xed, 0x54, 0x60, 0x37, 0x13, 0xcc, 0x75, 0x46, 0x90, 0x1c, 0x47, 0x56, 0xd7, 0xf2, 0xd4, 0x5d })) {
Return(SMOR(Arg1, Arg2, Arg3))
}
Return(Buffer(Zero) { })
}
}
}
Device(UHC0) {
Name(_ADR, 0x001d0000)
Name(_PRW, Package(0x02) {
0x03,
0x03,
})
OperationRegion(USBR, PCI_Config, 0xc4, One)
Field(USBR, AnyAcc, NoLock, Preserve) {
URES, 8
}
Method(_PSW, 1) {
If(LAnd(Arg0, USBW)) {
If(ECOK) {
If(^^LPC.EC0.SW2S) {
Store(0x03, URES)
}
Else {
Store(Zero, URES)
}
}
Else {
Store(Zero, URES)
}
}
Else {
Store(Zero, URES)
}
}
Method(_S3D) {
Return(0x02)
}
Method(_S4D) {
Return(0x02)
}
}
Device(UHC1) {
Name(_ADR, 0x001d0001)
}
Device(UHC2) {
Name(_ADR, 0x001d0002)
Device(RHUB) {
Name(_ADR, Zero)
Device(PRT2) {
Name(_ADR, 0x02)
Name(_UPC, Package(0x04) {
0xff,
0xff,
Zero,
Zero,
})
Name(_PLD, Buffer(0x10) {0x81, 0x0, 0x0, 0x0 })
}
}
}
Device(EHC1) {
Name(_ADR, 0x001d0007)
Device(RHUB) {
Name(_ADR, Zero)
Device(PRT1) {
Name(_ADR, One)
}
Device(PRT2) {
Name(_ADR, 0x02)
}
Device(PRT3) {
Name(_ADR, 0x03)
}
Device(PRT4) {
Name(_ADR, 0x04)
Name(_UPC, Package(0x04) {
0xff,
0xff,
Zero,
Zero,
})
Name(_PLD, Buffer(0x10) {0x81, 0x0, 0x0, 0x0 })
}
Device(PRT5) {
Name(_ADR, 0x05)
}
Device(PRT6) {
Name(_ADR, 0x06)
}
Device(PRT7) {
Name(_ADR, 0x07)
}
Device(PRT8) {
Name(_ADR, 0x08)
}
}
Name(_PRW, Package(0x02) {
0x0d,
0x03,
})
}
Device(UHC3) {
Name(_ADR, 0x001a0000)
Name(_PRW, Package(0x02) {
0x0e,
0x03,
})
OperationRegion(USBR, PCI_Config, 0xc4, One)
Field(USBR, AnyAcc, NoLock, Preserve) {
URES, 8
}
Method(_PSW, 1) {
If(LAnd(Arg0, USBW)) {
If(ECOK) {
If(^^LPC.EC0.SW2S) {
Store(0x03, URES)
}
Else {
Store(Zero, URES)
}
}
Else {
Store(Zero, URES)
}
}
Else {
Store(Zero, URES)
}
}
Method(_S3D) {
Return(0x02)
}
Method(_S4D) {
Return(0x02)
}
}
Device(UHC4) {
Name(_ADR, 0x001a0001)
Name(_PRW, Package(0x02) {
0x05,
0x03,
})
OperationRegion(USBR, PCI_Config, 0xc4, One)
Field(USBR, AnyAcc, NoLock, Preserve) {
URES, 8
}
Method(_PSW, 1) {
If(LAnd(Arg0, USBW)) {
If(ECOK) {
If(^^LPC.EC0.SW2S) {
Store(0x03, URES)
}
Else {
Store(Zero, URES)
}
}
Else {
Store(Zero, URES)
}
}
Else {
Store(Zero, URES)
}
}
Method(_S3D) {
Return(0x02)
}
Method(_S4D) {
Return(0x02)
}
}
Device(UHC5) {
Name(_ADR, 0x001a0002)
}
Device(EHC2) {
Name(_ADR, 0x001a0007)
Device(RHUB) {
Name(_ADR, Zero)
Device(PRT1) {
Name(_ADR, One)
Name(_UPC, Package(0x04) {
0xff,
0xff,
Zero,
Zero,
})
Name(_PLD, Buffer(0x10) {0x81, 0x0, 0x0, 0x0 })
}
Device(PRT2) {
Name(_ADR, 0x02)
}
Device(PRT3) {
Name(_ADR, 0x03)
}
Device(PRT4) {
Name(_ADR, 0x04)
}
}
Name(_PRW, Package(0x02) {
0x0d,
0x03,
})
}
Device(EXP1) {
Name(_ADR, 0x001c0000)
OperationRegion(PXCS, PCI_Config, Zero, 0xe0)
Field(PXCS, AnyAcc, NoLock, WriteAsZeros) {
VDID, 16,
Offset(0x19),
SECB, 8,
Offset(0x52),
, 13,
LASX, 1,
Offset(0x5a),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
Offset(0x5b),
LSCX, 1,
Offset(0x60),
Offset(0x62),
PSPX, 1,
Offset(0xd8),
, 30,
HPEN, 1,
PMEN, 1,
, 30,
HPSX, 1,
PMSX, 1
}
Method(_PRT) {
If(LEqual(GPIC, Zero)) {
Return(Package(0x04) {
Package(0x04) {
0xffff,
Zero,
^^LPC.LNKA,
Zero,
},
Package(0x04) {
0xffff,
One,
^^LPC.LNKB,
Zero,
},
Package(0x04) {
0xffff,
0x02,
^^LPC.LNKC,
Zero,
},
Package(0x04) {
0xffff,
0x03,
^^LPC.LNKD,
Zero,
},
})
}
Else {
Return(Package(0x04) {
Package(0x04) {
0xffff,
Zero,
Zero,
0x10,
},
Package(0x04) {
0xffff,
One,
Zero,
0x11,
},
Package(0x04) {
0xffff,
0x02,
Zero,
0x12,
},
Package(0x04) {
0xffff,
0x03,
Zero,
0x13,
},
})
}
}
}
Device(EXP2) {
Name(_ADR, 0x001c0001)
OperationRegion(PXCS, PCI_Config, Zero, 0xe0)
Field(PXCS, AnyAcc, NoLock, WriteAsZeros) {
VDID, 16,
Offset(0x19),
SECB, 8,
Offset(0x52),
, 13,
LASX, 1,
Offset(0x5a),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
Offset(0x5b),
LSCX, 1,
Offset(0x60),
Offset(0x62),
PSPX, 1,
Offset(0xd8),
, 30,
HPEN, 1,
PMEN, 1,
, 30,
HPSX, 1,
PMSX, 1
}
Method(_PRW) {
If(LNot(LLess(MCHD, 0x04))) {
Return(Package(0x02) {
0x09,
0x05,
})
}
Else {
Return(Package(0x02) {
0x09,
Zero,
})
}
}
Method(_PRT) {
If(LEqual(GPIC, Zero)) {
Return(Package(0x04) {
Package(0x04) {
0xffff,
Zero,
^^LPC.LNKB,
Zero,
},
Package(0x04) {
0xffff,
One,
^^LPC.LNKC,
Zero,
},
Package(0x04) {
0xffff,
0x02,
^^LPC.LNKD,
Zero,
},
Package(0x04) {
0xffff,
0x03,
^^LPC.LNKA,
Zero,
},
})
}
Else {
Return(Package(0x04) {
Package(0x04) {
0xffff,
Zero,
Zero,
0x11,
},
Package(0x04) {
0xffff,
One,
Zero,
0x12,
},
Package(0x04) {
0xffff,
0x02,
Zero,
0x13,
},
Package(0x04) {
0xffff,
0x03,
Zero,
0x10,
},
})
}
}
Device(PXSX) {
Name(_ADR, Zero)
OperationRegion(RTLD, PCI_Config, Zero, 0x02)
Field(PXCS, AnyAcc, NoLock, WriteAsZeros) {
RVID, 16
}
Method(_STA) {
If(LEqual(RVID, 0xffff)) {
Return(Zero)
}
Else {
Return(0x0f)
}
}
Method(_PRW) {
If(LNot(LLess(MCHD, 0x04))) {
Return(Package(0x02) {
0x09,
0x05,
})
}
Else {
Return(Package(0x02) {
0x09,
Zero,
})
}
}
Method(_PSW, 1) {
If(LNot(LLess(MCHD, 0x04))) {
Store(Arg0, LAWK)
}
}
}
}
Device(EXP3) {
Name(_ADR, 0x001c0002)
OperationRegion(PXCS, PCI_Config, Zero, 0xe0)
Field(PXCS, AnyAcc, NoLock, WriteAsZeros) {
VDID, 16,
Offset(0x19),
SECB, 8,
Offset(0x52),
, 13,
LASX, 1,
Offset(0x5a),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
Offset(0x5b),
LSCX, 1,
Offset(0x60),
Offset(0x62),
PSPX, 1,
Offset(0xd8),
, 30,
HPEN, 1,
PMEN, 1,
, 30,
HPSX, 1,
PMSX, 1
}
Method(_PRT) {
If(LEqual(GPIC, Zero)) {
Return(Package(0x04) {
Package(0x04) {
0xffff,
Zero,
^^LPC.LNKC,
Zero,
},
Package(0x04) {
0xffff,
One,
^^LPC.LNKD,
Zero,
},
Package(0x04) {
0xffff,
0x02,
^^LPC.LNKA,
Zero,
},
Package(0x04) {
0xffff,
0x03,
^^LPC.LNKB,
Zero,
},
})
}
Else {
Return(Package(0x04) {
Package(0x04) {
0xffff,
Zero,
Zero,
0x12,
},
Package(0x04) {
0xffff,
One,
Zero,
0x13,
},
Package(0x04) {
0xffff,
0x02,
Zero,
0x10,
},
Package(0x04) {
0xffff,
0x03,
Zero,
0x11,
},
})
}
}
}
Device(EXP4) {
Name(_ADR, 0x001c0003)
OperationRegion(PXCS, PCI_Config, Zero, 0xe0)
Field(PXCS, AnyAcc, NoLock, WriteAsZeros) {
VDID, 16,
Offset(0x19),
SECB, 8,
Offset(0x52),
, 13,
LASX, 1,
Offset(0x5a),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
Offset(0x5b),
LSCX, 1,
Offset(0x60),
Offset(0x62),
PSPX, 1,
Offset(0xd8),
, 30,
HPEN, 1,
PMEN, 1,
, 30,
HPSX, 1,
PMSX, 1
}
Method(_PRT) {
If(LEqual(GPIC, Zero)) {
Return(Package(0x04) {
Package(0x04) {
0xffff,
Zero,
^^LPC.LNKD,
Zero,
},
Package(0x04) {
0xffff,
One,
^^LPC.LNKA,
Zero,
},
Package(0x04) {
0xffff,
0x02,
^^LPC.LNKB,
Zero,
},
Package(0x04) {
0xffff,
0x03,
^^LPC.LNKC,
Zero,
},
})
}
Else {
Return(Package(0x04) {
Package(0x04) {
0xffff,
Zero,
Zero,
0x13,
},
Package(0x04) {
0xffff,
One,
Zero,
0x10,
},
Package(0x04) {
0xffff,
0x02,
Zero,
0x11,
},
Package(0x04) {
0xffff,
0x03,
Zero,
0x12,
},
})
}
}
}
Device(EXP5) {
Name(_ADR, 0x001c0004)
OperationRegion(PXCS, PCI_Config, Zero, 0xe0)
Field(PXCS, AnyAcc, NoLock, WriteAsZeros) {
VDID, 16,
Offset(0x19),
SECB, 8,
Offset(0x52),
, 13,
LASX, 1,
Offset(0x5a),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
Offset(0x5b),
LSCX, 1,
Offset(0x60),
Offset(0x62),
PSPX, 1,
Offset(0xd8),
, 30,
HPEN, 1,
PMEN, 1,
, 30,
HPSX, 1,
PMSX, 1
}
Device(J380) {
Name(_ADR, Zero)
OperationRegion(PCFG, PCI_Config, Zero, 0xff)
Field(PCFG, ByteAcc, NoLock, Preserve) {
DVID, 32,
Offset(0x2c),
SSID, 32,
Offset(0xac),
D3EF, 8,
Offset(0xb2),
LAT0, 8,
Offset(0xcf),
ATRB, 8,
Offset(0xd3),
PMC0, 8
}
Method(_STA) {
If(LNot(LEqual(DVID, Ones))) {
Return(0x0f)
}
Else {
Return(Zero)
}
}
Method(_RMV) {
If(LNot(LLess(MCHD, 0x04))) {
If(LEqual(CRPS, One)) {
Return(One)
}
}
Return(Zero)
}
}
Device(J381) {
Name(_ADR, One)
Method(_RMV) {
If(LNot(LLess(MCHD, 0x04))) {
If(LEqual(CRPS, One)) {
Return(One)
}
}
Return(Zero)
}
}
Device(J382) {
Name(_ADR, 0x02)
Method(_RMV) {
If(LNot(LLess(MCHD, 0x04))) {
If(LEqual(CRPS, One)) {
Return(One)
}
}
Return(Zero)
}
}
Device(J383) {
Name(_ADR, 0x03)
Method(_RMV) {
If(LNot(LLess(MCHD, 0x04))) {
If(LEqual(CRPS, One)) {
Return(One)
}
}
Return(Zero)
}
}
Device(J384) {
Name(_ADR, 0x04)
Method(_RMV) {
If(LNot(LLess(MCHD, 0x04))) {
If(LEqual(CRPS, One)) {
Return(One)
}
}
Return(Zero)
}
}
Method(_PRT) {
If(LEqual(GPIC, Zero)) {
Return(Package(0x04) {
Package(0x04) {
0xffff,
Zero,
^^LPC.LNKA,
Zero,
},
Package(0x04) {
0xffff,
One,
^^LPC.LNKB,
Zero,
},
Package(0x04) {
0xffff,
0x02,
^^LPC.LNKC,
Zero,
},
Package(0x04) {
0xffff,
0x03,
^^LPC.LNKD,
Zero,
},
})
}
Else {
Return(Package(0x04) {
Package(0x04) {
0xffff,
Zero,
Zero,
0x10,
},
Package(0x04) {
0xffff,
One,
Zero,
0x11,
},
Package(0x04) {
0xffff,
0x02,
Zero,
0x12,
},
Package(0x04) {
0xffff,
0x03,
Zero,
0x13,
},
})
}
}
}
Device(EXP6) {
Name(_ADR, 0x001c0005)
OperationRegion(PXCS, PCI_Config, Zero, 0xe0)
Field(PXCS, AnyAcc, NoLock, WriteAsZeros) {
VDID, 16,
Offset(0x19),
SECB, 8,
Offset(0x52),
, 13,
LASX, 1,
Offset(0x5a),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
Offset(0x5b),
LSCX, 1,
Offset(0x60),
Offset(0x62),
PSPX, 1,
Offset(0xd8),
, 30,
HPEN, 1,
PMEN, 1,
, 30,
HPSX, 1,
PMSX, 1
}
Method(_BBN) {
Return(SECB)
}
Method(_PRW) {
If(LNot(LLess(MCHD, 0x04))) {
Return(Package(0x02) {
0x09,
Zero,
})
}
Else {
Return(Package(0x02) {
0x09,
0x05,
})
}
}
Method(_PRT) {
If(LEqual(GPIC, Zero)) {
Return(Package(0x04) {
Package(0x04) {
0xffff,
Zero,
^^LPC.LNKB,
Zero,
},
Package(0x04) {
0xffff,
One,
^^LPC.LNKC,
Zero,
},
Package(0x04) {
0xffff,
0x02,
^^LPC.LNKD,
Zero,
},
Package(0x04) {
0xffff,
0x03,
^^LPC.LNKA,
Zero,
},
})
}
Else {
Return(Package(0x04) {
Package(0x04) {
0xffff,
Zero,
Zero,
0x11,
},
Package(0x04) {
0xffff,
One,
Zero,
0x12,
},
Package(0x04) {
0xffff,
0x02,
Zero,
0x13,
},
Package(0x04) {
0xffff,
0x03,
Zero,
0x10,
},
})
}
}
Device(PXSX) {
Name(_ADR, Zero)
Method(_RMV) {
If(LNot(LLess(MCHD, 0x04))) {
Return(One)
}
Else {
Return(Zero)
}
}
Method(_STA) {
If(PDSX) {
Return(0x0f)
}
Else {
Return(Zero)
}
}
Method(_PRW) {
If(LNot(LLess(MCHD, 0x04))) {
Return(Package(0x02) {
0x09,
Zero,
})
}
Else {
Return(Package(0x02) {
0x09,
0x05,
})
}
}
Method(_PSW, 1) {
If(LLess(MCHD, 0x04)) {
Store(Arg0, LAWK)
}
}
}
}
Device(SAT0) {
Name(_ADR, 0x001f0002)
OperationRegion(SACS, PCI_Config, 0x40, 0xc0)
Field(SACS, DWordAcc, NoLock, Preserve) {
PRIT, 16,
SECT, 16,
PSIT, 4,
SSIT, 4,
Offset(0x8),
SYNC, 4,
Offset(0xa),
SDT0, 2,
, 2,
SDT1, 2,
Offset(0xb),
SDT2, 2,
, 2,
SDT3, 2,
Offset(0x14),
ICR0, 4,
ICR1, 4,
ICR2, 4,
ICR3, 4,
ICR4, 4,
ICR5, 4,
Offset(0x50),
MAPV, 2
}
Device(PRID) {
Name(_ADR, Zero)
Method(_GTM) {
If(LEqual(SCFG, Zero)) {
Name(PBUF, Buffer(0x14) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 })
CreateDWordField(PBUF, Zero, PIO0)
CreateDWordField(PBUF, 0x04, DMA0)
CreateDWordField(PBUF, 0x08, PIO1)
CreateDWordField(PBUF, 0x0c, DMA1)
CreateDWordField(PBUF, 0x10, FLAG)
Store(GETP(PRIT), PIO0)
Store(GDMA(And(SYNC, One, ), And(ICR3, One, ), And(ICR0, One, ), SDT0, And(ICR1, One, )), DMA0)
If(LEqual(DMA0, Ones)) {
Store(PIO0, DMA0)
}
If(And(PRIT, 0x4000, )) {
If(LEqual(And(PRIT, 0x90, ), 0x80)) {
Store(0x0384, PIO1)
}
Else {
Store(GETT(PSIT), PIO1)
}
}
Else {
Store(Ones, PIO1)
}
Store(GDMA(And(SYNC, 0x02, ), And(ICR3, 0x02, ), And(ICR0, 0x02, ), SDT1, And(ICR1, 0x02, )), DMA1)
If(LEqual(DMA1, Ones)) {
Store(PIO1, DMA1)
}
Store(GETF(And(SYNC, One, ), And(SYNC, 0x02, ), PRIT), FLAG)
Return(PBUF)
}
}
Method(_STM, 3) {
If(LEqual(SCFG, Zero)) {
CreateDWordField(Arg0, Zero, PIO0)
CreateDWordField(Arg0, 0x04, DMA0)
CreateDWordField(Arg0, 0x08, PIO1)
CreateDWordField(Arg0, 0x0c, DMA1)
CreateDWordField(Arg0, 0x10, FLAG)
If(LEqual(SizeOf(Arg1), 0x0200)) {
And(PRIT, 0x40f0, PRIT)
And(SYNC, 0x0e, SYNC)
Store(Zero, SDT0)
And(ICR0, 0x0e, ICR0)
And(ICR1, 0x0e, ICR1)
And(ICR3, 0x0e, ICR3)
And(ICR5, 0x0e, ICR5)
CreateWordField(Arg1, 0x62, W490)
CreateWordField(Arg1, 0x6a, W530)
CreateWordField(Arg1, 0x7e, W630)
CreateWordField(Arg1, 0x80, W640)
CreateWordField(Arg1, 0xb0, W880)
CreateWordField(Arg1, 0xba, W930)
Or(PRIT, 0x8004, PRIT)
If(LAnd(And(FLAG, 0x02, ), And(W490, 0x0800, ))) {
Or(PRIT, 0x02, PRIT)
}
Or(PRIT, SETP(PIO0, W530, W640), PRIT)
If(And(FLAG, One, )) {
Or(SYNC, One, SYNC)
Store(SDMA(DMA0), SDT0)
If(LLess(DMA0, 0x1e)) {
Or(ICR3, One, ICR3)
}
If(LLess(DMA0, 0x3c)) {
Or(ICR0, One, ICR0)
}
Or(ICR1, One, ICR1)
}
}
If(LEqual(SizeOf(Arg2), 0x0200)) {
And(PRIT, 0x3f0f, PRIT)
Store(Zero, PSIT)
And(SYNC, 0x0d, SYNC)
Store(Zero, SDT1)
And(ICR0, 0x0d, ICR0)
And(ICR1, 0x0d, ICR1)
And(ICR3, 0x0d, ICR3)
And(ICR5, 0x0d, ICR5)
CreateWordField(Arg2, 0x62, W491)
CreateWordField(Arg2, 0x6a, W531)
CreateWordField(Arg2, 0x7e, W631)
CreateWordField(Arg2, 0x80, W641)
CreateWordField(Arg2, 0xb0, W881)
CreateWordField(Arg2, 0xba, W931)
Or(PRIT, 0x8040, PRIT)
If(LAnd(And(FLAG, 0x08, ), And(W491, 0x0800, ))) {
Or(PRIT, 0x20, PRIT)
}
If(And(FLAG, 0x10, )) {
Or(PRIT, 0x4000, PRIT)
If(LGreater(PIO1, 0xf0)) {
Or(PRIT, 0x80, PRIT)
}
Else {
Or(PRIT, 0x10, PRIT)
Store(SETT(PIO1, W531, W641), PSIT)
}
}
If(And(FLAG, 0x04, )) {
Or(SYNC, 0x02, SYNC)
Store(SDMA(DMA1), SDT1)
If(LLess(DMA1, 0x1e)) {
Or(ICR3, 0x02, ICR3)
}
If(LLess(DMA1, 0x3c)) {
Or(ICR0, 0x02, ICR0)
}
Or(ICR1, 0x02, ICR1)
}
}
}
}
Device(P_D0) {
Name(_ADR, Zero)
Method(_GTF) {
If(LEqual(SCFG, Zero)) {
Name(PIB0, Buffer(0x0e) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef })
CreateByteField(PIB0, One, PMD0)
CreateByteField(PIB0, 0x08, DMD0)
If(And(PRIT, 0x02, )) {
If(LEqual(And(PRIT, 0x09, ), 0x08)) {
Store(0x08, PMD0)
}
Else {
Store(0x0a, PMD0)
ShiftRight(And(PRIT, 0x0300, ), 0x08, Local0)
ShiftRight(And(PRIT, 0x3000, ), 0x0c, Local1)
Add(Local0, Local1, Local2)
If(LEqual(0x03, Local2)) {
Store(0x0b, PMD0)
}
If(LEqual(0x05, Local2)) {
Store(0x0c, PMD0)
}
}
}
Else {
Store(One, PMD0)
}
If(And(SYNC, One, )) {
Store(Or(SDT0, 0x40, ), DMD0)
If(And(ICR1, One, )) {
If(And(ICR0, One, )) {
Add(DMD0, 0x02, DMD0)
}
If(And(ICR3, One, )) {
Store(0x45, DMD0)
}
}
}
Else {
Or(Subtract(And(PMD0, 0x07, ), 0x02, ), 0x20, DMD0)
}
Return(PIB0)
}
}
}
Device(P_D1) {
Name(_ADR, One)
Method(_GTF) {
If(LEqual(SCFG, Zero)) {
Name(PIB1, Buffer(0x0e) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef })
CreateByteField(PIB1, One, PMD1)
CreateByteField(PIB1, 0x08, DMD1)
If(And(PRIT, 0x20, )) {
If(LEqual(And(PRIT, 0x90, ), 0x80)) {
Store(0x08, PMD1)
}
Else {
Add(And(PSIT, 0x03, ), ShiftRight(And(PSIT, 0x0c, ), 0x02, ), Local0)
If(LEqual(0x05, Local0)) {
Store(0x0c, PMD1)
}
Else {
If(LEqual(0x03, Local0)) {
Store(0x0b, PMD1)
}
Else {
Store(0x0a, PMD1)
}
}
}
}
Else {
Store(One, PMD1)
}
If(And(SYNC, 0x02, )) {
Store(Or(SDT1, 0x40, ), DMD1)
If(And(ICR1, 0x02, )) {
If(And(ICR0, 0x02, )) {
Add(DMD1, 0x02, DMD1)
}
If(And(ICR3, 0x02, )) {
Store(0x45, DMD1)
}
}
}
Else {
Or(Subtract(And(PMD1, 0x07, ), 0x02, ), 0x20, DMD1)
}
Return(PIB1)
}
}
}
}
Device(SECD) {
Name(_ADR, One)
Method(_GTM) {
If(LEqual(SCFG, Zero)) {
Name(SBUF, Buffer(0x14) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 })
CreateDWordField(SBUF, Zero, PIO0)
CreateDWordField(SBUF, 0x04, DMA0)
CreateDWordField(SBUF, 0x08, PIO1)
CreateDWordField(SBUF, 0x0c, DMA1)
CreateDWordField(SBUF, 0x10, FLAG)
Store(GETP(SECT), PIO0)
Store(GDMA(And(SYNC, 0x04, ), And(ICR3, 0x04, ), And(ICR0, 0x04, ), SDT2, And(ICR1, 0x04, )), DMA0)
If(LEqual(DMA0, Ones)) {
Store(PIO0, DMA0)
}
If(And(SECT, 0x4000, )) {
If(LEqual(And(SECT, 0x90, ), 0x80)) {
Store(0x0384, PIO1)
}
Else {
Store(GETT(SSIT), PIO1)
}
}
Else {
Store(Ones, PIO1)
}
Store(GDMA(And(SYNC, 0x08, ), And(ICR3, 0x08, ), And(ICR0, 0x08, ), SDT3, And(ICR1, 0x08, )), DMA1)
If(LEqual(DMA1, Ones)) {
Store(PIO1, DMA1)
}
Store(GETF(And(SYNC, 0x04, ), And(SYNC, 0x08, ), SECT), FLAG)
Return(SBUF)
}
}
Method(_STM, 3) {
If(LEqual(SCFG, Zero)) {
CreateDWordField(Arg0, Zero, PIO0)
CreateDWordField(Arg0, 0x04, DMA0)
CreateDWordField(Arg0, 0x08, PIO1)
CreateDWordField(Arg0, 0x0c, DMA1)
CreateDWordField(Arg0, 0x10, FLAG)
If(LEqual(SizeOf(Arg1), 0x0200)) {
And(SECT, 0x40f0, SECT)
And(SYNC, 0x0b, SYNC)
Store(Zero, SDT2)
And(ICR0, 0x0b, ICR0)
And(ICR1, 0x0b, ICR1)
And(ICR3, 0x0b, ICR3)
And(ICR5, 0x0b, ICR5)
CreateWordField(Arg1, 0x62, W490)
CreateWordField(Arg1, 0x6a, W530)
CreateWordField(Arg1, 0x7e, W630)
CreateWordField(Arg1, 0x80, W640)
CreateWordField(Arg1, 0xb0, W880)
CreateWordField(Arg1, 0xba, W930)
Or(SECT, 0x8004, SECT)
If(LAnd(And(FLAG, 0x02, ), And(W490, 0x0800, ))) {
Or(SECT, 0x02, SECT)
}
Or(SECT, SETP(PIO0, W530, W640), SECT)
If(And(FLAG, One, )) {
Or(SYNC, 0x04, SYNC)
Store(SDMA(DMA0), SDT2)
If(LLess(DMA0, 0x1e)) {
Or(ICR3, 0x04, ICR3)
}
If(LLess(DMA0, 0x3c)) {
Or(ICR0, 0x04, ICR0)
}
Or(ICR1, 0x04, ICR1)
}
}
If(LEqual(SizeOf(Arg2), 0x0200)) {
And(SECT, 0x3f0f, SECT)
Store(Zero, SSIT)
And(SYNC, 0x07, SYNC)
Store(Zero, SDT3)
And(ICR0, 0x07, ICR0)
And(ICR1, 0x07, ICR1)
And(ICR3, 0x07, ICR3)
And(ICR5, 0x07, ICR5)
CreateWordField(Arg2, 0x62, W491)
CreateWordField(Arg2, 0x6a, W531)
CreateWordField(Arg2, 0x7e, W631)
CreateWordField(Arg2, 0x80, W641)
CreateWordField(Arg2, 0xb0, W881)
CreateWordField(Arg2, 0xba, W931)
Or(SECT, 0x8040, SECT)
If(LAnd(And(FLAG, 0x08, ), And(W491, 0x0800, ))) {
Or(SECT, 0x20, SECT)
}
If(And(FLAG, 0x10, )) {
Or(SECT, 0x4000, SECT)
If(LGreater(PIO1, 0xf0)) {
Or(SECT, 0x80, SECT)
}
Else {
Or(SECT, 0x10, SECT)
Store(SETT(PIO1, W531, W641), SSIT)
}
}
If(And(FLAG, 0x04, )) {
Or(SYNC, 0x08, SYNC)
Store(SDMA(DMA1), SDT3)
If(LLess(DMA1, 0x1e)) {
Or(ICR3, 0x08, ICR3)
}
If(LLess(DMA1, 0x3c)) {
Or(ICR0, 0x08, ICR0)
}
Or(ICR1, 0x08, ICR1)
}
}
}
}
Device(S_D0) {
Name(_ADR, Zero)
Method(_GTF) {
If(LEqual(SCFG, Zero)) {
Name(SIB0, Buffer(0x0e) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef })
CreateByteField(SIB0, One, PMD0)
CreateByteField(SIB0, 0x08, DMD0)
If(And(SECT, 0x02, )) {
If(LEqual(And(SECT, 0x09, ), 0x08)) {
Store(0x08, PMD0)
}
Else {
Store(0x0a, PMD0)
ShiftRight(And(SECT, 0x0300, ), 0x08, Local0)
ShiftRight(And(SECT, 0x3000, ), 0x0c, Local1)
Add(Local0, Local1, Local2)
If(LEqual(0x03, Local2)) {
Store(0x0b, PMD0)
}
If(LEqual(0x05, Local2)) {
Store(0x0c, PMD0)
}
}
}
Else {
Store(One, PMD0)
}
If(And(SYNC, 0x04, )) {
Store(Or(SDT2, 0x40, ), DMD0)
If(And(ICR1, 0x04, )) {
If(And(ICR0, 0x04, )) {
Add(DMD0, 0x02, DMD0)
}
If(And(ICR3, 0x04, )) {
Store(0x45, DMD0)
}
}
}
Else {
Or(Subtract(And(PMD0, 0x07, ), 0x02, ), 0x20, DMD0)
}
Return(SIB0)
}
}
}
Device(S_D1) {
Name(_ADR, One)
Method(_GTF) {
If(LEqual(SCFG, Zero)) {
Name(SIB1, Buffer(0x0e) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef })
CreateByteField(SIB1, One, PMD1)
CreateByteField(SIB1, 0x08, DMD1)
If(And(SECT, 0x20, )) {
If(LEqual(And(SECT, 0x90, ), 0x80)) {
Store(0x08, PMD1)
}
Else {
Add(And(SSIT, 0x03, ), ShiftRight(And(SSIT, 0x0c, ), 0x02, ), Local0)
If(LEqual(0x05, Local0)) {
Store(0x0c, PMD1)
}
Else {
If(LEqual(0x03, Local0)) {
Store(0x0b, PMD1)
}
Else {
Store(0x0a, PMD1)
}
}
}
}
Else {
Store(One, PMD1)
}
If(And(SYNC, 0x08, )) {
Store(Or(SDT3, 0x40, ), DMD1)
If(And(ICR1, 0x08, )) {
If(And(ICR0, 0x08, )) {
Add(DMD1, 0x02, DMD1)
}
If(And(ICR3, 0x08, )) {
Store(0x45, DMD1)
}
}
}
Else {
Or(Subtract(And(PMD1, 0x07, ), 0x02, ), 0x20, DMD1)
}
Return(SIB1)
}
}
}
}
}
Device(SAT1) {
Name(_ADR, 0x001f0005)
OperationRegion(SACS, PCI_Config, 0x40, 0xc0)
Field(SACS, DWordAcc, NoLock, Preserve) {
PRIT, 16,
SECT, 16,
PSIT, 4,
SSIT, 4,
Offset(0x8),
SYNC, 4,
Offset(0xa),
SDT0, 2,
, 2,
SDT1, 2,
Offset(0xb),
SDT2, 2,
, 2,
SDT3, 2,
Offset(0x14),
ICR0, 4,
ICR1, 4,
ICR2, 4,
ICR3, 4,
ICR4, 4,
ICR5, 4,
Offset(0x50),
MAPV, 2
}
Device(PRID) {
Name(_ADR, Zero)
Method(_GTM) {
If(LEqual(SCFG, Zero)) {
Name(PBUF, Buffer(0x14) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 })
CreateDWordField(PBUF, Zero, PIO0)
CreateDWordField(PBUF, 0x04, DMA0)
CreateDWordField(PBUF, 0x08, PIO1)
CreateDWordField(PBUF, 0x0c, DMA1)
CreateDWordField(PBUF, 0x10, FLAG)
Store(GETP(PRIT), PIO0)
Store(GDMA(And(SYNC, One, ), And(ICR3, One, ), And(ICR0, One, ), SDT0, And(ICR1, One, )), DMA0)
If(LEqual(DMA0, Ones)) {
Store(PIO0, DMA0)
}
If(And(PRIT, 0x4000, )) {
If(LEqual(And(PRIT, 0x90, ), 0x80)) {
Store(0x0384, PIO1)
}
Else {
Store(GETT(PSIT), PIO1)
}
}
Else {
Store(Ones, PIO1)
}
Store(GDMA(And(SYNC, 0x02, ), And(ICR3, 0x02, ), And(ICR0, 0x02, ), SDT1, And(ICR1, 0x02, )), DMA1)
If(LEqual(DMA1, Ones)) {
Store(PIO1, DMA1)
}
Store(GETF(And(SYNC, One, ), And(SYNC, 0x02, ), PRIT), FLAG)
Return(PBUF)
}
}
Method(_STM, 3) {
If(LEqual(SCFG, Zero)) {
CreateDWordField(Arg0, Zero, PIO0)
CreateDWordField(Arg0, 0x04, DMA0)
CreateDWordField(Arg0, 0x08, PIO1)
CreateDWordField(Arg0, 0x0c, DMA1)
CreateDWordField(Arg0, 0x10, FLAG)
If(LEqual(SizeOf(Arg1), 0x0200)) {
And(PRIT, 0x40f0, PRIT)
And(SYNC, 0x0e, SYNC)
Store(Zero, SDT0)
And(ICR0, 0x0e, ICR0)
And(ICR1, 0x0e, ICR1)
And(ICR3, 0x0e, ICR3)
And(ICR5, 0x0e, ICR5)
CreateWordField(Arg1, 0x62, W490)
CreateWordField(Arg1, 0x6a, W530)
CreateWordField(Arg1, 0x7e, W630)
CreateWordField(Arg1, 0x80, W640)
CreateWordField(Arg1, 0xb0, W880)
CreateWordField(Arg1, 0xba, W930)
Or(PRIT, 0x8004, PRIT)
If(LAnd(And(FLAG, 0x02, ), And(W490, 0x0800, ))) {
Or(PRIT, 0x02, PRIT)
}
Or(PRIT, SETP(PIO0, W530, W640), PRIT)
If(And(FLAG, One, )) {
Or(SYNC, One, SYNC)
Store(SDMA(DMA0), SDT0)
If(LLess(DMA0, 0x1e)) {
Or(ICR3, One, ICR3)
}
If(LLess(DMA0, 0x3c)) {
Or(ICR0, One, ICR0)
}
Or(ICR1, One, ICR1)
}
}
If(LEqual(SizeOf(Arg2), 0x0200)) {
And(PRIT, 0x3f0f, PRIT)
Store(Zero, PSIT)
And(SYNC, 0x0d, SYNC)
Store(Zero, SDT1)
And(ICR0, 0x0d, ICR0)
And(ICR1, 0x0d, ICR1)
And(ICR3, 0x0d, ICR3)
And(ICR5, 0x0d, ICR5)
CreateWordField(Arg2, 0x62, W491)
CreateWordField(Arg2, 0x6a, W531)
CreateWordField(Arg2, 0x7e, W631)
CreateWordField(Arg2, 0x80, W641)
CreateWordField(Arg2, 0xb0, W881)
CreateWordField(Arg2, 0xba, W931)
Or(PRIT, 0x8040, PRIT)
If(LAnd(And(FLAG, 0x08, ), And(W491, 0x0800, ))) {
Or(PRIT, 0x20, PRIT)
}
If(And(FLAG, 0x10, )) {
Or(PRIT, 0x4000, PRIT)
If(LGreater(PIO1, 0xf0)) {
Or(PRIT, 0x80, PRIT)
}
Else {
Or(PRIT, 0x10, PRIT)
Store(SETT(PIO1, W531, W641), PSIT)
}
}
If(And(FLAG, 0x04, )) {
Or(SYNC, 0x02, SYNC)
Store(SDMA(DMA1), SDT1)
If(LLess(DMA1, 0x1e)) {
Or(ICR3, 0x02, ICR3)
}
If(LLess(DMA1, 0x3c)) {
Or(ICR0, 0x02, ICR0)
}
Or(ICR1, 0x02, ICR1)
}
}
}
}
Device(P_D0) {
Name(_ADR, Zero)
Method(_GTF) {
If(LEqual(SCFG, Zero)) {
Name(PIB0, Buffer(0x0e) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef })
CreateByteField(PIB0, One, PMD0)
CreateByteField(PIB0, 0x08, DMD0)
If(And(PRIT, 0x02, )) {
If(LEqual(And(PRIT, 0x09, ), 0x08)) {
Store(0x08, PMD0)
}
Else {
Store(0x0a, PMD0)
ShiftRight(And(PRIT, 0x0300, ), 0x08, Local0)
ShiftRight(And(PRIT, 0x3000, ), 0x0c, Local1)
Add(Local0, Local1, Local2)
If(LEqual(0x03, Local2)) {
Store(0x0b, PMD0)
}
If(LEqual(0x05, Local2)) {
Store(0x0c, PMD0)
}
}
}
Else {
Store(One, PMD0)
}
If(And(SYNC, One, )) {
Store(Or(SDT0, 0x40, ), DMD0)
If(And(ICR1, One, )) {
If(And(ICR0, One, )) {
Add(DMD0, 0x02, DMD0)
}
If(And(ICR3, One, )) {
Store(0x45, DMD0)
}
}
}
Else {
Or(Subtract(And(PMD0, 0x07, ), 0x02, ), 0x20, DMD0)
}
Return(PIB0)
}
}
}
Device(P_D1) {
Name(_ADR, One)
Method(_GTF) {
If(LEqual(SCFG, Zero)) {
Name(PIB1, Buffer(0x0e) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef })
CreateByteField(PIB1, One, PMD1)
CreateByteField(PIB1, 0x08, DMD1)
If(And(PRIT, 0x20, )) {
If(LEqual(And(PRIT, 0x90, ), 0x80)) {
Store(0x08, PMD1)
}
Else {
Add(And(PSIT, 0x03, ), ShiftRight(And(PSIT, 0x0c, ), 0x02, ), Local0)
If(LEqual(0x05, Local0)) {
Store(0x0c, PMD1)
}
Else {
If(LEqual(0x03, Local0)) {
Store(0x0b, PMD1)
}
Else {
Store(0x0a, PMD1)
}
}
}
}
Else {
Store(One, PMD1)
}
If(And(SYNC, 0x02, )) {
Store(Or(SDT1, 0x40, ), DMD1)
If(And(ICR1, 0x02, )) {
If(And(ICR0, 0x02, )) {
Add(DMD1, 0x02, DMD1)
}
If(And(ICR3, 0x02, )) {
Store(0x45, DMD1)
}
}
}
Else {
Or(Subtract(And(PMD1, 0x07, ), 0x02, ), 0x20, DMD1)
}
Return(PIB1)
}
}
}
}
Device(SECD) {
Name(_ADR, One)
Method(_GTM) {
If(LEqual(SCFG, Zero)) {
Name(SBUF, Buffer(0x14) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 })
CreateDWordField(SBUF, Zero, PIO0)
CreateDWordField(SBUF, 0x04, DMA0)
CreateDWordField(SBUF, 0x08, PIO1)
CreateDWordField(SBUF, 0x0c, DMA1)
CreateDWordField(SBUF, 0x10, FLAG)
Store(GETP(SECT), PIO0)
Store(GDMA(And(SYNC, 0x04, ), And(ICR3, 0x04, ), And(ICR0, 0x04, ), SDT2, And(ICR1, 0x04, )), DMA0)
If(LEqual(DMA0, Ones)) {
Store(PIO0, DMA0)
}
If(And(SECT, 0x4000, )) {
If(LEqual(And(SECT, 0x90, ), 0x80)) {
Store(0x0384, PIO1)
}
Else {
Store(GETT(SSIT), PIO1)
}
}
Else {
Store(Ones, PIO1)
}
Store(GDMA(And(SYNC, 0x08, ), And(ICR3, 0x08, ), And(ICR0, 0x08, ), SDT3, And(ICR1, 0x08, )), DMA1)
If(LEqual(DMA1, Ones)) {
Store(PIO1, DMA1)
}
Store(GETF(And(SYNC, 0x04, ), And(SYNC, 0x08, ), SECT), FLAG)
Return(SBUF)
}
}
Method(_STM, 3) {
If(LEqual(SCFG, Zero)) {
CreateDWordField(Arg0, Zero, PIO0)
CreateDWordField(Arg0, 0x04, DMA0)
CreateDWordField(Arg0, 0x08, PIO1)
CreateDWordField(Arg0, 0x0c, DMA1)
CreateDWordField(Arg0, 0x10, FLAG)
If(LEqual(SizeOf(Arg1), 0x0200)) {
And(SECT, 0x40f0, SECT)
And(SYNC, 0x0b, SYNC)
Store(Zero, SDT2)
And(ICR0, 0x0b, ICR0)
And(ICR1, 0x0b, ICR1)
And(ICR3, 0x0b, ICR3)
And(ICR5, 0x0b, ICR5)
CreateWordField(Arg1, 0x62, W490)
CreateWordField(Arg1, 0x6a, W530)
CreateWordField(Arg1, 0x7e, W630)
CreateWordField(Arg1, 0x80, W640)
CreateWordField(Arg1, 0xb0, W880)
CreateWordField(Arg1, 0xba, W930)
Or(SECT, 0x8004, SECT)
If(LAnd(And(FLAG, 0x02, ), And(W490, 0x0800, ))) {
Or(SECT, 0x02, SECT)
}
Or(SECT, SETP(PIO0, W530, W640), SECT)
If(And(FLAG, One, )) {
Or(SYNC, 0x04, SYNC)
Store(SDMA(DMA0), SDT2)
If(LLess(DMA0, 0x1e)) {
Or(ICR3, 0x04, ICR3)
}
If(LLess(DMA0, 0x3c)) {
Or(ICR0, 0x04, ICR0)
}
Or(ICR1, 0x04, ICR1)
}
}
If(LEqual(SizeOf(Arg2), 0x0200)) {
And(SECT, 0x3f0f, SECT)
Store(Zero, SSIT)
And(SYNC, 0x07, SYNC)
Store(Zero, SDT3)
And(ICR0, 0x07, ICR0)
And(ICR1, 0x07, ICR1)
And(ICR3, 0x07, ICR3)
And(ICR5, 0x07, ICR5)
CreateWordField(Arg2, 0x62, W491)
CreateWordField(Arg2, 0x6a, W531)
CreateWordField(Arg2, 0x7e, W631)
CreateWordField(Arg2, 0x80, W641)
CreateWordField(Arg2, 0xb0, W881)
CreateWordField(Arg2, 0xba, W931)
Or(SECT, 0x8040, SECT)
If(LAnd(And(FLAG, 0x08, ), And(W491, 0x0800, ))) {
Or(SECT, 0x20, SECT)
}
If(And(FLAG, 0x10, )) {
Or(SECT, 0x4000, SECT)
If(LGreater(PIO1, 0xf0)) {
Or(SECT, 0x80, SECT)
}
Else {
Or(SECT, 0x10, SECT)
Store(SETT(PIO1, W531, W641), SSIT)
}
}
If(And(FLAG, 0x04, )) {
Or(SYNC, 0x08, SYNC)
Store(SDMA(DMA1), SDT3)
If(LLess(DMA1, 0x1e)) {
Or(ICR3, 0x08, ICR3)
}
If(LLess(DMA1, 0x3c)) {
Or(ICR0, 0x08, ICR0)
}
Or(ICR1, 0x08, ICR1)
}
}
}
}
Device(S_D0) {
Name(_ADR, Zero)
Method(_GTF) {
If(LEqual(SCFG, Zero)) {
Name(SIB0, Buffer(0x0e) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef })
CreateByteField(SIB0, One, PMD0)
CreateByteField(SIB0, 0x08, DMD0)
If(And(SECT, 0x02, )) {
If(LEqual(And(SECT, 0x09, ), 0x08)) {
Store(0x08, PMD0)
}
Else {
Store(0x0a, PMD0)
ShiftRight(And(SECT, 0x0300, ), 0x08, Local0)
ShiftRight(And(SECT, 0x3000, ), 0x0c, Local1)
Add(Local0, Local1, Local2)
If(LEqual(0x03, Local2)) {
Store(0x0b, PMD0)
}
If(LEqual(0x05, Local2)) {
Store(0x0c, PMD0)
}
}
}
Else {
Store(One, PMD0)
}
If(And(SYNC, 0x04, )) {
Store(Or(SDT2, 0x40, ), DMD0)
If(And(ICR1, 0x04, )) {
If(And(ICR0, 0x04, )) {
Add(DMD0, 0x02, DMD0)
}
If(And(ICR3, 0x04, )) {
Store(0x45, DMD0)
}
}
}
Else {
Or(Subtract(And(PMD0, 0x07, ), 0x02, ), 0x20, DMD0)
}
Return(SIB0)
}
}
}
Device(S_D1) {
Name(_ADR, One)
Method(_GTF) {
If(LEqual(SCFG, Zero)) {
Name(SIB1, Buffer(0x0e) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef })
CreateByteField(SIB1, One, PMD1)
CreateByteField(SIB1, 0x08, DMD1)
If(And(SECT, 0x20, )) {
If(LEqual(And(SECT, 0x90, ), 0x80)) {
Store(0x08, PMD1)
}
Else {
Add(And(SSIT, 0x03, ), ShiftRight(And(SSIT, 0x0c, ), 0x02, ), Local0)
If(LEqual(0x05, Local0)) {
Store(0x0c, PMD1)
}
Else {
If(LEqual(0x03, Local0)) {
Store(0x0b, PMD1)
}
Else {
Store(0x0a, PMD1)
}
}
}
}
Else {
Store(One, PMD1)
}
If(And(SYNC, 0x08, )) {
Store(Or(SDT3, 0x40, ), DMD1)
If(And(ICR1, 0x08, )) {
If(And(ICR0, 0x08, )) {
Add(DMD1, 0x02, DMD1)
}
If(And(ICR3, 0x08, )) {
Store(0x45, DMD1)
}
}
}
Else {
Or(Subtract(And(PMD1, 0x07, ), 0x02, ), 0x20, DMD1)
}
Return(SIB1)
}
}
}
}
}
Method(BRXP, 1) {
Store(^LPC.EC0.BRTL, Local0)
Store(Zero, Local1)
While(LLess(Local1, 0x0c)) {
Add(Local1, 0x02, Local2)
If(LEqual(CHPF, One)) {
Store(DerefOf(Index(BCL2, Local2, )), Local3)
}
Else {
If(LEqual(CKPL, One)) {
Store(DerefOf(Index(BCL3, Local2, )), Local3)
}
Else {
Store(DerefOf(Index(BCL1, Local2, )), Local3)
}
}
If(LEqual(Local0, Local3)) {
If(LEqual(Arg0, One)) {
Increment(Local2)
}
If(LEqual(Arg0, 0x02)) {
Decrement(Local2)
}
If(LAnd(LLess(Local2, 0x0e), LGreater(Local2, One))) {
If(LEqual(CHPF, One)) {
Store(DerefOf(Index(BCL2, Local2, )), ^LPC.EC0.BRTL)
}
Else {
If(LEqual(CKPL, One)) {
Store(DerefOf(Index(BCL3, Local2, )), ^LPC.EC0.BRTL)
}
Else {
Store(DerefOf(Index(BCL1, Local2, )), ^LPC.EC0.BRTL)
}
}
Subtract(Local2, 0x02, Local2)
If(^LPC.EC0.SW2S) {
Store(Local2, BRAC)
}
Else {
Store(Local2, BRDC)
}
Store(0x0c, Local1)
}
Else {
Store(0x0c, Local1)
}
}
Increment(Local1)
}
}
}
OperationRegion(EXCO, SystemIO, 0x72, 0x02)
Field(EXCO, ByteAcc, NoLock, Preserve) {
INDX, 8,
DATA, 8
}
IndexField(INDX, DATA, ByteAcc, NoLock, Preserve) {
Offset(0x31),
, 4,
ACST, 1,
Offset(0x36),
BTWL, 2,
BTLS, 1,
BWLS, 1,
WWLS, 1,
Offset(0x37),
, 2,
PFID, 4,
PTPE, 2,
, 2,
TJ85, 1,
, 1,
WOL5, 1,
Offset(0x3d),
, 3,
DCKS, 1,
Offset(0x4e),
BRAC, 8,
BRDC, 8,
Offset(0x7f),
SVIM, 8
}
Device(WMID) {
Name(WCDS, Package(0x1b) {
0x04,
0x04,
0x04,
Zero,
0x04,
0x04,
Zero,
Zero,
0x04,
0x04,
0x0c,
Zero,
Zero,
Zero,
Zero,
0x06,
Zero,
Zero,
0x04,
0x04,
0x04,
0x04,
0x04,
0x04,
0x04,
0x04,
0x04,
})
Method(CSMI, 2, Serialized) {
Store(Arg0, CMTF)
Store(Arg1, CMTI)
Store(0xc1, SSMP)
Return(CMTO)
}
Method(HWMC, 2) {
CreateDWordField(Arg1, Zero, SNIN)
CreateDWordField(Arg1, 0x04, COMD)
CreateDWordField(Arg1, 0x08, CMTP)
CreateDWordField(Arg1, 0x0c, DASI)
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, SNOU)
CreateDWordField(Local1, 0x04, RTCD)
Store(DASI, Local5)
If(LGreater(DASI, 0x02f0)) {
Store(0x02f0, Local5)
}
CreateField(Arg1, Zero, Multiply(Add(Local5, 0x10, ), 0x08, ), DAIN)
Store(0x4c494146, SNOU)
Store(0x02, RTCD)
If(LEqual(SNIN, 0x55434553)) {
Store(0x03, RTCD)
If(LEqual(COMD, One)) {
Store(0x04, RTCD)
If(LEqual(CMTP, 0x05)) {
Store(GWLS(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x1b)) {
Store(GWDI(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x0e)) {
Store(GWID(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x10)) {
Store(GHPI(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x07)) {
If(DASI) {
Store(DerefOf(Index(Arg1, 0x10, )), Local3)
Store(GBAI(Local3), Local2)
Store(Zero, RTCD)
}
Else {
Store(0x05, RTCD)
}
}
If(LEqual(CMTP, One)) {
Store(GDPS(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x08)) {
Store(GBBT(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x09)) {
Store(GHKS(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x0a)) {
Store(GHKF(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x0c)) {
Store(GBBV(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x0d)) {
Store(GTFR(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x0b)) {
Store(GBBS(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x13)) {
Store(GBNS(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x17)) {
Store(GDIM(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x0f)) {
Store(SMAT(), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x1a)) {
Store(GMSR(), Local2)
Store(Zero, RTCD)
}
}
If(LEqual(COMD, 0x02)) {
Store(0x04, RTCD)
If(LAnd(LGreater(CMTP, Zero), LNot(LGreater(CMTP, 0x1b)))) {
If(LLess(DASI, DerefOf(Index(WCDS, Subtract(CMTP, One, ), )))) {
Store(0x05, RTCD)
}
Else {
CreateDWordField(Arg1, 0x10, DDWD)
If(LEqual(CMTP, 0x05)) {
Store(SWLS(DDWD), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x1b)) {
Store(SWDS(DDWD), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, One)) {
Store(SDPS(DDWD), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x09)) {
Store(SHKS(DDWD), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x0a)) {
Store(SHKF(DDWD), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x10)) {
If(LNot(LEqual(DASI, DerefOf(Index(WCDS, Subtract(CMTP, One, ), ))))) {
Store(0x05, RTCD)
}
Else {
CreateByteField(Arg1, 0x10, DAB0)
CreateByteField(Arg1, 0x11, DAB1)
CreateByteField(Arg1, 0x12, DAB2)
CreateByteField(Arg1, 0x13, DAB3)
CreateByteField(Arg1, 0x14, DAB4)
CreateByteField(Arg1, 0x15, DAB5)
Store(SHPI(DAB0, DAB1, DAB2, DAB3, DAB4, DAB5), Local2)
Store(Zero, RTCD)
}
}
If(LEqual(CMTP, 0x13)) {
Store(SBNS(DDWD), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x17)) {
Store(SDIM(DDWD), Local2)
Store(Zero, RTCD)
}
If(LEqual(CMTP, 0x1a)) {
Store(SMSR(DDWD), Local2)
Store(Zero, RTCD)
}
}
}
}
If(LEqual(COMD, 0x00020002)) {
Store(0x21, RTCD)
If(LEqual(CMTP, One)) {
Store(0xc1, P80H)
Store(Package(0x03) {
Zero,
Zero,
Buffer(0x04) {0x0, 0x0, 0x0, 0x0 },
}, Local2)
Store(Zero, Index(Local2, Zero, ))
Store(0x04, Index(Local2, One, ))
CSMI(One, Zero)
Store(CMTO, Index(DerefOf(Index(Local2, 0x02, )), Zero, ))
Store(Zero, RTCD)
Store(0x1c, P80H)
}
If(LEqual(CMTP, 0x02)) {
Store(0xc2, P80H)
Store(Package(0x02) {
Zero,
Zero,
}, Local2)
CSMI(0x02, DAIN)
Store(CMTO, RTCD)
Store(0x2c, P80H)
}
If(LEqual(CMTP, 0x03)) {
Store(0xc3, P80H)
Store(Package(0x02) {
Zero,
Zero,
}, Local2)
CSMI(0x03, DAIN)
Store(CMTO, RTCD)
Store(0x3c, P80H)
}
}
}
If(LEqual(RTCD, Zero)) {
Store(DerefOf(Index(Local2, Zero, )), RTCD)
If(LEqual(RTCD, Zero)) {
If(LNot(LGreater(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, SNOU)
}
Else {
Store(0x05, RTCD)
}
}
}
Return(Local1)
}
Name(_HID, "PNP0C14")
Name(_UID, Zero)
Name(WEID, Zero)
Name(WMED, Zero)
Name(BUFF, Buffer(0x04) {0x0, 0x0, 0x0, 0x0 })
CreateByteField(BUFF, Zero, OB0)
CreateByteField(BUFF, One, OB1)
CreateByteField(BUFF, 0x02, OB2)
CreateByteField(BUFF, 0x03, OB3)
Name(_WDG, Buffer(0x50) {0x34, 0xf0, 0xb7, 0x5f, 0x63, 0x2c, 0xe9, 0x45, 0xbe, 0x91, 0x3d, 0x44, 0xe2, 0xc7, 0x7, 0xe4, 0x41, 0x44, 0x1, 0x2, 0x79, 0x42, 0xf2, 0x95, 0x7b, 0x4d, 0x34, 0x43, 0x93, 0x87, 0xac, 0xcd, 0xc6, 0x7e, 0xf6, 0x1c, 0x80, 0x0, 0x1, 0x8, 0x21, 0x12, 0x90, 0x5, 0x66, 0xd5, 0xd1, 0x11, 0xb2, 0xf0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0x10, 0x41, 0x45, 0x1, 0x0, 0xd4, 0x2b, 0x99, 0xd0, 0x7c, 0xa4, 0xfe, 0x4e, 0xb0, 0x72, 0x32, 0x4a, 0xec, 0x92, 0x29, 0x6c, 0x42, 0x43, 0x1, 0x0 })
Method(WQBC, 1) {
Store(WMIA, Local0)
Return(Local0)
}
Method(WMAD, 3, Serialized) {
Return(HWMC(Arg1, Arg2))
}
Method(GWLS) {
Store(One, WAOK)
TRAP(TRTI, 0x1f)
Store(Package(0x03) {
Zero,
0x04,
Buffer(0x04) {0x1, 0x2, 0x3, 0x4 },
}, Local0)
Store(WAB0, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(WAB1, Index(DerefOf(Index(Local0, 0x02, )), One, ))
Store(WAB2, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
Store(WAB3, Index(DerefOf(Index(Local0, 0x02, )), 0x03, ))
Return(Local0)
}
Method(SWLS, 1) {
Store(And(Arg0, 0xff, ), WAB4)
Store(And(ShiftRight(Arg0, 0x08, ), 0xff, ), WAB5)
Or(0x0c, WAB1, WAB1)
Or(0x0c, WAB2, WAB2)
Or(0x0c, WAB3, WAB3)
TRAP(TRTI, 0x20)
Store(0x05, WEID)
Store(Zero, WMED)
Notify(WMID, 0x80)
Return(Package(0x02) {
Zero,
Zero,
})
}
Method(GWID) {
Store(Zero, Local0)
If(LAnd(LNot(LEqual(Add(WBD0, WBD1, ), 0x01fe)), LNot(LEqual(Add(WBD0, WBD1, ), Zero)))) {
Store(Buffer(0x06) {0x2, 0x2, 0x0, 0x0, 0x0, 0x0 }, Local1)
Store(WBD0, Index(Local1, 0x02, ))
Store(WBD1, Index(Local1, 0x03, ))
Store(WBD2, Index(Local1, 0x04, ))
Store(WBD3, Index(Local1, 0x05, ))
Add(Local0, 0x06, Local0)
}
If(LAnd(LNot(LEqual(Add(WWD0, WWD1, ), 0x01fe)), LNot(LEqual(Add(WWD0, WWD1, ), Zero)))) {
Store(Buffer(0x06) {0x2, 0x3, 0x0, 0x0, 0x0, 0x0 }, Local2)
Store(WWD0, Index(Local2, 0x02, ))
Store(WWD1, Index(Local2, 0x03, ))
Store(WWD2, Index(Local2, 0x04, ))
Store(WWD3, Index(Local2, 0x05, ))
If(LEqual(Local0, Zero)) {
Store(Local2, Local1)
}
Else {
Concatenate(Local1, Local2, Local3)
Store(Local3, Local1)
}
Add(Local0, 0x06, Local0)
}
If(LAnd(LNot(LEqual(Add(WLD0, WLD1, ), 0x01fe)), LNot(LEqual(Add(WLD0, WLD1, ), Zero)))) {
Store(Buffer(0x0a) {0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, Local2)
Store(WLD0, Index(Local2, 0x02, ))
Store(WLD1, Index(Local2, 0x03, ))
Store(WLD2, Index(Local2, 0x04, ))
Store(WLD3, Index(Local2, 0x05, ))
Store(WLD4, Index(Local2, 0x06, ))
Store(WLD5, Index(Local2, 0x07, ))
Store(WLD6, Index(Local2, 0x08, ))
Store(WLD7, Index(Local2, 0x09, ))
If(LEqual(Local0, Zero)) {
Store(Local2, Local1)
}
Else {
Concatenate(Local1, Local2, Local3)
Store(Local3, Local1)
}
Add(Local0, 0x0a, Local0)
}
Store(Package(0x03) {
}, Local2)
Store(Zero, Index(Local2, Zero, ))
Store(Local0, Index(Local2, One, ))
Store(Local1, Index(Local2, 0x02, ))
Return(Local2)
}
Method(GHPI) {
Store(Buffer(0x06) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, Local0)
TRAP(TRTI, 0x1d)
Add(SID0, 0x30, SID0)
Add(SID1, 0x30, SID1)
Add(SID2, 0x30, SID2)
Add(SID3, 0x30, SID3)
Add(SID4, 0x30, SID4)
Add(SID5, 0x30, SID5)
Store(SID0, Index(Local0, Zero, ))
Store(SID1, Index(Local0, One, ))
Store(SID2, Index(Local0, 0x02, ))
Store(SID3, Index(Local0, 0x03, ))
Store(SID4, Index(Local0, 0x04, ))
Store(SID5, Index(Local0, 0x05, ))
Store(Package(0x03) {
Zero,
0x06,
Zero,
}, Local1)
Store(Local0, Index(Local1, 0x02, ))
Return(Local1)
}
Method(SHPI, 6) {
Subtract(Arg0, 0x30, Arg0)
Subtract(Arg1, 0x30, Arg1)
Subtract(Arg2, 0x30, Arg2)
Subtract(Arg3, 0x30, Arg3)
Subtract(Arg4, 0x30, Arg4)
Subtract(Arg5, 0x30, Arg5)
Store(Arg0, SID0)
Store(Arg1, SID1)
Store(Arg2, SID2)
Store(Arg3, SID3)
Store(Arg4, SID4)
Store(Arg5, SID5)
TRAP(TRTI, 0x1e)
Return(Package(0x02) {
Zero,
Zero,
})
}
Method(GBAI, 1) {
Acquire(^^PCI0.LPC.EC0.MUT1, 0xffff)
If(LNot(ECOK)) {
Store(Package(0x02) {
0x0d,
Zero,
}, Local0)
Sleep(0x96)
Release(^^PCI0.LPC.EC0.MUT1)
Return(Local0)
}
If(Arg0) {
Store(Package(0x02) {
0x06,
Zero,
}, Local0)
Sleep(0x96)
Release(^^PCI0.LPC.EC0.MUT1)
Return(Local0)
}
If(LNot(^^PCI0.LPC.EC0.MBTS)) {
Store(Package(0x02) {
0x06,
Zero,
}, Local0)
Sleep(0x96)
Release(^^PCI0.LPC.EC0.MUT1)
Return(Local0)
}
Store(Package(0x03) {
Zero,
0x80,
Buffer(0x80) { },
}, Local0)
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x18, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), One, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x10, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x03, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x0f, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x05, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x04, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x0c, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x07, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x06, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x17, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x09, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x08, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x08, RefOf(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, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x09, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x0d, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x0c, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x0a, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x0f, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x0e, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x19, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x11, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x10, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x16, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x13, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x12, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x3f, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x15, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x14, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x3e, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x17, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x16, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x3d, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x19, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x18, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x3c, RefOf(Local1))
Divide(Local1, 0x0100, Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x1b, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), 0x1a, ))
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x1c, RefOf(Local1))
Store(ITOS(ToBCD(Local1, )), Local3)
Store(0x1c, Local2)
Store(Zero, Local4)
Store(SizeOf(Local3), Local1)
While(Local1) {
GBFE(Local3, Local4, RefOf(Local5))
PBFE(DerefOf(Index(Local0, 0x02, )), Local2, Local5)
Decrement(Local1)
Increment(Local2)
Increment(Local4)
}
Store(0x20, Index(DerefOf(Index(Local0, 0x02, )), Local2, ))
Increment(Local2)
^^PCI0.LPC.EC0.SMRD(0x09, 0x16, 0x1b, RefOf(Local1))
And(Local1, 0x1f, Local7)
Store(ITOS(ToBCD(Local7, )), Local6)
And(Local1, 0x01e0, Local7)
ShiftRight(Local7, 0x05, Local7)
Store(ITOS(ToBCD(Local7, )), Local5)
ShiftRight(Local1, 0x09, Local7)
Add(Local7, 0x07bc, Local7)
Store(ITOS(ToBCD(Local7, )), Local4)
Store(0x02, Local1)
Store(0x03, Local7)
While(Local1) {
GBFE(Local5, Local7, RefOf(Local3))
PBFE(DerefOf(Index(Local0, 0x02, )), Local2, Local3)
Decrement(Local1)
Increment(Local2)
Increment(Local7)
}
Store("\x2f", Index(DerefOf(Index(Local0, 0x02, )), Local2, ))
Increment(Local2)
Store(0x02, Local1)
Store(0x03, Local7)
While(Local1) {
GBFE(Local6, Local7, RefOf(Local3))
PBFE(DerefOf(Index(Local0, 0x02, )), Local2, Local3)
Decrement(Local1)
Increment(Local2)
Increment(Local7)
}
Store("\x2f", Index(DerefOf(Index(Local0, 0x02, )), Local2, ))
Increment(Local2)
Store(0x04, Local1)
Store(One, Local7)
While(Local1) {
GBFE(Local4, Local7, RefOf(Local3))
PBFE(DerefOf(Index(Local0, 0x02, )), Local2, Local3)
Decrement(Local1)
Increment(Local2)
Increment(Local7)
}
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Local2, ))
^^PCI0.LPC.EC0.SMRD(0x0b, 0x16, 0x20, RefOf(Local1))
Store(SizeOf(Local1), Local3)
Store(0x2c, Local2)
Store(Zero, Local4)
While(Local3) {
GBFE(Local1, Local4, RefOf(Local5))
PBFE(DerefOf(Index(Local0, 0x02, )), Local2, Local5)
Decrement(Local3)
Increment(Local2)
Increment(Local4)
}
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Local2, ))
Sleep(0x96)
Release(^^PCI0.LPC.EC0.MUT1)
Return(Local0)
Store(Package(0x02) {
0x06,
Zero,
}, Local0)
Return(Local0)
}
Method(GDPS) {
Store(Zero, OB0)
If(IGDS) {
If(LOr(LEqual(^^PCI0.OVGA.CPDL, 0x0100), LEqual(^^PCI0.OVGA.CPL2, 0x0100))) {
Or(OB0, 0x02, OB0)
}
If(LEqual(^^PCI0.OVGA.CPL3, 0x0100)) {
Or(OB0, 0x02, OB0)
}
If(LOr(LEqual(^^PCI0.OVGA.CPDL, 0x0400), LEqual(^^PCI0.OVGA.CPL2, 0x0400))) {
Or(OB0, One, OB0)
}
If(LEqual(^^PCI0.OVGA.CPL3, 0x0400)) {
Or(OB0, One, OB0)
}
If(LOr(LEqual(^^PCI0.OVGA.CPDL, 0x0300), LEqual(^^PCI0.OVGA.CPL2, 0x0300))) {
Or(OB0, 0x10, OB0)
}
If(LEqual(^^PCI0.OVGA.CPL3, 0x0300)) {
Or(OB0, 0x10, OB0)
}
}
Else {
TRAP(TRTI, 0x0b)
Sleep(0x64)
Store(CADL, Local0)
If(LEqual(Local0, One)) {
Store(One, OB0)
}
If(LEqual(Local0, 0x03)) {
Store(0x03, OB0)
}
If(LEqual(Local0, 0x11)) {
Store(0x11, OB0)
}
If(LEqual(Local0, 0x13)) {
Store(0x13, OB0)
}
}
Store(Zero, OB1)
Store(Zero, OB2)
Store(Zero, OB3)
Store(Package(0x03) {
Zero,
0x04,
Buffer(0x04) {0x1, 0x2, 0x3, 0x4 },
}, Local0)
Store(OB0, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(OB1, Index(DerefOf(Index(Local0, 0x02, )), One, ))
Store(OB2, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
Store(OB3, Index(DerefOf(Index(Local0, 0x02, )), 0x03, ))
Return(Local0)
}
Method(SDPS, 1) {
And(Arg0, 0x07, Local0)
If(IGDS) {
Store(WMIO, Local1)
If(LEqual(Local0, Local1)) {
Return(Package(0x02) {
Zero,
Zero,
})
}
Else {
Store(Zero, NSTE)
If(LEqual(Local0, One)) {
Or(0x0808, NSTE, NSTE)
}
If(LEqual(Local0, 0x02)) {
Or(0x0101, NSTE, NSTE)
}
If(LEqual(Local0, 0x03)) {
Or(0x0909, NSTE, NSTE)
}
If(LEqual(Local0, 0x04)) {
Or(0x0202, NSTE, NSTE)
}
If(LEqual(Local0, 0x05)) {
Or(0x0a0a, NSTE, NSTE)
}
If(LEqual(Local0, 0x06)) {
Or(0x0303, NSTE, NSTE)
}
If(LEqual(Local0, 0x07)) {
Or(0x0b0b, NSTE, NSTE)
}
Store(CADL, PADL)
If(LNot(LLess(OSYS, 0x07d1))) {
Notify(PCI0, Zero)
}
Else {
Notify(^^PCI0.OVGA, Zero)
}
Sleep(0x02ee)
Notify(^^PCI0.OVGA, 0x80)
Return(Package(0x02) {
Zero,
Zero,
})
}
}
Else {
Store(NCDD, Local1)
If(LEqual(Local0, Local1)) {
Return(Package(0x02) {
Zero,
Zero,
})
}
Else {
If(LEqual(Local0, One)) {
Store(One, ^^PCI0.PEGP.VGA.LCDA)
Store(Zero, ^^PCI0.PEGP.VGA.CRTA)
Store(Zero, ^^PCI0.PEGP.VGA.TV0A)
Store(Zero, ^^PCI0.PEGP.VGA.HDTV)
}
If(LEqual(Local0, 0x02)) {
Store(Zero, ^^PCI0.PEGP.VGA.LCDA)
Store(One, ^^PCI0.PEGP.VGA.CRTA)
Store(Zero, ^^PCI0.PEGP.VGA.TV0A)
Store(Zero, ^^PCI0.PEGP.VGA.HDTV)
}
If(LEqual(Local0, 0x03)) {
Store(One, ^^PCI0.PEGP.VGA.LCDA)
Store(One, ^^PCI0.PEGP.VGA.CRTA)
Store(Zero, ^^PCI0.PEGP.VGA.TV0A)
Store(Zero, ^^PCI0.PEGP.VGA.HDTV)
}
If(LEqual(Local0, 0x04)) {
Store(Zero, ^^PCI0.PEGP.VGA.LCDA)
Store(Zero, ^^PCI0.PEGP.VGA.CRTA)
Store(One, ^^PCI0.PEGP.VGA.TV0A)
Store(Zero, ^^PCI0.PEGP.VGA.HDTV)
}
If(LEqual(Local0, 0x05)) {
Store(One, ^^PCI0.PEGP.VGA.LCDA)
Store(Zero, ^^PCI0.PEGP.VGA.CRTA)
Store(One, ^^PCI0.PEGP.VGA.TV0A)
Store(Zero, ^^PCI0.PEGP.VGA.HDTV)
}
If(LEqual(Local0, 0x06)) {
Store(Zero, ^^PCI0.PEGP.VGA.LCDA)
Store(One, ^^PCI0.PEGP.VGA.CRTA)
Store(One, ^^PCI0.PEGP.VGA.TV0A)
Store(Zero, ^^PCI0.PEGP.VGA.HDTV)
}
If(LEqual(Local0, 0x07)) {
Store(One, ^^PCI0.PEGP.VGA.LCDA)
Store(One, ^^PCI0.PEGP.VGA.CRTA)
Store(One, ^^PCI0.PEGP.VGA.TV0A)
Store(Zero, ^^PCI0.PEGP.VGA.HDTV)
}
If(LNot(LLess(OSYS, 0x07d1))) {
Notify(PCI0, Zero)
}
Else {
Notify(^^PCI0.PEGP.VGA, Zero)
}
Sleep(0x02ee)
Notify(^^PCI0.PEGP.VGA, 0x80)
Return(Package(0x02) {
Zero,
Zero,
})
}
}
}
Method(SMCE, 3) {
Store(Zero, Local1)
Store(Zero, Local2)
If(Arg0) {
Or(Local1, One, Local1)
}
Else {
And(Local1, 0xfe, Local1)
}
If(Arg1) {
Or(Local1, ShiftRight(And(Local1, 0x8000, ), 0x09, ), Local1)
Or(Local2, ShiftRight(And(Local2, 0x7000, ), 0x0c, ), Local2)
}
Else {
And(Local1, 0xbf, Local1)
}
If(Arg2) {
Or(Local1, 0x80, Local1)
}
Else {
And(Local1, 0x7f, Local1)
}
Return(Package(0x02) {
Zero,
Zero,
})
}
Method(GBBT) {
Store(Package(0x03) {
Zero,
0x80,
Buffer(0x80) {0x31, 0x1, 0x9b, 0x1, 0xff, 0x1, 0x63, 0x2, 0xae, 0x1, 0x64, 0x2, 0x9d, 0x1, 0xb6, 0x1, 0xb7, 0x1, 0x65, 0x2, 0x66, 0x2, 0x67, 0x2, 0x68, 0x2, 0xff, 0xff, 0xe4, 0x20, 0xe6, 0x20, 0x42, 0x21, 0x70, 0x21, 0x8d, 0x21, 0x8e, 0x21, 0x8f, 0x21, 0x90, 0x21, 0x91, 0x21, 0x92, 0x21, 0x93, 0x21, 0x0, 0x0 },
}, Local0)
Return(Local0)
}
Method(GHKS) {
Acquire(^^PCI0.LPC.EC0.MUT1, 0xffff)
Store(Package(0x03) {
Zero,
0x04,
Buffer(0x04) { },
}, Local0)
Store(^^PCI0.LPC.EC0.GSHK(), Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Release(^^PCI0.LPC.EC0.MUT1)
Return(Local0)
}
Method(SHKS, 1) {
Acquire(^^PCI0.LPC.EC0.MUT1, 0xffff)
^^PCI0.LPC.EC0.SSHK(Arg0)
Release(^^PCI0.LPC.EC0.MUT1)
Return(Package(0x02) {
Zero,
Zero,
})
}
Method(HKFR) {
Acquire(^^PCI0.LPC.EC0.MUT1, 0xffff)
Store(Package(0x03) {
Zero,
0x04,
Buffer(0x04) { },
}, Local0)
If(ECOK) {
Store(^^PCI0.LPC.EC0.QBHK, Local1)
}
Release(^^PCI0.LPC.EC0.MUT1)
If(LEqual(Local1, 0x0d)) {
Store(0x31, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(One, Index(DerefOf(Index(Local0, 0x02, )), One, ))
}
If(LEqual(Local1, One)) {
Store(0x9b, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(One, Index(DerefOf(Index(Local0, 0x02, )), One, ))
}
If(LEqual(Local1, 0x04)) {
If(IGDS) {
Store(Zero, Local3)
Store(0xae, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(One, Index(DerefOf(Index(Local0, 0x02, )), One, ))
If(LOr(LEqual(^^PCI0.OVGA.CADL, 0x0100), LEqual(^^PCI0.OVGA.CAL2, 0x0100))) {
Or(Local3, 0x02, Local3)
}
If(LOr(LEqual(^^PCI0.OVGA.CADL, 0x0400), LEqual(^^PCI0.OVGA.CAL2, 0x0400))) {
Or(Local3, One, Local3)
}
If(LOr(LEqual(^^PCI0.OVGA.CADL, 0x0300), LEqual(^^PCI0.OVGA.CAL2, 0x0300))) {
Or(Local3, 0x10, Local3)
}
Store(Local3, Index(DerefOf(Index(Local0, 0x02, )), 0x03, ))
Store(Zero, Local3)
If(LOr(LEqual(^^PCI0.OVGA.NADL, 0x0100), LEqual(^^PCI0.OVGA.NDL2, 0x0100))) {
Or(Local3, 0x02, Local3)
}
If(LOr(LEqual(^^PCI0.OVGA.NADL, 0x0400), LEqual(^^PCI0.OVGA.NDL2, 0x0400))) {
Or(Local3, One, Local3)
}
If(LOr(LEqual(^^PCI0.OVGA.NADL, 0x0300), LEqual(^^PCI0.OVGA.NDL2, 0x0300))) {
Or(Local3, 0x10, Local3)
}
Store(Local3, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
^^PCI0.OVGA.GHDS(Zero)
}
Else {
TRAP(TRTI, 0x0b)
Sleep(0x64)
Store(NSTE, Local3)
Store(And(Local3, One, ), ^^PCI0.PEGP.VGA.LCDA)
Store(ShiftRight(And(Local3, 0x02, ), One, ), ^^PCI0.PEGP.VGA.CRTA)
Store(ShiftRight(And(Local3, 0x10, ), 0x04, ), ^^PCI0.PEGP.VGA.HDTV)
Notify(^^PCI0.PEGP.VGA, 0x80)
Sleep(0x64)
Store(0xae, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(One, Index(DerefOf(Index(Local0, 0x02, )), One, ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
Or(ShiftLeft(And(NSTE, 0x03, ), Zero, ), DerefOf(Index(DerefOf(Index(Local0, 0x02, )), 0x02, )), Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
Or(ShiftLeft(And(NSTE, 0x10, ), Zero, ), DerefOf(Index(DerefOf(Index(Local0, 0x02, )), 0x02, )), Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), 0x03, ))
Or(ShiftLeft(And(CSTE, 0x03, ), Zero, ), DerefOf(Index(DerefOf(Index(Local0, 0x02, )), 0x03, )), Index(DerefOf(Index(Local0, 0x02, )), 0x03, ))
Or(ShiftLeft(And(CSTE, 0x10, ), Zero, ), DerefOf(Index(DerefOf(Index(Local0, 0x02, )), 0x03, )), Index(DerefOf(Index(Local0, 0x02, )), 0x03, ))
}
}
If(LEqual(Local1, 0x06)) {
Store(0x9d, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(One, Index(DerefOf(Index(Local0, 0x02, )), One, ))
}
If(LEqual(Local1, 0x07)) {
If(LNot(LLess(OSYS, 0x07d6))) {
If(IGDS) {
Notify(^^PCI0.OVGA.DD03, 0x87)
}
Else {
Notify(^^PCI0.PEGP.VGA.LCD, 0x87)
}
}
Else {
^^PCI0.BRXP(0x02)
}
Sleep(0x32)
Store(0xb6, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(One, Index(DerefOf(Index(Local0, 0x02, )), One, ))
}
If(LEqual(Local1, 0x08)) {
If(LNot(LLess(OSYS, 0x07d6))) {
If(IGDS) {
Notify(^^PCI0.OVGA.DD03, 0x86)
}
Else {
Notify(^^PCI0.PEGP.VGA.LCD, 0x86)
}
}
Else {
^^PCI0.BRXP(One)
}
Sleep(0x32)
Store(0xb7, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(One, Index(DerefOf(Index(Local0, 0x02, )), One, ))
}
Return(Local0)
}
Method(GHKF) {
Return(HKFR())
}
Method(SHKF, 1) {
And(Arg0, 0xff, Local1)
And(Arg0, 0xff00, Local3)
ShiftRight(Local3, 0x08, Local2)
Store(Package(0x03) {
Zero,
0x04,
Buffer(0x04) { },
}, Local0)
Store(Local1, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), One, ))
If(LEqual(Arg0, 0x01ae)) {
If(IGDS) {
Store(Zero, Local3)
Store(0xae, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(One, Index(DerefOf(Index(Local0, 0x02, )), One, ))
If(LOr(LEqual(^^PCI0.OVGA.CADL, 0x0100), LEqual(^^PCI0.OVGA.CAL2, 0x0100))) {
Or(Local3, 0x02, Local3)
}
If(LOr(LEqual(^^PCI0.OVGA.CADL, 0x0400), LEqual(^^PCI0.OVGA.CAL2, 0x0400))) {
Or(Local3, One, Local3)
}
If(LOr(LEqual(^^PCI0.OVGA.CADL, 0x0300), LEqual(^^PCI0.OVGA.CAL2, 0x0300))) {
Or(Local3, 0x10, Local3)
}
Store(Local3, Index(DerefOf(Index(Local0, 0x02, )), 0x03, ))
Store(Zero, Local3)
If(LOr(LEqual(^^PCI0.OVGA.NADL, 0x0100), LEqual(^^PCI0.OVGA.NDL2, 0x0100))) {
Or(Local3, 0x02, Local3)
}
If(LOr(LEqual(^^PCI0.OVGA.NADL, 0x0400), LEqual(^^PCI0.OVGA.NDL2, 0x0400))) {
Or(Local3, One, Local3)
}
If(LOr(LEqual(^^PCI0.OVGA.NADL, 0x0300), LEqual(^^PCI0.OVGA.NDL2, 0x0300))) {
Or(Local3, 0x10, Local3)
}
Store(Local3, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
^^PCI0.OVGA.GHDS(Zero)
}
Else {
TRAP(TRTI, 0x0b)
Sleep(0x64)
Store(NSTE, Local3)
Store(And(Local3, One, ), ^^PCI0.PEGP.VGA.LCDA)
Store(ShiftRight(And(Local3, 0x02, ), One, ), ^^PCI0.PEGP.VGA.CRTA)
Store(ShiftRight(And(Local3, 0x10, ), 0x04, ), ^^PCI0.PEGP.VGA.HDTV)
Notify(^^PCI0.PEGP.VGA, 0x80)
Sleep(0x64)
Store(0xae, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(One, Index(DerefOf(Index(Local0, 0x02, )), One, ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
Or(ShiftLeft(And(NSTE, 0x03, ), Zero, ), DerefOf(Index(DerefOf(Index(Local0, 0x02, )), 0x02, )), Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
Or(ShiftLeft(And(NSTE, 0x10, ), Zero, ), DerefOf(Index(DerefOf(Index(Local0, 0x02, )), 0x02, )), Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), 0x03, ))
Or(ShiftLeft(And(CSTE, 0x03, ), Zero, ), DerefOf(Index(DerefOf(Index(Local0, 0x02, )), 0x03, )), Index(DerefOf(Index(Local0, 0x02, )), 0x03, ))
Or(ShiftLeft(And(CSTE, 0x10, ), Zero, ), DerefOf(Index(DerefOf(Index(Local0, 0x02, )), 0x03, )), Index(DerefOf(Index(Local0, 0x02, )), 0x03, ))
}
}
Return(Local0)
}
Method(GBBS) {
Store("HP\x20WMI\x20Command\x200xB\x20\x28BIOS\x20Read\x29", Debug)
Store(One, ^^PCI0.LPC.EC0.NQLB)
Store(Package(0x03) {
Zero,
0x04,
Buffer(0x04) {0x1, 0x0, 0x0, 0x0 },
}, Local0)
Return(Local0)
}
Method(GBBV) {
Acquire(^^PCI0.LPC.EC0.MUT1, 0xffff)
Store(Package(0x03) {
Zero,
0x04,
Buffer(0x04) { },
}, Local0)
If(ECOK) {
Store(^^PCI0.LPC.EC0.QBBB, Local1)
Store(Zero, ^^PCI0.LPC.EC0.QBBB)
}
If(LEqual(Local1, 0x03)) {
Store(0xe4, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(0x20, Index(DerefOf(Index(Local0, 0x02, )), One, ))
}
If(LEqual(Local1, 0x04)) {
Store(0x42, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
If(LEqual(BTND, Zero)) {
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
Else {
Store(0x02, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
}
If(LEqual(Local1, 0x05)) {
Store(0xe6, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(0x20, Index(DerefOf(Index(Local0, 0x02, )), One, ))
If(LEqual(BTND, Zero)) {
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
Else {
Store(0x02, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
}
If(LEqual(Local1, 0x10)) {
Store(0x70, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
}
If(LEqual(Local1, 0x20)) {
Store(0x8d, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
If(LEqual(BTND, Zero)) {
Store(One, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
Else {
Store(0x03, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
}
If(LEqual(Local1, 0x21)) {
Store(0x8e, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
If(LEqual(BTND, Zero)) {
Store(One, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
Else {
Store(0x03, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
}
If(LEqual(Local1, 0x22)) {
Store(0x8f, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
If(LEqual(BTND, Zero)) {
Store(One, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
Else {
Store(0x03, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
}
If(LEqual(Local1, 0x23)) {
Store(0x90, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
If(LEqual(BTND, Zero)) {
Store(One, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
Else {
Store(0x03, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
}
If(LEqual(Local1, 0x24)) {
Store(0x91, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
If(LEqual(BTND, Zero)) {
Store(One, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
Else {
Store(0x03, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
}
If(LEqual(Local1, 0x25)) {
Store(0x92, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
If(LEqual(BTND, Zero)) {
Store(One, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
Else {
Store(0x03, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
}
If(LEqual(Local1, 0x26)) {
Store(0x93, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
If(LEqual(BTND, Zero)) {
Store(One, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
Else {
Store(0x03, Index(DerefOf(Index(Local0, 0x02, )), 0x02, ))
}
}
Release(^^PCI0.LPC.EC0.MUT1)
Return(Local0)
}
Method(GBNS) {
Store(Zero, Local0)
If(ECOK) {
Store(^^PCI0.LPC.EC0.BBDA, Local0)
}
If(Local0) {
Store(Package(0x03) {
Zero,
0x04,
Zero,
}, Local1)
}
Else {
Store(Package(0x03) {
Zero,
0x04,
One,
}, Local1)
}
Return(Local1)
}
Method(SBNS, 1) {
Store(Arg0, Local0)
If(Local0) {
Store(Zero, ^^PCI0.LPC.EC0.BBDA)
}
Else {
Store(One, ^^PCI0.LPC.EC0.BBDA)
}
Return(Package(0x02) {
Zero,
Zero,
})
}
Method(GDIM) {
Store(Zero, Local0)
Store(Package(0x03) {
Zero,
0x04,
Zero,
}, Local1)
If(ECOK) {
Store(^^PCI0.LPC.EC0.ADIM, Local0)
}
If(LEqual(Local0, Zero)) {
Store(Package(0x03) {
Zero,
0x04,
Zero,
}, Local1)
}
Else {
If(LEqual(Local0, One)) {
Store(Package(0x03) {
Zero,
0x04,
One,
}, Local1)
}
}
Return(Local1)
}
Method(SDIM, 1) {
If(And(Arg0, 0xff, )) {
Store(One, Local0)
}
Else {
Store(Zero, Local0)
}
If(ECOK) {
Store(Local0, ^^PCI0.LPC.EC0.ADIM)
}
Return(Package(0x02) {
Zero,
Zero,
})
}
Method(SMAT) {
Store(Zero, Local0)
Store(0x02, Local1)
If(ECOK) {
Store(^^PCI0.LPC.EC0.SMTD, Local0)
}
If(LEqual(Local0, 0x03)) {
Store(0x02, Local1)
}
Else {
Store(One, Local1)
}
If(LEqual(Local0, 0xff)) {
Store(0x02, Local1)
}
Store(One, Local1)
Store(Package(0x03) {
Zero,
0x04,
Buffer(0x04) {0x2, 0x0, 0x0, 0x0 },
}, Local2)
Store(Local1, Index(DerefOf(Index(Local2, 0x02, )), Zero, ))
Return(Local2)
}
Method(GMSR) {
Store(MSRA, Local0)
Store(Package(0x03) {
Zero,
0x04,
Buffer(0x04) {0x0, 0x0, 0x0, 0x0 },
}, Local1)
Store(Local0, Index(DerefOf(Index(Local1, 0x02, )), Zero, ))
Return(Local1)
}
Method(SMSR, 1) {
Store(Arg0, Local0)
Store(Local0, MSRA)
Return(Package(0x02) {
Zero,
Zero,
})
}
Method(GWDI) {
Store(One, WAOK)
Store(One, WA40)
TRAP(TRTI, 0x1f)
Store(Package(0x03) {
Zero,
0x80,
Buffer(0x80) { },
}, Local0)
Store(Zero, Local1)
Add(Local1, And(WAB0, One, ), Local1)
Add(Local1, ShiftRight(And(WAB0, 0x02, ), One, ), Local1)
Store(Zero, Local2)
Store(One, 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, ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), 0x04, ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), 0x05, ))
Store(Local1, Index(DerefOf(Index(Local0, 0x02, )), 0x06, ))
Store(Local1, Index(DerefOf(Index(Local0, 0x02, )), 0x07, ))
Add(Local2, 0x10, Local2)
If(And(WAB0, One, )) {
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, Zero, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, One, ), ))
Store(WLD0, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x02, ), ))
Store(WLD1, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x03, ), ))
Store(WLD2, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x04, ), ))
Store(WLD3, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x05, ), ))
Store(WLD4, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x06, ), ))
Store(WLD5, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x07, ), ))
Store(WLD6, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x08, ), ))
Store(WLD7, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x09, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x0a, ), ))
Store(WAB1, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x0b, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x0c, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x0d, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x0e, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x0f, ), ))
Add(Local2, 0x10, Local2)
}
If(And(WAB0, 0x02, )) {
Store(One, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, Zero, ), ))
Store(One, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, One, ), ))
Store(WBD0, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x02, ), ))
Store(WBD1, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x03, ), ))
Store(WBD2, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x04, ), ))
Store(WBD3, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x05, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x06, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x07, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x08, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x09, ), ))
Store(One, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x0a, ), ))
Store(WAB2, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x0b, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x0c, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x0d, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x0e, ), ))
Store(Zero, Index(DerefOf(Index(Local0, 0x02, )), Add(Local2, 0x0f, ), ))
Add(Local2, 0x10, Local2)
}
Return(Local0)
}
Method(SWDS, 1) {
Store(Arg0, Local0)
And(Local0, 0x00ff0000, Local1)
ShiftRight(Local1, 0x10, Local1)
And(Local0, 0xff000000, Local2)
ShiftRight(Local2, 0x18, Local2)
If(LNot(LEqual(Local1, 0xff))) {
Or(0x0c, WAB1, WAB1)
Or(0x0c, WAB2, WAB2)
Or(0x0c, WAB3, WAB3)
}
If(LEqual(Local1, 0xfe)) {
If(LEqual(Local2, One)) {
Store(0x08, WAB4)
}
Else {
Store(Zero, WAB4)
}
Store(0x08, WAB5)
TRAP(TRTI, 0x20)
Store(0x05, WEID)
Store(Zero, WMED)
Notify(WMID, 0x80)
}
Else {
If(LEqual(Local1, 0xff)) {
Store(WAB1, Local3)
And(Local3, 0x08, Local3)
ShiftRight(Local3, 0x03, Local3)
If(LNot(LEqual(Local3, Local2))) {
^^PCI0.LPC.EC0._Q15()
}
}
Else {
If(LEqual(Local1, Zero)) {
If(LEqual(Local2, One)) {
Store(One, WAB4)
}
Else {
Store(Zero, WAB4)
}
Store(One, WAB5)
TRAP(TRTI, 0x20)
Store(0x05, WEID)
Store(Zero, WMED)
Notify(WMID, 0x80)
}
If(LEqual(Local1, One)) {
If(LEqual(Local2, One)) {
Store(0x02, WAB4)
}
Else {
Store(Zero, WAB4)
}
Store(0x02, WAB5)
TRAP(TRTI, 0x20)
Store(0x05, WEID)
Store(Zero, WMED)
Notify(WMID, 0x80)
}
}
}
Return(Package(0x02) {
Zero,
Zero,
})
}
Method(GTFR) {
Store(Package(0x03) {
Zero,
0x80,
Buffer(0x80) { },
}, Local0)
Store(0x82, Local2)
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
If(LEqual(VTST, One)) {
Store(One, Local2)
}
Else {
Store(Zero, Local2)
}
Store(Local2, Index(DerefOf(Index(Local0, 0x02, )), One, ))
Return(Local0)
}
Method(_WED, 1) {
Concatenate(WEID, WMED, Local0)
Return(Local0)
}
Name(WQAE, Buffer(0x08a9) {0x46, 0x4f, 0x4d, 0x42, 0x1, 0x0, 0x0, 0x0, 0x99, 0x8, 0x0, 0x0, 0x8a, 0x3a, 0x0, 0x0, 0x44, 0x53, 0x0, 0x1, 0x1a, 0x7d, 0xda, 0x54, 0x98, 0x4b, 0x9c, 0x0, 0x1, 0x6, 0x18, 0x42, 0x10, 0x13, 0x10, 0x22, 0x21, 0x4, 0x12, 0x1, 0xa1, 0xc8, 0x2c, 0xc, 0x86, 0x10, 0x38, 0x2e, 0x84, 0x1c, 0x40, 0x88, 0x59, 0x50, 0x8, 0x21, 0x10, 0xea, 0x4f, 0x20, 0xbf, 0x2, 0x10, 0x3a, 0x14, 0x20, 0x53, 0x80, 0x41, 0x1, 0x4e, 0x11, 0x44, 0xd0, 0xab, 0x0, 0x9b, 0x2, 0x4c, 0xa, 0xb0, 0x28, 0x40, 0xbb, 0x0, 0xcb, 0x2, 0x74, 0xb, 0x90, 0xe, 0x4b, 0x44, 0x82, 0xa3, 0xc4, 0x80, 0xa3, 0x74, 0x62, 0xb, 0x37, 0x6c, 0xf0, 0x42, 0x51, 0x34, 0x83, 0x28, 0x9, 0x2a, 0x17, 0xe0, 0x1b, 0x41, 0xe0, 0xe5, 0xa, 0x90, 0x3c, 0x1, 0x69, 0x16, 0x60, 0x58, 0x80, 0x75, 0x1, 0xb2, 0x87, 0x40, 0xa5, 0xe, 0x1, 0x25, 0x67, 0x8, 0xa8, 0x1, 0xb4, 0x3a, 0x1, 0xe1, 0x57, 0x3a, 0x25, 0x24, 0x41, 0x38, 0x63, 0x15, 0x8f, 0xaf, 0x59, 0x34, 0x3d, 0x27, 0x39, 0xc7, 0x90, 0xe3, 0x71, 0xa1, 0x7, 0xc1, 0x!
5, 0x78, 0x18, 0x6, 0x1d, 0xb2, 0x22, 0x6b, 0x80, 0xc1, 0x58, 0x18, 0xb, 0x75, 0x31, 0x6a, 0xd4, 0x48, 0xd9, 0x80, 0xc, 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, 0x6, 0x3b, 0x88, 0xc3, 0x38, 0xe6, 0xc8, 0x9, 0x3c, 0xa1, 0x23, 0x3d, 0xf2, 0xc2, 0xe6, 0x29, 0xd4, 0x18, 0xcd, 0x41, 0x11, 0xb8, 0xd0, 0x18, 0x19, 0x10, 0xf2, 0x3c, 0x7e, 0x8d, 0xc4, 0x4, 0x76, 0x2f, 0xc0, 0x1a, 0xa6, 0x60, 0x1b, 0x9b, 0x98, 0xfe, 0xff, 0x10, 0x47, 0x1e, 0xa3, 0xad, 0xb9, 0xb, 0x29, 0x4c, 0x8c, 0x28, 0xc1, 0xe2, 0x55, 0x3c, 0xd, 0xa1, 0x3c, 0x29, 0x84, 0x8a, 0x54, 0x19, 0x8a, 0x86, 0x1e, 0xa5, 0x42, 0x1, 0xce, 0xe6, 0x21, 0xdc, 0x1a, 0x41, 0x85, 0x10, 0x2b, 0x52, 0xac, 0xf6, 0x7, 0x41, 0x42, 0x2e, 0x5b, 0xc7, 0x7, 0x47, 0x1a, 0xd, 0xea, 0x50, 0xe0, 0xb1, 0x7b, 0xdc, 0xcf, 0x2, 0x3e, 0x8, 0x9!
c, 0x5b, 0x90, 0xa3, 0x3b, 0x8b, 0x47, 0x85, 0x83, 0xf6, 0xf0,!
0xd8, 0x6d, 0xc0, 0x67, 0x8, 0x9f, 0x2, 0xf0, 0xae, 0x1, 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, 0x8, 0x8e, 0xc7, 0x97, 0x5, 0x36, 0xe1, 0x4, 0x96, 0x3f, 0x8, 0xd4, 0xc8, 0xc, 0xed, 0x51, 0x9e, 0x56, 0xcc, 0x90, 0xcf, 0xc, 0x26, 0xb0, 0x58, 0x8, 0x29, 0x80, 0xd0, 0x78, 0xc0, 0x7f, 0x3, 0x78, 0xc0, 0xf0, 0xcd, 0xc0, 0xf3, 0x35, 0xc1, 0xb0, 0x10, 0x32, 0xb2, 0xa, 0x8f, 0x87, 0x8e, 0xc2, 0xd7, 0x83, 0xc3, 0x39, 0xad, 0x78, 0x26, 0x18, 0xe, 0x42, 0x27, 0x9, 0x8b, 0x1a, 0x36, 0x3d, 0x39, 0xf0, 0x43, 0x3, 0xbb, 0x19, 0x9c, 0xc1, 0x23, 0x80, 0x47, 0x72, 0x42, 0xfe, 0x98, 0x78, 0x60, 0xf0, 0x1, 0xf1, 0xde, 0xa7, 0x4c, 0x46, 0x70, 0xa6, 0x6, 0xf4, 0x71, 0xc0, 0xff, 0xff, 0xa1, 0xf0, 0x21, 0x7a, 0x7c, 0xa7, 0x7c, 0xbc, 0x96, 0x0, 0x21, 0x59, 0xe3, 0x84, 0x7e, 0x87, 0xf0, 0xf1, 0xc3, 0x47, 0x16, 0x47, 0x84, 0x90, 0x93, 0x53, 0x0, 0x1a, 0xf8, 0x74!
, 0xcf, 0x2e, 0xc2, 0xe9, 0x7a, 0x52, 0xe, 0x34, 0xc, 0x3a, 0x4e, 0x70, 0x9c, 0x7, 0xc0, 0x31, 0x4e, 0xf8, 0xe7, 0x2, 0xf8, 0x3, 0xe4, 0xa7, 0x8c, 0x57, 0x8c, 0x4, 0x8e, 0x39, 0x42, 0xf4, 0xb9, 0xc6, 0x23, 0xc4, 0xc2, 0x3f, 0x55, 0x14, 0x3e, 0x10, 0x32, 0x46, 0x70, 0x1, 0x7a, 0x8c, 0xc0, 0x37, 0xe0, 0x18, 0xd1, 0x47, 0x9, 0xae, 0xfe, 0xa0, 0x41, 0x7, 0x88, 0xfb, 0xff, 0xf, 0x10, 0x3e, 0xa8, 0x7, 0x8, 0x7c, 0xa3, 0x1f, 0x3d, 0xd0, 0xe3, 0xb2, 0xe8, 0xf3, 0x80, 0x8c, 0x9f, 0x68, 0x34, 0x2f, 0x7e, 0x3a, 0xe0, 0x87, 0xf, 0xf0, 0x80, 0x7a, 0x48, 0x38, 0x50, 0xcc, 0xb4, 0x39, 0xe8, 0xb3, 0xcb, 0xa1, 0x63, 0x87, 0xb, 0xfe, 0x13, 0x8, 0xb8, 0xe4, 0x1d, 0xc2, 0x40, 0x31, 0x62, 0xfc, 0x39, 0xc8, 0xa7, 0x30, 0xf0, 0xff, 0xff, 0x4f, 0x61, 0xb8, 0x11, 0xf0, 0x20, 0xaf, 0x5, 0x9f, 0xb6, 0xa8, 0x74, 0x18, 0xd4, 0x81, 0xb, 0x30, 0x9, 0x1a, 0xe1, 0x59, 0xa2, 0x36, 0x8, 0x1, 0xbf, 0x4d, 0xbc, 0x6d, 0xf9, 0x16, 0x10, 0xe7, 0xc8, 0x7b, 0x3b, 0x70, 0x11, 0x8c, 0x8, 0xa7, 0x1d, 0xca, 0x63, 0x88,!
0x18, 0x23, 0xca, 0xe3, 0x96, 0x51, 0xde, 0xb6, 0x5e, 0x0, 0xe2, 0x9d,!
0xe5, 0xf3, 0x96, 0x31, 0x82, 0x47, 0x7e, 0xe0, 0x62, 0x62, 0xdf, 0x13, 0xfa, 0xb9, 0xf9, 0xc0, 0x5, 0x38, 0xfb, 0xff, 0x1f, 0xb8, 0x0, 0xe, 0x5, 0x3d, 0xc, 0xa1, 0x87, 0xe1, 0xa9, 0x9c, 0xcb, 0x13, 0xe5, 0xa9, 0x44, 0x8c, 0x1a, 0x26, 0xea, 0x33, 0x94, 0x2f, 0x1a, 0x3e, 0x10, 0x81, 0xef, 0xcc, 0x5, 0xfc, 0xfe, 0xff, 0x7, 0x22, 0x38, 0x2, 0xcf, 0x34, 0xa0, 0xf4, 0x39, 0x3, 0x81, 0x9c, 0x8a, 0xf, 0x35, 0xc0, 0x48, 0xf4, 0xab, 0xc1, 0x27, 0x1a, 0x2a, 0x13, 0x6, 0x75, 0xa8, 0x1, 0x4c, 0x5e, 0x61, 0x9e, 0x46, 0xcf, 0xf9, 0x59, 0xc6, 0xa7, 0x1a, 0x1f, 0x4a, 0x8d, 0x63, 0x88, 0x97, 0x99, 0x87, 0x1a, 0x1f, 0xb, 0x5e, 0x49, 0x7d, 0xa8, 0x31, 0x54, 0x9c, 0x87, 0x1a, 0x9f, 0x48, 0x3, 0x45, 0x7d, 0xb3, 0x79, 0xb6, 0x31, 0x7a, 0x7c, 0xdf, 0x50, 0xd, 0xf1, 0x50, 0xc3, 0x84, 0xbd, 0x23, 0xf4, 0xc1, 0xf5, 0xa1, 0x6, 0x1c, 0xff, 0xff, 0x43, 0xd, 0xc0, 0xff, 0xff, 0xff, 0xa1, 0x6, 0x70, 0x74, 0x34, 0x80, 0x73, 0x64, 0xc4, 0x1d, 0xd, 0xc0, 0x75, 0x28, 0x5, 0xe, 0x47, 0x3, 0xe0, 0x71, 0x14, 0!
x2, 0xf3, 0x85, 0xc6, 0x47, 0x21, 0x60, 0xf1, 0xff, 0x3f, 0xa, 0xe1, 0x64, 0x9f, 0x83, 0x50, 0x42, 0x8f, 0x42, 0x80, 0x54, 0xc8, 0xa7, 0x88, 0x67, 0x1f, 0x5f, 0x7e, 0x1e, 0x8, 0x22, 0xbc, 0xe6, 0xfb, 0x14, 0xe4, 0x43, 0xbe, 0x8f, 0x42, 0xc, 0xc6, 0x50, 0xbe, 0x6, 0xf9, 0x28, 0xc4, 0xa0, 0x5e, 0x83, 0x7c, 0xdf, 0x37, 0xc8, 0x91, 0x18, 0xfb, 0x99, 0xc0, 0x47, 0x21, 0x26, 0xed, 0x28, 0x4, 0x28, 0xfc, 0xff, 0x1f, 0x85, 0x0, 0xfe, 0xff, 0xff, 0x8f, 0x42, 0x80, 0xb3, 0x0, 0x47, 0x3, 0xd0, 0x4d, 0xeb, 0x51, 0x8, 0xbc, 0x77, 0x96, 0xd3, 0x3e, 0x1, 0x9f, 0x85, 0x0, 0xb3, 0xff, 0xff, 0xb3, 0x10, 0x30, 0x3b, 0xa, 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, 0xc, 0xf5, 0x2e, 0x14, 0xf4, 0x8d, 0xdc, 0xa3, 0x8c, 0x19, 0x3f, 0xc4, 0xf3, 0x90, 0x21, 0x9e, 0x85, 0x0, 0x76, 0xfd, 0xff, 0xcf, 0x42, 0x0, 0xff, 0xff, 0xff, 0x47, 0x3, 0xf8, 0x2f, 0x0, 0x9f, 0x85,!
0x80, 0xe7, 0x9, 0xe0, 0x41, 0xdb, 0x67, 0x21, 0x80, 0x33, 0x87, 0xcb,!
0xf3, 0xf, 0x7a, 0x60, 0xef, 0x11, 0x9e, 0xf5, 0x71, 0xbf, 0x5e, 0x7a, 0xe0, 0xf, 0x5, 0xcf, 0x42, 0xc, 0xeb, 0x98, 0x7c, 0x16, 0x62, 0x10, 0x2f, 0x9a, 0x86, 0x78, 0xe1, 0xf4, 0x61, 0xc0, 0xff, 0x7f, 0xbc, 0xc0, 0xaf, 0x9c, 0x6, 0xa, 0x12, 0xe8, 0x59, 0x8, 0x60, 0xfc, 0xff, 0xff, 0x2c, 0x4, 0x90, 0x71, 0x8d, 0x3a, 0xb, 0x1, 0xcb, 0x63, 0xc, 0x3b, 0xad, 0x24, 0xf8, 0xff, 0x3f, 0xb, 0x1, 0x9f, 0x5c, 0x46, 0xe, 0x42, 0x98, 0x88, 0x6f, 0x5, 0x1f, 0x33, 0x1, 0xa5, 0xe7, 0xa0, 0x17, 0x77, 0x63, 0x4, 0x7e, 0x91, 0x78, 0xcc, 0x64, 0x47, 0x4d, 0xc3, 0x3c, 0xb, 0x19, 0xef, 0x30, 0xce, 0xe0, 0x9, 0xde, 0x93, 0x7f, 0x16, 0x62, 0x60, 0xc7, 0x18, 0xec, 0x51, 0xc8, 0xa0, 0x6, 0x8f, 0x1d, 0x22, 0x4c, 0xa0, 0x67, 0x21, 0x16, 0x6a, 0xdc, 0x3a, 0x7f, 0xf8, 0x2c, 0x4, 0xbc, 0xff, 0xff, 0x67, 0x21, 0xc0, 0xd3, 0x61, 0xc3, 0x67, 0xd, 0xf0, 0xc, 0xdf, 0xa3, 0x3a, 0x87, 0xc7, 0x63, 0xe0, 0x92, 0x55, 0xc7, 0x9, 0x83, 0xe5, 0x5e, 0xa7, 0x6c, 0x9c, 0x61, 0xe8, 0x20, 0xac, 0xe, 0x48, 0xc3, 0xc1, 0xdc!
, 0x43, 0xe, 0xe2, 0x7c, 0xd8, 0x40, 0xad, 0x8, 0x4e, 0xc7, 0x24, 0xf, 0xda, 0x5a, 0x28, 0xa4, 0x80, 0x46, 0x3, 0x32, 0xbc, 0x33, 0x9f, 0x96, 0x28, 0x88, 0x1, 0x7d, 0x2, 0xb2, 0x8d, 0x73, 0x0, 0x6a, 0x2f, 0x9a, 0x2, 0x39, 0xda, 0x60, 0xf4, 0x5f, 0x16, 0xe8, 0x6c, 0x7c, 0xd, 0xe0, 0x1a, 0x20, 0x74, 0x30, 0x30, 0xb4, 0xd5, 0xdc, 0x62, 0x50, 0x60, 0xc6, 0x7f, 0x70, 0x31, 0x81, 0x8f, 0x2e, 0xf8, 0xb3, 0x0, 0xee, 0xff, 0x3f, 0x5c, 0x8f, 0xf6, 0x5d, 0xa0, 0xea, 0xc9, 0xea, 0x8a, 0x60, 0x75, 0x97, 0x17, 0x8, 0x33, 0x32, 0x41, 0x7d, 0x7, 0x2, 0x50, 0x0, 0xf9, 0xe, 0xe0, 0xa3, 0xd3, 0x73, 0x0, 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, 0x6, 0xb4, 0x9, 0x6, 0xf5, 0x3d, 0x8, 0xd6, 0x90, 0xf9, 0x58, 0x7c, 0x67, 0xc0, 0x4d, 0x19, 0x8c, 0x73, 0x62, 0xd7, 0x4, 0xb, 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, 0x0, 0xfc, 0xff, 0xbf, 0x5a, 0xc1, 0xbe, 0x6b, 0x80, 0xe7, 0x26, 0xe4, 0xbb, 0x6, 0xc0, 0xda, 0xff, 0xff, 0x5d, 0x3, 0xfe, 0x35, 0xc1, 0x77, 0xd, 0xe0, 0x3d, 0x74, 0xdf, 0x35, 0x80, 0x6b, 0xf6, 0xbb, 0x6, 0xea, 0x18, 0x60, 0x85, 0x77, 0xd, 0x68, 0xb7, 0xb4, 0x57, 0xb4, 0x87, 0x2a, 0x6b, 0xba, 0x6c, 0xa0, 0xd4, 0x5c, 0x36, 0x0, 0x6d, 0xff, 0xff, 0xcb, 0x6, 0xb0, 0x91, 0x32, 0x61, 0x54, 0xf8, 0x9, 0x53, 0x10, 0x4f, 0xd8, 0xc1, 0x2e, 0x1b, 0xa0, 0x88, 0x71, 0xd9, 0x0, 0xfd, 0xd8, 0x5e, 0x36, 0x80, 0xc1, 0x3d, 0x81, 0xdf, 0x36, 0x80, 0x37, 0xa4, 0x6f, 0x1b, 0xc0, 0xf4, 0xff, 0xf, 0x31, 0xff, 0x6d, 0x3, 0xc5, 0x61, 0x95, 0xb7, 0xd, 0x88, 0x87, 0x77, 0x46, 0x60, 0x55, 0xd7, 0xd, 0x94, 0x9e, 0xeb, 0x6, 0x40, 0x2, 0x31, 0x13, 0x46, 0xc5, 0x9f, 0x30, 0x5, 0xf1, 0x84, 0x1d, 0xed, 0xba, 0x1, 0x8a, 0x20, 0xd7, 0xd, 0xd0, 0xcf, 0xeb, 0x94, 0xc1, 0xfa, 0xff, 0xbf, 0x6e, 0x60, 0x2f!
, 0xa, 0x98, 0xfb, 0x6, 0xf0, 0x86, 0xe5, 0xf7, 0xd, 0xc0, 0xc7, 0xe5, 0x1b, 0x73, 0xdf, 0x0, 0x6c, 0xfe, 0xff, 0xef, 0x1b, 0x0, 0x13, 0x2e, 0xa, 0xb8, 0xfb, 0x6, 0xf0, 0xbe, 0x48, 0xfb, 0xbe, 0x1, 0x5c, 0x83, 0x49, 0xf8, 0xff, 0xdf, 0xf5, 0xe8, 0xb, 0x40, 0x51, 0x60, 0x50, 0x43, 0xf2, 0x99, 0x0, 0x3f, 0xba, 0x83, 0x3b, 0xa6, 0xe0, 0x4c, 0x12, 0x1c, 0x6a, 0xe0, 0xbe, 0x2, 0x3c, 0xcd, 0x9f, 0xd6, 0x7b, 0xbd, 0xe7, 0xf1, 0x24, 0x10, 0x92, 0x1d, 0x61, 0x7c, 0x6c, 0x43, 0x9c, 0xc, 0xc8, 0x41, 0xdc, 0x47, 0xf7, 0x88, 0xef, 0xe1, 0x86, 0x49, 0xe0, 0x21, 0x33, 0x34, 0xe, 0x8d, 0x1d, 0x86, 0xef, 0x2, 0xc1, 0xe, 0xe2, 0x30, 0xce, 0xd7, 0x4, 0x9e, 0xd0, 0x83, 0xc0, 0x7b, 0xf9, 0xa3, 0x41, 0xf1, 0x77, 0x3, 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, 0!
x37, 0x42, 0xc4, 0x10, 0xaf, 0xc, 0x81, 0x5e, 0x12, 0xc2, 0x7, 0x79, 0x!
ec, 0x89, 0xd3, 0xfe, 0x20, 0x88, 0xf8, 0x17, 0x82, 0x3c, 0x80, 0x28, 0xd2, 0x68, 0x50, 0xe7, 0x6, 0x8f, 0xdd, 0x87, 0x10, 0x5f, 0xfe, 0x7d, 0xb8, 0xf7, 0xe8, 0xe, 0xee, 0x45, 0xfe, 0xa0, 0x3d, 0x3c, 0x76, 0xc2, 0xf0, 0x41, 0x3, 0x8e, 0x6b, 0x40, 0x4d, 0xff, 0x19, 0x1, 0x2c, 0x97, 0x7f, 0xf8, 0xe3, 0xf1, 0x3d, 0xc1, 0xf3, 0x39, 0xe1, 0x4, 0x96, 0x3f, 0x8, 0xd4, 0x71, 0x84, 0xcf, 0xf3, 0x85, 0xc3, 0x90, 0xcf, 0x2, 0x87, 0xc5, 0xc4, 0xa, 0xf8, 0xff, 0x9f, 0x4c, 0xd8, 0x78, 0xc0, 0x7f, 0xf, 0x79, 0xfd, 0xf7, 0xcd, 0xc0, 0xf3, 0x35, 0xc1, 0x88, 0x10, 0x72, 0x32, 0x1e, 0x34, 0xe8, 0xd9, 0xf8, 0x80, 0xe1, 0xeb, 0x9, 0x3b, 0x77, 0x70, 0x51, 0xe7, 0xe, 0xd4, 0xd1, 0xc1, 0xa7, 0x6, 0x76, 0xb3, 0xc1, 0x1c, 0xb7, 0xf9, 0x59, 0x3, 0xfc, 0x23, 0x84, 0x7f, 0x7b, 0xf0, 0xbc, 0x7c, 0x65, 0x78, 0x75, 0x48, 0xe0, 0x90, 0x23, 0x44, 0x8f, 0xcb, 0x23, 0xc4, 0x9c, 0x6f, 0x30, 0x43, 0x4, 0xd7, 0x59, 0x0, 0x1c, 0x43, 0x4, 0x3e, 0x67, 0x4c, 0x9f, 0x71, 0x60, 0xfe, 0xff, 0xcf, 0x38, 0xec, 0xd2, 0xc3!
, 0x7, 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, 0xf, 0x52, 0x33, 0x7a, 0x67, 0x38, 0x4, 0x76, 0xb3, 0xc2, 0x1d, 0x38, 0x3c, 0x4, 0x3e, 0x80, 0x56, 0x27, 0x47, 0x4e, 0x3f, 0xa7, 0x84, 0x1b, 0x3e, 0xbf, 0xa, 0x60, 0xe, 0x41, 0x38, 0x85, 0x36, 0x7d, 0x6a, 0x34, 0x6a, 0xd5, 0xa0, 0x4c, 0x8d, 0x32, 0xd, 0x6a, 0xf5, 0xa9, 0xd4, 0x98, 0xb1, 0xb, 0x8b, 0x3, 0xbe, 0x2, 0x74, 0x1c, 0xb0, 0x3c, 0xa, 0x1d, 0xc1, 0xc8, 0x9b, 0x40, 0x20, 0xe, 0xb, 0x42, 0x23, 0xbd, 0x71, 0x4, 0x62, 0xc9, 0xef, 0x2f, 0x81, 0x58, 0xee, 0x3, 0x45, 0x20, 0xe, 0x68, 0x2, 0x9c, 0xaa, 0x0, 0xa7, 0xaf, 0x1, 0x81, 0x38, 0x32, 0x8, 0x15, 0xfa, 0x35, 0x13, 0x88, 0x63, 0x82, 0xd0, 0x50, 0x3e, 0x40, 0x98, 0xf4, 0x17, 0x80, 0x0, 0x89, 0x11, 0x10, 0x16, 0xee, 0xe5, 0x20, 0x10, 0x4b, 0x7b, 0x2d, 0x8, 0xc4, 0x42, 0xac, 0x80, 0xb0, 0xb8, 0x20, 0x34, 0x9c, 0x16, 0x10, 0x26, 0xc9, !
0xc, 0x8, 0xb, 0x4, 0x42, 0xe5, 0x3f, 0xd3, 0x4, 0x62, 0x91, 0x6e, 0x0,!
0xe9, 0xba, 0x5, 0xe2, 0x20, 0x7a, 0x40, 0x98, 0xc, 0x3f, 0x20, 0x2c, 0x34, 0x8, 0x8d, 0xf6, 0x6c, 0x10, 0x20, 0x31, 0x4, 0xc2, 0xe2, 0x3b, 0x2, 0x61, 0xe2, 0xdf, 0x44, 0x2, 0x71, 0x4a, 0x4b, 0x10, 0x37, 0xa5, 0x1, 0x6, 0x11, 0x90, 0x93, 0x6a, 0x2, 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, 0x8, 0x22, 0x20, 0x27, 0x7b, 0x52, 0x9, 0xc8, 0x39, 0x41, 0x74, 0x4, 0x20, 0xba, 0x80, 0x58, 0x3e, 0x10, 0x1, 0x39, 0x96, 0x2f, 0x20, 0x16, 0x12, 0x44, 0x40, 0x4e, 0xf4, 0xf3, 0x9, 0x44, 0xe2, 0x81, 0x68, 0x10, 0xe4, 0x3f, 0x21, 0x20, 0x67, 0x4, 0x11, 0x10, 0x79, 0x12, 0x5, 0x21, 0x9a, 0x3e, 0x62, 0x2, 0x71, 0x6a, 0x10, 0x9a, 0xec, 0x27, 0x14, 0x84, 0xfc, 0xff, 0x1 })
}
Device(QBTN) {
Name(_HID, 0x320cd041)
Name(_UID, One)
Method(_STA) {
If(LEqual(^^PCI0.TPOS, 0x40)) {
Return(0x0f)
}
Else {
Return(Zero)
}
}
Method(GHID) {
If(LEqual(SVIM, 0x04)) {
Notify(QBTN, 0x02)
}
Return(Buffer(One) {0x1 })
}
}
Device(DBTN) {
Name(_HID, 0x320cd041)
Name(_UID, 0x02)
Method(_STA) {
If(LEqual(^^PCI0.TPOS, 0x40)) {
Return(0x0f)
}
Else {
Return(Zero)
}
}
Method(GHID) {
If(LEqual(SVIM, 0x05)) {
Notify(DBTN, 0x02)
}
Return(Buffer(One) {0x2 })
}
}
Device(MBTN) {
Name(_HID, 0x320cd041)
Name(_UID, 0x03)
Method(_STA) {
If(LEqual(^^PCI0.TPOS, 0x40)) {
Return(0x0f)
}
Else {
Return(Zero)
}
}
Method(GHID) {
If(LEqual(SVIM, 0x03)) {
Notify(MBTN, 0x02)
}
Return(Buffer(One) {0x3 })
}
}
Device(EBTN) {
Name(_HID, 0x320cd041)
Name(_UID, 0x04)
Method(_STA) {
If(LEqual(^^PCI0.TPOS, 0x40)) {
Return(0x0f)
}
Else {
Return(Zero)
}
}
Method(GHID) {
If(LEqual(SVIM, 0x10)) {
Notify(EBTN, 0x02)
}
Return(Buffer(One) {0x4 })
}
}
Device(PBTN) {
Name(_HID, 0x320cd041)
Name(_UID, 0x06)
Method(_STA) {
If(LEqual(^^PCI0.TPOS, 0x40)) {
Return(0x0f)
}
Else {
Return(Zero)
}
}
Method(GHID) {
If(LEqual(SVIM, 0x06)) {
Notify(PBTN, 0x02)
}
Return(Buffer(One) {0x6 })
}
}
Device(VBTN) {
Name(_HID, 0x320cd041)
Name(_UID, 0x07)
Method(_STA) {
If(LEqual(^^PCI0.TPOS, 0x40)) {
Return(0x0f)
}
Else {
Return(Zero)
}
}
Method(GHID) {
If(LEqual(SVIM, 0x09)) {
Notify(VBTN, 0x02)
}
Return(Buffer(One) {0x7 })
}
}
Device(TBTN) {
Name(_HID, 0x320cd041)
Name(_UID, 0x08)
Method(_STA) {
If(LEqual(^^PCI0.TPOS, 0x40)) {
Return(0x0f)
}
Else {
Return(Zero)
}
}
Method(GHID) {
If(LEqual(SVIM, 0x12)) {
Notify(TBTN, 0x02)
}
Return(Buffer(One) {0x8 })
}
}
}
}
/*
HPET: Length=56, Revision=1, Checksum=78,
OEMID=HPQOEM, OEM Table ID=SLIC-MPC, OEM Revision=0x1,
Creator ID=MSFT, Creator Revision=0x1000013
*/
/*
APIC: Length=108, Revision=2, Checksum=16,
OEMID=HPQOEM, OEM Table ID=SLIC-MPC, OEM Revision=0x1,
Creator ID=MSFT, Creator Revision=0x1000013
*/
/*
MCFG: Length=60, Revision=1, Checksum=30,
OEMID=HPQOEM, OEM Table ID=SLIC-MPC, OEM Revision=0x1,
Creator ID=MSFT, Creator Revision=0x1000013
*/
/*
ASF!: Length=165, Revision=32, Checksum=127,
OEMID=HPQOEM, OEM Table ID=SLIC-MPC, OEM Revision=0x1,
Creator ID=MSFT, Creator Revision=0x1000013
*/
/*
SLIC: Length=374, Revision=1, Checksum=155,
OEMID=HPQOEM, OEM Table ID=SLIC-MPC, OEM Revision=0x6040000,
Creator ID= LTP, Creator Revision=0x1
*/
/*
BOOT: Length=40, Revision=1, Checksum=14,
OEMID=HPQOEM, OEM Table ID=SLIC-MPC, OEM Revision=0x1,
Creator ID=MSFT, Creator Revision=0x1000013
*/
/*
SSDT: Length=1621, Revision=1, Checksum=85,
OEMID=PmRef, OEM Table ID=CpuPm, OEM Revision=0x3000,
Creator ID=INTL, Creator Revision=0x20051117
*/
>Release-Note:
>Audit-Trail:
From: Jukka Ruohonen <jruohonen@iki.fi>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: port-amd64/42895
Date: Tue, 16 Mar 2010 11:10:59 +0200
Can you try the following patch (for -current)?
It is a slight variation of the patch you already tested. As such, it is
still very much an ugly hack.
This tries to rule out the possibility that AcpiGetObjectInfo() -- called
before any device attachments during the making of the device nodes --
references EC's operation regions before acpiec(4) has attached.
Index: acpi.c
===================================================================
RCS file: /cvsroot/src/sys/dev/acpi/acpi.c,v
retrieving revision 1.161
diff -u -p -r1.161 acpi.c
--- acpi.c 16 Mar 2010 08:02:01 -0000 1.161
+++ acpi.c 16 Mar 2010 08:58:16 -0000
@@ -171,6 +171,7 @@ static const char * const acpi_ignored_i
"PNP0B00", /* AT RTC is handled internally */
"PNP0C01", /* No "System Board" driver */
"PNP0C02", /* No "PnP motherboard register resources" driver */
+ "PNP0C09", /* Early attach of ACPI EC */
"PNP0C0B", /* No need for "ACPI fan" driver */
"PNP0C0F", /* ACPI PCI link devices are handled internally */
"INT0800", /* Intel HW RNG is handled internally */
@@ -193,6 +194,8 @@ static char acpi_supported_states[3 * 6
* Prototypes.
*/
static void acpi_build_tree(struct acpi_softc *);
+static ACPI_STATUS acpi_attach_ec(ACPI_HANDLE, uint32_t,
+ void *, void **);
static ACPI_STATUS acpi_make_devnode(ACPI_HANDLE, uint32_t,
void *, void **);
@@ -433,8 +436,9 @@ acpi_attach(device_t parent, device_t se
{
struct acpi_softc *sc = device_private(self);
struct acpibus_attach_args *aa = aux;
- ACPI_STATUS rv;
ACPI_TABLE_HEADER *rsdt;
+ ACPI_HANDLE handle;
+ ACPI_STATUS rv;
aprint_naive("\n");
aprint_normal(": Intel ACPICA %08x\n", ACPI_CA_VERSION);
@@ -516,8 +520,18 @@ acpi_attach(device_t parent, device_t se
AcpiFormatException(rv));
return;
}
+
acpi_active = 1;
+ /*
+ * Attach EC. XXX: A hack.
+ */
+ rv = AcpiGetHandle(ACPI_ROOT_OBJECT, "\\_SB_", &handle);
+
+ if (ACPI_SUCCESS(rv))
+ (void)AcpiWalkNamespace(ACPI_TYPE_ANY, handle, 100,
+ acpi_attach_ec, sc, NULL);
+
/* Our current state is "awake". */
sc->sc_sleepstate = ACPI_STATE_S0;
@@ -858,6 +872,57 @@ acpi_rescan_capabilities(struct acpi_sof
#undef ACPI_STA_DEV_VALID
/*
+ * XXX: A hack.
+ */
+static ACPI_STATUS
+acpi_attach_ec(ACPI_HANDLE handle, uint32_t level,
+ void *context, void **status)
+{
+ struct acpi_softc *sc = context;
+ struct acpi_attach_args aa;
+ struct acpi_devnode *ad;
+ ACPI_DEVICE_INFO *devinfo;
+ ACPI_OBJECT_TYPE type;
+ ACPI_INTEGER hid;
+ ACPI_STATUS rv;
+
+ rv = AcpiGetType(handle, &type);
+
+ if (ACPI_FAILURE(rv))
+ return AE_OK;
+
+ if (type != ACPI_TYPE_DEVICE)
+ return AE_OK;
+
+ rv = acpi_eval_integer(handle, "_HID", &hid);
+
+ if (hid != 0x090cd041) /* Raw EISA ID. */
+ return AE_OK;
+
+ rv = AcpiGetObjectInfo(handle, &devinfo);
+
+ if (ACPI_FAILURE(rv))
+ return AE_OK;
+
+ ad = malloc(sizeof(*ad), M_ACPI, M_NOWAIT | M_ZERO);
+
+ if (ad == NULL)
+ return AE_NO_MEMORY;
+
+ ad->ad_parent = sc->sc_dev;
+ ad->ad_devinfo = devinfo;
+ ad->ad_handle = handle;
+ ad->ad_type = type;
+
+ aa.aa_node = ad;
+
+ ad->ad_device = config_found_ia(sc->sc_dev,
+ "acpinodebus", &aa, acpi_print);
+
+ return AE_ERROR; /* Found one. */
+}
+
+/*
* acpi_make_devnode:
*
* Make an ACPI devnode.
State-Changed-From-To: open->feedback
State-Changed-By: jruoho@NetBSD.org
State-Changed-When: Wed, 20 Apr 2011 05:56:37 +0000
State-Changed-Why:
I applied some fixes for these issues in 5.99.X -current. Can you see
whether these made any difference? (Unfortunately, without the actual
hardware, issues like this are extremely difficult to debug, leaving
just some vague ideas on what might be wrong.)
From: Rhialto <rhialto@falu.nl>
To: gnats-bugs@NetBSD.org
Cc: port-amd64-maintainer@NetBSD.org, netbsd-bugs@NetBSD.org,
gnats-admin@NetBSD.org, jruoho@NetBSD.org, rhialto@falu.nl
Subject: Re: port-amd64/42895 (Weird ACPI messages every 30 seconds on the
console)
Date: Sun, 5 Jun 2011 22:24:52 +0200
On Wed 20 Apr 2011 at 05:56:38 +0000, jruoho@NetBSD.org wrote:
> Synopsis: Weird ACPI messages every 30 seconds on the console
>
> State-Changed-From-To: open->feedback
> State-Changed-By: jruoho@NetBSD.org
> State-Changed-When: Wed, 20 Apr 2011 05:56:37 +0000
> State-Changed-Why:
>
> I applied some fixes for these issues in 5.99.X -current. Can you see
> whether these made any difference? (Unfortunately, without the actual
> hardware, issues like this are extremely difficult to debug, leaving
> just some vague ideas on what might be wrong.)
I have to admit I just looked at the issue again a few days ago.
I used a recent -current (maybe about a week old now) and I re-adapted
my config file from GENERIC. This added
acpicpu* at cpu? # ACPI CPU (including frequency scaling)
and this silences the messages!
(If this is because everything works now, or the failing attempt is not
tried any more, I don't know yet).
However, twice now the kernel with this option has frozen completely on
me, within minutes after boot and login.
I also noticed that estd (for dynamic frequency scaling) didn't like to
work any more. It claimed not to recognize the cpu. I had to re-add
options ENHANCED_SPEEDSTEP
even though there also is
est0 at cpu0 # Intel Enhanced SpeedStep (non-ACPI)
This is probably unrelated, though.
-Olaf.
--
___ Olaf 'Rhialto' Seibert -- There's no point being grown-up if you
\X/ rhialto/at/xs4all.nl -- can't be childish sometimes. -The 4th Doctor
From: Jukka Ruohonen <jruohonen@iki.fi>
To: gnats-bugs@NetBSD.org
Cc: rhialto@falu.nl
Subject: Re: port-amd64/42895 (Weird ACPI messages every 30 seconds on the console)
Date: Mon, 6 Jun 2011 08:45:27 +0300
On Sun, Jun 05, 2011 at 08:30:04PM +0000, Rhialto wrote:
> I used a recent -current (maybe about a week old now) and I re-adapted
> my config file from GENERIC.
Can you try with vanilla sources and normal GENERIC? This because the
options ENHANCED_SPEEDSTEP no longer does anything. Post the dmesg.
> However, twice now the kernel with this option has frozen completely on
> me, within minutes after boot and login.
Just a freeze? No panic, no traces, nothing?
> I also noticed that estd (for dynamic frequency scaling) didn't like to
> work any more. It claimed not to recognize the cpu.
No errors were printed or anything?
From: Rhialto <rhialto@falu.nl>
To: gnats-bugs@NetBSD.org
Cc: port-amd64-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
netbsd-bugs@NetBSD.org, rhialto@falu.nl
Subject: Re: port-amd64/42895 (Weird ACPI messages every 30 seconds on the
console)
Date: Tue, 7 Jun 2011 21:10:03 +0200
On Mon 06 Jun 2011 at 05:50:04 +0000, Jukka Ruohonen wrote:
> Can you try with vanilla sources and normal GENERIC? This because the
> options ENHANCED_SPEEDSTEP no longer does anything. Post the dmesg.
I cvs updated after receiving your email and built new GENERIC and
VARGAZ kernels. dmesg for GENERIC included below.
I tested them for a while yesterday and all was well: no repeated acpi
error messages (just during autoconfig: grep for "ACPI Error:"). No freeze.
But: I just turned the laptop on a few moments ago, and it froze mere
seconds after booting into single user (GENERIC). No X yet, so it was
clear that there were no messages. The next boot worked a bit longer
but froze while sitting idle for several minutes at the xdm login screen.
> > However, twice now the kernel with this option has frozen completely on
> > me, within minutes after boot and login.
>
> Just a freeze? No panic, no traces, nothing?
Nothing :-(
> > I also noticed that estd (for dynamic frequency scaling) didn't like to
> > work any more. It claimed not to recognize the cpu.
>
> No errors were printed or anything?
This may have been pilot error; upon re-testing I managed to boot
"netbsd" (being the 5.1 kernel) even while I was pretty sure I typed
"boot netbsd.bak2". Whatever it was, the error message, when I got it,
was "estd: Cannot guess CPU-scaling technology. (maybe you are missing
some kernel-option?". Hence my adding the option.
GENERIC dmesg, followed by VARGAZ dmesg:
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010, 2011
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 5.99.52 (GENERIC) #1: Mon Jun 6 21:08:54 CEST 2011
rhialto@vargaz.falu.nl:/home/rhialto/tmp/obj.amd64/sys/arch/amd64/compile/GENERIC
total memory = 3998 MB
avail memory = 3860 MB
timecounter: Timecounters tick every 10.000 msec
RTC BIOS diagnostic error 0x80<clock_battery>
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
Hewlett-Packard Compaq Presario CQ71 Notebook PC (Rev 1)
mainbus0 (root)
cpu0 at mainbus0 apid 0: Pentium(R) Dual-Core CPU T4300 @ 2.10GHz, id 0x1067a
cpu1 at mainbus0 apid 1: Pentium(R) Dual-Core CPU T4300 @ 2.10GHz, id 0x1067a
ioapic0 at mainbus0 apid 4: pa 0xfec00000, version 20, 24 pins
acpi0 at mainbus0: Intel ACPICA 20110211
acpi0: X/RSDT: OemId <HPQOEM,SLIC-MPC,00000001>, AslId < ,01000013>
acpi0: SCI interrupting at int 9
timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000
acpiec0 at acpi0 (EC0, PNP0C09-1): io 0x62,0x66
MCFG (PNP0C02) at acpi0 not configured
acpibut0 at acpi0 (PWRB, PNP0C0C): ACPI Power Button
acpilid0 at acpi0 (LID0, PNP0C0D): ACPI Lid Switch
acpibut1 at acpi0 (SLPB, PNP0C0E): ACPI Sleep Button
acpiacad0 at acpi0 (ACAD, ACPI0003): ACPI AC Adapter
acpibat0 at acpi0 (BAT0, PNP0C0A-1): ACPI Battery
acpibat0: Hewlett-Packard LION rechargeable battery
acpibat0: model number Primary, serial number
acpibat0: granularity: low->warn 0.010 Ah, warn->full 0.025 Ah
acpivga0 at acpi0 (OVGA): ACPI Display Adapter
acpiout0 at acpivga0 (DD01, 0x0100): ACPI Display Output Device
acpiout1 at acpivga0 (DD02, 0x0320): ACPI Display Output Device
acpiout2 at acpivga0 (DD03, 0x0410): ACPI Display Output Device
acpiout2: brightness levels: 0 10 20 30 40 50 60 70 80 90 100
acpiout3 at acpivga0 (DD04, 0x0004): ACPI Display Output Device
acpiout4 at acpivga0 (DD05, 0x0005): ACPI Display Output Device
acpivga0: unknown output device acpiout0
acpivga0: unknown output device acpiout1
acpivga0: unknown output device acpiout2
acpivga0: unknown output device acpiout3
acpivga0: unknown output device acpiout4
acpivga0: connected output devices:
acpivga0: 0x0400: Unknown Output Device, head 0
SYSR (PNP0C02) at acpi0 not configured
hpet0 at acpi0 (HPET, PNP0103): mem 0xfed00000-0xfed003ff irq 0,8
timecounter: Timecounter "hpet0" frequency 14318179 Hz quality 2000
attimer1 at acpi0 (TIMR, PNP0100): io 0x40-0x43,0x50-0x53
FWHD (INT0800) at acpi0 not configured
pckbc1 at acpi0 (KBC, PNP0303) (kbd port): io 0x60,0x64 irq 1
pckbc2 at acpi0 (MOUE, SYN1E08) (aux port): irq 12
acpiwmi0 at acpi0 (WMID, PNP0C14-0): ACPI WMI Interface
acpiwmibus at acpiwmi0 not configured
acpidalb0 at acpi0 (QBTN, PNP0C32-1): Direct Application Launch Button
acpidalb1 at acpi0 (DBTN, PNP0C32-2): Direct Application Launch Button
acpidalb2 at acpi0 (MBTN, PNP0C32-3): Direct Application Launch Button
acpidalb3 at acpi0 (EBTN, PNP0C32-4): Direct Application Launch Button
acpidalb4 at acpi0 (PBTN, PNP0C32-6): Direct Application Launch Button
acpidalb5 at acpi0 (VBTN, PNP0C32-7): Direct Application Launch Button
acpidalb6 at acpi0 (TBTN, PNP0C32-8): Direct Application Launch Button
acpitz0 at acpi0 (TZ01): cpu0 cpu1
ACPI Error: [\_PR_.CPU0._PPC] Namespace lookup failure, AE_NOT_FOUND (20110211/psargs-392)
ACPI Error: Method parse/execution failed [\CPUL] (Node 0xffff800007b2dec0), AE_NOT_FOUND (20110211/psparse-560)
ACPI Error: Method parse/execution failed [\_TZ_.TZ01.OTHD] (Node 0xffff800007b2c380), AE_NOT_FOUND (20110211/psparse-560)
ACPI Error: Method parse/execution failed [\_TZ_.TZ01._TMP] (Node 0xffff800007b2c540), AE_NOT_FOUND (20110211/psparse-560)
acpitz0: levels: hot 110.0 C, passive 135.0 C, passive cooling
ACPI Error: [\_PR_.CPU0._PPC] Namespace lookup failure, AE_NOT_FOUND (20110211/psargs-392)
ACPI Error: Method parse/execution failed [\CPUL] (Node 0xffff800007b2dec0), AE_NOT_FOUND (20110211/psparse-560)
ACPI Error: Method parse/execution failed [\_TZ_.TZ01.OTHD] (Node 0xffff800007b2c380), AE_NOT_FOUND (20110211/psparse-560)
ACPI Error: Method parse/execution failed [\_TZ_.TZ01._TMP] (Node 0xffff800007b2c540), AE_NOT_FOUND (20110211/psparse-560)
pckbd0 at pckbc1 (kbd slot)
pckbc1: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard
pms0 at pckbc1 (aux slot)
pms0: Synaptics touchpad version 6.5
pms0: Palm detect
pckbc1: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0: vendor 0x8086 product 0x2a40 (rev. 0x07)
agp0 at pchb0: detected 65532k stolen memory
agp0: aperture at 0xc0000000, size 0x10000000
vga0 at pci0 dev 2 function 0: vendor 0x8086 product 0x2a42 (rev. 0x07)
wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation), using wskbd0
wsmux1: connecting to wsdisplay0
i915drm0 at vga0: Mobile IntelM-BM-. GM45 Express Chipset
i915drm0: AGP at 0xc0000000 256MB
i915drm0: Initialized i915 1.6.0 20080730
vendor 0x8086 product 0x2a43 (miscellaneous display, revision 0x07) at pci0 dev 2 function 1 not configured
uhci0 at pci0 dev 26 function 0: vendor 0x8086 product 0x2937 (rev. 0x03)
uhci0: interrupting at ioapic0 pin 16
usb0 at uhci0: USB revision 1.0
uhci1 at pci0 dev 26 function 1: vendor 0x8086 product 0x2938 (rev. 0x03)
uhci1: interrupting at ioapic0 pin 21
usb1 at uhci1: USB revision 1.0
ehci0 at pci0 dev 26 function 7: vendor 0x8086 product 0x293c (rev. 0x03)
ehci0: interrupting at ioapic0 pin 19
ehci0: BIOS has given up ownership
ehci0: EHCI version 1.0
ehci0: companion controllers, 2 ports each: uhci0 uhci1
usb2 at ehci0: USB revision 2.0
hdaudio0 at pci0 dev 27 function 0: HD Audio Controller
hdaudio0: interrupting at ioapic0 pin 22
hdafg0 at hdaudio0: Sigmatel 92HD75B2X5
hdafg0: DAC00 2ch: Speaker [Built-In], HP Out [Jack]
hdafg0: ADC01 2ch: Mic In [Jack]
hdafg0: 2ch/2ch 44100Hz 48000Hz 88200Hz 96000Hz 192000Hz 16/16 20/32 24/32
audio0 at hdafg0: full duplex, playback, capture, independent
hdafg1 at hdaudio0: Intel G45 HDMI
hdafg1: HDMI00 8ch: Digital Out [Jack]
hdafg1: 8ch/0ch 48000Hz 16/16*
ppb0 at pci0 dev 28 function 0: vendor 0x8086 product 0x2940 (rev. 0x03)
ppb0: PCI Express 1.0 <Root Port of PCI-E Root Complex>
pci1 at ppb0 bus 2
pci1: i/o space, memory space enabled, rd/line, wr/inv ok
ath0 at pci1 dev 0 function 0: Atheros 9285
ath0: interrupting at ioapic0 pin 16
ath0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ath0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
ath0: mac 192.2 phy 14.0 radio 12.0
ppb1 at pci0 dev 28 function 1: vendor 0x8086 product 0x2942 (rev. 0x03)
ppb1: PCI Express 1.0 <Root Port of PCI-E Root Complex>
pci2 at ppb1 bus 3
pci2: i/o space, memory space enabled, rd/line, wr/inv ok
re0 at pci2 dev 0 function 0: RealTek 8100E/8101E/8102E/8102EL PCIe 10/100BaseTX (rev. 0x02)
re0: interrupting at ioapic0 pin 17
re0: Ethernet address 00:26:9e:ce:8c:54
re0: using 256 tx descriptors
rlphy0 at re0 phy 7: RTL8201L 10/100 media interface, rev. 1
rlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
uhci2 at pci0 dev 29 function 0: vendor 0x8086 product 0x2934 (rev. 0x03)
uhci2: interrupting at ioapic0 pin 20
usb3 at uhci2: USB revision 1.0
uhci3 at pci0 dev 29 function 1: vendor 0x8086 product 0x2935 (rev. 0x03)
uhci3: interrupting at ioapic0 pin 19
usb4 at uhci3: USB revision 1.0
uhci4 at pci0 dev 29 function 2: vendor 0x8086 product 0x2936 (rev. 0x03)
uhci4: interrupting at ioapic0 pin 16
usb5 at uhci4: USB revision 1.0
uhci5 at pci0 dev 29 function 3: vendor 0x8086 product 0x2939 (rev. 0x03)
uhci5: interrupting at ioapic0 pin 18
usb6 at uhci5: USB revision 1.0
ehci1 at pci0 dev 29 function 7: vendor 0x8086 product 0x293a (rev. 0x03)
ehci1: interrupting at ioapic0 pin 20
ehci1: BIOS has given up ownership
ehci1: EHCI version 1.0
ehci1: companion controllers, 2 ports each: uhci2 uhci3 uhci4 uhci5
usb7 at ehci1: USB revision 2.0
ppb2 at pci0 dev 30 function 0: vendor 0x8086 product 0x2448 (rev. 0x93)
pci3 at ppb2 bus 4
pci3: i/o space, memory space enabled
pcib0 at pci0 dev 31 function 0: vendor 0x8086 product 0x2919 (rev. 0x03)
ahcisata0 at pci0 dev 31 function 2: vendor 0x8086 product 0x2929
ahcisata0: interrupting at ioapic0 pin 19
ahcisata0: 64-bit DMA
ahcisata0: AHCI revision 1.2, 4 ports, 32 command slots, features 0xef22e0e0
atabus0 at ahcisata0 channel 0
atabus1 at ahcisata0 channel 1
atabus2 at ahcisata0 channel 4
atabus3 at ahcisata0 channel 5
ichsmb0 at pci0 dev 31 function 3: vendor 0x8086 product 0x2930 (rev. 0x03)
ichsmb0: interrupting at ioapic0 pin 18
iic0 at ichsmb0: I2C bus
vendor 0x8086 product 0x2932 (miscellaneous DASP, revision 0x03) at pci0 dev 31 function 6 not configured
isa0 at pcib0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker
sysbeep0 at pcppi0
attimer1: attached to pcppi0
acpicpu0 at cpu0: ACPI CPU
acpicpu0: C1: FFH, lat 1 us, pow 1000 mW
acpicpu0: C2: FFH, lat 1 us, pow 500 mW
acpicpu0: C3: FFH, lat 17 us, pow 250 mW, bus master check
acpicpu0: P0: FFH, lat 10 us, pow 35000 mW, 2100 MHz
acpicpu0: P1: FFH, lat 10 us, pow 23888 mW, 1600 MHz
acpicpu0: P2: FFH, lat 10 us, pow 15000 mW, 1200 MHz
acpicpu0: T0: HLT, lat 1 us, pow 0 mW, 100 %
acpicpu0: T1: HLT, lat 1 us, pow 0 mW, 88 %
acpicpu0: T2: HLT, lat 1 us, pow 0 mW, 76 %
acpicpu0: T3: HLT, lat 1 us, pow 0 mW, 64 %
acpicpu0: T4: HLT, lat 1 us, pow 0 mW, 52 %
acpicpu0: T5: HLT, lat 1 us, pow 0 mW, 40 %
acpicpu0: T6: HLT, lat 1 us, pow 0 mW, 28 %
acpicpu0: T7: HLT, lat 1 us, pow 0 mW, 16 %
coretemp0 at cpu0: thermal sensor, 1 C resolution
acpicpu1 at cpu1: ACPI CPU
coretemp1 at cpu1: thermal sensor, 1 C resolution
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
acpiacad0: AC adapter online.
uhub0 at usb0: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhub1 at usb1: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhub2 at usb2: vendor 0x8086 EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub2: 4 ports with 4 removable, self powered
uhub3 at usb3: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
uhub4 at usb4: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub4: 2 ports with 2 removable, self powered
uhub5 at usb5: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub5: 2 ports with 2 removable, self powered
uhub6 at usb6: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub6: 2 ports with 2 removable, self powered
uhub7 at usb7: vendor 0x8086 EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub7: 8 ports with 8 removable, self powered
ahcisata0 port 0: device present, speed: 3.0Gb/s
ahcisata0 port 1: device present, speed: 1.5Gb/s
wd0 at atabus0 drive 0
wd0: <WDC WD5000BEVT-60ZAT1>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd0(ahcisata0:0:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100) (using DMA)
atapibus0 at atabus1: 1 targets
cd0 at atapibus0 drive 0: <hp DVDRAM GT30L, KZQ9C343835, mP04> cdrom removable
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
cd0(ahcisata0:1:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100) (using DMA)
uvideo0 at uhub7 port 4 configuration 1 interface 0: SuYin HP Webcam-101, rev 2.00/1.22, addr 2
video0 at uvideo0: SuYin HP Webcam-101, rev 2.00/1.22, addr 2
Kernelized RAIDframe activated
pad0: outputs: 44100Hz, 16-bit, stereo
audio1 at pad0: half duplex, playback, capture
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
uhidev0 at uhub1 port 2 configuration 1 interface 0
uhidev0: vendor 0x13ba Generic USB K/B, rev 1.10/0.01, addr 2, iclass 3/1
ukbd0 at uhidev0
wskbd1 at ukbd0 mux 1
wskbd1: connecting to wsdisplay0
uhidev1 at uhub1 port 2 configuration 1 interface 1
uhidev1: vendor 0x13ba Generic USB K/B, rev 1.10/0.01, addr 2, iclass 3/1
uhidev1: 2 report ids
ums0 at uhidev1 reportid 1: 3 buttons and Z dir
wsmouse1 at ums0 mux 0
uhid0 at uhidev1 reportid 2: input=1, output=0, feature=0
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
-----
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010, 2011
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 5.99.52 (VARGAZSMALL) #3: Mon Jun 6 21:24:41 CEST 2011
rhialto@vargaz.falu.nl:/home/rhialto/tmp/obj.amd64/sys/arch/amd64/compile/VARGAZSMALL
total memory = 3998 MB
avail memory = 3866 MB
timecounter: Timecounters tick every 10.000 msec
RTC BIOS diagnostic error 0x80<clock_battery>
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
Hewlett-Packard Compaq Presario CQ71 Notebook PC (Rev 1)
mainbus0 (root)
cpu0 at mainbus0 apid 0: Pentium(R) Dual-Core CPU T4300 @ 2.10GHz, id 0x1067a
cpu1 at mainbus0 apid 1: Pentium(R) Dual-Core CPU T4300 @ 2.10GHz, id 0x1067a
ioapic0 at mainbus0 apid 4: pa 0xfec00000, version 20, 24 pins
acpi0 at mainbus0: Intel ACPICA 20110211
acpi0: X/RSDT: OemId <HPQOEM,SLIC-MPC,00000001>, AslId < ,01000013>
acpi0: SCI interrupting at int 9
timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000
acpiec0 at acpi0 (EC0, PNP0C09-1): io 0x62,0x66
MCFG (PNP0C02) [Motherboard Register Resources] at acpi0 not configured
acpibut0 at acpi0 (PWRB, PNP0C0C): ACPI Power Button
acpilid0 at acpi0 (LID0, PNP0C0D): ACPI Lid Switch
acpibut1 at acpi0 (SLPB, PNP0C0E): ACPI Sleep Button
acpiacad0 at acpi0 (ACAD, ACPI0003): ACPI AC Adapter
acpibat0 at acpi0 (BAT0, PNP0C0A-1): ACPI Battery
acpibat0: Hewlett-Packard LION rechargeable battery
acpibat0: model number Primary, serial number
acpibat0: granularity: low->warn 0.010 Ah, warn->full 0.025 Ah
acpivga0 at acpi0 (OVGA): ACPI Display Adapter
acpiout0 at acpivga0 (DD01, 0x0100): ACPI Display Output Device
acpiout1 at acpivga0 (DD02, 0x0320): ACPI Display Output Device
acpiout2 at acpivga0 (DD03, 0x0410): ACPI Display Output Device
acpiout2: brightness levels: 0 10 20 30 40 50 60 70 80 90 100
acpiout3 at acpivga0 (DD04, 0x0004): ACPI Display Output Device
acpiout4 at acpivga0 (DD05, 0x0005): ACPI Display Output Device
acpivga0: unknown output device acpiout0
acpivga0: unknown output device acpiout1
acpivga0: unknown output device acpiout2
acpivga0: unknown output device acpiout3
acpivga0: unknown output device acpiout4
acpivga0: connected output devices:
acpivga0: 0x0400: Unknown Output Device, head 0
SYSR (PNP0C02) [Motherboard Register Resources] at acpi0 not configured
hpet0 at acpi0 (HPET, PNP0103): mem 0xfed00000-0xfed003ff irq 0,8
timecounter: Timecounter "hpet0" frequency 14318179 Hz quality 2000
attimer0 at acpi0 (TIMR, PNP0100): io 0x40-0x43,0x50-0x53
FWHD (INT0800) [Intel Firmware Hub Device] at acpi0 not configured
pckbc0 at acpi0 (KBC, PNP0303) (kbd port): io 0x60,0x64 irq 1
pckbc1 at acpi0 (MOUE, SYN1E08) (aux port): irq 12
acpiwmi0 at acpi0 (WMID, PNP0C14-0): ACPI WMI Interface
acpiwmibus at acpiwmi0 not configured
acpidalb0 at acpi0 (QBTN, PNP0C32-1): Direct Application Launch Button
acpidalb1 at acpi0 (DBTN, PNP0C32-2): Direct Application Launch Button
acpidalb2 at acpi0 (MBTN, PNP0C32-3): Direct Application Launch Button
acpidalb3 at acpi0 (EBTN, PNP0C32-4): Direct Application Launch Button
acpidalb4 at acpi0 (PBTN, PNP0C32-6): Direct Application Launch Button
acpidalb5 at acpi0 (VBTN, PNP0C32-7): Direct Application Launch Button
acpidalb6 at acpi0 (TBTN, PNP0C32-8): Direct Application Launch Button
acpitz0 at acpi0 (TZ01): cpu0 cpu1
ACPI Error: [\_PR_.CPU0._PPC] Namespace lookup failure, AE_NOT_FOUND (20110211/psargs-392)
ACPI Error: Method parse/execution failed [\CPUL] (Node 0xffff800007b57bc0), AE_NOT_FOUND (20110211/psparse-560)
ACPI Error: Method parse/execution failed [\_TZ_.TZ01.OTHD] (Node 0xffff800007b56080), AE_NOT_FOUND (20110211/psparse-560)
ACPI Error: Method parse/execution failed [\_TZ_.TZ01._TMP] (Node 0xffff800007b56240), AE_NOT_FOUND (20110211/psparse-560)
acpitz0: levels: hot 110.0 C, passive 135.0 C, passive cooling
ACPI Error: [\_PR_.CPU0._PPC] Namespace lookup failure, AE_NOT_FOUND (20110211/psargs-392)
ACPI Error: Method parse/execution failed [\CPUL] (Node 0xffff800007b57bc0), AE_NOT_FOUND (20110211/psparse-560)
ACPI Error: Method parse/execution failed [\_TZ_.TZ01.OTHD] (Node 0xffff800007b56080), AE_NOT_FOUND (20110211/psparse-560)
ACPI Error: Method parse/execution failed [\_TZ_.TZ01._TMP] (Node 0xffff800007b56240), AE_NOT_FOUND (20110211/psparse-560)
acpi0: [MADT] LAPIC : CPU ID 1, LAPIC ID 0, FLAGS 0x01
acpi0: [MADT] LAPIC : CPU ID 2, LAPIC ID 1, FLAGS 0x01
acpi0: [MADT] LAPIC : CPU ID 3, LAPIC ID 0, FLAGS 0x00
acpi0: [MADT] LAPIC : CPU ID 4, LAPIC ID 0, FLAGS 0x00
acpi0: [MADT] I/O APIC : ID 4, GSI 0, ADDR 0xFEC00000
acpi0: [MADT] INTR OVERRIDE : BUS 0, IRQ 0, GSI 2, FLAGS 0x00
acpi0: [MADT] INTR OVERRIDE : BUS 0, IRQ 9, GSI 9, FLAGS 0x0D
acpi0: [FADT] FACS : 0x00000000B9F8F000
acpi0: [FADT] DSDT : 0x00000000B9FE5000
acpi0: [FADT] INT_MODEL : 0x0000000000000000
acpi0: [FADT] PM_PROFILE : 0x0000000000000002
acpi0: [FADT] SCI_INT : 0x0000000000000009
acpi0: [FADT] SMI_CMD : 0x00000000000000B2
acpi0: [FADT] ACPI_ENABLE : 0x00000000000000A0
acpi0: [FADT] ACPI_DISABLE : 0x00000000000000A1
acpi0: [FADT] S4BIOS_REQ : 0x0000000000000000
acpi0: [FADT] PSTATE_CNT : 0x0000000000000000
acpi0: [FADT] PM1a_EVT_BLK : 0x0000000000000400
acpi0: [FADT] PM1b_EVT_BLK : 0x0000000000000000
acpi0: [FADT] PM1a_CNT_BLK : 0x0000000000000404
acpi0: [FADT] PM1b_CNT_BLK : 0x0000000000000000
acpi0: [FADT] PM2_CNT_BLK : 0x0000000000000450
acpi0: [FADT] PM_TMR_BLK : 0x0000000000000408
acpi0: [FADT] GPE0_BLK : 0x0000000000000420
acpi0: [FADT] GPE1_BLK : 0x0000000000000000
acpi0: [FADT] PM1_EVT_LEN : 0x0000000000000004
acpi0: [FADT] PM1_CNT_LEN : 0x0000000000000002
acpi0: [FADT] PM2_CNT_LEN : 0x0000000000000001
acpi0: [FADT] PM_TMR_LEN : 0x0000000000000004
acpi0: [FADT] GPE0_BLK_LEN : 0x0000000000000010
acpi0: [FADT] GPE1_BLK_LEN : 0x0000000000000000
acpi0: [FADT] GPE1_BASE : 0x0000000000000000
acpi0: [FADT] CST_CNT : 0x0000000000000000
acpi0: [FADT] P_LVL2_LAT : 0x0000000000000065
acpi0: [FADT] P_LVL3_LAT : 0x00000000000003E9
acpi0: [FADT] FLUSH_SIZE : 0x0000000000000000
acpi0: [FADT] FLUSH_STRIDE : 0x0000000000000000
acpi0: [FADT] DUTY_OFFSET : 0x0000000000000001
acpi0: [FADT] DUTY_WIDTH : 0x0000000000000003
acpi0: [FADT] DAY_ALRM : 0x000000000000000D
acpi0: [FADT] MON_ALRM : 0x0000000000000000
acpi0: [FADT] CENTURY : 0x0000000000000000
acpi0: [FADT] IAPC_BOOT_ARCH : 0x0000000000000003
acpi0: [FADT] RESET_VALUE : 0x0000000000000049
acpi0: [FADT] WBINVD : 0x0000000000000001
acpi0: [FADT] WBINVD_FLUSH : 0x0000000000000000
acpi0: [FADT] PROC_C1 : 0x0000000000000004
acpi0: [FADT] P_LVL2_UP : 0x0000000000000000
acpi0: [FADT] PWR_BUTTON : 0x0000000000000000
acpi0: [FADT] SLP_BUTTON : 0x0000000000000020
acpi0: [FADT] FIX_RTC : 0x0000000000000000
acpi0: [FADT] RTC_S4 : 0x0000000000000080
acpi0: [FADT] TMR_VAL_EXT : 0x0000000000000000
acpi0: [FADT] DCK_CAP : 0x0000000000000000
acpi0: [FADT] RESET_REG_SUP : 0x0000000000000400
acpi0: [FADT] SEALED_CASE : 0x0000000000000000
acpi0: [FADT] HEADLESS : 0x0000000000000000
acpi0: [FADT] CPU_SW_SLP : 0x0000000000000000
acpi0: [FADT] PCI_EXP_WAK : 0x0000000000000000
acpi0: [FADT] PLATFORM_CLK : 0x0000000000008000
acpi0: [FADT] S4_RTC_STS : 0x0000000000000000
acpi0: [FADT] REMOTE_POWER : 0x0000000000000000
acpi0: [FADT] APIC_CLUSTER : 0x0000000000000000
acpi0: [FADT] APIC_PHYSICAL : 0x0000000000000000
acpi0: [\ ] HID - UID - STA 0xFFFFFFFF ADR -
acpi0: [CPU0] HID - UID - STA 0xFFFFFFFF ADR -
acpi0: [CPU1] HID - UID - STA 0xFFFFFFFF ADR -
acpi0: [CPU2] HID - UID - STA 0xFFFFFFFF ADR -
acpi0: [CPU3] HID - UID - STA 0xFFFFFFFF ADR -
acpi0: [_SB ] HID - UID - STA 0xFFFFFFFF ADR -
acpi0: [MCFG] HID PNP0C02 UID - STA 0xFFFFFFFF ADR -
acpi0: [PWRB] HID PNP0C0C UID - STA 0xFFFFFFFF ADR -
acpi0: [LID0] HID PNP0C0D UID - STA 0xFFFFFFFF ADR -
acpi0: [SLPB] HID PNP0C0E UID - STA 0xFFFFFFFF ADR -
acpi0: [ACAD] HID ACPI0003 UID - STA 0x0000000F ADR -
acpi0: [BAT0] HID PNP0C0A UID 1 STA 0x0000000F ADR -
acpi0: [PCI0] HID PNP0A08 UID - STA 0xFFFFFFFF ADR 0x0000000000000000
acpi0: [OVGA] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000020000
acpi0: [DD01] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000100
acpi0: [DD02] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000320
acpi0: [DD03] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000410
acpi0: [DD04] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000004
acpi0: [DD05] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000005
acpi0: [PEGP] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000010000
acpi0: [VGA ] HID - UID - STA 0x0000000F ADR 0x0000000000000000
acpi0: [CRT ] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000100
acpi0: [LCD ] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000118
acpi0: [HDMI] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000121
acpi0: [LANC] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000190000
acpi0: [P32 ] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001E0000
acpi0: [LPC ] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001F0000
acpi0: [LNKA] HID PNP0C0F UID 1 STA 0x0000000B ADR -
acpi0: [LNKB] HID PNP0C0F UID 2 STA 0x0000000B ADR -
acpi0: [LNKC] HID PNP0C0F UID 3 STA 0x0000000B ADR -
acpi0: [LNKD] HID PNP0C0F UID 4 STA 0x0000000B ADR -
acpi0: [LNKE] HID PNP0C0F UID 5 STA 0x0000000B ADR -
acpi0: [LNKF] HID PNP0C0F UID 6 STA 0x0000000B ADR -
acpi0: [LNKG] HID PNP0C0F UID 7 STA 0x0000000B ADR -
acpi0: [LNKH] HID PNP0C0F UID 8 STA 0x00000009 ADR -
acpi0: [SYSR] HID PNP0C02 UID - STA 0xFFFFFFFF ADR -
acpi0: [DMAC] HID PNP0200 UID - STA 0xFFFFFFFF ADR -
acpi0: [RTC ] HID PNP0B00 UID - STA 0xFFFFFFFF ADR -
acpi0: [HPET] HID PNP0103 UID - STA 0x0000000F ADR -
acpi0: [PIC ] HID PNP0000 UID - STA 0xFFFFFFFF ADR -
acpi0: [FPU ] HID PNP0C04 UID - STA 0xFFFFFFFF ADR -
acpi0: [TIMR] HID PNP0100 UID - STA 0xFFFFFFFF ADR -
acpi0: [FWHD] HID INT0800 UID - STA 0xFFFFFFFF ADR -
acpi0: [KBC ] HID PNP0303 UID - STA 0x0000000F ADR -
acpi0: [MOUE] HID SYN1E08 UID - STA 0x0000000F ADR -
acpi0: [EC0 ] HID PNP0C09 UID 1 STA 0xFFFFFFFF ADR -
acpi0: [TPM ] HID PNP0C31 UID - STA 0x00000000 ADR -
acpi0: [UHC0] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001D0000
acpi0: [UHC1] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001D0001
acpi0: [UHC2] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001D0002
acpi0: [RHUB] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000000
acpi0: [PRT2] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000002
acpi0: [EHC1] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001D0007
acpi0: [RHUB] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000000
acpi0: [PRT1] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000001
acpi0: [PRT2] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000002
acpi0: [PRT3] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000003
acpi0: [PRT4] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000004
acpi0: [PRT5] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000005
acpi0: [PRT6] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000006
acpi0: [PRT7] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000007
acpi0: [PRT8] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000008
acpi0: [UHC3] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001A0000
acpi0: [UHC4] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001A0001
acpi0: [UHC5] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001A0002
acpi0: [EHC2] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001A0007
acpi0: [RHUB] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000000
acpi0: [PRT1] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000001
acpi0: [PRT2] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000002
acpi0: [PRT3] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000003
acpi0: [PRT4] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000004
acpi0: [EXP1] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001C0000
acpi0: [EXP2] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001C0001
acpi0: [PXSX] HID - UID - STA 0x0000000F ADR 0x0000000000000000
acpi0: [EXP3] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001C0002
acpi0: [EXP4] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001C0003
acpi0: [EXP5] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001C0004
acpi0: [J380] HID - UID - STA 0x0000000F ADR 0x0000000000000000
acpi0: [J381] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000001
acpi0: [J382] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000002
acpi0: [J383] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000003
acpi0: [J384] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000004
acpi0: [EXP6] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001C0005
acpi0: [PXSX] HID - UID - STA 0x0000000F ADR 0x0000000000000000
acpi0: [SAT0] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001F0002
acpi0: [PRID] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000000
acpi0: [P_D0] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000000
acpi0: [P_D1] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000001
acpi0: [SECD] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000001
acpi0: [S_D0] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000000
acpi0: [S_D1] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000001
acpi0: [SAT1] HID - UID - STA 0xFFFFFFFF ADR 0x00000000001F0005
acpi0: [PRID] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000000
acpi0: [P_D0] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000000
acpi0: [P_D1] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000001
acpi0: [SECD] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000001
acpi0: [S_D0] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000000
acpi0: [S_D1] HID - UID - STA 0xFFFFFFFF ADR 0x0000000000000001
acpi0: [WMID] HID PNP0C14 UID 0 STA 0xFFFFFFFF ADR -
acpi0: [QBTN] HID PNP0C32 UID 1 STA 0x0000000F ADR -
acpi0: [DBTN] HID PNP0C32 UID 2 STA 0x0000000F ADR -
acpi0: [MBTN] HID PNP0C32 UID 3 STA 0x0000000F ADR -
acpi0: [EBTN] HID PNP0C32 UID 4 STA 0x0000000F ADR -
acpi0: [PBTN] HID PNP0C32 UID 6 STA 0x0000000F ADR -
acpi0: [VBTN] HID PNP0C32 UID 7 STA 0x0000000F ADR -
acpi0: [TBTN] HID PNP0C32 UID 8 STA 0x0000000F ADR -
acpi0: [_TZ ] HID - UID - STA 0xFFFFFFFF ADR -
acpi0: [TZ01] HID - UID - STA - ADR -
\ [06] []
CPU0 [12] []
CPU1 [12] []
CPU2 [12] []
CPU3 [12] []
_SB [06] []
MCFG [06] []
PWRB [06] [] <acpibut0>
LID0 [06] [] <acpilid0>
SLPB [06] [] <acpibut1>
ACAD [06] [] <acpiacad0>
BAT0 [06] [] <acpibat0>
PCI0 [06] [] (PCI) @ 0x00:0x00:0x00:0x00 [R] [B] -> 0x00:0x00
OVGA [06] [] <acpivga0> (PCI) @ 0x00:0x00:0x02:0x00
DD01 [06] [] <acpiout0>
DD02 [06] [] <acpiout1>
DD03 [06] [] <acpiout2>
DD04 [06] [] <acpiout3>
DD05 [06] [] <acpiout4>
PEGP [06] [] (PCI) @ 0x00:0x00:0x01:0x00
VGA [06] []
CRT [06] []
LCD [06] []
HDMI [06] []
LANC [06] [] (PCI) @ 0x00:0x00:0x19:0x00
P32 [06] [] (PCI) @ 0x00:0x00:0x1E:0x00 [B] -> 0x00:0x04
LPC [06] [] (PCI) @ 0x00:0x00:0x1F:0x00
LNKA [06] []
LNKB [06] []
LNKC [06] []
LNKD [06] []
LNKE [06] []
LNKF [06] []
LNKG [06] []
LNKH [06] []
SYSR [06] []
DMAC [06] []
RTC [06] []
HPET [06] [] <hpet0>
PIC [06] []
FPU [06] []
TIMR [06] [] <attimer0>
FWHD [06] []
KBC [06] [] <pckbc0>
MOUE [06] [] <pckbc1>
EC0 [06] [] <acpiec0>
TPM [06] []
UHC0 [06] [] (PCI) @ 0x00:0x00:0x1D:0x00
UHC1 [06] [] (PCI) @ 0x00:0x00:0x1D:0x01
UHC2 [06] [] (PCI) @ 0x00:0x00:0x1D:0x02
RHUB [06] []
PRT2 [06] []
EHC1 [06] [] (PCI) @ 0x00:0x00:0x1D:0x07
RHUB [06] []
PRT1 [06] []
PRT2 [06] []
PRT3 [06] []
PRT4 [06] []
PRT5 [06] []
PRT6 [06] []
PRT7 [06] []
PRT8 [06] []
UHC3 [06] [] (PCI) @ 0x00:0x00:0x1A:0x00
UHC4 [06] [] (PCI) @ 0x00:0x00:0x1A:0x01
UHC5 [06] [] (PCI) @ 0x00:0x00:0x1A:0x02
EHC2 [06] [] (PCI) @ 0x00:0x00:0x1A:0x07
RHUB [06] []
PRT1 [06] []
PRT2 [06] []
PRT3 [06] []
PRT4 [06] []
EXP1 [06] [] (PCI) @ 0x00:0x00:0x1C:0x00 [B] -> 0x00:0x02
EXP2 [06] [] (PCI) @ 0x00:0x00:0x1C:0x01 [B] -> 0x00:0x03
PXSX [06] [] (PCI) @ 0x00:0x03:0x00:0x00
EXP3 [06] [] (PCI) @ 0x00:0x00:0x1C:0x02
EXP4 [06] [] (PCI) @ 0x00:0x00:0x1C:0x03
EXP5 [06] [] (PCI) @ 0x00:0x00:0x1C:0x04
J380 [06] []
J381 [06] []
J382 [06] []
J383 [06] []
J384 [06] []
EXP6 [06] [] (PCI) @ 0x00:0x00:0x1C:0x05
PXSX [06] []
SAT0 [06] [] (PCI) @ 0x00:0x00:0x1F:0x02
PRID [06] []
P_D0 [06] []
P_D1 [06] []
SECD [06] []
S_D0 [06] []
S_D1 [06] []
SAT1 [06] [] (PCI) @ 0x00:0x00:0x1F:0x05
PRID [06] []
P_D0 [06] []
P_D1 [06] []
SECD [06] []
S_D0 [06] []
S_D1 [06] []
WMID [06] [] <acpiwmi0>
QBTN [06] [] <acpidalb0>
DBTN [06] [] <acpidalb1>
MBTN [06] [] <acpidalb2>
EBTN [06] [] <acpidalb3>
PBTN [06] [] <acpidalb4>
VBTN [06] [] <acpidalb5>
TBTN [06] [] <acpidalb6>
_TZ [06] []
TZ01 [13] [] <acpitz0>
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard
pms0 at pckbc0 (aux slot)
pms0: Synaptics touchpad version 6.5
pms0: Palm detect
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0: Intel 82GM45 Host Bridge (rev. 0x07)
agp0 at pchb0: detected 65532k stolen memory
agp0: aperture at 0xc0000000, size 0x10000000
vga0 at pci0 dev 2 function 0: Intel 82GM45 Integrated Graphics Device (rev. 0x07)
wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation), using wskbd0
wsmux1: connecting to wsdisplay0
i915drm0 at vga0: Mobile IntelM-BM-. GM45 Express Chipset
i915drm0: AGP at 0xc0000000 256MB
i915drm0: Initialized i915 1.6.0 20080730
Intel 82GM45 Integrated Graphics Device (miscellaneous display, revision 0x07) at pci0 dev 2 function 1 not configured
uhci0 at pci0 dev 26 function 0: Intel 82801I USB UHCI Controller (rev. 0x03)
uhci0: interrupting at ioapic0 pin 16
usb0 at uhci0: USB revision 1.0
uhci1 at pci0 dev 26 function 1: Intel 82801I USB UHCI Controller (rev. 0x03)
uhci1: interrupting at ioapic0 pin 21
usb1 at uhci1: USB revision 1.0
ehci0 at pci0 dev 26 function 7: Intel 82801I USB EHCI Controller (rev. 0x03)
ehci0: interrupting at ioapic0 pin 19
ehci0: BIOS has given up ownership
ehci0: EHCI version 1.0
ehci0: companion controllers, 2 ports each: uhci0 uhci1
usb2 at ehci0: USB revision 2.0
hdaudio0 at pci0 dev 27 function 0: HD Audio Controller
hdaudio0: interrupting at ioapic0 pin 22
hdafg0 at hdaudio0: Sigmatel 92HD75B2X5
hdafg0: DAC00 2ch: Speaker [Built-In], HP Out [Jack]
hdafg0: ADC01 2ch: Mic In [Jack]
hdafg0: 2ch/2ch 44100Hz 48000Hz 88200Hz 96000Hz 192000Hz 16/16 20/32 24/32
audio0 at hdafg0: full duplex, playback, capture, independent
hdafg1 at hdaudio0: Intel G45 HDMI
hdafg1: HDMI00 8ch: Digital Out [Jack]
hdafg1: 8ch/0ch 48000Hz 16/16*
ppb0 at pci0 dev 28 function 0: Intel 82801I PCI Express Port #1 (rev. 0x03)
ppb0: PCI Express 1.0 <Root Port of PCI-E Root Complex>
pci1 at ppb0 bus 2
pci1: i/o space, memory space enabled, rd/line, wr/inv ok
ath0 at pci1 dev 0 function 0: Atheros 9285
ath0: interrupting at ioapic0 pin 16
ath0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ath0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
ath0: mac 192.2 phy 14.0 radio 12.0
ppb1 at pci0 dev 28 function 1: Intel 82801I PCI Express Port #2 (rev. 0x03)
ppb1: PCI Express 1.0 <Root Port of PCI-E Root Complex>
pci2 at ppb1 bus 3
pci2: i/o space, memory space enabled, rd/line, wr/inv ok
re0 at pci2 dev 0 function 0: RealTek 8100E/8101E/8102E/8102EL PCIe 10/100BaseTX (rev. 0x02)
re0: interrupting at ioapic0 pin 17
re0: Ethernet address 00:26:9e:ce:8c:54
re0: using 256 tx descriptors
rlphy0 at re0 phy 7: RTL8201L 10/100 media interface, rev. 1
rlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
uhci2 at pci0 dev 29 function 0: Intel 82801I USB UHCI Controller (rev. 0x03)
uhci2: interrupting at ioapic0 pin 20
usb3 at uhci2: USB revision 1.0
uhci3 at pci0 dev 29 function 1: Intel 82801I USB UHCI Controller (rev. 0x03)
uhci3: interrupting at ioapic0 pin 19
usb4 at uhci3: USB revision 1.0
uhci4 at pci0 dev 29 function 2: Intel 82801I USB UHCI Controller (rev. 0x03)
uhci4: interrupting at ioapic0 pin 16
usb5 at uhci4: USB revision 1.0
uhci5 at pci0 dev 29 function 3: Intel 82801I USB UHCI Controller (rev. 0x03)
uhci5: interrupting at ioapic0 pin 18
usb6 at uhci5: USB revision 1.0
ehci1 at pci0 dev 29 function 7: Intel 82801I USB EHCI Controller (rev. 0x03)
ehci1: interrupting at ioapic0 pin 20
ehci1: BIOS has given up ownership
ehci1: EHCI version 1.0
ehci1: companion controllers, 2 ports each: uhci2 uhci3 uhci4 uhci5
usb7 at ehci1: USB revision 2.0
ppb2 at pci0 dev 30 function 0: Intel 82801BAM Hub-PCI Bridge (rev. 0x93)
pci3 at ppb2 bus 4
pci3: i/o space, memory space enabled
pcib0 at pci0 dev 31 function 0: Intel 82801IM LPC Interface Bridge (rev. 0x03)
ahcisata0 at pci0 dev 31 function 2: Intel 82801I Mobile AHCI SATA Controller with 4 ports
ahcisata0: interrupting at ioapic0 pin 19
ahcisata0: 64-bit DMA
ahcisata0: AHCI revision 1.2, 4 ports, 32 command slots, features 0xef22e0e0
atabus0 at ahcisata0 channel 0
atabus1 at ahcisata0 channel 1
atabus2 at ahcisata0 channel 4
atabus3 at ahcisata0 channel 5
ichsmb0 at pci0 dev 31 function 3: Intel 82801I SMBus Controller (rev. 0x03)
ichsmb0: interrupting at ioapic0 pin 18
iic0 at ichsmb0: I2C bus
Intel 82801I Thermal Controller (miscellaneous DASP, revision 0x03) at pci0 dev 31 function 6 not configured
isa0 at pcib0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker
spkr0 at pcppi0
sysbeep0 at pcppi0
attimer0: attached to pcppi0
acpicpu0 at cpu0: ACPI CPU
acpicpu0: C1: FFH, lat 1 us, pow 1000 mW
acpicpu0: C2: FFH, lat 1 us, pow 500 mW
acpicpu0: C3: FFH, lat 17 us, pow 250 mW, bus master check
acpicpu0: P0: FFH, lat 10 us, pow 35000 mW, 2100 MHz
acpicpu0: P1: FFH, lat 10 us, pow 23888 mW, 1600 MHz
acpicpu0: P2: FFH, lat 10 us, pow 15000 mW, 1200 MHz
acpicpu0: T0: HLT, lat 1 us, pow 0 mW, 100 %
acpicpu0: T1: HLT, lat 1 us, pow 0 mW, 88 %
acpicpu0: T2: HLT, lat 1 us, pow 0 mW, 76 %
acpicpu0: T3: HLT, lat 1 us, pow 0 mW, 64 %
acpicpu0: T4: HLT, lat 1 us, pow 0 mW, 52 %
acpicpu0: T5: HLT, lat 1 us, pow 0 mW, 40 %
acpicpu0: T6: HLT, lat 1 us, pow 0 mW, 28 %
acpicpu0: T7: HLT, lat 1 us, pow 0 mW, 16 %
coretemp0 at cpu0: thermal sensor, 1 C resolution
acpicpu1 at cpu1: ACPI CPU
coretemp1 at cpu1: thermal sensor, 1 C resolution
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
acpiacad0: AC adapter online.
uhub0 at usb0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhub1 at usb1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhub2 at usb2: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub2: 4 ports with 4 removable, self powered
uhub3 at usb3: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
uhub4 at usb4: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub4: 2 ports with 2 removable, self powered
uhub5 at usb5: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub5: 2 ports with 2 removable, self powered
uhub6 at usb6: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub6: 2 ports with 2 removable, self powered
uhub7 at usb7: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub7: 8 ports with 8 removable, self powered
ahcisata0 port 0: device present, speed: 3.0Gb/s
ahcisata0 port 1: device present, speed: 1.5Gb/s
wd0 at atabus0 drive 0
wd0: <WDC WD5000BEVT-60ZAT1>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd0(ahcisata0:0:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100) (using DMA)
atapibus0 at atabus1: 1 targets
cd0 at atapibus0 drive 0: <hp DVDRAM GT30L, KZQ9C343835, mP04> cdrom removable
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
cd0(ahcisata0:1:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100) (using DMA)
uvideo0 at uhub7 port 4 configuration 1 interface 0: SuYin HP Webcam-101, rev 2.00/1.22, addr 2
video0 at uvideo0: SuYin HP Webcam-101, rev 2.00/1.22, addr 2
pad0: outputs: 44100Hz, 16-bit, stereo
audio1 at pad0: half duplex, playback, capture
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
uhidev0 at uhub1 port 2 configuration 1 interface 0
uhidev0: vendor 0x13ba Generic USB K/B, rev 1.10/0.01, addr 2, iclass 3/1
ukbd0 at uhidev0
wskbd1 at ukbd0 mux 1
wskbd1: connecting to wsdisplay0
uhidev1 at uhub1 port 2 configuration 1 interface 1
uhidev1: vendor 0x13ba Generic USB K/B, rev 1.10/0.01, addr 2, iclass 3/1
uhidev1: 2 report ids
ums0 at uhidev1 reportid 1: 3 buttons and Z dir
wsmouse1 at ums0 mux 0
uhid0 at uhidev1 reportid 2: input=1, output=0, feature=0
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
-Olaf.
--
___ Olaf 'Rhialto' Seibert -- There's no point being grown-up if you
\X/ rhialto/at/xs4all.nl -- can't be childish sometimes. -The 4th Doctor
From: Jukka Ruohonen <jruohonen@iki.fi>
To: Rhialto <rhialto@falu.nl>
Cc: gnats-bugs@NetBSD.org
Subject: Re: port-amd64/42895 (Weird ACPI messages every 30 seconds on the console)
Date: Tue, 7 Jun 2011 22:39:46 +0300
On Tue, Jun 07, 2011 at 09:10:03PM +0200, Rhialto wrote:
> But: I just turned the laptop on a few moments ago, and it froze mere
> seconds after booting into single user (GENERIC). No X yet, so it was
> clear that there were no messages. The next boot worked a bit longer
> but froze while sitting idle for several minutes at the xdm login screen.
You are sure that things work if you do not enable acpicpu(4)?
Few things:
a Can you further build a kernel with DIAGNOSTIC to rule out anything obvious?
b Can you install sysutils/dmidecode, run it, and post the output? If we do
not manage to fix this, the last resort is to add a quirk for this laptop.
> acpitz0 at acpi0 (TZ01): cpu0 cpu1
> ACPI Error: [\_PR_.CPU0._PPC] Namespace lookup failure, AE_NOT_FOUND (20110211/psargs-392)
> ACPI Error: Method parse/execution failed [\CPUL] (Node 0xffff800007b2dec0), AE_NOT_FOUND (20110211/psparse-560)
> ACPI Error: Method parse/execution failed [\_TZ_.TZ01.OTHD] (Node 0xffff800007b2c380), AE_NOT_FOUND (20110211/psparse-560)
> ACPI Error: Method parse/execution failed [\_TZ_.TZ01._TMP] (Node 0xffff800007b2c540), AE_NOT_FOUND (20110211/psparse-560)
> acpitz0: levels: hot 110.0 C, passive 135.0 C, passive cooling
> ACPI Error: [\_PR_.CPU0._PPC] Namespace lookup failure, AE_NOT_FOUND (20110211/psargs-392)
> ACPI Error: Method parse/execution failed [\CPUL] (Node 0xffff800007b2dec0), AE_NOT_FOUND (20110211/psparse-560)
> ACPI Error: Method parse/execution failed [\_TZ_.TZ01.OTHD] (Node 0xffff800007b2c380), AE_NOT_FOUND (20110211/psparse-560)
> ACPI Error: Method parse/execution failed [\_TZ_.TZ01._TMP] (Node 0xffff800007b2c540), AE_NOT_FOUND (20110211/psparse-560)
Given that no errors are now printed at runtime, I think the above are
because acpicpu(4) should attach before acpitz(4), as the latter may
reference, within the firmware AML, some things for the passive cooling.
To put this differently: as the loading of acpicpu(4), or running the ACPI
methods it runs, typically means that the ACPICA interpreter loads
additional tables dynamically, it is natural that we get AE_NOT_FOUND from
acpitz(4) because those things are not in the namespace yet.
- Jukka.
From: Rhialto <rhialto@falu.nl>
To: gnats-bugs@NetBSD.org
Cc: port-amd64-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
netbsd-bugs@NetBSD.org, rhialto@falu.nl
Subject: Re: port-amd64/42895 (Weird ACPI messages every 30 seconds on the
console)
Date: Wed, 8 Jun 2011 23:24:01 +0200
On Tue 07 Jun 2011 at 19:40:03 +0000, Jukka Ruohonen wrote:
> You are sure that things work if you do not enable acpicpu(4)?
I thought I was, but then I had a freeze too when I used the GENERIC
kernel and used userconf to "disable acpicpu". So whatever it is, it
isn't specifically in acpicpu. (It must be something since january
though since that is when I built the so-far-still-working kernel).
> Few things:
>
> a Can you further build a kernel with DIAGNOSTIC to rule out anything obvious?
I have done that, I am running it now. Of course, so far no freezes or
diagnostics. I'll keep using it for a while to see if it will tell us
something.
> b Can you install sysutils/dmidecode, run it, and post the output? If we do
> not manage to fix this, the last resort is to add a quirk for this laptop.
Output attached below. I x-ed out some serial numbers.
> Given that no errors are now printed at runtime, I think the above are
> because acpicpu(4) should attach before acpitz(4), as the latter may
> reference, within the firmware AML, some things for the passive cooling.
Yes that sounds right. Since the repeating messages disappear with
acpicpu, that fixes the original issue of the PR. The secondary issue,
the freezing, now seems to be unrelated to acpicpu proper.
> - Jukka.
# dmidecode 2.11
SMBIOS 2.4 present.
26 structures occupying 1177 bytes.
Table at 0x000E8290.
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Hewlett-Packard
Version: F.20
Release Date: 10/13/2009
ROM Size: 1024 kB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
BIOS ROM is socketed
EDD is supported
Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
5.25"/360 kB floppy services are supported (int 13h)
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 kB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
8042 keyboard services are supported (int 9h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
Targeted content distribution is supported
BIOS Revision: 15.32
Firmware Revision: 33.20
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Hewlett-Packard
Product Name: Compaq Presario CQ71 Notebook PC
Version: Rev 1
Serial Number: xxxxxxxxxx
UUID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Wake-up Type: Power Switch
SKU Number: VK985EA#ABH
Family: 103C_5335KV
Handle 0x0002, DMI type 2, 16 bytes
Base Board Information
Manufacturer: Hewlett-Packard
Product Name: 306B
Version: 21.14
Serial Number: xxxxxxxxxx
Asset Tag: Base Board Asset Tag
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Base Board Chassis Location
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
Handle 0x0003, DMI type 3, 22 bytes
Chassis Information
Manufacturer: Hewlett-Packard
Type: Notebook
Lock: Not Present
Version: N/A
Serial Number: None
Asset Tag: Not Specified
Boot-up State: Safe
Power Supply State: Safe
Thermal State: Safe
Security Status: None
OEM Information: 0x0000010D
Height: Unspecified
Number Of Power Cords: 1
Contained Elements: 0
SKU Number: Not Specified
Handle 0x0004, DMI type 9, 13 bytes
System Slot Information
Designation: PCI Express Graphic X16
Type: x16 PCI Express
Current Usage: Available
Length: Other
ID: 0
Characteristics:
PME signal is supported
Hot-plug devices are supported
Handle 0x0005, DMI type 9, 13 bytes
System Slot Information
Designation: PCI Express-0
Type: x1 PCI Express
Current Usage: Available
Length: Other
ID: 0
Characteristics:
PME signal is supported
Hot-plug devices are supported
Handle 0x0006, DMI type 9, 13 bytes
System Slot Information
Designation: PCI Express-1
Type: x1 PCI Express
Current Usage: Available
Length: Other
ID: 1
Characteristics:
PME signal is supported
Hot-plug devices are supported
Handle 0x0007, DMI type 9, 13 bytes
System Slot Information
Designation: PCI Express-2
Type: x1 PCI Express
Current Usage: Available
Length: Other
ID: 2
Characteristics:
PME signal is supported
Hot-plug devices are supported
Handle 0x0008, DMI type 9, 13 bytes
System Slot Information
Designation: PCI Express-3
Type: x1 PCI Express
Current Usage: Available
Length: Other
ID: 3
Characteristics:
PME signal is supported
Hot-plug devices are supported
Handle 0x0009, DMI type 9, 13 bytes
System Slot Information
Designation: PCI Express-4
Type: x1 PCI Express
Current Usage: Available
Length: Other
ID: 4
Characteristics:
PME signal is supported
Hot-plug devices are supported
Handle 0x000A, DMI type 10, 6 bytes
On Board Device Information
Type: Video
Status: Enabled
Description:
Handle 0x000B, DMI type 22, 26 bytes
Portable Battery
Location: In the back
Manufacturer: CPT-U22F
Name: EV06047
Design Capacity: 4400 mWh
Design Voltage: 11100 mV
SBDS Version: 1.1
Maximum Error: 1%
SBDS Serial Number: 083A
SBDS Manufacture Date: 2009-11-15
SBDS Chemistry: LION
OEM-specific Information: 0x00000000
Handle 0x000C, DMI type 11, 5 bytes
OEM Strings
String 1: $HP$
String 2: LOC#ABH
String 3: ABS 70/71 79 7A 7B 7C
String 4: CNB1 0392110000200D10000020000
Handle 0x000D, DMI type 15, 29 bytes
System Event Log
Area Length: 32672 bytes
Header Start Offset: 0x0000
Data Start Offset: 0x0000
Access Method: General-purpose non-volatile data functions
Access Address: 0x0000
Status: Valid, Not Full
Change Token: 0x12345678
Header Format: OEM-specific
Supported Log Type Descriptors: 3
Descriptor 1: POST memory resize
Data Format 1: None
Descriptor 2: POST error
Data Format 2: POST results bitmap
Descriptor 3: Log area reset/cleared
Data Format 3: None
Handle 0x000E, DMI type 32, 20 bytes
System Boot Information
Status: No errors detected
Handle 0x000F, DMI type 4, 35 bytes
Processor Information
Socket Designation: CPU
Type: Central Processor
Family: Pentium M
Manufacturer: Intel(R) Corporation
ID: 7A 06 01 00 FF FB EB BF
Signature: Type 0, Family 6, Model 23, Stepping 10
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (FXSAVE and FXSTOR instructions supported)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Multi-threading)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Pentium(R) Dual-Core CPU T4300 @ 2.10GHz
Voltage: 1.6 V
External Clock: 800 MHz
Max Speed: 2100 MHz
Current Speed: 2100 MHz
Status: Populated, Enabled
Upgrade: <OUT OF SPEC>
L1 Cache Handle: 0x0012
L2 Cache Handle: 0x0010
L3 Cache Handle: Not Provided
Serial Number: Not Specified
Asset Tag: FFFF
Part Number: Not Specified
Handle 0x0010, DMI type 7, 19 bytes
Cache Information
Socket Designation: L2 Cache
Configuration: Enabled, Not Socketed, Level 2
Operational Mode: Write Back
Location: Internal
Installed Size: 1024 kB
Maximum Size: 1024 kB
Supported SRAM Types:
Synchronous
Installed SRAM Type: Synchronous
Speed: Unknown
Error Correction Type: Single-bit ECC
System Type: Unified
Associativity: 4-way Set-associative
Handle 0x0011, DMI type 7, 19 bytes
Cache Information
Socket Designation: L1 Cache
Configuration: Enabled, Not Socketed, Level 1
Operational Mode: Write Back
Location: Internal
Installed Size: 32 kB
Maximum Size: 32 kB
Supported SRAM Types:
Synchronous
Installed SRAM Type: Synchronous
Speed: Unknown
Error Correction Type: Single-bit ECC
System Type: Instruction
Associativity: 8-way Set-associative
Handle 0x0012, DMI type 7, 19 bytes
Cache Information
Socket Designation: L1 Cache
Configuration: Enabled, Not Socketed, Level 1
Operational Mode: Write Back
Location: Internal
Installed Size: 32 kB
Maximum Size: 32 kB
Supported SRAM Types:
Synchronous
Installed SRAM Type: Synchronous
Speed: Unknown
Error Correction Type: Single-bit ECC
System Type: Data
Associativity: 8-way Set-associative
Handle 0x0013, DMI type 16, 15 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 8 GB
Error Information Handle: Not Provided
Number Of Devices: 2
Handle 0x0014, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0013
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: SODIMM
Set: None
Locator: DIMM0
Bank Locator: BANK 0
Type: DDR2
Type Detail: Synchronous
Speed: 800 MHz
Manufacturer: AD00000000000000
Serial Number: xxxxxxxx
Asset Tag: Unknown
Part Number: HMP125S6EFR8C-S6
Handle 0x0015, DMI type 20, 19 bytes
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x0007FFFFFFF
Range Size: 2 GB
Physical Device Handle: 0x0014
Memory Array Mapped Address Handle: 0x0018
Partition Row Position: 2
Interleave Position: 1
Interleaved Data Depth: 1
Handle 0x0016, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0013
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: SODIMM
Set: None
Locator: DIMM2
Bank Locator: BANK 2
Type: DDR2
Type Detail: Synchronous
Speed: 800 MHz
Manufacturer: AD00000000000000
Serial Number: xxxxxxxx
Asset Tag: Unknown
Part Number: HMP125S6EFR8C-S6
Handle 0x0017, DMI type 20, 19 bytes
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x0007FFFFFFF
Range Size: 2 GB
Physical Device Handle: 0x0016
Memory Array Mapped Address Handle: 0x0018
Partition Row Position: 2
Interleave Position: 2
Interleaved Data Depth: 1
Handle 0x0018, DMI type 19, 15 bytes
Memory Array Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000FFFFFFFF
Range Size: 4 GB
Physical Array Handle: 0x0013
Partition Width: 2
Handle 0x0019, DMI type 127, 4 bytes
End Of Table
-Olaf.
--
___ Olaf 'Rhialto' Seibert -- There's no point being grown-up if you
\X/ rhialto/at/xs4all.nl -- can't be childish sometimes. -The 4th Doctor
From: "Jukka Ruohonen" <jruoho@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/42895 CVS commit: src/sys
Date: Sun, 12 Jun 2011 10:11:53 +0000
Module Name: src
Committed By: jruoho
Date: Sun Jun 12 10:11:53 UTC 2011
Modified Files:
src/sys/arch/ia64/acpi: acpi_machdep.c
src/sys/arch/ia64/include: acpi_machdep.h
src/sys/arch/x86/acpi: acpi_cpu_md.c
src/sys/arch/x86/conf: files.x86
src/sys/arch/x86/include: acpi_machdep.h
src/sys/dev/acpi: acpi.c acpi_cpu.c acpi_cpu.h
Added Files:
src/sys/arch/x86/acpi: acpi_pdc.c
Log Message:
Move the evaluation of the _PDC control method out from the acpicpu(4)
driver to the main acpi(4) stack. Follow Linux and evaluate it early.
Should fix PR port-amd64/42895, possibly also PR kern/42583, and many
other comparable bugs.
A common sense explanation is that Intel supplies additional CPU tables to
OEMs. BIOS writers do not bother to modify their DSDTs, but instead load
these extra tables dynamically as secondary SSDT tables. The actual Load()
happens when the _PDC method is invoked, and thus namespace errors occur
when the CPU-specific ACPI methods are not yet present but referenced in the
AML by various drivers, including, but not limited to, acpitz(4).
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/ia64/acpi/acpi_machdep.c
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/ia64/include/acpi_machdep.h
cvs rdiff -u -r1.60 -r1.61 src/sys/arch/x86/acpi/acpi_cpu_md.c
cvs rdiff -u -r0 -r1.1 src/sys/arch/x86/acpi/acpi_pdc.c
cvs rdiff -u -r1.69 -r1.70 src/sys/arch/x86/conf/files.x86
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/x86/include/acpi_machdep.h
cvs rdiff -u -r1.242 -r1.243 src/sys/dev/acpi/acpi.c
cvs rdiff -u -r1.40 -r1.41 src/sys/dev/acpi/acpi_cpu.c \
src/sys/dev/acpi/acpi_cpu.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
From: Jukka Ruohonen <jruohonen@iki.fi>
To: gnats-bugs@NetBSD.org
Cc: Rhialto <rhialto@falu.nl>
Subject: Re: port-amd64/42895 (Weird ACPI messages every 30 seconds on the console)
Date: Sun, 12 Jun 2011 13:15:33 +0300
> I thought I was, but then I had a freeze too when I used the GENERIC
> kernel and used userconf to "disable acpicpu". So whatever it is, it
> isn't specifically in acpicpu. (It must be something since january
> though since that is when I built the so-far-still-working kernel).
If you manage to gather some information about this freeze, please file a
separate PR about the issue.
> Yes that sounds right. Since the repeating messages disappear with
> acpicpu, that fixes the original issue of the PR. The secondary issue,
> the freezing, now seems to be unrelated to acpicpu proper.
I committed some additional fixes today. Can you verify that the remaining
errors during boot no longer appear? If so, we can finally close this PR.
- Jukka.
From: Rhialto <rhialto@falu.nl>
To: gnats-bugs@NetBSD.org
Cc: port-amd64-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
netbsd-bugs@NetBSD.org, rhialto@falu.nl
Subject: Re: port-amd64/42895 (Weird ACPI messages every 30 seconds on the
console)
Date: Tue, 14 Jun 2011 21:34:06 +0200
On Sun 12 Jun 2011 at 10:20:07 +0000, Jukka Ruohonen wrote:
> If you manage to gather some information about this freeze, please file a
> separate PR about the issue.
Will do, as soon as it seems useful.
> I committed some additional fixes today. Can you verify that the remaining
> errors during boot no longer appear? If so, we can finally close this PR.
Yes, the errors during boot are gone as well. Thanks!
I agree the pr can be closed.
> - Jukka.
-Olaf.
--
___ Olaf 'Rhialto' Seibert -- There's no point being grown-up if you
\X/ rhialto/at/xs4all.nl -- can't be childish sometimes. -The 4th Doctor
State-Changed-From-To: feedback->closed
State-Changed-By: jruoho@NetBSD.org
State-Changed-When: Tue, 14 Jun 2011 19:57:05 +0000
State-Changed-Why:
Finally fixed. Thanks for patience and testing.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.