@@ -67,14 +67,6 @@ enum intel_vsec_id {
67
67
VSEC_ID_TPMI = 66 ,
68
68
};
69
69
70
- static enum intel_vsec_id intel_vsec_allow_list [] = {
71
- VSEC_ID_TELEMETRY ,
72
- VSEC_ID_WATCHER ,
73
- VSEC_ID_CRASHLOG ,
74
- VSEC_ID_SDSI ,
75
- VSEC_ID_TPMI ,
76
- };
77
-
78
70
static const char * intel_vsec_name (enum intel_vsec_id id )
79
71
{
80
72
switch (id ) {
@@ -98,26 +90,19 @@ static const char *intel_vsec_name(enum intel_vsec_id id)
98
90
}
99
91
}
100
92
101
- static bool intel_vsec_allowed (u16 id )
102
- {
103
- int i ;
104
-
105
- for (i = 0 ; i < ARRAY_SIZE (intel_vsec_allow_list ); i ++ )
106
- if (intel_vsec_allow_list [i ] == id )
107
- return true;
108
-
109
- return false;
110
- }
111
-
112
- static bool intel_vsec_disabled (u16 id , unsigned long quirks )
93
+ static bool intel_vsec_supported (u16 id , unsigned long caps )
113
94
{
114
95
switch (id ) {
96
+ case VSEC_ID_TELEMETRY :
97
+ return !!(caps & VSEC_CAP_TELEMETRY );
115
98
case VSEC_ID_WATCHER :
116
- return !!(quirks & VSEC_QUIRK_NO_WATCHER );
117
-
99
+ return !!(caps & VSEC_CAP_WATCHER );
118
100
case VSEC_ID_CRASHLOG :
119
- return !!(quirks & VSEC_QUIRK_NO_CRASHLOG );
120
-
101
+ return !!(caps & VSEC_CAP_CRASHLOG );
102
+ case VSEC_ID_SDSI :
103
+ return !!(caps & VSEC_CAP_SDSI );
104
+ case VSEC_ID_TPMI :
105
+ return !!(caps & VSEC_CAP_TPMI );
121
106
default :
122
107
return false;
123
108
}
@@ -205,7 +190,7 @@ static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header *he
205
190
unsigned long quirks = info -> quirks ;
206
191
int i ;
207
192
208
- if (!intel_vsec_allowed (header -> id ) || intel_vsec_disabled ( header -> id , quirks ))
193
+ if (!intel_vsec_supported (header -> id , info -> caps ))
209
194
return - EINVAL ;
210
195
211
196
if (!header -> num_entries ) {
@@ -260,14 +245,14 @@ static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header *he
260
245
static bool intel_vsec_walk_header (struct pci_dev * pdev ,
261
246
struct intel_vsec_platform_info * info )
262
247
{
263
- struct intel_vsec_header * * header = info -> capabilities ;
248
+ struct intel_vsec_header * * header = info -> headers ;
264
249
bool have_devices = false;
265
250
int ret ;
266
251
267
252
for ( ; * header ; header ++ ) {
268
253
ret = intel_vsec_add_dev (pdev , * header , info );
269
254
if (ret )
270
- dev_info (& pdev -> dev , "Could not add device for DVSEC id %d\n" ,
255
+ dev_info (& pdev -> dev , "Could not add device for VSEC id %d\n" ,
271
256
(* header )-> id );
272
257
else
273
258
have_devices = true;
@@ -402,14 +387,8 @@ static int intel_vsec_pci_probe(struct pci_dev *pdev, const struct pci_device_id
402
387
return 0 ;
403
388
}
404
389
405
- /* TGL info */
406
- static const struct intel_vsec_platform_info tgl_info = {
407
- .quirks = VSEC_QUIRK_NO_WATCHER | VSEC_QUIRK_NO_CRASHLOG |
408
- VSEC_QUIRK_TABLE_SHIFT | VSEC_QUIRK_EARLY_HW ,
409
- };
410
-
411
390
/* DG1 info */
412
- static struct intel_vsec_header dg1_telemetry = {
391
+ static struct intel_vsec_header dg1_header = {
413
392
.length = 0x10 ,
414
393
.id = 2 ,
415
394
.num_entries = 1 ,
@@ -418,19 +397,31 @@ static struct intel_vsec_header dg1_telemetry = {
418
397
.offset = 0x466000 ,
419
398
};
420
399
421
- static struct intel_vsec_header * dg1_capabilities [] = {
422
- & dg1_telemetry ,
400
+ static struct intel_vsec_header * dg1_headers [] = {
401
+ & dg1_header ,
423
402
NULL
424
403
};
425
404
426
405
static const struct intel_vsec_platform_info dg1_info = {
427
- .capabilities = dg1_capabilities ,
406
+ .caps = VSEC_CAP_TELEMETRY ,
407
+ .headers = dg1_headers ,
428
408
.quirks = VSEC_QUIRK_NO_DVSEC | VSEC_QUIRK_EARLY_HW ,
429
409
};
430
410
431
411
/* MTL info */
432
412
static const struct intel_vsec_platform_info mtl_info = {
433
- .quirks = VSEC_QUIRK_NO_WATCHER | VSEC_QUIRK_NO_CRASHLOG ,
413
+ .caps = VSEC_CAP_TELEMETRY ,
414
+ };
415
+
416
+ /* OOBMSM info */
417
+ static const struct intel_vsec_platform_info oobmsm_info = {
418
+ .caps = VSEC_CAP_TELEMETRY | VSEC_CAP_SDSI | VSEC_CAP_TPMI ,
419
+ };
420
+
421
+ /* TGL info */
422
+ static const struct intel_vsec_platform_info tgl_info = {
423
+ .caps = VSEC_CAP_TELEMETRY ,
424
+ .quirks = VSEC_QUIRK_TABLE_SHIFT | VSEC_QUIRK_EARLY_HW ,
434
425
};
435
426
436
427
#define PCI_DEVICE_ID_INTEL_VSEC_ADL 0x467d
@@ -445,7 +436,7 @@ static const struct pci_device_id intel_vsec_pci_ids[] = {
445
436
{ PCI_DEVICE_DATA (INTEL , VSEC_DG1 , & dg1_info ) },
446
437
{ PCI_DEVICE_DATA (INTEL , VSEC_MTL_M , & mtl_info ) },
447
438
{ PCI_DEVICE_DATA (INTEL , VSEC_MTL_S , & mtl_info ) },
448
- { PCI_DEVICE_DATA (INTEL , VSEC_OOBMSM , & ( struct intel_vsec_platform_info ) {} ) },
439
+ { PCI_DEVICE_DATA (INTEL , VSEC_OOBMSM , & oobmsm_info ) },
449
440
{ PCI_DEVICE_DATA (INTEL , VSEC_RPL , & tgl_info ) },
450
441
{ PCI_DEVICE_DATA (INTEL , VSEC_TGL , & tgl_info ) },
451
442
{ }
0 commit comments