Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Input: add HID simulation mappings

Add simulation usage page mappings to hid-input.c to support
a new crop of joysticks using them to designate Rudder and
Throttle controls.

Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

authored by

Vojtech Pavlik and committed by
Dmitry Torokhov
0aebfdac b8c9c642

+27
+17
drivers/usb/input/hid-debug.h
··· 85 85 {0, 0x91, "D-PadDown"}, 86 86 {0, 0x92, "D-PadRight"}, 87 87 {0, 0x93, "D-PadLeft"}, 88 + { 2, 0, "Simulation" }, 89 + {0, 0xb0, "Aileron"}, 90 + {0, 0xb1, "AileronTrim"}, 91 + {0, 0xb2, "Anti-Torque"}, 92 + {0, 0xb3, "Autopilot"}, 93 + {0, 0xb4, "Chaff"}, 94 + {0, 0xb5, "Collective"}, 95 + {0, 0xb6, "DiveBrake"}, 96 + {0, 0xb7, "ElectronicCountermeasures"}, 97 + {0, 0xb8, "Elevator"}, 98 + {0, 0xb9, "ElevatorTrim"}, 99 + {0, 0xba, "Rudder"}, 100 + {0, 0xbb, "Throttle"}, 101 + {0, 0xbc, "FlightCommunications"}, 102 + {0, 0xbd, "FlareRelease"}, 103 + {0, 0xbe, "LandingGear"}, 104 + {0, 0xbf, "ToeBrake"}, 88 105 { 7, 0, "Keyboard" }, 89 106 { 8, 0, "LED" }, 90 107 {0, 0x01, "NumLock"},
+9
drivers/usb/input/hid-input.c
··· 131 131 map_key(code); 132 132 break; 133 133 134 + 135 + case HID_UP_SIMULATION: 136 + 137 + switch (usage->hid & 0xffff) { 138 + case 0xba: map_abs(ABS_RUDDER); break; 139 + case 0xbb: map_abs(ABS_THROTTLE); break; 140 + } 141 + break; 142 + 134 143 case HID_UP_GENDESK: 135 144 136 145 if ((usage->hid & 0xf0) == 0x80) { /* SystemControl */
+1
drivers/usb/input/hid.h
··· 173 173 174 174 #define HID_UP_UNDEFINED 0x00000000 175 175 #define HID_UP_GENDESK 0x00010000 176 + #define HID_UP_SIMULATION 0x00020000 176 177 #define HID_UP_KEYBOARD 0x00070000 177 178 #define HID_UP_LED 0x00080000 178 179 #define HID_UP_BUTTON 0x00090000