Hans de Goede
a5d81646fa
HID: apple: Disable Fn-key key-re-mapping on clone keyboards
...
The Maxxter KB-BT-001 Bluetooth keyboard, which looks somewhat like the
Apple Wireless Keyboard, is using the vendor and product IDs (05AC:0239)
of the Apple Wireless Keyboard (2009 ANSI version) <sigh>.
But its F1 - F10 keys are marked as sending F1 - F10, not the special
functions hid-apple.c maps them too; and since its descriptors do not
contain the HID_UP_CUSTOM | 0x0003 usage apple-hid looks for for the
Fn-key, apple_setup_input() never gets called, so F1 - F6 are mapped
to key-codes which have not been set in the keybit array causing them
to not send any events at all.
The lack of a usage code matching the Fn key in the clone is actually
useful as this allows solving this problem in a generic way.
This commits adds a fn_found flag and it adds a input_configured
callback which checks if this flag is set once all usages have been
mapped. If it is not set, then assume this is a clone and clear the
quirks bitmap so that the hid-apple code does not add any special
handling to this keyboard.
This fixes F1 - F6 not sending anything at all and F7 - F12 sending
the wrong codes on the Maxxter KB-BT-001 Bluetooth keyboard and on
similar clones.
Cc: Joao Moreno <mail@joaomoreno.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2020-06-24 09:49:04 +02:00
..
2020-06-16 17:18:30 +02:00
2020-05-05 09:54:25 +02:00
2020-04-29 16:24:26 +02:00
2019-08-05 14:37:15 +02:00
2019-05-30 11:26:32 -07:00
2020-06-16 17:30:12 +02:00
2020-06-24 09:49:04 +02:00
2020-03-13 17:33:11 +01:00
2020-05-06 11:40:03 +02:00
2019-05-21 10:50:45 +02:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-02-18 14:43:51 +01:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:36:37 +02:00
2020-02-12 14:18:33 +01:00
2019-05-30 11:26:32 -07:00
2019-08-22 17:11:58 +02:00
2019-08-19 14:13:00 +02:00
2019-09-03 16:52:04 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:37:04 +02:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-08-22 17:11:58 +02:00
2020-03-18 13:36:21 +01:00
2020-03-16 14:51:05 +01:00
2019-05-30 11:26:37 -07:00
2019-05-30 11:26:32 -07:00
2019-08-05 14:18:42 +02:00
2019-05-30 11:26:32 -07:00
2019-10-03 15:36:40 -04:00
2020-03-05 14:17:11 +00:00
2019-05-30 11:26:32 -07:00
2020-06-16 17:26:20 +02:00
2019-12-13 13:43:15 +01:00
2020-02-03 15:32:44 +01:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:37:10 +02:00
2019-08-22 17:11:58 +02:00
2019-10-03 15:36:40 -04:00
2019-10-03 15:36:40 -04:00
2019-10-03 15:36:40 -04:00
2017-11-02 11:10:55 +01:00
2020-04-14 11:15:36 +02:00
2019-08-22 09:53:08 +02:00
2017-11-02 11:10:55 +01:00
2019-10-03 15:36:40 -04:00
2020-04-06 11:38:35 +02:00
2020-04-06 11:38:35 +02:00
2019-04-03 17:14:13 +02:00
2020-06-16 17:34:14 +02:00
2019-01-14 20:11:01 +01:00
2020-04-16 22:15:31 +02:00
2019-05-30 11:26:37 -07:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2020-05-27 13:40:17 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:30:28 +02:00
2019-06-05 17:30:28 +02:00
2019-08-22 17:11:58 +02:00
2019-06-05 17:30:28 +02:00
2020-04-01 12:26:12 +02:00
2019-06-05 17:30:28 +02:00
2019-06-05 17:30:28 +02:00
2019-06-05 17:30:28 +02:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:36:37 +02:00
2019-10-01 16:21:04 +02:00
2020-06-16 17:26:20 +02:00
2018-06-25 15:23:40 +02:00
2019-05-30 11:26:32 -07:00
2020-03-23 00:08:51 +01:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-03-11 11:58:58 +01:00
2019-08-22 17:11:58 +02:00
2019-05-30 11:26:35 -07:00
2020-05-26 11:00:49 +02:00
2019-05-30 11:26:32 -07:00
2020-06-19 09:21:21 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:29:19 -07:00
2019-04-17 16:39:43 +02:00
2019-07-10 01:40:23 +02:00
2019-07-10 01:40:23 +02:00
2019-02-21 12:00:54 +01:00
2019-02-21 12:00:54 +01:00
2019-02-21 12:00:54 +01:00
2019-06-05 17:36:37 +02:00
2019-02-21 12:00:53 +01:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2020-01-27 15:49:30 +01:00
2020-06-03 22:23:52 +02:00
2020-04-01 13:36:46 +02:00
2020-01-10 15:34:28 +01:00
2020-04-03 12:10:22 +02:00
2020-04-29 21:40:53 +02:00
2019-07-10 01:39:57 +02:00
2019-11-06 21:37:29 +01:00