Packard Bell EasyNote XS stuck at acpitimer0: on current

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Packard Bell EasyNote XS stuck at acpitimer0: on current

asmith-4
Hi,

I decided to buy a Packard Bell EasyNote XS which will be available in  
the US from Walmart as the Everex Cloudbook sometime soon.

The device comes preloaded with Windows XP, so needless to say I want  
to get that off ASAP and something more useful onto it.

Basically the device is an implementation of the reference design of  
the VIA Nanobook without the touch screen.

Using OpenBSD 4.2 release the box works absolutely fine, however, the  
acpi code fails to understand some of the structures and gives up.

Under OpenBSD -current, however, the device does seem to recognise  
some of the acpi entires correctly and tries to initialise some of the  
devices. Unfortunately it sticks just after printing the message about  
acpitimer0.

Here's the last few lines...

mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 11/02/07, BIOS32 rev. 0 @  
0xfdd64 SMBIOS rev. 2.4 @ 0xdc010 (47 entries)
bios0: vendor Phoenix Technologies LTD version "6.00" date 11/02/2007
bios0: PACKARD BELL BV Pegasus
acpi0 at bios0: rev 0
acpi0: tables DSDT FACP SSDT APIC MCFG
acpi: wakeup devices PCIO(S5) SP2P(S5) LAN_(S3) LID_(S3)
acpitimer0 at acpi0: 3579545 Hz, 24 bits

Once it sticks at that location you have to hold power (>3 seconds) to  
get the thing to power off and whilst checking this out I have had  
current and release kernels on the root of the fs. The interesting  
thing is that once you boot this kernel and it sticks like this the  
release kernel fails to boot and sticks at the message about the  
kernel entry point once the boot loader has loaded it. For some quirky  
reason if you attach a USB CD and boot from the install CD then  
restart this seems to fix this issue. Very strange indeed.

I attach the acpidump output produced from a 4.2 release install and  
was wondering if there is anything else that may help identify the  
problem..?

Regards,

-Andy

/*
RSD PTR: Checksum=87, OEMID=PTLTD, RsdtAddress=0x3bee5663
  */
/*
RSDT: Length=52, Revision=1, Checksum=193,
        OEMID=PTLTD, OEM Table ID=  RSDT, OEM Revision=0x6040000,
        Creator ID= LTP, Creator Revision=0x0
  */
/*
        Entries={ 0x3bee9a46, 0x3bee9aba, 0x3bee9f74, 0x3bee9fc4 }
  */
/*
        DSDT=0x3bee5697
        INT_MODEL=PIC
        SCI_INT=10
        SMI_CMD=0x402f, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0
        PM1a_EVT_BLK=0x4000-0x4003
        PM1a_CNT_BLK=0x4004-0x4005
        PM2_CNT_BLK=0x22-0x22
        PM2_TMR_BLK=0x4008-0x400b
        PM2_GPE0_BLK=0x4020-0x4023
        P_LVL2_LAT=80ms, P_LVL3_LAT=800ms
        FLUSH_SIZE=0, FLUSH_STRIDE=0
        DUTY_OFFSET=0, DUTY_WIDTH=4
        DAY_ALRM=125, MON_ALRM=126, CENTURY=50
        Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4}
  */
/*
DSDT: Length=17327, Revision=1, Checksum=55,
        OEMID=VIA, OEM Table ID=PTL_ACPI, OEM Revision=0x6040000,
        Creator ID=MSFT, Creator Revision=0x100000e
  */
DefinitionBlock (
"acpi_dsdt.aml", //Output filename
"DSDT", //Signature
0x1, //DSDT Revision
"VIA", //OEMID
"PTL_ACPI", //TABLE ID
0x6040000 //OEM Revision
)

