diff options
author | Andreas Jaggi <andreas.jaggi@waterwave.ch> | 2005-05-01 11:58:41 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-01 11:58:41 -0400 |
commit | 146a4b3bdfb5641bfbf975e29680b482b8b343ba (patch) | |
tree | b483a82225ad7f7a83848dc3c7d436eddfd377be | |
parent | 616299afcebfb2228f45a95aac7e63704c3733fc (diff) |
[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>
-rw-r--r-- | drivers/macintosh/adbhid.c | 40 | ||||
-rw-r--r-- | include/linux/input.h | 5 |
2 files changed, 45 insertions, 0 deletions
diff --git a/drivers/macintosh/adbhid.c b/drivers/macintosh/adbhid.c index 8f93d01d8928..db654e8bd67e 100644 --- a/drivers/macintosh/adbhid.c +++ b/drivers/macintosh/adbhid.c | |||
@@ -555,6 +555,42 @@ adbhid_buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int auto | |||
555 | #endif /* CONFIG_PMAC_BACKLIGHT */ | 555 | #endif /* CONFIG_PMAC_BACKLIGHT */ |
556 | input_report_key(&adbhid[id]->input, KEY_BRIGHTNESSUP, down); | 556 | input_report_key(&adbhid[id]->input, KEY_BRIGHTNESSUP, down); |
557 | break; | 557 | break; |
558 | |||
559 | case 0xc: /* videomode switch */ | ||
560 | input_report_key(&adbhid[id]->input, KEY_SWITCHVIDEOMODE, down); | ||
561 | break; | ||
562 | |||
563 | case 0xd: /* keyboard illumination toggle */ | ||
564 | input_report_key(&adbhid[id]->input, KEY_KBDILLUMTOGGLE, down); | ||
565 | break; | ||
566 | |||
567 | case 0xe: /* keyboard illumination decrease */ | ||
568 | input_report_key(&adbhid[id]->input, KEY_KBDILLUMDOWN, down); | ||
569 | break; | ||
570 | |||
571 | case 0xf: | ||
572 | switch (data[1]) { | ||
573 | case 0x8f: | ||
574 | case 0x0f: | ||
575 | /* keyboard illumination increase */ | ||
576 | input_report_key(&adbhid[id]->input, KEY_KBDILLUMUP, down); | ||
577 | break; | ||
578 | |||
579 | case 0x7f: | ||
580 | case 0xff: | ||
581 | /* keypad overlay toogle */ | ||
582 | break; | ||
583 | |||
584 | default: | ||
585 | printk(KERN_INFO "Unhandled ADB_MISC event %02x, %02x, %02x, %02x\n", | ||
586 | data[0], data[1], data[2], data[3]); | ||
587 | break; | ||
588 | } | ||
589 | break; | ||
590 | default: | ||
591 | printk(KERN_INFO "Unhandled ADB_MISC event %02x, %02x, %02x, %02x\n", | ||
592 | data[0], data[1], data[2], data[3]); | ||
593 | break; | ||
558 | } | 594 | } |
559 | } | 595 | } |
560 | break; | 596 | break; |
@@ -775,6 +811,10 @@ adbhid_input_register(int id, int default_id, int original_handler_id, | |||
775 | set_bit(KEY_BRIGHTNESSUP, adbhid[id]->input.keybit); | 811 | set_bit(KEY_BRIGHTNESSUP, adbhid[id]->input.keybit); |
776 | set_bit(KEY_BRIGHTNESSDOWN, adbhid[id]->input.keybit); | 812 | set_bit(KEY_BRIGHTNESSDOWN, adbhid[id]->input.keybit); |
777 | set_bit(KEY_EJECTCD, adbhid[id]->input.keybit); | 813 | set_bit(KEY_EJECTCD, adbhid[id]->input.keybit); |
814 | set_bit(KEY_SWITCHVIDEOMODE, adbhid[id]->input.keybit); | ||
815 | set_bit(KEY_KBDILLUMTOGGLE, adbhid[id]->input.keybit); | ||
816 | set_bit(KEY_KBDILLUMDOWN, adbhid[id]->input.keybit); | ||
817 | set_bit(KEY_KBDILLUMUP, adbhid[id]->input.keybit); | ||
778 | break; | 818 | break; |
779 | } | 819 | } |
780 | if (adbhid[id]->name[0]) | 820 | if (adbhid[id]->name[0]) |
diff --git a/include/linux/input.h b/include/linux/input.h index b70df8fe60e6..72731d7d189e 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
@@ -328,6 +328,11 @@ struct input_absinfo { | |||
328 | #define KEY_BRIGHTNESSUP 225 | 328 | #define KEY_BRIGHTNESSUP 225 |
329 | #define KEY_MEDIA 226 | 329 | #define KEY_MEDIA 226 |
330 | 330 | ||
331 | #define KEY_SWITCHVIDEOMODE 227 | ||
332 | #define KEY_KBDILLUMTOGGLE 228 | ||
333 | #define KEY_KBDILLUMDOWN 229 | ||
334 | #define KEY_KBDILLUMUP 230 | ||
335 | |||
331 | #define KEY_UNKNOWN 240 | 336 | #define KEY_UNKNOWN 240 |
332 | 337 | ||
333 | #define BTN_MISC 0x100 | 338 | #define BTN_MISC 0x100 |