1 /*========================== begin_copyright_notice ============================
2
3 Copyright (C) 2019-2021 Intel Corporation
4
5 SPDX-License-Identifier: MIT
6
7 ============================= end_copyright_notice ===========================*/
8
9 #ifndef __WA_DEF_H__
10 #define __WA_DEF_H__
11
12 #if defined(__KCH)
13 #include "ct.h"
14 #include <ntddk.h>
15 #include "vidmini.h"
16 #else // if !defined(__KCH)*/
17 #include "../inc/common/sku_wa.h"
18 #include "../inc/common/igfxfmid.h"
19 #endif // if !defined(__KCH)
20 #include "gtsysinfo.h"
21
22 #define SIWA_TRUE 0x00000001 // force enable
23 #define SIWA_FALSE 0x00000000 // force disable
24 #define FUTURE_PROJECT 2147483647 // INT_MAX
25
26 #define BXT_REV_ID_A0 SI_REV_ID(0,2)
27 #define BXT_REV_ID_B0 SI_REV_ID(3,3)
28 #define BXT_REV_ID_B0_PRIME SI_REV_ID(6,6)
29 #define BXT_REV_ID_B1 SI_REV_ID(4,4)
30 #define BXT_REV_ID_B1_PRIME SI_REV_ID(7,7)
31 #define BXT_REV_ID_BX SI_REV_ID(5,5)
32 #define BXT_REV_ID_BX_PRIME SI_REV_ID(8,8)
33 #define BXT_REV_ID_C0 SI_REV_ID(9,9)
34 #define BXT_REV_ID_CX_B1 SI_REV_ID(10,10) //PRQ Candidate- APL
35 #define BXT_REV_ID_CX_B2 SI_REV_ID(11,11)
36 #define BXT_REV_ID_D0 SI_REV_ID(12,12) //PRQ Candidate - BXT
37 #define BXT_REV_ID_DX SI_REV_ID(13,13)
38
39 ///////////////////////////////////////// new definitions SKL+ //////////////////////////////////////
40 //
41 // for handling revID upto 16 bit values
42 //
43
44 // BXT onwards, each Stepping like A0 can have more than 1 stepping ID's.
45 // So we define the highest cap and lower cap of stepping IDs
46
47 #define SI_REV_ID(lo,hi) (lo | hi<<16) // LO represents the lowest revision ID for that stepping, HI is the highest for that stepping
48
49 #define SI_REV_HI(SteppingID) ((SteppingID & 0xFFFF0000) >> 16)
50 #define SI_REV_LO(SteppingID) (SteppingID & 0xFFFF)
51
52 #define SI_WA_ENABLE(wa, HWBugLink, HWSightingLink, ulPlatformMask, bEnable) \
53 { \
54 pWaTable->wa = ((pWaParam->ePlatformType & (ulPlatformMask)) || ulPlatformMask == PLATFORM_ALL) ? bEnable : 0; \
55 }
56
57 #define SI_WA_ONLY(ulRevID,STEPPING) ((ulRevID <= (int)SI_REV_HI(STEPPING)) && (ulRevID >= (int)SI_REV_LO(STEPPING)))
58 #define SI_WA_AFTER(ulRevID, STEPPING) (ulRevID > (int)SI_REV_HI(STEPPING)) // Current Rev ID is higher than the highest Rev ID for that STEPPING
59 #define SI_WA_BEFORE(ulRevID, STEPPING) (ulRevID < (int)SI_REV_LO(STEPPING)) // Current Rev ID is lower than the lowest Rev ID for that STEPPING
60 #define SI_WA_UNTIL(ulRevID, STEPPING) (ulRevID <= (int)SI_REV_HI(STEPPING)) // Current Rev ID is lower than or equal to the highest Rev ID for that STEPPING
61 #define SI_WA_FROM(ulRevID, STEPPING) (ulRevID >= (int)SI_REV_LO(STEPPING)) // Current Rev ID is higher than or equal to the lowest Rev ID for that STEPPING
62 #define SI_WA_BETWEEN(ulRevID, StepOld, StepNew) ((ulRevID <= (int)SI_REV_HI(StepNew)) && (ulRevID >= (int)SI_REV_LO(StepOld))) // Current Rev ID is between the StepOld and StepNew (inclusive)
63 #define SI_WA_FOR_EVER (SIWA_TRUE)
64 #define SI_WA_NEVER (SIWA_FALSE)
65
66
67 ///////////////////////////////////////// new definitions SKL+ //////////////////////////////////////
68
69 #define SIWA_ONLY_A0 0x0fff0001u
70 #define SIWA_ONLY_A1 0x0fff0002u
71 #define SIWA_ONLY_A2 0x0fff0004u
72 #define SIWA_ONLY_A3 0x0fff0008u
73 #define SIWA_ONLY_A4 0x0fff0010u
74 #define SIWA_ONLY_A5 0x0fff0020u
75 #define SIWA_ONLY_A6 0x0fff0040u
76 #define SIWA_ONLY_A7 0x0fff0080u
77 #define SIWA_ONLY_A8 0x0fff0100u
78 #define SIWA_ONLY_A9 0x0fff0200u
79 #define SIWA_ONLY_AA 0x0fff0400u
80 #define SIWA_ONLY_AB 0x0fff0800u
81 #define SIWA_ONLY_AC 0x0fff1000u
82
83 //Definition of SIWA_UNTIL_An:
84 // The workaround is to be applied to all revisions UP TO AND INCLUDING An.
85 #define SIWA_UNTIL_A0 (SIWA_ONLY_A0)
86 #define SIWA_UNTIL_A1 (SIWA_UNTIL_A0 | SIWA_ONLY_A1)
87 #define SIWA_UNTIL_A2 (SIWA_UNTIL_A1 | SIWA_ONLY_A2)
88 #define SIWA_UNTIL_A3 (SIWA_UNTIL_A2 | SIWA_ONLY_A3)
89 #define SIWA_UNTIL_A4 (SIWA_UNTIL_A3 | SIWA_ONLY_A4)
90 #define SIWA_UNTIL_A5 (SIWA_UNTIL_A4 | SIWA_ONLY_A5)
91 #define SIWA_UNTIL_A6 (SIWA_UNTIL_A5 | SIWA_ONLY_A6)
92 #define SIWA_UNTIL_A7 (SIWA_UNTIL_A6 | SIWA_ONLY_A7)
93 #define SIWA_UNTIL_A8 (SIWA_UNTIL_A7 | SIWA_ONLY_A8)
94 #define SIWA_UNTIL_A9 (SIWA_UNTIL_A8 | SIWA_ONLY_A9)
95 #define SIWA_UNTIL_AA (SIWA_UNTIL_A9 | SIWA_ONLY_AA)
96 #define SIWA_UNTIL_AB (SIWA_UNTIL_AA | SIWA_ONLY_AB)
97 #define SIWA_UNTIL_AC (SIWA_UNTIL_AB | SIWA_ONLY_AC)
98
99 //Definition of SIWA_AFTER_An:
100 // The workaround is to be applied to all revisions AFTER An.
101 #define SIWA_AFTER_A0 (0x0fff0000 | (~SIWA_UNTIL_A0))
102 #define SIWA_AFTER_A1 (0x0fff0000 | (~SIWA_UNTIL_A1))
103 #define SIWA_AFTER_A2 (0x0fff0000 | (~SIWA_UNTIL_A2))
104 #define SIWA_AFTER_A3 (0x0fff0000 | (~SIWA_UNTIL_A3))
105 #define SIWA_AFTER_A4 (0x0fff0000 | (~SIWA_UNTIL_A4))
106 #define SIWA_AFTER_A5 (0x0fff0000 | (~SIWA_UNTIL_A5))
107 #define SIWA_AFTER_A6 (0x0fff0000 | (~SIWA_UNTIL_A6))
108 #define SIWA_AFTER_A7 (0x0fff0000 | (~SIWA_UNTIL_A7))
109 #define SIWA_AFTER_A8 (0x0fff0000 | (~SIWA_UNTIL_A8))
110 #define SIWA_AFTER_A9 (0x0fff0000 | (~SIWA_UNTIL_A9))
111 #define SIWA_AFTER_AA (0x0fff0000 | (~SIWA_UNTIL_AA))
112 #define SIWA_AFTER_AB (0x0fff0000 | (~SIWA_UNTIL_AB))
113 #define SIWA_AFTER_AC (0x0fff0000 | (~SIWA_UNTIL_AC))
114
115 //Definition of SIWA_FROM_An:
116 // The workaround is to be applied to all revisions AFTER An AND An.
117 #define SIWA_FROM_A0 (SIWA_AFTER_A0 | SIWA_ONLY_A0)
118 #define SIWA_FROM_A1 (SIWA_AFTER_A1 | SIWA_ONLY_A1)
119 #define SIWA_FROM_A2 (SIWA_AFTER_A2 | SIWA_ONLY_A2)
120 #define SIWA_FROM_A3 (SIWA_AFTER_A3 | SIWA_ONLY_A3)
121 #define SIWA_FROM_A4 (SIWA_AFTER_A4 | SIWA_ONLY_A4)
122 #define SIWA_FROM_A5 (SIWA_AFTER_A5 | SIWA_ONLY_A5)
123 #define SIWA_FROM_A6 (SIWA_AFTER_A6 | SIWA_ONLY_A6)
124 #define SIWA_FROM_A7 (SIWA_AFTER_A7 | SIWA_ONLY_A7)
125 #define SIWA_FROM_A8 (SIWA_AFTER_A8 | SIWA_ONLY_A8)
126 #define SIWA_FROM_A9 (SIWA_AFTER_A9 | SIWA_ONLY_A9)
127 #define SIWA_FROM_AA (SIWA_AFTER_AA | SIWA_ONLY_AA)
128 #define SIWA_FROM_AB (SIWA_AFTER_AB | SIWA_ONLY_AB)
129 #define SIWA_FROM_AC (SIWA_AFTER_AC | SIWA_ONLY_AC)
130
131 #define SIWA_FOREVER 0xffffffff
132
133 #define SI_REV_A0 (SIWA_ONLY_A0 & 0xffff)
134 #define SI_REV_A1 (SIWA_ONLY_A1 & 0xffff)
135 #define SI_REV_A2 (SIWA_ONLY_A2 & 0xffff)
136 #define SI_REV_A3 (SIWA_ONLY_A3 & 0xffff)
137 #define SI_REV_A4 (SIWA_ONLY_A4 & 0xffff)
138 #define SI_REV_A5 (SIWA_ONLY_A5 & 0xffff)
139 #define SI_REV_A6 (SIWA_ONLY_A6 & 0xffff)
140 #define SI_REV_A7 (SIWA_ONLY_A7 & 0xffff)
141 #define SI_REV_A8 (SIWA_ONLY_A8 & 0xffff)
142 #define SI_REV_A9 (SIWA_ONLY_A9 & 0xffff)
143 #define SI_REV_AA (SIWA_ONLY_AA & 0xffff)
144
145 #ifndef __S_INLINE
146 #define __S_INLINE static __inline
147 #endif
148
149 // WA Init parameters
150 typedef struct _WaInitParam
151 {
152 unsigned short usRevId;
153 unsigned short usRevId_PCH;
154 PLATFORM_TYPE ePlatformType;
155 PCH_PRODUCT_FAMILY ePCHProductFamily;
156 const GT_SYSTEM_INFO *pGtSysInfo; // Required CNL+
157 unsigned char bWinDoD; // BOOLEAN
158 } WA_INIT_PARAM, *PWA_INIT_PARAM;
159
160 /********* Common functions to intialize wa table ************\
161
162 MACRO / Inline Function usage:
163
164 1. To enable any WA based on both Platform and stepping type use the PLATFORM_STEP_APPLICABLE() macro
165 e.g. pSkuTable->WAXYZ = PLATFORM_STEP_APPLICABLE(ulStepId, PLATFORM_DESKTOP, SIWA_FOREVER);
166
167 2. If the WaBoolean() is called directly it will be enabled on ALL platforms
168
169 3. To enable any WA based on some boolean flag and platform use the following:
170 e.g. pSkuTable->WAXYZ = PLATFORM_STEP_APPLICABLE(ulStepId, PLATFORM_DESKTOP, bFlag);
171
172 \*************************************************************/
173 //Function to return TRUE or FALSE based on rev id and wa mask
WaBoolean(unsigned int ulStepId,unsigned int ulWaMask)174 __S_INLINE unsigned int WaBoolean(unsigned int ulStepId, unsigned int ulWaMask)
175 {
176 //Check whether wa forced TRUE/FALSE
177 if (ulWaMask < SIWA_UNTIL_A0)
178 {
179 return (ulWaMask != 0);
180 }
181
182 //Check if wa mask contains current rev id
183 return ((ulStepId & ulWaMask) ? 1 : 0);
184 }
185
186
187 // Macro to call the WaBoolean function based on platformType
188 #define PLATFORM_STEP_APPLICABLE(ulStepId, ulPlatformMask, ulWaMask) \
189 (pWaParam->ePlatformType & (ulPlatformMask)) ? WaBoolean((ulStepId), (ulWaMask)) : 0;
190
191
192 #define WA_ENABLE_NO_PLATFORM_CHECK( ulStepId, wa, HWBugLink, HWSightingLink, ulPlatformMask, ulWaMask ) \
193 { \
194 pWaTable->wa = WaBoolean(ulStepId, ulWaMask); \
195 }
196
197 #define WA_ENABLE( ulStepId, wa, HWBugLink, HWSightingLink, ulPlatformMask, ulWaMask ) \
198 { \
199 pWaTable->wa = ((pWaParam->ePlatformType & (ulPlatformMask)) || ulPlatformMask == PLATFORM_ALL) ? WaBoolean((ulStepId), (ulWaMask)) : 0; \
200 }
201
202 #ifdef __cplusplus
203 extern "C" {
204 #endif
205
206 void InitBdwWaTable(
207 PWA_TABLE pWaTable,
208 PSKU_FEATURE_TABLE pSkuTable,
209 PWA_INIT_PARAM pWaParam);
210 void InitChvWaTable(
211 PWA_TABLE pWaTable,
212 PSKU_FEATURE_TABLE pSkuTable,
213 PWA_INIT_PARAM pWaParam);
214 void InitSklWaTable(
215 PWA_TABLE pWaTable,
216 PSKU_FEATURE_TABLE pSkuTable,
217 PWA_INIT_PARAM pWaParam);
218 void InitBxtWaTable(
219 PWA_TABLE pWaTable,
220 PSKU_FEATURE_TABLE pSkuTable,
221 PWA_INIT_PARAM pWaParam);
222 void InitKblNonDisplayWaTable(
223 PWA_TABLE pWaTable,
224 PSKU_FEATURE_TABLE pSkuTable,
225 PWA_INIT_PARAM pWaParam);
226 void InitKblDisplayWaTable(
227 PWA_TABLE pWaTable,
228 PSKU_FEATURE_TABLE pSkuTable,
229 PWA_INIT_PARAM pWaParam);
230 void InitCflNonDisplayWaTable(
231 PWA_TABLE pWaTable,
232 PSKU_FEATURE_TABLE pSkuTable,
233 PWA_INIT_PARAM pWaParam);
234 void InitGlkWaTable(
235 PWA_TABLE pWaTable,
236 PSKU_FEATURE_TABLE pSkuTable,
237 PWA_INIT_PARAM pWaParam);
238 void InitGlvWaTable(
239 PWA_TABLE pWaTable,
240 PSKU_FEATURE_TABLE pSkuTable,
241 PWA_INIT_PARAM pWaParam);
242 void InitGwlWaTable(
243 PWA_TABLE pWaTable,
244 PSKU_FEATURE_TABLE pSkuTable,
245 PWA_INIT_PARAM pWaParam);
246 void InitCnlWaTable(
247 PWA_TABLE pWaTable,
248 PSKU_FEATURE_TABLE pSkuTable,
249 PWA_INIT_PARAM pWaParam);
250 void InitIclHwWaTable(
251 PWA_TABLE pWaTable,
252 PSKU_FEATURE_TABLE pSkuTable,
253 PWA_INIT_PARAM pWaParam);
254 void InitIclSwWaTable(
255 PWA_TABLE pWaTable,
256 PSKU_FEATURE_TABLE pSkuTable,
257 PWA_INIT_PARAM pWaParam);
258 void InitIclLpHwWaTable(
259 PWA_TABLE pWaTable,
260 PSKU_FEATURE_TABLE pSkuTable,
261 PWA_INIT_PARAM pWaParam);
262 void InitIclLpSwWaTable(
263 PWA_TABLE pWaTable,
264 PSKU_FEATURE_TABLE pSkuTable,
265 PWA_INIT_PARAM pWaParam);
266 void InitLkfHwWaTable(
267 PWA_TABLE pWaTable,
268 PSKU_FEATURE_TABLE pSkuTable,
269 PWA_INIT_PARAM pWaParam);
270 void InitLkfSwWaTable(
271 PWA_TABLE pWaTable,
272 PSKU_FEATURE_TABLE pSkuTable,
273 PWA_INIT_PARAM pWaParam);
274 void InitEhlHwWaTable(
275 PWA_TABLE pWaTable,
276 PSKU_FEATURE_TABLE pSkuTable,
277 PWA_INIT_PARAM pWaParam);
278 void InitEhlSwWaTable(
279 PWA_TABLE pWaTable,
280 PSKU_FEATURE_TABLE pSkuTable,
281 PWA_INIT_PARAM pWaParam);
282 void InitJslHwWaTable(
283 PWA_TABLE pWaTable,
284 PSKU_FEATURE_TABLE pSkuTable,
285 PWA_INIT_PARAM pWaParam);
286 void InitJslSwWaTable(
287 PWA_TABLE pWaTable,
288 PSKU_FEATURE_TABLE pSkuTable,
289 PWA_INIT_PARAM pWaParam);
290 void InitTglLpHwWaTable(
291 PWA_TABLE pWaTable,
292 PSKU_FEATURE_TABLE pSkuTable,
293 PWA_INIT_PARAM pWaParam);
294 void InitTglLpSwWaTable(
295 PWA_TABLE pWaTable,
296 PSKU_FEATURE_TABLE pSkuTable,
297 PWA_INIT_PARAM pWaParam);
298 void InitDg1HwWaTable(
299 PWA_TABLE pWaTable,
300 PSKU_FEATURE_TABLE pSkuTable,
301 PWA_INIT_PARAM pWaParam);
302 void InitDg1SwWaTable(
303 PWA_TABLE pWaTable,
304 PSKU_FEATURE_TABLE pSkuTable,
305 PWA_INIT_PARAM pWaParam);
306 void InitRklHwWaTable(
307 PWA_TABLE pWaTable,
308 PSKU_FEATURE_TABLE pSkuTable,
309 PWA_INIT_PARAM pWaParam);
310 void InitRklSwWaTable(
311 PWA_TABLE pWaTable,
312 PSKU_FEATURE_TABLE pSkuTable,
313 PWA_INIT_PARAM pWaParam);
314 void InitAdlsHwWaTable(
315 PWA_TABLE pWaTable,
316 PSKU_FEATURE_TABLE pSkuTable,
317 PWA_INIT_PARAM pWaParam);
318 void InitAdlsSwWaTable(
319 PWA_TABLE pWaTable,
320 PSKU_FEATURE_TABLE pSkuTable,
321 PWA_INIT_PARAM pWaParam);
322 void InitAdlpHwWaTable(
323 PWA_TABLE pWaTable,
324 PSKU_FEATURE_TABLE pSkuTable,
325 PWA_INIT_PARAM pWaParam);
326 void InitAdlpSwWaTable(
327 PWA_TABLE pWaTable,
328 PSKU_FEATURE_TABLE pSkuTable,
329 PWA_INIT_PARAM pWaParam);
330 void InitXeHPSDVHwWaTable(
331 PWA_TABLE pWaTable,
332 PSKU_FEATURE_TABLE pSkuTable,
333 PWA_INIT_PARAM pWaParam);
334 void InitXeHPSDVSwWaTable(
335 PWA_TABLE pWaTable,
336 PSKU_FEATURE_TABLE pSkuTable,
337 PWA_INIT_PARAM pWaParam);
338 void InitDg2HwWaTable(
339 PWA_TABLE pWaTable,
340 PSKU_FEATURE_TABLE pSkuTable,
341 PWA_INIT_PARAM pWaParam);
342 void InitDg2SwWaTable(
343 PWA_TABLE pWaTable,
344 PSKU_FEATURE_TABLE pSkuTable,
345 PWA_INIT_PARAM pWaParam);
346 void InitPvcHwWaTable(
347 PWA_TABLE pWaTable,
348 PSKU_FEATURE_TABLE pSkuTable,
349 PWA_INIT_PARAM pWaParam);
350 void InitPvc_XtHwWaTable(
351 PWA_TABLE pWaTable,
352 PSKU_FEATURE_TABLE pSkuTable,
353 PWA_INIT_PARAM pWaParam);
354 #ifdef __cplusplus
355 } // extern "C"
356 #endif
357
358 #if defined(__KCH)
359 void InitChvHASWaTable(
360 PHW_DEVICE_EXTENSION pKchContext,
361 PWA_TABLE pWaTable,
362 PSKU_FEATURE_TABLE pSkuTable,
363 PWA_INIT_PARAM pWaParam);
364 void InitChvSLEWaTable(
365 PHW_DEVICE_EXTENSION pKchContext,
366 PWA_TABLE pWaTable,
367 PSKU_FEATURE_TABLE pSkuTable,
368 PWA_INIT_PARAM pWaParam);
369 void InitBxtHASWaTable(
370 PHW_DEVICE_EXTENSION pKchContext,
371 PWA_TABLE pWaTable,
372 PSKU_FEATURE_TABLE pSkuTable,
373 PWA_INIT_PARAM pWaParam);
374 void InitGlkHASWaTable(
375 PHW_DEVICE_EXTENSION pKchContext,
376 PWA_TABLE pWaTable,
377 PSKU_FEATURE_TABLE pSkuTable,
378 PWA_INIT_PARAM pWaParam);
379 void InitGlvHASWaTable(
380 PHW_DEVICE_EXTENSION pKchContext,
381 PWA_TABLE pWaTable,
382 PSKU_FEATURE_TABLE pSkuTable,
383 PWA_INIT_PARAM pWaParam);
384 void InitGwlHASWaTable(
385 PHW_DEVICE_EXTENSION pKchContext,
386 PWA_TABLE pWaTable,
387 PSKU_FEATURE_TABLE pSkuTable,
388 PWA_INIT_PARAM pWaParam);
389 void InitSklHASWaTable(
390 PHW_DEVICE_EXTENSION pKchContext,
391 PWA_TABLE pWaTable,
392 PSKU_FEATURE_TABLE pSkuTable,
393 PWA_INIT_PARAM pWaParam);
394 void InitKblHASWaTable(
395 PHW_DEVICE_EXTENSION pKchContext,
396 PWA_TABLE pWaTable,
397 PSKU_FEATURE_TABLE pSkuTable,
398 PWA_INIT_PARAM pWaParam);
399 void InitCflHASWaTable(
400 PHW_DEVICE_EXTENSION pKchContext,
401 PWA_TABLE pWaTable,
402 PSKU_FEATURE_TABLE pSkuTable,
403 PWA_INIT_PARAM pWaParam);
404 void InitCnlHASWaTable(
405 PHW_DEVICE_EXTENSION pKchContext,
406 PWA_TABLE pWaTable,
407 PSKU_FEATURE_TABLE pSkuTable,
408 PWA_INIT_PARAM pWaParam);
409 void InitIclHASWaTable(
410 PHW_DEVICE_EXTENSION pKchContext,
411 PWA_TABLE pWaTable,
412 PSKU_FEATURE_TABLE pSkuTable,
413 PWA_INIT_PARAM pWaParam);
414 void InitIclLpHASWaTable(
415 PHW_DEVICE_EXTENSION pKchContext,
416 PWA_TABLE pWaTable,
417 PSKU_FEATURE_TABLE pSkuTable,
418 PWA_INIT_PARAM pWaParam);
419 void InitLkfHASWaTable(
420 PHW_DEVICE_EXTENSION pKchContext,
421 PWA_TABLE pWaTable,
422 PSKU_FEATURE_TABLE pSkuTable,
423 PWA_INIT_PARAM pWaParam);
424 void InitEhlHASWaTable(
425 PHW_DEVICE_EXTENSION pKchContext,
426 PWA_TABLE pWaTable,
427 PSKU_FEATURE_TABLE pSkuTable,
428 PWA_INIT_PARAM pWaParam);
429 void InitJslHASWaTable(
430 PHW_DEVICE_EXTENSION pKchContext,
431 PWA_TABLE pWaTable,
432 PSKU_FEATURE_TABLE pSkuTable,
433 PWA_INIT_PARAM pWaParam);
434 void InitTgllpHASWaTable(
435 PHW_DEVICE_EXTENSION pKchContext,
436 PWA_TABLE pWaTable,
437 PSKU_FEATURE_TABLE pSkuTable,
438 PWA_INIT_PARAM pWaParam);
439 void InitDg1HASWaTable(
440 PHW_DEVICE_EXTENSION pKchContext,
441 PWA_TABLE pWaTable,
442 PSKU_FEATURE_TABLE pSkuTable,
443 PWA_INIT_PARAM pWaParam);
444 void InitRklHASWaTable(
445 PHW_DEVICE_EXTENSION pKchContext,
446 PWA_TABLE pWaTable,
447 PSKU_FEATURE_TABLE pSkuTable,
448 PWA_INIT_PARAM pWaParam);
449 void InitAdlsHASWaTable(
450 PHW_DEVICE_EXTENSION pKchContext,
451 PWA_TABLE pWaTable,
452 PSKU_FEATURE_TABLE pSkuTable,
453 PWA_INIT_PARAM pWaParam);
454 void InitAdlpHASWaTable(
455 PHW_DEVICE_EXTENSION pKchContext,
456 PWA_TABLE pWaTable,
457 PSKU_FEATURE_TABLE pSkuTable,
458 PWA_INIT_PARAM pWaParam);
459 void InitXeHPSDVHASWaTable(
460 PHW_DEVICE_EXTENSION pKchContext,
461 PWA_TABLE pWaTable,
462 PSKU_FEATURE_TABLE pSkuTable,
463 PWA_INIT_PARAM pWaParam);
464 void InitDg2HASWaTable(
465 PHW_DEVICE_EXTENSION pKchContext,
466 PWA_TABLE pWaTable,
467 PSKU_FEATURE_TABLE pSkuTable,
468 PWA_INIT_PARAM pWaParam);
469 #endif // #if defined(__KCH)
470
471 #endif // #ifndef __WA_DEF_H__
472