{
Scope(\_PR_) {
     Processor(CPU0, 0, 0x4010, 0x6) {
     }
}
Scope(\) {
     Name(PICF, 0x0)
     Method(_PIC, 1) {
         Store(Arg0, PICF)
     }
}
Name(_S0_, Package(0x2) {
     0x0,
     0x0,
})
Name(_S3_, Package(0x2) {
     0x1,
     0x1,
})
Name(_S4_, Package(0x2) {
     0x2,
     0x2,
})
Name(_S5_, Package(0x2) {
     0x2,
     0x2,
})
Scope(\_SB_) {
     Name(OSTB, Ones)
     OperationRegion(OSTY, SystemMemory, 0x3beeaf4c, 0x00000001)
     Field(OSTY, AnyAcc, NoLock, Preserve) {
         TPOS, 8
     }
     Method(OSTP) {
         If(LEqual(^OSTB, Ones)) {
             If(CondRefOf(\_OSI, Local0)) {
                 If(\_OSI) {
                     "Windows 2001"
                     Store(0x8, ^OSTB)
                     Store(0x8, ^TPOS)
                 }
                 Else {
                     Store(0x0, ^OSTB)
                     Store(0x0, ^TPOS)
                 }
             }
             Else {
                 If(CondRefOf(\_OS_, Local0)) {
                     If(^SEQL(\_OS_, "Microsoft Windows")) {
                         Store(0x1, ^OSTB)
                         Store(0x1, ^TPOS)
                     }
                     Else {
                         If(^SEQL(\_OS_, "Microsoft WindowsME:  
Millennium Edition")) {
                             Store(0x2, ^OSTB)
                             Store(0x2, ^TPOS)
                         }
                         Else {
                             If(^SEQL(\_OS_, "Microsoft Windows NT")) {
                                 Store(0x4, ^OSTB)
                                 Store(0x4, ^TPOS)
                             }
                             Else {
                                 Store(0x0, ^OSTB)
                                 Store(0x0, ^TPOS)
                             }
                         }
                     }
                 }
                 Else {
                     Store(0x0, ^OSTB)
                     Store(0x0, ^TPOS)
                 }
             }
         }
         Return(^OSTB)
     }
     Method(SEQL, 2, Serialized) {
         Store(SizeOf(Arg0), Local0)
         Store(SizeOf(Arg1), Local1)
         If(LNot(LEqual(Local0, Local1))) {
             Return(Zero)
         }
         Name(BUF0, Buffer(Local0) { })
         Store(Arg0, BUF0)
         Name(BUF1, Buffer(Local0) { })
         Store(Arg1, BUF1)
         Store(Zero, Local2)
         While(LLess(Local2, Local0)) {
             Store(DerefOf(Index(BUF0, Local2, )), Local3)
             Store(DerefOf(Index(BUF1, Local2, )), Local4)
             If(LNot(LEqual(Local3, Local4))) {
                 Return(Zero)
             }
             Increment(Local2)
         }
         Return(One)
     }
}
Method(\_PTS, 1) {
     Store(Arg0, \_SB_.PCI0.PIB_.Z000)
     \_SB_.PCI0.PIB_.PMWT(0xec, 0x1)
     And(\_SB_.PCI0.PIB_.PMRD(0xb5), 0xf7, Local1)
     \_SB_.PCI0.PIB_.PMWT(0xb5, Local1)
     If(LEqual(Arg0, 0x3)) {
         \_SB_.Z001(0xa0)
         And(\_SB_.PCI0.PIB_.PMRD(0xf0), 0x1, Local3)
         If(Local3) {
         }
         Else {
             And(\_SB_.PCI0.PIB_.PMRD(0xb8), 0xfe, Local1)
             \_SB_.PCI0.PIB_.PMWT(0xb8, Local1)
         }
         Or(\_SB_.PCI0.PIB_.PMRD(0xe0), 0x1, Local3)
         \_SB_.PCI0.PIB_.PMWT(0xe0, Local3)
         Store(\_SB_.PCI0.PIB_.PMRD(0xdf), Local3)
         \_SB_.PCI0.PIB_.PMWT(0xff, Local3)
         \_SB_.PCI0.PIB_.PMWT(0xdf, Zero)
     }
     If(LEqual(Arg0, 0x4)) {
         \_SB_.Z001(0xa8)
     }
     If(LEqual(Arg0, 0x5)) {
         \_SB_.Z001(0xa8)
     }
     Or(Arg0, 0x50, Local0)
     Store(Local0, \_SB_.PCI0.PIB_.Z000)
}
Method(\_WAK, 1) {
     Store(Arg0, \_SB_.PCI0.PIB_.Z000)
     \_SB_.PCI0.PIB_.PMWT(0xe6, 0xc)
     \_SB_.PCI0.PIB_.PMWT(0xec, 0x0)
     Or(\_SB_.PCI0.PIB_.PMRD(0xb5), 0x8, Local1)
     \_SB_.PCI0.PIB_.PMWT(0xb5, Local1)
     If(LEqual(Arg0, 0x3)) {
         And(\_SB_.PCI0.PIB_.PMRD(0xa8), 0xfe, Local3)
         \_SB_.PCI0.PIB_.PMWT(0xa8, Local3)
         And(\_SB_.PCI0.PIB_.PMRD(0xac), 0xef, Local3)
         \_SB_.PCI0.PIB_.PMWT(0xac, Local3)
         \_SB_.Z001(0xa9)
         \_SB_.Z001(0xa1)
         Store(\_SB_.PCI0.PIB_.PMRD(0xff), Local3)
         \_SB_.PCI0.PIB_.PMWT(0xdf, Local3)
         \_SB_.PCI0.PIB_.PMWT(0xff, Zero)
         And(\_SB_.PCI0.PIB_.PMRD(0xe0), 0xfe, Local3)
         \_SB_.PCI0.PIB_.PMWT(0xe0, Local3)
         And(\_SB_.PCI0.PIB_.PMRD(0xf0), 0x1, Local3)
         If(Local3) {
             \_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
         }
         Else {
             Or(\_SB_.PCI0.PIB_.PMRD(0xb8), 0x1, Local1)
             \_SB_.PCI0.PIB_.PMWT(0xb8, Local1)
             \_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
         }
     }
     If(LEqual(Arg0, 0x4)) {
         Notify(\_SB_.PWRB, 0x2)
     }
     Or(Arg0, 0xa0, Local0)
     Store(Local0, \_SB_.PCI0.PIB_.Z000)
}
Scope(\_GPE) {
     Mutex(GLCK, 0)
     Method(_L04) {
         \_SB_.PCI0.PIB_.PMWT(0xf2, 0xac)
         Acquire(\_GPE.GLCK, 0xffff)
         \_SB_.Z001(0xa6)
         Release(\_GPE.GLCK)
         Store(\_SB_.PCI0.PIB_.PMRD(0xf2), Local2)
         If(LEqual(Local2, 0xca)) {
             And(\_SB_.PCI0.PIB_.PMRD(0xf3), 0x23, Local2)
             If(Local2) {
                 And(Local2, 0x1, Local1)
                 Store(Local1, \_SB_.PCI0.PPB_.VGA_.CRTA)
                 And(Local2, 0x2, Local1)
                 ShiftRight(Local1, 0x1, Local1)
                 Store(Local1, \_SB_.PCI0.PPB_.VGA_.LCDA)
                 And(Local2, 0x20, Local1)
                 ShiftRight(Local1, 0x5, Local1)
                 Store(Local1, \_SB_.PCI0.PPB_.VGA_.DVIA)
                 Notify(\_SB_.PCI0.PPB_.VGA_, 0x80)
             }
             And(\_SB_.PCI0.PIB_.PMRD(0xf3), 0xdc, Local2)
             \_SB_.PCI0.PIB_.PMWT(0xf3, Local2)
         }
         \_SB_.PCI0.PIB_.PMWT(0xf2, Zero)
         While(LEqual(\_SB_.PCI0.PIB_.GPI5, 0x0)) {
             Acquire(\_GPE.GLCK, 0xffff)
             \_SB_.Z001(0xa6)
             Release(\_GPE.GLCK)
         }
     }
     Method(_L05) {
         Notify(\_SB_.PCI0, 0x2)
     }
     Method(_L08) {
         Acquire(\_GPE.GLCK, 0xffff)
         Store(\_SB_.PCI0.PIB_.PMRD(0xa8), Local0)
         Store(\_SB_.PCI0.PIB_.PMRD(0xa9), Local1)
         Store(\_SB_.PCI0.PIB_.PMRD(0xaa), Local2)
         If(And(Local0, 0x1, Local3)) {
             Store(\_SB_.PCI0.PIB_.PMRD(0xb8), Local4)
             And(Local4, 0xfe, Local4)
             \_SB_.PCI0.PIB_.PMWT(0xb8, Local4)
             If(And(\_SB_.PCI0.PIB_.PMRD(0xb5), 0x1, )) {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xb7), Local7)
                 And(Local7, 0xfe, Local7)
                 \_SB_.PCI0.PIB_.PMWT(0xb7, Local7)
                 \_SB_.PCI0.PIB_.PMWT(0xf0, 0x1)
                 Store(0x1, \_SB_.LID_.LIDF)
             }
             Else {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xb7), Local7)
                 Or(Local7, 0x1, Local7)
                 \_SB_.PCI0.PIB_.PMWT(0xb7, Local7)
                 \_SB_.PCI0.PIB_.PMWT(0xf0, 0x1)
                 Store(0x0, \_SB_.LID_.LIDF)
             }
             Store(\_SB_.PCI0.PIB_.PMRD(0xa8), Local6)
             And(Local6, 0xfe, Local6)
             \_SB_.PCI0.PIB_.PMWT(0xa8, Local6)
             Or(Local4, 0x1, Local4)
             \_SB_.PCI0.PIB_.PMWT(0xb8, Local4)
             Notify(\_SB_.LID_, 0x80)
         }
         And(\_SB_.PCI0.PIB_.PMRD(0xac), 0xef, Local7)
         \_SB_.PCI0.PIB_.PMWT(0xac, Local7)
         Release(\_GPE.GLCK)
     }
     Method(_L01) {
         Acquire(\_GPE.GLCK, 0xffff)
         Store(\_SB_.PCI0.PIB_.PMRD(0xab), Local0)
         Store(\_SB_.PCI0.PIB_.PMRD(0xad), Local4)
         Store(\_SB_.PCI0.PIB_.PMRD(0xaf), Local7)
         And(Local7, 0x4, Local7)
         If(LNot(LEqual(Local7, Zero))) {
             \_SB_.PCI0.PIB_.PMMW(0x01e8, 0x0)
             Store(One, \_TZ_.THRM.TERR)
             Notify(\_TZ_.THRM, 0x80)
         }
         If(And(Local4, 0x1, Local3)) {
             Store(\_SB_.PCI0.PIB_.PMRD(0xe7), Local4)
             Store(0x1, Local2)
             Store(0x0, Local7)
             While(Local2) {
                 Store(DerefOf(Index(\_TZ_.THRM.HITP, Local7, )),  
Local6)
                 If(LGreater(Local6, Local4)) {
                     If(LEqual(Local7, 0x1)) {
                         Store(0x37, \_TZ_.THRM.PSVV)
                         Notify(\_TZ_.THRM, 0x81)
                     }
                     Else {
                         Store(0x46, \_TZ_.THRM.PSVV)
                         Notify(\_TZ_.THRM, 0x81)
                     }
                     \_SB_.PCI0.PIB_.PMWT(0xe5,  
DerefOf(Index(\_TZ_.THRM.LOTP, Local7, )))
                     \_SB_.PCI0.PIB_.PMWT(0xe4,  
DerefOf(Index(\_TZ_.THRM.HITP, Local7, )))
                     Store(0x0, Local2)
                 }
                 Notify(\_TZ_.THRM, 0x80)
                 If(LGreater(Increment(Local7), 0x1)) {
                     Break
                 }
             }
             And(\_SB_.PCI0.PIB_.PMRD(0xad), 0xfe, Local5)
             \_SB_.PCI0.PIB_.PMWT(0xad, Local5)
             \_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
             And(\_SB_.PCI0.PIB_.PMRD(0xae), 0xfe, Local5)
             \_SB_.PCI0.PIB_.PMWT(0xae, Local5)
             \_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
             And(\_SB_.PCI0.PIB_.PMRD(0xaf), 0xf8, Local5)
             \_SB_.PCI0.PIB_.PMWT(0xaf, Local5)
             \_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
         }
         If(And(Local0, 0x1, Local3)) {
             And(\_SB_.PCI0.PIB_.PMRD(0xab), 0xfe, Local2)
             \_SB_.PCI0.PIB_.PMWT(0xab, Local2)
             \_SB_.Z001(0xa7)
             Notify(\_SB_.ACAD, 0x80)
             Notify(\_PR_.CPU0, 0x81)
         }
         If(And(Local0, 0x2, Local3)) {
             Notify(\_SB_.ACAD, 0x80)
             Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local1)
             Store(\_SB_.PCI0.PIB_.PMRD(0xf1), Local4)
             If(LNot(LEqual(And(Local1, 0x1, Local3), And(Local4, 0x1,  
Local5)))) {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
                 \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
                 Notify(\_SB_.BAT0, 0x81)
             }
             If(LNot(LEqual(And(Local1, 0x2, Local3), And(Local4, 0x2,  
Local5)))) {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
                 \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
                 Notify(\_SB_.BAT0, 0x80)
             }
             If(LNot(LEqual(And(Local1, 0x4, Local3), And(Local4, 0x4,  
Local5)))) {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
                 \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
                 Notify(\_SB_.BAT0, 0x80)
             }
             If(LNot(LEqual(And(Local1, 0x8, Local3), And(Local4, 0x8,  
Local5)))) {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
                 \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
                 Notify(\_SB_.BAT0, 0x80)
             }
             If(LNot(LEqual(And(Local1, 0x10, Local3), And(Local4,  
0x10, Local5)))) {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
                 \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
                 Notify(\_SB_.BAT0, 0x80)
             }
             If(LNot(LEqual(And(Local1, 0x20, Local3), And(Local4,  
0x20, Local5)))) {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
                 \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
                 Notify(\_SB_.BAT0, 0x80)
             }
             If(LNot(LEqual(And(Local1, 0x40, Local3), And(Local4,  
0x40, Local5)))) {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
                 \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
                 Notify(\_SB_.BAT0, 0x80)
             }
             If(LNot(LEqual(And(Local1, 0x80, Local3), And(Local4,  
0x80, Local5)))) {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
                 \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
                 Notify(\_SB_.BAT0, 0x80)
             }
             And(\_SB_.PCI0.PIB_.PMRD(0xab), 0xfd, Local2)
             \_SB_.PCI0.PIB_.PMWT(0xab, Local2)
             \_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
         }
         Release(\_GPE.GLCK)
     }
}
OperationRegion(VGAM, SystemMemory, 0x000c0002, 0x1)
Field(VGAM, ByteAcc, NoLock, Preserve) {
     VGA1, 8
}
Scope(\_SB_) {
     OperationRegion(PSIB, SystemIO, 0x0000fe00, 0x00000002)
     Field(PSIB, AnyAcc, NoLock, Preserve) {
         SMIC, 8
     }
     OperationRegion(PSCB, SystemMemory, 0x3beeaebc, 0x00000090)
     Field(PSCB, AnyAcc, NoLock, Preserve) {
         BCMD, 8,
         DID_, 32,
         INF_, 1024
     }
}
Name(FWSO, "FWSO")
Name(_PSC, 0x0)
Method(_PS0) {
     Store(_PSC, Local0)
     Store(0x0, _PSC)
     If(LEqual(Local0, 0x3)) {
         Store(0x1, \_SB_.INF_)
         While(\_SB_.INF_) {
             Store(0x20, \_SB_.BCMD)
             Store(Zero, \_SB_.SMIC)
             If(LAnd(LEqual(\_SB_.INF_, 0x1), LNot(LLess(\_SB_.OSTB,  
0x4)))) {
                 Sleep(0x01f4)
             }
         }
     }
}
Method(_PS3) {
     Store(0x3, _PSC)
}
Scope(\_SB_) {
     Device(PWRB) {
         Name(_HID, 0x0c0cd041)
     }
     Device(PCI0) {
         Name(_HID, 0x030ad041)
         Name(_ADR, 0x0)
         Name(_PRW, Package(0x2) {
             0x5,
             0x5,
         })
         Name(_BBN, 0x0)
         Method(_INI) {
             \_SB_.OSTP()
         }
         Method(_S3D) {
             Return(0x2)
         }
         Device(NBF3) {
             Name(_ADR, 0x3)
             OperationRegion(NBF3, PCI_Config, 0x0, 0x0100)
             Field(NBF3, ByteAcc, NoLock, Preserve) {
                 Offset(0x82),
                 SH82, 8,
                 SH83, 8,
                 Offset(0x88),
                 EADD, 8
             }
         }
         Device(NBF5) {
             Name(_ADR, 0x5)
             Method(_STA) {
                 Return(0xb)
             }
         }
         Device(NBF7) {
             Name(_ADR, 0x7)
             OperationRegion(NBF7, PCI_Config, 0x0, 0x0100)
             Field(NBF7, ByteAcc, NoLock, Preserve) {
                 Offset(0x47),
                 , 2,
                 VLNK, 1
             }
         }
         Method(_STA) {
             Return(0xf)
         }
         Name(CRES, Buffer(0xf5) {0x88, 0xd, 0x0, 0x2, 0xc, 0x0, 0x0,  
0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x47, 0x1, 0xf8, 0xc,  
0xf8, 0xc, 0x1, 0x8, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0,  
0x0, 0xf7, 0xc, 0x0, 0x0, 0xf8, 0xc, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3,  
0x0, 0x0, 0x0, 0xd, 0xff, 0xff, 0x0, 0x0, 0x0, 0xf3, 0x87, 0x18, 0x0,  
0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0xff, 0xff,  
0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x87, 0x18,  
0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xff,  
0x3f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87,  
0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xc, 0x0,  
0xff, 0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,  
0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xc,  
0x0, 0xff, 0xbf, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,  
0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0,  
0xc, 0x0, 0xff, 0xff, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,  
0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,  
0x0, 0x10, 0x0, 0xff, 0xff, 0xff, 0xdf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,  
0xf0, 0xdf, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,  
0x0, 0x0, 0xf0, 0xff, 0xff, 0xbf, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff,  
0xff, 0xbf, 0xe, 0x79, 0x0 })
         Method(_CRS) {
             CreateDWordField(CRES, 0xc9, TCMM)
             CreateDWordField(CRES, 0xd5, TOMM)
             Multiply(\_SB_.PCI0.NBF3.EADD, 0x01000000, Local0)
             Store(Local0, TCMM)
             Subtract(0xffe80000, Local0, TOMM)
             Return(CRES)
         }
         Name(APIC, Package(0x10) {
             Package(0x4) {
                 0x0001ffff,
                 0x0,
                 0x0,
                 0x10,
             },
             Package(0x4) {
                 0x0001ffff,
                 0x1,
                 0x0,
                 0x11,
             },
             Package(0x4) {
                 0x0001ffff,
                 0x2,
                 0x0,
                 0x12,
             },
             Package(0x4) {
                 0x0001ffff,
                 0x3,
                 0x0,
                 0x13,
             },
             Package(0x4) {
                 0x000fffff,
                 0x0,
                 0x0,
                 0x14,
             },
             Package(0x4) {
                 0x000fffff,
                 0x1,
                 0x0,
                 0x15,
             },
             Package(0x4) {
                 0x000fffff,
                 0x2,
                 0x0,
                 0x16,
             },
             Package(0x4) {
                 0x000fffff,
                 0x3,
                 0x0,
                 0x17,
             },
             Package(0x4) {
                 0x0010ffff,
                 0x0,
                 0x0,
                 0x14,
             },
             Package(0x4) {
                 0x0010ffff,
                 0x1,
                 0x0,
                 0x16,
             },
             Package(0x4) {
                 0x0010ffff,
                 0x2,
                 0x0,
                 0x15,
             },
             Package(0x4) {
                 0x0010ffff,
                 0x3,
                 0x0,
                 0x17,
             },
             Package(0x4) {
                 0x0011ffff,
                 0x0,
                 \_SB_.PCI0.PIB_.ALKA,
                 0x0,
             },
             Package(0x4) {
                 0x0011ffff,
                 0x1,
                 \_SB_.PCI0.PIB_.ALKB,
                 0x0,
             },
             Package(0x4) {
                 0x0011ffff,
                 0x2,
                 0x0,
                 0x16,
             },
             Package(0x4) {
                 0x0011ffff,
                 0x3,
                 0x0,
                 0x17,
             },
         })
         Name(PICM, Package(0x14) {
             Package(0x4) {
                 0x0001ffff,
                 0x0,
                 \_SB_.PCI0.PIB_.LNKA,
                 0x0,
             },
             Package(0x4) {
                 0x0001ffff,
                 0x1,
                 \_SB_.PCI0.PIB_.LNKB,
                 0x0,
             },
             Package(0x4) {
                 0x0001ffff,
                 0x2,
                 \_SB_.PCI0.PIB_.LNKC,
                 0x0,
             },
             Package(0x4) {
                 0x0001ffff,
                 0x3,
                 \_SB_.PCI0.PIB_.LNKD,
                 0x0,
             },
             Package(0x4) {
                 0x000fffff,
                 0x0,
                 \_SB_.PCI0.PIB_.LNKA,
                 0x0,
             },
             Package(0x4) {
                 0x000fffff,
                 0x1,
                 \_SB_.PCI0.PIB_.LNKB,
                 0x0,
             },
             Package(0x4) {
                 0x000fffff,
                 0x2,
                 \_SB_.PCI0.PIB_.LNKC,
                 0x0,
             },
             Package(0x4) {
                 0x000fffff,
                 0x3,
                 \_SB_.PCI0.PIB_.LNKD,
                 0x0,
             },
             Package(0x4) {
                 0x0010ffff,
                 0x0,
                 \_SB_.PCI0.PIB_.LNKA,
                 0x0,
             },
             Package(0x4) {
                 0x0010ffff,
                 0x1,
                 \_SB_.PCI0.PIB_.LNKB,
                 0x0,
             },
             Package(0x4) {
                 0x0010ffff,
                 0x2,
                 \_SB_.PCI0.PIB_.LNKC,
                 0x0,
             },
             Package(0x4) {
                 0x0010ffff,
                 0x3,
                 \_SB_.PCI0.PIB_.LNKD,
                 0x0,
             },
             Package(0x4) {
                 0x0010ffff,
                 0x0,
                 \_SB_.PCI0.PIB_.LNKA,
                 0x0,
             },
             Package(0x4) {
                 0x0010ffff,
                 0x1,
                 \_SB_.PCI0.PIB_.LNKB,
                 0x0,
             },
             Package(0x4) {
                 0x0010ffff,
                 0x2,
                 \_SB_.PCI0.PIB_.LNKC,
                 0x0,
             },
             Package(0x4) {
                 0x0010ffff,
                 0x3,
                 \_SB_.PCI0.PIB_.LNKD,
                 0x0,
             },
             Package(0x4) {
                 0x0011ffff,
                 0x0,
                 \_SB_.PCI0.PIB_.LNKC,
                 0x0,
             },
             Package(0x4) {
                 0x0011ffff,
                 0x1,
                 \_SB_.PCI0.PIB_.LNKD,
                 0x0,
             },
             Package(0x4) {
                 0x0011ffff,
                 0x2,
                 \_SB_.PCI0.PIB_.LNKA,
                 0x0,
             },
             Package(0x4) {
                 0x0011ffff,
                 0x3,
                 \_SB_.PCI0.PIB_.LNKB,
                 0x0,
             },
         })
         Method(_PRT) {
             If(PICF) {
                 Return(APIC)
             }
             Else {
                 Return(PICM)
             }
         }
         Device(PIB_) {
             Name(_ADR, 0x00110000)
             OperationRegion(IRQR, PCI_Config, 0x0, 0x0100)
             Field(IRQR, ByteAcc, NoLock, Preserve) {
                 Offset(0x44),
                 PIRE, 4,
                 PIRF, 4,
                 PIRG, 4,
                 PIRH, 4,
                 Offset(0x50),
                 ESB4, 1,
                 ESB5, 1,
                 ESB3, 1,
                 Z002, 1,
                 ESB1, 1,
                 ESB2, 1,
                 AC97, 1,
                 MC97, 1,
                 , 2,
                 PS2E, 1,
                 ERTC, 1,
                 ELAN, 1,
                 ELAK, 1,
                 Offset(0x55),
                 , 4,
                 PIRA, 4,
                 PIRB, 4,
                 PIRC, 4,
                 , 4,
                 PIRD, 4,
                 Offset(0x5b),
                 , 1,
                 EINT, 1,
                 Offset(0x68),
                 , 7,
                 HPTE, 1,
                 , 4,
                 MMTB, 4,
                 Offset(0x88),
                 PMBS, 16,
                 Offset(0x94),
                 , 4,
                 GPSU, 1,
                 SUSC, 1,
                 STRP, 1,
                 Offset(0x95),
                 USBW, 1,
                 Offset(0xd0),
                 SMBS, 16,
                 SMBC, 1
             }
             OperationRegion(PMIO, SystemIO, 0x4000, 0x50)
             Field(PMIO, ByteAcc, NoLock, Preserve) {
                 Offset(0x22),
                 , 5,
                 Z003, 1,
                 Offset(0x24),
                 , 5,
                 Z004, 1,
                 Offset(0x2a),
                 PACT, 1,
                 Offset(0x2f),
                 Z005, 8,
                 , 5,
                 CMAS, 1,
                 CMBS, 1,
                 Offset(0x31),
                 Offset(0x34),
                 , 5,
                 CMAE, 1,
                 CMBE, 1,
                 Offset(0x48),
                 , 5,
                 GPI5, 1
             }
             OperationRegion(Z006, SystemIO, 0x80, 0x1)
             Field(Z006, ByteAcc, NoLock, Preserve) {
                 Z000, 8
             }
             Device(ALKA) {
                 Name(_HID, 0x0f0cd041)
                 Name(_UID, 0x5)
                 Name(_PRS, Buffer(0x27) {0x89, 0x22, 0x0, 0xd, 0x8,  
0x10, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x13,  
0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x15, 0x0, 0x0, 0x0, 0x16, 0x0,  
0x0, 0x0, 0x17, 0x0, 0x0, 0x0, 0x79, 0x0 })
                 Method(_STA) {
                     And(PIRA, 0xf0, Local0)
                     If(LEqual(Local0, 0x0)) {
                         Return(0x9)
                     }
                     Else {
                         Return(0xb)
                     }
                 }
                 Method(_DIS) {
                     And(PIRA, 0xf, PIRA)
                 }
                 Method(_CRS) {
                     Name(BUFA, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,  
0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
                     CreateWordField(BUFA, 0x5, IRAI)
                     Store(\_SB_.PCI0.PIB_.PIRA, IRAI)
                     Return(BUFA)
                 }
                 Method(_SRS, 1) {
                 }
             }
             Device(ALKB) {
                 Name(_HID, 0x0f0cd041)
                 Name(_UID, 0x6)
                 Name(_PRS, Buffer(0x27) {0x89, 0x22, 0x0, 0xd, 0x8,  
0x10, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x13,  
0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x15, 0x0, 0x0, 0x0, 0x16, 0x0,  
0x0, 0x0, 0x17, 0x0, 0x0, 0x0, 0x79, 0x0 })
                 Method(_STA) {
                     And(PIRB, 0xf0, Local0)
                     If(LEqual(Local0, 0x0)) {
                         Return(0x9)
                     }
                     Else {
                         Return(0xb)
                     }
                 }
                 Method(_DIS) {
                     And(PIRB, 0xf, PIRB)
                 }
                 Method(_CRS) {
                     Name(BUFB, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,  
0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
                     CreateWordField(BUFB, 0x5, IRBI)
                     Store(\_SB_.PCI0.PIB_.PIRB, IRBI)
                     Return(BUFB)
                 }
                 Method(_SRS, 1) {
                 }
             }
             Device(ALKC) {
                 Name(_HID, 0x0f0cd041)
                 Name(_UID, 0x7)
                 Name(_PRS, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,  
0x16, 0x0, 0x0, 0x0, 0x79, 0x0 })
                 Method(_STA) {
                     And(PIRC, 0xf0, Local0)
                     If(LEqual(Local0, 0x0)) {
                         Return(0x9)
                     }
                     Else {
                         Return(0xb)
                     }
                 }
                 Method(_DIS) {
                     And(PIRC, 0xf, PIRC)
                 }
                 Method(_CRS) {
                     Name(BUFC, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,  
0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
                     CreateWordField(BUFC, 0x5, IRCI)
                     Store(\_SB_.PCI0.PIB_.PIRC, IRCI)
                     Return(BUFC)
                 }
                 Method(_SRS, 1) {
                 }
             }
             Device(ALKD) {
                 Name(_HID, 0x0f0cd041)
                 Name(_UID, 0x8)
                 Name(_PRS, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,  
0x15, 0x0, 0x0, 0x0, 0x79, 0x0 })
                 Method(_STA) {
                     And(PIRD, 0xf0, Local0)
                     If(LEqual(Local0, 0x0)) {
                         Return(0x9)
                     }
                     Else {
                         Return(0xb)
                     }
                 }
                 Method(_DIS) {
                     And(PIRD, 0xf, PIRD)
                 }
                 Method(_CRS) {
                     Name(BUFD, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,  
0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
                     CreateWordField(BUFD, 0x5, IRDI)
                     Store(\_SB_.PCI0.PIB_.PIRD, IRDI)
                     Return(BUFD)
                 }
                 Method(_SRS, 1) {
                 }
             }
             Device(LNKA) {
                 Name(_HID, 0x0f0cd041)
                 Name(_UID, 0x1)
                 Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x1e, 0x18, 0x79,  
0x0 })
                 Method(_DIS) {
                     Store(Zero, \_SB_.PCI0.PIB_.PIRA)
                 }
                 Method(_STA) {
                     If(LEqual(\_SB_.PCI0.PIB_.PIRA, 0x0)) {
                         Return(0x9)
                     }
                     Else {
                         Return(0xb)
                     }
                 }
                 Method(_CRS) {
                     Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18,  
0x79, 0x0 })
                     CreateByteField(BUFA, 0x1, IRA1)
                     CreateByteField(BUFA, 0x2, IRA2)
                     Store(\_SB_.PCI0.PIB_.PIRA, Local0)
                     If(LGreater(Local0, 0x0)) {
                         If(LGreater(Local0, 0x7)) {
                             Subtract(Local0, 0x8, Local0)
                             Store(0x1, Local1)
                             ShiftLeft(Local1, Local0, IRA2)
                         }
                         Else {
                             Store(0x1, Local1)
                             ShiftLeft(Local1, Local0, IRA1)
                         }
                     }
                     Return(BUFA)
                 }
                 Method(_SRS, 1) {
                     CreateByteField(Arg0, 0x1, IRA1)
                     CreateByteField(Arg0, 0x2, IRA2)
                     If(LGreater(IRA2, Zero)) {
                         FindSetLeftBit(IRA2, Local0)
                         Decrement(Local0)
                         Add(Local0, 0x8, Local0)
                     }
                     Else {
                         FindSetLeftBit(IRA1, Local0)
                         Decrement(Local0)
                     }
                     Store(Local0, \_SB_.PCI0.PIB_.PIRA)
                 }
             }
             Device(LNKB) {
                 Name(_HID, 0x0f0cd041)
                 Name(_UID, 0x2)
                 Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x1e, 0x18, 0x79,  
0x0 })
                 Method(_DIS) {
                     Store(Zero, \_SB_.PCI0.PIB_.PIRB)
                 }
                 Method(_STA) {
                     If(LEqual(\_SB_.PCI0.PIB_.PIRB, 0x0)) {
                         Return(0x9)
                     }
                     Else {
                         Return(0xb)
                     }
                 }
                 Method(_CRS) {
                     Name(BUFB, Buffer(0x6) {0x23, 0x0, 0x0, 0x18,  
0x79, 0x0 })
                     CreateByteField(BUFB, 0x1, IRB1)
                     CreateByteField(BUFB, 0x2, IRB2)
                     Store(\_SB_.PCI0.PIB_.PIRB, Local0)
                     If(LGreater(Local0, 0x0)) {
                         If(LGreater(Local0, 0x7)) {
                             Subtract(Local0, 0x8, Local0)
                             Store(0x1, Local1)
                             ShiftLeft(Local1, Local0, IRB2)
                         }
                         Else {
                             Store(0x1, Local1)
                             ShiftLeft(Local1, Local0, IRB1)
                         }
                     }
                     Return(BUFB)
                 }
                 Method(_SRS, 1) {
                     CreateByteField(Arg0, 0x1, IRB1)
                     CreateByteField(Arg0, 0x2, IRB2)
                     If(LGreater(IRB2, Zero)) {
                         FindSetLeftBit(IRB2, Local0)
                         Decrement(Local0)
                         Add(Local0, 0x8, Local0)
                     }
                     Else {
                         FindSetLeftBit(IRB1, Local0)
                         Decrement(Local0)
                     }
                     Store(Local0, \_SB_.PCI0.PIB_.PIRB)
                 }
             }
             Device(LNKC) {
                 Name(_HID, 0x0f0cd041)
                 Name(_UID, 0x3)
                 Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x1e, 0x18, 0x79,  
0x0 })
                 Method(_DIS) {
                     Store(Zero, \_SB_.PCI0.PIB_.PIRC)
                 }
                 Method(_STA) {
                     If(LEqual(\_SB_.PCI0.PIB_.PIRC, 0x0)) {
                         Return(0x9)
                     }
                     Else {
                         Return(0xb)
                     }
                 }
                 Method(_CRS) {
                     Name(BUFC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18,  
0x79, 0x0 })
                     CreateByteField(BUFC, 0x1, IRC1)
                     CreateByteField(BUFC, 0x2, IRC2)
                     Store(\_SB_.PCI0.PIB_.PIRC, Local0)
                     If(LGreater(Local0, 0x0)) {
                         If(LGreater(Local0, 0x7)) {
                             Subtract(Local0, 0x8, Local0)
                             Store(0x1, Local1)
                             ShiftLeft(Local1, Local0, IRC2)
                         }
                         Else {
                             Store(0x1, Local1)
                             ShiftLeft(Local1, Local0, IRC1)
                         }
                     }
                     Return(BUFC)
                 }
                 Method(_SRS, 1) {
                     CreateByteField(Arg0, 0x1, IRC1)
                     CreateByteField(Arg0, 0x2, IRC2)
                     If(LGreater(IRC2, Zero)) {
                         FindSetLeftBit(IRC2, Local0)
                         Decrement(Local0)
                         Add(Local0, 0x8, Local0)
                     }
                     Else {
                         FindSetLeftBit(IRC1, Local0)
                         Decrement(Local0)
                     }
                     Store(Local0, \_SB_.PCI0.PIB_.PIRC)
                 }
             }
             Device(LNKD) {
                 Name(_HID, 0x0f0cd041)
                 Name(_UID, 0x4)
                 Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x1e, 0x18, 0x79,  
0x0 })
                 Method(_DIS) {
                     Store(Zero, \_SB_.PCI0.PIB_.PIRD)
                 }
                 Method(_STA) {
                     If(LEqual(\_SB_.PCI0.PIB_.PIRD, 0x0)) {
                         Return(0x9)
                     }
                     Else {
                         Return(0xb)
                     }
                 }
                 Method(_CRS) {
                     Name(BUFD, Buffer(0x6) {0x23, 0x0, 0x0, 0x18,  
0x79, 0x0 })
                     CreateByteField(BUFD, 0x1, IRD1)
                     CreateByteField(BUFD, 0x2, IRD2)
                     Store(\_SB_.PCI0.PIB_.PIRD, Local0)
                     If(LGreater(Local0, 0x0)) {
                         If(LGreater(Local0, 0x7)) {
                             Subtract(Local0, 0x8, Local2)
                             Store(0x1, Local1)
                             ShiftLeft(Local1, Local2, Local3)
                             Store(Local3, IRD2)
                         }
                         Else {
                             Store(0x1, Local1)
                             ShiftLeft(Local1, Local0, Local2)
                             Store(Local2, IRD1)
                         }
                     }
                     Return(BUFD)
                 }
                 Method(_SRS, 1) {
                     CreateByteField(Arg0, 0x1, IRD1)
                     CreateByteField(Arg0, 0x2, IRD2)
                     If(LGreater(IRD2, Zero)) {
                         FindSetLeftBit(IRD2, Local0)
                         Decrement(Local0)
                         Add(Local0, 0x8, Local0)
                     }
                     Else {
                         FindSetLeftBit(IRD1, Local0)
                         Decrement(Local0)
                     }
                     Store(Local0, \_SB_.PCI0.PIB_.PIRD)
                 }
             }
             Device(DMA1) {
                 Name(_HID, 0x0002d041)
                 Name(_CRS, Buffer(0x1d) {0x2a, 0x10, 0x4, 0x47, 0x1,  
0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x47, 0x1, 0x81, 0x0, 0x81, 0x0, 0x1,  
0xf, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0, 0x1, 0x20, 0x79, 0x0 })
                 Method(_STA) {
                     Return(0xf)
                 }
             }
             Device(PIC_) {
                 Name(_HID, 0xd041)
                 Method(_STA) {
                     Return(0xf)
                 }
                 Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x20, 0x0, 0x20,  
0x0, 0x1, 0x2, 0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x22, 0x4,  
0x0, 0x79, 0x0 })
             }
             Device(COPR) {
                 Name(_HID, 0x040cd041)
                 Method(_STA) {
                     Return(0xf)
                 }
                 Name(_CRS, Buffer(0xd) {0x47, 0x1, 0xf0, 0x0, 0xf0,  
0x0, 0x1, 0x10, 0x22, 0x0, 0x20, 0x79, 0x0 })
             }
             Device(TIME) {
                 Name(_HID, 0x0001d041)
                 Name(BUF0, Buffer(0xa) {0x47, 0x1, 0x40, 0x0, 0x40,  
0x0, 0x1, 0x4, 0x79, 0x0 })
                 Name(BUF1, Buffer(0xd) {0x47, 0x1, 0x40, 0x0, 0x40,  
0x0, 0x1, 0x4, 0x22, 0x1, 0x0, 0x79, 0x0 })
                 Method(_CRS, 0, Serialized) {
                     If(And(HPTE, 0x1, )) {
                         Return(BUF0)
                     }
                     Return(BUF1)
                 }
             }
             Device(RTC_) {
                 Name(_HID, 0x000bd041)
                 Name(BUF0, Buffer(0xa) {0x47, 0x1, 0x70, 0x0, 0x70,  
0x0, 0x1, 0x6, 0x79, 0x0 })
                 Name(BUF1, Buffer(0xd) {0x47, 0x1, 0x70, 0x0, 0x70,  
0x0, 0x1, 0x6, 0x22, 0x0, 0x1, 0x79, 0x0 })
                 Method(_CRS, 0, Serialized) {
                     If(And(HPTE, 0x1, )) {
                         Return(BUF0)
                     }
                     Return(BUF1)
                 }
             }
             Device(SPKR) {
                 Method(_STA) {
                     Return(0xf)
                 }
                 Name(_HID, 0x0008d041)
                 Name(_CRS, Buffer(0xa) {0x47, 0x1, 0x61, 0x0, 0x61,  
0x0, 0x1, 0x1, 0x79, 0x0 })
             }
             Device(MEM_) {
                 Name(_HID, 0x010cd041)
                 Method(_STA) {
                     Return(0xf)
                 }
                 Method(_CRS) {
                     Name(SMEM, Buffer(0x56) {0x86, 0x9, 0x0, 0x1,  
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0,  
0xe, 0x0, 0x0, 0x0, 0x2, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xf0,  
0xff, 0x0, 0x0, 0x10, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xee, 0xff,  
0x0, 0x0, 0x2, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xfe, 0x0,  
0x0, 0x1, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xfe, 0x0, 0x0,  
0x1, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x80, 0x20, 0xe0, 0x0, 0x10, 0x0,  
0x0, 0x79, 0x0 })
                     Return(SMEM)
                 }
             }
             Device(SYSR) {
                 Name(_HID, 0x020cd041)
                 Method(_STA) {
                     Return(0xf)
                 }
                 Method(_CRS) {
                     If(\_SB_.PCI0.PIB_.SMBC) {
                         Name(RSR2, Buffer(0x6a) {0x47, 0x1, 0x80,  
0x0, 0x80, 0x0, 0x1, 0x1, 0x47, 0x1, 0x92, 0x0, 0x92, 0x0, 0x1, 0x1,  
0x47, 0x1, 0xa8, 0x0, 0xa8, 0x0, 0x1, 0x1, 0x47, 0x1, 0xa9, 0x0, 0xa9,  
0x0, 0x1, 0x1, 0x47, 0x1, 0x22, 0x0, 0x22, 0x0, 0x1, 0x1, 0x47, 0x1,  
0x2e, 0x0, 0x2e, 0x0, 0x1, 0x1, 0x47, 0x1, 0x2f, 0x0, 0x2f, 0x0, 0x1,  
0x1, 0x47, 0x1, 0x68, 0x0, 0x68, 0x0, 0x1, 0x8, 0x47, 0x1, 0xd0, 0x4,  
0xd0, 0x4, 0x1, 0x2, 0x47, 0x1, 0x10, 0xfe, 0x10, 0xfe, 0x1, 0x2,  
0x47, 0x1, 0x0, 0xfe, 0x0, 0xfe, 0x1, 0x1, 0x47, 0x1, 0x0, 0x80, 0x0,  
0x80, 0x1, 0x80, 0x47, 0x1, 0x0, 0x81, 0x0, 0x81, 0x1, 0x20, 0x79,  
0x0 })
                         CreateWordField(RSR2, 0x5a, PMMI)
                         CreateWordField(RSR2, 0x5c, PMMA)
                         CreateWordField(RSR2, 0x62, SMMI)
                         CreateWordField(RSR2, 0x64, SMMA)
                         And(\_SB_.PCI0.PIB_.PMBS, 0xfffe, PMMI)
                         Store(PMMI, PMMA)
                         And(\_SB_.PCI0.PIB_.SMBS, 0xfff0, SMMI)
                         Store(SMMI, SMMA)
                         Return(RSR2)
                     }
                     Else {
                         Name(RSR1, Buffer(0x52) {0x47, 0x1, 0x80,  
0x0, 0x80, 0x0, 0x1, 0x1, 0x47, 0x1, 0x92, 0x0, 0x92, 0x0, 0x1, 0x1,  
0x47, 0x1, 0xa8, 0x0, 0xa8, 0x0, 0x1, 0x1, 0x47, 0x1, 0xa9, 0x0, 0xa9,  
0x0, 0x1, 0x1, 0x47, 0x1, 0x2e, 0x0, 0x2e, 0x0, 0x1, 0x1, 0x47, 0x1,  
0x2f, 0x0, 0x2f, 0x0, 0x1, 0x1, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x1,  
0x2, 0x47, 0x1, 0x10, 0xfe, 0x10, 0xfe, 0x1, 0x2, 0x47, 0x1, 0x0,  
0xfe, 0x0, 0xfe, 0x1, 0x1, 0x47, 0x1, 0x0, 0x80, 0x0, 0x80, 0x1, 0x80,  
0x79, 0x0 })
                         CreateWordField(RSR1, 0x4a, IOMI)
                         CreateWordField(RSR1, 0x4c, IOMA)
                         And(\_SB_.PCI0.PIB_.PMBS, 0xfffe, IOMI)
                         Store(IOMI, IOMA)
                         Return(RSR1)
                     }
                 }
             }
             Device(HPET) {
                 Name(_HID, 0x0301d041)
                 Method(_CRS, 0, Serialized) {
                     If(LNot(LGreater(MMTB, 0x4))) {
                         If(LEqual(MMTB, 0x4)) {
                             Return(BUF4)
                         }
                         If(LEqual(MMTB, 0x2)) {
                             Return(BUF2)
                         }
                         If(LEqual(MMTB, 0x1)) {
                             Return(BUF1)
                         }
                         Return(BUF0)
                     }
                 }
                 Name(BUF4, Buffer(0x14) {0x22, 0x1, 0x0, 0x22, 0x0,  
0x1, 0x86, 0x9, 0x0, 0x0, 0x0, 0x40, 0xd0, 0xfe, 0x0, 0x4, 0x0, 0x0,  
0x79, 0x0 })
                 Name(BUF2, Buffer(0x14) {0x22, 0x1, 0x0, 0x22, 0x0,  
0x1, 0x86, 0x9, 0x0, 0x0, 0x0, 0x20, 0xd0, 0xfe, 0x0, 0x4, 0x0, 0x0,  
0x79, 0x0 })
                 Name(BUF1, Buffer(0x14) {0x22, 0x1, 0x0, 0x22, 0x0,  
0x1, 0x86, 0x9, 0x0, 0x0, 0x0, 0x10, 0xd0, 0xfe, 0x0, 0x4, 0x0, 0x0,  
0x79, 0x0 })
                 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(And(HPTE, 0x1, )) {
                         If(LNot(LLess(\_SB_.OSTP(), 0x8))) {
                             Return(0xf)
                         }
                         Else {
                             Return(0x0)
                         }
                     }
                     Return(0x0)
                 }
             }
             Device(PS2M) {
                 Name(_HID, 0x050d2e4f)
                 Name(_CID, Package(0x3) {
                     0x000d2e4f,
                     0x02002e4f,
                     0x130fd041,
                 })
                 Name(_CRS, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
                 Method(_STA) {
                     If(LEqual(And(\_SB_.PCI0.PIB_.PMRD(0xfb), 0x80,  
Local0), 0x80)) {
                         Return(0xf)
                     }
                     Return(0x0)
                 }
             }
             Device(PS2K) {
                 Method(_HID) {
                     And(\_SB_.PCI0.PIB_.PMRD(0xfb), 0x8, Local0)
                     If(Local0) {
                         Return(0x2003d041)
                     }
                     Else {
                         Return(0x0303d041)
                     }
                 }
                 Method(_CID) {
                     And(\_SB_.PCI0.PIB_.PMRD(0xfb), 0x8, Local0)
                     If(Local0) {
                         Return(0x0303d041)
                     }
                     Else {
                         Return(0x2003d041)
                     }
                 }
                 Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x60, 0x0, 0x60,  
0x0, 0x1, 0x1, 0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x22, 0x2,  
0x0, 0x79, 0x0 })
                 Method(_STA) {
                     Return(0xf)
                 }
             }
             OperationRegion(PMIF, SystemIO, 0x68, 0x8)
             Field(PMIF, ByteAcc, NoLock, Preserve) {
                 PMUD, 8,
                 Offset(0x4),
                 PMUC, 8,
                 Offset(0x8)
             }
             Mutex(ELCK, 0)
             Method(WIBF) {
                 Store(0x0009ffff, Local6)
                 Noop
                 Noop
                 Store(PMUC, Local2)
                 And(Local2, 0x22, Local2)
                 If(And(Local2, 0x20, Local3)) {
                     Return(0x1)
                 }
                 And(Local2, 0x2, Local2)
                 While(LAnd(LNot(LEqual(Local2, 0x0)),  
LNot(LEqual(Local6, 0x0)))) {
                     Noop
                     Noop
                     Store(PMUC, Local2)
                     Decrement(Local6)
                     If(And(Local2, 0x20, Local3)) {
                         Return(0x1)
                     }
                     And(Local2, 0x2, Local2)
                 }
                 Return(0x0)
             }
             Method(WOBF) {
                 Store(0x009fffff, Local6)
                 Noop
                 Noop
                 Store(PMUC, Local3)
                 And(Local3, 0x21, Local3)
                 If(And(Local3, 0x20, Local2)) {
                     Return(0x1)
                 }
                 While(LAnd(LEqual(Local3, 0x0), LNot(LEqual(Local6,  
0x0)))) {
                     Noop
                     Noop
                     Store(PMUC, Local3)
                     And(Local3, 0x21, Local3)
                     If(And(Local3, 0x20, Local2)) {
                         Return(0x1)
                     }
                     Decrement(Local6)
                 }
                 Return(0x0)
             }
             Method(RCMD, 2) {
                 Store(Arg0, Local0)
                 Store(Arg1, Local1)
                 Store(Local0, PMUC)
                 If(WIBF()) {
                     Return(0x1)
                 }
                 Store(Local1, PMUD)
                 If(WOBF()) {
                     Return(0x1)
                 }
                 Return(0x0)
             }
             Method(WCMD, 2) {
                 Store(Arg0, Local0)
                 Store(Arg1, Local1)
                 Store(Local0, PMUC)
                 If(WIBF()) {
                     Return(0x1)
                 }
                 Store(Local1, PMUD)
                 If(WIBF()) {
                     Return(0x1)
                 }
                 Return(0x0)
             }
             Method(PMRD, 1) {
                 Acquire(ELCK, 0xffff)
                 Store(Zero, EDFG)
                 Store(0x14, RECT)
                 While(LAnd(LEqual(EDFG, 0x0), LNot(LEqual(RECT,  
0x0)))) {
                     Store(Arg0, Local0)
                     Store(0x03e8, Local6)
                     Store(PMUC, Local1)
                     And(Local1, 0x13, Local1)
                     While(LAnd(LNot(LEqual(Local1, 0x0)),  
LNot(LEqual(Local6, 0x0)))) {
                         Sleep(0x1)
                         Store(PMUC, Local1)
                         And(Local1, 0x13, Local1)
                         If(And(Local1, 0x1, Local2)) {
                             Store(PMUD, Local3)
                         }
                         Decrement(Local6)
                     }
                     While(RCMD(0x80, Local0)) {
                         Noop
                         Noop
                         Store(PMUC, Local5)
                         If(And(Local5, 0x1, Local2)) {
                             Store(PMUD, Local5)
                         }
                     }
                     Store(0x07d0, Local6)
                     Store(PMUC, Local1)
                     And(Local1, 0x10, Local1)
                     While(LAnd(LNot(LEqual(Local1, 0x0)),  
LNot(LEqual(Local6, 0x0)))) {
                         Noop
                         Noop
                         Store(PMUC, Local1)
                         And(Local1, 0x10, Local1)
                         Decrement(Local6)
                     }
                     Store(PMUC, Local1)
                     And(Local1, 0x20, Local1)
                     If(LEqual(Local1, 0x0)) {
                         Store(One, EDFG)
                     }
                     Decrement(RECT)
                 }
                 Store(PMUD, Local4)
                 Release(ELCK)
                 Return(Local4)
             }
             Method(PMWT, 2) {
                 Acquire(ELCK, 0xffff)
                 Store(Zero, EDFG)
                 Store(0x14, RECT)
                 While(LAnd(LEqual(EDFG, 0x0), LNot(LEqual(RECT,  
0x0)))) {
                     Store(Arg0, Local0)
                     Store(0x03e8, Local6)
                     Store(PMUC, Local1)
                     And(Local1, 0x13, Local1)
                     While(LAnd(LNot(LEqual(Local1, 0x0)),  
LNot(LEqual(Local6, 0x0)))) {
                         Sleep(0x1)
                         Store(PMUC, Local1)
                         And(Local1, 0x13, Local1)
                         Decrement(Local6)
                     }
                     While(WCMD(0x81, Local0)) {
                         Noop
                         Noop
                         Store(PMUC, Local5)
                         If(And(Local5, 0x1, Local2)) {
                             Store(PMUD, Local5)
                         }
                     }
                     Store(Arg1, PMUD)
                     Store(0x07d0, Local6)
                     Store(PMUC, Local1)
                     And(Local1, 0x12, Local1)
                     While(LAnd(LNot(LEqual(Local1, 0x0)),  
LNot(LEqual(Local6, 0x0)))) {
                         Store(0x0, ED__)
                         Noop
                         Noop
                         Store(0x0, ED__)
                         Store(PMUC, Local1)
                         And(Local1, 0x12, Local1)
                         Decrement(Local6)
                     }
                     Store(PMUC, Local1)
                     And(Local1, 0x20, Local1)
                     If(LEqual(Local1, 0x0)) {
                         Store(One, EDFG)
                     }
                     Decrement(RECT)
                 }
                 Release(ELCK)
             }
             Method(PMMW, 2) {
                 Store(Arg0, Local0)
                 Store(Arg1, Local1)
                 And(Local0, 0xff, Local2)
                 And(Local0, 0xff00, Local3)
                 ShiftRight(Local3, 0x8, Local3)
                 Add(Local2, Local3, Local4)
                 Add(Local4, 0xc1, Local4)
                 Add(Local4, Local1, Local7)
                 And(Local7, 0xff, Local7)
                 PMWR(0x043f, Local7)
                 PMWR(Local0, Local1)
             }
             Method(PMWR, 2) {
                 Acquire(ELCK, 0xffff)
                 Store(Zero, EDFG)
                 Store(0x14, RECT)
                 While(LAnd(LEqual(EDFG, 0x0), LNot(LEqual(RECT,  
0x0)))) {
                     Store(0x03e8, Local6)
                     Store(PMUC, Local1)
                     And(Local1, 0x13, Local1)
                     While(LAnd(LNot(LEqual(Local1, 0x0)),  
LNot(LEqual(Local6, 0x0)))) {
                         Sleep(0x1)
                         Store(PMUC, Local1)
                         And(Local1, 0x13, Local1)
                         Decrement(Local6)
                     }
                     Store(Arg0, Local0)
                     While(WCM2(0xc1, Local0)) {
                         Store(0x0, ED__)
                         Noop
                         Noop
                         Store(0x0, ED__)
                         Store(PMUC, Local5)
                         If(And(Local5, 0x1, Local2)) {
                             Store(PMUD, Local5)
                         }
                     }
                     Store(Arg1, PMUD)
                     Store(0x07d0, Local6)
                     Store(PMUC, Local1)
                     And(Local1, 0x12, Local1)
                     While(LAnd(LNot(LEqual(Local1, 0x0)),  
LNot(LEqual(Local6, 0x0)))) {
                         Store(0x0, ED__)
                         Noop
                         Noop
                         Store(0x0, ED__)
                         Store(PMUC, Local1)
                         And(Local1, 0x12, Local1)
                         Decrement(Local6)
                     }
                     Store(PMUC, Local1)
                     And(Local1, 0x20, Local1)
                     If(LEqual(Local1, 0x0)) {
                         Store(One, EDFG)
                     }
                     Decrement(RECT)
                 }
                 Release(ELCK)
             }
             Method(WCM2, 2) {
                 Store(Arg0, Local0)
                 Store(Arg1, Local1)
                 Store(Arg1, Local2)
                 And(Local1, 0xff, Local1)
                 And(Local2, 0xff00, Local2)
                 ShiftRight(Local2, 0x8, Local2)
                 Store(Local0, PMUC)
                 If(WIBF()) {
                     Return(0x1)
                 }
                 Store(Local2, PMUD)
                 If(WIBF()) {
                     Return(0x1)
                 }
                 Store(Local1, PMUD)
                 If(WIBF()) {
                     Return(0x1)
                 }
                 Return(0x0)
             }
             Name(EDFG, 0x0)
             Name(RECT, 0x0)
             OperationRegion(DELY, SystemIO, 0xed, 0x1)
             Field(DELY, ByteAcc, NoLock, Preserve) {
                 ED__, 8
             }
             Method(SMST) {
                 Store(0x10, Local6)
                 Store(PMRD(0x70), Local0)
                 While(LAnd(LNot(LEqual(Local0, 0x0)),  
LNot(LEqual(Local6, 0x0)))) {
                     Store(PMRD(0x70), Local0)
                     Decrement(Local6)
                 }
                 Store(0x10, Local6)
                 Store(PMRD(0x71), Local1)
                 While(LAnd(LNot(LEqual(Local1, 0x80)),  
LNot(LEqual(Local6, 0x0)))) {
                     Store(PMRD(0x71), Local1)
                     Decrement(Local6)
                 }
             }
             Method(SMWT, 3) {
                 Acquire(ELCK, 0xffff)
                 Store(0x6, Local6)
                 Store(Arg0, Local0)
                 Store(Arg1, Local1)
                 Store(Arg2, Local2)
                 While(LNot(LEqual(Local6, 0x0))) {
                     PMWT(0x71, 0x0)
                     PMWT(0x72, Local0)
                     PMWT(0x73, Local1)
                     PMWT(0x74, Local2)
                     PMWT(0x70, 0x6)
                     SMST()
                     Decrement(Local6)
                 }
                 Release(ELCK)
             }
             Method(SMWD, 4) {
                 Acquire(ELCK, 0xffff)
                 Store(0x6, Local6)
                 Store(Arg0, Local0)
                 Store(Arg1, Local1)
                 Store(Arg2, Local2)
                 Store(Arg3, Local3)
                 While(LNot(LEqual(Local6, 0x0))) {
                     PMWT(0x71, 0x0)
                     PMWT(0x72, Local0)
                     PMWT(0x73, Local1)
                     PMWT(0x74, Local2)
                     PMWT(0x75, Local3)
                     PMWT(0x70, 0x8)
                     SMST()
                     Decrement(Local6)
                 }
                 Release(ELCK)
             }
         }
         Name(REGT, Package(0x15) {
             0x10,
             0x20,
             0x21,
             0x22,
             0x23,
             0x33,
             0x34,
             0x35,
             0x36,
             0x37,
             0x47,
             0x48,
             0x49,
             0x4a,
             0x4b,
             0x4c,
             0x5c,
             0x5d,
             0x5e,
             0x5f,
             0x6f,
         })
         Name(DMTT, Package(0x7) {
             0xf,
             0x14,
             0x1e,
             0x2d,
             0x3c,
             0x4b,
             0x78,
         })
         Name(PIOT, Package(0x7) {
             0x0258,
             0x017f,
             0xf0,
             0xb4,
             0x78,
             0x5a,
             0x0,
         })
         Device(IDE_) {
             Method(_ADR) {
                 Return(0x000f0000)
             }
             OperationRegion(PCI_, PCI_Config, 0x48, 0x60)
             Field(PCI_, DWordAcc, NoLock, Preserve) {
                 SDR1, 8,
                 SDR0, 8,
                 PDR1, 8,
                 PDR0, 8,
                 SDST, 4,
                 PDST, 4,
                 Offset(0x8),
                 UDMS, 16,
                 UDMP, 16
             }
             OperationRegion(Z007, SystemIO, 0x80, 0x9)
             Field(Z007, ByteAcc, NoLock, Preserve) {
                 Z000, 8,
                 Offset(0x4),
                 Z008, 8,
                 Offset(0x8),
                 Z009, 8
             }
             Name(Z00A, 0x0)
             Name(Z00B, 0x0)
             Method(_PS3) {
                 And(^UDMP, 0x10, ^Z00A)
                 And(^UDMS, 0x10, ^Z00B)
             }
             Method(_PS0) {
                 If(^Z00A) {
                     Or(^UDMP, ^Z00A, Local0)
                     Or(Local0, ShiftLeft(^Z00A, 0x8, ), ^UDMP)
                 }
                 If(^Z00B) {
                     Or(^UDMS, ^Z00B, Local0)
                     Or(Local0, ShiftLeft(^Z00B, 0x8, ), ^UDMS)
                 }
             }
             Method(GIDX, 1) {
                 If(LEqual(Arg0, 0x0)) {
                     Store(0x0, Local1)
                 }
                 Else {
                     If(LEqual(Arg0, 0xe)) {
                         Store(0x6, Local1)
                     }
                     Else {
                         Add(ShiftRight(Arg0, 0x1, ), 0x1, Local1)
                     }
                 }
                 Return(Local1)
             }
             Method(RIDX, 1) {
                 Store(0x0, Local0)
                 While(NAnd(LLess(Local0, 0x7),  
LEqual(DerefOf(Index(^^DMTT, Local0, )), Arg0), )) {
                     Increment(Local0)
                 }
                 If(Local0) {
                     If(LGreater(Local0, 0x6)) {
                         Store(0xe, Local0)
                     }
                     Else {
                         Subtract(ShiftLeft(Local0, 0x1, ), 0x1, Local0)
                         If(LNot(LEqual(Local0, 0x1))) {
                             Decrement(Local0)
                         }
                     }
                 }
                 Return(Local0)
             }
             Method(GTM_, 3) {
                 Store(Buffer(0x14) { }, Local0)
                 CreateDWordField(Local0, 0x0, PIO0)
                 CreateDWordField(Local0, 0x4, DMA0)
                 CreateDWordField(Local0, 0x8, PIO1)
                 CreateDWordField(Local0, 0xc, DMA1)
                 CreateDWordField(Local0, 0x10, FLAG)
                 Store(Zero, FLAG)
                 Or(FLAG, 0x10, FLAG)
                 Add(And(Arg1, 0xf, ), ShiftRight(Arg1, 0x4, ), Local1)
                 Add(Local1, 0x2, Local1)
                 Multiply(Local1, 0x1e, PIO0)
                 Or(FLAG, 0x2, FLAG)
                 Add(And(Arg2, 0xf, ), ShiftRight(Arg2, 0x4, ), Local1)
                 Add(Local1, 0x2, Local1)
                 Multiply(Local1, 0x1e, PIO1)
                 Or(FLAG, 0x8, FLAG)
                 And(Arg0, 0xf, Local1)
                 If(And(Arg0, 0xe0, )) {
                     Or(FLAG, 0x4, FLAG)
                     Store(^GIDX(Local1), Local1)
                 }
                 Else {
                     Store(0x6, Local1)
                 }
                 Store(DerefOf(Index(^^DMTT, Local1, )), DMA1)
                 ShiftRight(And(Arg0, 0x0f00, ), 0x8, Local1)
                 If(And(Arg0, 0xe000, )) {
                     Or(FLAG, 0x1, FLAG)
                     Store(^GIDX(Local1), Local1)
                 }
                 Else {
                     Store(0x6, Local1)
                 }
                 Store(DerefOf(Index(^^DMTT, Local1, )), DMA0)
                 Return(Local0)
             }
             Method(STM_, 3) {
                 Store(Buffer(0x5) { }, Local7)
                 CreateWordField(Local7, 0x0, UDMT)
                 CreateWordField(Local7, 0x2, PIOT)
                 CreateByteField(Local7, 0x4, R4CT)
                 CreateDWordField(Arg0, 0x0, PIO0)
                 CreateDWordField(Arg0, 0x4, DMA0)
                 CreateDWordField(Arg0, 0x8, PIO1)
                 CreateDWordField(Arg0, 0xc, DMA1)
                 CreateDWordField(Arg0, 0x10, FLAG)
                 Store(FLAG, Local4)
                 Store(0x0e0e, Local1)
                 If(And(Local4, 0x1, )) {
                     And(Local1, 0xf, Local1)
                     Store(^RIDX(DMA0), Local3)
                     Or(Local3, 0xe0, Local3)
                     Or(ShiftLeft(Local3, 0x8, ), Local1, Local1)
                 }
                 If(And(Local4, 0x4, )) {
                     And(Local1, 0xff00, Local1)
                     Store(^RIDX(DMA1), Local3)
                     Or(Local3, 0xe0, Local3)
                     Or(Local3, Local1, Local1)
                 }
                 Store(Local1, UDMT)
                 Store(0xa, Local2)
                 If(And(Local4, 0x2, )) {
                     Divide(PIO0, 0x1e, , Local3)
                     Subtract(Local3, 0x3, Local3)
                     If(LLess(Local3, 0xc)) {
                         And(Local2, 0x3, Local2)
                         Or(Local2, 0x4, Local2)
                     }
                     Store(ShiftLeft(DerefOf(Index(^^REGT, Local3, )),  
0x8, ), Local6)
                 }
                 Else {
                     Store(0x0, Local6)
                 }
                 If(And(Local4, 0x8, )) {
                     Divide(PIO1, 0x1e, , Local3)
                     Subtract(Local3, 0x3, Local3)
                     If(LLess(Local3, 0xc)) {
                         And(Local2, 0xc, Local2)
                         Or(Local2, 0x1, Local2)
                     }
                     Store(DerefOf(Index(^^REGT, Local3, )), Local6)
                 }
                 Else {
                     Store(And(Local6, 0xff00, ), Local6)
                 }
                 Store(Local2, R4CT)
                 Store(Local6, PIOT)
                 Return(Local7)
             }
             Method(GTF_, 3) {
                 If(Arg2) {
                     Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0,  
0xef }, Local7)
                 }
                 Else {
                     Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0,  
0xef }, Local7)
                 }
                 CreateByteField(Local7, 0x1, MODE)
                 Add(And(Arg0, 0xf, ), ShiftRight(Arg0, 0x4, ), Local1)
                 Add(Local1, 0x2, Local1)
                 Multiply(Local1, 0x1e, Local0)
                 Store(Match(^^PIOT, MLT, Local0, MTR, 0x0, 0x0),  
Local1)
                 If(Local1) {
                     Decrement(Local1)
                 }
                 If(And(Arg1, 0xe0, )) {
                     Store(^GIDX(And(Arg1, 0xf, )), Local0)
                     If(LGreater(Local0, 0x6)) {
                         Store(0x0, Local0)
                     }
                     Else {
                         Subtract(0x6, Local0, Local0)
                     }
                     Or(Local0, 0x40, MODE)
                 }
                 Else {
                     Or(Local1, 0x8, MODE)
                 }
                 Concatenate(Local7, Local7, Local6)
                 Or(Local1, 0x8, MODE)
                 Concatenate(Local6, Local7, Local5)
                 Return(Local5)
             }
             Device(PRIM) {
                 Name(_ADR, 0x0)
                 Method(_GTM) {
                     Store("GTM - Primary Controller", Debug)
                     Store(^^GTM_(0xe0e0, 0x20, 0x20), Local0)
                     Return(Local0)
                 }
                 Method(_STM, 3) {
                     Store("STM - Primary Controller", Debug)
                 }
                 Device(MAST) {
                     Name(_ADR, 0x0)
                     Method(_GTF) {
                         Store("GTF - Primary Master", Debug)
                         ShiftRight(0xe0e0, 0x8, Local0)
                         Store(^^^GTF_(0x20, Local0, 0x1), Local0)
                         Return(Local0)
                     }
                 }
                 Device(SLAV) {
                     Name(_ADR, 0x1)
                     Method(_GTF) {
                         Store("GTF - Primary Slave", Debug)
                         Store(^^^GTF_(0x20, 0xe0, 0x0), Local0)
                         Return(Local0)
                     }
                 }
             }
             Device(SECN) {
                 Name(_ADR, 0x1)
                 Method(_GTM) {
                     Store("GTM - Secondary Controller", Debug)
                     Store(^^GTM_(^^UDMS, ^^SDR0, ^^SDR1), Local0)
                     Return(Local0)
                 }
                 Method(_STM, 3) {
                     Store("STM - Secondary Controller", Debug)
                     Store(^^STM_(Arg0, Arg1, Arg2), Local0)
                     CreateWordField(Local0, 0x0, DMAS)
                     CreateWordField(Local0, 0x2, PIOS)
                     CreateByteField(Local0, 0x4, ADSS)
                     Store(Or(DMAS, And(^^UDMS, 0x1010, ), ), ^^UDMS)
                     And(PIOS, 0xff, Local1)
                     If(Local1) {
                         Store(Local1, ^^SDR1)
                     }
                     ShiftRight(PIOS, 0x8, Local1)
                     If(Local1) {
                         Store(Local1, ^^SDR0)
                     }
                     Store(ADSS, ^^SDST)
                 }
                 Device(MAST) {
                     Name(_ADR, 0x0)
                     Method(_GTF) {
                         Store("GTF - Secondary Master", Debug)
                         ShiftRight(^^^UDMS, 0x8, Local0)
                         Store(^^^GTF_(^^^SDR0, Local0, 0x1), Local0)
                         Return(Local0)
                     }
                 }
                 Device(SLAV) {
                     Name(_ADR, 0x1)
                     Method(_GTF) {
                         Store("GTF - Secondary Slave", Debug)
                         Store(^^^GTF_(^^^SDR1, ^^^UDMS, 0x0), Local0)
                         Return(Local0)
                     }
                 }
             }
         }
         Device(USB1) {
             Name(_ADR, 0x00100000)
             Method(_STA) {
                 If(\_SB_.PCI0.PIB_.ESB1) {
                     Return(0x0)
                 }
                 Else {
                     Return(0xf)
                 }
             }
         }
         Device(USB2) {
             Name(_ADR, 0x00100001)
             Method(_STA) {
                 If(\_SB_.PCI0.PIB_.ESB2) {
                     Return(0x0)
                 }
                 Else {
                     Return(0xf)
                 }
             }
         }
         Device(USB3) {
             Name(_ADR, 0x00100002)
             Method(_STA) {
                 If(\_SB_.PCI0.PIB_.ESB3) {
                     Return(0x0)
                 }
                 Else {
                     Return(0xf)
                 }
             }
         }
         Device(USB5) {
             Name(_ADR, 0x00100004)
             Method(_STA) {
                 If(\_SB_.PCI0.PIB_.ESB5) {
                     Return(0x0)
                 }
                 Else {
                     Return(0xf)
                 }
             }
         }
         Device(Z00C) {
             Name(_ADR, 0x00110007)
             OperationRegion(PBVL, PCI_Config, 0xfc, 0x1)
             Field(PBVL, ByteAcc, NoLock, Preserve) {
                 , 2,
                 Z00D, 1,
                 Offset(0x1)
             }
         }
         Device(SP2P) {
             Name(_ADR, 0x00130001)
             Name(_PRW, Package(0x2) {
                 0x5,
                 0x5,
             })
             OperationRegion(PPB2, PCI_Config, 0x19, 0x1)
             Field(PPB2, ByteAcc, NoLock, Preserve) {
                 CBUS, 8
             }
             Method(_BBN) {
                 Return(CBUS)
             }
             Name(APIC, Package(0x11) {
                 Package(0x4) {
                     0x0003ffff,
                     0x0,
                     0x0,
                     0x10,
                 },
                 Package(0x4) {
                     0x0003ffff,
                     0x1,
                     0x0,
                     0x11,
                 },
                 Package(0x4) {
                     0x0003ffff,
                     0x2,
                     0x0,
                     0x12,
                 },
                 Package(0x4) {
                     0x0003ffff,
                     0x3,
                     0x0,
                     0x13,
                 },
                 Package(0x4) {
                     0x0004ffff,
                     0x0,
                     0x0,
                     0x11,
                 },
                 Package(0x4) {
                     0x0004ffff,
                     0x1,
                     0x0,
                     0x12,
                 },
                 Package(0x4) {
                     0x0004ffff,
                     0x2,
                     0x0,
                     0x13,
                 },
                 Package(0x4) {
                     0x0004ffff,
                     0x3,
                     0x0,
                     0x10,
                 },
                 Package(0x4) {
                     0x0005ffff,
                     0x0,
                     0x0,
                     0x12,
                 },
                 Package(0x4) {
                     0x0006ffff,
                     0x0,
                     0x0,
                     0x12,
                 },
                 Package(0x4) {
                     0x0006ffff,
                     0x1,
                     0x0,
                     0x13,
                 },
                 Package(0x4) {
                     0x0007ffff,
                     0x0,
                     0x0,
                     0x11,
                 },
                 Package(0x4) {
                     0x0007ffff,
                     0x1,
                     0x0,
                     0x12,
                 },
                 Package(0x4) {
                     0x0009ffff,
                     0x0,
                     0x0,
                     0x10,
                 },
                 Package(0x4) {
                     0x0009ffff,
                     0x1,
                     0x0,
                     0x10,
                 },
                 Package(0x4) {
                     0x0009ffff,
                     0x2,
                     0x0,
                     0x10,
                 },
                 Package(0x4) {
                     0x0009ffff,
                     0x3,
                     0x0,
                     0x10,
                 },
             })
             Name(PICM, Package(0x11) {
                 Package(0x4) {
                     0x0003ffff,
                     0x0,
                     \_SB_.PCI0.PIB_.LNKA,
                     0x0,
                 },
                 Package(0x4) {
                     0x0003ffff,
                     0x1,
                     \_SB_.PCI0.PIB_.LNKB,
                     0x0,
                 },
                 Package(0x4) {
                     0x0003ffff,
                     0x2,
                     \_SB_.PCI0.PIB_.LNKC,
                     0x0,
                 },
                 Package(0x4) {
                     0x0003ffff,
                     0x3,
                     \_SB_.PCI0.PIB_.LNKD,
                     0x0,
                 },
                 Package(0x4) {
                     0x0004ffff,
                     0x0,
                     \_SB_.PCI0.PIB_.LNKB,
                     0x0,
                 },
                 Package(0x4) {
                     0x0004ffff,
                     0x1,
                     \_SB_.PCI0.PIB_.LNKC,
                     0x0,
                 },
                 Package(0x4) {
                     0x0004ffff,
                     0x2,
                     \_SB_.PCI0.PIB_.LNKD,
                     0x0,
                 },
                 Package(0x4) {
                     0x0004ffff,
                     0x3,
                     \_SB_.PCI0.PIB_.LNKA,
                     0x0,
                 },
                 Package(0x4) {
                     0x0005ffff,
                     0x1,
                     \_SB_.PCI0.PIB_.LNKC,
                     0x0,
                 },
                 Package(0x4) {
                     0x0006ffff,
                     0x0,
                     \_SB_.PCI0.PIB_.LNKC,
                     0x0,
                 },
                 Package(0x4) {
                     0x0006ffff,
                     0x1,
                     \_SB_.PCI0.PIB_.LNKD,
                     0x0,
                 },
                 Package(0x4) {
                     0x0007ffff,
                     0x0,
                     \_SB_.PCI0.PIB_.LNKB,
                     0x0,
                 },
                 Package(0x4) {
                     0x0007ffff,
                     0x1,
                     \_SB_.PCI0.PIB_.LNKC,
                     0x0,
                 },
                 Package(0x4) {
                     0x0009ffff,
                     0x0,
                     \_SB_.PCI0.PIB_.LNKA,
                     0x0,
                 },
                 Package(0x4) {
                     0x0009ffff,
                     0x1,
                     \_SB_.PCI0.PIB_.LNKB,
                     0x0,
                 },
                 Package(0x4) {
                     0x0009ffff,
                     0x2,
                     \_SB_.PCI0.PIB_.LNKC,
                     0x0,
                 },
                 Package(0x4) {
                     0x0009ffff,
                     0x3,
                     \_SB_.PCI0.PIB_.LNKD,
                     0x0,
                 },
             })
             Method(_PRT) {
                 If(PICF) {
                     Return(APIC)
                 }
                 Else {
                     Return(PICM)
                 }
             }
         }
         Device(P2PE) {
             Name(_ADR, 0x00130000)
             Method(_STA) {
                 If(LEqual(\_SB_.PCI0.Z00C.Z00D, 0x0)) {
                     Return(0xf)
                 }
                 Else {
                     Return(0x0)
                 }
             }
             Name(APIC, Package(0x4) {
                 Package(0x4) {
                     0x0001ffff,
                     0x0,
                     0x0,
                     0x11,
                 },
                 Package(0x4) {
                     0x0001ffff,
                     0x1,
                     0x0,
                     0x11,
                 },
                 Package(0x4) {
                     0x0001ffff,
                     0x2,
                     0x0,
                     0x11,
                 },
                 Package(0x4) {
                     0x0001ffff,
                     0x3,
                     0x0,
                     0x11,
                 },
             })
             Name(PICM, Package(0x4) {
                 Package(0x4) {
                     0x0001ffff,
                     0x0,
                     \_SB_.PCI0.PIB_.LNKB,
                     0x0,
                 },
                 Package(0x4) {
                     0x0001ffff,
                     0x1,
                     \_SB_.PCI0.PIB_.LNKB,
                     0x0,
                 },
                 Package(0x4) {
                     0x0001ffff,
                     0x2,
                     \_SB_.PCI0.PIB_.LNKB,
                     0x0,
                 },
                 Package(0x4) {
                     0x0001ffff,
                     0x3,
                     \_SB_.PCI0.PIB_.LNKB,
                     0x0,
                 },
             })
             Method(_PRT) {
                 If(PICF) {
                     Return(APIC)
                 }
                 Else {
                     Return(PICM)
                 }
             }
             Device(HDAC) {
                 Name(_ADR, 0x00010000)
                 OperationRegion(AZAR, PCI_Config, 0x0, 0x0100)
                 Field(AZAR, ByteAcc, NoLock, Preserve) {
                     VID_, 16,
                     Offset(0x4),
                     CMDR, 3
                 }
                 Method(_STA) {
                     If(LNot(LEqual(\_SB_.PCI0.P2PE.HDAC.VID_,  
0x1106))) {
                         Return(0x0)
                     }
                     Else {
                         If(LEqual(\_SB_.PCI0.P2PE.HDAC.CMDR, 0x0)) {
                             Return(0xd)
                         }
                         Else {
                             Return(0xf)
                         }
                     }
                 }
             }
         }
         Device(PPB_) {
             Name(_ADR, 0x00010000)
             Device(VGA_) {
                 Name(_ADR, 0x0)
                 Name(DSEN, 0x1)
                 Name(LCDA, 0x1)
                 Name(DVIA, 0x1)
                 Name(CRTA, 0x1)
                 Method(_DOS, 1) {
                     Store(And(Arg0, 0x3, ), DSEN)
                 }
                 Method(_DOD) {
                     Return(Package(0x3) {
                         0x00010100,
                         0x00010110,
                         0x00010120,
                     })
                 }
                 Device(CRT_) {
                     Name(_ADR, 0x0100)
                     Method(_DCS) {
                         If(CRTA) {
                             Return(0x1f)
                         }
                         Else {
                             Return(0x1d)
                         }
                     }
                     Method(_DGS) {
                         If(CRTA) {
                             Return(0x1)
                         }
                         Else {
                             Return(0x0)
                         }
                     }
                     Method(_DSS, 1) {
                         If(CRTA) {
                             Return(0x80000001)
                         }
                         Else {
                             Return(0x0)
                         }
                     }
                 }
                 Device(LCD_) {
                     Name(_ADR, 0x0110)
                     Method(_DCS) {
                         If(LCDA) {
                             Return(0x1f)
                         }
                         Else {
                             Return(0x1d)
                         }
                     }
                     Method(_DGS) {
                         If(LCDA) {
                             Return(0x1)
                         }
                         Else {
                             Return(0x0)
                         }
                     }
                     Method(_DSS, 1) {
                         If(LCDA) {
                             Return(0x80000001)
                         }
                         Else {
                             Return(0x0)
                         }
                     }
                 }
                 Device(DVI_) {
                     Name(_ADR, 0x0120)
                     Method(_DCS) {
                         If(DVIA) {
                             Return(0x1f)
                         }
                         Else {
                             Return(0x1d)
                         }
                     }
                     Method(_DGS) {
                         If(DVIA) {
                             Return(0x1)
                         }
                         Else {
                             Return(0x0)
                         }
                     }
                     Method(_DSS, 1) {
                         If(DVIA) {
                             Return(0x80000001)
                         }
                         Else {
                             Return(0x0)
                         }
                     }
                 }
             }
         }
         Device(LAN_) {
             Name(_ADR, 0x00090000)
             Name(_PRW, Package(0x2) {
                 0x5,
                 0x3,
             })
         }
     }
     Mutex(VSMX, 0)
     Method(Z001, 1, Serialized) {
         Acquire(VSMX, 0xffff)
         Store(Arg0, \_SB_.PCI0.PIB_.Z005)
         Release(VSMX)
     }
     Device(LID_) {
         Name(_HID, 0x0d0cd041)
         Name(LIDF, 0x1)
         Method(_LID) {
             Return(LIDF)
         }
         Name(_PRW, Package(0x2) {
             0x8,
             0x3,
         })
     }
     Mutex(PSMX, 0)
     Device(ACAD) {
         Name(_HID, "ACPI0003")
         Name(_PCL, Package(0x1) {
             \_SB_,
         })
         Name(INIT, 0x1)
         Name(ACFG, 0x0)
         Method(_PSR) {
             Acquire(PSMX, 0xffff)
             And(0x1, \_SB_.PCI0.PIB_.PMRD(0xa0), Local0)
             Store(Local0, ACFG)
             Store(Local0, INIT)
             Release(PSMX)
             Return(ACFG)
         }
         Method(_STA) {
             Return(0xf)
         }
     }
     Device(BAT0) {
         Name(_HID, 0x0a0cd041)
         Name(_UID, 0x1)
         Method(_STA) {
             Acquire(PSMX, 0xffff)
             And(\_SB_.PCI0.PIB_.PMRD(0xa1), 0x1, Local0)
             Store(Local0, FSTA)
             Release(PSMX)
             If(LEqual(Local0, 0x0)) {
                 Return(0xf)
             }
             Else {
                 Return(0x1f)
             }
         }
         Method(_BIF) {
             And(\_SB_.PCI0.PIB_.PMRD(0xa1), 0x1, Local0)
             If(Local0) {
                 UPBI()
             }
             Else {
                 IVBI()
                 IVBS()
             }
             Store(Zero, FBIF)
             Return(PBIF)
         }
         Method(_BST) {
             UPBS()
             And(\_SB_.PCI0.PIB_.PMRD(0xa0), 0x1, Local0)
             If(Local0) {
                 And(\_SB_.PCI0.PIB_.PMRD(0xe0), 0xfe, Local0)
                 \_SB_.PCI0.PIB_.PMWT(0xe0, Local0)
             }
             Else {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local0)
                 And(Local0, 0x10, Local1)
                 If(Local1) {
                     Or(\_SB_.PCI0.PIB_.PMRD(0xe0), 0x1, Local0)
                     \_SB_.PCI0.PIB_.PMWT(0xe0, Local0)
                 }
                 Else {
                     And(\_SB_.PCI0.PIB_.PMRD(0xe0), 0xfe, Local0)
                     \_SB_.PCI0.PIB_.PMWT(0xe0, Local0)
                 }
             }
             Return(PBST)
         }
         Method(IVBI) {
             Store(0xffffffff, Index(PBIF, 0x1, ))
             Store(0xffffffff, Index(PBIF, 0x2, ))
             Store(0xffffffff, Index(PBIF, 0x4, ))
             Store("Bad", Index(PBIF, 0x9, ))
             Store("Bad", Index(PBIF, 0xa, ))
             Store("Bad", Index(PBIF, 0xb, ))
             Store("Bad", Index(PBIF, 0xc, ))
             Store(One, FBIF)
         }
         Method(IVBS) {
             Store(Zero, Index(PBST, 0x0, ))
             Store(0xffffffff, Index(PBST, 0x1, ))
             Store(0xffffffff, Index(PBST, 0x2, ))
             Store(0xffffffff, Index(PBST, 0x3, ))
             Store(One, \_SB_.BAT0.FSTA)
         }
         Method(UPBI) {
             Acquire(PSMX, 0xffff)
             Store(\_SB_.PCI0.PIB_.PMRD(0x0), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0x1), Local1)
             Multiply(Local1, 0x0100, Local2)
             Or(Local0, Local2, Local3)
             Store(Local3, Index(PBIF, 0x0, ))
             Store(\_SB_.PCI0.PIB_.PMRD(0x2), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0x3), Local1)
             Store(\_SB_.PCI0.PIB_.PMRD(0x49), Local2)
             Multiply(Local1, 0x0100, Local3)
             Multiply(Local2, 0x00010000, Local4)
             Or(Local3, Local0, Local5)
             Or(Local4, Local5, Local6)
             Store(Local6, Index(PBIF, 0x1, ))
             Store(\_SB_.PCI0.PIB_.PMRD(0x4), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0x5), Local1)
             Store(\_SB_.PCI0.PIB_.PMRD(0x4a), Local2)
             Multiply(Local1, 0x0100, Local3)
             Multiply(Local2, 0x00010000, Local4)
             Or(Local3, Local0, Local5)
             Or(Local4, Local5, Local6)
             Store(Local6, Index(PBIF, 0x2, ))
             Store(\_SB_.PCI0.PIB_.PMRD(0x6), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0x7), Local1)
             Multiply(Local1, 0x0100, Local2)
             Or(Local2, Local0, Local3)
             Store(Local3, Index(PBIF, 0x3, ))
             Store(\_SB_.PCI0.PIB_.PMRD(0x8), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0x9), Local1)
             Multiply(Local1, 0x0100, Local2)
             Or(Local2, Local0, Local3)
             Store(Local3, Index(PBIF, 0x4, ))
             Store(\_SB_.PCI0.PIB_.PMRD(0xa), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0xb), Local1)
             Multiply(Local1, 0x0100, Local2)
             Or(Local2, Local0, Local3)
             Store(Local3, Index(PBIF, 0x5, ))
             Store(\_SB_.PCI0.PIB_.PMRD(0xc), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0xd), Local1)
             Multiply(Local1, 0x0100, Local2)
             Or(Local2, Local0, Local3)
             Store(Local3, Index(PBIF, 0x6, ))
             Store(\_SB_.PCI0.PIB_.PMRD(0xe), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0xf), Local1)
             Multiply(Local1, 0x0100, Local2)
             Or(Local2, Local0, Local3)
             Store(Local3, Index(PBIF, 0x7, ))
             Store(\_SB_.PCI0.PIB_.PMRD(0x10), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0x11), Local1)
             Multiply(Local1, 0x0100, Local2)
             Or(Local2, Local0, Local3)
             Store(Local3, Index(PBIF, 0x8, ))
             Store("46EA0/ECZJG", Index(PBIF, 0x9, ))
             Store("", Index(PBIF, 0xa, ))
             Store("Lion", Index(PBIF, 0xb, ))
             Store("FIC ", Index(PBIF, 0xc, ))
             Release(PSMX)
             Return(PBIF)
         }
         Method(UPBS) {
             Acquire(PSMX, 0xffff)
             Store(\_SB_.PCI0.PIB_.PMRD(0x1a), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0x1b), Local1)
             Multiply(Local1, 0x0100, Local2)
             Or(Local2, Local0, Local3)
             Store(Local3, Index(PBST, 0x0, ))
             Store(\_SB_.PCI0.PIB_.PMRD(0x1c), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0x1d), Local1)
             Multiply(Local1, 0x0100, Local2)
             Or(Local2, Local0, Local3)
             Store(Local3, Index(PBST, 0x1, ))
             Store(\_SB_.PCI0.PIB_.PMRD(0x1e), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0x1f), Local1)
             Store(\_SB_.PCI0.PIB_.PMRD(0x4b), Local2)
             Multiply(Local1, 0x0100, Local3)
             Multiply(Local2, 0x00010000, Local4)
             Or(Local3, Local0, Local5)
             Or(Local4, Local5, Local6)
             Store(Local6, Index(PBST, 0x2, ))
             Store(\_SB_.PCI0.PIB_.PMRD(0x20), Local0)
             Store(\_SB_.PCI0.PIB_.PMRD(0x21), Local1)
             Multiply(Local1, 0x0100, Local2)
             Or(Local2, Local0, Local3)
             Store(Local3, Index(PBST, 0x3, ))
             Release(PSMX)
             Return(PBST)
         }
         Method(_BTP, 1) {
             Acquire(PSMX, 0xffff)
             Store(\_SB_.PCI0.PIB_.PMRD(0xb2), Local0)
             And(Local0, 0x7f, Local0)
             \_SB_.PCI0.PIB_.PMWT(0xb2, Local0)
             Store(Arg0, Local0)
             Store(Local0, Local6)
             And(Local0, 0xff, Local1)
             \_SB_.PCI0.PIB_.PMWT(0x22, Local1)
             Store(Local6, Local0)
             And(Local0, 0xff00, Local1)
             ShiftRight(Local1, 0x8, Local2)
             \_SB_.PCI0.PIB_.PMWT(0x23, Local2)
             Store(Local6, Local0)
             And(Local0, 0x00ff0000, Local1)
             ShiftRight(Local1, 0x10, Local2)
             \_SB_.PCI0.PIB_.PMWT(0x4c, Local2)
             Store(\_SB_.PCI0.PIB_.PMRD(0xf1), Local3)
             If(And(Local3, 0x80, Local3)) {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local4)
                 \_SB_.PCI0.PIB_.PMWT(0xf1, Local4)
             }
             Store(\_SB_.PCI0.PIB_.PMRD(0xb2), Local0)
             Or(Local0, 0x80, Local0)
             \_SB_.PCI0.PIB_.PMWT(0xb2, Local0)
             Release(PSMX)
         }
         Name(_PCL, Package(0x1) {
             \_SB_,
         })
         Name(FBIF, 0x1)
         Name(FSTA, 0x1)
         Name(GGFG, 0x0)
         Name(PBIF, Package(0xd) {
             0x1,
             0x78,
             0x64,
             0x1,
             0x2580,
             0x5,
             0x5,
             0x1,
             0x1,
             "???",
             "???",
             "???",
             "???",
         })
         Name(PBST, Package(0x4) {
             0x1,
             0x78,
             0x64,
             0x2580,
         })
         Name(PSTA, 0x1f)
     }
     Scope(_TZ_) {
         Name(FL1_, 0x0)
         Name(FL2_, 0x0)
         PowerResource(PFN0, 0, 0) {
             Method(_ON_) {
                 Store(Zero, FL2_)
                 Store(One, FL1_)
             }
             Method(_OFF) {
                 Store(Zero, FL1_)
                 Store(One, FL2_)
             }
             Method(_STA) {
                 Or(FL1_, FL2_, Local7)
                 Return(Local7)
             }
         }
         PowerResource(PFN1, 0, 0) {
             Method(_ON_) {
                 If(LEqual(FL1_, 0x0)) {
                     Store(Zero, FL1_)
                     Store(One, FL2_)
                 }
             }
             Method(_OFF) {
                 Store(Zero, \_TZ_.FL1_)
                 Store(Zero, \_TZ_.FL2_)
             }
             Method(_STA) {
                 Or(FL1_, FL2_, Local7)
                 Return(Local7)
             }
         }
         Device(FAN0) {
             Name(_HID, 0x0b0cd041)
             Name(_UID, 0x1)
             Name(_PSC, 0x0)
             Name(_PR0, Package(0x1) {
                 PFN0,
             })
         }
         Device(FAN1) {
             Name(_HID, 0x0b0cd041)
             Name(_UID, 0x2)
             Name(_PSC, 0x0)
             Method(_INI) {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xaf), Local0)
                 And(Local0, 0x4, Local0)
                 If(LNot(LEqual(Local0, Zero))) {
                     \_SB_.PCI0.PIB_.PMMW(0x01e8, 0x0)
                     Store(One, \_TZ_.THRM.TERR)
                 }
             }
             Name(_PR0, Package(0x1) {
                 PFN1,
             })
         }
         ThermalZone(THRM) {
             Name(PSVV, 0x4f)
             Name(CRTV, 0x5f)
             Name(HITP, Package(0x2) {
                 0x46,
                 0x5f,
             })
             Name(LOTP, Package(0x2) {
                 0x0,
                 0x3e,
             })
             Name(AC0H, 0x5f)
             Name(AC1H, 0x46)
             Name(TERR, 0x0)
             Method(_AC0, 0, Serialized) {
                 Add(AC0H, 0x0111, Local0)
                 Multiply(Local0, 0xa, Local0)
                 Return(Local0)
             }
             Method(_AC1, 0, Serialized) {
                 Add(AC1H, 0x0111, Local0)
                 Multiply(Local0, 0xa, Local0)
                 Return(Local0)
             }
             Name(_AL0, Package(0x1) {
                 FAN0,
             })
             Name(_AL1, Package(0x1) {
                 FAN1,
             })
             Method(_PSV) {
                 Add(PSVV, 0x0111, Local0)
                 Multiply(Local0, 0xa, Local0)
                 Return(Local0)
             }
             Name(_PSL, Package(0x1) {
                 \_PR_.CPU0,
             })
             Method(_CRT) {
                 Add(CRTV, 0x0111, Local0)
                 Multiply(Local0, 0xa, Local0)
                 Return(Local0)
             }
             Method(_SCP, 1) {
             }
             Method(_TMP) {
                 Store(\_SB_.PCI0.PIB_.PMRD(0xe7), Local0)
                 Multiply(Local0, 0xa, Local0)
                 Add(Local0, 0x0aaa, Local0)
                 Return(Local0)
             }
             Name(_TC1, 0x3)
             Name(_TC2, 0x1)
             Name(_TSP, 0x96)
         }
     }
}

}
/*
SSDT: Length=1210, Revision=1, Checksum=121,
        OEMID=PPmmRe, OEM Table ID=PPm, OEM Revision=0x6040000,
        Creator ID=INTL, Creator Revision=0x20030224
  */
