NetBSD Problem Report #42583

From www@NetBSD.org  Wed Jan  6 01:01:23 2010
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id 5227A63C430
	for <gnats-bugs@gnats.NetBSD.org>; Wed,  6 Jan 2010 01:01:23 +0000 (UTC)
Message-Id: <20100106010122.C44A163C37E@www.NetBSD.org>
Date: Wed,  6 Jan 2010 01:01:22 +0000 (UTC)
From: alex-goncharov@comcast.net
Reply-To: alex-goncharov@comcast.net
To: gnats-bugs@NetBSD.org
Subject: ACPI errors: laptop HP DV6-1334US (keys: EmbeddedControl, AE_NOT_FOUND, acpibat0, acpitz0, _TMP)
X-Send-Pr-Version: www-1.0

>Number:         42583
>Category:       kern
>Synopsis:       ACPI errors: laptop HP DV6-1334US (keys: EmbeddedControl, AE_NOT_FOUND, acpibat0, acpitz0, _TMP)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jan 06 01:05:00 +0000 2010
>Closed-Date:    Thu Jul 21 16:50:48 +0000 2011
>Last-Modified:  Thu Jul 21 16:50:48 +0000 2011
>Originator:     Alex Goncharov
>Release:        5.99.23
>Organization:
>Environment:
NetBSD 5.99.23 NetBSD 5.99.23 (GENERIC) #0: Sat Jan  2 01:29:59 UTC 2010  builds@b8.netbsd.org:/home/builds/ab/HEAD/amd64/201001020000Z-obj/home/builds/ab/HEAD/src/sys/arch/amd64/compile/GENERIC
>Description:
ACPI errors happen with the original and the most recent BIOS versions:

BIOS original: Version F.36 10/09/2009
BIOS updated:  Version: F.41 11/12/2009

Some data (with the F.41 BIOS):

---
dmesg | grep -i acpi | sort -u
=>
:ACPI Error: No handler for Region [ERAM] (0xffff800007b1ee80) [EmbeddedControl] (20090730/evregion-430)
ACPI Error (psargs-0464): [\_PR_.CPU0._PPC] Namespace lookup failure, AE_NOT_FOUND
ACPI Error (psparse-0633): Method parse/execution failed [\CPUL] (Node 0xffff800007b276a0), AE_NOT_FOUND
ACPI Error (psparse-0633): Method parse/execution failed [\PSSC] (Node 0xffff800007b27680), AE_NOT_FOUND
ACPI Error (psparse-0633): Method parse/execution failed [\_SB_.ACAD._PSR] (Node 0xffff800007b27420), AE_NOT_EXIST
ACPI Error (psparse-0633): Method parse/execution failed [\_SB_.BAT0._STA] (Node 0xffff800007b27280), AE_NOT_EXIST
ACPI Error (psparse-0633): Method parse/execution failed [\_SB_.PCI0.LPC_.EC0_._REG] (Node 0xffff800007b2c860), AE_NOT_FOUND
ACPI Error (psparse-0633): Method parse/execution failed [\_TZ_.TZ01.FRSP] (Node 0xffff800007b27800), AE_NOT_EXIST
ACPI Error (psparse-0633): Method parse/execution failed [\_TZ_.TZ01._TMP] (Node 0xffff800007b27940), AE_NOT_EXIST
ACPI Error: No handler for Region [ERAM] (0xffff800007b1ee80) [EmbeddedControl] (20090730/evregion-430)
ACPI Error: Region EmbeddedControl(3) has no handler (20090730/exfldio-383)
ACPI Exception: AE_NOT_FOUND, from region _REG, [EmbeddedControl] (20090730/evregion-631)
ACPI-Fast 24-bit timer
CIR0 (ENE0100) at acpi0 not configured
acpi0 at mainbus0: Intel ACPICA 20090730
acpi0: SCI interrupting at int 9
acpi0: X/RSDT: OemId <HPQOEM,SLIC-MPC,00000001>, AslId <    ,01000013>
acpi0: fixed-feature power button present
acpiacad0 at acpi0 (ACAD, ACPI0003): ACPI AC Adapter
acpibat0 at acpi0 (BAT0, PNP0C0A-1): ACPI Battery (Control Method)
acpibat0: failed to evaluate _STA: AE_NOT_EXIST
acpibut0 at acpi0 (PWRB, PNP0C0C): ACPI Power Button
acpibut1 at acpi0 (SLPB, PNP0C0E): ACPI Sleep Button
acpidalb0 at acpi0 (QBTN, PNP0C32-1): Direct Application Launch Button
acpidalb1 at acpi0 (DBTN, PNP0C32-2): Direct Application Launch Button
acpidalb2 at acpi0 (EBTN, PNP0C32-4): Direct Application Launch Button
acpidalb3 at acpi0 (EJET, PNP0C32-5): Direct Application Launch Button
acpidalb4 at acpi0 (TBTN, PNP0C32-8): Direct Application Launch Button
acpiec0 at acpi0 (EC0, PNP0C09-1): io 0x62,0x66
acpiec0: unable to install address space handler: AE_NOT_FOUND
acpilid0 at acpi0 (LID0, PNP0C0D): ACPI Lid Switch
acpitz0 at acpi0 (TZ01)ACPI Error: No handler for Region [ERAM] (0xffff800007b1ee80) [EmbeddedControl] (20090730/evregion-430)
acpitz0: failed to evaluate _TMP
acpiwmi0 at acpi0 (WMID, PNP0C14-0): ACPI WMI Interface
attimer1 at acpi0 (TIMR, PNP0100): io 0x40-0x43,0x50-0x53
hpet0 at acpi0 (HPET, PNP0103): mem 0xfed00000-0xfed003ff irq 0,8
pckbc1 at acpi0 (KBC, PNP0303) (kbd port): io 0x60,0x64 irq 1
pckbc2 at acpi0 (MOUE, SYN1E04) (aux port): irq 12
timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000


---

acpidump -o acpidump-o.dat
=>
/*
RSD PTR: Checksum=81, OEMID=HPQOEM, RsdtAddress=0xb9ff60ac
 */
/*
RSDT: Length=72, Revision=1, Checksum=127,
	OEMID=HPQOEM, OEM Table ID=SLIC-MPC, OEM Revision=0x1,
	Creator ID=, Creator Revision=0x1000013
 */
/*
	Entries={ 0xb9ff4000, 0xb9ff5000, 0xb9ff3000, 0xb9ff2000, 0xb9ff1000, 0xb9ff0000, 0xb9fe1000, 0xb9fe0000, 0xb9fdf000 }
 */
