Skip to content

Commit

Permalink
[PATCH] macintosh/adbhid.c: adb buttons support for aluminium PowerBo…
Browse files Browse the repository at this point in the history
…ok 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>
  • Loading branch information
Andreas Jaggi authored and Linus Torvalds committed May 1, 2005
1 parent 616299a commit 146a4b3
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 0 deletions.
40 changes: 40 additions & 0 deletions drivers/macintosh/adbhid.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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])
Expand Down
5 changes: 5 additions & 0 deletions include/linux/input.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 146a4b3

Please sign in to comment.