xref: /aosp_15_r20/external/intel-media-driver/media_driver/linux/gen12/ddi/media_sysinfo_g12.cpp (revision ba62d9d3abf0e404f2022b4cd7a85e107f48596f)
1 /*===================== begin_copyright_notice ==================================
2 
3 Copyright (c) 2017-2021, Intel Corporation
4 
5 Permission is hereby granted, free of charge, to any person obtaining a
6 copy of this software and associated documentation files (the "Software"),
7 to deal in the Software without restriction, including without limitation
8 the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 and/or sell copies of the Software, and to permit persons to whom the
10 Software is furnished to do so, subject to the following conditions:
11 
12 The above copyright notice and this permission notice shall be included
13 in all copies or substantial portions of the Software.
14 
15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
19 OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
20 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
21 OTHER DEALINGS IN THE SOFTWARE.
22 
23 ======================= end_copyright_notice ==================================*/
24 //!
25 //! \file     media_sysinfo_g12.cpp
26 //!
27 
28 #include "igfxfmid.h"
29 #include "linux_system_info.h"
30 #include "skuwa_factory.h"
31 #include "linux_skuwa_debug.h"
32 #include "linux_media_skuwa.h"
33 #include "linux_shadow_skuwa.h"
34 #include "media_user_setting_specific.h"
35 
36 //extern template class DeviceInfoFactory<GfxDeviceInfo>;
37 typedef DeviceInfoFactory<GfxDeviceInfo> base_fact;
38 
39 #define THREADS_NUMBER_PER_EU 7
40 
InitTglMediaSysInfo(struct GfxDeviceInfo * devInfo,MEDIA_GT_SYSTEM_INFO * sysInfo)41 static bool InitTglMediaSysInfo(struct GfxDeviceInfo *devInfo, MEDIA_GT_SYSTEM_INFO *sysInfo)
42 {
43     if ((devInfo == nullptr) || (sysInfo == nullptr))
44     {
45         DEVINFO_ERROR("null ptr is passed\n");
46         return false;
47     }
48 
49     if (!sysInfo->SliceCount)
50     {
51         sysInfo->SliceCount    = devInfo->SliceCount;
52     }
53 
54     if (!sysInfo->SubSliceCount)
55     {
56         sysInfo->SubSliceCount = devInfo->SubSliceCount;
57     }
58 
59     if (!sysInfo->EUCount)
60     {
61         sysInfo->EUCount       = devInfo->EUCount;
62     }
63 
64     sysInfo->L3BankCount                            = devInfo->L3BankCount;
65     sysInfo->VEBoxInfo.Instances.Bits.VEBox0Enabled = 1;
66     sysInfo->MaxEuPerSubSlice = devInfo->MaxEuPerSubSlice;
67     sysInfo->MaxSlicesSupported = sysInfo->SliceCount;
68     sysInfo->MaxSubSlicesSupported = sysInfo->SubSliceCount;
69 
70     sysInfo->VEBoxInfo.NumberOfVEBoxEnabled = 0; /*Query the VEBox engine info from KMD*/
71     sysInfo->VDBoxInfo.NumberOfVDBoxEnabled = 0; /*Query the VDBox engine info from KMD*/
72 
73     sysInfo->ThreadCount = sysInfo->EUCount * THREADS_NUMBER_PER_EU;
74 
75     sysInfo->VEBoxInfo.IsValid = true;
76     sysInfo->VDBoxInfo.IsValid = true;
77 
78     //Media driver does not set the other gtsysinfo fileds such as L3CacheSizeInKb, EdramSizeInKb and LLCCacheSizeInKb now.
79     //If needed in the future, query them from KMD.
80 
81     return true;
82 }
83 
InitTglShadowSku(struct GfxDeviceInfo * devInfo,SHADOW_MEDIA_FEATURE_TABLE * skuTable,struct LinuxDriverInfo * drvInfo)84 static bool InitTglShadowSku(struct GfxDeviceInfo *devInfo,
85                              SHADOW_MEDIA_FEATURE_TABLE *skuTable,
86                              struct LinuxDriverInfo *drvInfo)
87 {
88     if ((devInfo == nullptr) || (skuTable == nullptr) || (drvInfo == nullptr))
89     {
90         DEVINFO_ERROR("null ptr is passed\n");
91         return false;
92     }
93 
94     skuTable->FtrVERing = 0;
95     if (drvInfo->hasVebox)
96     {
97        skuTable->FtrVERing = 1;
98     }
99 
100     skuTable->FtrVcs2 = 0;
101 
102     skuTable->FtrULT = 0;
103 
104     skuTable->FtrPPGTT = 1;
105     skuTable->FtrIA32eGfxPTEs = 1;
106 
107     skuTable->FtrDisplayYTiling = 1;
108     skuTable->FtrEDram = devInfo->hasERAM;
109 
110     bool disableMMC     = false;
111     skuTable->FtrE2ECompression = 1;
112     // Disable MMC for all components if set reg key
113     MOS_USER_FEATURE_VALUE_DATA userFeatureData;
114     MOS_ZeroMemory(&userFeatureData, sizeof(userFeatureData));
115     MOS_UserFeature_ReadValue_ID(
116         nullptr,
117         __MEDIA_USER_FEATURE_VALUE_DISABLE_MMC_ID,
118         &userFeatureData,
119         (MOS_CONTEXT_HANDLE)nullptr);
120     if (userFeatureData.bData)
121     {
122         disableMMC = true;
123     }
124 
125     if (disableMMC)
126     {
127         skuTable->FtrE2ECompression = 0;
128     }
129 
130     skuTable->FtrLinearCCS = 1;
131     skuTable->FtrTileY = 1;
132 
133     return true;
134 }
135 
InitTglShadowWa(struct GfxDeviceInfo * devInfo,SHADOW_MEDIA_WA_TABLE * waTable,struct LinuxDriverInfo * drvInfo)136 static bool InitTglShadowWa(struct GfxDeviceInfo *devInfo,
137                              SHADOW_MEDIA_WA_TABLE *waTable,
138                              struct LinuxDriverInfo *drvInfo)
139 {
140     if ((devInfo == nullptr) || (waTable == nullptr) || (drvInfo == nullptr))
141     {
142         DEVINFO_ERROR("null ptr is passed\n");
143         return false;
144     }
145 
146     /* by default PPGTT is enabled */
147     waTable->WaForceGlobalGTT = 0;
148     if (drvInfo->hasPpgtt == 0)
149     {
150         waTable->WaForceGlobalGTT = 1;
151     }
152 
153     waTable->WaDisregardPlatformChecks          = 1;
154     waTable->Wa4kAlignUVOffsetNV12LinearSurface = 1;
155 
156     // Set it to 0 if need to support 256B compress mode
157     waTable->WaLimit128BMediaCompr = 0;
158 
159     //source and recon surfaces need to be aligned to the LCU size
160     waTable->WaAlignYUVResourceToLCU = 1;
161 
162     /* For TGLLP and derivative platforms HW supports both 16K and 64K Aux granularity, POR mode is 64K. On all aux based
163     platforms (where FtrFlaPhysCCS = 0) WaAuxTable64KGranular is expected to be set. */
164     waTable->WaAuxTable64KGranular = 1;
165 
166     return true;
167 }
168 
169 #ifdef IGFX_GEN12_DG1_SUPPORTED
InitDG1ShadowSku(struct GfxDeviceInfo * devInfo,SHADOW_MEDIA_FEATURE_TABLE * skuTable,struct LinuxDriverInfo * drvInfo)170 static bool InitDG1ShadowSku(struct GfxDeviceInfo *devInfo,
171                              SHADOW_MEDIA_FEATURE_TABLE *skuTable,
172                              struct LinuxDriverInfo *drvInfo)
173 {
174     if(!InitTglShadowSku(devInfo, skuTable, drvInfo))
175     {
176         return false;
177     }
178     skuTable->FtrLocalMemory = 1;
179 
180     return true;
181 }
182 #endif
183 
184 static struct GfxDeviceInfo tgllpGt1Info = {
185     .platformType  = PLATFORM_MOBILE,
186     .productFamily = IGFX_TIGERLAKE_LP,
187     .displayFamily = IGFX_GEN12_CORE,
188     .renderFamily  = IGFX_GEN12_CORE,
189     .mediaFamily   = IGFX_UNKNOWN_CORE,
190     .eGTType       = GTTYPE_GT1,
191     .L3CacheSizeInKb = 0,
192     .L3BankCount   = 4,
193     .EUCount       = 0,
194     .SliceCount    = 0,
195     .SubSliceCount = 0,
196     .MaxEuPerSubSlice = 0,
197     .isLCIA        = 0,
198     .hasLLC        = 0,
199     .hasERAM       = 0,
200     .InitMediaSysInfo = InitTglMediaSysInfo,
201     .InitShadowSku    = InitTglShadowSku,
202     .InitShadowWa     = InitTglShadowWa,
203 };
204 
205 static struct GfxDeviceInfo tgllpGt2Info = {
206     .platformType  = PLATFORM_MOBILE,
207     .productFamily = IGFX_TIGERLAKE_LP,
208     .displayFamily = IGFX_GEN12_CORE,
209     .renderFamily  = IGFX_GEN12_CORE,
210     .mediaFamily   = IGFX_UNKNOWN_CORE,
211     .eGTType       = GTTYPE_GT2,
212     .L3CacheSizeInKb = 0,
213     .L3BankCount   = 8,
214     .EUCount       = 0,
215     .SliceCount    = 0,
216     .SubSliceCount = 0,
217     .MaxEuPerSubSlice = 0,
218     .isLCIA        = 0,
219     .hasLLC        = 0,
220     .hasERAM       = 0,
221     .InitMediaSysInfo = InitTglMediaSysInfo,
222     .InitShadowSku    = InitTglShadowSku,
223     .InitShadowWa     = InitTglShadowWa,
224 };
225 
226 #ifdef IGFX_GEN12_DG1_SUPPORTED
227 static struct GfxDeviceInfo dg1Gt2Info = {
228     .platformType  = PLATFORM_MOBILE,
229     .productFamily = IGFX_DG1,
230     .displayFamily = IGFX_GEN12_CORE,
231     .renderFamily  = IGFX_GEN12_CORE,
232     .mediaFamily   = IGFX_UNKNOWN_CORE,
233     .eGTType       = GTTYPE_GT2,
234     .L3CacheSizeInKb = 0,
235     .L3BankCount   = 8,
236     .EUCount       = 0,
237     .SliceCount    = 0,
238     .SubSliceCount = 0,
239     .MaxEuPerSubSlice = 0,
240     .isLCIA        = 0,
241     .hasLLC        = 0,
242     .hasERAM       = 0,
243     .InitMediaSysInfo = InitTglMediaSysInfo,
244     .InitShadowSku    = InitDG1ShadowSku,
245     .InitShadowWa     = InitTglShadowWa,
246 };
247 static bool dg1Gt2Device4905 = DeviceInfoFactory<GfxDeviceInfo>::
248     RegisterDevice(0x4905, &dg1Gt2Info);
249 
250 static bool dg1Gt2Device4906 = DeviceInfoFactory<GfxDeviceInfo>::
251     RegisterDevice(0x4906, &dg1Gt2Info);
252 
253 
254 static bool dg1Gt2Device4907 = DeviceInfoFactory<GfxDeviceInfo>::
255     RegisterDevice(0x4907, &dg1Gt2Info);
256 
257 static bool dg1Gt2Device4908 = DeviceInfoFactory<GfxDeviceInfo>::
258     RegisterDevice(0x4908, &dg1Gt2Info);
259 
260 static bool dg1Gt2Device4909 = DeviceInfoFactory<GfxDeviceInfo>::
261     RegisterDevice(0x4909, &dg1Gt2Info);
262 #endif
263 
264 #ifdef IGFX_GEN12_RKL_SUPPORTED
265 static struct GfxDeviceInfo rklGt1Info = {
266     .platformType     = PLATFORM_MOBILE,
267     .productFamily    = IGFX_ROCKETLAKE,
268     .displayFamily    = IGFX_GEN12_CORE,
269     .renderFamily     = IGFX_GEN12_CORE,
270     .mediaFamily      = IGFX_UNKNOWN_CORE,
271     .eGTType          = GTTYPE_GT1,
272     .L3CacheSizeInKb  = 0,
273     .L3BankCount      = 4,
274     .EUCount          = 0,
275     .SliceCount       = 0,
276     .SubSliceCount    = 0,
277     .MaxEuPerSubSlice = 0,
278     .isLCIA           = 0,
279     .hasLLC           = 0,
280     .hasERAM          = 0,
281     .InitMediaSysInfo = InitTglMediaSysInfo,
282     .InitShadowSku    = InitTglShadowSku,
283     .InitShadowWa     = InitTglShadowWa,
284 };
285 
286 static struct GfxDeviceInfo rklGt1fInfo = {
287     .platformType     = PLATFORM_MOBILE,
288     .productFamily    = IGFX_ROCKETLAKE,
289     .displayFamily    = IGFX_GEN12_CORE,
290     .renderFamily     = IGFX_GEN12_CORE,
291     .mediaFamily      = IGFX_UNKNOWN_CORE,
292     .eGTType          = GTTYPE_GT0_5,
293     .L3CacheSizeInKb  = 0,
294     .L3BankCount      = 4,
295     .EUCount          = 0,
296     .SliceCount       = 0,
297     .SubSliceCount    = 0,
298     .MaxEuPerSubSlice = 0,
299     .isLCIA           = 0,
300     .hasLLC           = 0,
301     .hasERAM          = 0,
302     .InitMediaSysInfo = InitTglMediaSysInfo,
303     .InitShadowSku    = InitTglShadowSku,
304     .InitShadowWa     = InitTglShadowWa,
305 };
306 
307 static bool rklGt1Device4C80 = DeviceInfoFactory<GfxDeviceInfo>::
308     RegisterDevice(0x4C80, &rklGt1Info);
309 
310 static bool rklGt1Device4C8A = DeviceInfoFactory<GfxDeviceInfo>::
311     RegisterDevice(0x4C8A, &rklGt1Info);
312 
313 static bool rklGt1fDevice4C8B = DeviceInfoFactory<GfxDeviceInfo>::
314     RegisterDevice(0x4C8B, &rklGt1Info);
315 
316 static bool rklGt1fDevice4C8C = DeviceInfoFactory<GfxDeviceInfo>::
317     RegisterDevice(0x4C8C, &rklGt1fInfo);
318 
319 static bool rklGt1fDevice4C90 = DeviceInfoFactory<GfxDeviceInfo>::
320     RegisterDevice(0x4C90, &rklGt1Info);
321 
322 static bool rklGt1fDevice4C9A = DeviceInfoFactory<GfxDeviceInfo>::
323     RegisterDevice(0x4C9A, &rklGt1Info);
324 #endif
325 
326 #ifdef IGFX_GEN12_ADLS_SUPPORTED
327 static struct GfxDeviceInfo adlsGt1Info = {
328     .platformType     = PLATFORM_DESKTOP,
329     .productFamily    = IGFX_ALDERLAKE_S,
330     .displayFamily    = IGFX_GEN12_CORE,
331     .renderFamily     = IGFX_GEN12_CORE,
332     .mediaFamily      = IGFX_UNKNOWN_CORE,
333     .eGTType          = GTTYPE_GT1,
334     .L3CacheSizeInKb  = 0,
335     .L3BankCount      = 4,
336     .EUCount          = 0,
337     .SliceCount       = 0,
338     .SubSliceCount    = 0,
339     .MaxEuPerSubSlice = 0,
340     .isLCIA           = 0,
341     .hasLLC           = 0,
342     .hasERAM          = 0,
343     .InitMediaSysInfo = InitTglMediaSysInfo,
344     .InitShadowSku    = InitTglShadowSku,
345     .InitShadowWa     = InitTglShadowWa,
346 };
347 
348 
349 static struct GfxDeviceInfo adlsGt1fInfo = {
350     .platformType     = PLATFORM_DESKTOP,
351     .productFamily    = IGFX_ALDERLAKE_S,
352     .displayFamily    = IGFX_GEN12_CORE,
353     .renderFamily     = IGFX_GEN12_CORE,
354     .mediaFamily      = IGFX_UNKNOWN_CORE,
355     .eGTType          = GTTYPE_GT0_5,
356     .L3CacheSizeInKb  = 0,
357     .L3BankCount      = 4,
358     .EUCount          = 0,
359     .SliceCount       = 0,
360     .SubSliceCount    = 0,
361     .MaxEuPerSubSlice = 0,
362     .isLCIA           = 0,
363     .hasLLC           = 0,
364     .hasERAM          = 0,
365     .InitMediaSysInfo = InitTglMediaSysInfo,
366     .InitShadowSku    = InitTglShadowSku,
367     .InitShadowWa     = InitTglShadowWa,
368 };
369 
370 
371 static bool adlsGt1Device4680 = DeviceInfoFactory<GfxDeviceInfo>::
372     RegisterDevice(0x4680, &adlsGt1Info);
373 
374 static bool adlsGt1Device4681 = DeviceInfoFactory<GfxDeviceInfo>::
375     RegisterDevice(0x4681, &adlsGt1Info);
376 
377 static bool adlsGt1Device4682 = DeviceInfoFactory<GfxDeviceInfo>::
378     RegisterDevice(0x4682, &adlsGt1Info);
379 
380 static bool adlsGt1Device4683 = DeviceInfoFactory<GfxDeviceInfo>::
381     RegisterDevice(0x4683, &adlsGt1fInfo);
382 
383 static bool adlsGt1Device4688 = DeviceInfoFactory<GfxDeviceInfo>::
384     RegisterDevice(0x4688, &adlsGt1Info);
385 
386 static bool adlsGt1Device468A = DeviceInfoFactory<GfxDeviceInfo>::
387     RegisterDevice(0x468A, &adlsGt1Info);
388 
389 static bool adlsGt1Device468B = DeviceInfoFactory<GfxDeviceInfo>::
390     RegisterDevice(0x468B, &adlsGt1Info);
391 
392 static bool adlsGt1Device4690 = DeviceInfoFactory<GfxDeviceInfo>::
393     RegisterDevice(0x4690, &adlsGt1Info);
394 
395 static bool adlsGt1Device4691 = DeviceInfoFactory<GfxDeviceInfo>::
396     RegisterDevice(0x4691, &adlsGt1Info);
397 
398 static bool adlsGt1Device4692 = DeviceInfoFactory<GfxDeviceInfo>::
399     RegisterDevice(0x4692, &adlsGt1Info);
400 
401 static bool adlsGt1Device4693 = DeviceInfoFactory<GfxDeviceInfo>::
402     RegisterDevice(0x4693, &adlsGt1Info);
403 
404 static bool rplsGt1DeviceA780 = DeviceInfoFactory<GfxDeviceInfo>::
405     RegisterDevice(0xA780, &adlsGt1Info);
406 
407 static bool rplsGt1DeviceA781 = DeviceInfoFactory<GfxDeviceInfo>::
408     RegisterDevice(0xA781, &adlsGt1Info);
409 
410 static bool rplsGt1DeviceA782 = DeviceInfoFactory<GfxDeviceInfo>::
411     RegisterDevice(0xA782, &adlsGt1Info);
412 
413 static bool rplsGt1DeviceA783 = DeviceInfoFactory<GfxDeviceInfo>::
414     RegisterDevice(0xA783, &adlsGt1Info);
415 
416 static bool rplsGt1DeviceA788 = DeviceInfoFactory<GfxDeviceInfo>::
417     RegisterDevice(0xA788, &adlsGt1Info);
418 
419 static bool rplsGt1DeviceA789 = DeviceInfoFactory<GfxDeviceInfo>::
420     RegisterDevice(0xA789, &adlsGt1Info);
421 
422 static bool rplsGt1DeviceA78A = DeviceInfoFactory<GfxDeviceInfo>::
423     RegisterDevice(0xA78A, &adlsGt1Info);
424 
425 static bool rplsGt1DeviceA78B = DeviceInfoFactory<GfxDeviceInfo>::
426     RegisterDevice(0xA78B, &adlsGt1Info);
427 
428 #endif
429 
430 
431 #ifdef IGFX_GEN12_ADLP_SUPPORTED
432 static struct GfxDeviceInfo adlpGt2Info = {
433     .platformType     = PLATFORM_MOBILE,
434     .productFamily    = IGFX_ALDERLAKE_P,
435     .displayFamily    = IGFX_GEN12_CORE,
436     .renderFamily     = IGFX_GEN12_CORE,
437     .mediaFamily      = IGFX_UNKNOWN_CORE,
438     .eGTType          = GTTYPE_GT2,
439     .L3CacheSizeInKb  = 0,
440     .L3BankCount      = 8,
441     .EUCount          = 0,
442     .SliceCount       = 0,
443     .SubSliceCount    = 0,
444     .MaxEuPerSubSlice = 0,
445     .isLCIA           = 0,
446     .hasLLC           = 0,
447     .hasERAM          = 0,
448     .InitMediaSysInfo = InitTglMediaSysInfo,
449     .InitShadowSku    = InitTglShadowSku,
450     .InitShadowWa     = InitTglShadowWa,
451 };
452 
453 static bool adlpGt2Device46A0 = DeviceInfoFactory<GfxDeviceInfo>::
454     RegisterDevice(0x46A0, &adlpGt2Info);
455 
456 static bool adlpGt2Device46A1 = DeviceInfoFactory<GfxDeviceInfo>::
457     RegisterDevice(0x46A1, &adlpGt2Info);
458 
459 static bool adlpGt2Device46A2 = DeviceInfoFactory<GfxDeviceInfo>::
460     RegisterDevice(0x46A2, &adlpGt2Info);
461 
462 static bool adlpGt2Device46A3 = DeviceInfoFactory<GfxDeviceInfo>::
463     RegisterDevice(0x46A3, &adlpGt2Info);
464 
465 static bool adlpGt2Device46A6 = DeviceInfoFactory<GfxDeviceInfo>::
466     RegisterDevice(0x46A6, &adlpGt2Info);
467 
468 static bool adlpGt2Device4626 = DeviceInfoFactory<GfxDeviceInfo>::
469     RegisterDevice(0x4626, &adlpGt2Info);
470 
471 static bool adlpGt2Device46B0 = DeviceInfoFactory<GfxDeviceInfo>::
472     RegisterDevice(0x46B0, &adlpGt2Info);
473 
474 static bool adlpGt2Device46B1 = DeviceInfoFactory<GfxDeviceInfo>::
475     RegisterDevice(0x46B1, &adlpGt2Info);
476 
477 static bool adlpGt2Device46B2 = DeviceInfoFactory<GfxDeviceInfo>::
478     RegisterDevice(0x46B2, &adlpGt2Info);
479 
480 static bool adlpGt2Device46B3 = DeviceInfoFactory<GfxDeviceInfo>::
481     RegisterDevice(0x46B3, &adlpGt2Info);
482 
483 static bool adlpGt2Device46A8 = DeviceInfoFactory<GfxDeviceInfo>::
484     RegisterDevice(0x46A8, &adlpGt2Info);
485 
486 static bool adlpGt2Device4628 = DeviceInfoFactory<GfxDeviceInfo>::
487     RegisterDevice(0x4628, &adlpGt2Info);
488 
489 static bool adlpGt2Device46C0 = DeviceInfoFactory<GfxDeviceInfo>::
490     RegisterDevice(0x46C0, &adlpGt2Info);
491 
492 static bool adlpGt2Device46C1 = DeviceInfoFactory<GfxDeviceInfo>::
493     RegisterDevice(0x46C1, &adlpGt2Info);
494 
495 static bool adlpGt2Device46C2 = DeviceInfoFactory<GfxDeviceInfo>::
496     RegisterDevice(0x46C2, &adlpGt2Info);
497 
498 static bool adlpGt2Device46C3 = DeviceInfoFactory<GfxDeviceInfo>::
499     RegisterDevice(0x46C3, &adlpGt2Info);
500 
501 static bool adlpGt2Device46AA = DeviceInfoFactory<GfxDeviceInfo>::
502     RegisterDevice(0x46AA, &adlpGt2Info);
503 
504 static bool adlpGt2Device462A = DeviceInfoFactory<GfxDeviceInfo>::
505     RegisterDevice(0x462A, &adlpGt2Info);
506 
507 static bool rplpGt2DeviceA7A0 = DeviceInfoFactory<GfxDeviceInfo>::
508     RegisterDevice(0xA7A0, &adlpGt2Info);
509 
510 static bool rplpGt2DeviceA720 = DeviceInfoFactory<GfxDeviceInfo>::
511     RegisterDevice(0xA720, &adlpGt2Info);
512 
513 static bool rplpGt2DeviceA7A8 = DeviceInfoFactory<GfxDeviceInfo>::
514     RegisterDevice(0xA7A8, &adlpGt2Info);
515 
516 static bool rplpGt2DeviceA7A1 = DeviceInfoFactory<GfxDeviceInfo>::
517     RegisterDevice(0xA7A1, &adlpGt2Info);
518 
519 static bool rplpGt2DeviceA721 = DeviceInfoFactory<GfxDeviceInfo>::
520     RegisterDevice(0xA721, &adlpGt2Info);
521 
522 static bool rplpGt2DeviceA7A9 = DeviceInfoFactory<GfxDeviceInfo>::
523     RegisterDevice(0xA7A9, &adlpGt2Info);
524 
525 static bool rplGt2DeviceA7AA = DeviceInfoFactory<GfxDeviceInfo>::
526     RegisterDevice(0xA7AA, &adlpGt2Info);
527 
528 static bool rplGt2DeviceA7AB = DeviceInfoFactory<GfxDeviceInfo>::
529     RegisterDevice(0xA7AB, &adlpGt2Info);
530 
531 static bool rplGt2DeviceA7AC = DeviceInfoFactory<GfxDeviceInfo>::
532     RegisterDevice(0xA7AC, &adlpGt2Info);
533 
534 static bool rplGt2DeviceA7AD = DeviceInfoFactory<GfxDeviceInfo>::
535     RegisterDevice(0xA7AD, &adlpGt2Info);
536 
537 #endif
538 
539 #ifdef IGFX_GEN12_ADLN_SUPPORTED
540 static struct GfxDeviceInfo adlnGt1Info = {
541     .platformType     = PLATFORM_MOBILE,
542     .productFamily    = IGFX_ALDERLAKE_N,
543     .displayFamily    = IGFX_GEN12_CORE,
544     .renderFamily     = IGFX_GEN12_CORE,
545     .mediaFamily      = IGFX_UNKNOWN_CORE,
546     .eGTType          = GTTYPE_GT1,
547     .L3CacheSizeInKb  = 0,
548     .L3BankCount      = 8,
549     .EUCount          = 0,
550     .SliceCount       = 0,
551     .SubSliceCount    = 0,
552     .MaxEuPerSubSlice = 0,
553     .isLCIA           = 0,
554     .hasLLC           = 0,
555     .hasERAM          = 0,
556     .InitMediaSysInfo = InitTglMediaSysInfo,
557     .InitShadowSku    = InitTglShadowSku,
558     .InitShadowWa     = InitTglShadowWa,
559 };
560 
561 static bool adlnGt1Device46D0 = DeviceInfoFactory<GfxDeviceInfo>::
562     RegisterDevice(0x46D0, &adlnGt1Info);
563 
564 static bool adlnGt1Device46D1 = DeviceInfoFactory<GfxDeviceInfo>::
565     RegisterDevice(0x46D1, &adlnGt1Info);
566 
567 static bool adlnGt1Device46D2 = DeviceInfoFactory<GfxDeviceInfo>::
568     RegisterDevice(0x46D2, &adlnGt1Info);
569 
570 static bool twlGt1Device46D3 = DeviceInfoFactory<GfxDeviceInfo>::
571     RegisterDevice(0x46D3, &adlnGt1Info);
572 
573 static bool twlGt1Device46D4 = DeviceInfoFactory<GfxDeviceInfo>::
574     RegisterDevice(0x46D4, &adlnGt1Info);
575 #endif
576 
577 
578 static bool tgllpGt2Device9a40 = DeviceInfoFactory<GfxDeviceInfo>::
579     RegisterDevice(0x9A40, &tgllpGt2Info);
580 
581 static bool tgllpGt2Device9a49 = DeviceInfoFactory<GfxDeviceInfo>::
582     RegisterDevice(0x9A49, &tgllpGt2Info);
583 
584 static bool tgllpGt2Device9a59 = DeviceInfoFactory<GfxDeviceInfo>::
585     RegisterDevice(0x9A59, &tgllpGt2Info);
586 
587 static bool tgllpGt2Device9a60 = DeviceInfoFactory<GfxDeviceInfo>::
588     RegisterDevice(0x9A60, &tgllpGt2Info);
589 
590 static bool tgllpGt2Device9a68 = DeviceInfoFactory<GfxDeviceInfo>::
591     RegisterDevice(0x9A68, &tgllpGt2Info);
592 
593 static bool tgllpGt2Device9a70 = DeviceInfoFactory<GfxDeviceInfo>::
594     RegisterDevice(0x9A70, &tgllpGt2Info);
595 
596 static bool tgllpGt1Device9a78 = DeviceInfoFactory<GfxDeviceInfo>::
597     RegisterDevice(0x9A78, &tgllpGt1Info);
598 
599 static bool tgllpGt2Device9ac9 = DeviceInfoFactory<GfxDeviceInfo>::
600     RegisterDevice(0x9AC9, &tgllpGt2Info);
601 
602 static bool tgllpGt2Device9af8 = DeviceInfoFactory<GfxDeviceInfo>::
603     RegisterDevice(0x9AF8, &tgllpGt2Info);
604 
605 static bool tgllpGt2Device9ac0 = DeviceInfoFactory<GfxDeviceInfo>::
606     RegisterDevice(0x9AC0, &tgllpGt2Info);
607 
608 static bool tgllpGt2Device9ad9 = DeviceInfoFactory<GfxDeviceInfo>::
609     RegisterDevice(0x9AD9, &tgllpGt2Info);
610 
611