/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 2014 Google Inc. * Copyright (C) 2016 Intel Corporation. */ External (\_PR.CP00._PSS, PkgObj) External (\_PR.CP00._TSS, PkgObj) External (\_PR.CP00._TPC, MethodObj) External (\_PR.CP00._PTC, PkgObj) External (\_PR.CP00._TSD, PkgObj) External (\_SB.MPDL, IntObj) Device (DPTF_CPU_DEVICE) { Name(_ADR, DPTF_CPU_ADDR) Method (_STA) { If (LEqual (\DPTE, One)) { Return (0xF) } Else { Return (0x0) } } /* * Processor Throttling Controls */ Method (_TSS) { If (CondRefOf (\_PR.CP00._TSS)) { Return (\_PR.CP00._TSS) } Else { Return (Package () { Package () { 0, 0, 0, 0, 0 } }) } } Method (_TPC) { If (CondRefOf (\_PR.CP00._TPC)) { Return (\_PR.CP00._TPC) } Else { Return (0) } } Method (_PTC) { If (CondRefOf (\_PR.CP00._PTC)) { Return (\_PR.CP00._PTC) } Else { Return (Package () { Buffer () { 0 }, Buffer () { 0 } }) } } Method (_TSD) { If (CondRefOf (\_PR.CP00._TSD)) { Return (\_PR.CP00._TSD) } Else { Return (Package () { Package () { 5, 0, 0, 0, 0 } }) } } Method (_TDL) { If (CondRefOf (\_PR.CP00._TSS)) { Store (SizeOf (\_PR.CP00._TSS), Local0) Decrement (Local0) Return (Local0) } Else { Return (0) } } /* * Processor Performance Control */ Method (_PPC) { Return (0) } Method (SPPC, 1) { Store (Arg0, \PPCM) /* Notify OS to re-read _PPC limit on each CPU */ \PPCN () } Method (_PSS) { If (CondRefOf (\_PR.CP00._PSS)) { Return (\_PR.CP00._PSS) } Else { Return (Package () { Package () { 0, 0, 0, 0, 0, 0 } }) } } Method (_PDL) { /* Check for mainboard specific _PDL override */ If (CondRefOf (\_SB.MPDL)) { Return (\_SB.MPDL) } ElseIf (CondRefOf (\_PR.CP00._PSS)) { Store (SizeOf (\_PR.CP00._PSS), Local0) Decrement (Local0) Return (Local0) } Else { Return (0) } } /* Return PPCC table defined by mainboard */ Method (PPCC) { Return (\_SB.MPPC) } #ifdef DPTF_CPU_CRITICAL Method (_CRT) { Return (\_SB.DPTF.CTOK (DPTF_CPU_CRITICAL)) } #endif #ifdef DPTF_CPU_PASSIVE Method (_PSV) { Return (\_SB.DPTF.CTOK (DPTF_CPU_PASSIVE)) } #endif #ifdef DPTF_CPU_ACTIVE_AC0 Method (_AC0) { Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC0)) } #endif #ifdef DPTF_CPU_ACTIVE_AC1 Method (_AC1) { Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC1)) } #endif #ifdef DPTF_CPU_ACTIVE_AC2 Method (_AC2) { Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC2)) } #endif #ifdef DPTF_CPU_ACTIVE_AC3 Method (_AC3) { Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC3)) } #endif #ifdef DPTF_CPU_ACTIVE_AC4 Method (_AC4) { Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC4)) } #endif }