/* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20190703 (64-bit version) * Copyright (c) 2000 - 2019 Intel Corporation * * Disassembling to symbolic ASL+ operators * * Disassembly of iASLsYIVgA.aml, Tue Aug 18 16:45:08 2020 * * Original Table Header: * Signature "SSDT" * Length 0x000025E4 (9700) * Revision 0x02 * Checksum 0xD9 * OEM ID "hack" * OEM Table ID "_8x0G2b" * OEM Revision 0x00000000 (0) * Compiler ID "INTL" * Compiler Version 0x20180427 (538444839) */ DefinitionBlock ("", "SSDT", 2, "hack", "_8x0G2b", 0x00000000) { External (_SB_.BAT0, DeviceObj) External (_SB_.BAT0._BIF, MethodObj) // 0 Arguments External (_SB_.BAT0._BST, MethodObj) // 0 Arguments External (_SB_.BAT0._HID, IntObj) External (_SB_.BAT0._STA, MethodObj) // 0 Arguments External (_SB_.BAT1, DeviceObj) External (_SB_.BAT1._BIF, MethodObj) // 0 Arguments External (_SB_.BAT1._BST, MethodObj) // 0 Arguments External (_SB_.BAT1._HID, IntObj) External (_SB_.BAT1._STA, MethodObj) // 0 Arguments External (_SB_.NBST, PkgObj) External (_SB_.NDBS, PkgObj) External (_SB_.PCI0, DeviceObj) External (_SB_.PCI0.EH01, DeviceObj) External (_SB_.PCI0.HDAU, DeviceObj) External (_SB_.PCI0.HDEF, DeviceObj) External (_SB_.PCI0.LANC, DeviceObj) External (_SB_.PCI0.LANC.XPRW, MethodObj) // 0 Arguments External (_SB_.PCI0.LPCB, DeviceObj) External (_SB_.PCI0.LPCB.EC__, DeviceObj) External (_SB_.PCI0.LPCB.EC__.BATN, FieldUnitObj) External (_SB_.PCI0.LPCB.EC__.BATP, FieldUnitObj) External (_SB_.PCI0.LPCB.EC__.BRCC, FieldUnitObj) External (_SB_.PCI0.LPCB.EC__.BRCV, FieldUnitObj) External (_SB_.PCI0.LPCB.EC__.BSEL, FieldUnitObj) External (_SB_.PCI0.LPCB.EC__.BST_, FieldUnitObj) External (_SB_.PCI0.LPCB.EC__.BSTA, MethodObj) // 1 Arguments External (_SB_.PCI0.LPCB.EC__.BTDR, MethodObj) // 1 Arguments External (_SB_.PCI0.LPCB.EC__.BTMX, MutexObj) External (_SB_.PCI0.LPCB.EC__.CRZN, FieldUnitObj) External (_SB_.PCI0.LPCB.EC__.ECMX, MutexObj) External (_SB_.PCI0.LPCB.EC__.ECRG, IntObj) External (_SB_.PCI0.LPCB.EC__.GACS, MethodObj) // 0 Arguments External (_SB_.PCI0.LPCB.EC__.GBMF, MethodObj) // 0 Arguments External (_SB_.PCI0.LPCB.EC__.GBSS, MethodObj) // 2 Arguments External (_SB_.PCI0.LPCB.EC__.GCTL, MethodObj) // 1 Arguments External (_SB_.PCI0.LPCB.EC__.GDCH, MethodObj) // 1 Arguments External (_SB_.PCI0.LPCB.EC__.GDNM, MethodObj) // 1 Arguments External (_SB_.PCI0.LPCB.EC__.IDIS, FieldUnitObj) External (_SB_.PCI0.LPCB.EC__.INAC, FieldUnitObj) External (_SB_.PCI0.LPCB.EC__.INCH, FieldUnitObj) External (_SB_.PCI0.LPCB.EC__.ITL1, MethodObj) // 0 Arguments External (_SB_.PCI0.LPCB.EC__.NDCB, IntObj) External (_SB_.PCI0.LPCB.EC__.NGBF, IntObj) External (_SB_.PCI0.LPCB.EC__.NGBT, IntObj) External (_SB_.PCI0.LPCB.EC__.NLB1, IntObj) External (_SB_.PCI0.LPCB.EC__.NLB2, IntObj) External (_SB_.PCI0.LPCB.EC__.PSSB, FieldUnitObj) External (_SB_.PCI0.LPCB.EC__.TEMP, FieldUnitObj) External (_SB_.PCI0.LPCB.EC__.XREG, MethodObj) // 2 Arguments External (_SB_.PCI0.LPCB.PS2K, DeviceObj) External (_SB_.PCI0.RP05.DGFX, DeviceObj) External (_SB_.PCI0.RP05.DGFX._OFF, MethodObj) // 0 Arguments External (_SB_.PCI0.RP05.DGFX._ON_, MethodObj) // 0 Arguments External (_SB_.PCI0.RP05.DGFX.XDSS, MethodObj) // 1 Arguments External (_SB_.PCI0.XHC_, DeviceObj) External (_SB_.PCI0.XHC_.PMEE, FieldUnitObj) External (BRCC, IntObj) External (BRCV, IntObj) External (BST_, IntObj) External (ECRG, IntObj) External (NDBS, IntObj) External (NGBF, IntObj) External (NGBT, IntObj) External (NLB1, IntObj) External (NLB2, IntObj) External (PRDT, FieldUnitObj) External (XPRW, MethodObj) // 2 Arguments External (ZPTS, MethodObj) // 1 Arguments External (ZWAK, MethodObj) // 1 Arguments Device (RMCF) { Name (_ADR, Zero) // _ADR: Address Method (HELP, 0, NotSerialized) { Debug = "IGPI overrides ig-platform-id or snb-platform-id" Debug = "DGPU indicates whether discrete GPU should be disabled. bit0: startup, bit1: _PTS/_WAK" Debug = "BKLT indicates the type of backlight control. 0: IntelBacklight, 1: AppleBacklight" Debug = "LMAX indicates max for IGPU PWM backlight. Ones: Use default, other values must match framebuffer" Debug = "SHUT enables shutdown fix. 1: disables _PTS code when Arg0==5" Debug = "XPEE enables xHCI PMEE fix. 1: disable xHCI PMEE on _PTS when Arg0==5, 0: do not mess with XHC.PMEE" } Name (IGPI, Zero) Name (LMAX, Ones) Name (BUID, Zero) Name (DGPU, 0x03) Name (BKLT, One) Name (SHUT, Zero) Name (XPEE, One) } Scope (_SB.PCI0.RP05.DGFX) { Method (RDSS, 1, NotSerialized) { If ((\_SB.PCI0.LPCB.EC.ECRG && CondRefOf (^XDSS))) { XDSS (Arg0) } } } Scope (RMCF) { Method (RMOF, 0, NotSerialized) { If (CondRefOf (\_SB.PCI0.RP05.DGFX._OFF)) { \_SB.PCI0.RP05.DGFX._OFF () } } Method (RMON, 0, NotSerialized) { If (CondRefOf (\_SB.PCI0.RP05.DGFX._ON)) { \_SB.PCI0.RP05.DGFX._ON () } } Method (RDSS, 1, NotSerialized) { If (CondRefOf (\_SB.PCI0.RP05.DGFX.RDSS)) { \_SB.PCI0.RP05.DGFX.RDSS (Arg0) } } } Method (XOSI, 1, NotSerialized) { Local0 = Package (0x07) { If (_OSI ("Darwin")) { "Windows", "Windows 2001", "Windows 2001 SP2", "Windows 2006", "Windows 2006 SP1", "Windows 2006.1", "Windows 2009" } Return ((Ones != Match (Local0, MEQ, Arg0, MTR, Zero, Zero))) Return (_OSI (Arg0)) } Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep { If (((One == \RMCF.XPEE) && (0x05 == Arg0))) { If (CondRefOf (\_SB.PCI0.XHC.PMEE)) { \_SB.PCI0.XHC.PMEE = Zero } } If ((\RMCF.SHUT && (0x05 == Arg0))) { Return (Zero) } If ((\RMCF.DGPU & 0x02)) { \RMCF.RMON () } ZPTS (Arg0) } Method (_WAK, 1, NotSerialized) // _WAK: Wake { If (((Arg0 < One) || (Arg0 > 0x05))) { Arg0 = 0x03 } Local0 = ZWAK (Arg0) If ((\RMCF.DGPU & 0x02)) { \RMCF.RMOF () } Return (Local0) } Device (RMD1) { Name (_HID, "RMD10000") // _HID: Hardware ID Method (_INI, 0, NotSerialized) // _INI: Initialize { If ((\RMCF.DGPU & One)) { \RMCF.RMOF () } } } Scope (_SB.PCI0.LPCB.EC) { OperationRegion (ECR3, EmbeddedControl, Zero, 0xFF) Method (_REG, 2, NotSerialized) // _REG: Region Availability { XREG (Arg0, Arg1) If ((((0x03 == Arg0) && (One == Arg1)) && (\RMCF.DGPU & One ))) { \RMCF.RDSS (Zero) } } } Device (_SB.PCI0.SBUS.BUS0) { Name (_CID, "smbus") // _CID: Compatible ID Name (_ADR, Zero) // _ADR: Address Device (DVL0) { Name (_ADR, 0x57) // _ADR: Address Name (_CID, "diagsvault") // _CID: Compatible ID Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (!Arg2) { Return (Buffer (One) { 0x03 // . }) } Return (Package (0x02) { "address", 0x57 }) } } } Scope (_SB.PCI0.LPCB) { OperationRegion (RMP2, PCI_Config, 0x02, 0x02) Field (RMP2, AnyAcc, NoLock, Preserve) { LDID, 16 } Name (LPDL, Package (0x0D) { 0x8C46, 0x8C49, 0x8C4A, 0x8C4C, 0x8C4E, 0x8C4F, 0x8C50, 0x8C52, 0x8C54, 0x8C56, 0x8C5C, Zero, Package (0x04) { "device-id", Buffer (0x04) { 0x4B, 0x8C, 0x00, 0x00 // K... }, "compatible", Buffer (0x0D) { "pci8086,8c4b" } } }) Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (!Arg2) { Return (Buffer (One) { 0x03 // . }) } Local0 = Match (LPDL, MEQ, LDID, MTR, Zero, Zero) If ((Ones != Local0)) { Local0 = Match (LPDL, MEQ, Zero, MTR, Zero, (Local0 + One)) Return (DerefOf (LPDL [(Local0 + One)])) } Return (Package (0x00){}) } } Method (GPRW, 2, NotSerialized) { If ((0x6D == Arg0)) { Return (Package (0x02) { 0x6D, Zero }) } If ((0x0D == Arg0)) { Return (Package (0x02) { 0x0D, Zero }) } Return (XPRW (Arg0, Arg1)) } Method (UPRW, 2, NotSerialized) { If ((0x6D == Arg0)) { Return (Package (0x02) { 0x6D, Zero }) } If ((0x0D == Arg0)) { Return (Package (0x02) { 0x0D, Zero }) } Return (XPRW (Arg0, Arg1)) } Method (_SB.PCI0.LANC._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Local0 = \_SB.PCI0.LANC.XPRW () Local0 [One] = Zero Return (Local0) } Scope (_SB) { Device (BATC) { Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Method (_INI, 0, NotSerialized) // _INI: Initialize { ^^BAT0._HID = Zero ^^BAT1._HID = Zero } Method (CVWA, 3, NotSerialized) { If (Arg2) { Arg0 = ((Arg0 * 0x03E8) / Arg1) } Return (Arg0) } Method (_STA, 0, NotSerialized) // _STA: Status { Return ((^^BAT0._STA () | ^^BAT1._STA ())) } Name (B0CO, Zero) Name (B1CO, Zero) Name (B0DV, Zero) Name (B1DV, Zero) Method (_BST, 0, NotSerialized) // _BST: Battery Status { Local0 = ^^BAT0._BST () Local2 = ^^BAT0._STA () If ((0x1F == Local2)) { Local4 = DerefOf (Local0 [0x02]) If ((!Local4 || (Ones == Local4))) { Local2 = Zero } } Local1 = ^^BAT1._BST () Local3 = ^^BAT1._STA () If ((0x1F == Local3)) { Local4 = DerefOf (Local1 [0x02]) If ((!Local4 || (Ones == Local4))) { Local3 = Zero } } If (((0x1F != Local2) && (0x1F == Local3))) { Local0 = Local1 Local2 = Local3 Local3 = Zero } If (((0x1F == Local2) && (0x1F == Local3))) { Local4 = DerefOf (Local0 [Zero]) Local5 = DerefOf (Local1 [Zero]) If (((Local4 == 0x02) || (Local5 == 0x02))) { Local0 [Zero] = 0x02 } ElseIf (((Local4 == One) || (Local5 == One))) { Local0 [Zero] = One } ElseIf (((Local4 == 0x05) || (Local5 == 0x05))) { Local0 [Zero] = 0x05 } ElseIf (((Local4 == 0x04) || (Local5 == 0x04))) { Local0 [Zero] = 0x04 } Local0 [One] = (CVWA (DerefOf (Local0 [One]), B0DV, B0CO) + CVWA (DerefOf (Local1 [One]), B1DV, B1CO)) Local0 [0x02] = (CVWA (DerefOf (Local0 [0x02]), B0DV, B0CO) + CVWA (DerefOf (Local1 [0x02]), B1DV, B1CO)) Local0 [0x03] = ((DerefOf (Local0 [0x03]) + DerefOf ( Local1 [0x03])) / 0x02) } Return (Local0) } Method (_BIF, 0, NotSerialized) // _BIF: Battery Information { Local0 = ^^BAT0._BIF () Local2 = ^^BAT0._STA () If ((0x1F == Local2)) { Local4 = DerefOf (Local0 [One]) If ((!Local4 || (Ones == Local4))) { Local2 = Zero } Local4 = DerefOf (Local0 [0x02]) If ((!Local4 || (Ones == Local4))) { Local2 = Zero } Local4 = DerefOf (Local0 [0x04]) If ((!Local4 || (Ones == Local4))) { Local2 = Zero } } Local1 = ^^BAT1._BIF () Local3 = ^^BAT1._STA () If ((0x1F == Local3)) { Local4 = DerefOf (Local1 [One]) If ((!Local4 || (Ones == Local4))) { Local3 = Zero } Local4 = DerefOf (Local1 [0x02]) If ((!Local4 || (Ones == Local4))) { Local3 = Zero } Local4 = DerefOf (Local1 [0x04]) If ((!Local4 || (Ones == Local4))) { Local3 = Zero } } If (((0x1F != Local2) && (0x1F == Local3))) { Local0 = Local1 Local2 = Local3 Local3 = Zero } If (((0x1F == Local2) && (0x1F == Local3))) { B0CO = !DerefOf (Local0 [Zero]) B1CO = !DerefOf (Local1 [Zero]) Local0 [Zero] = One B0DV = DerefOf (Local0 [0x04]) B1DV = DerefOf (Local1 [0x04]) Local0 [One] = (CVWA (DerefOf (Local0 [One]), B0DV, B0CO) + CVWA (DerefOf (Local1 [One]), B1DV, B1CO)) Local0 [0x02] = (CVWA (DerefOf (Local0 [0x02]), B0DV, B0CO) + CVWA (DerefOf (Local1 [0x02]), B1DV, B1CO)) Local0 [0x04] = ((B0DV + B1DV) / 0x02) Local0 [0x05] = (CVWA (DerefOf (Local0 [0x05]), B0DV, B0CO) + CVWA (DerefOf (Local1 [0x05]), B1DV, B1CO)) Local0 [0x06] = (CVWA (DerefOf (Local0 [0x06]), B0DV, B0CO) + CVWA (DerefOf (Local1 [0x06]), B1DV, B1CO)) } Return (Local0) } } } Method (_SB.PCI0.HDEF._DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (!Arg2) { Return (Buffer (One) { 0x03 // . }) } Return (Package (0x06) { "layout-id", Buffer (0x04) { 0x04, 0x00, 0x00, 0x00 // .... }, "hda-gfx", Buffer (0x0A) { "onboard-1" }, "PinConfigurations", Buffer (Zero){} }) } Name (_SB.PCI0.HDEF.RMCF, Package (0x02) { "CodecCommander", Package (0x04) { "Version", 0x00020600, "10ec_0280", Package (0x02) { "Custom Commands", Package (0x03) { Package (0x00){}, Package (0x08) { "Command", Buffer (0x04) { 0x01, 0xA7, 0x07, 0x25 // ...% }, "On Init", ">y", "On Sleep", ">n", "On Wake", ">y" }, Package (0x08) { "Command", Buffer (0x04) { 0x01, 0x57, 0x08, 0x83 // .W.. }, "On Init", ">y", "On Sleep", ">n", "On Wake", ">y" } } } } }) Method (_SB.PCI0.HDAU._DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (!Arg2) { Return (Buffer (One) { 0x03 // . }) } Return (Package (0x04) { "layout-id", Buffer (0x04) { 0x04, 0x00, 0x00, 0x00 // .... }, "hda-gfx", Buffer (0x0A) { "onboard-1" } }) } Scope (\_SB.PCI0.LPCB.PS2K) { Name (RMCF, Package (0x02) { "Synaptics TouchPad", Package (0x02) { "DynamicEWMode", ">y" } }) } Scope (\_SB.PCI0.LPCB.PS2K) { Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (!Arg2) { Return (Buffer (One) { 0x03 // . }) } Return (Package (0x04) { "RM,oem-id", "HPQOEM", "RM,oem-table-id", "ProBook-87" }) } } Device (UIAC) { Name (_HID, "UIA00000") // _HID: Hardware ID Name (RMCF, Package (0x04) { "8086_9cb1", Package (0x02) { "ports", Package (0x10) { "HS01", Package (0x04) { "UsbConnector", 0x03, "port", Buffer (0x04) { 0x01, 0x00, 0x00, 0x00 // .... } }, "HS02", Package (0x04) { "UsbConnector", Zero, "port", Buffer (0x04) { 0x02, 0x00, 0x00, 0x00 // .... } }, "HS03", Package (0x04) { "UsbConnector", 0xFF, "port", Buffer (0x04) { 0x03, 0x00, 0x00, 0x00 // .... } }, "HS04", Package (0x04) { "UsbConnector", 0xFF, "port", Buffer (0x04) { 0x04, 0x00, 0x00, 0x00 // .... } }, "HS07", Package (0x04) { "UsbConnector", 0xFF, "port", Buffer (0x04) { 0x07, 0x00, 0x00, 0x00 // .... } }, "SS01", Package (0x04) { "UsbConnector", 0x03, "port", Buffer (0x04) { 0x0C, 0x00, 0x00, 0x00 // .... } }, "SS02", Package (0x04) { "UsbConnector", 0x03, "port", Buffer (0x04) { 0x0D, 0x00, 0x00, 0x00 // .... } }, "SS03", Package (0x04) { "UsbConnector", 0xFF, "port", Buffer (0x04) { 0x0E, 0x00, 0x00, 0x00 // .... } } } }, "8086_9xxx", Package (0x02) { "ports", Package (0x0A) { "HS02", Package (0x04) { "UsbConnector", Zero, "port", Buffer (0x04) { 0x02, 0x00, 0x00, 0x00 // .... } }, "HS03", Package (0x04) { "UsbConnector", 0xFF, "port", Buffer (0x04) { 0x03, 0x00, 0x00, 0x00 // .... } }, "HS04", Package (0x04) { "UsbConnector", 0xFF, "port", Buffer (0x04) { 0x04, 0x00, 0x00, 0x00 // .... } }, "HS07", Package (0x04) { "UsbConnector", 0xFF, "port", Buffer (0x04) { 0x07, 0x00, 0x00, 0x00 // .... } }, "SS04", Package (0x04) { "UsbConnector", 0xFF, "port", Buffer (0x04) { 0x0D, 0x00, 0x00, 0x00 // .... } } } } }) } Method (_SB.PCI0.XHC._DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (!Arg2) { Return (Buffer (One) { 0x03 // . }) } Local0 = Package (0x0E) { "RM,disable_FakePCIID", Zero, "subsystem-id", Buffer (0x04) { 0x70, 0x72, 0x00, 0x00 // pr.. }, "subsystem-vendor-id", Buffer (0x04) { 0x86, 0x80, 0x00, 0x00 // .... }, "AAPL,current-available", Buffer (0x04) { 0x34, 0x08, 0x00, 0x00 // 4... }, "AAPL,current-extra", Buffer (0x04) { 0x98, 0x08, 0x00, 0x00 // .... }, "AAPL,current-extra-in-sleep", Buffer (0x04) { 0x40, 0x06, 0x00, 0x00 // @... }, "AAPL,max-port-current-in-sleep", Buffer (0x04) { 0x34, 0x08, 0x00, 0x00 // 4... } } If (CondRefOf (\_SB.PCI0.RMD2)) { Local0 [One] = One } Return (Local0) } Scope (\_SB.PCI0.LPCB.EC) { OperationRegion (ECR2, EmbeddedControl, Zero, 0xFF) Field (ECR2, ByteAcc, NoLock, Preserve) { Offset (0x87), Offset (0x88), Offset (0x89), BDC0, 8, BDC1, 8, Offset (0x8D), BFC0, 8, BFC1, 8, RTE0, 8, RTE1, 8, Offset (0x92), BME0, 8, BME1, 8, Offset (0x95), BDV0, 8, BDV1, 8, BCX0, 8, BCX1, 8, Offset (0x9B), ATE0, 8, ATE1, 8, BPR0, 8, BPR1, 8, BCR0, 8, BCR1, 8, BRC0, 8, BRC1, 8, BCC0, 8, BCC1, 8, BPV0, 8, BPV1, 8, BCA0, 8, BCA1, 8, BCB0, 8, BCB1, 8, BCP0, 8, BCP1, 8, Offset (0xAF), ATF0, 8, ATF1, 8, Offset (0xB3), AXC0, 8, AXC1, 8, Offset (0xB6), , 1, , 1, , 2, Offset (0xB7), BST0, 8, BST1, 8, Offset (0xC9), BSN0, 8, BSN1, 8, BDA0, 8, BDA1, 8, Offset (0xE0), CBT0, 8, CBT1, 8 } Method (ITLB, 0, NotSerialized) { ITL1 () } Method (BTIF, 1, Serialized) { Local7 = (One << Arg0) BTDR (One) If ((BSTA (Local7) == 0x0F)) { Return (0xFF) } Acquire (BTMX, 0xFFFF) Local0 = NGBF /* External reference */ Release (BTMX) If (((Local0 & Local7) == Zero)) { Return (Zero) } NBST [Arg0] = NDBS /* External reference */ Acquire (BTMX, 0xFFFF) NGBT |= Local7 Release (BTMX) Acquire (ECMX, 0xFFFF) If (ECRG) { BSEL = Arg0 Local0 = B1B2 (BFC0, BFC1) DerefOf (NBTI [Arg0]) [One] = Local0 DerefOf (NBTI [Arg0]) [0x02] = Local0 DerefOf (NBTI [Arg0]) [0x04] = B1B2 (BDV0, BDV1) DerefOf (NBTI [Arg0]) [0x05] = NLB1 /* External reference */ DerefOf (NBTI [Arg0]) [0x06] = NLB2 /* External reference */ Local0 = B1B2 (BSN0, BSN1) Local1 = B1B2 (BDA0, BDA1) DerefOf (NBTI [Arg0]) [0x0D] = B1B2 (BCC0, BCC1) Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) \_SB.PCI0.LPCB.EC.CRZN = 0x05 Local2 = \_SB.PCI0.LPCB.EC.TEMP /* External reference */ Release (\_SB.PCI0.LPCB.EC.ECMX) Local2 = ((Local2 * 0x0A) + 0x0AAC) DerefOf (NBTI [Arg0]) [0x0E] = Local2 } Release (ECMX) Local2 = GBSS (Local0, Local1) DerefOf (NBTI [Arg0]) [0x0A] = Local2 Acquire (BTMX, 0xFFFF) NGBF &= ~Local7 Release (BTMX) Return (Zero) } Method (BTST, 2, Serialized) { Local7 = (One << Arg0) BTDR (One) If ((BSTA (Local7) == 0x0F)) { NBST [Arg0] = Package (0x04) { Zero, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF } Return (0xFF) } Acquire (BTMX, 0xFFFF) If (Arg1) { NGBT = 0xFF } Local0 = NGBT /* External reference */ Release (BTMX) If (((Local0 & Local7) == Zero)) { Return (Zero) } Acquire (ECMX, 0xFFFF) If (ECRG) { BSEL = Arg0 Local0 = BST /* External reference */ Local3 = B1B2 (BPR0, BPR1) DerefOf (NBST [Arg0]) [0x02] = B1B2 (BRC0, BRC1) DerefOf (NBST [Arg0]) [0x03] = B1B2 (BPV0, BPV1) } Release (ECMX) If ((GACS () == One)) { Local0 &= 0xFFFFFFFFFFFFFFFE } Else { Local0 &= 0xFFFFFFFFFFFFFFFD } If ((Local0 & One)) { Acquire (BTMX, 0xFFFF) NDCB = Local7 Release (BTMX) } DerefOf (NBST [Arg0]) [Zero] = Local0 If ((Local0 & One)) { If (((Local3 < 0x0190) || (Local3 > 0x1964))) { Local5 = DerefOf (DerefOf (NBST [Arg0]) [One]) If (((Local5 < 0x0190) || (Local5 > 0x1964))) { Local3 = 0x0D7A } Else { Local3 = Local5 } } } ElseIf (((Local0 & 0x02) == Zero)) { Local3 = Zero } DerefOf (NBST [Arg0]) [One] = Local3 Acquire (BTMX, 0xFFFF) NGBT &= ~Local7 Release (BTMX) Return (Zero) } Method (SBTC, 3, NotSerialized) { Debug = "Enter SetBatteryControl" Acquire (ECMX, 0xFFFF) If (ECRG) { Local0 = Arg2 Debug = Local0 Local4 = Package (0x02) { 0x06, Zero } Local1 = Zero Local2 = Zero Local1 = DerefOf (Local0 [0x10]) If ((Local1 == Zero)) { Debug = "battery 0" If ((BATP & One)) { Local2 = DerefOf (Local0 [0x11]) If ((Local2 == Zero)) { INCH = Zero IDIS = Zero INAC = Zero AXC0 = Zero AXC1 = Zero PSSB = One Local4 = Package (0x02) { Zero, Zero } } If ((Local2 == One)) { INAC = Zero INCH = 0x02 IDIS = One AXC0 = Zero AXC1 = Zero PSSB = Zero Local4 = Package (0x02) { Zero, Zero } } If ((Local2 == 0x02)) { INAC = One INCH = One IDIS = 0x02 PSSB = Zero Local4 = Package (0x02) { Zero, Zero } } If ((Local2 == 0x03)) { INCH = 0x02 IDIS = One INAC = Zero AXC0 = 0xFA AXC1 = Zero PSSB = Zero Local4 = Package (0x02) { Zero, Zero } } If ((Local2 == 0x04)) { AXC0 = 0xFA AXC1 = Zero Local4 = Package (0x02) { Zero, Zero } } If ((Local2 == 0x05)) { INAC = Zero INCH = 0x03 Local4 = Package (0x02) { Zero, Zero } } } Else { Local4 = Package (0x02) { 0x34, Zero } } } If ((Local1 == One)) { If ((BATP & 0x02)) { Debug = "battery 1" Local2 = DerefOf (Local0 [0x11]) If ((Local2 == Zero)) { INCH = Zero IDIS = Zero INAC = Zero AXC0 = Zero AXC1 = Zero PSSB = One Local4 = Package (0x02) { Zero, Zero } } If ((Local2 == One)) { INAC = Zero INCH = One IDIS = 0x02 AXC0 = Zero AXC1 = Zero PSSB = Zero Local4 = Package (0x02) { Zero, Zero } } If ((Local2 == 0x02)) { INAC = One INCH = 0x02 IDIS = One PSSB = Zero Local4 = Package (0x02) { Zero, Zero } } If ((Local2 == 0x03)) { INCH = One IDIS = 0x02 INAC = Zero AXC0 = 0xFA AXC1 = Zero PSSB = Zero Local4 = Package (0x02) { Zero, Zero } } If ((Local2 == 0x04)) { INCH = Zero IDIS = Zero INAC = Zero Local4 = Package (0x02) { Zero, Zero } } If ((Local2 == 0x05)) { INAC = Zero INCH = 0x03 Local4 = Package (0x02) { Zero, Zero } } } Else { Local4 = Package (0x02) { 0x34, Zero } } } } Release (ECMX) Return (Local4) } Method (GBTI, 1, NotSerialized) { Debug = "Enter getbattinfo" Acquire (ECMX, 0xFFFF) If (ECRG) { If ((BATP & (One << Arg0))) { BSEL = Arg0 Local0 = Package (0x03) { Zero, 0x6B, Buffer (0x6B){} } DerefOf (Local0 [0x02]) [Zero] = B1B2 (BDC0, BDC1) DerefOf (Local0 [0x02]) [One] = (B1B2 (BDC0, BDC1) >> 0x08) DerefOf (Local0 [0x02]) [0x02] = B1B2 (BFC0, BFC1) DerefOf (Local0 [0x02]) [0x03] = (B1B2 (BFC0, BFC1) >> 0x08) DerefOf (Local0 [0x02]) [0x04] = B1B2 (BRC0, BRC1) DerefOf (Local0 [0x02]) [0x05] = (B1B2 (BRC0, BRC1) >> 0x08) DerefOf (Local0 [0x02]) [0x06] = B1B2 (BME0, BME1) DerefOf (Local0 [0x02]) [0x07] = (B1B2 (BME0, BME1) >> 0x08) DerefOf (Local0 [0x02]) [0x08] = B1B2 (BCC0, BCC1) DerefOf (Local0 [0x02]) [0x09] = (B1B2 (BCC0, BCC1) >> 0x08) Local1 = B1B2 (CBT0, CBT1) Local1 -= 0x0AAC Divide (Local1, 0x0A, Local2, Local3) DerefOf (Local0 [0x02]) [0x0A] = Local3 DerefOf (Local0 [0x02]) [0x0B] = (Local3 >> 0x08 ) DerefOf (Local0 [0x02]) [0x0C] = B1B2 (BPV0, BPV1) DerefOf (Local0 [0x02]) [0x0D] = (B1B2 (BPV0, BPV1) >> 0x08) Local1 = B1B2 (BPR0, BPR1) If (Local1) { If ((B1B2 (BST0, BST1) & 0x40)) { Local1 = (~Local1 + One) Local1 &= 0xFFFF } } DerefOf (Local0 [0x02]) [0x0E] = Local1 DerefOf (Local0 [0x02]) [0x0F] = (Local1 >> 0x08 ) DerefOf (Local0 [0x02]) [0x10] = B1B2 (BDV0, BDV1) DerefOf (Local0 [0x02]) [0x11] = (B1B2 (BDV0, BDV1) >> 0x08) DerefOf (Local0 [0x02]) [0x12] = B1B2 (BST0, BST1) DerefOf (Local0 [0x02]) [0x13] = (B1B2 (BST0, BST1) >> 0x08) DerefOf (Local0 [0x02]) [0x14] = B1B2 (BCX0, BCX1) DerefOf (Local0 [0x02]) [0x15] = (B1B2 (BCX0, BCX1) >> 0x08) DerefOf (Local0 [0x02]) [0x16] = B1B2 (BCA0, BCA1) DerefOf (Local0 [0x02]) [0x17] = (B1B2 (BCA0, BCA1) >> 0x08) DerefOf (Local0 [0x02]) [0x18] = B1B2 (BCB0, BCB1) DerefOf (Local0 [0x02]) [0x19] = (B1B2 (BCB0, BCB1) >> 0x08) DerefOf (Local0 [0x02]) [0x1A] = B1B2 (BCP0, BCP1) DerefOf (Local0 [0x02]) [0x1B] = (B1B2 (BCP0, BCP1) >> 0x08) CreateField (DerefOf (Local0 [0x02]), 0xE0, 0x80, BTSN) BTSN = GBSS (B1B2 (BSN0, BSN1), B1B2 (BDA0, BDA1)) Local1 = GBMF () Local2 = SizeOf (Local1) CreateField (DerefOf (Local0 [0x02]), 0x0160, (Local2 * 0x08), BMAN) BMAN = Local1 Local2 += 0x2C CreateField (DerefOf (Local0 [0x02]), (Local2 * 0x08), 0x80, CLBL) CLBL = GCTL (Zero) Local2 += 0x11 CreateField (DerefOf (Local0 [0x02]), (Local2 * 0x08), 0x38, DNAM) DNAM = GDNM (Zero) Local2 += 0x07 CreateField (DerefOf (Local0 [0x02]), (Local2 * 0x08), 0x20, DCHE) DCHE = GDCH (Zero) Local2 += 0x04 CreateField (DerefOf (Local0 [0x02]), (Local2 * 0x08), 0x10, BMAC) BMAC = Zero Local2 += 0x02 CreateField (DerefOf (Local0 [0x02]), (Local2 * 0x08), 0x10, BMAD) BMAD = B1B2 (BDA0, BDA1) Local2 += 0x02 CreateField (DerefOf (Local0 [0x02]), (Local2 * 0x08), 0x10, BCCU) BCCU = BRCC /* External reference */ Local2 += 0x02 CreateField (DerefOf (Local0 [0x02]), (Local2 * 0x08), 0x10, BCVO) BCVO = BRCV /* External reference */ Local2 += 0x02 CreateField (DerefOf (Local0 [0x02]), (Local2 * 0x08), 0x10, BAVC) Local1 = B1B2 (BCR0, BCR1) If (Local1) { If ((B1B2 (BST0, BST1) & 0x40)) { Local1 = (~Local1 + One) Local1 &= 0xFFFF } } BAVC = Local1 Local2 += 0x02 CreateField (DerefOf (Local0 [0x02]), (Local2 * 0x08), 0x10, RTTE) RTTE = B1B2 (RTE0, RTE1) Local2 += 0x02 CreateField (DerefOf (Local0 [0x02]), (Local2 * 0x08), 0x10, ATTE) RTTE = B1B2 (ATE0, ATE1) Local2 += 0x02 CreateField (DerefOf (Local0 [0x02]), (Local2 * 0x08), 0x10, ATTF) RTTE = B1B2 (ATF0, ATF1) Local2 += 0x02 CreateField (DerefOf (Local0 [0x02]), (Local2 * 0x08), 0x08, NOBS) If (((PRDT == 0x50) || (PRDT == 0x53))) { NOBS = One } Else { NOBS = 0x02 } } Else { Local0 = Package (0x02) { 0x34, Zero } } } Else { Local0 = Package (0x02) { 0x0D, Zero } } Release (ECMX) Return (Local0) } Method (GBTC, 0, NotSerialized) { Debug = "Enter GetBatteryControl" Acquire (ECMX, 0xFFFF) If (ECRG) { Local0 = Package (0x03) { Zero, 0x04, Buffer (0x04){} } If ((BATP & One)) { BSEL = Zero DerefOf (Local0 [0x02]) [Zero] = Zero If ((((INAC == Zero) && (INCH == Zero)) && (IDIS == Zero))) { DerefOf (Local0 [0x02]) [Zero] = Zero } ElseIf (((((INAC == Zero) && (INCH == 0x02)) && ( IDIS == One)) && (B1B2 (AXC0, AXC1) == Zero))) { DerefOf (Local0 [0x02]) [Zero] = One } ElseIf (((INAC == One) && (IDIS == 0x02))) { DerefOf (Local0 [0x02]) [Zero] = 0x02 } ElseIf (((((INAC == Zero) && (INCH == 0x02)) && ( IDIS == One)) && (B1B2 (AXC0, AXC1) == 0xFA))) { DerefOf (Local0 [0x02]) [Zero] = 0x03 } ElseIf (((INAC == Zero) && (INCH == 0x03))) { DerefOf (Local0 [0x02]) [Zero] = 0x04 } } Else { DerefOf (Local0 [0x02]) [Zero] = 0xFF } If ((BATP & 0x02)) { BSEL = One DerefOf (Local0 [0x02]) [One] = Zero If ((((INAC == Zero) && (INCH == Zero)) && (IDIS == Zero))) { DerefOf (Local0 [0x02]) [One] = Zero } ElseIf (((((INAC == Zero) && (INCH == One)) && ( IDIS == 0x02)) && (B1B2 (AXC0, AXC1) == Zero))) { DerefOf (Local0 [0x02]) [One] = One } ElseIf (((INAC == One) && (IDIS == One))) { DerefOf (Local0 [0x02]) [One] = 0x02 } ElseIf (((((INAC == Zero) && (INCH == One)) && ( IDIS == 0x02)) && (B1B2 (AXC0, AXC1) == 0xFA))) { DerefOf (Local0 [0x02]) [One] = 0x03 } ElseIf (((INAC == Zero) && (INCH == 0x03))) { DerefOf (Local0 [0x02]) [One] = 0x04 } } Else { DerefOf (Local0 [0x02]) [One] = 0xFF } } Else { Local0 = Package (0x02) { 0x35, Zero } } Release (ECMX) Return (Local0) } } Scope (\_SB) { Name (NBTI, Package (0x02) { Package (0x0F) { One, 0xFFFFFFFF, 0xFFFFFFFF, One, 0xFFFFFFFF, Zero, Zero, 0x64, 0x64, "Primary", "100000", "LIon", "Hewlett-Packard", Zero, Zero }, Package (0x0F) { One, 0xFFFFFFFF, 0xFFFFFFFF, One, 0xFFFFFFFF, Zero, Zero, 0x64, 0x64, "Travel", "100000", "LIon", "Hewlett-Packard", Zero, Zero } }) } Method (B1B2, 2, NotSerialized) { Local0 = (Arg1 << 0x08) Local0 |= Arg0 Return (Local0) } Scope (_SB.PCI0.EH01) { OperationRegion (PSTS, PCI_Config, 0x54, 0x02) Field (PSTS, WordAcc, NoLock, Preserve) { PSTE, 2 } } Scope (_SB.PCI0.LPCB) { OperationRegion (RMLP, PCI_Config, 0xF0, 0x04) Field (RMLP, DWordAcc, NoLock, Preserve) { RCB1, 32 } OperationRegion (FDM1, SystemMemory, ((RCB1 & 0xFFFFFFFFFFFFC000) + 0x3418), 0x04) Field (FDM1, DWordAcc, NoLock, Preserve) { , 15, FDE1, 1 } } Scope (_SB.PCI0) { Device (RMD2) { Name (_HID, "RMD20000") // _HID: Hardware ID Method (_INI, 0, NotSerialized) // _INI: Initialize { ^^EH01.PSTE = 0x03 ^^LPCB.FDE1 = One } } } }