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