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