BTN_MISC
case 0x036: map_key_clear(BTN_MISC); break;
map_key(BTN_MISC);
default: code += BTN_MISC;
input_report_key(hidpp->input, BTN_MISC + i,
if (code < BTN_MISC || value == 2)
event.number = joydev->keymap[code - BTN_MISC];
if (keypam[i] > KEY_MAX || keypam[i] < BTN_MISC) {
__u16 keymap[KEY_MAX - BTN_MISC + 1];
joydev->keymap[joydev->keypam[i] - BTN_MISC] = i;
__u16 keypam[KEY_MAX - BTN_MISC + 1];
for (i = BTN_JOYSTICK - BTN_MISC; i < KEY_MAX - BTN_MISC + 1; i++)
if (test_bit(i + BTN_MISC, dev->keybit)) {
joydev->keypam[joydev->nkey] = i + BTN_MISC;
for (i = 0; i < BTN_JOYSTICK - BTN_MISC; i++)
if (test_bit(i + BTN_MISC, dev->keybit)) {
joydev->keypam[joydev->nkey] = i + BTN_MISC;
btntype = BTN_MISC;
if (keycode < BTN_MISC && printk_ratelimit())
if (find_next_bit(dev->keybit, BTN_MISC, KEY_RESERVED) <
BTN_MISC)
#define JSIOCSBTNMAP _IOW('j', 0x33, __u16[KEY_MAX - BTN_MISC + 1]) /* set button mapping */
#define JSIOCGBTNMAP _IOR('j', 0x34, __u16[KEY_MAX - BTN_MISC + 1]) /* get button mapping */
#define KONTROLS4_BUTTON(X) ((X) + BTN_MISC)
#define MASCHINE_BUTTON(X) ((X) + BTN_MISC)
cdev->keycode[i] = BTN_MISC + i;