@@ -385,127 +385,132 @@ unsigned int acpi_dev_get_irq_type(int triggering, int polarity)
385385}
386386EXPORT_SYMBOL_GPL (acpi_dev_get_irq_type );
387387
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 [] = {
389394 {
390- . ident = " MEDION P15651" ,
395+ /* MEDION P15651 */
391396 .matches = {
392397 DMI_MATCH (DMI_SYS_VENDOR , "MEDION" ),
393398 DMI_MATCH (DMI_BOARD_NAME , "M15T" ),
394399 },
395400 },
396401 {
397- . ident = " MEDION S17405" ,
402+ /* MEDION S17405 */
398403 .matches = {
399404 DMI_MATCH (DMI_SYS_VENDOR , "MEDION" ),
400405 DMI_MATCH (DMI_BOARD_NAME , "M17T" ),
401406 },
402407 },
403408 {
404- . ident = " MEDION S17413" ,
409+ /* MEDION S17413 */
405410 .matches = {
406411 DMI_MATCH (DMI_SYS_VENDOR , "MEDION" ),
407412 DMI_MATCH (DMI_BOARD_NAME , "M1xA" ),
408413 },
409414 },
410- { }
411- };
412-
413- static const struct dmi_system_id asus_laptop [] = {
414415 {
415- . ident = " Asus Vivobook K3402ZA" ,
416+ /* Asus Vivobook K3402ZA */
416417 .matches = {
417418 DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
418419 DMI_MATCH (DMI_BOARD_NAME , "K3402ZA" ),
419420 },
420421 },
421422 {
422- . ident = " Asus Vivobook K3502ZA" ,
423+ /* Asus Vivobook K3502ZA */
423424 .matches = {
424425 DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
425426 DMI_MATCH (DMI_BOARD_NAME , "K3502ZA" ),
426427 },
427428 },
428429 {
429- . ident = " Asus Vivobook S5402ZA" ,
430+ /* Asus Vivobook S5402ZA */
430431 .matches = {
431432 DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
432433 DMI_MATCH (DMI_BOARD_NAME , "S5402ZA" ),
433434 },
434435 },
435436 {
436- . ident = " Asus Vivobook S5602ZA" ,
437+ /* Asus Vivobook S5602ZA */
437438 .matches = {
438439 DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
439440 DMI_MATCH (DMI_BOARD_NAME , "S5602ZA" ),
440441 },
441442 },
442443 {
443- . ident = " Asus ExpertBook B1402CBA" ,
444+ /* Asus ExpertBook B1402CBA */
444445 .matches = {
445446 DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
446447 DMI_MATCH (DMI_BOARD_NAME , "B1402CBA" ),
447448 },
448449 },
449450 {
450- . ident = " Asus ExpertBook B1502CBA" ,
451+ /* Asus ExpertBook B1502CBA */
451452 .matches = {
452453 DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
453454 DMI_MATCH (DMI_BOARD_NAME , "B1502CBA" ),
454455 },
455456 },
456457 {
457- . ident = " Asus ExpertBook B2402CBA" ,
458+ /* Asus ExpertBook B2402CBA */
458459 .matches = {
459460 DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
460461 DMI_MATCH (DMI_BOARD_NAME , "B2402CBA" ),
461462 },
462463 },
463464 {
464- . ident = " Asus ExpertBook B2402FBA" ,
465+ /* Asus ExpertBook B2402FBA */
465466 .matches = {
466467 DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
467468 DMI_MATCH (DMI_BOARD_NAME , "B2402FBA" ),
468469 },
469470 },
470471 {
471- . ident = " Asus ExpertBook B2502" ,
472+ /* Asus ExpertBook B2502 */
472473 .matches = {
473474 DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
474475 DMI_MATCH (DMI_BOARD_NAME , "B2502CBA" ),
475476 },
476477 },
478+ {
479+ /* LG Electronics 17U70P */
480+ .matches = {
481+ DMI_MATCH (DMI_SYS_VENDOR , "LG Electronics" ),
482+ DMI_MATCH (DMI_BOARD_NAME , "17U70P" ),
483+ },
484+ },
477485 { }
478486};
479487
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 [] = {
481494 {
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 */
483496 .matches = {
484497 DMI_MATCH (DMI_BOARD_NAME , "GMxRGxx" ),
485498 },
486499 },
487- { }
488- };
489-
490- static const struct dmi_system_id maingear_laptop [] = {
491500 {
492- . ident = " MAINGEAR Vector Pro 2 15" ,
501+ /* MAINGEAR Vector Pro 2 15 */
493502 .matches = {
494503 DMI_MATCH (DMI_SYS_VENDOR , "Micro Electronics Inc" ),
495504 DMI_MATCH (DMI_PRODUCT_NAME , "MG-VCP2-15A3070T" ),
496505 }
497506 },
498507 {
499- . ident = " MAINGEAR Vector Pro 2 17" ,
508+ /* MAINGEAR Vector Pro 2 17 */
500509 .matches = {
501510 DMI_MATCH (DMI_SYS_VENDOR , "Micro Electronics Inc" ),
502511 DMI_MATCH (DMI_PRODUCT_NAME , "MG-VCP2-17A3070T" ),
503512 },
504513 },
505- { }
506- };
507-
508- static const struct dmi_system_id pcspecialist_laptop [] = {
509514 {
510515 /* TongFang GM6BGEQ / PCSpecialist Elimina Pro 16 M, RTX 3050 */
511516 .matches = {
@@ -527,17 +532,6 @@ static const struct dmi_system_id pcspecialist_laptop[] = {
527532 { }
528533};
529534
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-
541535struct irq_override_cmp {
542536 const struct dmi_system_id * system ;
543537 unsigned char irq ;
@@ -548,12 +542,8 @@ struct irq_override_cmp {
548542};
549543
550544static 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 },
557547};
558548
559549static bool acpi_dev_irq_override (u32 gsi , u8 triggering , u8 polarity ,
0 commit comments