/*
	DSDT=0xb9fe2000
	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=55373, Revision=1, Checksum=16,
	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,
    ,	1,
    BKON,	1,
    Offset(0xf),
    BTOF,	1,
    ,	3,
    RFOF,	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,
    HD2T,	8,
    OSFG,	8,
    VTDT,	8,
    C4DT,	8,
    C6DT,	8,
    BAT1,	8,
    ORSV,	456,
    BTND,	8,
    LPSD,	8,
    CRPS,	8,
    CRFG,	8,
    SF3C,	8,
    MCID,	8,
    CFOF,	8,
    SHLP,	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, 0x00000103)
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,	8,
    NSTE,	8,
    SSTE,	8,
    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,
    CMTF,	8,
    CMTI,	32,
    CMTO,	8,
    MSRA,	8,
    TJMX,	8,
    EIST,	8,
    UT35,	8,
    VGAT,	8,
    MAXH,	8,
    USBW,	8,
    P15T,	8,
    DPBR,	8,
    UM3C,	8,
    MCAD,	64
}
Scope(_PR) {
    Processor(CPU0, 1, 0x410, 0x6) {
    }
    Processor(CPU1, 2, 0x410, 0x6) {
    }
    Processor(CPU2, 3, 0x410, 0x6) {
    }
    Processor(CPU3, 4, 0x410, 0x6) {
    }
}
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(BCL1, Package(0x0b) {
    0x14,
    0x19,
    0x1f,
    0x24,
    0x29,
    0x2e,
    0x34,
    0x3d,
    0x46,
    0x55,
    0x5c,
})
Name(BCL2, Package(0x0b) {
    0x07,
    0x09,
    0x0d,
    0x11,
    0x18,
    0x1a,
    0x1e,
    0x2b,
    0x39,
    0x46,
    0x57,
})
Name(AU15, Package(0x0b) {
    0x07,
    0x0a,
    0x0e,
    0x11,
    0x15,
    0x18,
    0x22,
    0x2d,
    0x39,
    0x44,
    0x4f,
})
Name(CM15, Package(0x0b) {
    0x07,
    0x0a,
    0x0e,
    0x11,
    0x15,
    0x18,
    0x23,
    0x2e,
    0x3a,
    0x45,
    0x50,
})
Name(LP15, Package(0x0b) {
    0x07,
    0x0a,
    0x0e,
    0x11,
    0x15,
    0x18,
    0x24,
    0x2f,
    0x3b,
    0x46,
    0x51,
})
Name(SM15, Package(0x0b) {
    0x07,
    0x0a,
    0x0e,
    0x11,
    0x15,
    0x18,
    0x24,
    0x2f,
    0x3b,
    0x46,
    0x51,
})
Name(AUDP, Package(0x0b) {
    0x08,
    0x0b,
    0x0e,
    0x12,
    0x15,
    0x18,
    0x22,
    0x2d,
    0x39,
    0x44,
    0x4f,
})
Name(CMDP, Package(0x0b) {
    0x08,
    0x0b,
    0x0e,
    0x12,
    0x15,
    0x18,
    0x23,
    0x2e,
    0x3a,
    0x45,
    0x50,
})
Name(LPDP, Package(0x0b) {
    0x09,
    0x0c,
    0x0f,
    0x13,
    0x16,
    0x18,
    0x25,
    0x31,
    0x3c,
    0x47,
    0x52,
})
Name(SEDP, Package(0x0b) {
    0x08,
    0x0b,
    0x0e,
    0x12,
    0x15,
    0x18,
    0x23,
    0x2e,
    0x3a,
    0x45,
    0x50,
})
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(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)
    \_SB.PCI0.SBUS.SWRB(0x38, 0x20, Zero)
    \_SB.PCI0.SBUS.SWRB(0x38, 0x22, 0xc0)
    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(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(LEqual(\_SB.PCI0.LPC.EC0.W7OS, One)) {
            If(ECOK) {
                If(LEqual(\_SB.PCI0.LPC.EC0.BACR, One)) {
                    Notify(\_SB.BAT0, 0x80)
                }
            }
        }
        Store(Zero, \_SB.PCI0.LPC.EC0.RTCW)
    }
    Store(0x95, DBGD)
    TRAP(TRTI, 0x21)
    If(LOr(LEqual(Arg0, 0x03), LEqual(Arg0, 0x04))) {
        If(LEqual(One, CMSR(0x70))) {
            Notify(\_SB.PWRB, 0x02)
        }
    }
    Store(0x96, DBGD)
    TRAP(TRTI, 0x21)
    If(LOr(LEqual(Arg0, 0x03), LEqual(Arg0, 0x04))) {
        If(LEqual(EIST, One)) {
            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)
        \_SB.ACEL.INIT()
        Store(0x99, DBGD)
        TRAP(TRTI, 0x21)
    }
    If(LAnd(LEqual(CRPS, One), LNot(LLess(MCHD, 0x04)))) {
        If(LNot(IGDS)) {
            If(And(One, \_SB.PCI0.LPC.EC0.SW2S, )) {
                Store(Zero, \_SB.PCI0.EXP5.J380.D3EF)
            }
            Else {
                Store(0x40, \_SB.PCI0.EXP5.J380.D3EF)
            }
        }
    }
    PSSC()
    Store(0x9a, DBGD)
    TRAP(TRTI, 0x21)
    Return(Package(0x02) {
        Zero,
        Zero,
    })
}
Name(_S0, Package(0x04) {
    Zero,
    Zero,
    Zero,
    Zero,
})
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) {
                If(\_SB.PCI0.EXP2.PDSX) {
                    TRAP(TRTI, 0x0c)
                    Sleep(0x05dc)
                    Notify(\_SB.PCI0.EXP2, One)
                }
                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(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) {
                            TRAP(TRTI, 0x5a)
                            CMSW(0x75, Zero)
                            If(And(One, \_SB.PCI0.LPC.EC0.SW2S, )) {
                                CMSW(0x75, 0xaa)
                                Store(Zero, \_SB.PCI0.EXP5.J380.D3EF)
                            }
                        }
                        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(CTYP, Zero)
    Name(PSVP, 0x3a)
    Name(TPTM, 0x4b)
    Name(AS85, 0x50)
    Name(AS90, 0x55)
    Name(AS00, 0x5f)
    Name(AS05, 0x64)
    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)
                }
                Return(Add(0x0aac, Multiply(Local0, 0x0a, ), ))
            }
            Else {
                Return(Add(0x0aac, Multiply(TPTM, 0x0a, ), ))
            }
        }
        Method(_PSL) {
            If(CMPE) {
                Return(Package(0x02) {
                    \_PR.CPU0,
                    \_PR.CPU1,
                })
            }
            Return(Package(0x01) {
                \_PR.CPU0,
            })
        }
        Method(_PSV) {
            If(CTYP) {
                Return(Add(0x0aac, Multiply(PSVP, 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, ), ))
                }
            }
        }
        Method(_SCP, 1, Serialized) {
            If(LNot(LLess(OSYS, 0x07d9))) {
                Store(Arg0, CTYP)
                Store(Arg0, \_SB.PCI0.LPC.EC0.CMOD)
            }
            Else {
                Store(Zero, CTYP)
                Store(Zero, \_SB.PCI0.LPC.EC0.CMOD)
            }
        }
        Name(_TC1, One)
        Name(_TC2, 0x02)
        Name(_TSP, 0x14)
        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(CUPS, Zero)
Method(CPUL) {
    And(PPMF, One, Local1)
    If(Local1) {
        Store(Zero, Local0)
        Or(Local0, LNot(LEqual(Q8E0, Zero)), Local0)
        If(Local0) {
            Store(Zero, CUPS)
            If(LGreater(Q8E0, CUPS)) {
                Store(Q8E0, 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)
                    Notify(\_PR.CPU2, 0x80)
                    Notify(\_PR.CPU3, 0x80)
                }
                Else {
                    Notify(\_PR.CPU0, 0x80)
                }
            }
            Store(Zero, CUPS)
        }
    }
}
Method(PSSC) {
    If(LEqual(\_SB.PCI0.LPC.EC0.SW2S, One)) {
        If(LNot(LGreater(\_SB.PCI0.LPC.EC0.SRAD, 0x02))) {
            Store(0x02, Q8E0)
        }
        If(LNot(LGreater(\_SB.PCI0.LPC.EC0.SRAD, One))) {
            Store(Zero, Q8E0)
        }
    }
    Else {
        Store(Zero, Q8E0)
    }
    Store(CUPS, \_SB.PCI0.LPC.EC0.CLOW)
    CPUL()
    TRAP(TRTP, PSSS)
}
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)
                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.BTDC, Index(PBIF, One, ))
            Store(^^PCI0.LPC.EC0.BATV, 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)
                }
                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, 0x0
 , 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, 0x
 80, 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)
                    }
                }
                Name(FRSI, Zero)
                Method(_BCL) {
                    If(LEqual(LCDD, 0x2774af06)) {
                        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(LNot(LLess(MAXH, 0x26))) {
                            Store(DerefOf(Index(BCL2, Local0, )), Local2)
                        }
                        Else {
                            If(LEqual(UM3C, One)) {
                                Name(_T_0, Zero)
                                Store(LCDD, _T_0)
                                If(LEqual(_T_0, 0x20ecaf06)) {
                                    Store(DerefOf(Index(AUDP, Local0, )), Local2)
                                }
                                Else {
                                    If(LEqual(_T_0, 0x21ecaf06)) {
                                        Store(DerefOf(Index(AUDP, Local0, )), Local2)
                                    }
                                    Else {
                                        If(LEqual(_T_0, 0x22ecaf06)) {
                                            Store(DerefOf(Index(AUDP, Local0, )), Local2)
                                        }
                                        Else {
                                            If(LEqual(_T_0, 0x1571af0d)) {
                                                Store(DerefOf(Index(CMDP, Local0, )), Local2)
                                            }
                                            Else {
                                                If(LEqual(_T_0, 0x1680af0d)) {
                                                    Store(DerefOf(Index(CMDP, Local0, )), Local2)
                                                }
                                                Else {
                                                    If(LEqual(_T_0, 0x01dfe430)) {
                                                        Store(DerefOf(Index(LPDP, Local0, )), Local2)
                                                    }
                                                    Else {
                                                        If(LEqual(_T_0, 0x01e0e430)) {
                                                            Store(DerefOf(Index(LPDP, Local0, )), Local2)
                                                        }
                                                        Else {
                                                            If(LEqual(_T_0, 0x021be430)) {
                                                                Store(DerefOf(Index(LPDP, Local0, )), Local2)
                                                            }
                                                            Else {
                                                                If(LEqual(_T_0, 0x0222e430)) {
                                                                    Store(DerefOf(Index(LPDP, Local0, )), Local2)
                                                                }
                                                                Else {
                                                                    If(LEqual(_T_0, 0x3151a34c)) {
                                                                        Store(DerefOf(Index(SEDP, Local0, )), Local2)
                                                                    }
                                                                    Else {
                                                                        If(LEqual(_T_0, 0x3251a34c)) {
                                                                            Store(DerefOf(Index(SEDP, Local0, )), Local2)
                                                                        }
                                                                        Else {
                                                                            If(LEqual(_T_0, 0x3651a34c)) {
                                                                                Store(DerefOf(Index(SEDP, Local0, )), Local2)
                                                                            }
                                                                            Else {
                                                                                Store(DerefOf(Index(BCL2, Local0, )), Local2)
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            Else {
                                Name(_T_1, Zero)
                                Store(LCDD, _T_1)
                                If(LEqual(_T_1, 0x20ecaf06)) {
                                    Store(DerefOf(Index(AU15, Local0, )), Local2)
                                }
                                Else {
                                    If(LEqual(_T_1, 0x21ecaf06)) {
                                        Store(DerefOf(Index(AU15, Local0, )), Local2)
                                    }
                                    Else {
                                        If(LEqual(_T_1, 0x22ecaf06)) {
                                            Store(DerefOf(Index(AU15, Local0, )), Local2)
                                        }
                                        Else {
                                            If(LEqual(_T_1, 0x1571af0d)) {
                                                Store(DerefOf(Index(CM15, Local0, )), Local2)
                                            }
                                            Else {
                                                If(LEqual(_T_1, 0x1680af0d)) {
                                                    Store(DerefOf(Index(CM15, Local0, )), Local2)
                                                }
                                                Else {
                                                    If(LEqual(_T_1, 0x01dfe430)) {
                                                        Store(DerefOf(Index(LP15, Local0, )), Local2)
                                                    }
                                                    Else {
                                                        If(LEqual(_T_1, 0x01e0e430)) {
                                                            Store(DerefOf(Index(LP15, Local0, )), Local2)
                                                        }
                                                        Else {
                                                            If(LEqual(_T_1, 0x021be430)) {
                                                                Store(DerefOf(Index(LP15, Local0, )), Local2)
                                                            }
                                                            Else {
                                                                If(LEqual(_T_1, 0x0222e430)) {
                                                                    Store(DerefOf(Index(LP15, Local0, )), Local2)
                                                                }
                                                                Else {
                                                                    If(LEqual(_T_1, 0x3151a34c)) {
                                                                        Store(DerefOf(Index(SM15, Local0, )), Local2)
                                                                    }
                                                                    Else {
                                                                        If(LEqual(_T_1, 0x3251a34c)) {
                                                                            Store(DerefOf(Index(SM15, Local0, )), Local2)
                                                                        }
                                                                        Else {
                                                                            If(LEqual(_T_1, 0x3651a34c)) {
                                                                                Store(DerefOf(Index(SM15, Local0, )), Local2)
                                                                            }
                                                                            Else {
                                                                                Store(DerefOf(Index(BCL1, 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(LNot(LLess(MAXH, 0x26))) {
                                Store(DerefOf(Index(BCL2, Local0, )), ^^^LPC.EC0.BRTL)
                            }
                            Else {
                                If(LEqual(UM3C, One)) {
                                    Name(_T_0, Zero)
                                    Store(LCDD, _T_0)
                                    If(LEqual(_T_0, 0x20ecaf06)) {
                                        Store(DerefOf(Index(AUDP, Local0, )), DPBR)
                                    }
                                    Else {
                                        If(LEqual(_T_0, 0x21ecaf06)) {
                                            Store(DerefOf(Index(AUDP, Local0, )), DPBR)
                                        }
                                        Else {
                                            If(LEqual(_T_0, 0x22ecaf06)) {
                                                Store(DerefOf(Index(AUDP, Local0, )), DPBR)
                                            }
                                            Else {
                                                If(LEqual(_T_0, 0x1571af0d)) {
                                                    Store(DerefOf(Index(CMDP, Local0, )), DPBR)
                                                }
                                                Else {
                                                    If(LEqual(_T_0, 0x1680af0d)) {
                                                        Store(DerefOf(Index(CMDP, Local0, )), DPBR)
                                                    }
                                                    Else {
                                                        If(LEqual(_T_0, 0x01dfe430)) {
                                                            Store(DerefOf(Index(LPDP, Local0, )), DPBR)
                                                        }
                                                        Else {
                                                            If(LEqual(_T_0, 0x01e0e430)) {
                                                                Store(DerefOf(Index(LPDP, Local0, )), DPBR)
                                                            }
                                                            Else {
                                                                If(LEqual(_T_0, 0x021be430)) {
                                                                    Store(DerefOf(Index(LPDP, Local0, )), DPBR)
                                                                }
                                                                Else {
                                                                    If(LEqual(_T_0, 0x0222e430)) {
                                                                        Store(DerefOf(Index(LPDP, Local0, )), DPBR)
                                                                    }
                                                                    Else {
                                                                        If(LEqual(_T_0, 0x3151a34c)) {
                                                                            Store(DerefOf(Index(SEDP, Local0, )), DPBR)
                                                                        }
                                                                        Else {
                                                                            If(LEqual(_T_0, 0x3251a34c)) {
                                                                                Store(DerefOf(Index(SEDP, Local0, )), DPBR)
                                                                            }
                                                                            Else {
                                                                                If(LEqual(_T_0, 0x3651a34c)) {
                                                                                    Store(DerefOf(Index(SEDP, Local0, )), DPBR)
                                                                                }
                                                                                Else {
                                                                                    Store(DerefOf(Index(BCL2, Local0, )), DPBR)
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    AINT(One, DPBR)
                                    If(LEqual(LCDD, 0x021be430)) {
                                        If(LLess(FRSI, 0x02)) {
                                            Increment(FRSI)
                                            Store(One, BKON)
                                            Sleep(0x96)
                                            Store(Zero, BKON)
                                        }
                                    }
                                }
                                Else {
                                    Name(_T_1, Zero)
                                    Store(LCDD, _T_1)
                                    If(LEqual(_T_1, 0x20ecaf06)) {
                                        Store(DerefOf(Index(AU15, Local0, )), ^^^LPC.EC0.BRTL)
                                    }
                                    Else {
                                        If(LEqual(_T_1, 0x21ecaf06)) {
                                            Store(DerefOf(Index(AU15, Local0, )), ^^^LPC.EC0.BRTL)
                                        }
                                        Else {
                                            If(LEqual(_T_1, 0x22ecaf06)) {
                                                Store(DerefOf(Index(AU15, Local0, )), ^^^LPC.EC0.BRTL)
                                            }
                                            Else {
                                                If(LEqual(_T_1, 0x1571af0d)) {
                                                    Store(DerefOf(Index(CM15, Local0, )), ^^^LPC.EC0.BRTL)
                                                }
                                                Else {
                                                    If(LEqual(_T_1, 0x1680af0d)) {
                                                        Store(DerefOf(Index(CM15, Local0, )), ^^^LPC.EC0.BRTL)
                                                    }
                                                    Else {
                                                        If(LEqual(_T_1, 0x01dfe430)) {
                                                            Store(DerefOf(Index(LP15, Local0, )), ^^^LPC.EC0.BRTL)
                                                        }
                                                        Else {
                                                            If(LEqual(_T_1, 0x01e0e430)) {
                                                                Store(DerefOf(Index(LP15, Local0, )), ^^^LPC.EC0.BRTL)
                                                            }
                                                            Else {
                                                                If(LEqual(_T_1, 0x021be430)) {
                                                                    Store(DerefOf(Index(LP15, Local0, )), ^^^LPC.EC0.BRTL)
                                                                }
                                                                Else {
                                                                    If(LEqual(_T_1, 0x0222e430)) {
                                                                        Store(DerefOf(Index(LP15, Local0, )), ^^^LPC.EC0.BRTL)
                                                                    }
                                                                    Else {
                                                                        If(LEqual(_T_1, 0x3151a34c)) {
                                                                            Store(DerefOf(Index(SM15, Local0, )), ^^^LPC.EC0.BRTL)
                                                                        }
                                                                        Else {
                                                                            If(LEqual(_T_1, 0x3251a34c)) {
                                                                                Store(DerefOf(Index(SM15, Local0, )), ^^^LPC.EC0.BRTL)
                                                                            }
                                                                            Else {
                                                                                If(LEqual(_T_1, 0x3651a34c)) {
                                                                                    Store(DerefOf(Index(SM15, Local0, )), ^^^LPC.EC0.BRTL)
                                                                                }
                                                                                Else {
                                                                                    Store(DerefOf(Index(BCL1, 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(0x02) {
                        Package(0x04) {
                            0xffff,
                            Zero,
                            ^^LPC.LNKA,
                            Zero,
                        },
                        Package(0x04) {
                            0xffff,
                            One,
                            ^^LPC.LNKB,
                            Zero,
                        },
                    })
                }
                Else {
                    Return(Package(0x02) {
                        Package(0x04) {
                            0xffff,
                            Zero,
                            Zero,
                            0x10,
                        },
                        Package(0x04) {
                            0xffff,
                            One,
                            Zero,
                            0x11,
                        },
                    })
                }
            }
            Device(VGA) {
                Name(_ADR, Zero)
                Name(SWIT, One)
                Name(CRTA, One)
                Name(LCDA, One)
                Name(TV0A, One)
                Name(HDTV, One)
                Name(LCA1, One)
                Name(HDT1, 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) {
                    If(LNot(LLess(VGAT, 0x02))) {
                        Return(Package(0x03) {
                            0x00010110,
                            0x00010210,
                            0x00010100,
                        })
                    }
                    Else {
                        Return(Package(0x04) {
                            0x00010100,
                            0x00010118,
                            0x00010200,
                            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)
                    }
                    Name(FRSI, Zero)
                    Method(_BCL) {
                        If(LEqual(LCDD, 0x2774af06)) {
                            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(LNot(LLess(MAXH, 0x26))) {
                                Store(DerefOf(Index(BCL2, Local0, )), Local2)
                            }
                            Else {
                                If(LEqual(UM3C, One)) {
                                    Name(_T_0, Zero)
                                    Store(LCDD, _T_0)
                                    If(LEqual(_T_0, 0x20ecaf06)) {
                                        Store(DerefOf(Index(AUDP, Local0, )), Local2)
                                    }
                                    Else {
                                        If(LEqual(_T_0, 0x21ecaf06)) {
                                            Store(DerefOf(Index(AUDP, Local0, )), Local2)
                                        }
                                        Else {
                                            If(LEqual(_T_0, 0x22ecaf06)) {
                                                Store(DerefOf(Index(AUDP, Local0, )), Local2)
                                            }
                                            Else {
                                                If(LEqual(_T_0, 0x1571af0d)) {
                                                    Store(DerefOf(Index(CMDP, Local0, )), Local2)
                                                }
                                                Else {
                                                    If(LEqual(_T_0, 0x1680af0d)) {
                                                        Store(DerefOf(Index(CMDP, Local0, )), Local2)
                                                    }
                                                    Else {
                                                        If(LEqual(_T_0, 0x01dfe430)) {
                                                            Store(DerefOf(Index(LPDP, Local0, )), Local2)
                                                        }
                                                        Else {
                                                            If(LEqual(_T_0, 0x01e0e430)) {
                                                                Store(DerefOf(Index(LPDP, Local0, )), Local2)
                                                            }
                                                            Else {
                                                                If(LEqual(_T_0, 0x021be430)) {
                                                                    Store(DerefOf(Index(LPDP, Local0, )), Local2)
                                                                }
                                                                Else {
                                                                    If(LEqual(_T_0, 0x0222e430)) {
                                                                        Store(DerefOf(Index(LPDP, Local0, )), Local2)
                                                                    }
                                                                    Else {
                                                                        If(LEqual(_T_0, 0x3151a34c)) {
                                                                            Store(DerefOf(Index(SEDP, Local0, )), Local2)
                                                                        }
                                                                        Else {
                                                                            If(LEqual(_T_0, 0x3251a34c)) {
                                                                                Store(DerefOf(Index(SEDP, Local0, )), Local2)
                                                                            }
                                                                            Else {
                                                                                If(LEqual(_T_0, 0x3651a34c)) {
                                                                                    Store(DerefOf(Index(SEDP, Local0, )), Local2)
                                                                                }
                                                                                Else {
                                                                                    Store(DerefOf(Index(BCL2, Local0, )), Local2)
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                Else {
                                    Name(_T_1, Zero)
                                    Store(LCDD, _T_1)
                                    If(LEqual(_T_1, 0x20ecaf06)) {
                                        Store(DerefOf(Index(AU15, Local0, )), Local2)
                                    }
                                    Else {
                                        If(LEqual(_T_1, 0x21ecaf06)) {
                                            Store(DerefOf(Index(AU15, Local0, )), Local2)
                                        }
                                        Else {
                                            If(LEqual(_T_1, 0x22ecaf06)) {
                                                Store(DerefOf(Index(AU15, Local0, )), Local2)
                                            }
                                            Else {
                                                If(LEqual(_T_1, 0x1571af0d)) {
                                                    Store(DerefOf(Index(CM15, Local0, )), Local2)
                                                }
                                                Else {
                                                    If(LEqual(_T_1, 0x1680af0d)) {
                                                        Store(DerefOf(Index(CM15, Local0, )), Local2)
                                                    }
                                                    Else {
                                                        If(LEqual(_T_1, 0x01dfe430)) {
                                                            Store(DerefOf(Index(LP15, Local0, )), Local2)
                                                        }
                                                        Else {
                                                            If(LEqual(_T_1, 0x01e0e430)) {
                                                                Store(DerefOf(Index(LP15, Local0, )), Local2)
                                                            }
                                                            Else {
                                                                If(LEqual(_T_1, 0x021be430)) {
                                                                    Store(DerefOf(Index(LP15, Local0, )), Local2)
                                                                }
                                                                Else {
                                                                    If(LEqual(_T_1, 0x0222e430)) {
                                                                        Store(DerefOf(Index(LP15, Local0, )), Local2)
                                                                    }
                                                                    Else {
                                                                        If(LEqual(_T_1, 0x3151a34c)) {
                                                                            Store(DerefOf(Index(SM15, Local0, )), Local2)
                                                                        }
                                                                        Else {
                                                                            If(LEqual(_T_1, 0x3251a34c)) {
                                                                                Store(DerefOf(Index(SM15, Local0, )), Local2)
                                                                            }
                                                                            Else {
                                                                                If(LEqual(_T_1, 0x3651a34c)) {
                                                                                    Store(DerefOf(Index(SM15, Local0, )), Local2)
                                                                                }
                                                                                Else {
                                                                                    Store(DerefOf(Index(BCL1, 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(LNot(LLess(MAXH, 0x26))) {
                                    Store(DerefOf(Index(BCL2, Local0, )), ^^^^LPC.EC0.BRTL)
                                }
                                Else {
                                    If(LEqual(UM3C, One)) {
                                        Name(_T_0, Zero)
                                        Store(LCDD, _T_0)
                                        If(LEqual(_T_0, 0x20ecaf06)) {
                                            Store(DerefOf(Index(AUDP, Local0, )), DPBR)
                                        }
                                        Else {
                                            If(LEqual(_T_0, 0x21ecaf06)) {
                                                Store(DerefOf(Index(AUDP, Local0, )), DPBR)
                                            }
                                            Else {
                                                If(LEqual(_T_0, 0x22ecaf06)) {
                                                    Store(DerefOf(Index(AUDP, Local0, )), DPBR)
                                                }
                                                Else {
                                                    If(LEqual(_T_0, 0x1571af0d)) {
                                                        Store(DerefOf(Index(CMDP, Local0, )), DPBR)
                                                    }
                                                    Else {
                                                        If(LEqual(_T_0, 0x1680af0d)) {
                                                            Store(DerefOf(Index(CMDP, Local0, )), DPBR)
                                                        }
                                                        Else {
                                                            If(LEqual(_T_0, 0x01dfe430)) {
                                                                Store(DerefOf(Index(LPDP, Local0, )), DPBR)
                                                            }
                                                            Else {
                                                                If(LEqual(_T_0, 0x01e0e430)) {
                                                                    Store(DerefOf(Index(LPDP, Local0, )), DPBR)
                                                                }
                                                                Else {
                                                                    If(LEqual(_T_0, 0x021be430)) {
                                                                        Store(DerefOf(Index(LPDP, Local0, )), DPBR)
                                                                    }
                                                                    Else {
                                                                        If(LEqual(_T_0, 0x0222e430)) {
                                                                            Store(DerefOf(Index(LPDP, Local0, )), DPBR)
                                                                        }
                                                                        Else {
                                                                            If(LEqual(_T_0, 0x3151a34c)) {
                                                                                Store(DerefOf(Index(SEDP, Local0, )), DPBR)
                                                                            }
                                                                            Else {
                                                                                If(LEqual(_T_0, 0x3251a34c)) {
                                                                                    Store(DerefOf(Index(SEDP, Local0, )), DPBR)
                                                                                }
                                                                                Else {
                                                                                    If(LEqual(_T_0, 0x3651a34c)) {
                                                                                        Store(DerefOf(Index(SEDP, Local0, )), DPBR)
                                                                                    }
                                                                                    Else {
                                                                                        Store(DerefOf(Index(BCL2, Local0, )), DPBR)
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        ^^^^OVGA.AINT(One, DPBR)
                                        If(LEqual(LCDD, 0x021be430)) {
                                            If(LLess(FRSI, 0x02)) {
                                                Increment(FRSI)
                                                Store(One, BKON)
                                                Sleep(0x96)
                                                Store(Zero, BKON)
                                            }
                                        }
                                    }
                                    Else {
                                        Name(_T_1, Zero)
                                        Store(LCDD, _T_1)
                                        If(LEqual(_T_1, 0x20ecaf06)) {
                                            Store(DerefOf(Index(AU15, Local0, )), ^^^^LPC.EC0.BRTL)
                                        }
                                        Else {
                                            If(LEqual(_T_1, 0x21ecaf06)) {
                                                Store(DerefOf(Index(AU15, Local0, )), ^^^^LPC.EC0.BRTL)
                                            }
                                            Else {
                                                If(LEqual(_T_1, 0x22ecaf06)) {
                                                    Store(DerefOf(Index(AU15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                }
                                                Else {
                                                    If(LEqual(_T_1, 0x1571af0d)) {
                                                        Store(DerefOf(Index(CM15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                    }
                                                    Else {
                                                        If(LEqual(_T_1, 0x1680af0d)) {
                                                            Store(DerefOf(Index(CM15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                        }
                                                        Else {
                                                            If(LEqual(_T_1, 0x01dfe430)) {
                                                                Store(DerefOf(Index(LP15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                            }
                                                            Else {
                                                                If(LEqual(_T_1, 0x01e0e430)) {
                                                                    Store(DerefOf(Index(LP15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                }
                                                                Else {
                                                                    If(LEqual(_T_1, 0x021be430)) {
                                                                        Store(DerefOf(Index(LP15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                    }
                                                                    Else {
                                                                        If(LEqual(_T_1, 0x0222e430)) {
                                                                            Store(DerefOf(Index(LP15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                        }
                                                                        Else {
                                                                            If(LEqual(_T_1, 0x3151a34c)) {
                                                                                Store(DerefOf(Index(SM15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                            }
                                                                            Else {
                                                                                If(LEqual(_T_1, 0x3251a34c)) {
                                                                                    Store(DerefOf(Index(SM15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                                }
                                                                                Else {
                                                                                    If(LEqual(_T_1, 0x3651a34c)) {
                                                                                        Store(DerefOf(Index(SM15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                                    }
                                                                                    Else {
                                                                                        Store(DerefOf(Index(BCL1, 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(LCD1) {
                    Name(_ADR, 0x0110)
                    Method(_DCS) {
                        Store("LCD\x20\x2d\x2d\x20\x5fDCS", Debug)
                        If(LCA1) {
                            Return(0x1f)
                        }
                        Else {
                            Return(0x1d)
                        }
                    }
                    Method(_DGS) {
                        Store("LCD\x20\x2d\x2d\x20\x5fDCS", Debug)
                        If(LCA1) {
                            Return(One)
                        }
                        Else {
                            Return(Zero)
                        }
                    }
                    Method(_DSS, 1) {
                        Store("LCD\x20\x2d\x2d\x20\x5fDSS", Debug)
                    }
                    Name(FRSI, Zero)
                    Method(_BCL) {
                        If(LEqual(LCDD, 0x2774af06)) {
                            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(LNot(LLess(MAXH, 0x26))) {
                                Store(DerefOf(Index(BCL2, Local0, )), Local2)
                            }
                            Else {
                                If(LEqual(UM3C, One)) {
                                    Name(_T_0, Zero)
                                    Store(LCDD, _T_0)
                                    If(LEqual(_T_0, 0x20ecaf06)) {
                                        Store(DerefOf(Index(AUDP, Local0, )), Local2)
                                    }
                                    Else {
                                        If(LEqual(_T_0, 0x21ecaf06)) {
                                            Store(DerefOf(Index(AUDP, Local0, )), Local2)
                                        }
                                        Else {
                                            If(LEqual(_T_0, 0x22ecaf06)) {
                                                Store(DerefOf(Index(AUDP, Local0, )), Local2)
                                            }
                                            Else {
                                                If(LEqual(_T_0, 0x1571af0d)) {
                                                    Store(DerefOf(Index(CMDP, Local0, )), Local2)
                                                }
                                                Else {
                                                    If(LEqual(_T_0, 0x1680af0d)) {
                                                        Store(DerefOf(Index(CMDP, Local0, )), Local2)
                                                    }
                                                    Else {
                                                        If(LEqual(_T_0, 0x01dfe430)) {
                                                            Store(DerefOf(Index(LPDP, Local0, )), Local2)
                                                        }
                                                        Else {
                                                            If(LEqual(_T_0, 0x01e0e430)) {
                                                                Store(DerefOf(Index(LPDP, Local0, )), Local2)
                                                            }
                                                            Else {
                                                                If(LEqual(_T_0, 0x021be430)) {
                                                                    Store(DerefOf(Index(LPDP, Local0, )), Local2)
                                                                }
                                                                Else {
                                                                    If(LEqual(_T_0, 0x0222e430)) {
                                                                        Store(DerefOf(Index(LPDP, Local0, )), Local2)
                                                                    }
                                                                    Else {
                                                                        If(LEqual(_T_0, 0x3151a34c)) {
                                                                            Store(DerefOf(Index(SEDP, Local0, )), Local2)
                                                                        }
                                                                        Else {
                                                                            If(LEqual(_T_0, 0x3251a34c)) {
                                                                                Store(DerefOf(Index(SEDP, Local0, )), Local2)
                                                                            }
                                                                            Else {
                                                                                If(LEqual(_T_0, 0x3651a34c)) {
                                                                                    Store(DerefOf(Index(SEDP, Local0, )), Local2)
                                                                                }
                                                                                Else {
                                                                                    Store(DerefOf(Index(BCL2, Local0, )), Local2)
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                Else {
                                    Name(_T_1, Zero)
                                    Store(LCDD, _T_1)
                                    If(LEqual(_T_1, 0x20ecaf06)) {
                                        Store(DerefOf(Index(AU15, Local0, )), Local2)
                                    }
                                    Else {
                                        If(LEqual(_T_1, 0x21ecaf06)) {
                                            Store(DerefOf(Index(AU15, Local0, )), Local2)
                                        }
                                        Else {
                                            If(LEqual(_T_1, 0x22ecaf06)) {
                                                Store(DerefOf(Index(AU15, Local0, )), Local2)
                                            }
                                            Else {
                                                If(LEqual(_T_1, 0x1571af0d)) {
                                                    Store(DerefOf(Index(CM15, Local0, )), Local2)
                                                }
                                                Else {
                                                    If(LEqual(_T_1, 0x1680af0d)) {
                                                        Store(DerefOf(Index(CM15, Local0, )), Local2)
                                                    }
                                                    Else {
                                                        If(LEqual(_T_1, 0x01dfe430)) {
                                                            Store(DerefOf(Index(LP15, Local0, )), Local2)
                                                        }
                                                        Else {
                                                            If(LEqual(_T_1, 0x01e0e430)) {
                                                                Store(DerefOf(Index(LP15, Local0, )), Local2)
                                                            }
                                                            Else {
                                                                If(LEqual(_T_1, 0x021be430)) {
                                                                    Store(DerefOf(Index(LP15, Local0, )), Local2)
                                                                }
                                                                Else {
                                                                    If(LEqual(_T_1, 0x0222e430)) {
                                                                        Store(DerefOf(Index(LP15, Local0, )), Local2)
                                                                    }
                                                                    Else {
                                                                        If(LEqual(_T_1, 0x3151a34c)) {
                                                                            Store(DerefOf(Index(SM15, Local0, )), Local2)
                                                                        }
                                                                        Else {
                                                                            If(LEqual(_T_1, 0x3251a34c)) {
                                                                                Store(DerefOf(Index(SM15, Local0, )), Local2)
                                                                            }
                                                                            Else {
                                                                                If(LEqual(_T_1, 0x3651a34c)) {
                                                                                    Store(DerefOf(Index(SM15, Local0, )), Local2)
                                                                                }
                                                                                Else {
                                                                                    Store(DerefOf(Index(BCL1, 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(LNot(LLess(MAXH, 0x26))) {
                                    Store(DerefOf(Index(BCL2, Local0, )), ^^^^LPC.EC0.BRTL)
                                }
                                Else {
                                    If(LEqual(UM3C, One)) {
                                        Name(_T_0, Zero)
                                        Store(LCDD, _T_0)
                                        If(LEqual(_T_0, 0x20ecaf06)) {
                                            Store(DerefOf(Index(AUDP, Local0, )), DPBR)
                                        }
                                        Else {
                                            If(LEqual(_T_0, 0x21ecaf06)) {
                                                Store(DerefOf(Index(AUDP, Local0, )), DPBR)
                                            }
                                            Else {
                                                If(LEqual(_T_0, 0x22ecaf06)) {
                                                    Store(DerefOf(Index(AUDP, Local0, )), DPBR)
                                                }
                                                Else {
                                                    If(LEqual(_T_0, 0x1571af0d)) {
                                                        Store(DerefOf(Index(CMDP, Local0, )), DPBR)
                                                    }
                                                    Else {
                                                        If(LEqual(_T_0, 0x1680af0d)) {
                                                            Store(DerefOf(Index(CMDP, Local0, )), DPBR)
                                                        }
                                                        Else {
                                                            If(LEqual(_T_0, 0x01dfe430)) {
                                                                Store(DerefOf(Index(LPDP, Local0, )), DPBR)
                                                            }
                                                            Else {
                                                                If(LEqual(_T_0, 0x01e0e430)) {
                                                                    Store(DerefOf(Index(LPDP, Local0, )), DPBR)
                                                                }
                                                                Else {
                                                                    If(LEqual(_T_0, 0x021be430)) {
                                                                        Store(DerefOf(Index(LPDP, Local0, )), DPBR)
                                                                    }
                                                                    Else {
                                                                        If(LEqual(_T_0, 0x0222e430)) {
                                                                            Store(DerefOf(Index(LPDP, Local0, )), DPBR)
                                                                        }
                                                                        Else {
                                                                            If(LEqual(_T_0, 0x3151a34c)) {
                                                                                Store(DerefOf(Index(SEDP, Local0, )), DPBR)
                                                                            }
                                                                            Else {
                                                                                If(LEqual(_T_0, 0x3251a34c)) {
                                                                                    Store(DerefOf(Index(SEDP, Local0, )), DPBR)
                                                                                }
                                                                                Else {
                                                                                    If(LEqual(_T_0, 0x3651a34c)) {
                                                                                        Store(DerefOf(Index(SEDP, Local0, )), DPBR)
                                                                                    }
                                                                                    Else {
                                                                                        Store(DerefOf(Index(BCL2, Local0, )), DPBR)
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        ^^^^OVGA.AINT(One, DPBR)
                                        If(LEqual(LCDD, 0x021be430)) {
                                            If(LLess(FRSI, 0x02)) {
                                                Increment(FRSI)
                                                Store(One, BKON)
                                                Sleep(0x96)
                                                Store(Zero, BKON)
                                            }
                                        }
                                    }
                                    Else {
                                        Name(_T_1, Zero)
                                        Store(LCDD, _T_1)
                                        If(LEqual(_T_1, 0x20ecaf06)) {
                                            Store(DerefOf(Index(AU15, Local0, )), ^^^^LPC.EC0.BRTL)
                                        }
                                        Else {
                                            If(LEqual(_T_1, 0x21ecaf06)) {
                                                Store(DerefOf(Index(AU15, Local0, )), ^^^^LPC.EC0.BRTL)
                                            }
                                            Else {
                                                If(LEqual(_T_1, 0x22ecaf06)) {
                                                    Store(DerefOf(Index(AU15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                }
                                                Else {
                                                    If(LEqual(_T_1, 0x1571af0d)) {
                                                        Store(DerefOf(Index(CM15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                    }
                                                    Else {
                                                        If(LEqual(_T_1, 0x1680af0d)) {
                                                            Store(DerefOf(Index(CM15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                        }
                                                        Else {
                                                            If(LEqual(_T_1, 0x01dfe430)) {
                                                                Store(DerefOf(Index(LP15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                            }
                                                            Else {
                                                                If(LEqual(_T_1, 0x01e0e430)) {
                                                                    Store(DerefOf(Index(LP15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                }
                                                                Else {
                                                                    If(LEqual(_T_1, 0x021be430)) {
                                                                        Store(DerefOf(Index(LP15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                    }
                                                                    Else {
                                                                        If(LEqual(_T_1, 0x0222e430)) {
                                                                            Store(DerefOf(Index(LP15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                        }
                                                                        Else {
                                                                            If(LEqual(_T_1, 0x3151a34c)) {
                                                                                Store(DerefOf(Index(SM15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                            }
                                                                            Else {
                                                                                If(LEqual(_T_1, 0x3251a34c)) {
                                                                                    Store(DerefOf(Index(SM15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                                }
                                                                                Else {
                                                                                    If(LEqual(_T_1, 0x3651a34c)) {
                                                                                        Store(DerefOf(Index(SM15, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                                    }
                                                                                    Else {
                                                                                        Store(DerefOf(Index(BCL1, Local0, )), ^^^^LPC.EC0.BRTL)
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    Store(0x0b, Local0)
                                }
                            }
                            Increment(Local0)
                        }
                    }
                }
                Device(HDM1) {
                    Name(_ADR, 0x0210)
                    Method(_DCS) {
                        Store("HDMI\x20TV\x20\x2d\x2d\x20\x5fDCS", Debug)
                        If(HDT1) {
                            Return(0x1f)
                        }
                        Else {
                            Return(0x1d)
                        }
                    }
                    Method(_DGS) {
                        Store("HDMI\x20TV\x20\x2d\x2d\x20\x5fDCS", Debug)
                        If(HDT1) {
                            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, 0xf, 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("\x2aSYN1E04")
                }
                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,
                    CMOD,	1,
                    Offset(0x41),
                    W7OS,	1,
                    ,	1,
                    RFLE,	1,
                    ,	1,
                    CFAN,	1,
                    PFN2,	1,
                    WOLF,	1,
                    PFLG,	1,
                    Offset(0x43),
                    BBDA,	1,
                    CIRB,	1,
                    ,	4,
                    NQLB,	1,
                    Offset(0x44),
                    NICL,	1,
                    NICD,	1,
                    Offset(0x45),
                    ,	2,
                    QUAD,	1,
                    Offset(0x46),
                    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),
                    BTDC,	16,
                    Offset(0x74),
                    BATV,	16,
                    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,
                    ,	6,
                    RCDS,	1,
                    Offset(0xad),
                    SRAD,	8,
                    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(FRST, Zero)
                Name(BATO, Zero)
                Name(BATN, Zero)
                Name(BATF, 0xc0)
                Name(WBDS, Zero)
                Method(_REG, 2) {
                    Store(One, ECOK)
                    TRAP(TRTP, PSSS)
                    GBAS()
                    If(LNot(LLess(OSYS, 0x07d9))) {
                        Store(One, W7OS)
                    }
                    Else {
                        Store(Zero, W7OS)
                    }
                    CMSW(0x6e, Zero)
                    PSSC()
                }
                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)
                        PSSC()
                        If(SW2S) {
                            If(LAnd(LLess(OSYS, 0x07d6), LLess(BRAC, 0x0b))) {
                                Store(BRAC, Local0)
                                If(LNot(LLess(MAXH, 0x26))) {
                                    Store(DerefOf(Index(BCL2, Local0, )), BRTL)
                                }
                                Else {
                                    Store(DerefOf(Index(BCL1, Local0, )), BRTL)
                                }
                            }
                            If(LAnd(LEqual(CRPS, One), LNot(LLess(MCHD, 0x04)))) {
                                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)
                                If(LNot(LLess(MAXH, 0x26))) {
                                    Store(DerefOf(Index(BCL2, Local0, )), BRTL)
                                }
                                Else {
                                    Store(DerefOf(Index(BCL1, Local0, )), BRTL)
                                }
                            }
                            If(LAnd(LEqual(CRPS, One), LNot(LLess(MCHD, 0x04)))) {
                                Store(0x40, ^^^EXP5.J380.D3EF)
                            }
                        }
                    }
                    ^^^^ACEL.ADJT()
                }
                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)
                }
                Method(_Q81) {
                    Store("\x5fQ81\x20\x3a\x20Temperature\x20Down", Debug)
                    Notify(\_TZ.TZ01, 0x80)
                }
                Method(_Q8A) {
                    If(LIDE) {
                        Store("\x5fQ8A\x20\x3a\x20LID\x20Switch\x20Event", Debug)
                        Store(Zero, LIDE)
                        Notify(LID0, 0x80)
                        ^^^^ACEL.ADJT()
                    }
                }
                Method(_Q0D) {
                    If(IGDS) {
                        ^^^OVGA.GHDS(Zero)
                        Sleep(0xc8)
                    }
                    Else {
                        TRAP(TRTI, 0x0b)
                        Store(NSTE, Local3)
                        Store(ShiftRight(And(Local3, 0x02, ), One, ), ^^^PEGP.VGA.CRTA)
                        If(LGreater(VGAT, One)) {
                            Store(And(Local3, One, ), ^^^PEGP.VGA.LCA1)
                            Store(ShiftRight(And(Local3, 0x10, ), 0x04, ), ^^^PEGP.VGA.HDT1)
                        }
                        Else {
                            Store(And(Local3, One, ), ^^^PEGP.VGA.LCDA)
                            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 {
                            If(LGreater(VGAT, One)) {
                                Notify(^^^PEGP.VGA.LCD1, 0x86)
                            }
                            Else {
                                Notify(^^^PEGP.VGA.LCD, 0x86)
                            }
                        }
                    }
                    Else {
                        BRXP(One)
                    }
                }
                Method(_Q10) {
                    If(LNot(LLess(OSYS, 0x07d6))) {
                        If(IGDS) {
                            Notify(^^^OVGA.DD03, 0x87)
                        }
                        Else {
                            If(LGreater(VGAT, One)) {
                                Notify(^^^PEGP.VGA.LCD1, 0x87)
                            }
                            Else {
                                Notify(^^^PEGP.VGA.LCD, 0x87)
                            }
                        }
                    }
                    Else {
                        BRXP(0x02)
                    }
                }
                Method(_Q15) {
                    If(LEqual(FRST, Zero)) {
                        If(LAnd(LEqual(RFOF, One), LEqual(WAOK, Zero))) {
                            Or(WAB1, 0x08, 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)
                        If(LEqual(FRST, One)) {
                            Or(WAB5, 0x08, WAB5)
                            Or(WAB4, 0x08, WAB4)
                        }
                        Else {
                            Store(One, FRST)
                            Or(WAB5, 0x08, WAB5)
                            If(LEqual(RFOF, Zero)) {
                                Or(WAB4, 0x08, WAB4)
                            }
                            Else {
                                And(WAB4, 0xf7, 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) {
                }
                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, 0x10)) {
                        Notify(EBTN, 0x02)
                    }
                    If(LEqual(Local0, 0x2c)) {
                        Notify(EJET, 0x02)
                    }
                    If(LEqual(Local0, 0x08)) {
                        Notify(TBTN, 0x02)
                    }
                    Store(Zero, SVIM)
                }
            }
            Device(CIR0) {
                Method(_HID) {
                    Return("\x2aENE0100")
                }
                Method(_STA) {
                    Return(0x0f)
                }
                Method(_CRS) {
                    Name(BUFA, Buffer(0x0d) {0x47, 0x1, 0x80, 0x3, 0x80, 0x3, 0x1, 0x4, 0x22, 0x10, 0x0, 0x79, 0x0 })
                    Return(BUFA)
                }
                Name(_PRS, Buffer(0x0d) {0x47, 0x1, 0x80, 0x3, 0x80, 0x3, 0x1, 0x4, 0x22, 0x10, 0x0, 0x79, 0x0 })
                Name(_PRW, Package(0x02) {
                    0x18,
                    0x05,
                })
            }
            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(RHUB) {
                Name(_ADR, Zero)
                Device(PRT1) {
                    Name(_ADR, One)
                    Name(_UPC, Package(0x04) {
                        0xff,
                        0xff,
                        Zero,
                        Zero,
                    })
                    Name(_PLD, Buffer(0x10) {0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 })
                }
            }
        }
        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) {0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 })
                }
            }
        }
        Device(EHC1) {
            Name(_ADR, 0x001d0007)
            Name(_PRW, Package(0x02) {
                0x0d,
                0x03,
            })
            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) {0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 })
                }
                Device(PRT5) {
                    Name(_ADR, 0x05)
                }
                Device(PRT6) {
                    Name(_ADR, 0x06)
                }
                Device(PRT7) {
                    Name(_ADR, 0x07)
                }
                Device(PRT8) {
                    Name(_ADR, 0x08)
                    Name(_UPC, Package(0x04) {
                        0xff,
                        0xff,
                        Zero,
                        Zero,
                    })
                    Name(_PLD, Buffer(0x10) {0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 })
                }
            }
        }
        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)
            Name(_PRW, Package(0x02) {
                0x0d,
                0x03,
            })
            Device(RHUB) {
                Name(_ADR, Zero)
                Device(PRT1) {
                    Name(_ADR, One)
                    Name(_UPC, Package(0x04) {
                        0xff,
                        0xff,
                        Zero,
                        Zero,
                    })
                    Name(_PLD, Buffer(0x10) {0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 })
                }
                Device(PRT2) {
                    Name(_ADR, 0x02)
                }
                Device(PRT3) {
                    Name(_ADR, 0x03)
                }
                Device(PRT4) {
                    Name(_ADR, 0x04)
                }
            }
        }
        Device(SBUS) {
            Name(_ADR, 0x001f0003)
            OperationRegion(SMBP, PCI_Config, 0x20, 0xc0)
            Field(SMBP, DWordAcc, NoLock, Preserve) {
                BMBS,	16,
                Offset(0x20),
                ,	2,
                I2CE,	1
            }
            OperationRegion(SMBI, SystemIO, And(BMBS, 0xfffe, ), 0x10)
            Field(SMBI, ByteAcc, NoLock, Preserve) {
                HSTS,	8,
                Offset(0x2),
                HCON,	8,
                HCOM,	8,
                TXSA,	8,
                DAT0,	8,
                DAT1,	8,
                HBDR,	8,
                PECR,	8,
                RXSA,	8,
                SDAT,	16
            }
            Method(SSXB, 2, Serialized) {
                If(STRT()) {
                    Return(Zero)
                }
                Store(0xbf, HSTS)
                Store(Arg0, TXSA)
                Store(Arg1, HCOM)
                Store(0x48, HCON)
                If(COMP()) {
                    Or(HSTS, 0xff, HSTS)
                    Return(One)
                }
                Return(Zero)
            }
            Method(SRXB, 1, Serialized) {
                If(STRT()) {
                    Return(0xffff)
                }
                Store(0xbf, HSTS)
                Store(Or(Arg0, One, ), TXSA)
                Store(0x44, HCON)
                If(COMP()) {
                    Or(HSTS, 0xff, HSTS)
                    Return(DAT0)
                }
                Return(0xffff)
            }
            Method(SWRB, 3, Serialized) {
                If(STRT()) {
                    Return(Zero)
                }
                Store(0xbf, HSTS)
                Store(Arg0, TXSA)
                Store(Arg1, HCOM)
                Store(Arg2, DAT0)
                Store(0x48, HCON)
                If(COMP()) {
                    Or(HSTS, 0xff, HSTS)
                    Return(One)
                }
                Return(Zero)
            }
            Method(SRDB, 2, Serialized) {
                If(STRT()) {
                    Store(0x62, P80H)
                    Return(0xffff)
                }
                Store(0xbf, HSTS)
                Store(Or(Arg0, One, ), TXSA)
                Store(Arg1, HCOM)
                Store(0x48, HCON)
                If(COMP()) {
                    Store(0x63, P80H)
                    Or(HSTS, 0xff, HSTS)
                    Return(DAT0)
                }
                Store(0x64, P80H)
                Return(0xffff)
            }
            Method(SBLW, 3, Serialized) {
                If(STRT()) {
                    Return(Zero)
                }
                Store(0xbf, HSTS)
                Store(Arg0, TXSA)
                Store(Arg1, HCOM)
                Store(SizeOf(Arg2), DAT0)
                Store(Zero, Local1)
                Store(DerefOf(Index(Arg2, Zero, )), HBDR)
                Store(0x54, HCON)
                While(LGreater(SizeOf(Arg2), Local1)) {
                    Store(0x0a, Local0)
                    While(LAnd(LNot(And(HSTS, 0x80, )), Local0)) {
                        Sleep(0x64)
                        Decrement(Local0)
                    }
                    If(LNot(Local0)) {
                        KILL()
                        Return(Zero)
                    }
                    Store(0x80, HSTS)
                    Increment(Local1)
                    If(LGreater(SizeOf(Arg2), Local1)) {
                        Store(DerefOf(Index(Arg2, Local1, )), HBDR)
                    }
                }
                If(COMP()) {
                    Or(HSTS, 0xff, HSTS)
                    Return(One)
                }
                Return(Zero)
            }
            Method(SBLR, 2, Serialized) {
                Name(TBUF, Buffer(0x0100) { })
                If(STRT()) {
                    Return(Zero)
                }
                Store(0xbf, HSTS)
                Store(Or(Arg0, One, ), TXSA)
                Store(Arg1, HCOM)
                Store(0x54, HCON)
                Store(0x0a, Local0)
                While(LAnd(LNot(And(HSTS, 0x80, )), Local0)) {
                    Sleep(0x64)
                    Decrement(Local0)
                }
                If(LNot(Local0)) {
                    KILL()
                    Return(Zero)
                }
                Store(DAT0, Index(TBUF, Zero, ))
                Store(0x80, HSTS)
                Store(One, Local1)
                While(LLess(Local1, DerefOf(Index(TBUF, Zero, )))) {
                    Store(0x0a, Local0)
                    While(LAnd(LNot(And(HSTS, 0x80, )), Local0)) {
                        Sleep(0x64)
                        Decrement(Local0)
                    }
                    If(LNot(Local0)) {
                        KILL()
                        Return(Zero)
                    }
                    Store(HBDR, Index(TBUF, Local1, ))
                    Store(0x80, HSTS)
                    Increment(Local1)
                }
                If(COMP()) {
                    Or(HSTS, 0xff, HSTS)
                    Return(TBUF)
                }
                Return(Zero)
            }
            Method(STRT, 0, Serialized) {
                Store(0x64, Local0)
                While(Local0) {
                    If(And(HSTS, One, )) {
                        Decrement(Local0)
                        Sleep(0x0a)
                        If(LEqual(Local0, Zero)) {
                            KILL()
                        }
                    }
                    Else {
                        Return(Zero)
                    }
                }
                Return(One)
            }
            Method(COMP, 0, Serialized) {
                Store(0x64, Local0)
                While(Local0) {
                    If(And(HSTS, 0x02, )) {
                        Return(One)
                    }
                    Else {
                        Decrement(Local0)
                        Sleep(0x0a)
                        If(LEqual(Local0, Zero)) {
                            KILL()
                        }
                    }
                }
                Return(Zero)
            }
            Method(KILL, 0, Serialized) {
                Or(HCON, 0x02, HCON)
                Or(HSTS, 0xff, HSTS)
            }
        }
        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)
                Method(_RMV) {
                    If(LEqual(LPSD, One)) {
                        Return(Zero)
                    }
                    Else {
                        Return(Zero)
                    }
                }
                Method(_STA) {
                    If(PDSX) {
                        Return(0x0f)
                    }
                    Else {
                        Return(Zero)
                    }
                }
                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(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(0xac),
                    D3EF,	8
                }
                Method(_STA) {
                    If(LNot(LEqual(DVID, Ones))) {
                        Return(0x0f)
                    }
                    Else {
                        Return(Zero)
                    }
                }
                Method(_RMV) {
                    Return(Zero)
                }
            }
            Device(J381) {
                Name(_ADR, One)
                Method(_RMV) {
                    Return(Zero)
                }
            }
            Device(J382) {
                Name(_ADR, 0x02)
                Method(_RMV) {
                    Return(Zero)
                }
            }
            Device(J383) {
                Name(_ADR, 0x03)
                Method(_RMV) {
                    Return(Zero)
                }
            }
            Device(J384) {
                Name(_ADR, 0x04)
                Method(_RMV) {
                    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, 0x0b)) {
                Store(Local1, Local2)
                If(LNot(LLess(MAXH, 0x26))) {
                    Store(DerefOf(Index(BCL2, 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(LNot(LLess(MAXH, 0x26))) {
                        Store(DerefOf(Index(BCL2, Local2, )), ^LPC.EC0.BRTL)
                    }
                    Else {
                        Store(DerefOf(Index(BCL1, Local2, )), ^LPC.EC0.BRTL)
                    }
                    If(^LPC.EC0.SW2S) {
                        Store(Local2, BRAC)
                    }
                    Else {
                        Store(Local2, BRDC)
                    }
                    Store(0x0b, 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, 0x13, 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(LNot(LLess(VGAT, 0x02))) {
                        Name(_T_0, Zero)
                        Store(Local0, _T_0)
                        If(LEqual(_T_0, One)) {
                            Store(One, ^^PCI0.PEGP.VGA.LCA1)
                            Store(Zero, ^^PCI0.PEGP.VGA.CRTA)
                            Store(Zero, ^^PCI0.PEGP.VGA.HDT1)
                        }
                        Else {
                            If(LEqual(_T_0, 0x02)) {
                                Store(Zero, ^^PCI0.PEGP.VGA.LCA1)
                                Store(One, ^^PCI0.PEGP.VGA.CRTA)
                                Store(Zero, ^^PCI0.PEGP.VGA.HDT1)
                            }
                            Else {
                                If(LEqual(_T_0, 0x03)) {
                                    Store(One, ^^PCI0.PEGP.VGA.LCA1)
                                    Store(One, ^^PCI0.PEGP.VGA.CRTA)
                                    Store(Zero, ^^PCI0.PEGP.VGA.HDT1)
                                }
                                Else {
                                    If(LEqual(_T_0, 0x10)) {
                                        Store(Zero, ^^PCI0.PEGP.VGA.LCA1)
                                        Store(Zero, ^^PCI0.PEGP.VGA.CRTA)
                                        Store(One, ^^PCI0.PEGP.VGA.HDT1)
                                    }
                                    Else {
                                        If(LEqual(_T_0, 0x11)) {
                                            Store(One, ^^PCI0.PEGP.VGA.LCA1)
                                            Store(Zero, ^^PCI0.PEGP.VGA.CRTA)
                                            Store(One, ^^PCI0.PEGP.VGA.HDT1)
                                        }
                                        Else {
                                            If(LEqual(_T_0, 0x12)) {
                                                Store(Zero, ^^PCI0.PEGP.VGA.LCA1)
                                                Store(One, ^^PCI0.PEGP.VGA.CRTA)
                                                Store(One, ^^PCI0.PEGP.VGA.HDT1)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    Else {
                        Name(_T_1, Zero)
                        Store(Local0, _T_1)
                        If(LEqual(_T_1, One)) {
                            Store(One, ^^PCI0.PEGP.VGA.LCDA)
                            Store(Zero, ^^PCI0.PEGP.VGA.CRTA)
                            Store(Zero, ^^PCI0.PEGP.VGA.HDTV)
                        }
                        Else {
                            If(LEqual(_T_1, 0x02)) {
                                Store(Zero, ^^PCI0.PEGP.VGA.LCDA)
                                Store(One, ^^PCI0.PEGP.VGA.CRTA)
                                Store(Zero, ^^PCI0.PEGP.VGA.HDTV)
                            }
                            Else {
                                If(LEqual(_T_1, 0x03)) {
                                    Store(One, ^^PCI0.PEGP.VGA.LCDA)
                                    Store(One, ^^PCI0.PEGP.VGA.CRTA)
                                    Store(Zero, ^^PCI0.PEGP.VGA.HDTV)
                                }
                                Else {
                                    If(LEqual(_T_1, 0x10)) {
                                        Store(Zero, ^^PCI0.PEGP.VGA.LCDA)
                                        Store(Zero, ^^PCI0.PEGP.VGA.CRTA)
                                        Store(One, ^^PCI0.PEGP.VGA.HDTV)
                                    }
                                    Else {
                                        If(LEqual(_T_1, 0x11)) {
                                            Store(One, ^^PCI0.PEGP.VGA.LCDA)
                                            Store(Zero, ^^PCI0.PEGP.VGA.CRTA)
                                            Store(One, ^^PCI0.PEGP.VGA.HDTV)
                                        }
                                        Else {
                                            If(LEqual(_T_1, 0x12)) {
                                                Store(Zero, ^^PCI0.PEGP.VGA.LCDA)
                                                Store(One, ^^PCI0.PEGP.VGA.CRTA)
                                                Store(One, ^^PCI0.PEGP.VGA.HDTV)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    If(LNot(LLess(OSYS, 0x07d1))) {
                        Notify(^^PCI0.PEGP.VGA, 0x80)
                        Sleep(0x02ee)
                    }
                    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, 0x95, 0x21, 0x96, 0x21, 0x97, 0x21, 0x98, 0x21, 0x99, 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(ShiftRight(And(Local3, 0x02, ), One, ), ^^PCI0.PEGP.VGA.CRTA)
                    If(LGreater(VGAT, One)) {
                        Store(And(Local3, One, ), ^^PCI0.PEGP.VGA.LCA1)
                        Store(ShiftRight(And(Local3, 0x10, ), 0x04, ), ^^PCI0.PEGP.VGA.HDT1)
                    }
                    Else {
                        Store(And(Local3, One, ), ^^PCI0.PEGP.VGA.LCDA)
                        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 {
                        If(LGreater(VGAT, One)) {
                            Notify(^^PCI0.PEGP.VGA.LCD1, 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 {
                        If(LGreater(VGAT, One)) {
                            Notify(^^PCI0.PEGP.VGA.LCD1, 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(LNot(LLess(OSYS, 0x07d9))) {
                    If(ECOK) {
                        Store(One, ^^PCI0.LPC.EC0.RCDS)
                    }
                }
                Else {
                    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(ShiftRight(And(Local3, 0x02, ), One, ), ^^PCI0.PEGP.VGA.CRTA)
                        If(LGreater(VGAT, One)) {
                            Store(And(Local3, One, ), ^^PCI0.PEGP.VGA.LCA1)
                            Store(ShiftRight(And(Local3, 0x10, ), 0x04, ), ^^PCI0.PEGP.VGA.HDT1)
                        }
                        Else {
                            Store(And(Local3, One, ), ^^PCI0.PEGP.VGA.LCDA)
                            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(Local1, 0x05)) {
                Store(0xe6, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
                Store(0x20, Index(DerefOf(Index(Local0, 0x02, )), One, ))
            }
            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(Local1, 0x21)) {
                Store(0x8e, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
                Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
            }
            If(LEqual(Local1, 0x22)) {
                Store(0x8f, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
                Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
            }
            If(LEqual(Local1, 0x23)) {
                Store(0x90, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
                Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
            }
            If(LEqual(Local1, 0x24)) {
                Store(0x91, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
                Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
            }
            If(LEqual(Local1, 0x25)) {
                Store(0x92, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
                Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
            }
            If(LEqual(Local1, 0x26)) {
                Store(0x93, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
                Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
            }
            If(LEqual(Local1, 0x27)) {
                Store(0x95, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
                Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
            }
            If(LEqual(Local1, 0x28)) {
                Store(0x96, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
                Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
            }
            If(LEqual(Local1, 0x29)) {
                Store(0x97, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
                Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
            }
            If(LEqual(Local1, 0x2a)) {
                Store(0x98, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
                Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
            }
            If(LEqual(Local1, 0x2b)) {
                Store(0x99, Index(DerefOf(Index(Local0, 0x02, )), Zero, ))
                Store(0x21, Index(DerefOf(Index(Local0, 0x02, )), One, ))
            }
            If(LEqual(Local1, 0x2c)) {
                Notify(EJET, 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.SRAD, Local0)
            }
            If(LEqual(Local0, 0x02)) {
                Store(One, Local1)
            }
            If(LEqual(Local0, 0x03)) {
                Store(One, Local1)
            }
            If(LEqual(Local0, 0x04)) {
                Store(One, Local1)
            }
            Else {
                Store(One, Local1)
            }
            If(LEqual(Local0, 0xff)) {
                Store(0x02, 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(LEqual(Local1, 0xfe)) {
                If(LEqual(Local2, One)) {
                    Store(0x08, WAB4)
                    Or(0x0c, WAB1, WAB1)
                    Or(0x0c, WAB2, WAB2)
                    Or(0x0c, WAB3, WAB3)
                }
                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)) {
                            Or(0x0c, WAB1, WAB1)
                            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)) {
                            Or(0x0c, WAB2, WAB2)
                            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, 0x5
 , 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, 0x9c,
  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, 0x2, 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, 0
 xc0, 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, 0
 x61, 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, 0x37, 0x42, 0xc4, 0x10, 0xaf, 0xc, 0x81, 0x5e, 0x12, 0xc2, 0x7, 0x79, 0xec, 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, 0x
 f3, 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(ACEL) {
        Name(_HID, 0x04001122)
        Name(DVPN, 0xff)
        Name(CNST, 0xff)
        Method(_INI) {
            INIT()
        }
        Name(_CRS, Buffer(0x0b) {0x89, 0x6, 0x0, 0x7, 0x1, 0x17, 0x0, 0x0, 0x0, 0x79, 0x0 })
        Method(_STA) {
            Store(0x50, P80H)
            If(LNot(LLess(OSYS, 0x07d6))) {
                If(LEqual(DVPN, 0xff)) {
                    Store(0x60, P80H)
                    Store(0x0f, Local0)
                    Store(^^PCI0.SBUS.SRDB(0x39, 0x20), Local1)
                    Store(0x61, P80H)
                    If(LEqual(Local1, 0xffff)) {
                        Store(Zero, Local0)
                    }
                    Store(Local0, DVPN)
                }
            }
            Else {
                Store(Zero, DVPN)
            }
            Return(DVPN)
        }
        Method(INIT, 0, Serialized) {
            If(_STA()) {
                Store(0x51, P80H)
                ^^PCI0.SBUS.SWRB(0x38, 0x20, 0x47)
                ^^PCI0.SBUS.SWRB(0x38, 0x21, 0x0a)
                ^^PCI0.SBUS.SWRB(0x38, 0x32, 0x14)
                ^^PCI0.SBUS.SWRB(0x38, 0x33, 0x02)
                ^^PCI0.SBUS.SWRB(0x38, 0x30, 0x95)
                Store(^^PCI0.SBUS.SRDB(0x39, 0x23), Local0)
                ^^PCI0.SBUS.SWRB(0x38, 0x36, 0x11)
                ^^PCI0.SBUS.SWRB(0x38, 0x37, One)
                ^^PCI0.SBUS.SWRB(0x38, 0x34, 0x2a)
                Store(0xff, CNST)
                ADJT()
            }
        }
        Method(ADJT, 0, Serialized) {
            If(_STA()) {
                Store(0x52, P80H)
                Store(PWRS, Local0)
                If(LAnd(LEqual(^^LID0._LID(), Zero), LEqual(Local0, Zero))) {
                    If(LNot(LEqual(CNST, One))) {
                        Store(One, CNST)
                        ^^PCI0.SBUS.SWRB(0x38, 0x22, 0xc2)
                    }
                }
                Else {
                    If(LNot(LEqual(CNST, Zero))) {
                        Store(Zero, CNST)
                        ^^PCI0.SBUS.SWRB(0x38, 0x22, 0xc1)
                    }
                }
            }
        }
        Method(CLRI, 0, Serialized) {
            Store(0x53, P80H)
            Store(Zero, Local0)
            If(LEqual(PWRS, Zero)) {
                If(LEqual(^^BAT0._STA(), 0x1f)) {
                    If(ECOK) {
                        If(LNot(LGreater(^^PCI0.LPC.EC0.MBRM, 0x96))) {
                            Store(Zero, Local0)
                        }
                    }
                }
            }
            Return(Local0)
        }
        Method(ALRD, 1, Serialized) {
            Store(0x54, P80H)
            Store(^^PCI0.SBUS.SRDB(0x39, Arg0), Local0)
            Return(Local0)
        }
        Method(ALWR, 2, Serialized) {
            Store(0x55, P80H)
            Store(^^PCI0.SBUS.SWRB(0x38, Arg0, Arg1), Local0)
            Return(Local0)
        }
        Method(ALED, 1, Serialized) {
            Store(0x56, P80H)
            If(Arg0) {
                Store(One, HLED)
            }
            Else {
                Store(Zero, HLED)
            }
        }
        Method(ALID, 1, Serialized) {
            Store(0x57, P80H)
            Return(^^LID0._LID())
        }
        Method(ADSN, 0, Serialized) {
            Store(0x58, P80H)
            Store(Zero, Local0)
            Return(Local0)
        }
    }
    Device(QBTN) {
        Name(_HID, 0x320cd041)
        Name(_UID, One)
        Method(_STA) {
            If(LEqual(^^PCI0.TPOS, 0x40)) {
                Return(0x0f)
            }
            Else {
                Return(Zero)
            }
        }
        Method(GHID) {
            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) {
            Return(Buffer(One) {0x2 })
        }
    }
    Device(EBTN) {
        Name(_HID, 0x320cd041)
        Name(_UID, 0x04)
        Method(_STA) {
            If(LEqual(^^PCI0.TPOS, 0x40)) {
                Return(0x0f)
            }
            Else {
                Return(Zero)
            }
        }
        Method(GHID) {
            Return(Buffer(One) {0x4 })
        }
    }
    Device(EJET) {
        Name(_HID, 0x320cd041)
        Name(_UID, 0x05)
        Method(_STA) {
            If(LEqual(^^PCI0.TPOS, 0x40)) {
                Return(0x0f)
            }
            Else {
                Return(Zero)
            }
        }
        Method(GHID) {
            Return(Buffer(One) {0x5 })
        }
    }
    Device(TBTN) {
        Name(_HID, 0x320cd041)
        Name(_UID, 0x08)
        Method(_STA) {
            If(LEqual(^^PCI0.TPOS, 0x40)) {
                Return(0x0f)
            }
            Else {
                Return(Zero)
            }
        }
        Method(GHID) {
            Return(Buffer(One) {0x8 })
        }
    }
}

}
/*
DMAR: Length=192, Revision=1, Checksum=163,
	OEMID=, OEM Table ID=, OEM Revision=0x1,
	Creator ID=, Creator Revision=0x0
 */
/*
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=67,
	OEMID=PmRef, OEM Table ID=CpuPm, OEM Revision=0x3000,
	Creator ID=INTL, Creator Revision=0x20051117
 */

>How-To-Repeat:

>Fix:

>Release-Note:

>Audit-Trail:
From: "Jukka Ruohonen" <jruoho@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/42583 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.

State-Changed-From-To: open->feedback
State-Changed-By: jruoho@NetBSD.org
State-Changed-When: Sun, 12 Jun 2011 10:19:31 +0000
State-Changed-Why:
I have committed few relevant changes that possibly fixed the issue.
Can you verify that the problem is still present with the latest HEAD?

I have committed few relevant changes that possibly fixed the issue.
Can you verify that the problem is still present with the latest HEAD?



State-Changed-From-To: feedback->closed
State-Changed-By: jruoho@NetBSD.org
State-Changed-When: Thu, 21 Jul 2011 16:50:48 +0000
State-Changed-Why:

Feedback timeout. Should be fixed in HEAD.



>Unformatted:

NetBSD Home
NetBSD PR Database Search

(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.