diff mbox

[3/3] Mark OSD type scancodes

Message ID 49EE0A64.9000506@dell.com (mailing list archive)
State Superseded, archived
Delegated to: Matthew Garrett
Headers show

Commit Message

Mario Limonciello April 21, 2009, 6:03 p.m. UTC
Hi:

This patch introduces a new scan code type for the purpose of events
that shouldn't send a keycode but the WMI event is still relevant. 
Eventually, these will need to be hooked up to the proper sysfs and
procfs interfaces for those types of events.

Regards
diff mbox

Patch

--- a/drivers/platform/x86/dell-wmi.c~	2009-04-21 12:56:26.000000000 -0500
+++ b/drivers/platform/x86/dell-wmi.c	2009-04-21 12:54:41.000000000 -0500
@@ -46,7 +46,7 @@ 
 	u16 keycode;
 };
 
-enum { KE_KEY, KE_SW, KE_END };
+enum { KE_KEY, KE_SW, KE_OSD, KE_END };
 
 static struct key_entry dell_wmi_keymap[] = {
 	{KE_KEY, 0xe009, KEY_EJECTCD},
@@ -59,21 +59,20 @@ 
     
     /* 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},
-    */
+     * send out a scan code via the EC. */
+    {KE_OSD, 0xe030, KEY_VOLUMEUP},
+    {KE_OSD, 0xe02e, KEY_VOLUMEDOWN},
+    {KE_OSD, 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},
-    */
+     * that information to the OS to show an OSD. */
+    {KE_OSD, 0xe00c, KEY_KBDILLUMTOGGLE},
+    {KE_OSD, 0xe033, KEY_KBDILLUMUP},
+    {KE_OSD, 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
@@ -82,7 +81,7 @@ 
     {KE_KEY, 0xe00b, KEY_DISPLAYTOGGLE},
 
     /* This is actually for all radios on one button */
-    {KE_KEY, 0xe008, KEY_WLAN},
+    {KE_SW, 0xe008, SW_RFKILL_ALL},
 
     /* Wifi Catcher */
     {KE_KEY, 0xe011, KEY_PROG1},
@@ -99,19 +98,17 @@ 
     /* 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},
-    */
+     * and the absolute limit at offset 10 */
+    {KE_OSD, 0xe013, LED_MISC},
 
     /* 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},
-    */
+     * events will not be sent out */
+    {KE_OSD, 0x003a, LED_CAPSL},
+    {KE_OSD, 0xe045, LED_NUML},
+    {KE_OSD, 0xe046, LED_SCROLLL},
     
 	{KE_END, 0}
 };
@@ -223,6 +220,10 @@ 
 			set_bit(EV_SW, dell_wmi_input_dev->evbit);
 			set_bit(key->keycode, dell_wmi_input_dev->swbit);
 			break;
+        case KE_OSD:
+            /* TODO, hook up to the right proc or sysfs interface for showing
+             * these status bits */
+            break;
 		}
 	}