NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/42583: ACPI errors: laptop HP DV6-1334US (keys: EmbeddedControl, AE_NOT_FOUND, acpibat0, acpitz0, _TMP)



>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:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jan 06 01:05:00 +0000 2010
>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@localhost:/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:



Home | Main Index | Thread Index | Old Index