File tree Expand file tree Collapse file tree 4 files changed +57
-0
lines changed Expand file tree Collapse file tree 4 files changed +57
-0
lines changed Original file line number Diff line number Diff line change @@ -230,6 +230,16 @@ config HID_COUGAR
230
230
Supported devices:
231
231
- Cougar 500k Gaming Keyboard
232
232
233
+ config HID_MACALLY
234
+ tristate "Macally devices"
235
+ depends on HID
236
+ help
237
+ Support for Macally devices that are not fully compliant with the
238
+ HID standard.
239
+
240
+ supported devices:
241
+ - Macally ikey keyboard
242
+
233
243
config HID_PRODIKEYS
234
244
tristate "Prodikeys PC-MIDI Keyboard support"
235
245
depends on HID && SND
Original file line number Diff line number Diff line change @@ -65,6 +65,7 @@ obj-$(CONFIG_HID_LENOVO) += hid-lenovo.o
65
65
obj-$(CONFIG_HID_LOGITECH) += hid-logitech.o
66
66
obj-$(CONFIG_HID_LOGITECH_DJ) += hid-logitech-dj.o
67
67
obj-$(CONFIG_HID_LOGITECH_HIDPP) += hid-logitech-hidpp.o
68
+ obj-$(CONFIG_HID_MACALLY) += hid-macally.o
68
69
obj-$(CONFIG_HID_MAGICMOUSE) += hid-magicmouse.o
69
70
obj-$(CONFIG_HID_MALTRON) += hid-maltron.o
70
71
obj-$(CONFIG_HID_MAYFLASH) += hid-mf.o
Original file line number Diff line number Diff line change 1034
1034
#define USB_DEVICE_ID_SINO_LITE_CONTROLLER 0x3008
1035
1035
1036
1036
#define USB_VENDOR_ID_SOLID_YEAR 0x060b
1037
+ #define USB_DEVICE_ID_MACALLY_IKEY_KEYBOARD 0x0001
1037
1038
#define USB_DEVICE_ID_COUGAR_500K_GAMING_KEYBOARD 0x500a
1038
1039
#define USB_DEVICE_ID_COUGAR_700K_GAMING_KEYBOARD 0x700a
1039
1040
Original file line number Diff line number Diff line change
1
+ // SPDX-License-Identifier: GPL-2.0+
2
+ /*
3
+ * HID driver for quirky Macally devices
4
+ *
5
+ * Copyright (c) 2019 Alex Henrie <[email protected] >
6
+ */
7
+
8
+ #include <linux/hid.h>
9
+ #include <linux/module.h>
10
+
11
+ #include "hid-ids.h"
12
+
13
+ MODULE_AUTHOR (
"Alex Henrie <[email protected] >" );
14
+ MODULE_DESCRIPTION ("Macally devices" );
15
+ MODULE_LICENSE ("GPL" );
16
+
17
+ /*
18
+ * The Macally ikey keyboard says that its logical and usage maximums are both
19
+ * 101, but the power key is 102 and the equals key is 103
20
+ */
21
+ static __u8 * macally_report_fixup (struct hid_device * hdev , __u8 * rdesc ,
22
+ unsigned int * rsize )
23
+ {
24
+ if (* rsize >= 60 && rdesc [53 ] == 0x65 && rdesc [59 ] == 0x65 ) {
25
+ hid_info (hdev ,
26
+ "fixing up Macally ikey keyboard report descriptor\n" );
27
+ rdesc [53 ] = rdesc [59 ] = 0x67 ;
28
+ }
29
+ return rdesc ;
30
+ }
31
+
32
+ static struct hid_device_id macally_id_table [] = {
33
+ { HID_USB_DEVICE (USB_VENDOR_ID_SOLID_YEAR ,
34
+ USB_DEVICE_ID_MACALLY_IKEY_KEYBOARD ) },
35
+ { }
36
+ };
37
+ MODULE_DEVICE_TABLE (hid , macally_id_table );
38
+
39
+ static struct hid_driver macally_driver = {
40
+ .name = "macally" ,
41
+ .id_table = macally_id_table ,
42
+ .report_fixup = macally_report_fixup ,
43
+ };
44
+
45
+ module_hid_driver (macally_driver );
You can’t perform that action at this time.
0 commit comments