[PATCH 1/3] Add support for more dell-wmi hotkeys

From: Mario Limonciello
Date: Tue Apr 21 2009 - 14:01:04 EST


Hi:

I've got another patch to stack on top of yesterday's patch for Eject.
These are more scancode/keycode combinations that will be supported via
WMI. Many of them are commented out with an explanation of what their
true functionality is.

Regards
--
Mario Limonciello
*Dell | Linux Engineering*
mario_limonciello@xxxxxxxx
--- a/drivers/platform/x86/dell-wmi.c~ 2009-04-21 11:19:04.000000000 -0500
+++ a/drivers/platform/x86/dell-wmi.c 2009-04-21 11:51:39.000000000 -0500
@@ -49,8 +49,70 @@
enum { KE_KEY, KE_SW, KE_END };

static struct key_entry dell_wmi_keymap[] = {
- {KE_KEY, 0xe045, KEY_PROG1},
{KE_KEY, 0xe009, KEY_EJECTCD},
+
+ /* Inside the structure for a brightness keycode, a new brightness
+ * level will be reported after the scancode (at offset 6)
+ */
+ {KE_KEY, 0xe006, KEY_BRIGHTNESSUP},
+ {KE_KEY, 0xe005, KEY_BRIGHTNESSDOWN},
+
+ /* The volume hotkeys are here so that the the OS
+ * can be notified and show an OSD. The keys will still
+ * send out a scan code via the EC.
+ {KE_KEY, 0xe030, KEY_VOLUMEUP},
+ {KE_KEY, 0xe02e, KEY_VOLUMEDOWN},
+ {KE_KEY, 0xe020, KEY_MUTE},
+ */
+
+ /* A majority of platforms support a simple toggle event, but
+ * some actually have support to raise or lower the backlit keyboard
+ * brightness with different keys.
+ * The brightness is changed by the EC, these are here just to report
+ * that information to the OS to show an OSD.
+ {KE_KEY, 0xe00c, KEY_KBDILLUMTOGGLE},
+ {KE_KEY, 0xe033, KEY_KBDILLUMUP},
+ {KE_KEY, 0xe034, KEY_KBDILLUMDOWN},
+ */
+
+ /* Inside the structure for a display switch, the next device is
+ * reported at offset 6, the active devices at offset 8, and the
+ * attached devices at offset 10
+ */
+ {KE_KEY, 0xe00b, KEY_DISPLAYTOGGLE},
+
+ /* This is actually for all radios on one button */
+ {KE_SW, 0xe008, KEY_WLAN},
+
+ /* Wifi Catcher */
+ {KE_KEY, 0xe011, KEY_PROG1},
+
+ /* Battery health status button */
+ {KE_KEY, 0xe007, KEY_BATTERY},
+
+ /* This is the scan code sent when there is a BIOS error detected.
+ * What happens in these situations will need to be further elaborated
+ * upon
+ {KE_KEY, 0xe00d, error scan code},
+ */
+
+ /* Ambient light sensor is actually toggled by the BIOS and/or EC.
+ * This is for informative purposes of notifying the OS via an OSD.
+ * The new status will be at offset 6, the current limit at offset 8
+ * and the absolute limit at offset 10
+ {KE_KEY, 0xe013, ambient light sensor code},
+ */
+
+ /* The *lock keys are here so that the the OS
+ * can be notified and show an OSD. The keys will still
+ * send out a scan code via the EC.
+ * If the system contains LEDs for these buttons, the WMI
+ * events will not be sent out
+ {KE_KEY, 0x003a, KEY_CAPSLOCK},
+ {KE_KEY, 0xe045, KEY_NUMLOCK},
+ {KE_KEY, 0xe046, KEY_SCROLLLOCK},
+ */
+
{KE_END, 0}
};

Attachment: signature.asc
Description: OpenPGP digital signature