blob: f77d3538386fac856b93fc9177b4920b71a8fd31 [file] [log] [blame]
Simon Glassca75c3f2020-09-22 12:44:49 -06001/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (C) 2014 Google Inc.
4 * Copyright (C) 2016 Intel Corporation.
5 */
6
7External (\_PR.CP00._PSS, PkgObj)
8External (\_PR.CP00._TSS, PkgObj)
9External (\_PR.CP00._TPC, MethodObj)
10External (\_PR.CP00._PTC, PkgObj)
11External (\_PR.CP00._TSD, PkgObj)
12External (\_SB.MPDL, IntObj)
13
14Device (DPTF_CPU_DEVICE)
15{
16 Name(_ADR, DPTF_CPU_ADDR)
17
18 Method (_STA)
19 {
20 If (LEqual (\DPTE, One)) {
21 Return (0xF)
22 } Else {
23 Return (0x0)
24 }
25 }
26
27 /*
28 * Processor Throttling Controls
29 */
30
31 Method (_TSS)
32 {
33 If (CondRefOf (\_PR.CP00._TSS)) {
34 Return (\_PR.CP00._TSS)
35 } Else {
36 Return (Package ()
37 {
38 Package () { 0, 0, 0, 0, 0 }
39 })
40 }
41 }
42
43 Method (_TPC)
44 {
45 If (CondRefOf (\_PR.CP00._TPC)) {
46 Return (\_PR.CP00._TPC)
47 } Else {
48 Return (0)
49 }
50 }
51
52 Method (_PTC)
53 {
54 If (CondRefOf (\_PR.CP00._PTC)) {
55 Return (\_PR.CP00._PTC)
56 } Else {
57 Return (Package ()
58 {
59 Buffer () { 0 },
60 Buffer () { 0 }
61 })
62 }
63 }
64
65 Method (_TSD)
66 {
67 If (CondRefOf (\_PR.CP00._TSD)) {
68 Return (\_PR.CP00._TSD)
69 } Else {
70 Return (Package ()
71 {
72 Package () { 5, 0, 0, 0, 0 }
73 })
74 }
75 }
76
77 Method (_TDL)
78 {
79 If (CondRefOf (\_PR.CP00._TSS)) {
80 Store (SizeOf (\_PR.CP00._TSS), Local0)
81 Decrement (Local0)
82 Return (Local0)
83 } Else {
84 Return (0)
85 }
86 }
87
88 /*
89 * Processor Performance Control
90 */
91
92 Method (_PPC)
93 {
94 Return (0)
95 }
96
97 Method (SPPC, 1)
98 {
99 Store (Arg0, \PPCM)
100
101 /* Notify OS to re-read _PPC limit on each CPU */
102 \PPCN ()
103 }
104
105 Method (_PSS)
106 {
107 If (CondRefOf (\_PR.CP00._PSS)) {
108 Return (\_PR.CP00._PSS)
109 } Else {
110 Return (Package ()
111 {
112 Package () { 0, 0, 0, 0, 0, 0 }
113 })
114 }
115 }
116
117
118 Method (_PDL)
119 {
120 /* Check for mainboard specific _PDL override */
121 If (CondRefOf (\_SB.MPDL)) {
122 Return (\_SB.MPDL)
123 } ElseIf (CondRefOf (\_PR.CP00._PSS)) {
124 Store (SizeOf (\_PR.CP00._PSS), Local0)
125 Decrement (Local0)
126 Return (Local0)
127 } Else {
128 Return (0)
129 }
130 }
131
132 /* Return PPCC table defined by mainboard */
133 Method (PPCC)
134 {
135 Return (\_SB.MPPC)
136 }
137
138#ifdef DPTF_CPU_CRITICAL
139 Method (_CRT)
140 {
141 Return (\_SB.DPTF.CTOK (DPTF_CPU_CRITICAL))
142 }
143#endif
144
145#ifdef DPTF_CPU_PASSIVE
146 Method (_PSV)
147 {
148 Return (\_SB.DPTF.CTOK (DPTF_CPU_PASSIVE))
149 }
150#endif
151
152#ifdef DPTF_CPU_ACTIVE_AC0
153 Method (_AC0)
154 {
155 Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC0))
156 }
157#endif
158
159#ifdef DPTF_CPU_ACTIVE_AC1
160 Method (_AC1)
161 {
162 Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC1))
163 }
164#endif
165
166#ifdef DPTF_CPU_ACTIVE_AC2
167 Method (_AC2)
168 {
169 Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC2))
170 }
171#endif
172
173#ifdef DPTF_CPU_ACTIVE_AC3
174 Method (_AC3)
175 {
176 Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC3))
177 }
178#endif
179
180#ifdef DPTF_CPU_ACTIVE_AC4
181 Method (_AC4)
182 {
183 Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC4))
184 }
185#endif
186}