/* RSD PTR: Checksum=54, OEMID=DELL, RsdtAddress=0x7f5c630a */ /* RSDT: Length=76, Revision=1, Checksum=207, OEMID=DELL, OEM Table ID=CL09, OEM Revision=0x6040000, Creator ID= LTP, Creator Revision=0x0 */ /* Entries={ 0x7f5ccb6c, 0x7f5ccf80, 0x7f5ccd06, 0x7f5ccd3e, 0x7f5ccd7a, 0x7f5ccde2, 0x7f5cce0a, 0x7f5c6958, 0x7f5c68b2, 0x7f5c63d6 } */ /* DSDT=0x7f5c751c INT_MODEL=PIC SCI_INT=9 SMI_CMD=0xb2, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0 PM1a_EVT_BLK=0x1000-0x1003 PM1a_CNT_BLK=0x1004-0x1005 PM2_CNT_BLK=0x1020-0x1020 PM2_TMR_BLK=0x1008-0x100b PM2_GPE0_BLK=0x1028-0x102f P_LVL2_LAT=1ms, P_LVL3_LAT=57ms FLUSH_SIZE=0, FLUSH_STRIDE=0 DUTY_OFFSET=1, DUTY_WIDTH=0 DAY_ALRM=13, MON_ALRM=0, CENTURY=50 Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4} */ /* DSDT: Length=22096, Revision=1, Checksum=1, OEMID=DELL, OEM Table ID=M09, OEM Revision=0x6040000, Creator ID=MSFT, Creator Revision=0x3000000 */ DefinitionBlock ( "acpi_dsdt.aml", //Output filename "DSDT", //Signature 0x1, //DSDT Revision "DELL", //OEMID "M09", //TABLE ID 0x6040000 //OEM Revision ) { OperationRegion(PRT0, SystemIO, 0x80, 0x4) Field(PRT0, DWordAcc, Lock, Preserve) { P80H, 32 } OperationRegion(IO_T, SystemIO, 0x0800, 0x10) Field(IO_T, ByteAcc, NoLock, Preserve) { Offset(0x8), TRP0, 8 } OperationRegion(GNVS, SystemMemory, 0x7f5cdc76, 0x0200) Field(GNVS, AnyAcc, Lock, Preserve) { OSYS, 16, SMIF, 8, PRM0, 8, PRM1, 8, SCIF, 8, PRM2, 8, PRM3, 8, LCKF, 8, PRM4, 8, PRM5, 8, P80D, 32, LIDS, 8, PWRS, 8, DBGS, 8, LINX, 8, Offset(0x14), ACTT, 8, PSVT, 8, TC1V, 8, TC2V, 8, TSPV, 8, CRTT, 8, DTSE, 8, DTS1, 8, DTS2, 8, Offset(0x1e), BNUM, 8, B0SC, 8, B1SC, 8, B2SC, 8, B0SS, 8, B1SS, 8, B2SS, 8, Offset(0x28), APIC, 8, MPEN, 8, Offset(0x2b), PPCM, 8, PCP0, 8, PCP1, 8, Offset(0x32), NATP, 8, CMAP, 8, CMBP, 8, LPTP, 8, FDCP, 8, CMCP, 8, CIRP, 8, Offset(0x3c), IGDS, 8, TLST, 8, CADL, 8, PADL, 8, CSTE, 16, NSTE, 16, SSTE, 16, NDID, 8, DID1, 32, DID2, 32, DID3, 32, DID4, 32, DID5, 32, Offset(0x67), BLCS, 8, BRTL, 8, ALSE, 8, ALAF, 8, LLOW, 8, LHIH, 8, Offset(0x6e), EMAE, 8, EMAP, 16, EMAL, 16, Offset(0x74), MEFE, 8, Offset(0x78), TPMP, 8, TPME, 8, Offset(0x82), GTF0, 56, GTF2, 56, IDEM, 8, Offset(0xc8), STPH, 8, TBLS, 8, TB1S, 8, TBCS, 8, USBW, 8, LANW, 8 } OperationRegion(RCRB, SystemMemory, 0xfed1c000, 0x00004000) Field(RCRB, DWordAcc, Lock, Preserve) { Offset(0x1000), Offset(0x3000), Offset(0x3404), HPAS, 2, , 5, HPAE, 1, Offset(0x3418), , 1, PATD, 1, SATD, 1, SMBD, 1, Offset(0x341a), RP1D, 1 } Scope(_PR_) { Processor(CPU0, 0, 0x1010, 0x6) { } Processor(CPU1, 1, 0x1010, 0x6) { } Processor(CPU2, 2, 0x1010, 0x6) { } Processor(CPU3, 3, 0x1010, 0x6) { } Processor(CPU4, 4, 0x1010, 0x6) { } Processor(CPU5, 5, 0x1010, 0x6) { } Processor(CPU6, 6, 0x1010, 0x6) { } Processor(CPU7, 7, 0x1010, 0x6) { } } Name(Z000, 0x1) Name(Z001, 0x2) Name(Z002, 0x4) Name(Z003, 0x8) Name(Z004, 0x0) Name(Z005, 0xf) Name(Z006, 0xd) Name(Z007, 0xb) Name(Z008, 0x9) Scope(_GPE) { Method(_L01) { If(LAnd(LEqual(RP1D, 0x0), \_SB_.PCI0.EXP1.HPCS)) { Sleep(0x64) If(\_SB_.PCI0.EXP1.PDC1) { Store(0x1, \_SB_.PCI0.EXP1.PDC1) Store(0x1, \_SB_.PCI0.EXP1.HPCS) Notify(\_SB_.PCI0.EXP1, 0x0) } Else { Store(0x1, \_SB_.PCI0.EXP1.HPCS) } } } Method(_L03) { Notify(\_SB_.PCI0.USB1, 0x2) } Method(_L04) { Notify(\_SB_.PCI0.USB2, 0x2) } Method(_L06) { If(\_SB_.PCI0.IGD0.GSSE) { \_SB_.PCI0.IGD0.OPRN() } Else { Store(0x1, \_SB_.PCI0.LPC0.SCIS) } } Method(_L09) { If(\_SB_.PCI0.EXP1.PSP1) { Store(0x1, \_SB_.PCI0.EXP1.PSP1) Store(0x1, \_SB_.PCI0.EXP1.PMCS) Notify(\_SB_.PCI0.EXP1, 0x2) } If(\_SB_.PCI0.EXP2.PSP2) { Store(0x1, \_SB_.PCI0.EXP2.PSP2) Store(0x1, \_SB_.PCI0.EXP2.PMCS) Notify(\_SB_.PCI0.EXP2, 0x2) } If(\_SB_.PCI0.EXP3.PSP3) { Store(0x1, \_SB_.PCI0.EXP3.PSP3) Store(0x1, \_SB_.PCI0.EXP3.PMCS) Notify(\_SB_.PCI0.EXP3, 0x2) } If(\_SB_.PCI0.EXP4.PSP4) { Store(0x1, \_SB_.PCI0.EXP4.PSP4) Store(0x1, \_SB_.PCI0.EXP4.PMCS) Notify(\_SB_.PCI0.EXP4, 0x2) } } Method(_L0C) { Notify(\_SB_.PCI0.USB3, 0x2) } Method(_L0D) { Notify(\_SB_.PCI0.EUSB, 0x2) } Method(_L0E) { Notify(\_SB_.PCI0.USB4, 0x2) } Method(_L1D) { Store(\_SB_.PCI0.LPC0.EC0_.LIDP, Local0) If(LEqual(Local0, 0x1)) { Store(0x0, \_SB_.PCI0.LPC0.LPOL) } Else { Store(0x1, \_SB_.PCI0.LPC0.LPOL) } Store(\_SB_.PCI0.IGD0.CADL, Local1) Store(\_SB_.PCI0.IGD0.CAL2, Local2) And(LEqual(Local1, 0x0100), LEqual(Local2, 0x0), Local3) If(LNot(LAnd(Local3, \_SB_.PCI0.IGD0.CLID))) { \_SB_.PCI0.IGD0.GLID(\_SB_.PCI0.LPC0.LPOL) } Notify(\_SB_.PCI0.LPC0.LID0, 0x80) } } Name(SLID, 0x0) Scope(_SB_) { OperationRegion(SMI0, SystemIO, 0x0000fe00, 0x00000002) Field(SMI0, AnyAcc, NoLock, Preserve) { SMIC, 8 } OperationRegion(SMI1, SystemMemory, 0x7f5cfeb7, 0x00001096) Field(SMI1, AnyAcc, NoLock, Preserve) { BCMD, 8, DID_, 32, INFO, 1024 } Field(SMI1, AnyAcc, NoLock, Preserve) { AccessAs(ByteAcc, 0), Offset(0x5), INF_, 8 } Name(PR00, Package(0xb) { Package(0x4) { 0x001fffff, 0x1, \_SB_.PCI0.LPC0.LNKD, 0x0, }, Package(0x4) { 0x001dffff, 0x0, \_SB_.PCI0.LPC0.LNKH, 0x0, }, Package(0x4) { 0x001dffff, 0x1, \_SB_.PCI0.LPC0.LNKD, 0x0, }, Package(0x4) { 0x001dffff, 0x2, \_SB_.PCI0.LPC0.LNKC, 0x0, }, Package(0x4) { 0x001dffff, 0x3, \_SB_.PCI0.LPC0.LNKA, 0x0, }, Package(0x4) { 0x001bffff, 0x0, \_SB_.PCI0.LPC0.LNKG, 0x0, }, Package(0x4) { 0x001cffff, 0x0, \_SB_.PCI0.LPC0.LNKA, 0x0, }, Package(0x4) { 0x001cffff, 0x1, \_SB_.PCI0.LPC0.LNKB, 0x0, }, Package(0x4) { 0x001cffff, 0x2, \_SB_.PCI0.LPC0.LNKC, 0x0, }, Package(0x4) { 0x001cffff, 0x3, \_SB_.PCI0.LPC0.LNKD, 0x0, }, Package(0x4) { 0x0002ffff, 0x0, \_SB_.PCI0.LPC0.LNKA, 0x0, }, }) Name(AR00, Package(0xb) { Package(0x4) { 0x001fffff, 0x1, 0x0, 0x13, }, Package(0x4) { 0x001dffff, 0x0, 0x0, 0x17, }, Package(0x4) { 0x001dffff, 0x1, 0x0, 0x13, }, Package(0x4) { 0x001dffff, 0x2, 0x0, 0x12, }, Package(0x4) { 0x001dffff, 0x3, 0x0, 0x10, }, Package(0x4) { 0x001bffff, 0x0, 0x0, 0x16, }, Package(0x4) { 0x001cffff, 0x0, 0x0, 0x10, }, Package(0x4) { 0x001cffff, 0x1, 0x0, 0x11, }, Package(0x4) { 0x001cffff, 0x2, 0x0, 0x12, }, Package(0x4) { 0x001cffff, 0x3, 0x0, 0x13, }, Package(0x4) { 0x0002ffff, 0x0, 0x0, 0x10, }, }) Name(PR04, Package(0x4) { Package(0x4) { 0xffff, 0x0, \_SB_.PCI0.LPC0.LNKA, 0x0, }, Package(0x4) { 0xffff, 0x1, \_SB_.PCI0.LPC0.LNKB, 0x0, }, Package(0x4) { 0xffff, 0x2, \_SB_.PCI0.LPC0.LNKC, 0x0, }, Package(0x4) { 0xffff, 0x3, \_SB_.PCI0.LPC0.LNKD, 0x0, }, }) Name(AR04, Package(0x4) { Package(0x4) { 0xffff, 0x0, 0x0, 0x10, }, Package(0x4) { 0xffff, 0x1, 0x0, 0x11, }, Package(0x4) { 0xffff, 0x2, 0x0, 0x12, }, Package(0x4) { 0xffff, 0x3, 0x0, 0x13, }, }) Name(PR05, Package(0x4) { Package(0x4) { 0xffff, 0x0, \_SB_.PCI0.LPC0.LNKB, 0x0, }, Package(0x4) { 0xffff, 0x1, \_SB_.PCI0.LPC0.LNKC, 0x0, }, Package(0x4) { 0xffff, 0x2, \_SB_.PCI0.LPC0.LNKD, 0x0, }, Package(0x4) { 0xffff, 0x3, \_SB_.PCI0.LPC0.LNKA, 0x0, }, }) Name(AR05, Package(0x4) { Package(0x4) { 0xffff, 0x0, 0x0, 0x11, }, Package(0x4) { 0xffff, 0x1, 0x0, 0x12, }, Package(0x4) { 0xffff, 0x2, 0x0, 0x13, }, Package(0x4) { 0xffff, 0x3, 0x0, 0x10, }, }) Name(PR06, Package(0x4) { Package(0x4) { 0xffff, 0x0, \_SB_.PCI0.LPC0.LNKC, 0x0, }, Package(0x4) { 0xffff, 0x1, \_SB_.PCI0.LPC0.LNKD, 0x0, }, Package(0x4) { 0xffff, 0x2, \_SB_.PCI0.LPC0.LNKA, 0x0, }, Package(0x4) { 0xffff, 0x3, \_SB_.PCI0.LPC0.LNKB, 0x0, }, }) Name(AR06, Package(0x4) { Package(0x4) { 0xffff, 0x0, 0x0, 0x12, }, Package(0x4) { 0xffff, 0x1, 0x0, 0x13, }, Package(0x4) { 0xffff, 0x2, 0x0, 0x10, }, Package(0x4) { 0xffff, 0x3, 0x0, 0x11, }, }) Name(PR07, Package(0x4) { Package(0x4) { 0xffff, 0x0, \_SB_.PCI0.LPC0.LNKD, 0x0, }, Package(0x4) { 0xffff, 0x1, \_SB_.PCI0.LPC0.LNKA, 0x0, }, Package(0x4) { 0xffff, 0x2, \_SB_.PCI0.LPC0.LNKB, 0x0, }, Package(0x4) { 0xffff, 0x3, \_SB_.PCI0.LPC0.LNKC, 0x0, }, }) Name(AR07, Package(0x4) { Package(0x4) { 0xffff, 0x0, 0x0, 0x13, }, Package(0x4) { 0xffff, 0x1, 0x0, 0x10, }, Package(0x4) { 0xffff, 0x2, 0x0, 0x11, }, Package(0x4) { 0xffff, 0x3, 0x0, 0x12, }, }) Name(PR01, Package(0x5) { Package(0x4) { 0xffff, 0x0, \_SB_.PCI0.LPC0.LNKF, 0x0, }, Package(0x4) { 0xffff, 0x1, \_SB_.PCI0.LPC0.LNKG, 0x0, }, Package(0x4) { 0xffff, 0x2, \_SB_.PCI0.LPC0.LNKH, 0x0, }, Package(0x4) { 0xffff, 0x3, \_SB_.PCI0.LPC0.LNKE, 0x0, }, Package(0x4) { 0x0008ffff, 0x0, \_SB_.PCI0.LPC0.LNKE, 0x0, }, }) Name(AR01, Package(0x5) { Package(0x4) { 0xffff, 0x0, 0x0, 0x15, }, Package(0x4) { 0xffff, 0x1, 0x0, 0x16, }, Package(0x4) { 0xffff, 0x2, 0x0, 0x17, }, Package(0x4) { 0xffff, 0x3, 0x0, 0x14, }, Package(0x4) { 0x0008ffff, 0x0, 0x0, 0x14, }, }) Device(EMSC) { Name(_HID, 0x02000c0e) } Device(PCI0) { OperationRegion(MPCE, PCI_Config, 0x48, 0x4) Field(MPCE, DWordAcc, NoLock, Preserve) { PEXE, 1, LENG, 2, , 25, EXBA, 4 } Method(_INI) { If(DTSE) { TRAP(0x47) } Store(0x0, PEXE) \_SB_.OSHT() If(CondRefOf(_OSI, Local0)) { Store(0x07d1, OSYS) If(\_OSI) { "Windows 2001" Store(0x07d1, OSYS) } If(\_OSI) { "Windows 2001 SP1" Store(0x07d1, OSYS) } If(\_OSI) { "Windows 2001 SP2" Store(0x07d2, OSYS) } If(\_OSI) { "Windows 2006" Store(0x07d6, OSYS) } If(\_OSI) { "Windows 2009" Store(0x07d9, OSYS) } } Else { If(LEqual(SizeOf(_OS_), 0x14)) { Store(0x07d0, OSYS) } Else { If(LEqual(SizeOf(_OS_), 0x27)) { Store(0x07cf, OSYS) } Else { Store(0x07ce, OSYS) } } } TRAP(0x5a) P8XH(0x0, 0x0806) } Name(_HID, 0x080ad041) Name(_CID, 0x030ad041) Name(_ADR, 0x0) Method(_OSC, 4) { Store(Arg2, Local0) Multiply(Local0, 0x4, Local1) Name(BUF1, Buffer(Local1) { }) Store(Arg3, BUF1) Store(0x0, Local1) Store(0x0, Local2) While(Local0) { Multiply(Local1, 0x4, Local2) CreateDWordField(BUF1, Local2, CAPB) If(Arg2) { And(CAPB, 0xfffffffc, CAPB) Or(CAPB, 0x0, CAPB) } Else { } Increment(Local1) Decrement(Local0) } Return(BUF1) } OperationRegion(REGS, PCI_Config, 0x40, 0xc0) Field(REGS, ByteAcc, NoLock, Preserve) { Offset(0x50), PAM0, 8, PAM1, 8, PAM2, 8, PAM3, 8, PAM4, 8, PAM5, 8, PAM6, 8, , 7, HEN_, 1, Offset(0x60), TASM, 10, Offset(0x62), Offset(0x70), Z009, 16 } Name(RSRC, Buffer(0x021b) {0x88, 0xe, 0x0, 0x2, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 0x1, 0x8, 0x87, 0x18, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xc, 0x0, 0x0, 0x0, 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, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xff, 0x3f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xd, 0x0, 0xff, 0x7f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xd, 0x0, 0xff, 0xbf, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xd, 0x0, 0xff, 0xff, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0xff, 0x3f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xe, 0x0, 0xff, 0x7f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xe, 0x0, 0xff, 0xbf, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xe, 0x0, 0xff, 0xff, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0xff, 0xff, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf1, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd4, 0xfe, 0xff, 0x4f, 0xd4, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 }) Method(_CRS, 0, Serialized) { Store(Zero, Local1) CreateDWordField(RSRC, 0x01b8, BTMN) CreateDWordField(RSRC, 0x01bc, BTMX) CreateDWordField(RSRC, 0x01c4, BTLN) ShiftLeft(And(Z009, 0xfff0), 0x10, BTMN) Subtract(0xf8000000, BTMN, BTLN) Subtract(Add(BTMN, BTLN), 0x1, BTMX) CreateBitField(RSRC, 0x02a0, C0RW) CreateDWordField(RSRC, 0x59, C0MN) CreateDWordField(RSRC, 0x5d, C0MX) CreateDWordField(RSRC, 0x65, C0LN) Store(One, C0RW) If(LEqual(And(PAM1, 0x3), 0x1)) { Store(Zero, C0RW) } Store(Zero, C0LN) If(LNot(And(PAM1, 0x3))) { Store(0x4000, C0LN) } CreateBitField(RSRC, 0x0378, C4RW) CreateDWordField(RSRC, 0x74, C4MN) CreateDWordField(RSRC, 0x78, C4MX) CreateDWordField(RSRC, 0x80, C4LN) Store(One, C4RW) If(LEqual(And(PAM1, 0x30), 0x10)) { Store(Zero, C4RW) } Store(Zero, C4LN) If(LNot(And(PAM1, 0x30))) { Store(0x4000, C4LN) } CreateBitField(RSRC, 0x0450, C8RW) CreateDWordField(RSRC, 0x8f, C8MN) CreateDWordField(RSRC, 0x93, C8MX) CreateDWordField(RSRC, 0x9b, C8LN) Store(One, C8RW) If(LEqual(And(PAM2, 0x3), 0x1)) { Store(Zero, C8RW) } Store(Zero, C8LN) If(LNot(And(PAM2, 0x3))) { Store(0x4000, C8LN) } CreateBitField(RSRC, 0x0528, CCRW) CreateDWordField(RSRC, 0xaa, CCMN) CreateDWordField(RSRC, 0xae, CCMX) CreateDWordField(RSRC, 0xb6, CCLN) Store(One, CCRW) If(LEqual(And(PAM2, 0x30), 0x10)) { Store(Zero, CCRW) } Store(Zero, CCLN) If(LNot(And(PAM2, 0x30))) { Store(0x4000, CCLN) } CreateBitField(RSRC, 0x0600, D0RW) CreateDWordField(RSRC, 0xc5, D0MN) CreateDWordField(RSRC, 0xc9, D0MX) CreateDWordField(RSRC, 0xd1, D0LN) Store(One, D0RW) If(LEqual(And(PAM3, 0x3), 0x1)) { Store(Zero, D0RW) } Store(Zero, D0LN) If(LNot(And(PAM3, 0x3))) { Store(0x4000, D0LN) } CreateBitField(RSRC, 0x06d8, D4RW) CreateDWordField(RSRC, 0xe0, D4MN) CreateDWordField(RSRC, 0xe4, D4MX) CreateDWordField(RSRC, 0xec, D4LN) Store(One, D4RW) If(LEqual(And(PAM3, 0x30), 0x10)) { Store(Zero, D4RW) } Store(Zero, D4LN) If(LNot(And(PAM3, 0x30))) { Store(0x4000, D4LN) } CreateBitField(RSRC, 0x07b0, D8RW) CreateDWordField(RSRC, 0xfb, D8MN) CreateDWordField(RSRC, 0xff, D8MX) CreateDWordField(RSRC, 0x0107, D8LN) Store(One, D8RW) If(LEqual(And(PAM4, 0x3), 0x1)) { Store(Zero, D8RW) } Store(Zero, D8LN) If(LNot(And(PAM4, 0x3))) { Store(0x4000, D8LN) } CreateBitField(RSRC, 0x0888, DCRW) CreateDWordField(RSRC, 0x0116, DCMN) CreateDWordField(RSRC, 0x011a, DCMX) CreateDWordField(RSRC, 0x0122, DCLN) Store(One, DCRW) If(LEqual(And(PAM4, 0x30), 0x10)) { Store(Zero, DCRW) } Store(Zero, DCLN) If(LNot(And(PAM4, 0x30))) { Store(0x4000, DCLN) } CreateBitField(RSRC, 0x0960, E0RW) CreateDWordField(RSRC, 0x0131, E0MN) CreateDWordField(RSRC, 0x0135, E0MX) CreateDWordField(RSRC, 0x013d, E0LN) Store(One, E0RW) If(LEqual(And(PAM5, 0x3), 0x1)) { Store(Zero, E0RW) } Store(Zero, E0LN) If(LNot(And(PAM5, 0x3))) { Store(0x4000, E0LN) } CreateBitField(RSRC, 0x0a38, E4RW) CreateDWordField(RSRC, 0x014c, E4MN) CreateDWordField(RSRC, 0x0150, E4MX) CreateDWordField(RSRC, 0x0158, E4LN) Store(One, E4RW) If(LEqual(And(PAM5, 0x30), 0x10)) { Store(Zero, E4RW) } Store(Zero, E4LN) If(LNot(And(PAM5, 0x30))) { Store(0x4000, E4LN) } CreateBitField(RSRC, 0x0b10, E8RW) CreateDWordField(RSRC, 0x0167, E8MN) CreateDWordField(RSRC, 0x016b, E8MX) CreateDWordField(RSRC, 0x0173, E8LN) Store(One, E8RW) If(LEqual(And(PAM6, 0x3), 0x1)) { Store(Zero, E8RW) } Store(Zero, E8LN) If(LNot(And(PAM6, 0x3))) { Store(0x4000, E8LN) } CreateBitField(RSRC, 0x0be8, ECRW) CreateDWordField(RSRC, 0x0182, ECMN) CreateDWordField(RSRC, 0x0186, ECMX) CreateDWordField(RSRC, 0x018e, ECLN) Store(One, ECRW) If(LEqual(And(PAM6, 0x30), 0x10)) { Store(Zero, ECRW) } Store(Zero, ECLN) If(LNot(And(PAM6, 0x30))) { Store(0x4000, ECLN) } CreateBitField(RSRC, 0x0cc0, F0RW) CreateDWordField(RSRC, 0x019d, F0MN) CreateDWordField(RSRC, 0x01a1, F0MX) CreateDWordField(RSRC, 0x01a9, F0LN) Store(One, F0RW) If(LEqual(And(PAM0, 0x30), 0x10)) { Store(Zero, F0RW) } Store(Zero, F0LN) If(LNot(And(PAM0, 0x30))) { Store(0x00010000, F0LN) } If(TPMP) { CreateDWordField(RSRC, 0x0215, TPML) Store(0x5000, TPML) } Return(RSRC) } Method(_S3D) { Return(0x2) } Method(_S4D) { Return(0x2) } Method(_PRT) { If(PICF) { Return(AR00) } Return(PR00) } Device(IGD0) { Name(_ADR, 0x00020000) OperationRegion(IGDP, PCI_Config, 0x40, 0xc0) Field(IGDP, AnyAcc, NoLock, Preserve) { Offset(0x12), , 1, GIVD, 1, , 2, GUMA, 3, Offset(0x14), , 4, GMFN, 1, Offset(0x18), SSRW, 32, Offset(0xa4), ASLE, 8, Offset(0xa8), GSSE, 1, GSSB, 14, GSES, 1, Offset(0xb0), Offset(0xb1), CDVL, 5, Offset(0xb2), Offset(0xbc), ASLS, 32 } Method(_STA) { If(LEqual(ASLS, 0xfef00000)) { Return(0x0) } Else { Return(0xf) } } OperationRegion(IGDM, SystemMemory, 0x7f5cde76, 0x00002040) Field(IGDM, AnyAcc, NoLock, Preserve) { SIGN, 128, SIZE, 32, OVER, 32, SVER, 256, VVER, 128, GVER, 128, MBOX, 32, Offset(0x100), DRDY, 32, CSTS, 32, CEVT, 32, Offset(0x120), DIDL, 256, CPDL, 256, CADL, 32, CAL2, 32, CAL3, 32, CAL4, 32, CAL5, 32, CAL6, 32, CAL7, 32, CAL8, 32, NADL, 32, NDL2, 32, NDL3, 32, NDL4, 32, NDL5, 32, NDL6, 32, NDL7, 32, NDL8, 32, ASLP, 32, TIDX, 32, CHPD, 32, CLID, 32, CDCK, 32, SXSW, 32, EVTS, 32, CNOT, 32, NRDY, 32, Offset(0x200), SCIE, 1, GEFC, 4, GXFC, 3, GESF, 8, Offset(0x204), PARM, 32, DSLP, 32, Offset(0x300), ARDY, 32, ASLC, 32, TCHE, 32, ALSI, 32, BCLP, 32, PFIT, 32, Offset(0x400), GVD1, 57344, IBTT, 8, IPAT, 8, ITVF, 8, ITVM, 8, IPSC, 8, IBLC, 8, IBIA, 8, ISSC, 8, I409, 8, I509, 8, I609, 8, I709, 8, IDMM, 8, IDMS, 8, IF1E, 8, GSMI, 8, HVCO, 8, LIDS, 8, CGCS, 16 } Name(DBTB, Package(0x11) { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0x10, 0x11, 0x12, 0x13, 0x14, 0xff, }) Name(SUCC, 0x1) Name(NVLD, 0x2) Name(CRIT, 0x4) Name(NCRT, 0x6) Name(\DSEN, 0x1) Method(_DOS, 1) { Store(And(Arg0, 0x3), DSEN) } Method(_DOD) { Return(Package(0x2) { 0x00010100, 0x00010400, }) } Device(LCD_) { Method(_ADR) { Return(0x0400) } Method(_DCS) { Return(CDDS(0x0400)) } Method(_DGS) { Return(NDDS(0x0400)) } Method(_DSS, 1) { If(LEqual(And(Arg0, 0xc0000000), 0xc0000000)) { Store(NSTE, CSTE) } } Method(_BCL) { Return(Package(0x12) { 0x64, 0x41, 0x19, 0x1e, 0x23, 0x28, 0x2d, 0x32, 0x37, 0x3c, 0x41, 0x46, 0x4b, 0x50, 0x55, 0x5a, 0x5f, 0x64, }) } Method(_BCM, 1) { Divide(Arg0, 0x5, Local0, Local1) Store(Subtract(Local1, 0x5), \_SB_.PCI0.LPC0.EC0_.BRTS) } Method(_BQC) { Multiply(\_SB_.PCI0.LPC0.EC0_.BRTS, 0x5, Local0) Add(Local0, 0x19, Local0) Return(Local0) } } Device(CRT_) { Name(_ADR, 0x0100) Method(_DCS) { Return(CDDS(0x0100)) } Method(_DGS) { Return(NDDS(0x0100)) } Method(_DSS, 1) { If(LEqual(And(Arg0, 0xc0000000), 0xc0000000)) { Store(NSTE, CSTE) } } } Method(DSSW) { \_SB_.PCI0.LPC0.PHSS(0xc) DSSM() } Method(DSSM) { If(LEqual(0x0, DSEN)) { Store(CADL, PADL) If(LNot(LLess(OSYS, 0x07d1))) { Notify(\_SB_.PCI0, 0x0) } Else { Notify(\_SB_.PCI0.IGD0, 0x0) } Notify(\_SB_.PCI0.IGD0, 0x80) } If(LEqual(0x1, DSEN)) { \_SB_.PCI0.LPC0.PHSS(0x1) Notify(\_SB_.PCI0.IGD0, 0x81) } } Method(STBL, 1) { If(LEqual(And(Arg0, 0x7), 0x0)) { Store(0x0800, NSTE) } Else { If(LEqual(Arg0, 0x1)) { Store(0x0800, NSTE) } If(LEqual(Arg0, 0x2)) { Store(0x1, NSTE) } If(LEqual(Arg0, 0x3)) { Store(0x0801, NSTE) } If(LEqual(Arg0, 0x4)) { Store(0x2, NSTE) } If(LEqual(Arg0, 0x5)) { Store(0x0802, NSTE) } If(LEqual(Arg0, 0x6)) { Store(0x3, NSTE) } If(LEqual(Arg0, 0x7)) { Store(0x0803, NSTE) } } DSSM() } Method(CDDS, 1) { If(LEqual(CADL, And(Arg0, 0x0f0f))) { Return(0x1f) } If(LEqual(CAL2, And(Arg0, 0x0f0f))) { Return(0x1f) } If(LEqual(CAL3, And(Arg0, 0x0f0f))) { Return(0x1f) } If(LEqual(CAL4, And(Arg0, 0x0f0f))) { Return(0x1f) } If(LEqual(CAL5, And(Arg0, 0x0f0f))) { Return(0x1f) } If(LEqual(CAL6, And(Arg0, 0x0f0f))) { Return(0x1f) } If(LEqual(CAL7, And(Arg0, 0x0f0f))) { Return(0x1f) } If(LEqual(CAL8, And(Arg0, 0x0f0f))) { Return(0x1f) } Return(0x1d) } Method(NDDS, 1) { If(LEqual(NADL, And(Arg0, 0x0f0f))) { Return(0x1) } If(LEqual(NDL2, And(Arg0, 0x0f0f))) { Return(0x1) } If(LEqual(NDL3, And(Arg0, 0x0f0f))) { Return(0x1) } If(LEqual(NDL4, And(Arg0, 0x0f0f))) { Return(0x1) } If(LEqual(NDL5, And(Arg0, 0x0f0f))) { Return(0x1) } If(LEqual(NDL6, And(Arg0, 0x0f0f))) { Return(0x1) } If(LEqual(NDL7, And(Arg0, 0x0f0f))) { Return(0x1) } If(LEqual(NDL8, And(Arg0, 0x0f0f))) { Return(0x1) } Return(0x0) } Method(PDRD) { If(LNot(DRDY)) { Sleep(ASLP) } Return(LNot(DRDY)) } Method(PSTS) { If(LGreater(CSTS, 0x2)) { Sleep(ASLP) } Return(LEqual(CSTS, 0x3)) } Method(GNOT, 2) { If(PDRD()) { Return(0x1) } Store(Arg0, CEVT) Store(0x3, CSTS) If(LAnd(LEqual(CHPD, 0x0), LEqual(Arg1, 0x0))) { If(LOr(LGreater(OSYS, 0x07d0), LLess(OSYS, 0x07d6))) { Notify(\_SB_.PCI0, Arg1) } Else { Notify(\_SB_.PCI0.IGD0, Arg1) } } Notify(\_SB_.PCI0.IGD0, 0x80) Return(0x0) } Method(GHDS, 1) { Store(Arg0, TIDX) Return(GNOT(0x1, 0x0)) } Method(GLID, 1) { Store(Arg0, CLID) Return(GNOT(0x2, 0x0)) } Method(GDCK, 1) { Store(Arg0, CDCK) Return(GNOT(0x4, 0x0)) } Method(PARD) { If(LNot(ARDY)) { Sleep(ASLP) } Return(LNot(ARDY)) } Method(SCIP) { If(LNot(LEqual(OVER, 0x0))) { Return(LNot(GSMI)) } Return(0x0) } Method(GBDA, 0, Serialized) { If(LEqual(GESF, 0x0)) { Store(0x0, PARM) Or(PARM, ShiftLeft(0x1, 0x0), PARM) Or(PARM, ShiftLeft(0x1, 0x3), PARM) Or(PARM, ShiftLeft(0x1, 0x6), PARM) Store(Zero, GESF) Return(SUCC) } If(LEqual(GESF, 0x1)) { Store(0x0, PARM) Store(Zero, GESF) Return(SUCC) } If(LEqual(GESF, 0x4)) { Name(LOOP, 0x0) And(PARM, 0xffffff00, PARM) Or(DerefOf(Index(DBTB, IBTT)), PARM, PARM) Store(Zero, GESF) Return(SUCC) } If(LEqual(GESF, 0x5)) { } If(LEqual(GESF, 0x7)) { Store(GIVD, PARM) XOr(PARM, 0x1, PARM) Or(PARM, ShiftLeft(GMFN, 0x1), PARM) Or(PARM, ShiftLeft(0x2, 0xb), PARM) If(LEqual(IDMM, 0x0)) { Or(PARM, ShiftLeft(IDMS, 0xd), PARM) } If(LOr(LEqual(IDMM, 0x1), LEqual(IDMM, 0x3))) { Or(PARM, ShiftLeft(IDMS, 0x11), PARM) } Or(PARM, ShiftLeft(CGCS, 0x15), PARM) Store(0x1, GESF) Return(SUCC) } If(LEqual(GESF, 0xa)) { } Store(Zero, GESF) Return(CRIT) } Method(SBCB, 0, Serialized) { If(LEqual(GESF, 0x0)) { Store(0x0, PARM) Store(Zero, GESF) Return(SUCC) } Store(Zero, GESF) Return(SUCC) } Method(OPRN, 0, Serialized) { If(LEqual(GEFC, 0x4)) { Store(GBDA(), GXFC) } If(LEqual(GEFC, 0x6)) { Store(SBCB(), GXFC) } Store(PARM, SSRW) Store(0x0, GEFC) Store(0x1, \_SB_.PCI0.LPC0.SCIS) Store(0x0, GSSE) Store(0x0, SCIE) Return(Zero) } } Device(IGD1) { Name(_ADR, 0x00020001) } Device(EXP1) { Name(_ADR, 0x001c0000) OperationRegion(P1CS, PCI_Config, 0x40, 0x0100) Field(P1CS, AnyAcc, NoLock, WriteAsZeros) { Offset(0x1a), ABP1, 1, , 2, PDC1, 1, , 2, PDS1, 1, Offset(0x20), Offset(0x22), PSP1, 1, Offset(0x9c), , 30, HPCS, 1, PMCS, 1 } Device(PXS1) { Name(_ADR, 0x0) OperationRegion(X1CS, PCI_Config, 0x0, 0x0100) Field(X1CS, AnyAcc, NoLock, WriteAsZeros) { X1DV, 32 } } Name(_PRW, Package(0x2) { 0x9, 0x3, }) Method(_PRT) { If(PICF) { Return(AR04) } Return(PR04) } } Device(EXP2) { Name(_ADR, 0x001c0001) OperationRegion(P2CS, PCI_Config, 0x40, 0x0100) Field(P2CS, AnyAcc, NoLock, WriteAsZeros) { Offset(0x1a), ABP2, 1, , 2, PDC2, 1, , 2, PDS2, 1, Offset(0x20), Offset(0x22), PSP2, 1, Offset(0x9c), , 30, HPCS, 1, PMCS, 1 } Device(PXS2) { Name(_ADR, 0x0) OperationRegion(X2CS, PCI_Config, 0x0, 0x0100) Field(X2CS, AnyAcc, NoLock, WriteAsZeros) { X2DV, 32 } } Name(_PRW, Package(0x2) { 0x9, 0x4, }) Method(_PRT) { If(PICF) { Return(AR05) } Return(PR05) } } Device(EXP3) { Name(_ADR, 0x001c0002) OperationRegion(P3CS, PCI_Config, 0x40, 0x0100) Field(P3CS, AnyAcc, NoLock, WriteAsZeros) { Offset(0x1a), ABP3, 1, , 2, PDC3, 1, , 2, PDS3, 1, Offset(0x20), Offset(0x22), PSP3, 1, Offset(0x9c), , 30, HPCS, 1, PMCS, 1 } Device(PXS3) { Name(_ADR, 0x0) OperationRegion(X3CS, PCI_Config, 0x0, 0x0100) Field(X3CS, AnyAcc, NoLock, WriteAsZeros) { X3DV, 32 } } Name(_PRW, Package(0x2) { 0x9, 0x4, }) Method(_PRT) { If(PICF) { Return(AR06) } Return(PR06) } } Device(EXP4) { Name(_ADR, 0x001c0003) OperationRegion(P4CS, PCI_Config, 0x40, 0x0100) Field(P4CS, AnyAcc, NoLock, WriteAsZeros) { Offset(0x1a), ABP4, 1, , 2, PDC4, 1, , 2, PDS4, 1, Offset(0x20), Offset(0x22), PSP4, 1, Offset(0x9c), , 30, HPCS, 1, PMCS, 1 } Device(PXS4) { Name(_ADR, 0x0) OperationRegion(X4CS, PCI_Config, 0x0, 0x0100) Field(X4CS, AnyAcc, NoLock, WriteAsZeros) { X4DV, 32 } } Name(_PRW, Package(0x2) { 0x9, 0x4, }) Method(_PRT) { If(PICF) { Return(AR07) } Return(PR07) } } Device(PCIB) { Name(_ADR, 0x001e0000) Name(_PRW, Package(0x2) { 0xb, 0x3, }) Method(_PRT) { If(PICF) { Return(AR01) } Return(PR01) } } Device(LPC0) { Name(_ADR, 0x001f0000) Name(DVEN, 0x0) OperationRegion(TCOI, SystemIO, 0x1060, 0x8) Field(TCOI, WordAcc, NoLock, Preserve) { Offset(0x4), , 9, SCIS, 1, Offset(0x6) } Method(DECD, 4, Serialized) { Store(Arg0, Debug) } Device(MBRD) { Name(_HID, 0x020cd041) Name(_UID, 0x1f) Name(RSRC, Buffer(0x0102) {0x47, 0x1, 0x10, 0x0, 0x10, 0x0, 0x1, 0x10, 0x47, 0x1, 0x24, 0x0, 0x24, 0x0, 0x1, 0x2, 0x47, 0x1, 0x28, 0x0, 0x28, 0x0, 0x1, 0x2, 0x47, 0x1, 0x2c, 0x0, 0x2c, 0x0, 0x1, 0x2, 0x47, 0x1, 0x30, 0x0, 0x30, 0x0, 0x1, 0x2, 0x47, 0x1, 0x34, 0x0, 0x34, 0x0, 0x1, 0x2, 0x47, 0x1, 0x38, 0x0, 0x38, 0x0, 0x1, 0x2, 0x47, 0x1, 0x3c, 0x0, 0x3c, 0x0, 0x1, 0x2, 0x47, 0x1, 0x68, 0x0, 0x68, 0x0, 0x1, 0x1, 0x47, 0x1, 0x6c, 0x0, 0x6c, 0x0, 0x1, 0x1, 0x47, 0x1, 0x72, 0x0, 0x72, 0x0, 0x1, 0x6, 0x47, 0x1, 0x80, 0x0, 0x80, 0x0, 0x1, 0x1, 0x47, 0x1, 0x90, 0x0, 0x90, 0x0, 0x1, 0x10, 0x47, 0x1, 0xa4, 0x0, 0xa4, 0x0, 0x1, 0x2, 0x47, 0x1, 0xa8, 0x0, 0xa8, 0x0, 0x1, 0x2, 0x47, 0x1, 0xac, 0x0, 0xac, 0x0, 0x1, 0x2, 0x47, 0x1, 0xb0, 0x0, 0xb0, 0x0, 0x1, 0x6, 0x47, 0x1, 0xb8, 0x0, 0xb8, 0x0, 0x1, 0x2, 0x47, 0x1, 0xbc, 0x0, 0xbc, 0x0, 0x1, 0x2, 0x47, 0x1, 0x0, 0x8, 0x0, 0x8, 0x1, 0x10, 0x47, 0x1, 0x0, 0x10, 0x0, 0x10, 0x1, 0x80, 0x47, 0x1, 0x80, 0x11, 0x80, 0x11, 0x1, 0x40, 0x47, 0x1, 0x2e, 0x0, 0x2e, 0x0, 0x1, 0x2, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x1, 0x2, 0x47, 0x1, 0x0, 0xfe, 0x0, 0xfe, 0x1, 0x1, 0x47, 0x1, 0x4e, 0x16, 0x4e, 0x16, 0x1, 0xff, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x10, 0x86, 0x9, 0x0, 0x1, 0x0, 0x40, 0xd1, 0xfe, 0x0, 0x40, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x4, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xf0, 0xfe, 0x0, 0x0, 0x10, 0x0, 0x79, 0x0 }) Method(_CRS) { CreateWordField(RSRC, 0xa2, PMMN) CreateWordField(RSRC, 0xa4, PMMX) And(^^PMBA, 0xff80, PMMN) Store(PMMN, PMMX) CreateWordField(RSRC, 0xaa, GPMN) CreateWordField(RSRC, 0xac, GPMX) And(^^GPBA, 0xff80, GPMN) Store(GPMN, GPMX) Return(RSRC) } } Device(DMAC) { Name(_HID, 0x0002d041) Name(_CRS, Buffer(0x1d) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x47, 0x1, 0x81, 0x0, 0x81, 0x0, 0x1, 0xf, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0, 0x1, 0x20, 0x2a, 0x10, 0x2, 0x79, 0x0 }) } Device(MATH) { Name(_HID, 0x040cd041) Name(_CRS, Buffer(0xe) {0x47, 0x1, 0xf0, 0x0, 0xf0, 0x0, 0x1, 0xf, 0x23, 0x0, 0x20, 0x1, 0x79, 0x0 }) } Device(PIC_) { Name(_HID, 0xd041) Name(_CRS, Buffer(0x16) {0x47, 0x1, 0x20, 0x0, 0x20, 0x0, 0x1, 0x2, 0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x23, 0x4, 0x0, 0x1, 0x79, 0x0 }) } Device(RTC_) { Name(_HID, 0x000bd041) Name(BUF0, Buffer(0xa) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x1, 0x2, 0x79, 0x0 }) Name(BUF1, Buffer(0xd) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x1, 0x2, 0x22, 0x0, 0x1, 0x79, 0x0 }) Method(_CRS, 0, Serialized) { If(And(MTSE, 0x00020000)) { Return(BUF0) } Return(BUF1) } } Device(SPKR) { Name(_HID, 0x0008d041) Name(_CRS, Buffer(0xa) {0x47, 0x1, 0x61, 0x0, 0x61, 0x0, 0x1, 0x1, 0x79, 0x0 }) } Device(TIMR) { Name(_HID, 0x0001d041) Name(BUF0, Buffer(0x12) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x1, 0x4, 0x47, 0x1, 0x50, 0x0, 0x50, 0x0, 0x10, 0x4, 0x79, 0x0 }) Name(BUF1, Buffer(0x15) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x1, 0x4, 0x47, 0x1, 0x50, 0x0, 0x50, 0x0, 0x10, 0x4, 0x22, 0x1, 0x0, 0x79, 0x0 }) Method(_CRS, 0, Serialized) { If(And(MTSE, 0x00020000)) { Return(BUF0) } Return(BUF1) } } OperationRegion(MMTO, PCI_Config, 0xd0, 0x4) Field(MMTO, DWordAcc, NoLock, Preserve) { MTSE, 32 } Method(ECOK) { If(LEqual(\_SB_.PCI0.LPC0.EC0_.Z00A, 0x1)) { Return(0x1) } Else { Return(0x0) } } OperationRegion(LPEC, SystemIO, 0xff2c, 0x4) Field(LPEC, ByteAcc, NoLock, Preserve) { ECFA, 8, ECFB, 16, ECFD, 8 } Mutex(PHMX, 0) Method(PHMR, 1) { Acquire(PHMX, 0xffff) If(LNot(LEqual(STPH, 0xaa))) { Store(Arg0, ECFB) Store(ECFD, Local0) Store(0x23f4, ECFB) } Else { Store(0x0, Local0) } Release(PHMX) Return(Local0) } Method(PHMW, 2) { Acquire(PHMX, 0xffff) If(LNot(LEqual(STPH, 0xaa))) { Store(Arg0, ECFB) Store(Arg1, ECFD) Store(0x23f4, ECFB) } Release(PHMX) Return(Arg1) } Device(EC0_) { Name(_HID, 0x090cd041) Name(_GPE, 0x19) Name(Z00A, Zero) Name(_CRS, Buffer(0x12) {0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x1, 0x1, 0x47, 0x1, 0x66, 0x0, 0x66, 0x0, 0x1, 0x1, 0x79, 0x0 }) Method(_REG, 2) { If(LEqual(Arg0, 0x3)) { Store(Arg1, Z00A) Store(0x0, \_SB_.PCI0.LPC0.EC0_.OSTY) If(LEqual(OSYS, 0x07d6)) { Store(0x1, \_SB_.PCI0.LPC0.EC0_.OSTY) } If(LEqual(OSYS, 0x03e8)) { Store(0x2, \_SB_.PCI0.LPC0.EC0_.OSTY) } If(LEqual(OSYS, 0x07d9)) { Store(0x3, \_SB_.PCI0.LPC0.EC0_.OSTY) } } } OperationRegion(ERAM, EmbeddedControl, 0x0, 0xff) Field(ERAM, ByteAcc, Lock, Preserve) { Offset(0x10), BATN, 128, Offset(0x60), SMPR, 8, SMST, 8, SMAD, 8, SMCM, 8, SMD0, 256, BCNT, 8, SMAA, 24, Offset(0x90), CHGM, 16, CHGS, 16, ENID, 8, ENIB, 8, ENDD, 8, CHGV, 8, CHGA, 16, BAL0, 1, BAL1, 1, BAL2, 1, BAL3, 1, BBC0, 1, BBC1, 1, BBC2, 1, BBC3, 1, Offset(0x9c), PHDD, 1, IFDD, 1, IODD, 1, SHDD, 1, S120, 1, EFDD, 1, CRTD, 1, SPWR, 1, SBTN, 1, VIDO, 1, VOLD, 1, VOLU, 1, MUTE, 1, CONT, 1, BRGT, 1, HBTN, 1, S4ES, 1, S4RS, 1, BKEY, 1, TOUP, 1, FNBN, 1, LIDF, 1, DIGM, 1, UWAK, 1, , 1, LIDP, 1, Offset(0xa0), DKSP, 1, DKIN, 1, DKID, 1, DKOK, 1, Offset(0xa1), DKPW, 1, Offset(0xa2), BTNS, 8, OSTY, 3, PCMQ, 1, PCMR, 1, ADPT, 1, SLLS, 1, SYS7, 1, PWAK, 1, MWAK, 1, , 1, SLPN, 1, LWAK, 1, Offset(0xaa), TCNL, 8, TMPI, 8, TMSD, 8, FASN, 4, FASU, 4, PCVL, 3, PSTE, 3, SWTO, 1, HWTO, 1, MODE, 1, FANS, 2, INIT, 1, FAN1, 1, FAN2, 1, FANT, 1, SKNM, 1, CTMP, 8, LIDE, 1, PMEE, 1, PWBE, 1, RNGE, 1, BTWE, 1, DCKE, 1, Offset(0xb2), Offset(0xb3), SKTC, 8, SKTB, 8, SKTA, 8, Offset(0xb7), HAPL, 2, HAPR, 1, Offset(0xb8), BTDT, 1, BTPW, 1, BTDS, 1, BTPS, 1, BTSW, 1, BTWK, 1, BTLD, 1, Offset(0xb9), BRTS, 8, CNTS, 8, WLAT, 1, BTAT, 1, WLEX, 1, BTEX, 1, KLSW, 1, WLOK, 1, Offset(0xbc), PTID, 8, CPUT, 8, LIDW, 1, Offset(0xbf), , 5, NMAT, 1, Offset(0xc0), , 4, BMF0, 3, BTY0, 1, BST0, 8, BRC0, 16, BSN0, 16, BPV0, 16, BDV0, 16, BDC0, 16, BFC0, 16, GAU0, 8, CYC0, 8, BPC0, 16, BAC0, 16, BAT0, 8, BTW0, 8, BTS0, 8, BDN0, 8, Offset(0xf2), , 4, DBCD, 1, Offset(0xfa), , 7, BPU0, 1 } Method(_Q10) { Store("=====QUERY_10=====", Debug) \_SB_.PCI0.LPC0.PHSS(0x71) Store(DTS1, \_SB_.PCI0.LPC0.EC0_.SKTA) } Method(_Q11) { Store("=====QUERY_11=====", Debug) Notify(\_SB_.PCI0.IGD0.LCD_, 0x87) } Method(_Q12) { Store("=====QUERY_12=====", Debug) Notify(\_SB_.PCI0.IGD0.LCD_, 0x86) } Method(_Q1C) { Store("=====QUERY_1C=====", Debug) If(\_SB_.PCI0.LPC0.EC0_.VIDO) { \_SB_.PCI0.IGD0.GHDS(0x0) Store(0x0, \_SB_.PCI0.LPC0.EC0_.VIDO) } } Method(_Q1D) { Store("=====QUERY_1D=====", Debug) \_SB_.PCI0.LPC0.EC0_.PCLK() Store(\_SB_.PCI0.LPC0.EC0_.PSTE, Local1) Sleep(0x14) If(LEqual(Local1, 0x1)) { If(LEqual(TBCS, TBLS)) { Store(0x5, \_SB_.PCI0.LPC0.EC0_.PSTE) Sleep(0x14) } Else { Add(TBCS, 0x1, TBCS) Store(TBCS, \_SB_.PPCA) \_SB_.PCI0.LPC0.EC0_.TPAF() } } If(LEqual(Local1, 0x2)) { Sleep(0x14) If(LEqual(TBCS, TB1S)) { Store(0x6, \_SB_.PCI0.LPC0.EC0_.PSTE) Sleep(0x14) Store(0x0, \_SB_.PPCA) \_SB_.PCI0.LPC0.EC0_.TPAF() } Else { Subtract(TBCS, 0x1, TBCS) Store(TBCS, \_SB_.PPCA) \_SB_.PCI0.LPC0.EC0_.TPAF() } } } Method(_Q1E) { Store("=====QUERY_1E=====", Debug) \_SB_.PCI0.LPC0.EC0_.PCLK() } Method(_Q25) { Store("=====QUERY_25=====", Debug) Sleep(0x03e8) Notify(\_SB_.PCI0.LPC0.BAT1, 0x81) Sleep(0x03e8) Notify(\_SB_.PCI0.LPC0.BAT1, 0x80) Store(\_SB_.PCI0.LPC0.EC0_.ADPT, PWRS) PNOT() } Method(_Q37) { Store("=====QUERY_37=====", Debug) Notify(\_SB_.PCI0.LPC0.ACAD, 0x80) Sleep(0x03e8) Notify(\_SB_.PCI0.LPC0.BAT1, 0x80) Store(\_SB_.PCI0.LPC0.EC0_.ADPT, PWRS) PNOT() } Method(_Q38) { Store("=====QUERY_38=====", Debug) Notify(\_SB_.PCI0.LPC0.ACAD, 0x80) Sleep(0x03e8) Notify(\_SB_.PCI0.LPC0.BAT1, 0x80) Store(\_SB_.PCI0.LPC0.EC0_.ADPT, PWRS) PNOT() } OperationRegion(CCLK, SystemIO, 0x1010, 0x4) Field(CCLK, DWordAcc, NoLock, Preserve) { , 1, DUTY, 3, THEN, 1, Offset(0x1), FTT_, 1, , 8, TSTS, 1 } OperationRegion(ECRM, EmbeddedControl, 0x0, 0xff) Field(ECRM, ByteAcc, Lock, Preserve) { Offset(0x94), ERIB, 16, ERBD, 8, Offset(0xac), SDTM, 8, FSSN, 4, FANU, 4, PTVL, 3, , 4, TTHR, 1, Offset(0xbc), PJID, 8, Offset(0xbe), Offset(0xf9), RFRD, 16 } Mutex(FAMX, 0) Method(FANG, 1) { Acquire(FAMX, 0xffff) Store(Arg0, ERIB) Store(ERBD, Local0) Release(FAMX) Return(Local0) } Method(FANW, 2) { Acquire(FAMX, 0xffff) Store(Arg0, ERIB) Store(Arg1, ERBD) Release(FAMX) Return(Arg1) } Method(TUVR, 1) { Return(0x3) } Method(THRO, 1) { If(LEqual(Arg0, 0x0)) { Return(THEN) } Else { If(LEqual(Arg0, 0x1)) { Return(DUTY) } Else { If(LEqual(Arg0, 0x2)) { Return(TTHR) } Else { Return(0xff) } } } } Method(CLCK, 1) { If(LEqual(Arg0, 0x0)) { Store(0x0, THEN) Store(0x0, FTT_) } Else { Store(Arg0, DUTY) Store(0x1, THEN) } Return(THEN) } Method(PCLK) { Store(PTVL, Local0) If(LEqual(Local0, 0x0)) { Store(0x0, THEN) Store(0x0, FTT_) } Else { Decrement(Local0) Store(Not(Local0), Local1) And(Local1, 0x7, Local1) Store(Local1, DUTY) Store(0x1, THEN) } } Method(TPAF) { OPPC() Notify(\_PR_.CPU0, 0x80) Notify(\_PR_.CPU1, 0x80) } Scope(\_SB_) { Name(PPCA, 0x0) Method(OPPC) { If(LAnd(And(CFGD, 0x1), And(PDC0, 0x1))) { Store(\_SB_.PPCA, \_PR_.CPU0._PPC) } } } } OperationRegion(SMI0, SystemIO, 0x0000fe00, 0x00000002) Field(SMI0, AnyAcc, NoLock, Preserve) { SMIC, 8 } OperationRegion(SMI1, SystemMemory, 0x7f5cfeb7, 0x00001096) Field(SMI1, AnyAcc, NoLock, Preserve) { BCMD, 8, DID_, 32, INFO, 1024 } Field(SMI1, AnyAcc, NoLock, Preserve) { AccessAs(ByteAcc, 0), Offset(0x5), INF_, 8, INF1, 32 } Mutex(PSMX, 0) Method(PHSS, 1) { Acquire(PSMX, 0xffff) Store(0x80, BCMD) Store(Arg0, DID_) Store(Zero, SMIC) Release(PSMX) } Device(ACAD) { Name(_HID, "ACPI0003") Name(_PCL, Package(0x1) { \_SB_, }) Method(_PSR) { If(ECOK()) { Return(\_SB_.PCI0.LPC0.EC0_.ADPT) } Else { Store(0x1, ACPW) Return(ACPW) } } } Device(BAT1) { Name(_HID, 0x0a0cd041) Name(_UID, 0x1) Name(_PCL, Package(0x1) { \_SB_, }) Name(SBDC, 0x0) Method(_STA) { If(ECOK()) { If(\_SB_.PCI0.LPC0.EC0_.BAL0) { Sleep(0x14) Return(0x1f) } Else { Sleep(0x14) Return(0xf) } } Else { Sleep(0x14) Return(0x1f) } } Method(_BIF) { Name(STAT, Package(0xd) { 0x0, 0x0fa0, 0x0fa0, 0x1, 0x2b5c, 0x01a4, 0x9c, 0x0108, 0x0ec4, "", "11", "Lion", "Dell", }) If(ECOK()) { Store(\_SB_.PCI0.LPC0.EC0_.BPU0, Index(STAT, 0x0)) Sleep(0x14) Store(\_SB_.PCI0.LPC0.EC0_.BDC0, Local0) Store(Local0, SBDC) Sleep(0x14) Store(\_SB_.PCI0.LPC0.EC0_.BFC0, Local1) Sleep(0x14) If(LEqual(\_SB_.PCI0.LPC0.EC0_.BPU0, 0x0)) { Multiply(Local0, 0xa, Local0) Multiply(Local1, 0xa, Local1) Sleep(0x14) } Store(Local0, Index(STAT, 0x1)) Store(Local1, Index(STAT, 0x2)) Store(\_SB_.PCI0.LPC0.EC0_.BDV0, Index(STAT, 0x4)) Sleep(0x14) Divide(Multiply(Local1, 0xa, Local2), 0x64, Local2) Store(Local2, Index(STAT, 0x5)) Divide(Multiply(Local1, 0x3, Local3), 0x64, Local3) Store(Local3, Index(STAT, 0x6)) Store(\_SB_.PCI0.LPC0.EC0_.BATN, Index(STAT, 0x9)) Sleep(0x14) Store(\_SB_.PCI0.LPC0.EC0_.BMF0, Local0) Sleep(0x14) If(LEqual(Local0, 0x1)) { Store("SANYO", Index(STAT, 0xc)) } Else { If(LEqual(Local0, 0x2)) { Store("SONY", Index(STAT, 0xc)) } Else { If(LEqual(Local0, 0x3)) { Store("SDI", Index(STAT, 0xc)) } Else { If(LEqual(Local0, 0x4)) { Store("PANASONIC", Index(STAT, 0xc)) } Else { If(LEqual(Local0, 0x5)) { Store("Samsung", Index(STAT, 0xc)) } Else { If(LEqual(Local0, 0x6)) { Store("Simplo", Index(STAT, 0xc)) } Else { If(LEqual(Local0, 0x7)) { Store("Dynapack", Index(STAT, 0xc)) } } } } } } } } Return(STAT) } Method(_BST) { Name(PBST, Package(0x4) { 0x0, 0xffffffff, 0xffffffff, 0x2b5c, }) If(ECOK()) { Sleep(0x14) Store(\_SB_.PCI0.LPC0.EC0_.BST0, Local0) And(Local0, 0x7, Local0) Sleep(0x14) Store(\_SB_.PCI0.LPC0.EC0_.BAC0, Local1) Sleep(0x14) Store(\_SB_.PCI0.LPC0.EC0_.BRC0, Local2) Sleep(0x14) Store(\_SB_.PCI0.LPC0.EC0_.BPV0, Local3) Sleep(0x14) And(Local1, 0x8000, Local4) If(LEqual(Local4, 0x8000)) { And(Not(Local1, Local1), 0xffff, Local1) Add(Local1, 0x1, Local1) } If(LEqual(\_SB_.PCI0.LPC0.EC0_.BPU0, 0x0)) { Sleep(0x14) Divide(Multiply(Local1, Local3, Local1), 0x03e8, Local1) Multiply(Local2, 0xa, Local2) } Store(Local0, Index(PBST, 0x0)) Store(Local1, Index(PBST, 0x1)) Store(Local2, Index(PBST, 0x2)) Store(Local3, Index(PBST, 0x3)) If(LNot(LEqual(\_SB_.PCI0.LPC0.EC0_.BDC0, SBDC))) { Notify(\_SB_.PCI0.LPC0.BAT1, 0x81) } } Else { Store(0x0, Index(PBST, 0x1)) Store(0x0fa0, Index(PBST, 0x2)) } Return(PBST) } } Device(LID0) { Name(_HID, 0x0d0cd041) Method(_LID) { Return(LPOL) } Name(_PRW, Package(0x2) { 0x1d, 0x3, }) Method(_PSW, 1) { Store(Arg0, SLID) } } Device(KBC0) { Name(_HID, 0x0303d041) Name(_CRS, Buffer(0x16) {0x47, 0x1, 0x60, 0x0, 0x60, 0x0, 0x1, 0x1, 0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x23, 0x2, 0x0, 0x1, 0x79, 0x0 }) } Device(MSE0) { Name(_HID, 0x1a048c11) Name(_CID, 0x130fd041) Name(_CRS, Buffer(0x6) {0x23, 0x0, 0x10, 0x1, 0x79, 0x0 }) } Device(LNKA) { Name(_HID, 0x0f0cd041) Name(_UID, 0x1) Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xdc, 0x18, 0x79, 0x0 }) Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 }) Method(_DIS) { Or(PIRA, 0x80, PIRA) } Method(_CRS) { CreateWordField(RSRC, 0x1, IRQ0) And(PIRA, 0xf, Local0) ShiftLeft(0x1, Local0, IRQ0) Store(RSRC, Debug) Return(RSRC) } Method(_SRS, 1) { Store(Arg0, Debug) CreateWordField(Arg0, 0x1, IRQ0) FindSetRightBit(IRQ0, Local0) Decrement(Local0) Or(Local0, And(PIRA, 0x70), PIRA) } Method(_STA) { If(And(PIRA, 0x80)) { Return(0x9) } Return(0xb) } } Device(LNKB) { Name(_HID, 0x0f0cd041) Name(_UID, 0x2) Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xdc, 0x18, 0x79, 0x0 }) Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 }) Method(_DIS) { Or(PIRB, 0x80, PIRB) } Method(_CRS) { CreateWordField(RSRC, 0x1, IRQ0) And(PIRB, 0xf, Local0) ShiftLeft(0x1, Local0, IRQ0) Return(RSRC) } Method(_SRS, 1) { CreateWordField(Arg0, 0x1, IRQ0) FindSetRightBit(IRQ0, Local0) Decrement(Local0) Or(Local0, And(PIRB, 0x70), PIRB) } Method(_STA) { If(And(PIRB, 0x80)) { Return(0x9) } Return(0xb) } } Device(LNKC) { Name(_HID, 0x0f0cd041) Name(_UID, 0x3) Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xdc, 0x18, 0x79, 0x0 }) Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 }) Method(_DIS) { Or(PIRC, 0x80, PIRC) } Method(_CRS) { CreateWordField(RSRC, 0x1, IRQ0) And(PIRC, 0xf, Local0) ShiftLeft(0x1, Local0, IRQ0) Return(RSRC) } Method(_SRS, 1) { CreateWordField(Arg0, 0x1, IRQ0) FindSetRightBit(IRQ0, Local0) Decrement(Local0) Or(Local0, And(PIRC, 0x70), PIRC) } Method(_STA) { If(And(PIRC, 0x80)) { Return(0x9) } Return(0xb) } } Device(LNKD) { Name(_HID, 0x0f0cd041) Name(_UID, 0x4) Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xdc, 0x18, 0x79, 0x0 }) Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 }) Method(_DIS) { Or(PIRD, 0x80, PIRD) } Method(_CRS) { CreateWordField(RSRC, 0x1, IRQ0) And(PIRD, 0xf, Local0) ShiftLeft(0x1, Local0, IRQ0) Return(RSRC) } Method(_SRS, 1) { CreateWordField(Arg0, 0x1, IRQ0) FindSetRightBit(IRQ0, Local0) Decrement(Local0) Or(Local0, And(PIRD, 0x70), PIRD) } Method(_STA) { If(And(PIRD, 0x80)) { Return(0x9) } Return(0xb) } } Device(LNKE) { Name(_HID, 0x0f0cd041) Name(_UID, 0x5) Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xdc, 0x18, 0x79, 0x0 }) Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 }) Method(_DIS) { Or(PIRE, 0x80, PIRE) } Method(_CRS) { CreateWordField(RSRC, 0x1, IRQ0) And(PIRE, 0xf, Local0) ShiftLeft(0x1, Local0, IRQ0) Store(RSRC, Debug) Return(RSRC) } Method(_SRS, 1) { Store(Arg0, Debug) CreateWordField(Arg0, 0x1, IRQ0) FindSetRightBit(IRQ0, Local0) Decrement(Local0) Or(Local0, And(PIRE, 0x70), PIRE) } Method(_STA) { If(And(PIRE, 0x80)) { Return(0x9) } Return(0xb) } } Device(LNKF) { Name(_HID, 0x0f0cd041) Name(_UID, 0x6) Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xdc, 0x18, 0x79, 0x0 }) Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 }) Method(_DIS) { Or(PIRF, 0x80, PIRF) } Method(_CRS) { CreateWordField(RSRC, 0x1, IRQ0) And(PIRF, 0xf, Local0) ShiftLeft(0x1, Local0, IRQ0) Store(RSRC, Debug) Return(RSRC) } Method(_SRS, 1) { Store(Arg0, Debug) CreateWordField(Arg0, 0x1, IRQ0) FindSetRightBit(IRQ0, Local0) Decrement(Local0) Or(Local0, And(PIRF, 0x70), PIRF) } Method(_STA) { If(And(PIRF, 0x80)) { Return(0x9) } Return(0xb) } } Device(LNKG) { Name(_HID, 0x0f0cd041) Name(_UID, 0x7) Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xdc, 0x18, 0x79, 0x0 }) Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 }) Method(_DIS) { Or(PIRG, 0x80, PIRG) } Method(_CRS) { CreateWordField(RSRC, 0x1, IRQ0) And(PIRG, 0xf, Local0) ShiftLeft(0x1, Local0, IRQ0) Store(RSRC, Debug) Return(RSRC) } Method(_SRS, 1) { Store(Arg0, Debug) CreateWordField(Arg0, 0x1, IRQ0) FindSetRightBit(IRQ0, Local0) Decrement(Local0) Or(Local0, And(PIRG, 0x70), PIRG) } Method(_STA) { If(And(PIRG, 0x80)) { Return(0x9) } Return(0xb) } } Device(LNKH) { Name(_HID, 0x0f0cd041) Name(_UID, 0x8) Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xdc, 0x18, 0x79, 0x0 }) Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 }) Method(_DIS) { Or(PIRH, 0x80, PIRH) } Method(_CRS) { CreateWordField(RSRC, 0x1, IRQ0) And(PIRH, 0xf, Local0) ShiftLeft(0x1, Local0, IRQ0) Store(RSRC, Debug) Return(RSRC) } Method(_SRS, 1) { Store(Arg0, Debug) CreateWordField(Arg0, 0x1, IRQ0) FindSetRightBit(IRQ0, Local0) Decrement(Local0) Or(Local0, And(PIRH, 0x70), PIRH) } Method(_STA) { If(And(PIRH, 0x80)) { Return(0x9) } Return(0xb) } } OperationRegion(GPOX, SystemIO, 0x1180, 0x30) Field(GPOX, ByteAcc, NoLock, Preserve) { Offset(0x7), , 3, IO27, 1, Offset(0xf), , 3, LV27, 1, Offset(0x1b), , 3, BL27, 1, Offset(0x2c), , 13, LPOL, 1 } OperationRegion(PIRX, PCI_Config, 0x60, 0x4) Field(PIRX, DWordAcc, Lock, Preserve) { AccessAs(ByteAcc, 0), PIRA, 8, PIRB, 8, PIRC, 8, PIRD, 8 } OperationRegion(PIRY, PCI_Config, 0x68, 0x4) Field(PIRY, DWordAcc, Lock, Preserve) { AccessAs(ByteAcc, 0), PIRE, 8, PIRF, 8, PIRG, 8, PIRH, 8 } OperationRegion(ELR0, PCI_Config, 0xa0, 0x14) Field(ELR0, DWordAcc, Lock, Preserve) { , 9, PBLV, 1, Offset(0x10), , 1, ELSS, 1, , 1, ELST, 1, ELPB, 1, Offset(0x11), , 1, ELLO, 1, ELGN, 2, ELYL, 2, ELBE, 1, ELIE, 1, ELSN, 1, ELOC, 1, Offset(0x13), ELSO, 1 } OperationRegion(ROUT, SystemIO, 0xb8, 0x4) Field(ROUT, DWordAcc, Lock, Preserve) { AccessAs(ByteAcc, 0), GPI0, 2, GPI1, 2, GPI2, 2, GPI3, 2, GPI4, 2, GPI5, 2, GPI6, 2, GPI7, 2, GPI8, 2, GPI9, 2, GP10, 2, GP11, 2, GP12, 2, GP13, 2, GP14, 2, GP15, 2 } OperationRegion(PMIO, SystemIO, 0x1000, 0x30) Field(PMIO, ByteAcc, NoLock, Preserve) { Offset(0x2a), , 10, ACPW, 1, Offset(0x2d), , 4, GPES, 1, Offset(0x2f), , 4, GPEE, 1 } OperationRegion(REGS, PCI_Config, 0x40, 0x10) Field(REGS, DWordAcc, Lock, Preserve) { PMBA, 16, Offset(0x8), GPBA, 16 } } Name(NATA, Package(0x1) { 0x001f0002, }) Method(GETP, 1) { Noop If(LEqual(And(Arg0, 0x9), 0x0)) { Return(0xffffffff) } If(LEqual(And(Arg0, 0x9), 0x8)) { Return(0x0384) } ShiftRight(And(Arg0, 0x0300), 0x8, Local0) ShiftRight(And(Arg0, 0x3000), 0xc, Local1) Return(Multiply(0x1e, Subtract(0x9, Add(Local0, Local1)))) } Method(GETD, 4) { Noop If(Arg0) { If(Arg1) { Return(0x14) } If(Arg2) { Return(Multiply(Subtract(0x4, Arg3), 0xf)) } Return(Multiply(Subtract(0x4, Arg3), 0x1e)) } Return(0xffffffff) } Method(GETT, 1) { Noop Return(Multiply(0x1e, Subtract(0x9, Add(And(ShiftRight(Arg0, 0x2), 0x3), And(Arg0, 0x3))))) } Method(GETF, 3) { Noop Name(TMPF, 0x0) If(Arg0) { Or(TMPF, 0x1, TMPF) } If(And(Arg2, 0x2)) { Or(TMPF, 0x2, TMPF) } If(Arg1) { Or(TMPF, 0x4, TMPF) } If(And(Arg2, 0x20)) { Or(TMPF, 0x8, TMPF) } If(And(Arg2, 0x4000)) { Or(TMPF, 0x10, TMPF) } Return(TMPF) } Method(SETP, 3) { Noop If(LNot(LLess(Arg0, 0xf0))) { Return(0x8) } Else { If(And(Arg1, 0x2)) { If(LAnd(LNot(LGreater(Arg0, 0x78)), And(Arg2, 0x2))) { Return(0x2301) } If(LAnd(LNot(LGreater(Arg0, 0xb4)), And(Arg2, 0x1))) { Return(0x2101) } } Return(0x1001) } } Method(SETD, 1) { Noop If(LNot(LGreater(Arg0, 0x14))) { Return(0x1) } If(LNot(LGreater(Arg0, 0x1e))) { Return(0x2) } If(LNot(LGreater(Arg0, 0x2d))) { Return(0x1) } If(LNot(LGreater(Arg0, 0x3c))) { Return(0x2) } If(LNot(LGreater(Arg0, 0x5a))) { Return(0x1) } Return(0x0) } Method(SETT, 3) { Noop If(And(Arg1, 0x2)) { If(LAnd(LNot(LGreater(Arg0, 0x78)), And(Arg2, 0x2))) { Return(0xb) } If(LAnd(LNot(LGreater(Arg0, 0xb4)), And(Arg2, 0x1))) { Return(0x9) } } Return(0x4) } Device(IDE1) { Name(_ADR, 0x001f0002) OperationRegion(IDEP, PCI_Config, 0x10, 0x4) Field(IDEP, DWordAcc, NoLock, Preserve) { PCMD, 16 } OperationRegion(IDES, PCI_Config, 0x18, 0x4) Field(IDES, DWordAcc, NoLock, Preserve) { SCMD, 16 } OperationRegion(IDEC, PCI_Config, 0x40, 0x18) Field(IDEC, DWordAcc, NoLock, Preserve) { PRIT, 16, SECT, 16, PSIT, 4, SSIT, 4, Offset(0x8), SDMA, 4, Offset(0xa), SDT0, 2, , 2, SDT1, 2, Offset(0xb), SDT2, 2, , 2, SDT3, 2, Offset(0x14), ICR0, 4, ICR1, 4, ICR2, 4, ICR3, 4, ICR4, 4, ICR5, 4 } OperationRegion(IDE1, PCI_Config, 0x90, 0x3) Field(IDE1, ByteAcc, NoLock, Preserve) { MAP_, 8, Offset(0x2), PCS_, 8 } OperationRegion(PBIO, SystemIO, 0x000018ef, 0x00000008) Field(PBIO, ByteAcc, NoLock, Preserve) { Offset(0x7), , 7, PBSY, 1 } OperationRegion(SBIO, SystemIO, 0x000018ef, 0x00000008) Field(SBIO, ByteAcc, NoLock, Preserve) { Offset(0x7), , 7, SBSY, 1 } Method(BSSP, 1) { If(LEqual(0x1, \SPNF)) { Store(And(0x50, PCS_), Local0) Store(And(0xa0, PCS_), Local1) Store(0x0, Local2) Store(0x0, Local3) If(Arg0) { If(LEqual(0x80, Local1)) { While(LAnd(SBSY, LGreater(0x4b, Local3))) { Sleep(0x64) Increment(Local3) } } } Else { If(LEqual(0x40, Local0)) { While(LAnd(PBSY, LGreater(0x4b, Local2))) { Sleep(0x64) Increment(Local2) } } } Store(0x0, \SPNF) } } Method(CTYP, 1) { Store(Zero, Local0) If(Arg0) { If(LAnd(LGreater(MAP_, 0x1), LLess(MAP_, 0x6))) { Store(0x1, Local0) } Else { If(LEqual(MAP_, Zero)) { Store(0x3, Local0) } If(LEqual(MAP_, One)) { Store(0x4, Local0) } } } Else { If(LGreater(MAP_, 0x5)) { Store(0x2, Local0) } Else { If(LEqual(MAP_, Zero)) { Store(0x5, Local0) } If(LEqual(MAP_, One)) { Store(0x6, Local0) } } } Return(Local0) } Device(PRID) { Name(_ADR, 0x0) Method(_GTM) { Noop Name(PBUF, Buffer(0x14) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }) CreateDWordField(PBUF, 0x0, PIO0) CreateDWordField(PBUF, 0x4, DMA0) CreateDWordField(PBUF, 0x8, PIO1) CreateDWordField(PBUF, 0xc, DMA1) CreateDWordField(PBUF, 0x10, FLAG) Store(GETP(PRIT), PIO0) Store(GETD(And(SDMA, 0x1), And(ICR3, 0x1), And(ICR0, 0x1), SDT0), DMA0) If(LEqual(DMA0, 0xffffffff)) { Store(PIO0, DMA0) } If(And(PRIT, 0x4000)) { If(LEqual(And(PRIT, 0x90), 0x80)) { Store(0x0384, PIO1) } Else { Store(GETT(PSIT), PIO1) } } Else { Store(0xffffffff, PIO1) } Store(GETD(And(SDMA, 0x2), And(ICR3, 0x2), And(ICR0, 0x2), SDT1), DMA1) If(LEqual(DMA1, 0xffffffff)) { Store(PIO1, DMA1) } Store(GETF(And(SDMA, 0x1), And(SDMA, 0x2), PRIT), FLAG) Return(PBUF) } Method(_STM, 3) { Noop CreateDWordField(Arg0, 0x0, PIO0) CreateDWordField(Arg0, 0x4, DMA0) CreateDWordField(Arg0, 0x8, PIO1) CreateDWordField(Arg0, 0xc, DMA1) CreateDWordField(Arg0, 0x10, FLAG) Store(0x4, ICR2) If(LEqual(SizeOf(Arg1), 0x0200)) { And(PRIT, 0x4cf0, PRIT) And(SDMA, 0xe, SDMA) Store(0x0, SDT0) And(ICR0, 0xe, ICR0) And(ICR1, 0xe, ICR1) And(ICR3, 0xe, ICR3) And(ICR5, 0xe, ICR5) CreateWordField(Arg1, 0x62, W490) CreateWordField(Arg1, 0x6a, W530) CreateWordField(Arg1, 0x7e, W630) CreateWordField(Arg1, 0x80, W640) CreateWordField(Arg1, 0xb0, W880) Or(PRIT, 0x8004, PRIT) If(LAnd(And(FLAG, 0x2), And(W490, 0x0800))) { Or(PRIT, 0x2, PRIT) } Or(PRIT, SETP(PIO0, W530, W640), PRIT) If(And(FLAG, 0x1)) { Or(SDMA, 0x1, SDMA) Store(SETD(DMA0), SDT0) If(And(W880, 0x20)) { Or(ICR1, 0x1, ICR1) Or(ICR5, 0x1, ICR5) } If(And(W880, 0x10)) { Or(ICR1, 0x1, ICR1) } If(LLess(DMA0, 0x1e)) { Or(ICR3, 0x1, ICR3) } If(LLess(DMA0, 0x3c)) { Or(ICR0, 0x1, ICR0) } } } If(LEqual(SizeOf(Arg2), 0x0200)) { And(PRIT, 0x3f0f, PRIT) Store(0x0, PSIT) And(SDMA, 0xd, SDMA) Store(0x0, SDT1) And(ICR0, 0xd, ICR0) And(ICR1, 0xd, ICR1) And(ICR3, 0xd, ICR3) And(ICR5, 0xd, ICR5) CreateWordField(Arg2, 0x62, W491) CreateWordField(Arg2, 0x6a, W531) CreateWordField(Arg2, 0x7e, W631) CreateWordField(Arg2, 0x80, W641) CreateWordField(Arg2, 0xb0, W881) Or(PRIT, 0x8040, PRIT) If(LAnd(And(FLAG, 0x8), And(W491, 0x0800))) { Or(PRIT, 0x20, PRIT) } If(And(FLAG, 0x10)) { Or(PRIT, 0x4000, PRIT) If(LGreater(PIO1, 0xf0)) { Or(PRIT, 0x80, PRIT) } Else { Or(PRIT, 0x10, PRIT) Store(SETT(PIO1, W531, W641), PSIT) } } If(And(FLAG, 0x4)) { Or(SDMA, 0x2, SDMA) Store(SETD(DMA1), SDT1) If(And(W881, 0x20)) { Or(ICR1, 0x2, ICR1) Or(ICR5, 0x2, ICR5) } If(And(W881, 0x10)) { Or(ICR1, 0x2, ICR1) } If(LLess(DMA0, 0x1e)) { Or(ICR3, 0x2, ICR3) } If(LLess(DMA0, 0x3c)) { Or(ICR0, 0x2, ICR0) } } } } Method(_PS0) { BSSP(0x0) } Method(_PS3) { } Device(P_D0) { Name(_ADR, 0x0) Method(_GTF) { Noop Name(PIB0, Buffer(0xe) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef }) CreateByteField(PIB0, 0x1, PMD0) CreateByteField(PIB0, 0x8, DMD0) If(And(PRIT, 0x2)) { If(LEqual(And(PRIT, 0x9), 0x8)) { Store(0x8, PMD0) } Else { Store(0xa, PMD0) ShiftRight(And(PRIT, 0x0300), 0x8, Local0) ShiftRight(And(PRIT, 0x3000), 0xc, Local1) Add(Local0, Local1, Local2) If(LEqual(0x3, Local2)) { Store(0xb, PMD0) } If(LEqual(0x5, Local2)) { Store(0xc, PMD0) } } } Else { Store(0x1, PMD0) } If(And(SDMA, 0x1)) { Store(Or(SDT0, 0x40), DMD0) If(And(ICR0, 0x1)) { Add(DMD0, 0x2, DMD0) } If(And(ICR3, 0x1)) { Store(0x45, DMD0) } } Else { Or(Subtract(And(PMD0, 0x7), 0x2), 0x20, DMD0) } Return(PIB0) } } Device(P_D1) { Name(_ADR, 0x1) Method(_GTF) { Noop Name(PIB1, Buffer(0xe) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef }) CreateByteField(PIB1, 0x1, PMD1) CreateByteField(PIB1, 0x8, DMD1) If(And(PRIT, 0x20)) { If(LEqual(And(PRIT, 0x90), 0x80)) { Store(0x8, PMD1) } Else { Add(And(PSIT, 0x3), ShiftRight(And(PSIT, 0xc), 0x2), Local0) If(LEqual(0x5, Local0)) { Store(0xc, PMD1) } Else { If(LEqual(0x3, Local0)) { Store(0xb, PMD1) } Else { Store(0xa, PMD1) } } } } Else { Store(0x1, PMD1) } If(And(SDMA, 0x2)) { Store(Or(SDT1, 0x40), DMD1) If(And(ICR0, 0x2)) { Add(DMD1, 0x2, DMD1) } If(And(ICR3, 0x2)) { Store(0x45, DMD1) } } Else { Or(Subtract(And(PMD1, 0x7), 0x2), 0x20, DMD1) } Return(PIB1) } } } Device(SECD) { Name(_ADR, 0x1) Method(_GTM) { Noop Name(SBUF, Buffer(0x14) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }) CreateDWordField(SBUF, 0x0, PIO0) CreateDWordField(SBUF, 0x4, DMA0) CreateDWordField(SBUF, 0x8, PIO1) CreateDWordField(SBUF, 0xc, DMA1) CreateDWordField(SBUF, 0x10, FLAG) Store(GETP(SECT), PIO0) Store(GETD(And(SDMA, 0x4), And(ICR3, 0x4), And(ICR0, 0x4), SDT2), DMA0) If(LEqual(DMA0, 0xffffffff)) { Store(PIO0, DMA0) } If(And(SECT, 0x4000)) { If(LEqual(And(SECT, 0x90), 0x80)) { Store(0x0384, PIO1) } Else { Store(GETT(SSIT), PIO1) } } Else { Store(0xffffffff, PIO1) } Store(GETD(And(SDMA, 0x8), And(ICR3, 0x8), And(ICR0, 0x8), SDT3), DMA1) If(LEqual(DMA1, 0xffffffff)) { Store(PIO1, DMA1) } Store(GETF(And(SDMA, 0x4), And(SDMA, 0x8), SECT), FLAG) Return(SBUF) } Method(_STM, 3) { Noop CreateDWordField(Arg0, 0x0, PIO0) CreateDWordField(Arg0, 0x4, DMA0) CreateDWordField(Arg0, 0x8, PIO1) CreateDWordField(Arg0, 0xc, DMA1) CreateDWordField(Arg0, 0x10, FLAG) Store(0x4, ICR2) If(LEqual(SizeOf(Arg1), 0x0200)) { And(SECT, 0x4cf0, SECT) And(SDMA, 0xb, SDMA) Store(0x0, SDT2) And(ICR0, 0xb, ICR0) And(ICR1, 0xb, ICR1) And(ICR3, 0xb, ICR3) And(ICR5, 0xb, ICR5) CreateWordField(Arg1, 0x62, W490) CreateWordField(Arg1, 0x6a, W530) CreateWordField(Arg1, 0x7e, W630) CreateWordField(Arg1, 0x80, W640) CreateWordField(Arg1, 0xb0, W880) Or(SECT, 0x8004, SECT) If(LAnd(And(FLAG, 0x2), And(W490, 0x0800))) { Or(SECT, 0x2, SECT) } Or(SECT, SETP(PIO0, W530, W640), SECT) If(And(FLAG, 0x1)) { Or(SDMA, 0x4, SDMA) Store(SETD(DMA0), SDT2) If(And(W880, 0x20)) { Or(ICR1, 0x4, ICR1) Or(ICR5, 0x4, ICR5) } If(And(W880, 0x10)) { Or(ICR1, 0x4, ICR1) } If(LLess(DMA0, 0x1e)) { Or(ICR3, 0x4, ICR3) } If(LLess(DMA0, 0x3c)) { Or(ICR0, 0x4, ICR0) } } } If(LEqual(SizeOf(Arg2), 0x0200)) { And(SECT, 0x3f0f, SECT) Store(0x0, SSIT) And(SDMA, 0x7, SDMA) Store(0x0, SDT3) And(ICR0, 0x7, ICR0) And(ICR1, 0x7, ICR1) And(ICR3, 0x7, ICR3) And(ICR5, 0x7, ICR5) CreateWordField(Arg2, 0x62, W491) CreateWordField(Arg2, 0x6a, W531) CreateWordField(Arg2, 0x7e, W631) CreateWordField(Arg2, 0x80, W641) CreateWordField(Arg2, 0xb0, W881) Or(SECT, 0x8040, SECT) If(LAnd(And(FLAG, 0x8), And(W491, 0x0800))) { Or(SECT, 0x20, SECT) } If(And(FLAG, 0x10)) { Or(SECT, 0x4000, SECT) If(LGreater(PIO1, 0xf0)) { Or(SECT, 0x80, SECT) } Else { Or(SECT, 0x10, SECT) Store(SETT(PIO1, W531, W641), SSIT) } } If(And(FLAG, 0x4)) { Or(SDMA, 0x8, SDMA) Store(SETD(DMA1), SDT3) If(And(W881, 0x20)) { Or(ICR1, 0x8, ICR1) Or(ICR5, 0x8, ICR5) } If(And(W881, 0x10)) { Or(ICR1, 0x8, ICR1) } If(LLess(DMA0, 0x1e)) { Or(ICR3, 0x8, ICR3) } If(LLess(DMA0, 0x3c)) { Or(ICR0, 0x8, ICR0) } } } } Method(_PS0) { BSSP(0x1) } Method(_PS3) { } Device(S_D0) { Name(_ADR, 0x0) Method(_GTF) { Noop Name(SIB0, Buffer(0xe) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef }) CreateByteField(SIB0, 0x1, PMD0) CreateByteField(SIB0, 0x8, DMD0) If(And(SECT, 0x2)) { If(LEqual(And(SECT, 0x9), 0x8)) { Store(0x8, PMD0) } Else { Store(0xa, PMD0) ShiftRight(And(SECT, 0x0300), 0x8, Local0) ShiftRight(And(SECT, 0x3000), 0xc, Local1) Add(Local0, Local1, Local2) If(LEqual(0x3, Local2)) { Store(0xb, PMD0) } If(LEqual(0x5, Local2)) { Store(0xc, PMD0) } } } Else { Store(0x1, PMD0) } If(And(SDMA, 0x4)) { Store(Or(SDT2, 0x40), DMD0) If(And(ICR0, 0x4)) { Add(DMD0, 0x2, DMD0) } If(And(ICR3, 0x4)) { Store(0x45, DMD0) } } Else { Or(Subtract(And(PMD0, 0x7), 0x2), 0x20, DMD0) } Return(SIB0) } } Device(S_D1) { Name(_ADR, 0x1) Method(_GTF) { Noop Name(SIB1, Buffer(0xe) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef }) CreateByteField(SIB1, 0x1, PMD1) CreateByteField(SIB1, 0x8, DMD1) If(And(SECT, 0x20)) { If(LEqual(And(SECT, 0x90), 0x80)) { Store(0x8, PMD1) } Else { Add(And(SSIT, 0x3), ShiftRight(And(SSIT, 0xc), 0x2), Local0) If(LEqual(0x5, Local0)) { Store(0xc, PMD1) } Else { If(LEqual(0x3, Local0)) { Store(0xb, PMD1) } Else { Store(0xa, PMD1) } } } } Else { Store(0x1, PMD1) } If(And(SDMA, 0x2)) { Store(Or(SDT3, 0x40), DMD1) If(And(ICR0, 0x8)) { Add(DMD1, 0x2, DMD1) } If(And(ICR3, 0x8)) { Store(0x45, DMD1) } } Else { Or(Subtract(And(PMD1, 0x7), 0x2), 0x20, DMD1) } Return(SIB1) } } } } Device(SMBS) { Name(_ADR, 0x001f0003) } Device(PWRB) { Name(_HID, 0x0c0cd041) } Device(USB1) { Name(_ADR, 0x001d0000) OperationRegion(USBO, PCI_Config, 0xc4, 0x4) Field(USBO, DWordAcc, Lock, Preserve) { RSEN, 2 } Method(_PRW) { If(USBW) { Return(Package(0x2) { 0x3, 0x3, }) } Else { Return(Package(0x2) { 0x3, 0x0, }) } } Method(_PSW, 1) { If(Arg0) { If(\_SB_.PCI0.LPC0.EC0_.SYS7) { Store(0x1, \_SB_.PCI0.LPC0.EC0_.UWAK) Store(0x3, RSEN) } Else { Store(0x0, RSEN) } } Else { Store(0x0, RSEN) } } Method(_S3D) { Return(0x3) } Method(_S4D) { Return(0x3) } } Device(USB2) { Name(_ADR, 0x001d0001) OperationRegion(USBO, PCI_Config, 0xc4, 0x4) Field(USBO, DWordAcc, Lock, Preserve) { RSEN, 2 } Method(_PRW) { If(USBW) { Return(Package(0x2) { 0x4, 0x3, }) } Else { Return(Package(0x2) { 0x4, 0x0, }) } } Method(_PSW, 1) { If(Arg0) { If(\_SB_.PCI0.LPC0.EC0_.SYS7) { Store(0x1, \_SB_.PCI0.LPC0.EC0_.UWAK) Store(0x1, RSEN) } Else { Store(0x0, RSEN) } } Else { Store(0x0, RSEN) } } Method(_S3D) { Return(0x3) } Method(_S4D) { Return(0x3) } } Device(USB3) { Name(_ADR, 0x001d0002) OperationRegion(USBO, PCI_Config, 0xc4, 0x4) Field(USBO, DWordAcc, Lock, Preserve) { RSEN, 2 } Name(_PRW, Package(0x2) { 0xc, 0x0, }) Method(_S3D) { Return(0x3) } Method(_S4D) { Return(0x3) } } Device(USB4) { Name(_ADR, 0x001d0003) OperationRegion(USBO, PCI_Config, 0xc4, 0x4) Field(USBO, DWordAcc, Lock, Preserve) { RSEN, 2 } Name(_PRW, Package(0x2) { 0xe, 0x0, }) Method(_S3D) { Return(0x3) } Method(_S4D) { Return(0x3) } } Device(EUSB) { Name(_ADR, 0x001d0007) Name(_S3D, 0x3) Name(_S4D, 0x3) Method(_PRW) { If(USBW) { Return(Package(0x2) { 0xd, 0x3, }) } Else { Return(Package(0x2) { 0xd, 0x0, }) } } Method(_PSW, 1) { If(Arg0) { If(\_SB_.PCI0.LPC0.EC0_.SYS7) { Store(0x1, \_SB_.PCI0.LPC0.EC0_.UWAK) } } } } } } Method(P8XH, 2, Serialized) { If(LEqual(Arg0, 0x0)) { Store(Or(And(P80D, 0xffffff00), Arg1), P80D) } If(LEqual(Arg0, 0x1)) { Store(Or(And(P80D, 0xffff00ff), ShiftLeft(Arg1, 0x8)), P80D) } If(LEqual(Arg0, 0x2)) { Store(Or(And(P80D, 0xff00ffff), ShiftLeft(Arg1, 0x10)), P80D) } If(LEqual(Arg0, 0x3)) { Store(Or(And(P80D, 0x00ffffff), ShiftLeft(Arg1, 0x18)), P80D) } Store(P80D, P80H) } Method(TRAP, 1, Serialized) { Store(Arg0, SMIF) Store(0x0, TRP0) Return(SMIF) } Method(PNOT, 0, Serialized) { If(MPEN) { If(And(PDC0, 0x8)) { Notify(\_PR_.CPU0, 0x80) If(And(PDC0, 0x10)) { Sleep(0x64) Notify(\_PR_.CPU0, 0x81) } } If(And(PDC1, 0x8)) { Notify(\_PR_.CPU1, 0x80) If(And(PDC1, 0x10)) { Sleep(0x64) Notify(\_PR_.CPU1, 0x81) } } } Else { Notify(\_PR_.CPU0, 0x80) Sleep(0x64) Notify(\_PR_.CPU0, 0x81) } } Name(_S0_, Package(0x2) { 0x0, 0x0, }) Name(_S3_, Package(0x2) { 0x5, 0x5, }) Name(_S4_, Package(0x2) { 0x6, 0x6, }) Name(_S5_, Package(0x2) { 0x7, 0x7, }) Name(PICF, 0x0) Name(SPNF, 0x0) Method(_PIC, 1) { Store(Arg0, \PICF) } Method(_PTS, 1) { Store(Arg0, P80H) If(LEqual(Arg0, 0x3)) { Store(LANW, \_SB_.PCI0.LPC0.EC0_.PWAK) Store(SLID, \_SB_.PCI0.LPC0.EC0_.LIDW) } If(LEqual(Arg0, 0x4)) { Store(0x1, \_SB_.PCI0.LPC0.EC0_.S4ES) } } Method(_WAK, 1) { Store(0x0, \_SB_.PCI0.PEXE) If(LEqual(Arg0, 0x3)) { Store(0x1, \SPNF) TRAP(0x46) TRAP(0x50) P8XH(0x0, 0x3) } If(LEqual(Arg0, 0x4)) { \_SB_.OSHT() Store(0x1, \_SB_.PCI0.LPC0.EC0_.S4RS) If(DTSE) { TRAP(0x47) } Store(0x0, \_SB_.PCI0.LPC0.EC0_.OSTY) If(LEqual(OSYS, 0x07d6)) { Store(0x1, \_SB_.PCI0.LPC0.EC0_.OSTY) } If(LEqual(OSYS, 0x03e8)) { Store(0x2, \_SB_.PCI0.LPC0.EC0_.OSTY) } If(LEqual(OSYS, 0x07d9)) { Store(0x3, \_SB_.PCI0.LPC0.EC0_.OSTY) } P8XH(0x0, 0x4) } If(LEqual(OSYS, 0x07ce)) { Notify(\_SB_.PCI0.PWRB, 0x2) } If(LEqual(\_SB_.PCI0.LPC0.EC0_.LIDP, 0x1)) { Store(0x0, \_SB_.PCI0.LPC0.LPOL) } Else { Store(0x1, \_SB_.PCI0.LPC0.LPOL) } \_SB_.PCI0.IGD0.GLID(\_SB_.PCI0.LPC0.LPOL) Store(\_SB_.PCI0.LPC0.EC0_.ADPT, PWRS) PNOT() Return(Package(0x2) { 0x0, 0x0, }) } Scope(\_SB_) { Name(OSTB, Ones) OperationRegion(OSTY, SystemMemory, 0x7f5cfeb6, 0x00000001) Field(OSTY, AnyAcc, NoLock, Preserve) { TPOS, 8 } Method(OSTP) { If(LEqual(^OSTB, Ones)) { If(CondRefOf(\_OSI, Local0)) { If(\_OSI) { "Windows 2001.1" Store(0x20, ^OSTB) Store(0x20, ^TPOS) } Else { If(\_OSI) { "Windows 2001 SP1" Store(0x10, ^OSTB) Store(0x10, ^TPOS) } Else { 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(OSHT) { \_SB_.OSTP() } 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) } } Scope(\_SB_.PCI0.USB3) { Device(RHUB) { Name(_ADR, 0x0) Device(PRT1) { Name(_ADR, 0x1) Name(_UPC, Package(0x4) { 0xff, 0xff, 0x0, 0x0, }) Name(_PLD, Package(0x1) { Buffer(0x10) {0x81, 0x0, 0x30, 0x0 }, }) } Device(PRT2) { Name(_ADR, 0x2) Name(_UPC, Package(0x4) { 0xff, 0xff, 0x0, 0x0, }) Name(_PLD, Package(0x1) { Buffer(0x10) {0x81, 0x0, 0x30, 0x0 }, }) } } } Scope(\_SB_.PCI0.EUSB) { Device(RHUB) { Name(_ADR, 0x0) Device(PRT4) { Name(_ADR, 0x4) Name(_UPC, Package(0x4) { 0xff, 0xff, 0x0, 0x0, }) Name(_PLD, Package(0x1) { Buffer(0x10) {0x81, 0x0, 0x30, 0x0 }, }) } Device(PRT5) { Name(_ADR, 0x5) Name(_UPC, Package(0x4) { 0xff, 0xff, 0x0, 0x0, }) Name(_PLD, Package(0x1) { Buffer(0x10) {0x81, 0x0, 0x30, 0x0 }, }) } Device(PRT8) { Name(_ADR, 0x8) Name(_UPC, Package(0x4) { 0xff, 0xff, 0x0, 0x0, }) Name(_PLD, Package(0x1) { Buffer(0x10) {0x81, 0x0, 0x30, 0x0 }, }) } } } } /* OSFR: Length=128, Revision=1, Checksum=101, OEMID=DELL, OEM Table ID=DELL, OEM Revision=0x6040000, Creator ID=ASL, Creator Revision=0x61 */ /* HPET: Length=56, Revision=1, Checksum=79, OEMID=DELL, OEM Table ID=M09, OEM Revision=0x6040000, Creator ID=LOHR, Creator Revision=0x5a */ /* MCFG: Length=60, Revision=1, Checksum=50, OEMID=INTEL, OEM Table ID=CRESTLNE, OEM Revision=0x6040000, Creator ID=LOHR, Creator Revision=0x5a */ /* APIC: Length=104, Revision=1, Checksum=138, OEMID=DELL, OEM Table ID=M09, OEM Revision=0x6040000, Creator ID= LTP, Creator Revision=0x0 */ /* BOOT: Length=40, Revision=1, Checksum=156, OEMID=DELL, OEM Table ID=M09, OEM Revision=0x6040000, Creator ID= LTP, Creator Revision=0x1 */ /* SLIC: Length=374, Revision=1, Checksum=254, OEMID=DELL, OEM Table ID=CL09, OEM Revision=0x6040000, Creator ID= LTP, Creator Revision=0x0 */ /* SSDT: Length=607, Revision=1, Checksum=200, OEMID=PmRef, OEM Table ID=Cpu0Tst, OEM Revision=0x3000, Creator ID=INTL, Creator Revision=0x20050624 */ /* SSDT: Length=166, Revision=1, Checksum=109, OEMID=PmRef, OEM Table ID=Cpu1Tst, OEM Revision=0x3000, Creator ID=INTL, Creator Revision=0x20050624 */ /* SSDT: Length=1244, Revision=2, Checksum=150, OEMID=PmRef, OEM Table ID=CpuPm, OEM Revision=0x3000, Creator ID=INTL, Creator Revision=0x20050624 */