/*
APIC: Length=80, Revision=1, Checksum=91,
        OEMID=PTLTD, OEM Table ID= APIC, OEM Revision=0x6040000,
        Creator ID= LTP, Creator Revision=0x0
  */
/*
MCFG: Length=60, Revision=1, Checksum=97,
        OEMID=PTLTD, OEM Table ID=  MCFG, OEM Revision=0x6040000,
        Creator ID= LTP, Creator Revision=0x0
  */

Reply | Threaded
Open this post in threaded view
|

Re: Packard Bell EasyNote XS stuck at acpitimer0: on current

asmith-4
OK, I now have a plain -current install with 3 kernels.

One has acpi disabled entirely, one is generic and one is compiled
with ACPIVERBOSE

The additional info from ACPIVERBOSE is..

.....
acpitimer0 at acpi: 3579545 Hz, 24 bits
acpi device at acpi0 from table DSDT not configured
acpi device at acpi0 from table FACP not configured
acpi device at acpi0 from table SSDT not configured
acpi device at acpi0 from table APIC not configured
acpi device at acpi0 from table MCFG not configured

It is at this point that the machine hangs.

Additional noteworthy points..

boot -c seems to kill the keyboard so you can't enable/disable devices
at boot time on this machine.

I think the video BIOS actually enters boot in some horrible MGA mode
since the machine boots with yellow text and no blue background
attribute. All text remains yellow on black until you start the X
server and exit (presumably exits to CGA mode).

