Hi,

This patch adds support for the special adb buttons of the aluminium
PowerBook G4.

Signed-off-by: Andreas Jaggi <[EMAIL PROTECTED]>


diff -uNr a/drivers/macintosh/adbhid.c b/drivers/macintosh/adbhid.c
--- a/drivers/macintosh/adbhid.c        2005-04-09 22:49:49.000000000 +0200
+++ b/drivers/macintosh/adbhid.c        2005-04-10 15:27:54.000000000 +0200
@@ -555,6 +555,42 @@
 #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 @@
                        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])
diff -uNr a/include/linux/input.h b/include/linux/input.h
--- a/include/linux/input.h     2005-04-09 22:49:49.000000000 +0200
+++ b/include/linux/input.h     2005-04-10 15:28:33.214974136 +0200
@@ -328,6 +328,11 @@
 #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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to