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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux