[PATCH 3/3] Mark OSD type scancodes

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

 



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
-- 
Mario Limonciello
*Dell | Linux Engineering*
mario_limonciello@xxxxxxxx
--- 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;
 		}
 	}
 

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