On Fri, 01 Oct 2021 19:35:16 +1000 "Marcel Holtmann" <marcel@xxxxxxxxxxxx> wrote: > I would really prefer to do that via the ACPI table matching in > hci_bcm.c and not via some magic chip id check. Initially I thought we may be able to do this based off BCM2E7C (which is in the DSDT table which I'll attach), however it seems like many Macs also have that (i.e. MacBookPro14,1, MacBookAir8,1, MacBook9,1), so unless all these don't support LE Read Transmit Power, (which would be hard to determine), I don't know if BCM2E7C can be used to quirk it. I'll try to see if I can find something else in the ACPI tables that can be used as a quirk. (I'll see if I can get the table of a similar model that wasn't affected and compare the BLTH sections) If ACPI tables other than DSDT could be relevant, I can send them too. These are the ones that are present: APIC DMAR DSDT ECDT FACP FACS HPET MCFG SBST SSDT1 SSDT10 SSDT11 SSDT12 SSDT13 SSDT14 SSDT15 SSDT2 SSDT3 SSDT4 SSDT5 SSDT6 SSDT7 SSDT8 SSDT9 VFCT > We actually don’t know how Broadcom assigns their chip ids. That's a good point. I've seen 150, 123 and 133 in some recent Macs, but I also don't know what they refer to or how they are assigned.
/* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20210730 (64-bit version) * Copyright (c) 2000 - 2021 Intel Corporation * * Disassembling to symbolic ASL+ operators * * Disassembly of DSDT, Fri Oct 1 20:45:18 2021 * * Original Table Header: * Signature "DSDT" * Length 0x000072C3 (29379) * Revision 0x02 * Checksum 0xFD * OEM ID "APPLE " * OEM Table ID "MacXX" * OEM Revision 0x00150001 (1376257) * Compiler ID "INTL" * Compiler Version 0x20160930 (538315056) */ DefinitionBlock ("", "DSDT", 2, "APPLE ", "MacXX", 0x00150001) { External (_PR_.CFGD, UnknownObj) External (_PR_.CPPC, FieldUnitObj) External (_PR_.CPU0._PPC, IntObj) External (_SB_.PCI0.IGPU.CLID, UnknownObj) External (_SB_.PCI0.IGPU.GEFC, UnknownObj) External (_SB_.PCI0.IGPU.GSCI, MethodObj) // 0 Arguments External (_SB_.PCI0.IGPU.GSSE, UnknownObj) External (_SB_.PCI0.IGPU.IDSM, MethodObj) // 4 Arguments External (_SB_.PCI0.IGPU.SCIE, UnknownObj) External (_SB_.PCI0.PEG0.EGP0.EGP1.GFX0, UnknownObj) External (_SB_.PCI0.PEG1.DTFP, MethodObj) // 0 Arguments External (_SB_.PCI0.PEG1.ICMB, MethodObj) // 1 Arguments External (_SB_.PCI0.PEG1.UPSB.LSTX, MethodObj) // 2 Arguments External (_SB_.PCI0.PEG2.DTFP, MethodObj) // 0 Arguments External (_SB_.PCI0.PEG2.ICMB, MethodObj) // 1 Arguments External (_SB_.PCI0.PEG2.UPSB.LSTX, MethodObj) // 2 Arguments External (_SB_.PCI0.TGPE, MethodObj) // 0 Arguments External (_SB_.PCI0.XHC1, DeviceObj) External (ADP1, DeviceObj) External (ADSP, UnknownObj) // Conflicts with a later declaration External (BT19, UnknownObj) // Conflicts with a later declaration External (D318, FieldUnitObj) External (D319, FieldUnitObj) External (D31A, FieldUnitObj) External (D31C, FieldUnitObj) External (D320, FieldUnitObj) External (D324, FieldUnitObj) External (D418, FieldUnitObj) External (D419, FieldUnitObj) External (D41A, FieldUnitObj) External (D41C, FieldUnitObj) External (D420, FieldUnitObj) External (D424, FieldUnitObj) External (D518, FieldUnitObj) External (D519, FieldUnitObj) External (D51A, FieldUnitObj) External (D51C, FieldUnitObj) External (D520, FieldUnitObj) External (D524, FieldUnitObj) External (D618, FieldUnitObj) External (D619, FieldUnitObj) External (D61A, FieldUnitObj) External (D61C, FieldUnitObj) External (D620, FieldUnitObj) External (D624, FieldUnitObj) External (DP18, FieldUnitObj) External (DP19, FieldUnitObj) External (DP1A, FieldUnitObj) External (DP1C, FieldUnitObj) External (DP20, FieldUnitObj) External (DP24, FieldUnitObj) External (GSMI, UnknownObj) External (LID0, DeviceObj) External (LIDS, UnknownObj) External (LVME, UnknownObj) // Conflicts with a later declaration External (M64B, UnknownObj) External (M64L, UnknownObj) External (NH10, FieldUnitObj) External (NH14, FieldUnitObj) External (NPKA, UnknownObj) // Conflicts with a later declaration External (PDC0, UnknownObj) External (PDC1, UnknownObj) External (PDC2, UnknownObj) External (PDC3, UnknownObj) External (PDC4, UnknownObj) External (PDC5, UnknownObj) External (PDC6, UnknownObj) External (PDC7, UnknownObj) External (R_20, FieldUnitObj) External (R_24, FieldUnitObj) External (SMCB, FieldUnitObj) External (UP18, FieldUnitObj) External (UP19, FieldUnitObj) External (UP1A, FieldUnitObj) External (UP1C, FieldUnitObj) External (UP20, FieldUnitObj) External (UP24, FieldUnitObj) Name (SP2O, 0x4E) Name (SP1O, 0x164E) Name (IO1B, 0x0600) Name (IO1L, 0x70) Name (IO2B, 0x0680) Name (IO2L, 0x20) Name (IO3B, 0x0290) Name (IO3L, 0x10) Name (SP3O, 0x2E) Name (IO4B, 0x0A20) Name (IO4L, 0x20) Name (MCHB, 0xFED10000) Name (MCHL, 0x4000) Name (EGPB, 0xFED19000) Name (EGPL, 0x1000) Name (DMIB, 0xFED18000) Name (DMIL, 0x1000) Name (IFPB, 0xFED14000) Name (IFPL, 0x1000) Name (PEBS, 0xE0000000) Name (PELN, 0x04000000) Name (TTTB, 0xFED20000) Name (TTTL, 0x00020000) Name (SMBS, 0xEFA0) Name (SMBL, 0x10) Name (PBLK, 0x1810) Name (LVL2, 0x1814) Name (LVL3, 0x1815) Name (LVL4, 0x1816) Name (SMIP, 0xB2) Name (GPBS, 0x0800) Name (GPLN, 0x80) Name (APCB, 0xFEC00000) Name (APCL, 0x1000) Name (PM30, 0x1830) Name (SUSW, 0xFF) Name (HPTC, 0xFED1C404) Name (ACPH, 0xDE) Name (ASSB, Zero) Name (AOTB, Zero) Name (AAXB, Zero) Name (PEHP, One) Name (SHPC, One) Name (PEPM, One) Name (PEER, One) Name (PECS, One) Name (ITKE, Zero) Name (DSSP, Zero) Name (FHPP, One) Name (FMBL, One) Name (FDTP, 0x02) Name (BSH, Zero) Name (BEL, One) Name (BEH, 0x02) Name (BRH, 0x03) Name (BTF, 0x04) Name (BHC, 0x05) Name (BYB, 0x06) Name (BPH, 0x07) Name (BSHS, 0x08) Name (BELS, 0x09) Name (BRHS, 0x0A) Name (BTFS, 0x0B) Name (BEHS, 0x0C) Name (BPHS, 0x0D) Name (BTL, 0x10) Name (BOF, 0x20) Name (BEF, 0x21) Name (BLLE, 0x22) Name (BLLC, 0x23) Name (BLCA, 0x24) Name (TCGM, One) Name (TRTP, One) Name (TRTD, 0x02) Name (TRTI, 0x03) Name (GCDD, One) Name (DSTA, 0x0A) Name (DSLO, 0x0C) Name (DSLC, 0x0E) Name (PITS, 0x10) Name (SBCS, 0x12) Name (SALS, 0x13) Name (LSSS, 0x2A) Name (SOOT, 0x35) Name (PDBR, 0x4D) Name (WOWE, Zero) Name (TAPD, Zero) OperationRegion (GNVS, SystemMemory, 0x7AF34E18, 0x0185) 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, Offset (0x10), PWRS, 8, DBGS, 8, THOF, 8, ACT1, 8, ACTT, 8, PSVT, 8, TC1V, 8, TC2V, 8, TSPV, 8, CRTT, 8, DTSE, 8, DTS1, 8, DTS2, 8, DTSF, 8, Offset (0x25), REVN, 8, Offset (0x28), APIC, 8, TCNT, 8, PCP0, 8, PCP1, 8, PPCM, 8, PPMF, 32, C67L, 8, NATP, 8, CMAP, 8, CMBP, 8, LPTP, 8, FDCP, 8, CMCP, 8, CIRP, 8, SMSC, 8, W381, 8, SMC1, 8, EMAE, 8, EMAP, 16, EMAL, 16, Offset (0x42), MEFE, 8, DSTS, 8, Offset (0x46), TPMP, 8, TPME, 8, MORD, 8, TCGP, 8, PPRP, 32, PPRQ, 8, LPPR, 8, GTF0, 56, GTF2, 56, IDEM, 8, GTF1, 56, BDID, 8, Offset (0x78), OSCC, 8, NEXP, 8, SDGV, 8, SDDV, 8, Offset (0x81), DSEN, 8, ECON, 8, GPIC, 8, CTYP, 8, L01C, 8, VFN0, 8, VFN1, 8, ATMC, 8, PTMC, 8, ATRA, 8, PTRA, 8, PNHM, 32, TBAB, 32, TBAH, 32, RTIP, 8, TSOD, 8, ATPC, 8, PTPC, 8, PFLV, 8, BREV, 8, DPBM, 8, DPCM, 8, DPDM, 8, SDID, 8, BLCP, 8, BLCC, 8, LDSB, 8, BLCT, 32, BLCB, 32, BICM, 1, ISWI, 1, USBD, 1, Offset (0xAE), U2OP, 8, Offset (0xBA), GVNV, 32, MM64, 8, MFIX, 8, Offset (0xDC), NVME, 8, Offset (0xDE), DFUW, 8, SMCB, 32, Offset (0x12C), BIC1, 8, BIC2, 8, NHI1, 32, T2P1, 32, TUP1, 32, TDB1, 32, TNH1, 32, TD11, 32, TD21, 32, TD41, 32, NHI2, 32, T2P2, 32, TUP2, 32, TDB2, 32, TNH2, 32, TD12, 32, TD22, 32, TD42, 32, ABRV, 8, ABID, 64, MAC0, 8, MAC1, 8, MAC2, 8, MAC3, 8, MAC4, 8, MAC5, 8, AGID, 32, RWC0, 8, RWC1, 8, RWC2, 8, RWC3, 8 } Scope (_SB) { Name (PR00, Package (0x21) { Package (0x04) { 0x001FFFFF, Zero, LNKA, Zero }, Package (0x04) { 0x001FFFFF, One, LNKB, Zero }, Package (0x04) { 0x001FFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x001FFFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x001DFFFF, Zero, LNKA, Zero }, Package (0x04) { 0x001DFFFF, One, LNKB, Zero }, Package (0x04) { 0x001DFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x001DFFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x001CFFFF, Zero, LNKA, Zero }, Package (0x04) { 0x001CFFFF, One, LNKB, Zero }, Package (0x04) { 0x001CFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x001CFFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x001BFFFF, Zero, LNKA, Zero }, Package (0x04) { 0x001BFFFF, One, LNKB, Zero }, Package (0x04) { 0x001BFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x001BFFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x0017FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0016FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0016FFFF, One, LNKB, Zero }, Package (0x04) { 0x0016FFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x0016FFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x0014FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0014FFFF, One, LNKB, Zero }, Package (0x04) { 0x0014FFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x0014FFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x0001FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0001FFFF, One, LNKB, Zero }, Package (0x04) { 0x0001FFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x0001FFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x0002FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0004FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0005FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0008FFFF, Zero, LNKA, Zero } }) Name (AR00, Package (0x2D) { Package (0x04) { 0x001FFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001FFFFF, One, Zero, 0x11 }, Package (0x04) { 0x001FFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x001FFFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x001EFFFF, Zero, Zero, 0x14 }, Package (0x04) { 0x001EFFFF, One, Zero, 0x15 }, Package (0x04) { 0x001EFFFF, 0x02, Zero, 0x16 }, Package (0x04) { 0x001EFFFF, 0x03, Zero, 0x17 }, Package (0x04) { 0x001DFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001DFFFF, One, Zero, 0x11 }, Package (0x04) { 0x001DFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x001DFFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x001CFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001CFFFF, One, Zero, 0x11 }, Package (0x04) { 0x001CFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x001CFFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x001BFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001BFFFF, One, Zero, 0x11 }, Package (0x04) { 0x001BFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x001BFFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x0019FFFF, Zero, Zero, 0x15 }, Package (0x04) { 0x0019FFFF, One, Zero, 0x16 }, Package (0x04) { 0x0019FFFF, 0x02, Zero, 0x17 }, Package (0x04) { 0x0017FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0016FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0016FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0016FFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x0016FFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x0015FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0015FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0015FFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x0015FFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x0014FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0014FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0014FFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x0014FFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x0013FFFF, Zero, Zero, 0x14 }, Package (0x04) { 0x0001FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0001FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0001FFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x0001FFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x0002FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0004FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0005FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0008FFFF, Zero, Zero, 0x10 } }) Name (PR04, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) Name (AR04, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) Name (PR05, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKB, Zero }, Package (0x04) { 0xFFFF, One, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKA, Zero } }) Name (AR05, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x11 }, Package (0x04) { 0xFFFF, One, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x10 } }) Name (PR06, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKC, Zero }, Package (0x04) { 0xFFFF, One, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKA, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKB, Zero } }) Name (AR06, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x12 }, Package (0x04) { 0xFFFF, One, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x10 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x11 } }) Name (PR07, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKD, Zero }, Package (0x04) { 0xFFFF, One, LNKA, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKC, Zero } }) Name (AR07, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x13 }, Package (0x04) { 0xFFFF, One, Zero, 0x10 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x12 } }) Name (PR08, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) Name (AR08, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) Name (PR09, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) Name (AR09, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) Name (PR0E, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKC, Zero }, Package (0x04) { 0xFFFF, One, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKA, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKB, Zero } }) Name (AR0E, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x12 }, Package (0x04) { 0xFFFF, One, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x10 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x11 } }) Name (PR0F, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKD, Zero }, Package (0x04) { 0xFFFF, One, LNKA, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKC, Zero } }) Name (AR0F, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x13 }, Package (0x04) { 0xFFFF, One, Zero, 0x10 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x12 } }) Name (PR02, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) Name (AR02, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) Name (PR0A, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKB, Zero }, Package (0x04) { 0xFFFF, One, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKA, Zero } }) Name (AR0A, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x11 }, Package (0x04) { 0xFFFF, One, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x10 } }) Name (PR0B, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKC, Zero }, Package (0x04) { 0xFFFF, One, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKA, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKB, Zero } }) Name (AR0B, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x12 }, Package (0x04) { 0xFFFF, One, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x10 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x11 } }) Name (PR0C, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKD, Zero }, Package (0x04) { 0xFFFF, One, LNKA, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKC, Zero } }) Name (AR0C, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x13 }, Package (0x04) { 0xFFFF, One, Zero, 0x10 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x12 } }) Name (PR01, Package (0x0C) { Package (0x04) { 0xFFFF, Zero, LNKF, Zero }, Package (0x04) { 0xFFFF, One, LNKG, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKH, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKE, Zero }, Package (0x04) { 0x0001FFFF, Zero, LNKG, Zero }, Package (0x04) { 0x0001FFFF, One, LNKF, Zero }, Package (0x04) { 0x0001FFFF, 0x02, LNKE, Zero }, Package (0x04) { 0x0001FFFF, 0x03, LNKH, Zero }, Package (0x04) { 0x0005FFFF, Zero, LNKC, Zero }, Package (0x04) { 0x0005FFFF, One, LNKE, Zero }, Package (0x04) { 0x0005FFFF, 0x02, LNKG, Zero }, Package (0x04) { 0x0005FFFF, 0x03, LNKF, Zero } }) Name (AR01, Package (0x0C) { Package (0x04) { 0xFFFF, Zero, Zero, 0x15 }, Package (0x04) { 0xFFFF, One, Zero, 0x16 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x17 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x14 }, Package (0x04) { 0x0001FFFF, Zero, Zero, 0x16 }, Package (0x04) { 0x0001FFFF, One, Zero, 0x15 }, Package (0x04) { 0x0001FFFF, 0x02, Zero, 0x14 }, Package (0x04) { 0x0001FFFF, 0x03, Zero, 0x17 }, Package (0x04) { 0x0005FFFF, Zero, Zero, 0x12 }, Package (0x04) { 0x0005FFFF, One, Zero, 0x14 }, Package (0x04) { 0x0005FFFF, 0x02, Zero, 0x16 }, Package (0x04) { 0x0005FFFF, 0x03, Zero, 0x15 } }) Name (PRSA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {3,4,5,6,7,10,11,12,14,15} }) Alias (PRSA, PRSB) Alias (PRSA, PRSC) Alias (PRSA, PRSD) Alias (PRSA, PRSE) Alias (PRSA, PRSF) Alias (PRSA, PRSG) Alias (PRSA, PRSH) Device (PCI0) { Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID Name (_ADR, Zero) // _ADR: Address Method (^BN00, 0, NotSerialized) { Return (Zero) } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { Return (BN00 ()) } Name (_UID, Zero) // _UID: Unique ID Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR00 ()) } Return (PR00 ()) } OperationRegion (HBUS, PCI_Config, Zero, 0x0100) Field (HBUS, DWordAcc, NoLock, Preserve) { Offset (0x40), EPEN, 1, , 11, EPBR, 20, Offset (0x48), MHEN, 1, , 14, MHBR, 17, Offset (0x50), GCLK, 1, Offset (0x54), D0EN, 1, Offset (0x60), PXEN, 1, PXSZ, 2, , 23, PXBR, 6, Offset (0x68), DIEN, 1, , 11, DIBR, 20, Offset (0x70), , 20, MEBR, 12, Offset (0x80), , 4, PM0H, 2, Offset (0x81), PM1L, 2, , 2, PM1H, 2, Offset (0x82), PM2L, 2, , 2, PM2H, 2, Offset (0x83), PM3L, 2, , 2, PM3H, 2, Offset (0x84), PM4L, 2, , 2, PM4H, 2, Offset (0x85), PM5L, 2, , 2, PM5H, 2, Offset (0x86), PM6L, 2, , 2, PM6H, 2, Offset (0x87), Offset (0xA8), , 20, TUUD, 19, Offset (0xBC), , 20, TLUD, 12, Offset (0xC8), , 7, HTSE, 1 } OperationRegion (MCHT, SystemMemory, 0xFED10000, 0x6000) Field (MCHT, ByteAcc, NoLock, Preserve) { Offset (0x5994), RPSL, 8, Offset (0x5998), RP0C, 8, RP1C, 8, RPNC, 8 } Name (BUF0, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, // Granularity 0x0000, // Range Minimum 0x00FF, // Range Maximum 0x0000, // Translation Offset 0x0100, // Length ,, ) DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x00000000, // Granularity 0x00000000, // Range Minimum 0x00000CF7, // Range Maximum 0x00000000, // Translation Offset 0x00000CF8, // Length ,, , TypeStatic, DenseTranslation) IO (Decode16, 0x0CF8, // Range Minimum 0x0CF8, // Range Maximum 0x01, // Alignment 0x08, // Length ) DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x00000000, // Granularity 0x00000D00, // Range Minimum 0x0000FFFF, // Range Maximum 0x00000000, // Translation Offset 0x0000F300, // Length ,, , TypeStatic, DenseTranslation) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000A0000, // Range Minimum 0x000BFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00020000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C0000, // Range Minimum 0x000C3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y00, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C4000, // Range Minimum 0x000C7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y01, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C8000, // Range Minimum 0x000CBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y02, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000CC000, // Range Minimum 0x000CFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y03, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D0000, // Range Minimum 0x000D3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y04, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D4000, // Range Minimum 0x000D7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y05, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D8000, // Range Minimum 0x000DBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y06, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000DC000, // Range Minimum 0x000DFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y07, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E0000, // Range Minimum 0x000E3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y08, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E4000, // Range Minimum 0x000E7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y09, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E8000, // Range Minimum 0x000EBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y0A, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000EC000, // Range Minimum 0x000EFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y0B, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000F0000, // Range Minimum 0x000FFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00010000, // Length ,, _Y0C, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x00000000, // Range Minimum 0xFEAFFFFF, // Range Maximum 0x00000000, // Translation Offset 0xFEB00000, // Length ,, _Y0D, AddressRangeMemory, TypeStatic) QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x0000000000000000, // Granularity 0x0000000000010000, // Range Minimum 0x000000000001FFFF, // Range Maximum 0x0000000000000000, // Translation Offset 0x0000000000010000, // Length ,, _Y0E, AddressRangeMemory, TypeStatic) }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { If (PM1L) { CreateDWordField (BUF0, \_SB.PCI0._Y00._LEN, C0LN) // _LEN: Length C0LN = Zero } If ((PM1L == One)) { CreateBitField (BUF0, \_SB.PCI0._Y00._RW, C0RW) // _RW_: Read-Write Status C0RW = Zero } If (PM1H) { CreateDWordField (BUF0, \_SB.PCI0._Y01._LEN, C4LN) // _LEN: Length C4LN = Zero } If ((PM1H == One)) { CreateBitField (BUF0, \_SB.PCI0._Y01._RW, C4RW) // _RW_: Read-Write Status C4RW = Zero } If (PM2L) { CreateDWordField (BUF0, \_SB.PCI0._Y02._LEN, C8LN) // _LEN: Length C8LN = Zero } If ((PM2L == One)) { CreateBitField (BUF0, \_SB.PCI0._Y02._RW, C8RW) // _RW_: Read-Write Status C8RW = Zero } If (PM2H) { CreateDWordField (BUF0, \_SB.PCI0._Y03._LEN, CCLN) // _LEN: Length CCLN = Zero } If ((PM2H == One)) { CreateBitField (BUF0, \_SB.PCI0._Y03._RW, CCRW) // _RW_: Read-Write Status CCRW = Zero } If (PM3L) { CreateDWordField (BUF0, \_SB.PCI0._Y04._LEN, D0LN) // _LEN: Length D0LN = Zero } If ((PM3L == One)) { CreateBitField (BUF0, \_SB.PCI0._Y04._RW, D0RW) // _RW_: Read-Write Status D0RW = Zero } If (PM3H) { CreateDWordField (BUF0, \_SB.PCI0._Y05._LEN, D4LN) // _LEN: Length D4LN = Zero } If ((PM3H == One)) { CreateBitField (BUF0, \_SB.PCI0._Y05._RW, D4RW) // _RW_: Read-Write Status D4RW = Zero } If (PM4L) { CreateDWordField (BUF0, \_SB.PCI0._Y06._LEN, D8LN) // _LEN: Length D8LN = Zero } If ((PM4L == One)) { CreateBitField (BUF0, \_SB.PCI0._Y06._RW, D8RW) // _RW_: Read-Write Status D8RW = Zero } If (PM4H) { CreateDWordField (BUF0, \_SB.PCI0._Y07._LEN, DCLN) // _LEN: Length DCLN = Zero } If ((PM4H == One)) { CreateBitField (BUF0, \_SB.PCI0._Y07._RW, DCRW) // _RW_: Read-Write Status DCRW = Zero } If (PM5L) { CreateDWordField (BUF0, \_SB.PCI0._Y08._LEN, E0LN) // _LEN: Length E0LN = Zero } If ((PM5L == One)) { CreateBitField (BUF0, \_SB.PCI0._Y08._RW, E0RW) // _RW_: Read-Write Status E0RW = Zero } If (PM5H) { CreateDWordField (BUF0, \_SB.PCI0._Y09._LEN, E4LN) // _LEN: Length E4LN = Zero } If ((PM5H == One)) { CreateBitField (BUF0, \_SB.PCI0._Y09._RW, E4RW) // _RW_: Read-Write Status E4RW = Zero } If (PM6L) { CreateDWordField (BUF0, \_SB.PCI0._Y0A._LEN, E8LN) // _LEN: Length E8LN = Zero } If ((PM6L == One)) { CreateBitField (BUF0, \_SB.PCI0._Y0A._RW, E8RW) // _RW_: Read-Write Status E8RW = Zero } If (PM6H) { CreateDWordField (BUF0, \_SB.PCI0._Y0B._LEN, ECLN) // _LEN: Length ECLN = Zero } If ((PM6H == One)) { CreateBitField (BUF0, \_SB.PCI0._Y0B._RW, ECRW) // _RW_: Read-Write Status ECRW = Zero } If (PM0H) { CreateDWordField (BUF0, \_SB.PCI0._Y0C._LEN, F0LN) // _LEN: Length F0LN = Zero } If ((PM0H == One)) { CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, F0RW) // _RW_: Read-Write Status F0RW = Zero } CreateDWordField (BUF0, \_SB.PCI0._Y0D._MIN, M1MN) // _MIN: Minimum Base Address CreateDWordField (BUF0, \_SB.PCI0._Y0D._MAX, M1MX) // _MAX: Maximum Base Address CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, M1LN) // _LEN: Length M1MN = (TLUD << 0x14) M1LN = ((M1MX - M1MN) + One) If ((M64L == Zero)) { CreateQWordField (BUF0, \_SB.PCI0._Y0E._LEN, MSLN) // _LEN: Length MSLN = Zero } Else { CreateQWordField (BUF0, \_SB.PCI0._Y0E._LEN, M2LN) // _LEN: Length CreateQWordField (BUF0, \_SB.PCI0._Y0E._MIN, M2MN) // _MIN: Minimum Base Address CreateQWordField (BUF0, \_SB.PCI0._Y0E._MAX, M2MX) // _MAX: Maximum Base Address M2LN = M64L /* External reference */ M2MN = M64B /* External reference */ M2MX = ((M2MN + M2LN) - One) } Return (BUF0) /* \_SB_.PCI0.BUF0 */ } Method (NHPG, 0, Serialized) { } Method (NPME, 0, Serialized) { } Name (GUID, ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */) Name (SUPP, Zero) Name (CTRL, Zero) Method (_OSC, 4, Serialized) // _OSC: Operating System Capabilities { Local0 = Arg3 CreateDWordField (Local0, Zero, CDW1) CreateDWordField (Local0, 0x04, CDW2) CreateDWordField (Local0, 0x08, CDW3) SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */ CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ If ((One == OSDW ())) { If (((Arg0 == GUID) && NEXP)) { If (~(CDW1 & One)) { If ((CTRL & 0x02)) { NHPG () } If ((CTRL & 0x04)) { NPME () } } If ((Arg1 != One)) { CDW1 |= 0x08 } If ((CDW3 != CTRL)) { CDW1 |= 0x10 } CDW3 = CTRL /* \_SB_.PCI0.CTRL */ OSCC = CTRL /* \_SB_.PCI0.CTRL */ Return (Local0) } Else { CDW1 |= 0x04 Return (Local0) } } Else { If ((Arg0 == GUID)){} Return (Local0) } } Scope (\_SB.PCI0) { Method (AR00, 0, NotSerialized) { Return (^^AR00) /* \_SB_.AR00 */ } Method (PR00, 0, NotSerialized) { Return (^^PR00) /* \_SB_.PR00 */ } Method (AR01, 0, NotSerialized) { Return (^^AR01) /* \_SB_.AR01 */ } Method (PR01, 0, NotSerialized) { Return (^^PR01) /* \_SB_.PR01 */ } Method (AR02, 0, NotSerialized) { Return (^^AR02) /* \_SB_.AR02 */ } Method (PR02, 0, NotSerialized) { Return (^^PR02) /* \_SB_.PR02 */ } Method (AR04, 0, NotSerialized) { Return (^^AR04) /* \_SB_.AR04 */ } Method (PR04, 0, NotSerialized) { Return (^^PR04) /* \_SB_.PR04 */ } Method (AR05, 0, NotSerialized) { Return (^^AR05) /* \_SB_.AR05 */ } Method (PR05, 0, NotSerialized) { Return (^^PR05) /* \_SB_.PR05 */ } Method (AR06, 0, NotSerialized) { Return (^^AR06) /* \_SB_.AR06 */ } Method (PR06, 0, NotSerialized) { Return (^^PR06) /* \_SB_.PR06 */ } Method (AR07, 0, NotSerialized) { Return (^^AR07) /* \_SB_.AR07 */ } Method (PR07, 0, NotSerialized) { Return (^^PR07) /* \_SB_.PR07 */ } Method (AR08, 0, NotSerialized) { Return (^^AR08) /* \_SB_.AR08 */ } Method (PR08, 0, NotSerialized) { Return (^^PR08) /* \_SB_.PR08 */ } Method (AR09, 0, NotSerialized) { Return (^^AR09) /* \_SB_.AR09 */ } Method (PR09, 0, NotSerialized) { Return (^^PR09) /* \_SB_.PR09 */ } Method (AR0A, 0, NotSerialized) { Return (^^AR0A) /* \_SB_.AR0A */ } Method (PR0A, 0, NotSerialized) { Return (^^PR0A) /* \_SB_.PR0A */ } Method (AR0B, 0, NotSerialized) { Return (^^AR0B) /* \_SB_.AR0B */ } Method (PR0B, 0, NotSerialized) { Return (^^PR0B) /* \_SB_.PR0B */ } } Device (MCHC) { Name (_ADR, Zero) // _ADR: Address } Device (PEG0) { Name (_ADR, 0x00010000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (OSDW ()) { Return (Package (0x02) { 0x69, 0x03 }) } Else { Return (Package (0x02) { 0x69, 0x03 }) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR02 ()) } Return (PR02 ()) } } Device (PEG1) { Name (_ADR, 0x00010001) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (OSDW ()) { Return (Package (0x02) { 0x69, 0x03 }) } Else { Return (Package (0x02) { 0x69, 0x03 }) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR0A ()) } Return (PR0A ()) } } Device (PEG2) { Name (_ADR, 0x00010002) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (OSDW ()) { Return (Package (0x02) { 0x69, 0x03 }) } Else { Return (Package (0x02) { 0x69, 0x03 }) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR0B ()) } Return (PR0B ()) } } Device (IGPU) { Name (_ADR, 0x00020000) // _ADR: Address OperationRegion (GFXH, PCI_Config, Zero, 0x40) Field (GFXH, ByteAcc, NoLock, Preserve) { VID0, 16, DID0, 16 } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { IDSM (Arg0, Arg1, Arg2, Arg3) Return (Zero) } Method (_PS0, 0, Serialized) // _PS0: Power State 0 { If (OSDW ()) { LVME = Zero BT19 = One ADSP = Zero NPKA = One } } Method (_PS3, 0, Serialized) // _PS3: Power State 3 { If (OSDW ()) { NPKA = Zero ADSP = One BT19 = Zero LVME = One } } } Device (IPU0) { Name (_ADR, 0x00050000) // _ADR: Address } Device (IMEI) { Name (_ADR, 0x00160000) // _ADR: Address } Device (RP01) { Name (_ADR, 0x001C0000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (OSDW ()) { Return (Package (0x02) { 0x69, 0x03 }) } Else { Return (Package (0x02) { 0x69, 0x04 }) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR04 ()) } Return (PR04 ()) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { Local0 = Package (0x02) { "reg-ltrovr", Buffer (0x08) { 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (Zero) } } Device (RP17) { Name (_ADR, 0x001B0000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (OSDW ()) { Return (Package (0x02) { 0x69, 0x03 }) } Else { Return (Package (0x02) { 0x69, 0x03 }) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR04 ()) } Return (PR04 ()) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { Local0 = Package (0x04) { "reg-ltrovr", Buffer (0x08) { 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ }, "apple-coprocessor-version", Buffer (0x08) { 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (Zero) } } Device (LPCB) { Name (_ADR, 0x001F0000) // _ADR: Address Scope (\_SB) { OperationRegion (PCI0.LPCB.LPC1, PCI_Config, 0x40, 0xC0) Field (PCI0.LPCB.LPC1, AnyAcc, NoLock, Preserve) { Offset (0x20), PARC, 8, PBRC, 8, PCRC, 8, PDRC, 8, Offset (0x28), PERC, 8, PFRC, 8, PGRC, 8, PHRC, 8 } Device (LNKA) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Method (_DIS, 0, Serialized) // _DIS: Disable Device { PARC |= 0x80 } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {1,3,4,5,6,7,10,12,14,15} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { Name (RTLA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {} }) CreateWordField (RTLA, One, IRQ0) IRQ0 = Zero IRQ0 = (One << (PARC & 0x0F)) Return (RTLA) /* \_SB_.LNKA._CRS.RTLA */ } Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- PARC = Local0 } Method (_STA, 0, Serialized) // _STA: Status { If ((PARC & 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Method (_DIS, 0, Serialized) // _DIS: Disable Device { PBRC |= 0x80 } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {1,3,4,5,6,7,11,12,14,15} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { Name (RTLB, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {} }) CreateWordField (RTLB, One, IRQ0) IRQ0 = Zero IRQ0 = (One << (PBRC & 0x0F)) Return (RTLB) /* \_SB_.LNKB._CRS.RTLB */ } Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- PBRC = Local0 } Method (_STA, 0, Serialized) // _STA: Status { If ((PBRC & 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x03) // _UID: Unique ID Method (_DIS, 0, Serialized) // _DIS: Disable Device { PCRC |= 0x80 } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {1,3,4,5,6,7,10,12,14,15} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { Name (RTLC, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {} }) CreateWordField (RTLC, One, IRQ0) IRQ0 = Zero IRQ0 = (One << (PCRC & 0x0F)) Return (RTLC) /* \_SB_.LNKC._CRS.RTLC */ } Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- PCRC = Local0 } Method (_STA, 0, Serialized) // _STA: Status { If ((PCRC & 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x04) // _UID: Unique ID Method (_DIS, 0, Serialized) // _DIS: Disable Device { PDRC |= 0x80 } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {1,3,4,5,6,7,11,12,14,15} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { Name (RTLD, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {} }) CreateWordField (RTLD, One, IRQ0) IRQ0 = Zero IRQ0 = (One << (PDRC & 0x0F)) Return (RTLD) /* \_SB_.LNKD._CRS.RTLD */ } Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- PDRC = Local0 } Method (_STA, 0, Serialized) // _STA: Status { If ((PDRC & 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKE) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x05) // _UID: Unique ID Method (_DIS, 0, Serialized) // _DIS: Disable Device { PERC |= 0x80 } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {1,3,4,5,6,7,10,12,14,15} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { Name (RTLE, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {} }) CreateWordField (RTLE, One, IRQ0) IRQ0 = Zero IRQ0 = (One << (PERC & 0x0F)) Return (RTLE) /* \_SB_.LNKE._CRS.RTLE */ } Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- PERC = Local0 } Method (_STA, 0, Serialized) // _STA: Status { If ((PERC & 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKF) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x06) // _UID: Unique ID Method (_DIS, 0, Serialized) // _DIS: Disable Device { PFRC |= 0x80 } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {1,3,4,5,6,7,11,12,14,15} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { Name (RTLF, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {} }) CreateWordField (RTLF, One, IRQ0) IRQ0 = Zero IRQ0 = (One << (PFRC & 0x0F)) Return (RTLF) /* \_SB_.LNKF._CRS.RTLF */ } Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- PFRC = Local0 } Method (_STA, 0, Serialized) // _STA: Status { If ((PFRC & 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKG) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x07) // _UID: Unique ID Method (_DIS, 0, Serialized) // _DIS: Disable Device { PGRC |= 0x80 } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {1,3,4,5,6,7,10,12,14,15} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { Name (RTLG, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {} }) CreateWordField (RTLG, One, IRQ0) IRQ0 = Zero IRQ0 = (One << (PGRC & 0x0F)) Return (RTLG) /* \_SB_.LNKG._CRS.RTLG */ } Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- PGRC = Local0 } Method (_STA, 0, Serialized) // _STA: Status { If ((PGRC & 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKH) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x08) // _UID: Unique ID Method (_DIS, 0, Serialized) // _DIS: Disable Device { PHRC |= 0x80 } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {1,3,4,5,6,7,11,12,14,15} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { Name (RTLH, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {} }) CreateWordField (RTLH, One, IRQ0) IRQ0 = Zero IRQ0 = (One << (PHRC & 0x0F)) Return (RTLH) /* \_SB_.LNKH._CRS.RTLH */ } Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- PHRC = Local0 } Method (_STA, 0, Serialized) // _STA: Status { If ((PHRC & 0x80)) { Return (0x09) } Else { Return (0x0B) } } } } OperationRegion (LPC0, PCI_Config, 0x40, 0xC0) Field (LPC0, AnyAcc, NoLock, Preserve) { Offset (0x40), IOD0, 8, IOD1, 8, Offset (0xB0), RAEN, 1, , 13 } Device (DMAC) { Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x01, // Alignment 0x20, // Length ) IO (Decode16, 0x0081, // Range Minimum 0x0081, // Range Maximum 0x01, // Alignment 0x11, // Length ) IO (Decode16, 0x0093, // Range Minimum 0x0093, // Range Maximum 0x01, // Alignment 0x0D, // Length ) IO (Decode16, 0x00C0, // Range Minimum 0x00C0, // Range Maximum 0x01, // Alignment 0x20, // Length ) DMA (Compatibility, NotBusMaster, Transfer8_16, ) {4} }) } Device (FWHD) { Name (_HID, EisaId ("INT0800") /* Intel 82802 Firmware Hub Device */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { Memory32Fixed (ReadOnly, 0xFF000000, // Address Base 0x01000000, // Address Length ) }) } Device (HPET) { Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID Name (_CID, EisaId ("PNP0C01") /* System Board */) // _CID: Compatible ID Name (BUF0, ResourceTemplate () { IRQNoFlags () {0} IRQNoFlags () {8} Memory32Fixed (ReadWrite, 0xFED00000, // Address Base 0x00004000, // Address Length ) }) Method (_STA, 0, NotSerialized) // _STA: Status { If (OSDW ()) { Return (Zero) } If ((OSYS >= 0x07D1)) { Return (0x0F) } Else { Return (0x0B) } Return (Zero) } Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { Return (BUF0) /* \_SB_.PCI0.LPCB.HPET.BUF0 */ } } Device (IPIC) { Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0020, // Range Minimum 0x0020, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0024, // Range Minimum 0x0024, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0028, // Range Minimum 0x0028, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x002C, // Range Minimum 0x002C, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0030, // Range Minimum 0x0030, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0034, // Range Minimum 0x0034, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0038, // Range Minimum 0x0038, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x003C, // Range Minimum 0x003C, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00A0, // Range Minimum 0x00A0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00A4, // Range Minimum 0x00A4, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00A8, // Range Minimum 0x00A8, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00AC, // Range Minimum 0x00AC, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00B0, // Range Minimum 0x00B0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00B4, // Range Minimum 0x00B4, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00B8, // Range Minimum 0x00B8, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00BC, // Range Minimum 0x00BC, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x04D0, // Range Minimum 0x04D0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IRQNoFlags () {2} }) } Device (MATH) { Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x00F0, // Range Minimum 0x00F0, // Range Maximum 0x01, // Alignment 0x01, // Length ) IRQNoFlags () {13} }) } Device (LDRC) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x002E, // Range Minimum 0x002E, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x004E, // Range Minimum 0x004E, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0061, // Range Minimum 0x0061, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0063, // Range Minimum 0x0063, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0065, // Range Minimum 0x0065, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0067, // Range Minimum 0x0067, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0080, // Range Minimum 0x0080, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0092, // Range Minimum 0x0092, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x00B2, // Range Minimum 0x00B2, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0xFFFF, // Range Minimum 0xFFFF, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x1800, // Range Minimum 0x1800, // Range Maximum 0x01, // Alignment 0xFF, // Length ) IO (Decode16, 0x0800, // Range Minimum 0x0800, // Range Maximum 0x01, // Alignment 0x80, // Length ) }) } Device (ARTC) { Name (_HID, "ACPI000E" /* Time and Alarm Device */) // _HID: Hardware ID Method (_GCP, 0, NotSerialized) // _GCP: Get Capabilities { Return (0x05) } Method (_GRT, 0, Serialized) // _GRT: Get Real Time { Name (BUFF, Buffer (0x10){}) BUFF [Zero] = ^^EC.YRLB /* \_SB_.PCI0.LPCB.EC__.YRLB */ BUFF [One] = ^^EC.YRMB /* \_SB_.PCI0.LPCB.EC__.YRMB */ BUFF [0x02] = ^^EC.MNTH /* \_SB_.PCI0.LPCB.EC__.MNTH */ BUFF [0x03] = ^^EC.DAYB /* \_SB_.PCI0.LPCB.EC__.DAYB */ BUFF [0x04] = ^^EC.HOUR /* \_SB_.PCI0.LPCB.EC__.HOUR */ BUFF [0x05] = ^^EC.MINT /* \_SB_.PCI0.LPCB.EC__.MINT */ BUFF [0x06] = ^^EC.SECD /* \_SB_.PCI0.LPCB.EC__.SECD */ BUFF [0x07] = ^^EC.PAD0 /* \_SB_.PCI0.LPCB.EC__.PAD0 */ BUFF [0x08] = ^^EC.MSLB /* \_SB_.PCI0.LPCB.EC__.MSLB */ BUFF [0x09] = ^^EC.MSMB /* \_SB_.PCI0.LPCB.EC__.MSMB */ BUFF [0x0A] = ^^EC.TZLB /* \_SB_.PCI0.LPCB.EC__.TZLB */ BUFF [0x0B] = ^^EC.TZMB /* \_SB_.PCI0.LPCB.EC__.TZMB */ BUFF [0x0C] = ^^EC.DAYL /* \_SB_.PCI0.LPCB.EC__.DAYL */ BUFF [0x0D] = ^^EC.PAD1 /* \_SB_.PCI0.LPCB.EC__.PAD1 */ BUFF [0x0E] = ^^EC.PAD2 /* \_SB_.PCI0.LPCB.EC__.PAD2 */ BUFF [0x0F] = ^^EC.PAD3 /* \_SB_.PCI0.LPCB.EC__.PAD3 */ Return (BUFF) /* \_SB_.PCI0.LPCB.ARTC._GRT.BUFF */ } Method (_SRT, 1, Serialized) // _SRT: Set Real Time { ^^EC.YRLB = DerefOf (Arg0 [Zero]) ^^EC.YRMB = DerefOf (Arg0 [One]) ^^EC.MNTH = DerefOf (Arg0 [0x02]) ^^EC.DAYB = DerefOf (Arg0 [0x03]) ^^EC.HOUR = DerefOf (Arg0 [0x04]) ^^EC.MINT = DerefOf (Arg0 [0x05]) ^^EC.SECD = DerefOf (Arg0 [0x06]) ^^EC.MSLB = DerefOf (Arg0 [0x08]) ^^EC.MSMB = DerefOf (Arg0 [0x09]) ^^EC.TZLB = DerefOf (Arg0 [0x0A]) ^^EC.TZMB = DerefOf (Arg0 [0x0B]) ^^EC.DAYL = DerefOf (Arg0 [0x0C]) Return (Zero) } Method (_STV, 2, Serialized) // _STV: Set Timer Value { ^^EC.ALR0 = (Arg1 & 0xFF) ^^EC.ALR1 = ((Arg1 >> 0x08) & 0xFF) ^^EC.ALR2 = ((Arg1 >> 0x10) & 0xFF) ^^EC.ALR3 = ((Arg1 >> 0x18) & 0xFF) Return (Zero) } Method (_CWS, 1, Serialized) // _CWS: Clear Wake Alarm Status { ^^EC.TMRF = Zero ^^EC.TMRW = Zero Return (Zero) } } Device (TIMR) { Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0040, // Range Minimum 0x0040, // Range Maximum 0x01, // Alignment 0x04, // Length ) IO (Decode16, 0x0050, // Range Minimum 0x0050, // Range Maximum 0x10, // Alignment 0x04, // Length ) }) } Device (SMC) { Name (_HID, EisaId ("APP0001")) // _HID: Hardware ID Name (_CID, "smc-huronriver") // _CID: Compatible ID Name (_STA, 0x0B) // _STA: Status Name (BUF0, ResourceTemplate () { IO (Decode16, 0x0300, // Range Minimum 0x0300, // Range Maximum 0x01, // Alignment 0x20, // Length ) Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00010000, // Address Length _Y0F) IRQNoFlags () {6} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { CreateDWordField (BUF0, \_SB.PCI0.LPCB.SMC._Y0F._BAS, SBA0) // _BAS: Base Address SBA0 = SMCB /* \SMCB */ Return (BUF0) /* \_SB_.PCI0.LPCB.SMC_.BUF0 */ } } Device (EC) { Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware ID Name (_UID, Zero) // _UID: Unique ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0062, // Range Minimum 0x0062, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0066, // Range Minimum 0x0066, // Range Maximum 0x00, // Alignment 0x01, // Length ) }) Name (_GPE, 0x6E) // _GPE: General Purpose Events Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (OSDW ()) { Return (Package (0x02) { 0x6F, 0x04 }) } Else { Return (Package (0x02) { 0x6F, 0x03 }) } } Name (ECOK, Zero) OperationRegion (ECOR, EmbeddedControl, Zero, 0xFF) Field (ECOR, ByteAcc, NoLock, Preserve) { ECVS, 8, Offset (0x02), Offset (0x03), G3HT, 1, , 5, LVME, 1, PRST, 1, WBCB, 1, DSLP, 1, Offset (0x05), Offset (0x06), WKRS, 8, Offset (0x09), LDSB, 8, Offset (0x0B), TBPW, 4, Offset (0x0C), Offset (0x0D), CMDS, 8, DATA, 8, INDX, 8, ECSS, 8, RRST, 8, ALB0, 8, ALB1, 8, WTLB, 8, WTMB, 8, Offset (0x20), SPTR, 8, SSTS, 8, SADR, 8, SCMD, 8, SBFR, 256, SCNT, 8, SAAD, 8, SAD0, 8, SAD1, 8, SMUX, 8, Offset (0x54), POR0, 8, POR1, 8, POR2, 8, POR3, 8, PWRP, 8, PWQP, 8, PSRP, 8, PSQP, 8, Offset (0x60), ELSW, 1, EACP, 1, ECDI, 1, ENMI, 1, Offset (0x61), EMHP, 1, PSOC, 1, PCIR, 1, TBPS, 1, Offset (0x62), Offset (0x63), Offset (0x64), SWLO, 1, SWLC, 1, SWAI, 1, SWAR, 1, SWCI, 1, SWCE, 1, SWMI, 1, SWMR, 1, SWPB, 1, SWGP, 1, SWPM, 1, SWWT, 1, SWLB, 1, SWTP, 1, SWWL, 1, Offset (0x66), SWUC, 1, , 1, SWBT, 1, SWDF, 1, SWSD, 1, SWOL, 1, SWEP, 1, SWTB, 1, SWCL, 1, Offset (0x68), EWLO, 1, EWLC, 1, EWAI, 1, EWAR, 1, EWCI, 1, EWCE, 1, EWMI, 1, EWMR, 1, EWPB, 1, EWGP, 1, EWPM, 1, ENWT, 1, EWLB, 1, EWDK, 1, EWLN, 1, Offset (0x6A), EWUC, 1, , 1, EWBT, 1, EWDF, 1, EWSD, 1, EWOL, 1, EWEP, 1, EWTB, 1, EWCL, 1, Offset (0x6C), LWLO, 1, LWLC, 1, LWAI, 1, LWAR, 1, LWCI, 1, LWCE, 1, LWMI, 1, LWMR, 1, LWPB, 1, LWGP, 1, LWPM, 1, LWWT, 1, LWLB, 1, LWTP, 1, LWLN, 1, Offset (0x6E), LWUC, 1, , 1, LWBT, 1, LWDF, 1, LWSD, 1, LWOL, 1, LWEP, 1, LWTB, 1, Offset (0x70), LWSR, 1, LWPN, 1, LWCL, 1, , 8, , 8, , 8, , 8, Offset (0x7C), ALRA, 1, ALRD, 1, GSRT, 1, RTMS, 1, Offset (0x7D), TMRF, 1, TMRW, 1, Offset (0x80), YRLB, 8, YRMB, 8, MNTH, 8, DAYB, 8, HOUR, 8, MINT, 8, SECD, 8, PAD0, 8, MSLB, 8, MSMB, 8, TZLB, 8, TZMB, 8, DAYL, 8, PAD1, 8, PAD2, 8, PAD3, 8, ALR0, 8, ALR1, 8, ALR2, 8, ALR3, 8 } Field (ECOR, ByteAcc, Lock, Preserve) { Offset (0x03), G3AD, 1, BLOD, 1, S4WE, 1, APWC, 1, BTPC, 1, SOCR, 1, Offset (0x04), Offset (0x0A), SDPW, 1, , 1, BTDW, 1, Offset (0x0B), Offset (0x6C), LWE0, 8, LWE1, 8, LWE2, 8, LWE3, 8, LWE4, 8, LWE5, 8, LWE6, 8, LWE7, 8 } Field (ECOR, ByteAcc, NoLock, Preserve) { Offset (0x24), SBDW, 16, Offset (0x46), SADW, 16 } Method (RSTB, 2, Serialized) { Local0 = Arg1 Local0 += (Arg0 << 0x05) RRST = Local0 Local1 = Zero While ((RRST == Local0)) { If ((Local1 > 0x64)) { Local1 = One Break } Sleep (0x0A) Local1++ } Return (RRST) /* \_SB_.PCI0.LPCB.EC__.RRST */ } Method (WAKE, 0, NotSerialized) { If (ECOK) { Return (WKRS) /* \_SB_.PCI0.LPCB.EC__.WKRS */ } Else { Return (Zero) } } Method (SETP, 3, NotSerialized) { If ((Arg0 == Zero)) { If ((Arg1 == Zero)) { PWRP = Arg2 } ElseIf ((Arg1 == One)) { PWQP = Arg2 } } ElseIf ((Arg0 == One)) { If ((Arg1 == Zero)) { PSRP = Arg2 } ElseIf ((Arg1 == One)) { PSQP = Arg2 } } } Method (RQOP, 1, NotSerialized) { Local0 = (Arg0 & 0xFF) POR0 = Local0 Local0 = ((Arg0 >> 0x08) & 0xFF) POR1 = Local0 Local0 = ((Arg0 >> 0x10) & 0xFF) POR2 = Local0 Local0 = ((Arg0 >> 0x18) & 0xFF) POR3 = Local0 } Method (QROP, 0, NotSerialized) { Local0 = POR0 /* \_SB_.PCI0.LPCB.EC__.POR0 */ Local1 = POR1 /* \_SB_.PCI0.LPCB.EC__.POR1 */ Local0 += (Local1 << 0x08) Local1 = POR2 /* \_SB_.PCI0.LPCB.EC__.POR2 */ Local0 += (Local1 << 0x10) Local1 = POR3 /* \_SB_.PCI0.LPCB.EC__.POR3 */ Local0 += (Local1 << 0x18) Return (Local0) } Method (PORS, 2, NotSerialized) { If ((Arg0 == Zero)) { If ((Arg1 == Zero)) { Return (PWRP) /* \_SB_.PCI0.LPCB.EC__.PWRP */ } ElseIf ((Arg1 == One)) { Return (PWQP) /* \_SB_.PCI0.LPCB.EC__.PWQP */ } } ElseIf ((Arg0 == One)) { If ((Arg1 == Zero)) { Return (PSRP) /* \_SB_.PCI0.LPCB.EC__.PSRP */ } ElseIf ((Arg1 == One)) { Return (PSQP) /* \_SB_.PCI0.LPCB.EC__.PSQP */ } } Return (0xFF) } Device (SMB0) { Name (_HID, "ACPI0001" /* SMBus 1.0 Host Controller */) // _HID: Hardware ID Name (_EC, 0x2010) // _EC_: Embedded Controller Mutex (SMTX, 0x00) Method (_STA, 0, NotSerialized) // _STA: Status { If (OSDW ()) { Return (0x0F) } Else { Return (Zero) } } Device (SBS0) { Name (_HID, "ACPI0002" /* Smart Battery Subsystem */) // _HID: Hardware ID Name (_SBS, One) // _SBS: Smart Battery Subsystem } Method (SBPC, 1, NotSerialized) { Local0 = Arg0 While (Local0) { If ((SPTR == Zero)) { Return ((SSTS & 0x1F)) } Sleep (One) Local0-- } Return (0x18) } Method (SBRW, 3, NotSerialized) { Local0 = One If (!Acquire (SMTX, 0xFFFF)) { If ((SPTR == Zero)) { SADR = (Arg0 << One) SCMD = Arg1 SPTR = 0x09 Local0 = SBPC (0x03E8) If (!Local0) { Arg2 = SBDW /* \_SB_.PCI0.LPCB.EC__.SBDW */ } } Release (SMTX) } Return (Local0) } Method (SBRB, 3, NotSerialized) { Local0 = One Local1 = Buffer (One) { 0x00 // . } If (!Acquire (SMTX, 0xFFFF)) { If ((SPTR == Zero)) { SADR = (Arg0 << One) SCMD = Arg1 SPTR = 0x0B Local0 = SBPC (0x03E8) If (!Local0) { Arg2 = SBFR /* \_SB_.PCI0.LPCB.EC__.SBFR */ } } Release (SMTX) } Return (Local0) } } Method (_Q10, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { If (OSDW ()) { Notify (SMB0, 0x80) // Status Change } ElseIf ((SSTS & 0x40)) { If (!Acquire (^SMB0.SMTX, 0xFFFF)) { Local0 = (SAAD >> One) If ((Local0 == 0x0A)) { ^^^^BAT0.BNOT (SADW) } SSTS = Zero Release (^SMB0.SMTX) } } } Method (_Q11, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { Notify (EC, 0x83) // Device-Specific Change } Method (_Q12, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { Notify (EC, 0x84) // Reserved } Method (_Q20, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { LIDS = ELSW /* \_SB_.PCI0.LPCB.EC__.ELSW */ ^^^IGPU.CLID = ELSW /* \_SB_.PCI0.LPCB.EC__.ELSW */ Notify (LID0, 0x80) // Status Change } Method (_Q21, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { If (EACP) { PWRS = One } Else { PWRS = Zero } Notify (ADP1, 0x80) // Status Change PNOT () } Method (_Q5A, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { Notify (SLPB, 0x80) // Status Change } Method (_Q80, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { \_PR.CPPC = CPLT /* \CPLT */ Notify (\_PR.CPU0, 0x80) // Performance Capability Change Notify (\_PR.CPU1, 0x80) // Performance Capability Change Notify (\_PR.CPU2, 0x80) // Performance Capability Change Notify (\_PR.CPU3, 0x80) // Performance Capability Change Notify (\_PR.CPU4, 0x80) // Performance Capability Change Notify (\_PR.CPU5, 0x80) // Performance Capability Change Notify (\_PR.CPU6, 0x80) // Performance Capability Change Notify (\_PR.CPU7, 0x80) // Performance Capability Change Notify (\_PR.CPU8, 0x80) // Performance Capability Change Notify (\_PR.CPU9, 0x80) // Performance Capability Change Notify (\_PR.CPUA, 0x80) // Performance Capability Change Notify (\_PR.CPUB, 0x80) // Performance Capability Change Notify (\_PR.CPUC, 0x80) // Performance Capability Change Notify (\_PR.CPUD, 0x80) // Performance Capability Change Notify (\_PR.CPUE, 0x80) // Performance Capability Change Notify (\_PR.CPUF, 0x80) // Performance Capability Change If ((^^^IGPU.VID0 == 0x8086)) { Local0 = IGPS /* \IGPS */ Local0 = (RP0C - Local0) RPSL = Local0 } Else { Notify (^^^PEG0.EGP0.EGP1.GFX0, 0x81) // Information Change } } Method (_QCE, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_QCF, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { If (!OSDW ()) { Notify (SLPB, 0x80) // Status Change } } Method (_QD0, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_REG, 2, NotSerialized) // _REG: Region Availability { If (((Arg0 == 0x03) || (OSYS >= 0x07D6))) { ECOK = Arg1 If ((Arg1 == One)) { ECSS = Zero LIDS = ELSW /* \_SB_.PCI0.LPCB.EC__.ELSW */ ^^^IGPU.CLID = ELSW /* \_SB_.PCI0.LPCB.EC__.ELSW */ PWRS = EACP /* \_SB_.PCI0.LPCB.EC__.EACP */ Notify (ADP1, 0x80) // Status Change } } } } Scope (\_SB) { Device (BAT0) { Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID Name (_UID, Zero) // _UID: Unique ID Name (_PCL, Package (0x01) // _PCL: Power Consumer List { _SB }) Name (BSSW, 0xFFFF) Name (PBIF, Package (0x0D) { Zero, 0xFFFFFFFF, 0xFFFFFFFF, One, 0xFFFFFFFF, 0xFA, 0x64, 0x0A, 0x0A, " ", " ", " ", " " }) Name (PBST, Package (0x04) { Zero, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }) Method (_STA, 0, NotSerialized) // _STA: Status { If (OSDW ()) { Return (Zero) } If (^^PCI0.LPCB.EC.ECOK) { UBSS () If ((BSSW & One)) { Return (0x1F) } Else { Return (0x0F) } } Else { Return (0x0F) } } Method (_BST, 0, NotSerialized) // _BST: Battery Status { If ((BSSW & One)) { UBST () } Else { PBST [Zero] = Zero PBST [One] = 0xFFFFFFFF PBST [0x02] = 0xFFFFFFFF } Return (PBST) /* \_SB_.BAT0.PBST */ } Method (_BIF, 0, NotSerialized) // _BIF: Battery Information { If ((BSSW & One)) { UBIF () } Return (PBIF) /* \_SB_.BAT0.PBIF */ } Method (BNOT, 1, NotSerialized) { Local0 = BSSW /* \_SB_.BAT0.BSSW */ BSSW = Arg0 Notify (BAT0, 0x80) // Status Change If (((Local0 ^ Arg0) & One)) { Notify (BAT0, 0x81) // Information Change } } Method (UBSS, 0, NotSerialized) { ^^PCI0.LPCB.EC.SMB0.SBRW (0x0A, One, RefOf (BSSW)) } Method (UBIF, 0, NotSerialized) { ^^PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x18, RefOf (Local0)) PBIF [One] = (Local0 * 0x0A) ^^PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x10, RefOf (Local0)) PBIF [0x02] = (Local0 * 0x0A) ^^PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x19, RefOf (Local0)) PBIF [0x04] = Local0 ^^PCI0.LPCB.EC.SMB0.SBRB (0x0B, 0x21, RefOf (Local0)) PBIF [0x09] = Local0 PBIF [0x0A] = Buffer (One) { 0x00 // . } ^^PCI0.LPCB.EC.SMB0.SBRB (0x0B, 0x22, RefOf (Local0)) PBIF [0x0B] = Local0 ^^PCI0.LPCB.EC.SMB0.SBRB (0x0B, 0x20, RefOf (Local0)) PBIF [0x0C] = Local0 } Method (UBST, 0, NotSerialized) { ^^PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x09, RefOf (Local2)) PBST [0x03] = Local2 ^^PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x0A, RefOf (Local0)) If ((Local0 & 0x8000)) { Local0 = ~Local0 Local0 = (Local0++ & 0xFFFF) } Local0 *= Local2 PBST [One] = (Local0 / 0x03E8) ^^PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x0F, RefOf (Local0)) PBST [0x02] = (Local0 * 0x0A) Local1 = Zero If (PWRS) { ^^PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x16, RefOf (Local0)) If (!(Local0 & 0x40)) { Local1 = 0x02 } } Else { Local1 = One } PBST [Zero] = Local1 } } } Device (GPUC) { Name (_HID, EisaId ("APP000B")) // _HID: Hardware ID Name (_CID, "gpuc") // _CID: Compatible ID Name (_STA, 0x0B) // _STA: Status Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { Memory32Fixed (ReadWrite, 0xFE0B0200, // Address Base 0x00000008, // Address Length ) }) Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (OSDW ()) { Return (Package (0x02) { 0x15, 0x03 }) } Return (Package (0x02) { 0x15, 0x03 }) } Scope (\_GPE) { Method (_L15, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { If (OSDW ()) { Notify (\_SB.PCI0.LPCB.GPUC, 0x80) // Status Change } ElseIf ((\_SB.GGII (0x03000015) == One)) { \_SB.SGII (0x03000015, Zero) } Else { \_SB.SGII (0x03000015, One) } } } Name (GMGP, 0x15) Method (GMSP, 1, NotSerialized) { If ((Arg0 <= One)) { SGII (0x03000015, Arg0) } } Method (GMLV, 0, NotSerialized) { Return (GGIV (0x03000015)) } } } Device (PMCR) { Name (_HID, EisaId ("APP9876")) // _HID: Hardware ID Name (_STA, 0x0B) // _STA: Status Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { Memory32Fixed (ReadWrite, 0xFE000000, // Address Base 0x00010000, // Address Length ) }) } Device (SBUS) { Name (_ADR, 0x001F0004) // _ADR: Address OperationRegion (SMBP, PCI_Config, 0x40, 0xC0) Field (SMBP, DWordAcc, NoLock, Preserve) { , 2, I2CE, 1 } OperationRegion (SMPB, PCI_Config, 0x20, 0x04) Field (SMPB, DWordAcc, NoLock, Preserve) { , 5, SBAR, 11 } OperationRegion (SMBI, SystemIO, (SBAR << 0x05), 0x10) Field (SMBI, ByteAcc, NoLock, Preserve) { HSTS, 8, Offset (0x02), HCON, 8, HCOM, 8, TXSA, 8, DAT0, 8, DAT1, 8, HBDR, 8, PECR, 8, RXSA, 8, SDAT, 16 } Method (SSXB, 2, Serialized) { If (STRT ()) { Return (Zero) } I2CE = Zero HSTS = 0xBF TXSA = Arg0 HCOM = Arg1 HCON = 0x48 If (COMP ()) { HSTS |= 0xFF Return (One) } Return (Zero) } Method (SRXB, 1, Serialized) { If (STRT ()) { Return (0xFFFF) } I2CE = Zero HSTS = 0xBF TXSA = (Arg0 | One) HCON = 0x44 If (COMP ()) { HSTS |= 0xFF Return (DAT0) /* \_SB_.PCI0.SBUS.DAT0 */ } Return (0xFFFF) } Method (SWRB, 3, Serialized) { If (STRT ()) { Return (Zero) } I2CE = Zero HSTS = 0xBF TXSA = Arg0 HCOM = Arg1 DAT0 = Arg2 HCON = 0x48 If (COMP ()) { HSTS |= 0xFF Return (One) } Return (Zero) } Method (SRDB, 2, Serialized) { If (STRT ()) { Return (0xFFFF) } I2CE = Zero HSTS = 0xBF TXSA = (Arg0 | One) HCOM = Arg1 HCON = 0x48 If (COMP ()) { HSTS |= 0xFF Return (DAT0) /* \_SB_.PCI0.SBUS.DAT0 */ } Return (0xFFFF) } Method (SWRW, 3, Serialized) { If (STRT ()) { Return (Zero) } I2CE = Zero HSTS = 0xBF TXSA = Arg0 HCOM = Arg1 DAT1 = (Arg2 & 0xFF) DAT0 = ((Arg2 >> 0x08) & 0xFF) HCON = 0x4C If (COMP ()) { HSTS |= 0xFF Return (One) } Return (Zero) } Method (SRDW, 2, Serialized) { If (STRT ()) { Return (0xFFFF) } I2CE = Zero HSTS = 0xBF TXSA = (Arg0 | One) HCOM = Arg1 HCON = 0x4C If (COMP ()) { HSTS |= 0xFF Return (((DAT0 << 0x08) | DAT1)) } Return (0xFFFFFFFF) } Method (SBLW, 4, Serialized) { If (STRT ()) { Return (Zero) } I2CE = Arg3 HSTS = 0xBF TXSA = Arg0 HCOM = Arg1 DAT0 = SizeOf (Arg2) Local1 = Zero HBDR = DerefOf (Arg2 [Zero]) HCON = 0x54 While ((SizeOf (Arg2) > Local1)) { Local0 = 0x4E20 While ((!(HSTS & 0x80) && Local0)) { Local0-- } If (!Local0) { KILL () Return (Zero) } Local1++ If ((SizeOf (Arg2) > Local1)) { HBDR = DerefOf (Arg2 [Local1]) HSTS = 0x80 } } HSTS = 0x80 If (COMP ()) { HSTS |= 0xFF Return (One) } Return (Zero) } Method (SBLR, 3, Serialized) { Name (TBUF, Buffer (0x0100){}) If (STRT ()) { Return (Zero) } I2CE = Arg2 HSTS = 0xBF TXSA = (Arg0 | One) HCOM = Arg1 HCON = 0x54 Local0 = 0x0FA0 While ((!(HSTS & 0x80) && Local0)) { Local0-- Stall (0x32) } If (!Local0) { KILL () Return (Zero) } TBUF [Zero] = DAT0 /* \_SB_.PCI0.SBUS.DAT0 */ HSTS = 0x80 Local1 = One While ((Local1 < DerefOf (TBUF [Zero]))) { Local0 = 0x0FA0 While ((!(HSTS & 0x80) && Local0)) { Local0-- Stall (0x32) } If (!Local0) { KILL () Return (Zero) } TBUF [Local1] = HBDR /* \_SB_.PCI0.SBUS.HBDR */ HSTS = 0x80 Local1++ } If (COMP ()) { HSTS |= 0xFF Return (TBUF) /* \_SB_.PCI0.SBUS.SBLR.TBUF */ } Return (Zero) } Method (STRT, 0, Serialized) { Local0 = 0xC8 While (Local0) { If ((HSTS & 0x40)) { Local0-- Sleep (One) If ((Local0 == Zero)) { Return (One) } } Else { Local0 = Zero } } Local0 = 0x0FA0 While (Local0) { If ((HSTS & One)) { Local0-- Stall (0x32) If ((Local0 == Zero)) { KILL () } } Else { Return (Zero) } } Return (One) } Method (COMP, 0, Serialized) { Local0 = 0x0FA0 While (Local0) { If ((HSTS & 0x02)) { Return (One) } Else { Local0-- Stall (0x32) If ((Local0 == Zero)) { KILL () } } } Return (Zero) } Method (KILL, 0, Serialized) { HCON |= 0x02 HSTS |= 0xFF } Device (BUS0) { Name (_CID, "smbus") // _CID: Compatible ID Name (_ADR, Zero) // _ADR: Address } Device (BUS1) { Name (_CID, "smbus") // _CID: Compatible ID Name (_ADR, One) // _ADR: Address } } Device (XSPI) { Name (_ADR, 0x001F0005) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { Local0 = Package (0x02) { "pci-device-hidden", Buffer (0x08) { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (Zero) } } Scope (RP01) { OperationRegion (A1E0, PCI_Config, Zero, 0x0480) Field (A1E0, ByteAcc, NoLock, Preserve) { Offset (0x04), BMIE, 3, Offset (0x19), SECB, 8, SBBN, 8, Offset (0x1E), , 13, MABT, 1, Offset (0x4A), , 5, TPEN, 1, Offset (0x50), , 4, LDIS, 1, , 24, LACT, 1, Offset (0xA4), PSTA, 2, Offset (0xE0), , 7, NCB7, 1, Offset (0xE2), , 2, L23E, 1, L23D, 1, Offset (0x420), , 30, DPGE, 1 } OperationRegion (A1E1, PCI_Config, 0x18, 0x04) Field (A1E1, DWordAcc, NoLock, Preserve) { BNIR, 32 } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { If (((BMIE == Zero) && (SECB == 0xFF))) { Return (SNBS) /* \_SB_.PCI0.RP01.SNBS */ } Else { Return (SECB) /* \_SB_.PCI0.RP01.SECB */ } } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Name (BMIS, Zero) Name (SNBS, Zero) Name (BNIS, Zero) Method (L23R, 1, Serialized) { If ((Arg0 == One)) { L23E = One Local0 = Zero While (L23E) { If ((Local0 > 0x04)) { Break } Sleep (One) Local0++ } NCB7 = One } If ((Arg0 == Zero)) { If ((NCB7 == One)) { DPGE = Zero L23D = One Local0 = Zero While (L23D) { If ((Local0 > 0x04)) { Break } Sleep (One) Local0++ } NCB7 = Zero DPGE = One } } } Method (BUSS, 1, Serialized) { If ((Arg0 == One)) { If ((((BMIE != Zero) && (BMIE != BMIS)) && ( ((SECB != Zero) && (SECB != SNBS)) && ((BNIR != Zero) && (BNIR != BNIS))))) { BMIS = BMIE /* \_SB_.PCI0.RP01.BMIE */ SNBS = SECB /* \_SB_.PCI0.RP01.SECB */ BNIS = BNIR /* \_SB_.PCI0.RP01.BNIR */ } BMIE = Zero BNIR = 0x00FEFF00 Local0 = TPEN /* \_SB_.PCI0.RP01.TPEN */ } If ((Arg0 == Zero)) { BNIR = BNIS /* \_SB_.PCI0.RP01.BNIS */ } } Method (CKGP, 1, Serialized) { } Method (LNKW, 1, Serialized) { Local1 = Zero If ((Arg0 == One)) { Local0 = (Timer + 0x00989680) While ((Timer <= Local0)) { If ((LACT == Zero)) { Local1 = One Break } Sleep (0x0A) } } If ((Arg0 == Zero)) { Local2 = (Timer + 0x00989680) While ((Timer <= Local2)) { If (((LACT == One) && (^ARPT.AVND != 0xFFFF))) { Local1 = One Break } Sleep (0x0A) } } Return (Local1) } Method (CLKD, 1, Serialized) { If ((Arg0 == One)) { Local1 = Zero SPCO (One, Zero) } If ((Arg0 == Zero)) { SPCO (One, One) } } Method (DPWR, 1, Serialized) { If (!OSDW ()) { Return (0xFF) } If ((Arg0 == Zero)) { ^^LPCB.EC.APWC = Zero Return (Zero) } If ((Arg0 == One)) { ^^LPCB.EC.APWC = One Return (One) } Return (^^LPCB.EC.APWC) /* \_SB_.PCI0.LPCB.EC__.APWC */ } Method (DRST, 1, Serialized) { If (!OSDW ()) { Return (0xFF) } If ((Arg0 == Zero)) { SGDI (0x03010003) Return (One) } If ((Arg0 == One)) { SGOV (0x03010003, Zero) SGDO (0x03010003) Return (Zero) } Return (!GGDV (0x03010003)) } Method (DISO, 1, Serialized) { If (!OSDW ()) { Return (0xFF) } If ((Arg0 == Zero)) { ^ARPT.PSTA = 0x03 L23R (One) DRST (One) CLKD (One) BUSS (One) PSTA = 0x03 Local0 = TPEN /* \_SB_.PCI0.RP01.TPEN */ LNKW (One) } If ((Arg0 == One)) { PSTA = Zero BUSS (Zero) CLKD (Zero) DRST (Zero) Sleep (0x64) L23R (Zero) LNKW (Zero) } Return (Zero) } Method (APPD, 0, Serialized) { If (!OSDW ()) { Return (Zero) } ^ARPT.PSTA = 0x03 L23R (One) DRST (One) If ((SLTP == Zero)) { CLKD (One) CKGP (Zero) } BUSS (One) PSTA = 0x03 Local0 = TPEN /* \_SB_.PCI0.RP01.TPEN */ LNKW (One) Return (Zero) } Method (APPU, 0, Serialized) { If (!OSDW ()) { Return (Zero) } PSTA = Zero If ((SECB != 0xFF)){} Else { BNIR = BNIS /* \_SB_.PCI0.RP01.BNIS */ } If ((SLTP == Zero)) { CKGP (One) CLKD (Zero) DRST (Zero) Sleep (0x64) L23R (Zero) } LNKW (Zero) Return (Zero) } Method (ALPR, 1, NotSerialized) { If ((Arg0 == One)) { APPD () } Else { APPU () } } Method (_PS0, 0, Serialized) // _PS0: Power State 0 { If (OSDW ()) { ALPR (Zero) } } Method (_PS3, 0, Serialized) // _PS3: Power State 3 { If (OSDW ()) { ALPR (One) } } Device (ARPT) { Name (_ADR, Zero) // _ADR: Address Name (_GPE, 0x6F) // _GPE: General Purpose Events OperationRegion (ARE2, PCI_Config, Zero, 0x80) Field (ARE2, ByteAcc, NoLock, Preserve) { AVND, 16, ADID, 16, Offset (0x4C), PSTA, 2 } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Local0 = Package (0x02) { "module-instance", "bali" } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (OSDW ()) { Return (Package (0x02) { 0x69, 0x04 }) } Else { Return (Package (0x02) { 0x69, 0x04 }) } } Method (PRW0, 0, NotSerialized) { Return (Package (0x01) { 0x6F }) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (Zero) } Method (_PSW, 1, Serialized) // _PSW: Power State Wake { If ((^^^LPCB.EC.SWWL == One)) { If (^^^LPCB.EC.ECOK) { If (OSDW ()) { If (Arg0) { ^^^LPCB.EC.EWLN = One } Else { ^^^LPCB.EC.EWLN = Zero ^^^LPCB.EC.LWLN = Zero } } } } Else { } } Method (RWCV, 0, Serialized) { Name (BUF0, Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 // .... }) CreateByteField (BUF0, Zero, RW00) CreateByteField (BUF0, One, RW01) CreateByteField (BUF0, 0x02, RW02) CreateByteField (BUF0, 0x03, RW03) RW00 = RWC0 /* \RWC0 */ RW01 = RWC1 /* \RWC1 */ RW02 = RWC2 /* \RWC2 */ RW03 = RWC3 /* \RWC3 */ Return (BUF0) /* \_SB_.PCI0.RP01.ARPT.RWCV.BUF0 */ } } } Device (I2C2) { Name (_ADR, 0x00150002) // _ADR: Address Name (_UID, 0x03) // _UID: Unique ID Name (RBUF, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, ) { 0x00000012, } }) Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { Local0 = Package (0x06) { "i2c-channel-number", Buffer (0x08) { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ }, "i2c-pin-sda", Buffer (0x08) { 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ }, "i2c-pin-scl", Buffer (0x08) { 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (Zero) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Return (RBUF) /* \_SB_.PCI0.I2C2.RBUF */ } } Device (SPI1) { Name (_ADR, 0x001E0003) // _ADR: Address Name (_DDN, "Intel(R) Low Power Subsystem SPI Host Controller - 9D2A") // _DDN: DOS Device Name Name (_UID, 0x02) // _UID: Unique ID Name (CSST, 0x28) Name (CSHT, 0x0A) Name (RBUF, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, ) { 0x00000017, } }) Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { Local0 = Package (0x0E) { "gspi-channel-number", Buffer (0x08) { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ }, "gspi-channels-count", Buffer (0x08) { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ }, "gspi-sys-clock-period", Buffer (0x08) { 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ }, "gspi-pin-cs", Buffer (0x08) { 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // W....... }, "gspi-pin-clk", Buffer (0x08) { 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // X....... }, "gspi-pin-mosi", Buffer (0x08) { 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Y....... }, "gspi-pin-miso", Buffer (0x08) { 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Z....... } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (Zero) } Name (WBUF, Buffer (0x02) { 0x79, 0x00 // y. }) Name (DBUF, Buffer (0x10) { /* 0000 */ 0x55, 0x10, 0x00, 0x06, 0x00, 0x02, 0x55, 0x11, // U.....U. /* 0008 */ 0x00, 0x07, 0x00, 0x02, 0x79, 0x00 // ....y. }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!OSDW ()) { Return (WBUF) /* \_SB_.PCI0.SPI1.WBUF */ } Return (ConcatenateResTemplate (RBUF, DBUF)) } } Device (URT0) { Name (_ADR, 0x001E0000) // _ADR: Address Name (RBUF, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, ) { 0x00000014, } }) Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { Local0 = Package (0x02) { "uart-channel-number", Buffer (0x08) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (Zero) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Return (RBUF) /* \_SB_.PCI0.URT0.RBUF */ } } Device (URT2) { Name (_ADR, 0x00190002) // _ADR: Address Name (_HID, "INT34BA") // _HID: Hardware ID Method (RBUF, 0, NotSerialized) { Name (BUFF, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00001000, // Address Length _Y10) Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, _Y11) { 0x00000014, } }) CreateDWordField (BUFF, \_SB.PCI0.URT2.RBUF._Y10._BAS, BVAL) // _BAS: Base Address CreateDWordField (BUFF, \_SB.PCI0.URT2.RBUF._Y11._INT, IRQN) // _INT: Interrupts BVAL = SB0B /* \SB0B */ IRQN = SIRB /* \SIRB */ Return (BUFF) /* \_SB_.PCI0.URT2.RBUF.BUFF */ } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { Local0 = Package (0x02) { "uart-channel-number", Buffer (0x08) { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (Zero) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Return (RBUF ()) } } Scope (URT0) { Device (BLTH) { Name (_HID, EisaId ("BCM2E7C")) // _HID: Hardware ID Name (_CID, "apple-uart-blth") // _CID: Compatible ID Name (_UID, One) // _UID: Unique ID Name (_ADR, Zero) // _ADR: Address Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (OSDW ()) { Return (Package (0x02) { 0x6F, 0x04 }) } Else { Return (Package (0x02) { 0x6F, 0x03 }) } } Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { Name (UBUF, ResourceTemplate () { UartSerialBusV2 (0x0001C200, DataBitsEight, StopBitsOne, 0xC0, LittleEndian, ParityTypeNone, FlowControlHardware, 0x0020, 0x0020, "\\_SB.PCI0.URT0", 0x00, ResourceProducer, , Exclusive, ) }) Name (ABUF, Buffer (0x02) { 0x79, 0x00 // y. }) If (!OSDW ()) { Return (UBUF) /* \_SB_.PCI0.URT0.BLTH._CRS.UBUF */ } Return (ABUF) /* \_SB_.PCI0.URT0.BLTH._CRS.ABUF */ } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { Local0 = Package (0x08) { "baud", Buffer (0x08) { 0xC0, 0xC6, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00 // ..-..... }, "parity", Buffer (0x08) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ }, "dataBits", Buffer (0x08) { 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ }, "stopBits", Buffer (0x08) { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (Zero) } Method (BTPU, 0, Serialized) { ^^^LPCB.EC.BTPC = One Sleep (0x0A) } Method (BTPD, 0, Serialized) { ^^^LPCB.EC.BTPC = Zero Sleep (0x0A) } Method (BTRS, 0, Serialized) { BTPD () BTPU () } Method (BTLP, 1, Serialized) { If ((Arg0 == Zero)) { ^^^LPCB.EC.BTDW = One } If ((Arg0 == One)) { ^^^LPCB.EC.BTDW = Zero } } Method (BTRB, 1, Serialized) { If ((Arg0 == Zero)) { SGOV (0x0309000A, One) SGDO (0x0309000A) } If ((Arg0 == One)) { SGOV (0x0309000A, Zero) SGDO (0x0309000A) } } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If ((^^^LPCB.EC.SWBT == One)) { If (^^^LPCB.EC.ECOK) { If (OSDW ()) { If (Arg0) { ^^^LPCB.EC.EWBT = One } Else { ^^^LPCB.EC.EWBT = Zero ^^^LPCB.EC.LWBT = Zero } } } } Else { } } } } Scope (RP17) { OperationRegion (PCUP, PCI_Config, Zero, 0x0480) Field (PCUP, ByteAcc, NoLock, Preserve) { Offset (0x52), , 13, LACT, 1, Offset (0xE0), , 7, NCB7, 1, Offset (0xE2), , 2, L23E, 1, L23D, 1, Offset (0x420), , 30, DPGE, 1 } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { Local1 = Zero Local0 = (Timer + 0x08F0D180) While ((Timer <= Local0)) { If ((^^LPCB.EC.PSOC == One)) { Local1 = One Break } Sleep (0x64) } If ((Local1 != One)) { Fatal (0x00, 0x436F5350, 0x544F4D54) } SPCO (Zero, One) Sleep (0x64) ^^LPCB.EC.PRST = One Local1 = Zero Local0 = Zero While ((^^LPCB.EC.PCIR != One)) { If ((Local0 > 0x96)) { Local1 = One Break } Sleep (0x64) Local0++ } If ((Local1 != Zero)) { Fatal (0x00, 0x65494350, 0x544F4D54) } If ((NCB7 == One)) { DPGE = Zero L23D = One Local0 = Zero While (L23D) { If ((Local0 > 0x04)) { Break } Sleep (One) Local0++ } NCB7 = Zero DPGE = One Local0 = Zero While ((LACT == Zero)) { If ((Local0 > 0x08)) { Break } Sleep (0x10) Local0++ } } Local0 = ^ANS2.PSTA /* \_SB_.PCI0.RP17.ANS2.PSTA */ ^ANS2.PSTA = (Local0 & 0xFFFFFFFC) Local0 = ^ANS2.PSTA /* \_SB_.PCI0.RP17.ANS2.PSTA */ } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { Local0 = ^ANS2.PSTA /* \_SB_.PCI0.RP17.ANS2.PSTA */ ^ANS2.PSTA = (Local0 | 0x03) Local0 = ^ANS2.PSTA /* \_SB_.PCI0.RP17.ANS2.PSTA */ L23E = One Local0 = Zero While (L23E) { If ((Local0 > 0x04)) { Break } Sleep (One) Local0++ } NCB7 = One SPCO (Zero, Zero) ^^LPCB.EC.PRST = Zero } } Scope (RP17) { Device (ANS2) { Name (_ADR, Zero) // _ADR: Address OperationRegion (PCIA, PCI_Config, Zero, 0xFF) Field (PCIA, ByteAcc, NoLock, Preserve) { AVND, 16, ADID, 16, Offset (0x44), PSTA, 32 } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { Local0 = Package (0x02) { "pci-functions-dependent", Buffer (0x08) { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (Zero) } } } Scope (RP17) { Device (IOBC) { Name (_ADR, One) // _ADR: Address OperationRegion (PCIC, PCI_Config, Zero, 0xFF) Field (PCIC, ByteAcc, NoLock, Preserve) { AVND, 16, ADID, 16, Offset (0x44), PSTA, 32 } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { Local0 = Package (0x02) { "pci-msi-flags", Buffer (0x08) { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (Zero) } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { PSTA &= 0xFFFFFFFC Local0 = PSTA /* \_SB_.PCI0.RP17.IOBC.PSTA */ } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { PSTA |= 0x03 Local0 = PSTA /* \_SB_.PCI0.RP17.IOBC.PSTA */ } } } Scope (RP17) { Device (SEPM) { Name (_ADR, 0x02) // _ADR: Address OperationRegion (PCID, PCI_Config, Zero, 0xFF) Field (PCID, ByteAcc, NoLock, Preserve) { AVND, 16, ADID, 16, Offset (0x44), PSTA, 32 } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { Local0 = Package (0x02) { "pci-msi-flags", Buffer (0x08) { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (Zero) } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { PSTA &= 0xFFFFFFFC Local0 = PSTA /* \_SB_.PCI0.RP17.SEPM.PSTA */ } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { PSTA |= 0x03 Local0 = PSTA /* \_SB_.PCI0.RP17.SEPM.PSTA */ } } } Scope (RP17) { Device (ADIO) { Name (_ADR, 0x03) // _ADR: Address OperationRegion (PCIB, PCI_Config, Zero, 0xFF) Field (PCIB, ByteAcc, NoLock, Preserve) { AVND, 16, ADID, 16, Offset (0x44), PSTA, 32 } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { PSTA &= 0xFFFFFFFC Local0 = PSTA /* \_SB_.PCI0.RP17.ADIO.PSTA */ } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { PSTA |= 0x03 Local0 = PSTA /* \_SB_.PCI0.RP17.ADIO.PSTA */ } } } } Device (ADP1) { Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (OSDW ()) { Return (Package (0x02) { 0x6F, 0x04 }) } Else { Return (Package (0x02) { 0x6F, 0x03 }) } } Name (WK00, One) Method (SWAK, 1, NotSerialized) { WK00 = (Arg0 & 0x03) If (!WK00) { WK00 = One } } Method (_PSR, 0, NotSerialized) // _PSR: Power Source { Return (PWRS) /* \PWRS */ } Method (_PCL, 0, NotSerialized) // _PCL: Power Consumer List { Return (_SB) /* \_SB_ */ } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (OSDW ()) { If (^^PCI0.LPCB.EC.ECOK) { If (Arg0) { If ((WK00 & One)) { ^^PCI0.LPCB.EC.EWAI = One } If ((WK00 & 0x02)) { ^^PCI0.LPCB.EC.EWAR = One } } Else { ^^PCI0.LPCB.EC.EWAI = Zero ^^PCI0.LPCB.EC.EWAR = Zero } } } } } Device (LID0) { Name (_HID, EisaId ("PNP0C0D") /* Lid Device */) // _HID: Hardware ID Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (OSDW ()) { Return (Package (0x02) { 0x6F, 0x04 }) } Else { Return (Package (0x02) { 0x6F, 0x03 }) } } Method (_LID, 0, NotSerialized) // _LID: Lid Status { LIDS = ^^PCI0.LPCB.EC.ELSW /* \_SB_.PCI0.LPCB.EC__.ELSW */ ^^PCI0.IGPU.CLID = ^^PCI0.LPCB.EC.ELSW /* \_SB_.PCI0.LPCB.EC__.ELSW */ Return (LIDS) /* External reference */ } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (^^PCI0.LPCB.EC.ECOK) { If (Arg0) { ^^PCI0.LPCB.EC.EWLO = One } Else { ^^PCI0.LPCB.EC.EWLO = Zero } } } } Device (PWRB) { Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */) // _HID: Hardware ID Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { Local0 = Package (0x04) { "power-button-usage", Buffer (0x08) { 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // @....... }, "power-button-usagepage", Buffer (0x08) { 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (Zero) } } Device (BC00) { Name (_HID, EisaId ("APPBC00")) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { If (OSDW ()) { Return (Zero) } Else { Return (0x0B) } } } Device (BC01) { Name (_HID, EisaId ("APPBC01")) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { If (OSDW ()) { Return (Zero) } Else { Return (0x0B) } } } } Scope (_PR) { Processor (CPU0, 0x01, 0x00000410, 0x06){} Processor (CPU1, 0x02, 0x00000410, 0x06){} Processor (CPU2, 0x03, 0x00000410, 0x06){} Processor (CPU3, 0x04, 0x00000410, 0x06){} Processor (CPU4, 0x05, 0x00000410, 0x06){} Processor (CPU5, 0x06, 0x00000410, 0x06){} Processor (CPU6, 0x07, 0x00000410, 0x06){} Processor (CPU7, 0x08, 0x00000410, 0x06){} Processor (CPU8, 0x09, 0x00000410, 0x06){} Processor (CPU9, 0x0A, 0x00000410, 0x06){} Processor (CPUA, 0x0B, 0x00000410, 0x06){} Processor (CPUB, 0x0C, 0x00000410, 0x06){} Processor (CPUC, 0x0D, 0x00000410, 0x06){} Processor (CPUD, 0x0E, 0x00000410, 0x06){} Processor (CPUE, 0x0F, 0x00000410, 0x06){} Processor (CPUF, 0x10, 0x00000410, 0x06){} } Mutex (MUTX, 0x00) Name (SLTP, Zero) Name (TBH1, Zero) Name (TBH2, Zero) Name (TBG0, Zero) Name (TBG1, Zero) Name (TBG2, Zero) OperationRegion (PRT0, SystemIO, 0x80, 0x04) Field (PRT0, DWordAcc, NoLock, Preserve) { P80H, 32 } OperationRegion (PLMT, SystemIO, 0x0310, 0x0A) Field (PLMT, ByteAcc, NoLock, Preserve) { CPLT, 8, IGPS, 8, MPLT, 8, CFIL, 8, EGPS, 8 } OperationRegion (S0BA, SystemMemory, 0xE00A8084, 0x04) Field (S0BA, DWordAcc, NoLock, Preserve) { S0D3, 2 } OperationRegion (S4BA, SystemMemory, 0xE00AC084, 0x04) Field (S4BA, DWordAcc, NoLock, Preserve) { S4D3, 2 } OperationRegion (TCOI, SystemIO, 0x1860, 0x08) Field (TCOI, WordAcc, NoLock, Preserve) { Offset (0x04), , 9, SCIS, 1, Offset (0x06) } Method (P8XH, 2, Serialized) { If ((Arg0 == Zero)) { P80D = ((P80D & 0xFFFFFF00) | Arg1) } If ((Arg0 == One)) { P80D = ((P80D & 0xFFFF00FF) | (Arg1 << 0x08)) } If ((Arg0 == 0x02)) { P80D = ((P80D & 0xFF00FFFF) | (Arg1 << 0x10)) } If ((Arg0 == 0x03)) { P80D = ((P80D & 0x00FFFFFF) | (Arg1 << 0x18)) } P80H = P80D /* \P80D */ } OperationRegion (SPRT, SystemIO, 0xB2, 0x02) Field (SPRT, ByteAcc, NoLock, Preserve) { SSMP, 8, SSMY, 8 } Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model { GPIC = Arg0 PICM = Arg0 } Method (GETB, 3, Serialized) { Local0 = (Arg0 * 0x08) Local1 = (Arg1 * 0x08) CreateField (Arg2, Local0, Local1, TBF3) Return (TBF3) /* \GETB.TBF3 */ } Method (PNOT, 0, Serialized) { If (!OSDW ()) { \_PR.CPPC = CPLT /* \CPLT */ } If ((TCNT > One)) { If ((PDC0 & 0x08)) { Notify (\_PR.CPU0, 0x80) // Performance Capability Change If ((PDC0 & 0x10)) { Notify (\_PR.CPU0, 0x81) // C-State Change } } If ((PDC1 & 0x08)) { Notify (\_PR.CPU1, 0x80) // Performance Capability Change If ((PDC1 & 0x10)) { Notify (\_PR.CPU1, 0x81) // C-State Change } } If ((PDC2 & 0x08)) { Notify (\_PR.CPU2, 0x80) // Performance Capability Change If ((PDC2 & 0x10)) { Notify (\_PR.CPU2, 0x81) // C-State Change } } If ((PDC3 & 0x08)) { Notify (\_PR.CPU3, 0x80) // Performance Capability Change If ((PDC3 & 0x10)) { Notify (\_PR.CPU3, 0x81) // C-State Change } } If ((PDC4 & 0x08)) { Notify (\_PR.CPU4, 0x80) // Performance Capability Change If ((PDC4 & 0x10)) { Notify (\_PR.CPU4, 0x81) // C-State Change } } If ((PDC5 & 0x08)) { Notify (\_PR.CPU5, 0x80) // Performance Capability Change If ((PDC5 & 0x10)) { Notify (\_PR.CPU5, 0x81) // C-State Change } } If ((PDC6 & 0x08)) { Notify (\_PR.CPU6, 0x80) // Performance Capability Change If ((PDC6 & 0x10)) { Notify (\_PR.CPU6, 0x81) // C-State Change } } If ((PDC7 & 0x08)) { Notify (\_PR.CPU7, 0x80) // Performance Capability Change If ((PDC7 & 0x10)) { Notify (\_PR.CPU7, 0x81) // C-State Change } } } Else { Notify (\_PR.CPU0, 0x80) // Performance Capability Change Notify (\_PR.CPU0, 0x81) // C-State Change } } Method (DSPI, 0, Serialized) { If (!OSDW ()){} } Method (TRAP, 2, Serialized) { SMIF = Arg1 If ((Arg0 == TRTP)) { TRP0 = Zero } If ((Arg0 == TRTD)) { DTSF = Arg1 TRPD = Zero Return (DTSF) /* \DTSF */ } If ((Arg0 == TRTI)) { TRPH = Zero } Return (SMIF) /* \SMIF */ } Scope (_SB) { Method (_INI, 0, NotSerialized) // _INI: Initialize { PINI () } Method (LPS0, 0, NotSerialized) { Return (One) } Device (USBX) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Local0 = Package (0x04) { "kUSBSleepPortCurrentLimit", 0x0BB8, "kUSBWakePortCurrentLimit", 0x0BB8 } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Device (PNLF) { Name (_ADR, Zero) // _ADR: Address Name (_HID, EisaId ("APP0002")) // _HID: Hardware ID Name (_CID, "backlight") // _CID: Compatible ID Name (_UID, 0x0F) // _UID: Unique ID Name (_STA, 0x0B) // _STA: Status } Device (SLPB) { Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */) // _HID: Hardware ID Name (_STA, 0x0B) // _STA: Status } } Scope (_SB.PCI0) { Method (_INI, 0, NotSerialized) // _INI: Initialize { OSYS = 0x07DC If (CondRefOf (\_OSI, Local0)) { If (_OSI ("Darwin")) { OSYS = 0x2710 } If (_OSI ("Linux")) { OSYS = 0x03E8 } If (_OSI ("Windows 2009")) { OSYS = 0x07D9 } If (_OSI ("Windows 2012")) { OSYS = 0x07DC } } If (!OSDW ()){} } } Scope (\) { Name (PICM, Zero) Method (OSDW, 0, NotSerialized) { If ((OSYS == 0x2710)) { Return (One) } Else { Return (Zero) } } Method (PINI, 0, NotSerialized) { OSYS = 0x07DC If (CondRefOf (_OSI, Local0)) { If (_OSI ("Darwin")) { OSYS = 0x2710 } ElseIf (_OSI ("Linux")) { OSYS = 0x03E8 } ElseIf (_OSI ("Windows 2009")) { OSYS = 0x07D9 } ElseIf (_OSI ("Windows 2012")) { OSYS = 0x07DC } } Else { OSYS = 0x07DC } } } Scope (_SB.PCI0) { Device (PDRC) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Name (BUF0, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00008000, // Address Length _Y13) Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00001000, // Address Length _Y14) Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00001000, // Address Length _Y15) Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00000000, // Address Length _Y16) Memory32Fixed (ReadWrite, 0xFED20000, // Address Base 0x00020000, // Address Length ) Memory32Fixed (ReadOnly, 0xFED90000, // Address Base 0x00004000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED45000, // Address Base 0x0004B000, // Address Length ) Memory32Fixed (ReadOnly, 0xFF000000, // Address Base 0x01000000, // Address Length ) Memory32Fixed (ReadOnly, 0xFEE00000, // Address Base 0x00100000, // Address Length ) Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00001000, // Address Length _Y12) Memory32Fixed (ReadOnly, 0x40000000, // Address Base 0x00400000, // Address Length ) Memory32Fixed (ReadWrite, 0xFD000000, // Address Base 0x01000000, // Address Length ) Memory32Fixed (ReadWrite, 0xFE010000, // Address Base 0x00001000, // Address Length ) Memory32Fixed (ReadWrite, 0xFE036000, // Address Base 0x0007A000, // Address Length ) Memory32Fixed (ReadWrite, 0xFC800000, // Address Base 0x00800000, // Address Length ) Memory32Fixed (ReadWrite, 0xFE100000, // Address Base 0x00100000, // Address Length ) Memory32Fixed (ReadWrite, 0xFE200000, // Address Base 0x00200000, // Address Length ) }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y12._BAS, TBR0) // _BAS: Base Address TBR0 = TBAB /* \TBAB */ CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y12._LEN, TBLN) // _LEN: Length If ((TBAB == Zero)) { TBLN = Zero } CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y13._BAS, MBR0) // _BAS: Base Address MBR0 = (MHBR << 0x0F) CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y14._BAS, DBR0) // _BAS: Base Address DBR0 = (DIBR << 0x0C) CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y15._BAS, EBR0) // _BAS: Base Address EBR0 = (EPBR << 0x0C) CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y16._BAS, XBR0) // _BAS: Base Address XBR0 = (PXBR << 0x1A) CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y16._LEN, XSZ0) // _LEN: Length XSZ0 = (0x10000000 >> PXSZ) /* \_SB_.PCI0.PXSZ */ Return (BUF0) /* \_SB_.PCI0.PDRC.BUF0 */ } } } Name (PNVB, 0x7AF3AC18) Name (PNVL, 0x028F) OperationRegion (PNVA, SystemMemory, PNVB, PNVL) Field (PNVA, AnyAcc, Lock, Preserve) { PCHS, 16, PCHG, 16, PSTP, 16, RPA1, 32, RPA2, 32, RPA3, 32, RPA4, 32, RPA5, 32, RPA6, 32, RPA7, 32, RPA8, 32, RPA9, 32, RPAA, 32, RPAB, 32, RPAC, 32, RPAD, 32, RPAE, 32, RPAF, 32, RPAG, 32, RPAH, 32, RPAI, 32, RPAJ, 32, RPAK, 32, RPAL, 32, RPAM, 32, RPAN, 32, RPAO, 32, NHLA, 64, NHLL, 32, ADFM, 32, SWQ0, 8, SWQ1, 8, SWQ2, 8, SWQ3, 8, DSPM, 32, SBRG, 32, GEI0, 8, GEI1, 8, GEI2, 8, GED0, 8, GED1, 8, GED2, 8, PML1, 16, PML2, 16, PML3, 16, PML4, 16, PML5, 16, PML6, 16, PML7, 16, PML8, 16, PML9, 16, PMLA, 16, PMLB, 16, PMLC, 16, PMLD, 16, PMLE, 16, PMLF, 16, PMLG, 16, PMLH, 16, PMLI, 16, PMLJ, 16, PMLK, 16, PMLL, 16, PMLM, 16, PMLN, 16, PMLO, 16, PNL1, 16, PNL2, 16, PNL3, 16, PNL4, 16, PNL5, 16, PNL6, 16, PNL7, 16, PNL8, 16, PNL9, 16, PNLA, 16, PNLB, 16, PNLC, 16, PNLD, 16, PNLE, 16, PNLF, 16, PNLG, 16, PNLH, 16, PNLI, 16, PNLJ, 16, PNLK, 16, PNLL, 16, PNLM, 16, PNLN, 16, PNLO, 16, XHPC, 8, XRPC, 8, XSPC, 8, XSPA, 8, HPTB, 32, HPTE, 8, SMD0, 8, SMD1, 8, SMD2, 8, SMD3, 8, SMD4, 8, SMD5, 8, SMD6, 8, SMD7, 8, SMD8, 8, SMD9, 8, SMDA, 8, SMDB, 8, SIR0, 8, SIR1, 8, SIR2, 8, SIR3, 8, SIR4, 8, SIR5, 8, SIR6, 8, SIR7, 8, SIR8, 8, SIR9, 8, SIRA, 8, SIRB, 8, SB00, 64, SB01, 64, SB02, 64, SB03, 64, SB04, 64, SB05, 64, SB06, 64, SB07, 64, SB08, 64, SB09, 64, SB0A, 64, SB0B, 64, SB10, 64, SB11, 64, SB12, 64, SB13, 64, SB14, 64, SB15, 64, SB16, 64, SB17, 64, SB18, 64, SB19, 64, SB1A, 64, SB1B, 64, SGIR, 8, GPHD, 8, NIT1, 8, NIT2, 8, NIT3, 8, NPM1, 8, NPM2, 8, NPM3, 8, NPC1, 8, NPC2, 8, NPC3, 8, NL11, 16, NL12, 16, NL13, 16, ND21, 8, ND22, 8, ND23, 8, ND11, 32, ND12, 32, ND13, 32, NLR1, 16, NLR2, 16, NLR3, 16, NLD1, 32, NLD2, 32, NLD3, 32, NEA1, 16, NEA2, 16, NEA3, 16, NEB1, 16, NEB2, 16, NEB3, 16, NEC1, 16, NEC2, 16, NEC3, 16, NRA1, 16, NRA2, 16, NRA3, 16, NMB1, 32, NMB2, 32, NMB3, 32, NMV1, 32, NMV2, 32, NMV3, 32, NPB1, 32, NPB2, 32, NPB3, 32, NPV1, 32, NPV2, 32, NPV3, 32, NRP1, 32, NRP2, 32, NRP3, 32, EMH4, 8, EMDS, 8, CSKU, 8, ITA0, 16, ITA1, 16, ITA2, 16, ITA3, 16, ITS0, 8, ITS1, 8, ITS2, 8, ITS3, 8, PMBS, 16, PWRM, 32, CNVI, 8, RMRC, 32, VMRC, 8, VM70, 8, VM75, 8, PTHM, 8, PSON, 8, TWMB, 32, LTR1, 8, LTR2, 8, LTR3, 8, LTR4, 8, LTR5, 8, LTR6, 8, LTR7, 8, LTR8, 8, LTR9, 8, LTRA, 8, LTRB, 8, LTRC, 8, LTRD, 8, LTRE, 8, LTRF, 8, LTRG, 8, LTRH, 8, LTRI, 8, LTRJ, 8, LTRK, 8, LTRL, 8, LTRM, 8, LTRN, 8, LTRO, 8, GBES, 8, SPPR, 8, SDPH, 8, EMCE, 8, SDCE, 8 } Scope (_SB) { Name (GPCL, Package (0x0F) { Package (0x07) { 0x006E0000, 0x19, 0x0600, 0xB0, 0x20, 0x0140, Zero }, Package (0x07) { 0x006E0000, 0x1A, 0x0790, 0xB4, 0x30, 0x0144, 0x20 }, Package (0x07) { 0x006A0000, 0x18, 0x0600, 0xB0, 0x20, 0x0140, 0x0100 }, Package (0x07) { 0x006D0000, 0x18, 0x0600, 0xB0, 0x20, 0x0140, 0x60 }, Package (0x07) { 0x006A0000, 0x18, 0x0780, 0xB4, 0x2C, 0x0144, 0x0120 }, Package (0x07) { 0x006D0000, 0x18, 0x0790, 0xB4, 0x30, 0x0144, 0x80 }, Package (0x07) { 0x006E0000, 0x08, 0x0930, 0xB8, 0x40, 0x0148, 0x40 }, Package (0x07) { 0x006D0000, 0x18, 0x0910, 0xB8, 0x3C, 0x0148, 0xA0 }, Package (0x07) { 0x006C0000, 0x10, 0x0600, 0xB0, 0x20, 0x0140, 0xFFFF }, Package (0x07) { 0x006D0000, 0x28, 0x0A90, 0xBC, 0x48, 0x014C, 0xC0 }, Package (0x07) { 0x006E0000, 0x09, 0x09B0, 0xBC, 0x44, 0x014C, 0xFFFF }, Package (0x07) { 0x006B0000, 0x08, 0x0600, 0xB0, 0x20, 0x0140, 0xFFFF }, Package (0x07) { 0x006B0000, 0x0B, 0x0680, 0xB4, 0x24, 0xFFFF, 0xFFFF }, Package (0x07) { 0x006A0000, 0x09, 0x0900, 0xB8, 0x38, 0xFFFF, 0xFFFF }, Package (0x07) { 0x006A0000, 0x06, 0x0990, 0xBC, 0x40, 0x014C, 0xFFFF } }) Name (GPCH, Package (0x11) { Package (0x07) { 0x006E0000, 0x19, 0x0600, 0xC0, 0x20, 0x0140, Zero }, Package (0x07) { 0x006E0000, 0x1A, 0x0790, 0xC4, 0x30, 0x0144, 0x20 }, Package (0x07) { 0x006D0000, 0x18, 0x0600, 0xC0, 0x20, 0x0140, 0x40 }, Package (0x07) { 0x006D0000, 0x18, 0x0780, 0xC4, 0x2C, 0x0144, 0x60 }, Package (0x07) { 0x006B0000, 0x0D, 0x0900, 0xC8, 0x38, 0x0148, 0x0100 }, Package (0x07) { 0x006B0000, 0x18, 0x09D0, 0xCC, 0x40, 0x014C, 0x0120 }, Package (0x07) { 0x006D0000, 0x08, 0x0900, 0xC8, 0x38, 0x0148, 0x80 }, Package (0x07) { 0x006B0000, 0x18, 0x0780, 0xC4, 0x2C, 0x0144, 0xE0 }, Package (0x07) { 0x006A0000, 0x12, 0x0740, 0xC8, 0x30, 0x0148, 0x0140 }, Package (0x07) { 0x006A0000, 0x0C, 0x0860, 0xCC, 0x3C, 0x014C, 0x0160 }, Package (0x07) { 0x006B0000, 0x18, 0x0600, 0xC0, 0x20, 0x0140, 0xC0 }, Package (0x07) { 0x006C0000, 0x10, 0x0600, 0xB0, 0x20, 0x0140, 0xFFFF }, Package (0x07) { 0x006D0000, 0x28, 0x0A00, 0xD0, 0x40, 0xFFFF, 0xA0 }, Package (0x07) { 0x006B0000, 0x09, 0x0B50, 0xD0, 0x4C, 0xFFFF, 0xFFFF }, Package (0x07) { 0x006D0000, 0x08, 0x0980, 0xCC, 0x3C, 0xFFFF, 0xFFFF }, Package (0x07) { 0x006A0000, 0x0B, 0x0600, 0xC0, 0x20, 0xFFFF, 0xFFFF }, Package (0x07) { 0x006A0000, 0x09, 0x06B0, 0xC4, 0x28, 0xFFFF, 0xFFFF } }) Name (RXEV, Package (0x0D) { Buffer (0x19){}, Buffer (0x1A){}, Buffer (0x18){}, Buffer (0x18){}, Buffer (0x18){}, Buffer (0x18){}, Buffer (0x08){}, Buffer (0x18){}, Buffer (0x12){}, Buffer (0x28){}, Buffer (0x18){}, Buffer (0x10){}, Buffer (0x28){} }) } Scope (_SB) { Method (GINF, 2, NotSerialized) { If ((PCHS == PCHL)) { Return (DerefOf (DerefOf (GPCL [Arg0]) [Arg1])) } Else { Return (DerefOf (DerefOf (GPCH [Arg0]) [Arg1])) } } Method (GMXG, 0, NotSerialized) { If ((PCHS == PCHL)) { Return (0x0F) } Else { Return (0x11) } } Method (GADR, 2, NotSerialized) { Local0 = (GINF (Arg0, Zero) + SBRG) Local1 = GINF (Arg0, Arg1) Return ((Local0 + Local1)) } Method (GNUM, 1, NotSerialized) { Local0 = GNMB (Arg0) Local1 = GGRP (Arg0) Return ((GINF (Local1, 0x06) + Local0)) } Method (INUM, 1, NotSerialized) { Return ((GPC1 (Arg0) & 0x7F)) } Method (GGRP, 1, Serialized) { Local0 = ((Arg0 & 0x00FF0000) >> 0x10) Return (Local0) } Method (GNMB, 1, Serialized) { Return ((Arg0 & 0xFFFF)) } Method (GGPE, 1, NotSerialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (Local1 >> 0x05) If (!((((GEI0 == Local0) && (GED0 == Local2)) | ( (GEI1 == Local0) && (GED1 == Local2))) | ((GEI2 == Local0) && (GED2 == Local2)))) { Return (0x6F) } Else { If (((GEI0 == Local0) && (GED0 == Local2))) { Local3 = Zero } ElseIf (((GEI1 == Local0) && (GED1 == Local2))) { Local3 = One } ElseIf (((GEI2 == Local0) && (GED2 == Local2))) { Local3 = 0x02 } Else { BreakPoint Return (Zero) } Return ((((Local3 - Local2) * 0x20) + Local1)) } } Method (GPC0, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { TEMP, 32 } Return (TEMP) /* \_SB_.GPC0.TEMP */ } Method (SREG, 2, Serialized) { If ((PCHS == PCHL)) { Local0 = Zero } Else { Local0 = One } Local1 = (GINF (Arg0, Zero) + SBRG) Local2 = (Arg0 + Local1) OperationRegion (PREG, SystemMemory, Local2, 0x04) Field (PREG, AnyAcc, NoLock, Preserve) { TEMP, 32 } TEMP = Arg1 } Method (SPC0, 2, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { TEMP, 32 } TEMP = Arg1 } Method (GPC1, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = ((GADR (Local0, 0x02) + (Local1 * 0x10)) + 0x04) OperationRegion (PDW1, SystemMemory, Local2, 0x04) Field (PDW1, AnyAcc, NoLock, Preserve) { TEMP, 32 } Return (TEMP) /* \_SB_.GPC1.TEMP */ } Method (SPC1, 2, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = ((GADR (Local0, 0x02) + (Local1 * 0x10)) + 0x04) OperationRegion (PDW1, SystemMemory, Local2, 0x04) Field (PDW1, AnyAcc, NoLock, Preserve) { TEMP, 32 } TEMP = Arg1 } Method (SRXO, 2, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { , 28, TEMP, 1, Offset (0x04) } TEMP = Arg1 } Method (SGDI, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { Offset (0x01), TEMP, 2, Offset (0x04) } TEMP = One } Name (PCSA, Zero) Method (RXRA, 2, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { , 28, RXPO, 1, , 1, PADC, 2 } If ((Arg1 == One)) { PCSA = PADC /* \_SB_.RXRA.PADC */ PADC = Zero } ElseIf ((PCSA != Zero)) { PADC = PCSA /* \_SB_.PCSA */ } RXPO = Arg1 } Method (SGDO, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { Offset (0x01), TEMP, 2, Offset (0x04) } TEMP = 0x02 } Method (GGDV, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { Offset (0x01), TEMP, 2, Offset (0x04) } If ((TEMP == One)) { Return (One) } ElseIf ((TEMP == 0x02)) { Return (Zero) } Else { Return (One) } } Method (GGIV, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { , 1, TEMP, 1, Offset (0x04) } Return (TEMP) /* \_SB_.GGIV.TEMP */ } Method (GGOV, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { TEMP, 1, Offset (0x04) } Return (TEMP) /* \_SB_.GGOV.TEMP */ } Method (SGOV, 2, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { TEMP, 1, Offset (0x04) } TEMP = Arg1 } Method (GGII, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { , 23, TEMP, 1, Offset (0x04) } Return (TEMP) /* \_SB_.GGII.TEMP */ } Method (SGII, 2, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { , 23, TEMP, 1, Offset (0x04) } TEMP = Arg1 } Method (GPMV, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { , 10, TEMP, 3, Offset (0x04) } Return (TEMP) /* \_SB_.GPMV.TEMP */ } Method (SPMV, 2, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { , 10, TEMP, 3, Offset (0x04) } TEMP = Arg1 } Method (GHPO, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local3 = (GADR (Local0, 0x03) + ((Local1 >> 0x05) * 0x04)) Local4 = (Local1 & 0x1F) OperationRegion (PREG, SystemMemory, Local3, 0x04) Field (PREG, AnyAcc, NoLock, Preserve) { TEMP, 32 } Return (((TEMP >> Local4) & One)) } Method (SHPO, 2, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local3 = (GADR (Local0, 0x03) + ((Local1 >> 0x05) * 0x04)) Local4 = (Local1 & 0x1F) OperationRegion (PREG, SystemMemory, Local3, 0x04) Field (PREG, AnyAcc, NoLock, Preserve) { TEMP, 32 } If (Arg1) { TEMP |= (One << Local4) } Else { TEMP &= ~(One << Local4) } } Method (GGPO, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x04) + ((Local1 >> 0x03) * 0x04 )) OperationRegion (PREG, SystemMemory, Local2, 0x04) Field (PREG, AnyAcc, NoLock, Preserve) { TEMP, 32 } Return (((TEMP >> ((Local1 & 0x07) * 0x04)) & 0x03)) } Method (SGRA, 2, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { , 20, TEMP, 1, Offset (0x04) } TEMP = Arg1 } Method (SGWP, 2, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = ((GADR (Local0, 0x02) + (Local1 * 0x10)) + 0x04) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { , 10, TEMP, 4, Offset (0x04) } TEMP = Arg1 } Method (CAGS, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local4 = (Local1 >> 0x05) If (!((((GEI0 == Local0) && (GED0 == Local4)) | ( (GEI1 == Local0) && (GED1 == Local4))) | ((GEI2 == Local0) && (GED2 == Local4)))) { Local3 = GADR (Local0, 0x05) If (((Local3 & 0xFFFF) != 0xFFFF)) { OperationRegion (GPPX, SystemMemory, (Local3 + (Local4 * 0x04)), 0x04) Field (GPPX, AnyAcc, NoLock, Preserve) { STSX, 32 } Local2 = (One << (Local1 % 0x20)) STSX = Local2 } } } Method (ISME, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local4 = (Local1 >> 0x05) If (!!((((GEI0 == Local0) && (GED0 == Local4)) | ((GEI1 == Local0) && (GED1 == Local4))) | ((GEI2 == Local0) && ( GED2 == Local4)))) { Return (Zero) } If (((GADR (Local0, 0x05) & 0xFFFF) == 0xFFFF)) { Return (Zero) } Local2 = (GADR (Local0, 0x05) + (Local4 * 0x04)) Local3 = (Local1 & 0x1F) OperationRegion (GPPX, SystemMemory, Local2, 0x24) Field (GPPX, AnyAcc, NoLock, Preserve) { STSX, 32, Offset (0x20), GENX, 32 } Return ((((STSX & GENX) >> Local3) & One)) } Method (DIPI, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { , 9, RDIS, 1, , 15, RCFG, 2, Offset (0x04) } If ((RCFG != 0x02)) { DerefOf (RXEV [Local0]) [Local1] = RCFG /* \_SB_.DIPI.RCFG */ RCFG = 0x02 RDIS = One } } Method (UIPI, 1, Serialized) { Local0 = GGRP (Arg0) Local1 = GNMB (Arg0) Local2 = (GADR (Local0, 0x02) + (Local1 * 0x10)) OperationRegion (PDW0, SystemMemory, Local2, 0x04) Field (PDW0, AnyAcc, NoLock, Preserve) { , 9, RDIS, 1, , 15, RCFG, 2, Offset (0x04) } Local3 = DerefOf (DerefOf (RXEV [Local0]) [Local1]) If ((Local3 != 0x02)) { RDIS = Zero RCFG = Local3 } } } Name (PCHH, One) Name (PCHL, 0x02) Scope (\) { OperationRegion (IO_T, SystemIO, 0x0800, 0x10) Field (IO_T, ByteAcc, NoLock, Preserve) { TRPI, 16, Offset (0x04), Offset (0x06), Offset (0x08), TRP0, 8, Offset (0x0A), Offset (0x0B), Offset (0x0C), Offset (0x0D), Offset (0x0E), Offset (0x0F), Offset (0x10) } OperationRegion (IO_D, SystemIO, 0x0810, 0x04) Field (IO_D, ByteAcc, NoLock, Preserve) { TRPD, 8 } OperationRegion (IO_H, SystemIO, 0x1000, 0x04) Field (IO_H, ByteAcc, NoLock, Preserve) { TRPH, 8 } Method (IPCW, 7, Serialized) { IBF0 = Arg3 IBF1 = Arg4 IBF2 = Arg5 IBF3 = Arg6 Local0 = Arg0 Local0 += (Arg1 << 0x0C) Local0 += (Arg2 << 0x10) CMDR = Local0 Local0 = Zero While (One) { If ((!IBSY || (IERR == One))) { Break } If ((Local0 > 0x0A)) { Break } Sleep (One) Local0++ } If ((IERR == One)){} } Method (SPCO, 2, Serialized) { Local0 = (One << Arg0) Local1 = (Arg1 << Arg0) IPCW (0xA8, Zero, 0x08, Local0, Local1, Zero, Zero) } Method (PCRR, 2, Serialized) { Local0 = ((Arg0 << 0x10) + Arg1) Local0 += SBRG OperationRegion (PCR0, SystemMemory, Local0, 0x04) Field (PCR0, DWordAcc, Lock, Preserve) { DAT0, 32 } Return (DAT0) /* \PCRR.DAT0 */ } Method (PCRW, 3, Serialized) { Local0 = ((Arg0 << 0x10) + Arg1) Local0 += SBRG OperationRegion (PCR0, SystemMemory, Local0, 0x04) Field (PCR0, DWordAcc, Lock, Preserve) { DAT0, 32 } DAT0 = Arg2 OperationRegion (PCR1, SystemMemory, (SBRG + 0x00C73418), 0x04) Field (PCR1, DWordAcc, Lock, Preserve) { DAT1, 32 } Local1 = DAT1 /* \PCRW.DAT1 */ } Method (PCRO, 3, Serialized) { Local0 = PCRR (Arg0, Arg1) Local1 = (Local0 | Arg2) PCRW (Arg0, Arg1, Local1) } Method (PCRA, 3, Serialized) { Local0 = PCRR (Arg0, Arg1) Local1 = (Local0 & Arg2) PCRW (Arg0, Arg1, Local1) } Method (PCAO, 4, Serialized) { Local0 = PCRR (Arg0, Arg1) Local1 = ((Local0 & Arg2) | Arg3) PCRW (Arg0, Arg1, Local1) } Name (TCBV, Zero) Method (TCBS, 0, NotSerialized) { If ((TCBV == Zero)) { Local0 = PCRR (0x88, 0x2778) TCBV = (Local0 & 0xFFE0) } Return (TCBV) /* \TCBV */ } Name (S0ID, Zero) OperationRegion (TCBA, SystemIO, TCBS (), 0x10) Field (TCBA, ByteAcc, NoLock, Preserve) { Offset (0x04), , 9, CPSC, 1 } OperationRegion (PMST, SystemMemory, 0xFE000000, 0x1EFF) Field (PMST, DWordAcc, NoLock, Preserve) { CMDR, 32, IBSY, 1, IERR, 1, , 1, , 1, Offset (0x05), Offset (0x06), IERC, 8, Offset (0x08), Offset (0x80), IBF0, 32, IBF1, 32, IBF2, 32, IBF3, 32, IRBF, 32 } Field (PMST, DWordAcc, NoLock, Preserve) { Offset (0x1B1C), , 12, NPKA, 1, LVME, 1 } Field (PMST, DWordAcc, NoLock, Preserve) { Offset (0x1B4C), , 22, ADSP, 1 } Field (PMST, DWordAcc, NoLock, Preserve) { Offset (0x1E4C), , 19, BT19, 1 } } Scope (_SB.PCI0) { Device (PPMC) { Name (_ADR, 0x001F0002) // _ADR: Address OperationRegion (PMCB, PCI_Config, Zero, 0x0100) Field (PMCB, AnyAcc, NoLock, Preserve) { VDID, 32, Offset (0x40), Offset (0x41), ACBA, 8, Offset (0x48), , 12, PWBA, 20 } } } Scope (_GPE) { Method (_L67, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { \_SB.PCI0.SBUS.HSTS = 0x20 } Method (_L66, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { If ((\_SB.PCI0.IGPU.GSSE && !GSMI)) { \_SB.PCI0.IGPU.GSCI () } Else { \_SB.PCI0.IGPU.GEFC = Zero SCIS = One \_SB.PCI0.IGPU.GSSE = Zero \_SB.PCI0.IGPU.SCIE = Zero } } Method (_L69, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { Notify (\_SB.PCI0.PEG0, 0x02) // Device Wake Notify (\_SB.PCI0.RP01, 0x02) // Device Wake Notify (\_SB.PCI0.RP17, 0x02) // Device Wake \_SB.PCI0.TGPE () Notify (\_SB.PCI0.RP01.ARPT, 0x02) // Device Wake } Method (_L6D, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { Notify (\_SB.PWRB, 0x02) // Device Wake Notify (\_SB.PCI0.XHC1, 0x02) // Device Wake If (OSDW ()){} } } Method (DTGP, 5, NotSerialized) { If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */)) { If ((Arg1 == One)) { If ((Arg2 == Zero)) { Arg4 = Buffer (One) { 0x03 // . } Return (One) } If ((Arg2 == One)) { Return (One) } } } Arg4 = Buffer (One) { 0x00 // . } Return (Zero) } Name (_S0, Package (0x03) // _S0_: S0 System State { Zero, Zero, Zero }) Name (_S4, Package (0x03) // _S4_: S4 System State { 0x06, 0x06, Zero }) Name (_S5, Package (0x03) // _S5_: S5 System State { 0x07, 0x07, Zero }) Method (_TTS, 1, NotSerialized) // _TTS: Transition To State { SLTP = Arg0 } Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep { P80D = Zero P8XH (Zero, Arg0) If (!OSDW ()) { \_SB.PCI0.LPCB.EC.EWBT = One \_SB.PCI0.LPCB.EC.EWLN = One If ((Arg0 == 0x03)) { \_SB.PCI0.URT0.BLTH.BTLP (One) Sleep (0x03E8) \_SB.PCI0.LPCB.EC.EWPM = One \_SB.PCI0.LPCB.EC.EWDK = One } \_SB.PCI0.LPCB.EC.EWEP = Zero } If ((!OSDW () && (Arg0 >= 0x04))) { \_SB.PCI0.LPCB.EC.EWLO = Zero } If ((Arg0 >= 0x05)) { \_SB.PCI0.PEG1.UPSB.LSTX (Zero, One) \_SB.PCI0.PEG1.UPSB.LSTX (One, One) \_SB.PCI0.PEG2.UPSB.LSTX (Zero, One) \_SB.PCI0.PEG2.UPSB.LSTX (One, One) } If ((Arg0 == 0x04)) { \_SB.PCI0.LPCB.EC.EWTB = Zero } \_SB.PCI0.LPCB.EC.ECSS = Arg0 } Method (_WAK, 1, NotSerialized) // _WAK: Wake { P8XH (Zero, Zero) \_SB.PCI0.LPCB.EC.ECSS = Zero If (!OSDW ()) { \_SB.PCI0.PEG1.DTFP () \_SB.PCI0.PEG2.DTFP () Sleep (0x012C) If (TBG1) { \_SB.PCI0.PEG1.ICMB (Arg0) } If (TBG2) { \_SB.PCI0.PEG2.ICMB (Arg0) } If ((Arg0 == 0x03)) { \_SB.PCI0.URT0.BLTH.BTLP (Zero) } } If (OSDW ()){} Else { } LIDS = \_SB.PCI0.LPCB.EC.ELSW \_SB.PCI0.IGPU.CLID = \_SB.PCI0.LPCB.EC.ELSW PWRS = \_SB.PCI0.LPCB.EC.EACP If (!OSDW ()) { Notify (\_SB.PWRB, 0x02) // Device Wake } \_SB.PCI0.LPCB.EC.LWE0 = Zero \_SB.PCI0.LPCB.EC.LWE1 = Zero \_SB.PCI0.LPCB.EC.LWE2 = Zero \_SB.PCI0.LPCB.EC.LWE3 = Zero \_SB.PCI0.LPCB.EC.LWE4 = Zero \_SB.PCI0.LPCB.EC.LWE5 = Zero \_SB.PCI0.LPCB.EC.LWE6 = Zero \_SB.PCI0.LPCB.EC.LWE7 = Zero PNOT () Return (Package (0x02) { Zero, Zero }) } }