@@ -385,127 +385,132 @@ unsigned int acpi_dev_get_irq_type(int triggering, int polarity)
385
385
}
386
386
EXPORT_SYMBOL_GPL (acpi_dev_get_irq_type );
387
387
388
- static const struct dmi_system_id medion_laptop [] = {
388
+ /*
389
+ * DMI matches for boards where the DSDT specifies the kbd IRQ as
390
+ * level active-low and using the override changes this to rising edge,
391
+ * stopping the keyboard from working.
392
+ */
393
+ static const struct dmi_system_id irq1_level_low_skip_override [] = {
389
394
{
390
- . ident = " MEDION P15651" ,
395
+ /* MEDION P15651 */
391
396
.matches = {
392
397
DMI_MATCH (DMI_SYS_VENDOR , "MEDION" ),
393
398
DMI_MATCH (DMI_BOARD_NAME , "M15T" ),
394
399
},
395
400
},
396
401
{
397
- . ident = " MEDION S17405" ,
402
+ /* MEDION S17405 */
398
403
.matches = {
399
404
DMI_MATCH (DMI_SYS_VENDOR , "MEDION" ),
400
405
DMI_MATCH (DMI_BOARD_NAME , "M17T" ),
401
406
},
402
407
},
403
408
{
404
- . ident = " MEDION S17413" ,
409
+ /* MEDION S17413 */
405
410
.matches = {
406
411
DMI_MATCH (DMI_SYS_VENDOR , "MEDION" ),
407
412
DMI_MATCH (DMI_BOARD_NAME , "M1xA" ),
408
413
},
409
414
},
410
- { }
411
- };
412
-
413
- static const struct dmi_system_id asus_laptop [] = {
414
415
{
415
- . ident = " Asus Vivobook K3402ZA" ,
416
+ /* Asus Vivobook K3402ZA */
416
417
.matches = {
417
418
DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
418
419
DMI_MATCH (DMI_BOARD_NAME , "K3402ZA" ),
419
420
},
420
421
},
421
422
{
422
- . ident = " Asus Vivobook K3502ZA" ,
423
+ /* Asus Vivobook K3502ZA */
423
424
.matches = {
424
425
DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
425
426
DMI_MATCH (DMI_BOARD_NAME , "K3502ZA" ),
426
427
},
427
428
},
428
429
{
429
- . ident = " Asus Vivobook S5402ZA" ,
430
+ /* Asus Vivobook S5402ZA */
430
431
.matches = {
431
432
DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
432
433
DMI_MATCH (DMI_BOARD_NAME , "S5402ZA" ),
433
434
},
434
435
},
435
436
{
436
- . ident = " Asus Vivobook S5602ZA" ,
437
+ /* Asus Vivobook S5602ZA */
437
438
.matches = {
438
439
DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
439
440
DMI_MATCH (DMI_BOARD_NAME , "S5602ZA" ),
440
441
},
441
442
},
442
443
{
443
- . ident = " Asus ExpertBook B1402CBA" ,
444
+ /* Asus ExpertBook B1402CBA */
444
445
.matches = {
445
446
DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
446
447
DMI_MATCH (DMI_BOARD_NAME , "B1402CBA" ),
447
448
},
448
449
},
449
450
{
450
- . ident = " Asus ExpertBook B1502CBA" ,
451
+ /* Asus ExpertBook B1502CBA */
451
452
.matches = {
452
453
DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
453
454
DMI_MATCH (DMI_BOARD_NAME , "B1502CBA" ),
454
455
},
455
456
},
456
457
{
457
- . ident = " Asus ExpertBook B2402CBA" ,
458
+ /* Asus ExpertBook B2402CBA */
458
459
.matches = {
459
460
DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
460
461
DMI_MATCH (DMI_BOARD_NAME , "B2402CBA" ),
461
462
},
462
463
},
463
464
{
464
- . ident = " Asus ExpertBook B2402FBA" ,
465
+ /* Asus ExpertBook B2402FBA */
465
466
.matches = {
466
467
DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
467
468
DMI_MATCH (DMI_BOARD_NAME , "B2402FBA" ),
468
469
},
469
470
},
470
471
{
471
- . ident = " Asus ExpertBook B2502" ,
472
+ /* Asus ExpertBook B2502 */
472
473
.matches = {
473
474
DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
474
475
DMI_MATCH (DMI_BOARD_NAME , "B2502CBA" ),
475
476
},
476
477
},
478
+ {
479
+ /* LG Electronics 17U70P */
480
+ .matches = {
481
+ DMI_MATCH (DMI_SYS_VENDOR , "LG Electronics" ),
482
+ DMI_MATCH (DMI_BOARD_NAME , "17U70P" ),
483
+ },
484
+ },
477
485
{ }
478
486
};
479
487
480
- static const struct dmi_system_id tongfang_gm_rg [] = {
488
+ /*
489
+ * DMI matches for AMD Zen boards where the DSDT specifies the kbd IRQ
490
+ * as falling edge and this must be overridden to rising edge,
491
+ * to have a working keyboard.
492
+ */
493
+ static const struct dmi_system_id irq1_edge_low_force_override [] = {
481
494
{
482
- . ident = " TongFang GMxRGxx/XMG CORE 15 (M22)/TUXEDO Stellaris 15 Gen4 AMD" ,
495
+ /* TongFang GMxRGxx/XMG CORE 15 (M22)/TUXEDO Stellaris 15 Gen4 AMD */
483
496
.matches = {
484
497
DMI_MATCH (DMI_BOARD_NAME , "GMxRGxx" ),
485
498
},
486
499
},
487
- { }
488
- };
489
-
490
- static const struct dmi_system_id maingear_laptop [] = {
491
500
{
492
- . ident = " MAINGEAR Vector Pro 2 15" ,
501
+ /* MAINGEAR Vector Pro 2 15 */
493
502
.matches = {
494
503
DMI_MATCH (DMI_SYS_VENDOR , "Micro Electronics Inc" ),
495
504
DMI_MATCH (DMI_PRODUCT_NAME , "MG-VCP2-15A3070T" ),
496
505
}
497
506
},
498
507
{
499
- . ident = " MAINGEAR Vector Pro 2 17" ,
508
+ /* MAINGEAR Vector Pro 2 17 */
500
509
.matches = {
501
510
DMI_MATCH (DMI_SYS_VENDOR , "Micro Electronics Inc" ),
502
511
DMI_MATCH (DMI_PRODUCT_NAME , "MG-VCP2-17A3070T" ),
503
512
},
504
513
},
505
- { }
506
- };
507
-
508
- static const struct dmi_system_id pcspecialist_laptop [] = {
509
514
{
510
515
/* TongFang GM6BGEQ / PCSpecialist Elimina Pro 16 M, RTX 3050 */
511
516
.matches = {
@@ -527,17 +532,6 @@ static const struct dmi_system_id pcspecialist_laptop[] = {
527
532
{ }
528
533
};
529
534
530
- static const struct dmi_system_id lg_laptop [] = {
531
- {
532
- .ident = "LG Electronics 17U70P" ,
533
- .matches = {
534
- DMI_MATCH (DMI_SYS_VENDOR , "LG Electronics" ),
535
- DMI_MATCH (DMI_BOARD_NAME , "17U70P" ),
536
- },
537
- },
538
- { }
539
- };
540
-
541
535
struct irq_override_cmp {
542
536
const struct dmi_system_id * system ;
543
537
unsigned char irq ;
@@ -548,12 +542,8 @@ struct irq_override_cmp {
548
542
};
549
543
550
544
static const struct irq_override_cmp override_table [] = {
551
- { medion_laptop , 1 , ACPI_LEVEL_SENSITIVE , ACPI_ACTIVE_LOW , 0 , false },
552
- { asus_laptop , 1 , ACPI_LEVEL_SENSITIVE , ACPI_ACTIVE_LOW , 0 , false },
553
- { tongfang_gm_rg , 1 , ACPI_EDGE_SENSITIVE , ACPI_ACTIVE_LOW , 1 , true },
554
- { maingear_laptop , 1 , ACPI_EDGE_SENSITIVE , ACPI_ACTIVE_LOW , 1 , true },
555
- { pcspecialist_laptop , 1 , ACPI_EDGE_SENSITIVE , ACPI_ACTIVE_LOW , 1 , true },
556
- { lg_laptop , 1 , ACPI_LEVEL_SENSITIVE , ACPI_ACTIVE_LOW , 0 , false },
545
+ { irq1_level_low_skip_override , 1 , ACPI_LEVEL_SENSITIVE , ACPI_ACTIVE_LOW , 0 , false },
546
+ { irq1_edge_low_force_override , 1 , ACPI_EDGE_SENSITIVE , ACPI_ACTIVE_LOW , 1 , true },
557
547
};
558
548
559
549
static bool acpi_dev_irq_override (u32 gsi , u8 triggering , u8 polarity ,
0 commit comments