2828#define APPLE_IGNORE_MOUSE 0x0002
2929#define APPLE_HAS_FN 0x0004
3030#define APPLE_HIDDEV 0x0008
31- #define APPLE_ISO_KEYBOARD 0x0010
31+ /* 0x0010 reserved, was: APPLE_ISO_KEYBOARD */
3232#define APPLE_MIGHTYMOUSE 0x0020
3333#define APPLE_INVERT_HWHEEL 0x0040
3434#define APPLE_IGNORE_HIDINPUT 0x0080
3535#define APPLE_NUMLOCK_EMULATION 0x0100
3636
3737#define APPLE_FLAG_FKEY 0x01
3838
39+ #define HID_COUNTRY_INTERNATIONAL_ISO 13
40+
3941static unsigned int fnmode = 1 ;
4042module_param (fnmode , uint , 0644 );
4143MODULE_PARM_DESC (fnmode , "Mode of fn key on Apple keyboards (0 = disabled, "
@@ -247,7 +249,7 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
247249 }
248250
249251 if (iso_layout ) {
250- if (asc -> quirks & APPLE_ISO_KEYBOARD ) {
252+ if (hid -> country == HID_COUNTRY_INTERNATIONAL_ISO ) {
251253 trans = apple_find_translation (apple_iso_keyboard , usage -> code );
252254 if (trans ) {
253255 input_event (input , usage -> type , trans -> to , value );
@@ -412,60 +414,54 @@ static const struct hid_device_id apple_devices[] = {
412414 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER_ANSI ),
413415 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
414416 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER_ISO ),
415- .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
416- APPLE_ISO_KEYBOARD },
417+ .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
417418 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER_JIS ),
418419 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
419420 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER3_ANSI ),
420421 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
421422 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER3_ISO ),
422- .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
423- APPLE_ISO_KEYBOARD },
423+ .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
424424 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER3_JIS ),
425425 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
426426 APPLE_RDESC_JIS },
427427 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_ANSI ),
428428 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
429429 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_ISO ),
430- .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
431- APPLE_ISO_KEYBOARD },
430+ .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
432431 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_JIS ),
433432 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
434433 APPLE_RDESC_JIS },
435434 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_MINI_ANSI ),
436435 .driver_data = APPLE_HAS_FN },
437436 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_MINI_ISO ),
438- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
437+ .driver_data = APPLE_HAS_FN },
439438 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_MINI_JIS ),
440439 .driver_data = APPLE_HAS_FN },
441440 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_ANSI ),
442441 .driver_data = APPLE_HAS_FN },
443442 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_ISO ),
444- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
443+ .driver_data = APPLE_HAS_FN },
445444 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_JIS ),
446445 .driver_data = APPLE_HAS_FN },
447446 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI ),
448447 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
449448 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO ),
450- .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
451- APPLE_ISO_KEYBOARD },
449+ .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
452450 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS ),
453451 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
454452 APPLE_RDESC_JIS },
455453 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_REVB_ANSI ),
456454 .driver_data = APPLE_HAS_FN },
457455 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_REVB_ISO ),
458- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
456+ .driver_data = APPLE_HAS_FN },
459457 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_REVB_JIS ),
460458 .driver_data = APPLE_HAS_FN },
461459 { HID_BLUETOOTH_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI ),
462460 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
463461 { HID_BLUETOOTH_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO ),
464- .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
465- APPLE_ISO_KEYBOARD },
462+ .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
466463 { HID_BLUETOOTH_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO ),
467- .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
468- APPLE_ISO_KEYBOARD },
464+ .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
469465 { HID_BLUETOOTH_DEVICE (USB_VENDOR_ID_APPLE ,
470466 USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI ),
471467 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
@@ -479,86 +475,85 @@ static const struct hid_device_id apple_devices[] = {
479475 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING_ANSI ),
480476 .driver_data = APPLE_HAS_FN },
481477 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING_ISO ),
482- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
478+ .driver_data = APPLE_HAS_FN },
483479 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING_JIS ),
484480 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
485481 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI ),
486482 .driver_data = APPLE_HAS_FN },
487483 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING2_ISO ),
488- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
484+ .driver_data = APPLE_HAS_FN },
489485 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING2_JIS ),
490486 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
491487 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI ),
492488 .driver_data = APPLE_HAS_FN },
493489 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING3_ISO ),
494- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
490+ .driver_data = APPLE_HAS_FN },
495491 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING3_JIS ),
496492 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
497493 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI ),
498494 .driver_data = APPLE_HAS_FN },
499495 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4_ISO ),
500- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
496+ .driver_data = APPLE_HAS_FN },
501497 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4_JIS ),
502498 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
503499 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI ),
504500 .driver_data = APPLE_HAS_FN },
505501 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO ),
506- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
502+ .driver_data = APPLE_HAS_FN },
507503 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS ),
508504 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
509505 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI ),
510506 .driver_data = APPLE_HAS_FN },
511507 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5_ISO ),
512- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
508+ .driver_data = APPLE_HAS_FN },
513509 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5_JIS ),
514510 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
515511 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI ),
516512 .driver_data = APPLE_HAS_FN },
517513 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6_ISO ),
518- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
514+ .driver_data = APPLE_HAS_FN },
519515 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6_JIS ),
520516 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
521517 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI ),
522518 .driver_data = APPLE_HAS_FN },
523519 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO ),
524- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
520+ .driver_data = APPLE_HAS_FN },
525521 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS ),
526522 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
527523 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5A_ANSI ),
528524 .driver_data = APPLE_HAS_FN },
529525 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5A_ISO ),
530- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
526+ .driver_data = APPLE_HAS_FN },
531527 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS ),
532528 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
533529 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI ),
534530 .driver_data = APPLE_HAS_FN },
535531 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7_ISO ),
536- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
532+ .driver_data = APPLE_HAS_FN },
537533 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7_JIS ),
538534 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
539535 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7A_ANSI ),
540536 .driver_data = APPLE_HAS_FN },
541537 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7A_ISO ),
542- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
538+ .driver_data = APPLE_HAS_FN },
543539 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7A_JIS ),
544540 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
545541 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI ),
546542 .driver_data = APPLE_HAS_FN },
547543 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING8_ISO ),
548- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
544+ .driver_data = APPLE_HAS_FN },
549545 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING8_JIS ),
550546 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
551547 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING9_ANSI ),
552548 .driver_data = APPLE_HAS_FN },
553549 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING9_ISO ),
554- .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
550+ .driver_data = APPLE_HAS_FN },
555551 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING9_JIS ),
556552 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
557553 { HID_BLUETOOTH_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI ),
558554 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
559555 { HID_BLUETOOTH_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO ),
560- .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
561- APPLE_ISO_KEYBOARD },
556+ .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
562557 { HID_BLUETOOTH_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS ),
563558 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
564559 { HID_USB_DEVICE (USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY ),
0 commit comments