[PATCH] macintosh/adbhid.c: adb buttons support for aluminium PowerBook G4
This patch adds support for the special adb buttons of the aluminium PowerBook G4. Signed-off-by: Andreas Jaggi <andreas.jaggi@waterwave.ch> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
616299afce
Коммит
146a4b3bdf
|
@ -555,6 +555,42 @@ adbhid_buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int auto
|
|||
#endif /* CONFIG_PMAC_BACKLIGHT */
|
||||
input_report_key(&adbhid[id]->input, KEY_BRIGHTNESSUP, down);
|
||||
break;
|
||||
|
||||
case 0xc: /* videomode switch */
|
||||
input_report_key(&adbhid[id]->input, KEY_SWITCHVIDEOMODE, down);
|
||||
break;
|
||||
|
||||
case 0xd: /* keyboard illumination toggle */
|
||||
input_report_key(&adbhid[id]->input, KEY_KBDILLUMTOGGLE, down);
|
||||
break;
|
||||
|
||||
case 0xe: /* keyboard illumination decrease */
|
||||
input_report_key(&adbhid[id]->input, KEY_KBDILLUMDOWN, down);
|
||||
break;
|
||||
|
||||
case 0xf:
|
||||
switch (data[1]) {
|
||||
case 0x8f:
|
||||
case 0x0f:
|
||||
/* keyboard illumination increase */
|
||||
input_report_key(&adbhid[id]->input, KEY_KBDILLUMUP, down);
|
||||
break;
|
||||
|
||||
case 0x7f:
|
||||
case 0xff:
|
||||
/* keypad overlay toogle */
|
||||
break;
|
||||
|
||||
default:
|
||||
printk(KERN_INFO "Unhandled ADB_MISC event %02x, %02x, %02x, %02x\n",
|
||||
data[0], data[1], data[2], data[3]);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
printk(KERN_INFO "Unhandled ADB_MISC event %02x, %02x, %02x, %02x\n",
|
||||
data[0], data[1], data[2], data[3]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -775,6 +811,10 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
|
|||
set_bit(KEY_BRIGHTNESSUP, adbhid[id]->input.keybit);
|
||||
set_bit(KEY_BRIGHTNESSDOWN, adbhid[id]->input.keybit);
|
||||
set_bit(KEY_EJECTCD, adbhid[id]->input.keybit);
|
||||
set_bit(KEY_SWITCHVIDEOMODE, adbhid[id]->input.keybit);
|
||||
set_bit(KEY_KBDILLUMTOGGLE, adbhid[id]->input.keybit);
|
||||
set_bit(KEY_KBDILLUMDOWN, adbhid[id]->input.keybit);
|
||||
set_bit(KEY_KBDILLUMUP, adbhid[id]->input.keybit);
|
||||
break;
|
||||
}
|
||||
if (adbhid[id]->name[0])
|
||||
|
|
|
@ -328,6 +328,11 @@ struct input_absinfo {
|
|||
#define KEY_BRIGHTNESSUP 225
|
||||
#define KEY_MEDIA 226
|
||||
|
||||
#define KEY_SWITCHVIDEOMODE 227
|
||||
#define KEY_KBDILLUMTOGGLE 228
|
||||
#define KEY_KBDILLUMDOWN 229
|
||||
#define KEY_KBDILLUMUP 230
|
||||
|
||||
#define KEY_UNKNOWN 240
|
||||
|
||||
#define BTN_MISC 0x100
|
||||
|
|
Загрузка…
Ссылка в новой задаче