Anyway, pointers on the acpi issue?

BTW: This machine is pretty cool apart from that, it seems to run
OpenBSD well apart from the acpi issue.

It is a small form factor (8" screen), proper keyboard with trackpad
built in. The wired network works with a stock install, the card
reader works with a stock install. It has a 1.2Ghz processor, 1Gb RAM,
30Gb HDD and comes in at #350. A very cheap and fast device that sits
midway between the Zaurus and a... well its almost as good as a larger
laptop (screen resolution is the limitation I guess).

Regards,

-Andy



On 9 Feb 2008, at 20:40, Andrew Smith wrote:

> Hi,
>
> I decided to buy a Packard Bell EasyNote XS which will be available
> in the US from Walmart as the Everex Cloudbook sometime soon.
>
> The device comes preloaded with Windows XP, so needless to say I
> want to get that off ASAP and something more useful onto it.
>
> Basically the device is an implementation of the reference design of
> the VIA Nanobook without the touch screen.
>
> Using OpenBSD 4.2 release the box works absolutely fine, however,
> the acpi code fails to understand some of the structures and gives up.
>
> Under OpenBSD -current, however, the device does seem to recognise
> some of the acpi entires correctly and tries to initialise some of
> the devices. Unfortunately it sticks just after printing the message
> about acpitimer0.
>
> Here's the last few lines...
>
> mainbus0 at root
> bios0 at mainbus0: AT/286+ BIOS, date 11/02/07, BIOS32 rev. 0 @
> 0xfdd64 SMBIOS rev. 2.4 @ 0xdc010 (47 entries)
> bios0: vendor Phoenix Technologies LTD version "6.00" date 11/02/2007
> bios0: PACKARD BELL BV Pegasus
> acpi0 at bios0: rev 0
> acpi0: tables DSDT FACP SSDT APIC MCFG
> acpi: wakeup devices PCIO(S5) SP2P(S5) LAN_(S3) LID_(S3)
> acpitimer0 at acpi0: 3579545 Hz, 24 bits
>
> Once it sticks at that location you have to hold power (>3 seconds)
> to get the thing to power off and whilst checking this out I have
> had current and release kernels on the root of the fs. The
> interesting thing is that once you boot this kernel and it sticks
> like this the release kernel fails to boot and sticks at the message
> about the kernel entry point once the boot loader has loaded it. For
> some quirky reason if you attach a USB CD and boot from the install
> CD then restart this seems to fix this issue. Very strange indeed.
>
> I attach the acpidump output produced from a 4.2 release install and
> was wondering if there is anything else that may help identify the
> problem..?
>
> Regards,
>
> -Andy
>
> /*
> RSD PTR: Checksum=87, OEMID=PTLTD, RsdtAddress=0x3bee5663
> */
> /*
> RSDT: Length=52, Revision=1, Checksum=193,
> OEMID=PTLTD, OEM Table ID=  RSDT, OEM Revision=0x6040000,
> Creator ID= LTP, Creator Revision=0x0
> */
> /*
> Entries={ 0x3bee9a46, 0x3bee9aba, 0x3bee9f74, 0x3bee9fc4 }
> */
> /*
> DSDT=0x3bee5697
> INT_MODEL=PIC
> SCI_INT=10
> SMI_CMD=0x402f, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0
> PM1a_EVT_BLK=0x4000-0x4003
> PM1a_CNT_BLK=0x4004-0x4005
> PM2_CNT_BLK=0x22-0x22
> PM2_TMR_BLK=0x4008-0x400b
> PM2_GPE0_BLK=0x4020-0x4023
> P_LVL2_LAT=80ms, P_LVL3_LAT=800ms
> FLUSH_SIZE=0, FLUSH_STRIDE=0
> DUTY_OFFSET=0, DUTY_WIDTH=4
> DAY_ALRM=125, MON_ALRM=126, CENTURY=50
> Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4}
> */
> /*
> DSDT: Length=17327, Revision=1, Checksum=55,
> OEMID=VIA, OEM Table ID=PTL_ACPI, OEM Revision=0x6040000,
> Creator ID=MSFT, Creator Revision=0x100000e
> */
> DefinitionBlock (
> "acpi_dsdt.aml", //Output filename
> "DSDT", //Signature
> 0x1, //DSDT Revision
> "VIA", //OEMID
> "PTL_ACPI", //TABLE ID
> 0x6040000 //OEM Revision
> )
>
> {
> Scope(\_PR_) {
>    Processor(CPU0, 0, 0x4010, 0x6) {
>    }
> }
> Scope(\) {
>    Name(PICF, 0x0)
>    Method(_PIC, 1) {
>        Store(Arg0, PICF)
>    }
> }
> Name(_S0_, Package(0x2) {
>    0x0,
>    0x0,
> })
> Name(_S3_, Package(0x2) {
>    0x1,
>    0x1,
> })
> Name(_S4_, Package(0x2) {
>    0x2,
>    0x2,
> })
> Name(_S5_, Package(0x2) {
>    0x2,
>    0x2,
> })
> Scope(\_SB_) {
>    Name(OSTB, Ones)
>    OperationRegion(OSTY, SystemMemory, 0x3beeaf4c, 0x00000001)
>    Field(OSTY, AnyAcc, NoLock, Preserve) {
>        TPOS, 8
>    }
>    Method(OSTP) {
>        If(LEqual(^OSTB, Ones)) {
>            If(CondRefOf(\_OSI, Local0)) {
>                If(\_OSI) {
>                    "Windows 2001"
>                    Store(0x8, ^OSTB)
>                    Store(0x8, ^TPOS)
>                }
>                Else {
>                    Store(0x0, ^OSTB)
>                    Store(0x0, ^TPOS)
>                }
>            }
>            Else {
>                If(CondRefOf(\_OS_, Local0)) {
>                    If(^SEQL(\_OS_, "Microsoft Windows")) {
>                        Store(0x1, ^OSTB)
>                        Store(0x1, ^TPOS)
>                    }
>                    Else {
>                        If(^SEQL(\_OS_, "Microsoft WindowsME:
> Millennium Edition")) {
>                            Store(0x2, ^OSTB)
>                            Store(0x2, ^TPOS)
>                        }
>                        Else {
>                            If(^SEQL(\_OS_, "Microsoft Windows NT")) {
>                                Store(0x4, ^OSTB)
>                                Store(0x4, ^TPOS)
>                            }
>                            Else {
>                                Store(0x0, ^OSTB)
>                                Store(0x0, ^TPOS)
>                            }
>                        }
>                    }
>                }
>                Else {
>                    Store(0x0, ^OSTB)
>                    Store(0x0, ^TPOS)
>                }
>            }
>        }
>        Return(^OSTB)
>    }
>    Method(SEQL, 2, Serialized) {
>        Store(SizeOf(Arg0), Local0)
>        Store(SizeOf(Arg1), Local1)
>        If(LNot(LEqual(Local0, Local1))) {
>            Return(Zero)
>        }
>        Name(BUF0, Buffer(Local0) { })
>        Store(Arg0, BUF0)
>        Name(BUF1, Buffer(Local0) { })
>        Store(Arg1, BUF1)
>        Store(Zero, Local2)
>        While(LLess(Local2, Local0)) {
>            Store(DerefOf(Index(BUF0, Local2, )), Local3)
>            Store(DerefOf(Index(BUF1, Local2, )), Local4)
>            If(LNot(LEqual(Local3, Local4))) {
>                Return(Zero)
>            }
>            Increment(Local2)
>        }
>        Return(One)
>    }
> }
> Method(\_PTS, 1) {
>    Store(Arg0, \_SB_.PCI0.PIB_.Z000)
>    \_SB_.PCI0.PIB_.PMWT(0xec, 0x1)
>    And(\_SB_.PCI0.PIB_.PMRD(0xb5), 0xf7, Local1)
>    \_SB_.PCI0.PIB_.PMWT(0xb5, Local1)
>    If(LEqual(Arg0, 0x3)) {
>        \_SB_.Z001(0xa0)
>        And(\_SB_.PCI0.PIB_.PMRD(0xf0), 0x1, Local3)
>        If(Local3) {
>        }
>        Else {
>            And(\_SB_.PCI0.PIB_.PMRD(0xb8), 0xfe, Local1)
>            \_SB_.PCI0.PIB_.PMWT(0xb8, Local1)
>        }
>        Or(\_SB_.PCI0.PIB_.PMRD(0xe0), 0x1, Local3)
>        \_SB_.PCI0.PIB_.PMWT(0xe0, Local3)
>        Store(\_SB_.PCI0.PIB_.PMRD(0xdf), Local3)
>        \_SB_.PCI0.PIB_.PMWT(0xff, Local3)
>        \_SB_.PCI0.PIB_.PMWT(0xdf, Zero)
>    }
>    If(LEqual(Arg0, 0x4)) {
>        \_SB_.Z001(0xa8)
>    }
>    If(LEqual(Arg0, 0x5)) {
>        \_SB_.Z001(0xa8)
>    }
>    Or(Arg0, 0x50, Local0)
>    Store(Local0, \_SB_.PCI0.PIB_.Z000)
> }
> Method(\_WAK, 1) {
>    Store(Arg0, \_SB_.PCI0.PIB_.Z000)
>    \_SB_.PCI0.PIB_.PMWT(0xe6, 0xc)
>    \_SB_.PCI0.PIB_.PMWT(0xec, 0x0)
>    Or(\_SB_.PCI0.PIB_.PMRD(0xb5), 0x8, Local1)
>    \_SB_.PCI0.PIB_.PMWT(0xb5, Local1)
>    If(LEqual(Arg0, 0x3)) {
>        And(\_SB_.PCI0.PIB_.PMRD(0xa8), 0xfe, Local3)
>        \_SB_.PCI0.PIB_.PMWT(0xa8, Local3)
>        And(\_SB_.PCI0.PIB_.PMRD(0xac), 0xef, Local3)
>        \_SB_.PCI0.PIB_.PMWT(0xac, Local3)
>        \_SB_.Z001(0xa9)
>        \_SB_.Z001(0xa1)
>        Store(\_SB_.PCI0.PIB_.PMRD(0xff), Local3)
>        \_SB_.PCI0.PIB_.PMWT(0xdf, Local3)
>        \_SB_.PCI0.PIB_.PMWT(0xff, Zero)
>        And(\_SB_.PCI0.PIB_.PMRD(0xe0), 0xfe, Local3)
>        \_SB_.PCI0.PIB_.PMWT(0xe0, Local3)
>        And(\_SB_.PCI0.PIB_.PMRD(0xf0), 0x1, Local3)
>        If(Local3) {
>            \_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
>        }
>        Else {
>            Or(\_SB_.PCI0.PIB_.PMRD(0xb8), 0x1, Local1)
>            \_SB_.PCI0.PIB_.PMWT(0xb8, Local1)
>            \_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
>        }
>    }
>    If(LEqual(Arg0, 0x4)) {
>        Notify(\_SB_.PWRB, 0x2)
>    }
>    Or(Arg0, 0xa0, Local0)
>    Store(Local0, \_SB_.PCI0.PIB_.Z000)
> }
> Scope(\_GPE) {
>    Mutex(GLCK, 0)
>    Method(_L04) {
>        \_SB_.PCI0.PIB_.PMWT(0xf2, 0xac)
>        Acquire(\_GPE.GLCK, 0xffff)
>        \_SB_.Z001(0xa6)
>        Release(\_GPE.GLCK)
>        Store(\_SB_.PCI0.PIB_.PMRD(0xf2), Local2)
>        If(LEqual(Local2, 0xca)) {
>            And(\_SB_.PCI0.PIB_.PMRD(0xf3), 0x23, Local2)
>            If(Local2) {
>                And(Local2, 0x1, Local1)
>                Store(Local1, \_SB_.PCI0.PPB_.VGA_.CRTA)
>                And(Local2, 0x2, Local1)
>                ShiftRight(Local1, 0x1, Local1)
>                Store(Local1, \_SB_.PCI0.PPB_.VGA_.LCDA)
>                And(Local2, 0x20, Local1)
>                ShiftRight(Local1, 0x5, Local1)
>                Store(Local1, \_SB_.PCI0.PPB_.VGA_.DVIA)
>                Notify(\_SB_.PCI0.PPB_.VGA_, 0x80)
>            }
>            And(\_SB_.PCI0.PIB_.PMRD(0xf3), 0xdc, Local2)
>            \_SB_.PCI0.PIB_.PMWT(0xf3, Local2)
>        }
>        \_SB_.PCI0.PIB_.PMWT(0xf2, Zero)
>        While(LEqual(\_SB_.PCI0.PIB_.GPI5, 0x0)) {
>            Acquire(\_GPE.GLCK, 0xffff)
>            \_SB_.Z001(0xa6)
>            Release(\_GPE.GLCK)
>        }
>    }
>    Method(_L05) {
>        Notify(\_SB_.PCI0, 0x2)
>    }
>    Method(_L08) {
>        Acquire(\_GPE.GLCK, 0xffff)
>        Store(\_SB_.PCI0.PIB_.PMRD(0xa8), Local0)
>        Store(\_SB_.PCI0.PIB_.PMRD(0xa9), Local1)
>        Store(\_SB_.PCI0.PIB_.PMRD(0xaa), Local2)
>        If(And(Local0, 0x1, Local3)) {
>            Store(\_SB_.PCI0.PIB_.PMRD(0xb8), Local4)
>            And(Local4, 0xfe, Local4)
>            \_SB_.PCI0.PIB_.PMWT(0xb8, Local4)
>            If(And(\_SB_.PCI0.PIB_.PMRD(0xb5), 0x1, )) {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xb7), Local7)
>                And(Local7, 0xfe, Local7)
>                \_SB_.PCI0.PIB_.PMWT(0xb7, Local7)
>                \_SB_.PCI0.PIB_.PMWT(0xf0, 0x1)
>                Store(0x1, \_SB_.LID_.LIDF)
>            }
>            Else {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xb7), Local7)
>                Or(Local7, 0x1, Local7)
>                \_SB_.PCI0.PIB_.PMWT(0xb7, Local7)
>                \_SB_.PCI0.PIB_.PMWT(0xf0, 0x1)
>                Store(0x0, \_SB_.LID_.LIDF)
>            }
>            Store(\_SB_.PCI0.PIB_.PMRD(0xa8), Local6)
>            And(Local6, 0xfe, Local6)
>            \_SB_.PCI0.PIB_.PMWT(0xa8, Local6)
>            Or(Local4, 0x1, Local4)
>            \_SB_.PCI0.PIB_.PMWT(0xb8, Local4)
>            Notify(\_SB_.LID_, 0x80)
>        }
>        And(\_SB_.PCI0.PIB_.PMRD(0xac), 0xef, Local7)
>        \_SB_.PCI0.PIB_.PMWT(0xac, Local7)
>        Release(\_GPE.GLCK)
>    }
>    Method(_L01) {
>        Acquire(\_GPE.GLCK, 0xffff)
>        Store(\_SB_.PCI0.PIB_.PMRD(0xab), Local0)
>        Store(\_SB_.PCI0.PIB_.PMRD(0xad), Local4)
>        Store(\_SB_.PCI0.PIB_.PMRD(0xaf), Local7)
>        And(Local7, 0x4, Local7)
>        If(LNot(LEqual(Local7, Zero))) {
>            \_SB_.PCI0.PIB_.PMMW(0x01e8, 0x0)
>            Store(One, \_TZ_.THRM.TERR)
>            Notify(\_TZ_.THRM, 0x80)
>        }
>        If(And(Local4, 0x1, Local3)) {
>            Store(\_SB_.PCI0.PIB_.PMRD(0xe7), Local4)
>            Store(0x1, Local2)
>            Store(0x0, Local7)
>            While(Local2) {
>                Store(DerefOf(Index(\_TZ_.THRM.HITP, Local7, )),
> Local6)
>                If(LGreater(Local6, Local4)) {
>                    If(LEqual(Local7, 0x1)) {
>                        Store(0x37, \_TZ_.THRM.PSVV)
>                        Notify(\_TZ_.THRM, 0x81)
>                    }
>                    Else {
>                        Store(0x46, \_TZ_.THRM.PSVV)
>                        Notify(\_TZ_.THRM, 0x81)
>                    }
>                    \_SB_.PCI0.PIB_.PMWT(0xe5,
> DerefOf(Index(\_TZ_.THRM.LOTP, Local7, )))
>                    \_SB_.PCI0.PIB_.PMWT(0xe4,
> DerefOf(Index(\_TZ_.THRM.HITP, Local7, )))
>                    Store(0x0, Local2)
>                }
>                Notify(\_TZ_.THRM, 0x80)
>                If(LGreater(Increment(Local7), 0x1)) {
>                    Break
>                }
>            }
>            And(\_SB_.PCI0.PIB_.PMRD(0xad), 0xfe, Local5)
>            \_SB_.PCI0.PIB_.PMWT(0xad, Local5)
>            \_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
>            And(\_SB_.PCI0.PIB_.PMRD(0xae), 0xfe, Local5)
>            \_SB_.PCI0.PIB_.PMWT(0xae, Local5)
>            \_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
>            And(\_SB_.PCI0.PIB_.PMRD(0xaf), 0xf8, Local5)
>            \_SB_.PCI0.PIB_.PMWT(0xaf, Local5)
>            \_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
>        }
>        If(And(Local0, 0x1, Local3)) {
>            And(\_SB_.PCI0.PIB_.PMRD(0xab), 0xfe, Local2)
>            \_SB_.PCI0.PIB_.PMWT(0xab, Local2)
>            \_SB_.Z001(0xa7)
>            Notify(\_SB_.ACAD, 0x80)
>            Notify(\_PR_.CPU0, 0x81)
>        }
>        If(And(Local0, 0x2, Local3)) {
>            Notify(\_SB_.ACAD, 0x80)
>            Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local1)
>            Store(\_SB_.PCI0.PIB_.PMRD(0xf1), Local4)
>            If(LNot(LEqual(And(Local1, 0x1, Local3), And(Local4, 0x1,
> Local5)))) {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
>                \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
>                Notify(\_SB_.BAT0, 0x81)
>            }
>            If(LNot(LEqual(And(Local1, 0x2, Local3), And(Local4, 0x2,
> Local5)))) {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
>                \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
>                Notify(\_SB_.BAT0, 0x80)
>            }
>            If(LNot(LEqual(And(Local1, 0x4, Local3), And(Local4, 0x4,
> Local5)))) {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
>                \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
>                Notify(\_SB_.BAT0, 0x80)
>            }
>            If(LNot(LEqual(And(Local1, 0x8, Local3), And(Local4, 0x8,
> Local5)))) {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
>                \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
>                Notify(\_SB_.BAT0, 0x80)
>            }
>            If(LNot(LEqual(And(Local1, 0x10, Local3), And(Local4,
> 0x10, Local5)))) {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
>                \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
>                Notify(\_SB_.BAT0, 0x80)
>            }
>            If(LNot(LEqual(And(Local1, 0x20, Local3), And(Local4,
> 0x20, Local5)))) {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
>                \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
>                Notify(\_SB_.BAT0, 0x80)
>            }
>            If(LNot(LEqual(And(Local1, 0x40, Local3), And(Local4,
> 0x40, Local5)))) {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
>                \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
>                Notify(\_SB_.BAT0, 0x80)
>            }
>            If(LNot(LEqual(And(Local1, 0x80, Local3), And(Local4,
> 0x80, Local5)))) {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
>                \_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
>                Notify(\_SB_.BAT0, 0x80)
>            }
>            And(\_SB_.PCI0.PIB_.PMRD(0xab), 0xfd, Local2)
>            \_SB_.PCI0.PIB_.PMWT(0xab, Local2)
>            \_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
>        }
>        Release(\_GPE.GLCK)
>    }
> }
> OperationRegion(VGAM, SystemMemory, 0x000c0002, 0x1)
> Field(VGAM, ByteAcc, NoLock, Preserve) {
>    VGA1, 8
> }
> Scope(\_SB_) {
>    OperationRegion(PSIB, SystemIO, 0x0000fe00, 0x00000002)
>    Field(PSIB, AnyAcc, NoLock, Preserve) {
>        SMIC, 8
>    }
>    OperationRegion(PSCB, SystemMemory, 0x3beeaebc, 0x00000090)
>    Field(PSCB, AnyAcc, NoLock, Preserve) {
>        BCMD, 8,
>        DID_, 32,
>        INF_, 1024
>    }
> }
> Name(FWSO, "FWSO")
> Name(_PSC, 0x0)
> Method(_PS0) {
>    Store(_PSC, Local0)
>    Store(0x0, _PSC)
>    If(LEqual(Local0, 0x3)) {
>        Store(0x1, \_SB_.INF_)
>        While(\_SB_.INF_) {
>            Store(0x20, \_SB_.BCMD)
>            Store(Zero, \_SB_.SMIC)
>            If(LAnd(LEqual(\_SB_.INF_, 0x1), LNot(LLess(\_SB_.OSTB,
> 0x4)))) {
>                Sleep(0x01f4)
>            }
>        }
>    }
> }
> Method(_PS3) {
>    Store(0x3, _PSC)
> }
> Scope(\_SB_) {
>    Device(PWRB) {
>        Name(_HID, 0x0c0cd041)
>    }
>    Device(PCI0) {
>        Name(_HID, 0x030ad041)
>        Name(_ADR, 0x0)
>        Name(_PRW, Package(0x2) {
>            0x5,
>            0x5,
>        })
>        Name(_BBN, 0x0)
>        Method(_INI) {
>            \_SB_.OSTP()
>        }
>        Method(_S3D) {
>            Return(0x2)
>        }
>        Device(NBF3) {
>            Name(_ADR, 0x3)
>            OperationRegion(NBF3, PCI_Config, 0x0, 0x0100)
>            Field(NBF3, ByteAcc, NoLock, Preserve) {
>                Offset(0x82),
>                SH82, 8,
>                SH83, 8,
>                Offset(0x88),
>                EADD, 8
>            }
>        }
>        Device(NBF5) {
>            Name(_ADR, 0x5)
>            Method(_STA) {
>                Return(0xb)
>            }
>        }
>        Device(NBF7) {
>            Name(_ADR, 0x7)
>            OperationRegion(NBF7, PCI_Config, 0x0, 0x0100)
>            Field(NBF7, ByteAcc, NoLock, Preserve) {
>                Offset(0x47),
>                , 2,
>                VLNK, 1
>            }
>        }
>        Method(_STA) {
>            Return(0xf)
>        }
>        Name(CRES, Buffer(0xf5) {0x88, 0xd, 0x0, 0x2, 0xc, 0x0, 0x0,
> 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x47, 0x1, 0xf8, 0xc,
> 0xf8, 0xc, 0x1, 0x8, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0,
> 0x0, 0xf7, 0xc, 0x0, 0x0, 0xf8, 0xc, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3,
> 0x0, 0x0, 0x0, 0xd, 0xff, 0xff, 0x0, 0x0, 0x0, 0xf3, 0x87, 0x18,
> 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0xff,
> 0xff, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x87,
> 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
> 0xff, 0x3f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
> 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xc,
> 0x0, 0xff, 0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
> 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80,
> 0xc, 0x0, 0xff, 0xbf, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
> 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
> 0xc0, 0xc, 0x0, 0xff, 0xff, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40,
> 0x0, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0,
> 0x0, 0x0, 0x10, 0x0, 0xff, 0xff, 0xff, 0xdf, 0x0, 0x0, 0x0, 0x0,
> 0x0, 0x0, 0xf0, 0xdf, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0,
> 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xbf, 0xfe, 0x0, 0x0, 0x0,
> 0x0, 0xff, 0xff, 0xbf, 0xe, 0x79, 0x0 })
>        Method(_CRS) {
>            CreateDWordField(CRES, 0xc9, TCMM)
>            CreateDWordField(CRES, 0xd5, TOMM)
>            Multiply(\_SB_.PCI0.NBF3.EADD, 0x01000000, Local0)
>            Store(Local0, TCMM)
>            Subtract(0xffe80000, Local0, TOMM)
>            Return(CRES)
>        }
>        Name(APIC, Package(0x10) {
>            Package(0x4) {
>                0x0001ffff,
>                0x0,
>                0x0,
>                0x10,
>            },
>            Package(0x4) {
>                0x0001ffff,
>                0x1,
>                0x0,
>                0x11,
>            },
>            Package(0x4) {
>                0x0001ffff,
>                0x2,
>                0x0,
>                0x12,
>            },
>            Package(0x4) {
>                0x0001ffff,
>                0x3,
>                0x0,
>                0x13,
>            },
>            Package(0x4) {
>                0x000fffff,
>                0x0,
>                0x0,
>                0x14,
>            },
>            Package(0x4) {
>                0x000fffff,
>                0x1,
>                0x0,
>                0x15,
>            },
>            Package(0x4) {
>                0x000fffff,
>                0x2,
>                0x0,
>                0x16,
>            },
>            Package(0x4) {
>                0x000fffff,
>                0x3,
>                0x0,
>                0x17,
>            },
>            Package(0x4) {
>                0x0010ffff,
>                0x0,
>                0x0,
>                0x14,
>            },
>            Package(0x4) {
>                0x0010ffff,
>                0x1,
>                0x0,
>                0x16,
>            },
>            Package(0x4) {
>                0x0010ffff,
>                0x2,
>                0x0,
>                0x15,
>            },
>            Package(0x4) {
>                0x0010ffff,
>                0x3,
>                0x0,
>                0x17,
>            },
>            Package(0x4) {
>                0x0011ffff,
>                0x0,
>                \_SB_.PCI0.PIB_.ALKA,
>                0x0,
>            },
>            Package(0x4) {
>                0x0011ffff,
>                0x1,
>                \_SB_.PCI0.PIB_.ALKB,
>                0x0,
>            },
>            Package(0x4) {
>                0x0011ffff,
>                0x2,
>                0x0,
>                0x16,
>            },
>            Package(0x4) {
>                0x0011ffff,
>                0x3,
>                0x0,
>                0x17,
>            },
>        })
>        Name(PICM, Package(0x14) {
>            Package(0x4) {
>                0x0001ffff,
>                0x0,
>                \_SB_.PCI0.PIB_.LNKA,
>                0x0,
>            },
>            Package(0x4) {
>                0x0001ffff,
>                0x1,
>                \_SB_.PCI0.PIB_.LNKB,
>                0x0,
>            },
>            Package(0x4) {
>                0x0001ffff,
>                0x2,
>                \_SB_.PCI0.PIB_.LNKC,
>                0x0,
>            },
>            Package(0x4) {
>                0x0001ffff,
>                0x3,
>                \_SB_.PCI0.PIB_.LNKD,
>                0x0,
>            },
>            Package(0x4) {
>                0x000fffff,
>                0x0,
>                \_SB_.PCI0.PIB_.LNKA,
>                0x0,
>            },
>            Package(0x4) {
>                0x000fffff,
>                0x1,
>                \_SB_.PCI0.PIB_.LNKB,
>                0x0,
>            },
>            Package(0x4) {
>                0x000fffff,
>                0x2,
>                \_SB_.PCI0.PIB_.LNKC,
>                0x0,
>            },
>            Package(0x4) {
>                0x000fffff,
>                0x3,
>                \_SB_.PCI0.PIB_.LNKD,
>                0x0,
>            },
>            Package(0x4) {
>                0x0010ffff,
>                0x0,
>                \_SB_.PCI0.PIB_.LNKA,
>                0x0,
>            },
>            Package(0x4) {
>                0x0010ffff,
>                0x1,
>                \_SB_.PCI0.PIB_.LNKB,
>                0x0,
>            },
>            Package(0x4) {
>                0x0010ffff,
>                0x2,
>                \_SB_.PCI0.PIB_.LNKC,
>                0x0,
>            },
>            Package(0x4) {
>                0x0010ffff,
>                0x3,
>                \_SB_.PCI0.PIB_.LNKD,
>                0x0,
>            },
>            Package(0x4) {
>                0x0010ffff,
>                0x0,
>                \_SB_.PCI0.PIB_.LNKA,
>                0x0,
>            },
>            Package(0x4) {
>                0x0010ffff,
>                0x1,
>                \_SB_.PCI0.PIB_.LNKB,
>                0x0,
>            },
>            Package(0x4) {
>                0x0010ffff,
>                0x2,
>                \_SB_.PCI0.PIB_.LNKC,
>                0x0,
>            },
>            Package(0x4) {
>                0x0010ffff,
>                0x3,
>                \_SB_.PCI0.PIB_.LNKD,
>                0x0,
>            },
>            Package(0x4) {
>                0x0011ffff,
>                0x0,
>                \_SB_.PCI0.PIB_.LNKC,
>                0x0,
>            },
>            Package(0x4) {
>                0x0011ffff,
>                0x1,
>                \_SB_.PCI0.PIB_.LNKD,
>                0x0,
>            },
>            Package(0x4) {
>                0x0011ffff,
>                0x2,
>                \_SB_.PCI0.PIB_.LNKA,
>                0x0,
>            },
>            Package(0x4) {
>                0x0011ffff,
>                0x3,
>                \_SB_.PCI0.PIB_.LNKB,
>                0x0,
>            },
>        })
>        Method(_PRT) {
>            If(PICF) {
>                Return(APIC)
>            }
>            Else {
>                Return(PICM)
>            }
>        }
>        Device(PIB_) {
>            Name(_ADR, 0x00110000)
>            OperationRegion(IRQR, PCI_Config, 0x0, 0x0100)
>            Field(IRQR, ByteAcc, NoLock, Preserve) {
>                Offset(0x44),
>                PIRE, 4,
>                PIRF, 4,
>                PIRG, 4,
>                PIRH, 4,
>                Offset(0x50),
>                ESB4, 1,
>                ESB5, 1,
>                ESB3, 1,
>                Z002, 1,
>                ESB1, 1,
>                ESB2, 1,
>                AC97, 1,
>                MC97, 1,
>                , 2,
>                PS2E, 1,
>                ERTC, 1,
>                ELAN, 1,
>                ELAK, 1,
>                Offset(0x55),
>                , 4,
>                PIRA, 4,
>                PIRB, 4,
>                PIRC, 4,
>                , 4,
>                PIRD, 4,
>                Offset(0x5b),
>                , 1,
>                EINT, 1,
>                Offset(0x68),
>                , 7,
>                HPTE, 1,
>                , 4,
>                MMTB, 4,
>                Offset(0x88),
>                PMBS, 16,
>                Offset(0x94),
>                , 4,
>                GPSU, 1,
>                SUSC, 1,
>                STRP, 1,
>                Offset(0x95),
>                USBW, 1,
>                Offset(0xd0),
>                SMBS, 16,
>                SMBC, 1
>            }
>            OperationRegion(PMIO, SystemIO, 0x4000, 0x50)
>            Field(PMIO, ByteAcc, NoLock, Preserve) {
>                Offset(0x22),
>                , 5,
>                Z003, 1,
>                Offset(0x24),
>                , 5,
>                Z004, 1,
>                Offset(0x2a),
>                PACT, 1,
>                Offset(0x2f),
>                Z005, 8,
>                , 5,
>                CMAS, 1,
>                CMBS, 1,
>                Offset(0x31),
>                Offset(0x34),
>                , 5,
>                CMAE, 1,
>                CMBE, 1,
>                Offset(0x48),
>                , 5,
>                GPI5, 1
>            }
>            OperationRegion(Z006, SystemIO, 0x80, 0x1)
>            Field(Z006, ByteAcc, NoLock, Preserve) {
>                Z000, 8
>            }
>            Device(ALKA) {
>                Name(_HID, 0x0f0cd041)
>                Name(_UID, 0x5)
>                Name(_PRS, Buffer(0x27) {0x89, 0x22, 0x0, 0xd, 0x8,
> 0x10, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x13,
> 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x15, 0x0, 0x0, 0x0, 0x16, 0x0,
> 0x0, 0x0, 0x17, 0x0, 0x0, 0x0, 0x79, 0x0 })
>                Method(_STA) {
>                    And(PIRA, 0xf0, Local0)
>                    If(LEqual(Local0, 0x0)) {
>                        Return(0x9)
>                    }
>                    Else {
>                        Return(0xb)
>                    }
>                }
>                Method(_DIS) {
>                    And(PIRA, 0xf, PIRA)
>                }
>                Method(_CRS) {
>                    Name(BUFA, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,
> 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
>                    CreateWordField(BUFA, 0x5, IRAI)
>                    Store(\_SB_.PCI0.PIB_.PIRA, IRAI)
>                    Return(BUFA)
>                }
>                Method(_SRS, 1) {
>                }
>            }
>            Device(ALKB) {
>                Name(_HID, 0x0f0cd041)
>                Name(_UID, 0x6)
>                Name(_PRS, Buffer(0x27) {0x89, 0x22, 0x0, 0xd, 0x8,
> 0x10, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x13,
> 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x15, 0x0, 0x0, 0x0, 0x16, 0x0,
> 0x0, 0x0, 0x17, 0x0, 0x0, 0x0, 0x79, 0x0 })
>                Method(_STA) {
>                    And(PIRB, 0xf0, Local0)
>                    If(LEqual(Local0, 0x0)) {
>                        Return(0x9)
>                    }
>                    Else {
>                        Return(0xb)
>                    }
>                }
>                Method(_DIS) {
>                    And(PIRB, 0xf, PIRB)
>                }
>                Method(_CRS) {
>                    Name(BUFB, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,
> 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
>                    CreateWordField(BUFB, 0x5, IRBI)
>                    Store(\_SB_.PCI0.PIB_.PIRB, IRBI)
>                    Return(BUFB)
>                }
>                Method(_SRS, 1) {
>                }
>            }
>            Device(ALKC) {
>                Name(_HID, 0x0f0cd041)
>                Name(_UID, 0x7)
>                Name(_PRS, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,
> 0x16, 0x0, 0x0, 0x0, 0x79, 0x0 })
>                Method(_STA) {
>                    And(PIRC, 0xf0, Local0)
>                    If(LEqual(Local0, 0x0)) {
>                        Return(0x9)
>                    }
>                    Else {
>                        Return(0xb)
>                    }
>                }
>                Method(_DIS) {
>                    And(PIRC, 0xf, PIRC)
>                }
>                Method(_CRS) {
>                    Name(BUFC, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,
> 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
>                    CreateWordField(BUFC, 0x5, IRCI)
>                    Store(\_SB_.PCI0.PIB_.PIRC, IRCI)
>                    Return(BUFC)
>                }
>                Method(_SRS, 1) {
>                }
>            }
>            Device(ALKD) {
>                Name(_HID, 0x0f0cd041)
>                Name(_UID, 0x8)
>                Name(_PRS, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,
> 0x15, 0x0, 0x0, 0x0, 0x79, 0x0 })
>                Method(_STA) {
>                    And(PIRD, 0xf0, Local0)
>                    If(LEqual(Local0, 0x0)) {
>                        Return(0x9)
>                    }
>                    Else {
>                        Return(0xb)
>                    }
>                }
>                Method(_DIS) {
>                    And(PIRD, 0xf, PIRD)
>                }
>                Method(_CRS) {
>                    Name(BUFD, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,
> 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
>                    CreateWordField(BUFD, 0x5, IRDI)
>                    Store(\_SB_.PCI0.PIB_.PIRD, IRDI)
>                    Return(BUFD)
>                }
>                Method(_SRS, 1) {
>                }
>            }
>            Device(LNKA) {
>                Name(_HID, 0x0f0cd041)
>                Name(_UID, 0x1)
>                Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x1e, 0x18, 0x79,
> 0x0 })
>                Method(_DIS) {
>                    Store(Zero, \_SB_.PCI0.PIB_.PIRA)
>                }
>                Method(_STA) {
>                    If(LEqual(\_SB_.PCI0.PIB_.PIRA, 0x0)) {
>                        Return(0x9)
>                    }
>                    Else {
>                        Return(0xb)
>                    }
>                }
>                Method(_CRS) {
>                    Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18,
> 0x79, 0x0 })
>                    CreateByteField(BUFA, 0x1, IRA1)
>                    CreateByteField(BUFA, 0x2, IRA2)
>                    Store(\_SB_.PCI0.PIB_.PIRA, Local0)
>                    If(LGreater(Local0, 0x0)) {
>                        If(LGreater(Local0, 0x7)) {
>                            Subtract(Local0, 0x8, Local0)
>                            Store(0x1, Local1)
>                            ShiftLeft(Local1, Local0, IRA2)
>                        }
>                        Else {
>                            Store(0x1, Local1)
>                            ShiftLeft(Local1, Local0, IRA1)
>                        }
>                    }
>                    Return(BUFA)
>                }
>                Method(_SRS, 1) {
>                    CreateByteField(Arg0, 0x1, IRA1)
>                    CreateByteField(Arg0, 0x2, IRA2)
>                    If(LGreater(IRA2, Zero)) {
>                        FindSetLeftBit(IRA2, Local0)
>                        Decrement(Local0)
>                        Add(Local0, 0x8, Local0)
>                    }
>                    Else {
>                        FindSetLeftBit(IRA1, Local0)
>                        Decrement(Local0)
>                    }
>                    Store(Local0, \_SB_.PCI0.PIB_.PIRA)
>                }
>            }
>            Device(LNKB) {
>                Name(_HID, 0x0f0cd041)
>                Name(_UID, 0x2)
>                Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x1e, 0x18, 0x79,
> 0x0 })
>                Method(_DIS) {
>                    Store(Zero, \_SB_.PCI0.PIB_.PIRB)
>                }
>                Method(_STA) {
>                    If(LEqual(\_SB_.PCI0.PIB_.PIRB, 0x0)) {
>                        Return(0x9)
>                    }
>                    Else {
>                        Return(0xb)
>                    }
>                }
>                Method(_CRS) {
>                    Name(BUFB, Buffer(0x6) {0x23, 0x0, 0x0, 0x18,
> 0x79, 0x0 })
>                    CreateByteField(BUFB, 0x1, IRB1)
>                    CreateByteField(BUFB, 0x2, IRB2)
>                    Store(\_SB_.PCI0.PIB_.PIRB, Local0)
>                    If(LGreater(Local0, 0x0)) {
>                        If(LGreater(Local0, 0x7)) {
>                            Subtract(Local0, 0x8, Local0)
>                            Store(0x1, Local1)
>                            ShiftLeft(Local1, Local0, IRB2)
>                        }
>                        Else {
>                            Store(0x1, Local1)
>                            ShiftLeft(Local1, Local0, IRB1)
>                        }
>                    }
>                    Return(BUFB)
>                }
>                Method(_SRS, 1) {
>                    CreateByteField(Arg0, 0x1, IRB1)
>                    CreateByteField(Arg0, 0x2, IRB2)
>                    If(LGreater(IRB2, Zero)) {
>                        FindSetLeftBit(IRB2, Local0)
>                        Decrement(Local0)
>                        Add(Local0, 0x8, Local0)
>                    }
>                    Else {
>                        FindSetLeftBit(IRB1, Local0)
>                        Decrement(Local0)
>                    }
>                    Store(Local0, \_SB_.PCI0.PIB_.PIRB)
>                }
>            }
>            Device(LNKC) {
>                Name(_HID, 0x0f0cd041)
>                Name(_UID, 0x3)
>                Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x1e, 0x18, 0x79,
> 0x0 })
>                Method(_DIS) {
>                    Store(Zero, \_SB_.PCI0.PIB_.PIRC)
>                }
>                Method(_STA) {
>                    If(LEqual(\_SB_.PCI0.PIB_.PIRC, 0x0)) {
>                        Return(0x9)
>                    }
>                    Else {
>                        Return(0xb)
>                    }
>                }
>                Method(_CRS) {
>                    Name(BUFC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18,
> 0x79, 0x0 })
>                    CreateByteField(BUFC, 0x1, IRC1)
>                    CreateByteField(BUFC, 0x2, IRC2)
>                    Store(\_SB_.PCI0.PIB_.PIRC, Local0)
>                    If(LGreater(Local0, 0x0)) {
>                        If(LGreater(Local0, 0x7)) {
>                            Subtract(Local0, 0x8, Local0)
>                            Store(0x1, Local1)
>                            ShiftLeft(Local1, Local0, IRC2)
>                        }
>                        Else {
>                            Store(0x1, Local1)
>                            ShiftLeft(Local1, Local0, IRC1)
>                        }
>                    }
>                    Return(BUFC)
>                }
>                Method(_SRS, 1) {
>                    CreateByteField(Arg0, 0x1, IRC1)
>                    CreateByteField(Arg0, 0x2, IRC2)
>                    If(LGreater(IRC2, Zero)) {
>                        FindSetLeftBit(IRC2, Local0)
>                        Decrement(Local0)
>                        Add(Local0, 0x8, Local0)
>                    }
>                    Else {
>                        FindSetLeftBit(IRC1, Local0)
>                        Decrement(Local0)
>                    }
>                    Store(Local0, \_SB_.PCI0.PIB_.PIRC)
>                }
>            }
>            Device(LNKD) {
>                Name(_HID, 0x0f0cd041)
>                Name(_UID, 0x4)
>                Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x1e, 0x18, 0x79,
> 0x0 })
>                Method(_DIS) {
>                    Store(Zero, \_SB_.PCI0.PIB_.PIRD)
>                }
>                Method(_STA) {
>                    If(LEqual(\_SB_.PCI0.PIB_.PIRD, 0x0)) {
>                        Return(0x9)
>                    }
>                    Else {
>                        Return(0xb)
>                    }
>                }
>                Method(_CRS) {
>                    Name(BUFD, Buffer(0x6) {0x23, 0x0, 0x0, 0x18,
> 0x79, 0x0 })
>                    CreateByteField(BUFD, 0x1, IRD1)
>                    CreateByteField(BUFD, 0x2, IRD2)
>                    Store(\_SB_.PCI0.PIB_.PIRD, Local0)
>                    If(LGreater(Local0, 0x0)) {
>                        If(LGreater(Local0, 0x7)) {
>                            Subtract(Local0, 0x8, Local2)
>                            Store(0x1, Local1)
>                            ShiftLeft(Local1, Local2, Local3)
>                            Store(Local3, IRD2)
>                        }
>                        Else {
>                            Store(0x1, Local1)
>                            ShiftLeft(Local1, Local0, Local2)
>                            Store(Local2, IRD1)
>                        }
>                    }
>                    Return(BUFD)
>                }
>                Method(_SRS, 1) {
>                    CreateByteField(Arg0, 0x1, IRD1)
>                    CreateByteField(Arg0, 0x2, IRD2)
>                    If(LGreater(IRD2, Zero)) {
>                        FindSetLeftBit(IRD2, Local0)
>                        Decrement(Local0)
>                        Add(Local0, 0x8, Local0)
>                    }
>                    Else {
>                        FindSetLeftBit(IRD1, Local0)
>                        Decrement(Local0)
>                    }
>                    Store(Local0, \_SB_.PCI0.PIB_.PIRD)
>                }
>            }
>            Device(DMA1) {
>                Name(_HID, 0x0002d041)
>                Name(_CRS, Buffer(0x1d) {0x2a, 0x10, 0x4, 0x47, 0x1,
> 0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x47, 0x1, 0x81, 0x0, 0x81, 0x0, 0x1,
> 0xf, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0, 0x1, 0x20, 0x79, 0x0 })
>                Method(_STA) {
>                    Return(0xf)
>                }
>            }
>            Device(PIC_) {
>                Name(_HID, 0xd041)
>                Method(_STA) {
>                    Return(0xf)
>                }
>                Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x20, 0x0, 0x20,
> 0x0, 0x1, 0x2, 0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x22, 0x4,
> 0x0, 0x79, 0x0 })
>            }
>            Device(COPR) {
>                Name(_HID, 0x040cd041)
>                Method(_STA) {
>                    Return(0xf)
>                }
>                Name(_CRS, Buffer(0xd) {0x47, 0x1, 0xf0, 0x0, 0xf0,
> 0x0, 0x1, 0x10, 0x22, 0x0, 0x20, 0x79, 0x0 })
>            }
>            Device(TIME) {
>                Name(_HID, 0x0001d041)
>                Name(BUF0, Buffer(0xa) {0x47, 0x1, 0x40, 0x0, 0x40,
> 0x0, 0x1, 0x4, 0x79, 0x0 })
>                Name(BUF1, Buffer(0xd) {0x47, 0x1, 0x40, 0x0, 0x40,
> 0x0, 0x1, 0x4, 0x22, 0x1, 0x0, 0x79, 0x0 })
>                Method(_CRS, 0, Serialized) {
>                    If(And(HPTE, 0x1, )) {
>                        Return(BUF0)
>                    }
>                    Return(BUF1)
>                }
>            }
>            Device(RTC_) {
>                Name(_HID, 0x000bd041)
>                Name(BUF0, Buffer(0xa) {0x47, 0x1, 0x70, 0x0, 0x70,
> 0x0, 0x1, 0x6, 0x79, 0x0 })
>                Name(BUF1, Buffer(0xd) {0x47, 0x1, 0x70, 0x0, 0x70,
> 0x0, 0x1, 0x6, 0x22, 0x0, 0x1, 0x79, 0x0 })
>                Method(_CRS, 0, Serialized) {
>                    If(And(HPTE, 0x1, )) {
>                        Return(BUF0)
>                    }
>                    Return(BUF1)
>                }
>            }
>            Device(SPKR) {
>                Method(_STA) {
>                    Return(0xf)
>                }
>                Name(_HID, 0x0008d041)
>                Name(_CRS, Buffer(0xa) {0x47, 0x1, 0x61, 0x0, 0x61,
> 0x0, 0x1, 0x1, 0x79, 0x0 })
>            }
>            Device(MEM_) {
>                Name(_HID, 0x010cd041)
>                Method(_STA) {
>                    Return(0xf)
>                }
>                Method(_CRS) {
>                    Name(SMEM, Buffer(0x56) {0x86, 0x9, 0x0, 0x1,
> 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0,
> 0x0, 0xe, 0x0, 0x0, 0x0, 0x2, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0,
> 0xf0, 0xff, 0x0, 0x0, 0x10, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0,
> 0xee, 0xff, 0x0, 0x0, 0x2, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xc0,
> 0xfe, 0x0, 0x0, 0x1, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xfe,
> 0x0, 0x0, 0x1, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x80, 0x20, 0xe0, 0x0,
> 0x10, 0x0, 0x0, 0x79, 0x0 })
>                    Return(SMEM)
>                }
>            }
>            Device(SYSR) {
>                Name(_HID, 0x020cd041)
>                Method(_STA) {
>                    Return(0xf)
>                }
>                Method(_CRS) {
>                    If(\_SB_.PCI0.PIB_.SMBC) {
>                        Name(RSR2, Buffer(0x6a) {0x47, 0x1, 0x80,
> 0x0, 0x80, 0x0, 0x1, 0x1, 0x47, 0x1, 0x92, 0x0, 0x92, 0x0, 0x1, 0x1,
> 0x47, 0x1, 0xa8, 0x0, 0xa8, 0x0, 0x1, 0x1, 0x47, 0x1, 0xa9, 0x0,
> 0xa9, 0x0, 0x1, 0x1, 0x47, 0x1, 0x22, 0x0, 0x22, 0x0, 0x1, 0x1,
> 0x47, 0x1, 0x2e, 0x0, 0x2e, 0x0, 0x1, 0x1, 0x47, 0x1, 0x2f, 0x0,
> 0x2f, 0x0, 0x1, 0x1, 0x47, 0x1, 0x68, 0x0, 0x68, 0x0, 0x1, 0x8,
> 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x1, 0x2, 0x47, 0x1, 0x10, 0xfe,
> 0x10, 0xfe, 0x1, 0x2, 0x47, 0x1, 0x0, 0xfe, 0x0, 0xfe, 0x1, 0x1,
> 0x47, 0x1, 0x0, 0x80, 0x0, 0x80, 0x1, 0x80, 0x47, 0x1, 0x0, 0x81,
> 0x0, 0x81, 0x1, 0x20, 0x79, 0x0 })
>                        CreateWordField(RSR2, 0x5a, PMMI)
>                        CreateWordField(RSR2, 0x5c, PMMA)
>                        CreateWordField(RSR2, 0x62, SMMI)
>                        CreateWordField(RSR2, 0x64, SMMA)
>                        And(\_SB_.PCI0.PIB_.PMBS, 0xfffe, PMMI)
>                        Store(PMMI, PMMA)
>                        And(\_SB_.PCI0.PIB_.SMBS, 0xfff0, SMMI)
>                        Store(SMMI, SMMA)
>                        Return(RSR2)
>                    }
>                    Else {
>                        Name(RSR1, Buffer(0x52) {0x47, 0x1, 0x80,
> 0x0, 0x80, 0x0, 0x1, 0x1, 0x47, 0x1, 0x92, 0x0, 0x92, 0x0, 0x1, 0x1,
> 0x47, 0x1, 0xa8, 0x0, 0xa8, 0x0, 0x1, 0x1, 0x47, 0x1, 0xa9, 0x0,
> 0xa9, 0x0, 0x1, 0x1, 0x47, 0x1, 0x2e, 0x0, 0x2e, 0x0, 0x1, 0x1,
> 0x47, 0x1, 0x2f, 0x0, 0x2f, 0x0, 0x1, 0x1, 0x47, 0x1, 0xd0, 0x4,
> 0xd0, 0x4, 0x1, 0x2, 0x47, 0x1, 0x10, 0xfe, 0x10, 0xfe, 0x1, 0x2,
> 0x47, 0x1, 0x0, 0xfe, 0x0, 0xfe, 0x1, 0x1, 0x47, 0x1, 0x0, 0x80,
> 0x0, 0x80, 0x1, 0x80, 0x79, 0x0 })
>                        CreateWordField(RSR1, 0x4a, IOMI)
>                        CreateWordField(RSR1, 0x4c, IOMA)
>                        And(\_SB_.PCI0.PIB_.PMBS, 0xfffe, IOMI)
>                        Store(IOMI, IOMA)
>                        Return(RSR1)
>                    }
>                }
>            }
>            Device(HPET) {
>                Name(_HID, 0x0301d041)
>                Method(_CRS, 0, Serialized) {
>                    If(LNot(LGreater(MMTB, 0x4))) {
>                        If(LEqual(MMTB, 0x4)) {
>                            Return(BUF4)
>                        }
>                        If(LEqual(MMTB, 0x2)) {
>                            Return(BUF2)
>                        }
>                        If(LEqual(MMTB, 0x1)) {
>                            Return(BUF1)
>                        }
>                        Return(BUF0)
>                    }
>                }
>                Name(BUF4, Buffer(0x14) {0x22, 0x1, 0x0, 0x22, 0x0,
> 0x1, 0x86, 0x9, 0x0, 0x0, 0x0, 0x40, 0xd0, 0xfe, 0x0, 0x4, 0x0, 0x0,
> 0x79, 0x0 })
>                Name(BUF2, Buffer(0x14) {0x22, 0x1, 0x0, 0x22, 0x0,
> 0x1, 0x86, 0x9, 0x0, 0x0, 0x0, 0x20, 0xd0, 0xfe, 0x0, 0x4, 0x0, 0x0,
> 0x79, 0x0 })
>                Name(BUF1, Buffer(0x14) {0x22, 0x1, 0x0, 0x22, 0x0,
> 0x1, 0x86, 0x9, 0x0, 0x0, 0x0, 0x10, 0xd0, 0xfe, 0x0, 0x4, 0x0, 0x0,
> 0x79, 0x0 })
>                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(And(HPTE, 0x1, )) {
>                        If(LNot(LLess(\_SB_.OSTP(), 0x8))) {
>                            Return(0xf)
>                        }
>                        Else {
>                            Return(0x0)
>                        }
>                    }
>                    Return(0x0)
>                }
>            }
>            Device(PS2M) {
>                Name(_HID, 0x050d2e4f)
>                Name(_CID, Package(0x3) {
>                    0x000d2e4f,
>                    0x02002e4f,
>                    0x130fd041,
>                })
>                Name(_CRS, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
>                Method(_STA) {
>                    If(LEqual(And(\_SB_.PCI0.PIB_.PMRD(0xfb), 0x80,
> Local0), 0x80)) {
>                        Return(0xf)
>                    }
>                    Return(0x0)
>                }
>            }
>            Device(PS2K) {
>                Method(_HID) {
>                    And(\_SB_.PCI0.PIB_.PMRD(0xfb), 0x8, Local0)
>                    If(Local0) {
>                        Return(0x2003d041)
>                    }
>                    Else {
>                        Return(0x0303d041)
>                    }
>                }
>                Method(_CID) {
>                    And(\_SB_.PCI0.PIB_.PMRD(0xfb), 0x8, Local0)
>                    If(Local0) {
>                        Return(0x0303d041)
>                    }
>                    Else {
>                        Return(0x2003d041)
>                    }
>                }
>                Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x60, 0x0, 0x60,
> 0x0, 0x1, 0x1, 0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x22, 0x2,
> 0x0, 0x79, 0x0 })
>                Method(_STA) {
>                    Return(0xf)
>                }
>            }
>            OperationRegion(PMIF, SystemIO, 0x68, 0x8)
>            Field(PMIF, ByteAcc, NoLock, Preserve) {
>                PMUD, 8,
>                Offset(0x4),
>                PMUC, 8,
>                Offset(0x8)
>            }
>            Mutex(ELCK, 0)
>            Method(WIBF) {
>                Store(0x0009ffff, Local6)
>                Noop
>                Noop
>                Store(PMUC, Local2)
>                And(Local2, 0x22, Local2)
>                If(And(Local2, 0x20, Local3)) {
>                    Return(0x1)
>                }
>                And(Local2, 0x2, Local2)
>                While(LAnd(LNot(LEqual(Local2, 0x0)),
> LNot(LEqual(Local6, 0x0)))) {
>                    Noop
>                    Noop
>                    Store(PMUC, Local2)
>                    Decrement(Local6)
>                    If(And(Local2, 0x20, Local3)) {
>                        Return(0x1)
>                    }
>                    And(Local2, 0x2, Local2)
>                }
>                Return(0x0)
>            }
>            Method(WOBF) {
>                Store(0x009fffff, Local6)
>                Noop
>                Noop
>                Store(PMUC, Local3)
>                And(Local3, 0x21, Local3)
>                If(And(Local3, 0x20, Local2)) {
>                    Return(0x1)
>                }
>                While(LAnd(LEqual(Local3, 0x0), LNot(LEqual(Local6,
> 0x0)))) {
>                    Noop
>                    Noop
>                    Store(PMUC, Local3)
>                    And(Local3, 0x21, Local3)
>                    If(And(Local3, 0x20, Local2)) {
>                        Return(0x1)
>                    }
>                    Decrement(Local6)
>                }
>                Return(0x0)
>            }
>            Method(RCMD, 2) {
>                Store(Arg0, Local0)
>                Store(Arg1, Local1)
>                Store(Local0, PMUC)
>                If(WIBF()) {
>                    Return(0x1)
>                }
>                Store(Local1, PMUD)
>                If(WOBF()) {
>                    Return(0x1)
>                }
>                Return(0x0)
>            }
>            Method(WCMD, 2) {
>                Store(Arg0, Local0)
>                Store(Arg1, Local1)
>                Store(Local0, PMUC)
>                If(WIBF()) {
>                    Return(0x1)
>                }
>                Store(Local1, PMUD)
>                If(WIBF()) {
>                    Return(0x1)
>                }
>                Return(0x0)
>            }
>            Method(PMRD, 1) {
>                Acquire(ELCK, 0xffff)
>                Store(Zero, EDFG)
>                Store(0x14, RECT)
>                While(LAnd(LEqual(EDFG, 0x0), LNot(LEqual(RECT,
> 0x0)))) {
>                    Store(Arg0, Local0)
>                    Store(0x03e8, Local6)
>                    Store(PMUC, Local1)
>                    And(Local1, 0x13, Local1)
>                    While(LAnd(LNot(LEqual(Local1, 0x0)),
> LNot(LEqual(Local6, 0x0)))) {
>                        Sleep(0x1)
>                        Store(PMUC, Local1)
>                        And(Local1, 0x13, Local1)
>                        If(And(Local1, 0x1, Local2)) {
>                            Store(PMUD, Local3)
>                        }
>                        Decrement(Local6)
>                    }
>                    While(RCMD(0x80, Local0)) {
>                        Noop
>                        Noop
>                        Store(PMUC, Local5)
>                        If(And(Local5, 0x1, Local2)) {
>                            Store(PMUD, Local5)
>                        }
>                    }
>                    Store(0x07d0, Local6)
>                    Store(PMUC, Local1)
>                    And(Local1, 0x10, Local1)
>                    While(LAnd(LNot(LEqual(Local1, 0x0)),
> LNot(LEqual(Local6, 0x0)))) {
>                        Noop
>                        Noop
>                        Store(PMUC, Local1)
>                        And(Local1, 0x10, Local1)
>                        Decrement(Local6)
>                    }
>                    Store(PMUC, Local1)
>                    And(Local1, 0x20, Local1)
>                    If(LEqual(Local1, 0x0)) {
>                        Store(One, EDFG)
>                    }
>                    Decrement(RECT)
>                }
>                Store(PMUD, Local4)
>                Release(ELCK)
>                Return(Local4)
>            }
>            Method(PMWT, 2) {
>                Acquire(ELCK, 0xffff)
>                Store(Zero, EDFG)
>                Store(0x14, RECT)
>                While(LAnd(LEqual(EDFG, 0x0), LNot(LEqual(RECT,
> 0x0)))) {
>                    Store(Arg0, Local0)
>                    Store(0x03e8, Local6)
>                    Store(PMUC, Local1)
>                    And(Local1, 0x13, Local1)
>                    While(LAnd(LNot(LEqual(Local1, 0x0)),
> LNot(LEqual(Local6, 0x0)))) {
>                        Sleep(0x1)
>                        Store(PMUC, Local1)
>                        And(Local1, 0x13, Local1)
>                        Decrement(Local6)
>                    }
>                    While(WCMD(0x81, Local0)) {
>                        Noop
>                        Noop
>                        Store(PMUC, Local5)
>                        If(And(Local5, 0x1, Local2)) {
>                            Store(PMUD, Local5)
>                        }
>                    }
>                    Store(Arg1, PMUD)
>                    Store(0x07d0, Local6)
>                    Store(PMUC, Local1)
>                    And(Local1, 0x12, Local1)
>                    While(LAnd(LNot(LEqual(Local1, 0x0)),
> LNot(LEqual(Local6, 0x0)))) {
>                        Store(0x0, ED__)
>                        Noop
>                        Noop
>                        Store(0x0, ED__)
>                        Store(PMUC, Local1)
>                        And(Local1, 0x12, Local1)
>                        Decrement(Local6)
>                    }
>                    Store(PMUC, Local1)
>                    And(Local1, 0x20, Local1)
>                    If(LEqual(Local1, 0x0)) {
>                        Store(One, EDFG)
>                    }
>                    Decrement(RECT)
>                }
>                Release(ELCK)
>            }
>            Method(PMMW, 2) {
>                Store(Arg0, Local0)
>                Store(Arg1, Local1)
>                And(Local0, 0xff, Local2)
>                And(Local0, 0xff00, Local3)
>                ShiftRight(Local3, 0x8, Local3)
>                Add(Local2, Local3, Local4)
>                Add(Local4, 0xc1, Local4)
>                Add(Local4, Local1, Local7)
>                And(Local7, 0xff, Local7)
>                PMWR(0x043f, Local7)
>                PMWR(Local0, Local1)
>            }
>            Method(PMWR, 2) {
>                Acquire(ELCK, 0xffff)
>                Store(Zero, EDFG)
>                Store(0x14, RECT)
>                While(LAnd(LEqual(EDFG, 0x0), LNot(LEqual(RECT,
> 0x0)))) {
>                    Store(0x03e8, Local6)
>                    Store(PMUC, Local1)
>                    And(Local1, 0x13, Local1)
>                    While(LAnd(LNot(LEqual(Local1, 0x0)),
> LNot(LEqual(Local6, 0x0)))) {
>                        Sleep(0x1)
>                        Store(PMUC, Local1)
>                        And(Local1, 0x13, Local1)
>                        Decrement(Local6)
>                    }
>                    Store(Arg0, Local0)
>                    While(WCM2(0xc1, Local0)) {
>                        Store(0x0, ED__)
>                        Noop
>                        Noop
>                        Store(0x0, ED__)
>                        Store(PMUC, Local5)
>                        If(And(Local5, 0x1, Local2)) {
>                            Store(PMUD, Local5)
>                        }
>                    }
>                    Store(Arg1, PMUD)
>                    Store(0x07d0, Local6)
>                    Store(PMUC, Local1)
>                    And(Local1, 0x12, Local1)
>                    While(LAnd(LNot(LEqual(Local1, 0x0)),
> LNot(LEqual(Local6, 0x0)))) {
>                        Store(0x0, ED__)
>                        Noop
>                        Noop
>                        Store(0x0, ED__)
>                        Store(PMUC, Local1)
>                        And(Local1, 0x12, Local1)
>                        Decrement(Local6)
>                    }
>                    Store(PMUC, Local1)
>                    And(Local1, 0x20, Local1)
>                    If(LEqual(Local1, 0x0)) {
>                        Store(One, EDFG)
>                    }
>                    Decrement(RECT)
>                }
>                Release(ELCK)
>            }
>            Method(WCM2, 2) {
>                Store(Arg0, Local0)
>                Store(Arg1, Local1)
>                Store(Arg1, Local2)
>                And(Local1, 0xff, Local1)
>                And(Local2, 0xff00, Local2)
>                ShiftRight(Local2, 0x8, Local2)
>                Store(Local0, PMUC)
>                If(WIBF()) {
>                    Return(0x1)
>                }
>                Store(Local2, PMUD)
>                If(WIBF()) {
>                    Return(0x1)
>                }
>                Store(Local1, PMUD)
>                If(WIBF()) {
>                    Return(0x1)
>                }
>                Return(0x0)
>            }
>            Name(EDFG, 0x0)
>            Name(RECT, 0x0)
>            OperationRegion(DELY, SystemIO, 0xed, 0x1)
>            Field(DELY, ByteAcc, NoLock, Preserve) {
>                ED__, 8
>            }
>            Method(SMST) {
>                Store(0x10, Local6)
>                Store(PMRD(0x70), Local0)
>                While(LAnd(LNot(LEqual(Local0, 0x0)),
> LNot(LEqual(Local6, 0x0)))) {
>                    Store(PMRD(0x70), Local0)
>                    Decrement(Local6)
>                }
>                Store(0x10, Local6)
>                Store(PMRD(0x71), Local1)
>                While(LAnd(LNot(LEqual(Local1, 0x80)),
> LNot(LEqual(Local6, 0x0)))) {
>                    Store(PMRD(0x71), Local1)
>                    Decrement(Local6)
>                }
>            }
>            Method(SMWT, 3) {
>                Acquire(ELCK, 0xffff)
>                Store(0x6, Local6)
>                Store(Arg0, Local0)
>                Store(Arg1, Local1)
>                Store(Arg2, Local2)
>                While(LNot(LEqual(Local6, 0x0))) {
>                    PMWT(0x71, 0x0)
>                    PMWT(0x72, Local0)
>                    PMWT(0x73, Local1)
>                    PMWT(0x74, Local2)
>                    PMWT(0x70, 0x6)
>                    SMST()
>                    Decrement(Local6)
>                }
>                Release(ELCK)
>            }
>            Method(SMWD, 4) {
>                Acquire(ELCK, 0xffff)
>                Store(0x6, Local6)
>                Store(Arg0, Local0)
>                Store(Arg1, Local1)
>                Store(Arg2, Local2)
>                Store(Arg3, Local3)
>                While(LNot(LEqual(Local6, 0x0))) {
>                    PMWT(0x71, 0x0)
>                    PMWT(0x72, Local0)
>                    PMWT(0x73, Local1)
>                    PMWT(0x74, Local2)
>                    PMWT(0x75, Local3)
>                    PMWT(0x70, 0x8)
>                    SMST()
>                    Decrement(Local6)
>                }
>                Release(ELCK)
>            }
>        }
>        Name(REGT, Package(0x15) {
>            0x10,
>            0x20,
>            0x21,
>            0x22,
>            0x23,
>            0x33,
>            0x34,
>            0x35,
>            0x36,
>            0x37,
>            0x47,
>            0x48,
>            0x49,
>            0x4a,
>            0x4b,
>            0x4c,
>            0x5c,
>            0x5d,
>            0x5e,
>            0x5f,
>            0x6f,
>        })
>        Name(DMTT, Package(0x7) {
>            0xf,
>            0x14,
>            0x1e,
>            0x2d,
>            0x3c,
>            0x4b,
>            0x78,
>        })
>        Name(PIOT, Package(0x7) {
>            0x0258,
>            0x017f,
>            0xf0,
>            0xb4,
>            0x78,
>            0x5a,
>            0x0,
>        })
>        Device(IDE_) {
>            Method(_ADR) {
>                Return(0x000f0000)
>            }
>            OperationRegion(PCI_, PCI_Config, 0x48, 0x60)
>            Field(PCI_, DWordAcc, NoLock, Preserve) {
>                SDR1, 8,
>                SDR0, 8,
>                PDR1, 8,
>                PDR0, 8,
>                SDST, 4,
>                PDST, 4,
>                Offset(0x8),
>                UDMS, 16,
>                UDMP, 16
>            }
>            OperationRegion(Z007, SystemIO, 0x80, 0x9)
>            Field(Z007, ByteAcc, NoLock, Preserve) {
>                Z000, 8,
>                Offset(0x4),
>                Z008, 8,
>                Offset(0x8),
>                Z009, 8
>            }
>            Name(Z00A, 0x0)
>            Name(Z00B, 0x0)
>            Method(_PS3) {
>                And(^UDMP, 0x10, ^Z00A)
>                And(^UDMS, 0x10, ^Z00B)
>            }
>            Method(_PS0) {
>                If(^Z00A) {
>                    Or(^UDMP, ^Z00A, Local0)
>                    Or(Local0, ShiftLeft(^Z00A, 0x8, ), ^UDMP)
>                }
>                If(^Z00B) {
>                    Or(^UDMS, ^Z00B, Local0)
>                    Or(Local0, ShiftLeft(^Z00B, 0x8, ), ^UDMS)
>                }
>            }
>            Method(GIDX, 1) {
>                If(LEqual(Arg0, 0x0)) {
>                    Store(0x0, Local1)
>                }
>                Else {
>                    If(LEqual(Arg0, 0xe)) {
>                        Store(0x6, Local1)
>                    }
>                    Else {
>                        Add(ShiftRight(Arg0, 0x1, ), 0x1, Local1)
>                    }
>                }
>                Return(Local1)
>            }
>            Method(RIDX, 1) {
>                Store(0x0, Local0)
>                While(NAnd(LLess(Local0, 0x7),
> LEqual(DerefOf(Index(^^DMTT, Local0, )), Arg0), )) {
>                    Increment(Local0)
>                }
>                If(Local0) {
>                    If(LGreater(Local0, 0x6)) {
>                        Store(0xe, Local0)
>                    }
>                    Else {
>                        Subtract(ShiftLeft(Local0, 0x1, ), 0x1, Local0)
>                        If(LNot(LEqual(Local0, 0x1))) {
>                            Decrement(Local0)
>                        }
>                    }
>                }
>                Return(Local0)
>            }
>            Method(GTM_, 3) {
>                Store(Buffer(0x14) { }, Local0)
>                CreateDWordField(Local0, 0x0, PIO0)
>                CreateDWordField(Local0, 0x4, DMA0)
>                CreateDWordField(Local0, 0x8, PIO1)
>                CreateDWordField(Local0, 0xc, DMA1)
>                CreateDWordField(Local0, 0x10, FLAG)
>                Store(Zero, FLAG)
>                Or(FLAG, 0x10, FLAG)
>                Add(And(Arg1, 0xf, ), ShiftRight(Arg1, 0x4, ), Local1)
>                Add(Local1, 0x2, Local1)
>                Multiply(Local1, 0x1e, PIO0)
>                Or(FLAG, 0x2, FLAG)
>                Add(And(Arg2, 0xf, ), ShiftRight(Arg2, 0x4, ), Local1)
>                Add(Local1, 0x2, Local1)
>                Multiply(Local1, 0x1e, PIO1)
>                Or(FLAG, 0x8, FLAG)
>                And(Arg0, 0xf, Local1)
>                If(And(Arg0, 0xe0, )) {
>                    Or(FLAG, 0x4, FLAG)
>                    Store(^GIDX(Local1), Local1)
>                }
>                Else {
>                    Store(0x6, Local1)
>                }
>                Store(DerefOf(Index(^^DMTT, Local1, )), DMA1)
>                ShiftRight(And(Arg0, 0x0f00, ), 0x8, Local1)
>                If(And(Arg0, 0xe000, )) {
>                    Or(FLAG, 0x1, FLAG)
>                    Store(^GIDX(Local1), Local1)
>                }
>                Else {
>                    Store(0x6, Local1)
>                }
>                Store(DerefOf(Index(^^DMTT, Local1, )), DMA0)
>                Return(Local0)
>            }
>            Method(STM_, 3) {
>                Store(Buffer(0x5) { }, Local7)
>                CreateWordField(Local7, 0x0, UDMT)
>                CreateWordField(Local7, 0x2, PIOT)
>                CreateByteField(Local7, 0x4, R4CT)
>                CreateDWordField(Arg0, 0x0, PIO0)
>                CreateDWordField(Arg0, 0x4, DMA0)
>                CreateDWordField(Arg0, 0x8, PIO1)
>                CreateDWordField(Arg0, 0xc, DMA1)
>                CreateDWordField(Arg0, 0x10, FLAG)
>                Store(FLAG, Local4)
>                Store(0x0e0e, Local1)
>                If(And(Local4, 0x1, )) {
>                    And(Local1, 0xf, Local1)
>                    Store(^RIDX(DMA0), Local3)
>                    Or(Local3, 0xe0, Local3)
>                    Or(ShiftLeft(Local3, 0x8, ), Local1, Local1)
>                }
>                If(And(Local4, 0x4, )) {
>                    And(Local1, 0xff00, Local1)
>                    Store(^RIDX(DMA1), Local3)
>                    Or(Local3, 0xe0, Local3)
>                    Or(Local3, Local1, Local1)
>                }
>                Store(Local1, UDMT)
>                Store(0xa, Local2)
>                If(And(Local4, 0x2, )) {
>                    Divide(PIO0, 0x1e, , Local3)
>                    Subtract(Local3, 0x3, Local3)
>                    If(LLess(Local3, 0xc)) {
>                        And(Local2, 0x3, Local2)
>                        Or(Local2, 0x4, Local2)
>                    }
>                    Store(ShiftLeft(DerefOf(Index(^^REGT, Local3, )),
> 0x8, ), Local6)
>                }
>                Else {
>                    Store(0x0, Local6)
>                }
>                If(And(Local4, 0x8, )) {
>                    Divide(PIO1, 0x1e, , Local3)
>                    Subtract(Local3, 0x3, Local3)
>                    If(LLess(Local3, 0xc)) {
>                        And(Local2, 0xc, Local2)
>                        Or(Local2, 0x1, Local2)
>                    }
>                    Store(DerefOf(Index(^^REGT, Local3, )), Local6)
>                }
>                Else {
>                    Store(And(Local6, 0xff00, ), Local6)
>                }
>                Store(Local2, R4CT)
>                Store(Local6, PIOT)
>                Return(Local7)
>            }
>            Method(GTF_, 3) {
>                If(Arg2) {
>                    Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0,
> 0xef }, Local7)
>                }
>                Else {
>                    Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0,
> 0xef }, Local7)
>                }
>                CreateByteField(Local7, 0x1, MODE)
>                Add(And(Arg0, 0xf, ), ShiftRight(Arg0, 0x4, ), Local1)
>                Add(Local1, 0x2, Local1)
>                Multiply(Local1, 0x1e, Local0)
>                Store(Match(^^PIOT, MLT, Local0, MTR, 0x0, 0x0),
> Local1)
>                If(Local1) {
>                    Decrement(Local1)
>                }
>                If(And(Arg1, 0xe0, )) {
>                    Store(^GIDX(And(Arg1, 0xf, )), Local0)
>                    If(LGreater(Local0, 0x6)) {
>                        Store(0x0, Local0)
>                    }
>                    Else {
>                        Subtract(0x6, Local0, Local0)
>                    }
>                    Or(Local0, 0x40, MODE)
>                }
>                Else {
>                    Or(Local1, 0x8, MODE)
>                }
>                Concatenate(Local7, Local7, Local6)
>                Or(Local1, 0x8, MODE)
>                Concatenate(Local6, Local7, Local5)
>                Return(Local5)
>            }
>            Device(PRIM) {
>                Name(_ADR, 0x0)
>                Method(_GTM) {
>                    Store("GTM - Primary Controller", Debug)
>                    Store(^^GTM_(0xe0e0, 0x20, 0x20), Local0)
>                    Return(Local0)
>                }
>                Method(_STM, 3) {
>                    Store("STM - Primary Controller", Debug)
>                }
>                Device(MAST) {
>                    Name(_ADR, 0x0)
>                    Method(_GTF) {
>                        Store("GTF - Primary Master", Debug)
>                        ShiftRight(0xe0e0, 0x8, Local0)
>                        Store(^^^GTF_(0x20, Local0, 0x1), Local0)
>                        Return(Local0)
>                    }
>                }
>                Device(SLAV) {
>                    Name(_ADR, 0x1)
>                    Method(_GTF) {
>                        Store("GTF - Primary Slave", Debug)
>                        Store(^^^GTF_(0x20, 0xe0, 0x0), Local0)
>                        Return(Local0)
>                    }
>                }
>            }
>            Device(SECN) {
>                Name(_ADR, 0x1)
>                Method(_GTM) {
>                    Store("GTM - Secondary Controller", Debug)
>                    Store(^^GTM_(^^UDMS, ^^SDR0, ^^SDR1), Local0)
>                    Return(Local0)
>                }
>                Method(_STM, 3) {
>                    Store("STM - Secondary Controller", Debug)
>                    Store(^^STM_(Arg0, Arg1, Arg2), Local0)
>                    CreateWordField(Local0, 0x0, DMAS)
>                    CreateWordField(Local0, 0x2, PIOS)
>                    CreateByteField(Local0, 0x4, ADSS)
>                    Store(Or(DMAS, And(^^UDMS, 0x1010, ), ), ^^UDMS)
>                    And(PIOS, 0xff, Local1)
>                    If(Local1) {
>                        Store(Local1, ^^SDR1)
>                    }
>                    ShiftRight(PIOS, 0x8, Local1)
>                    If(Local1) {
>                        Store(Local1, ^^SDR0)
>                    }
>                    Store(ADSS, ^^SDST)
>                }
>                Device(MAST) {
>                    Name(_ADR, 0x0)
>                    Method(_GTF) {
>                        Store("GTF - Secondary Master", Debug)
>                        ShiftRight(^^^UDMS, 0x8, Local0)
>                        Store(^^^GTF_(^^^SDR0, Local0, 0x1), Local0)
>                        Return(Local0)
>                    }
>                }
>                Device(SLAV) {
>                    Name(_ADR, 0x1)
>                    Method(_GTF) {
>                        Store("GTF - Secondary Slave", Debug)
>                        Store(^^^GTF_(^^^SDR1, ^^^UDMS, 0x0), Local0)
>                        Return(Local0)
>                    }
>                }
>            }
>        }
>        Device(USB1) {
>            Name(_ADR, 0x00100000)
>            Method(_STA) {
>                If(\_SB_.PCI0.PIB_.ESB1) {
>                    Return(0x0)
>                }
>                Else {
>                    Return(0xf)
>                }
>            }
>        }
>        Device(USB2) {
>            Name(_ADR, 0x00100001)
>            Method(_STA) {
>                If(\_SB_.PCI0.PIB_.ESB2) {
>                    Return(0x0)
>                }
>                Else {
>                    Return(0xf)
>                }
>            }
>        }
>        Device(USB3) {
>            Name(_ADR, 0x00100002)
>            Method(_STA) {
>                If(\_SB_.PCI0.PIB_.ESB3) {
>                    Return(0x0)
>                }
>                Else {
>                    Return(0xf)
>                }
>            }
>        }
>        Device(USB5) {
>            Name(_ADR, 0x00100004)
>            Method(_STA) {
>                If(\_SB_.PCI0.PIB_.ESB5) {
>                    Return(0x0)
>                }
>                Else {
>                    Return(0xf)
>                }
>            }
>        }
>        Device(Z00C) {
>            Name(_ADR, 0x00110007)
>            OperationRegion(PBVL, PCI_Config, 0xfc, 0x1)
>            Field(PBVL, ByteAcc, NoLock, Preserve) {
>                , 2,
>                Z00D, 1,
>                Offset(0x1)
>            }
>        }
>        Device(SP2P) {
>            Name(_ADR, 0x00130001)
>            Name(_PRW, Package(0x2) {
>                0x5,
>                0x5,
>            })
>            OperationRegion(PPB2, PCI_Config, 0x19, 0x1)
>            Field(PPB2, ByteAcc, NoLock, Preserve) {
>                CBUS, 8
>            }
>            Method(_BBN) {
>                Return(CBUS)
>            }
>            Name(APIC, Package(0x11) {
>                Package(0x4) {
>                    0x0003ffff,
>                    0x0,
>                    0x0,
>                    0x10,
>                },
>                Package(0x4) {
>                    0x0003ffff,
>                    0x1,
>                    0x0,
>                    0x11,
>                },
>                Package(0x4) {
>                    0x0003ffff,
>                    0x2,
>                    0x0,
>                    0x12,
>                },
>                Package(0x4) {
>                    0x0003ffff,
>                    0x3,
>                    0x0,
>                    0x13,
>                },
>                Package(0x4) {
>                    0x0004ffff,
>                    0x0,
>                    0x0,
>                    0x11,
>                },
>                Package(0x4) {
>                    0x0004ffff,
>                    0x1,
>                    0x0,
>                    0x12,
>                },
>                Package(0x4) {
>                    0x0004ffff,
>                    0x2,
>                    0x0,
>                    0x13,
>                },
>                Package(0x4) {
>                    0x0004ffff,
>                    0x3,
>                    0x0,
>                    0x10,
>                },
>                Package(0x4) {
>                    0x0005ffff,
>                    0x0,
>                    0x0,
>                    0x12,
>                },
>                Package(0x4) {
>                    0x0006ffff,
>                    0x0,
>                    0x0,
>                    0x12,
>                },
>                Package(0x4) {
>                    0x0006ffff,
>                    0x1,
>                    0x0,
>                    0x13,
>                },
>                Package(0x4) {
>                    0x0007ffff,
>                    0x0,
>                    0x0,
>                    0x11,
>                },
>                Package(0x4) {
>                    0x0007ffff,
>                    0x1,
>                    0x0,
>                    0x12,
>                },
>                Package(0x4) {
>                    0x0009ffff,
>                    0x0,
>                    0x0,
>                    0x10,
>                },
>                Package(0x4) {
>                    0x0009ffff,
>                    0x1,
>                    0x0,
>                    0x10,
>                },
>                Package(0x4) {
>                    0x0009ffff,
>                    0x2,
>                    0x0,
>                    0x10,
>                },
>                Package(0x4) {
>                    0x0009ffff,
>                    0x3,
>                    0x0,
>                    0x10,
>                },
>            })
>            Name(PICM, Package(0x11) {
>                Package(0x4) {
>                    0x0003ffff,
>                    0x0,
>                    \_SB_.PCI0.PIB_.LNKA,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0003ffff,
>                    0x1,
>                    \_SB_.PCI0.PIB_.LNKB,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0003ffff,
>                    0x2,
>                    \_SB_.PCI0.PIB_.LNKC,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0003ffff,
>                    0x3,
>                    \_SB_.PCI0.PIB_.LNKD,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0004ffff,
>                    0x0,
>                    \_SB_.PCI0.PIB_.LNKB,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0004ffff,
>                    0x1,
>                    \_SB_.PCI0.PIB_.LNKC,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0004ffff,
>                    0x2,
>                    \_SB_.PCI0.PIB_.LNKD,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0004ffff,
>                    0x3,
>                    \_SB_.PCI0.PIB_.LNKA,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0005ffff,
>                    0x1,
>                    \_SB_.PCI0.PIB_.LNKC,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0006ffff,
>                    0x0,
>                    \_SB_.PCI0.PIB_.LNKC,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0006ffff,
>                    0x1,
>                    \_SB_.PCI0.PIB_.LNKD,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0007ffff,
>                    0x0,
>                    \_SB_.PCI0.PIB_.LNKB,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0007ffff,
>                    0x1,
>                    \_SB_.PCI0.PIB_.LNKC,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0009ffff,
>                    0x0,
>                    \_SB_.PCI0.PIB_.LNKA,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0009ffff,
>                    0x1,
>                    \_SB_.PCI0.PIB_.LNKB,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0009ffff,
>                    0x2,
>                    \_SB_.PCI0.PIB_.LNKC,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0009ffff,
>                    0x3,
>                    \_SB_.PCI0.PIB_.LNKD,
>                    0x0,
>                },
>            })
>            Method(_PRT) {
>                If(PICF) {
>                    Return(APIC)
>                }
>                Else {
>                    Return(PICM)
>                }
>            }
>        }
>        Device(P2PE) {
>            Name(_ADR, 0x00130000)
>            Method(_STA) {
>                If(LEqual(\_SB_.PCI0.Z00C.Z00D, 0x0)) {
>                    Return(0xf)
>                }
>                Else {
>                    Return(0x0)
>                }
>            }
>            Name(APIC, Package(0x4) {
>                Package(0x4) {
>                    0x0001ffff,
>                    0x0,
>                    0x0,
>                    0x11,
>                },
>                Package(0x4) {
>                    0x0001ffff,
>                    0x1,
>                    0x0,
>                    0x11,
>                },
>                Package(0x4) {
>                    0x0001ffff,
>                    0x2,
>                    0x0,
>                    0x11,
>                },
>                Package(0x4) {
>                    0x0001ffff,
>                    0x3,
>                    0x0,
>                    0x11,
>                },
>            })
>            Name(PICM, Package(0x4) {
>                Package(0x4) {
>                    0x0001ffff,
>                    0x0,
>                    \_SB_.PCI0.PIB_.LNKB,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0001ffff,
>                    0x1,
>                    \_SB_.PCI0.PIB_.LNKB,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0001ffff,
>                    0x2,
>                    \_SB_.PCI0.PIB_.LNKB,
>                    0x0,
>                },
>                Package(0x4) {
>                    0x0001ffff,
>                    0x3,
>                    \_SB_.PCI0.PIB_.LNKB,
>                    0x0,
>                },
>            })
>            Method(_PRT) {
>                If(PICF) {
>                    Return(APIC)
>                }
>                Else {
>                    Return(PICM)
>                }
>            }
>            Device(HDAC) {
>                Name(_ADR, 0x00010000)
>                OperationRegion(AZAR, PCI_Config, 0x0, 0x0100)
>                Field(AZAR, ByteAcc, NoLock, Preserve) {
>                    VID_, 16,
>                    Offset(0x4),
>                    CMDR, 3
>                }
>                Method(_STA) {
>                    If(LNot(LEqual(\_SB_.PCI0.P2PE.HDAC.VID_,
> 0x1106))) {
>                        Return(0x0)
>                    }
>                    Else {
>                        If(LEqual(\_SB_.PCI0.P2PE.HDAC.CMDR, 0x0)) {
>                            Return(0xd)
>                        }
>                        Else {
>                            Return(0xf)
>                        }
>                    }
>                }
>            }
>        }
>        Device(PPB_) {
>            Name(_ADR, 0x00010000)
>            Device(VGA_) {
>                Name(_ADR, 0x0)
>                Name(DSEN, 0x1)
>                Name(LCDA, 0x1)
>                Name(DVIA, 0x1)
>                Name(CRTA, 0x1)
>                Method(_DOS, 1) {
>                    Store(And(Arg0, 0x3, ), DSEN)
>                }
>                Method(_DOD) {
>                    Return(Package(0x3) {
>                        0x00010100,
>                        0x00010110,
>                        0x00010120,
>                    })
>                }
>                Device(CRT_) {
>                    Name(_ADR, 0x0100)
>                    Method(_DCS) {
>                        If(CRTA) {
>                            Return(0x1f)
>                        }
>                        Else {
>                            Return(0x1d)
>                        }
>                    }
>                    Method(_DGS) {
>                        If(CRTA) {
>                            Return(0x1)
>                        }
>                        Else {
>                            Return(0x0)
>                        }
>                    }
>                    Method(_DSS, 1) {
>                        If(CRTA) {
>                            Return(0x80000001)
>                        }
>                        Else {
>                            Return(0x0)
>                        }
>                    }
>                }
>                Device(LCD_) {
>                    Name(_ADR, 0x0110)
>                    Method(_DCS) {
>                        If(LCDA) {
>                            Return(0x1f)
>                        }
>                        Else {
>                            Return(0x1d)
>                        }
>                    }
>                    Method(_DGS) {
>                        If(LCDA) {
>                            Return(0x1)
>                        }
>                        Else {
>                            Return(0x0)
>                        }
>                    }
>                    Method(_DSS, 1) {
>                        If(LCDA) {
>                            Return(0x80000001)
>                        }
>                        Else {
>                            Return(0x0)
>                        }
>                    }
>                }
>                Device(DVI_) {
>                    Name(_ADR, 0x0120)
>                    Method(_DCS) {
>                        If(DVIA) {
>                            Return(0x1f)
>                        }
>                        Else {
>                            Return(0x1d)
>                        }
>                    }
>                    Method(_DGS) {
>                        If(DVIA) {
>                            Return(0x1)
>                        }
>                        Else {
>                            Return(0x0)
>                        }
>                    }
>                    Method(_DSS, 1) {
>                        If(DVIA) {
>                            Return(0x80000001)
>                        }
>                        Else {
>                            Return(0x0)
>                        }
>                    }
>                }
>            }
>        }
>        Device(LAN_) {
>            Name(_ADR, 0x00090000)
>            Name(_PRW, Package(0x2) {
>                0x5,
>                0x3,
>            })
>        }
>    }
>    Mutex(VSMX, 0)
>    Method(Z001, 1, Serialized) {
>        Acquire(VSMX, 0xffff)
>        Store(Arg0, \_SB_.PCI0.PIB_.Z005)
>        Release(VSMX)
>    }
>    Device(LID_) {
>        Name(_HID, 0x0d0cd041)
>        Name(LIDF, 0x1)
>        Method(_LID) {
>            Return(LIDF)
>        }
>        Name(_PRW, Package(0x2) {
>            0x8,
>            0x3,
>        })
>    }
>    Mutex(PSMX, 0)
>    Device(ACAD) {
>        Name(_HID, "ACPI0003")
>        Name(_PCL, Package(0x1) {
>            \_SB_,
>        })
>        Name(INIT, 0x1)
>        Name(ACFG, 0x0)
>        Method(_PSR) {
>            Acquire(PSMX, 0xffff)
>            And(0x1, \_SB_.PCI0.PIB_.PMRD(0xa0), Local0)
>            Store(Local0, ACFG)
>            Store(Local0, INIT)
>            Release(PSMX)
>            Return(ACFG)
>        }
>        Method(_STA) {
>            Return(0xf)
>        }
>    }
>    Device(BAT0) {
>        Name(_HID, 0x0a0cd041)
>        Name(_UID, 0x1)
>        Method(_STA) {
>            Acquire(PSMX, 0xffff)
>            And(\_SB_.PCI0.PIB_.PMRD(0xa1), 0x1, Local0)
>            Store(Local0, FSTA)
>            Release(PSMX)
>            If(LEqual(Local0, 0x0)) {
>                Return(0xf)
>            }
>            Else {
>                Return(0x1f)
>            }
>        }
>        Method(_BIF) {
>            And(\_SB_.PCI0.PIB_.PMRD(0xa1), 0x1, Local0)
>            If(Local0) {
>                UPBI()
>            }
>            Else {
>                IVBI()
>                IVBS()
>            }
>            Store(Zero, FBIF)
>            Return(PBIF)
>        }
>        Method(_BST) {
>            UPBS()
>            And(\_SB_.PCI0.PIB_.PMRD(0xa0), 0x1, Local0)
>            If(Local0) {
>                And(\_SB_.PCI0.PIB_.PMRD(0xe0), 0xfe, Local0)
>                \_SB_.PCI0.PIB_.PMWT(0xe0, Local0)
>            }
>            Else {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local0)
>                And(Local0, 0x10, Local1)
>                If(Local1) {
>                    Or(\_SB_.PCI0.PIB_.PMRD(0xe0), 0x1, Local0)
>                    \_SB_.PCI0.PIB_.PMWT(0xe0, Local0)
>                }
>                Else {
>                    And(\_SB_.PCI0.PIB_.PMRD(0xe0), 0xfe, Local0)
>                    \_SB_.PCI0.PIB_.PMWT(0xe0, Local0)
>                }
>            }
>            Return(PBST)
>        }
>        Method(IVBI) {
>            Store(0xffffffff, Index(PBIF, 0x1, ))
>            Store(0xffffffff, Index(PBIF, 0x2, ))
>            Store(0xffffffff, Index(PBIF, 0x4, ))
>            Store("Bad", Index(PBIF, 0x9, ))
>            Store("Bad", Index(PBIF, 0xa, ))
>            Store("Bad", Index(PBIF, 0xb, ))
>            Store("Bad", Index(PBIF, 0xc, ))
>            Store(One, FBIF)
>        }
>        Method(IVBS) {
>            Store(Zero, Index(PBST, 0x0, ))
>            Store(0xffffffff, Index(PBST, 0x1, ))
>            Store(0xffffffff, Index(PBST, 0x2, ))
>            Store(0xffffffff, Index(PBST, 0x3, ))
>            Store(One, \_SB_.BAT0.FSTA)
>        }
>        Method(UPBI) {
>            Acquire(PSMX, 0xffff)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x0), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x1), Local1)
>            Multiply(Local1, 0x0100, Local2)
>            Or(Local0, Local2, Local3)
>            Store(Local3, Index(PBIF, 0x0, ))
>            Store(\_SB_.PCI0.PIB_.PMRD(0x2), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x3), Local1)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x49), Local2)
>            Multiply(Local1, 0x0100, Local3)
>            Multiply(Local2, 0x00010000, Local4)
>            Or(Local3, Local0, Local5)
>            Or(Local4, Local5, Local6)
>            Store(Local6, Index(PBIF, 0x1, ))
>            Store(\_SB_.PCI0.PIB_.PMRD(0x4), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x5), Local1)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x4a), Local2)
>            Multiply(Local1, 0x0100, Local3)
>            Multiply(Local2, 0x00010000, Local4)
>            Or(Local3, Local0, Local5)
>            Or(Local4, Local5, Local6)
>            Store(Local6, Index(PBIF, 0x2, ))
>            Store(\_SB_.PCI0.PIB_.PMRD(0x6), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x7), Local1)
>            Multiply(Local1, 0x0100, Local2)
>            Or(Local2, Local0, Local3)
>            Store(Local3, Index(PBIF, 0x3, ))
>            Store(\_SB_.PCI0.PIB_.PMRD(0x8), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x9), Local1)
>            Multiply(Local1, 0x0100, Local2)
>            Or(Local2, Local0, Local3)
>            Store(Local3, Index(PBIF, 0x4, ))
>            Store(\_SB_.PCI0.PIB_.PMRD(0xa), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0xb), Local1)
>            Multiply(Local1, 0x0100, Local2)
>            Or(Local2, Local0, Local3)
>            Store(Local3, Index(PBIF, 0x5, ))
>            Store(\_SB_.PCI0.PIB_.PMRD(0xc), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0xd), Local1)
>            Multiply(Local1, 0x0100, Local2)
>            Or(Local2, Local0, Local3)
>            Store(Local3, Index(PBIF, 0x6, ))
>            Store(\_SB_.PCI0.PIB_.PMRD(0xe), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0xf), Local1)
>            Multiply(Local1, 0x0100, Local2)
>            Or(Local2, Local0, Local3)
>            Store(Local3, Index(PBIF, 0x7, ))
>            Store(\_SB_.PCI0.PIB_.PMRD(0x10), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x11), Local1)
>            Multiply(Local1, 0x0100, Local2)
>            Or(Local2, Local0, Local3)
>            Store(Local3, Index(PBIF, 0x8, ))
>            Store("46EA0/ECZJG", Index(PBIF, 0x9, ))
>            Store("", Index(PBIF, 0xa, ))
>            Store("Lion", Index(PBIF, 0xb, ))
>            Store("FIC ", Index(PBIF, 0xc, ))
>            Release(PSMX)
>            Return(PBIF)
>        }
>        Method(UPBS) {
>            Acquire(PSMX, 0xffff)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x1a), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x1b), Local1)
>            Multiply(Local1, 0x0100, Local2)
>            Or(Local2, Local0, Local3)
>            Store(Local3, Index(PBST, 0x0, ))
>            Store(\_SB_.PCI0.PIB_.PMRD(0x1c), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x1d), Local1)
>            Multiply(Local1, 0x0100, Local2)
>            Or(Local2, Local0, Local3)
>            Store(Local3, Index(PBST, 0x1, ))
>            Store(\_SB_.PCI0.PIB_.PMRD(0x1e), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x1f), Local1)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x4b), Local2)
>            Multiply(Local1, 0x0100, Local3)
>            Multiply(Local2, 0x00010000, Local4)
>            Or(Local3, Local0, Local5)
>            Or(Local4, Local5, Local6)
>            Store(Local6, Index(PBST, 0x2, ))
>            Store(\_SB_.PCI0.PIB_.PMRD(0x20), Local0)
>            Store(\_SB_.PCI0.PIB_.PMRD(0x21), Local1)
>            Multiply(Local1, 0x0100, Local2)
>            Or(Local2, Local0, Local3)
>            Store(Local3, Index(PBST, 0x3, ))
>            Release(PSMX)
>            Return(PBST)
>        }
>        Method(_BTP, 1) {
>            Acquire(PSMX, 0xffff)
>            Store(\_SB_.PCI0.PIB_.PMRD(0xb2), Local0)
>            And(Local0, 0x7f, Local0)
>            \_SB_.PCI0.PIB_.PMWT(0xb2, Local0)
>            Store(Arg0, Local0)
>            Store(Local0, Local6)
>            And(Local0, 0xff, Local1)
>            \_SB_.PCI0.PIB_.PMWT(0x22, Local1)
>            Store(Local6, Local0)
>            And(Local0, 0xff00, Local1)
>            ShiftRight(Local1, 0x8, Local2)
>            \_SB_.PCI0.PIB_.PMWT(0x23, Local2)
>            Store(Local6, Local0)
>            And(Local0, 0x00ff0000, Local1)
>            ShiftRight(Local1, 0x10, Local2)
>            \_SB_.PCI0.PIB_.PMWT(0x4c, Local2)
>            Store(\_SB_.PCI0.PIB_.PMRD(0xf1), Local3)
>            If(And(Local3, 0x80, Local3)) {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local4)
>                \_SB_.PCI0.PIB_.PMWT(0xf1, Local4)
>            }
>            Store(\_SB_.PCI0.PIB_.PMRD(0xb2), Local0)
>            Or(Local0, 0x80, Local0)
>            \_SB_.PCI0.PIB_.PMWT(0xb2, Local0)
>            Release(PSMX)
>        }
>        Name(_PCL, Package(0x1) {
>            \_SB_,
>        })
>        Name(FBIF, 0x1)
>        Name(FSTA, 0x1)
>        Name(GGFG, 0x0)
>        Name(PBIF, Package(0xd) {
>            0x1,
>            0x78,
>            0x64,
>            0x1,
>            0x2580,
>            0x5,
>            0x5,
>            0x1,
>            0x1,
>            "???",
>            "???",
>            "???",
>            "???",
>        })
>        Name(PBST, Package(0x4) {
>            0x1,
>            0x78,
>            0x64,
>            0x2580,
>        })
>        Name(PSTA, 0x1f)
>    }
>    Scope(_TZ_) {
>        Name(FL1_, 0x0)
>        Name(FL2_, 0x0)
>        PowerResource(PFN0, 0, 0) {
>            Method(_ON_) {
>                Store(Zero, FL2_)
>                Store(One, FL1_)
>            }
>            Method(_OFF) {
>                Store(Zero, FL1_)
>                Store(One, FL2_)
>            }
>            Method(_STA) {
>                Or(FL1_, FL2_, Local7)
>                Return(Local7)
>            }
>        }
>        PowerResource(PFN1, 0, 0) {
>            Method(_ON_) {
>                If(LEqual(FL1_, 0x0)) {
>                    Store(Zero, FL1_)
>                    Store(One, FL2_)
>                }
>            }
>            Method(_OFF) {
>                Store(Zero, \_TZ_.FL1_)
>                Store(Zero, \_TZ_.FL2_)
>            }
>            Method(_STA) {
>                Or(FL1_, FL2_, Local7)
>                Return(Local7)
>            }
>        }
>        Device(FAN0) {
>            Name(_HID, 0x0b0cd041)
>            Name(_UID, 0x1)
>            Name(_PSC, 0x0)
>            Name(_PR0, Package(0x1) {
>                PFN0,
>            })
>        }
>        Device(FAN1) {
>            Name(_HID, 0x0b0cd041)
>            Name(_UID, 0x2)
>            Name(_PSC, 0x0)
>            Method(_INI) {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xaf), Local0)
>                And(Local0, 0x4, Local0)
>                If(LNot(LEqual(Local0, Zero))) {
>                    \_SB_.PCI0.PIB_.PMMW(0x01e8, 0x0)
>                    Store(One, \_TZ_.THRM.TERR)
>                }
>            }
>            Name(_PR0, Package(0x1) {
>                PFN1,
>            })
>        }
>        ThermalZone(THRM) {
>            Name(PSVV, 0x4f)
>            Name(CRTV, 0x5f)
>            Name(HITP, Package(0x2) {
>                0x46,
>                0x5f,
>            })
>            Name(LOTP, Package(0x2) {
>                0x0,
>                0x3e,
>            })
>            Name(AC0H, 0x5f)
>            Name(AC1H, 0x46)
>            Name(TERR, 0x0)
>            Method(_AC0, 0, Serialized) {
>                Add(AC0H, 0x0111, Local0)
>                Multiply(Local0, 0xa, Local0)
>                Return(Local0)
>            }
>            Method(_AC1, 0, Serialized) {
>                Add(AC1H, 0x0111, Local0)
>                Multiply(Local0, 0xa, Local0)
>                Return(Local0)
>            }
>            Name(_AL0, Package(0x1) {
>                FAN0,
>            })
>            Name(_AL1, Package(0x1) {
>                FAN1,
>            })
>            Method(_PSV) {
>                Add(PSVV, 0x0111, Local0)
>                Multiply(Local0, 0xa, Local0)
>                Return(Local0)
>            }
>            Name(_PSL, Package(0x1) {
>                \_PR_.CPU0,
>            })
>            Method(_CRT) {
>                Add(CRTV, 0x0111, Local0)
>                Multiply(Local0, 0xa, Local0)
>                Return(Local0)
>            }
>            Method(_SCP, 1) {
>            }
>            Method(_TMP) {
>                Store(\_SB_.PCI0.PIB_.PMRD(0xe7), Local0)
>                Multiply(Local0, 0xa, Local0)
>                Add(Local0, 0x0aaa, Local0)
>                Return(Local0)
>            }
>            Name(_TC1, 0x3)
>            Name(_TC2, 0x1)
>            Name(_TSP, 0x96)
>        }
>    }
> }
>
> }
> /*
> SSDT: Length=1210, Revision=1, Checksum=121,
> OEMID=PPmmRe, OEM Table ID=PPm, OEM Revision=0x6040000,
> Creator ID=INTL, Creator Revision=0x20030224
> */
> /*
> APIC: Length=80, Revision=1, Checksum=91,
> OEMID=PTLTD, OEM Table ID= APIC, OEM Revision=0x6040000,
> Creator ID= LTP, Creator Revision=0x0
> */
> /*
> MCFG: Length=60, Revision=1, Checksum=97,
> OEMID=PTLTD, OEM Table ID=  MCFG, OEM Revision=0x6040000,
> Creator ID= LTP, Creator Revision=0x0
> */