From patchwork Tue Apr 21 18:00:57 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 19229 X-Patchwork-Delegate: mjg59@srcf.ucam.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n3LI1Ws7016987 for ; Tue, 21 Apr 2009 18:01:32 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751272AbZDUSAv (ORCPT ); Tue, 21 Apr 2009 14:00:51 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752569AbZDUSAv (ORCPT ); Tue, 21 Apr 2009 14:00:51 -0400 Received: from ausc60ps301.us.dell.com ([143.166.148.206]:9845 "EHLO ausc60ps301.us.dell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751272AbZDUSAu (ORCPT ); Tue, 21 Apr 2009 14:00:50 -0400 X-Loopcount0: from 10.9.160.254 Message-ID: <49EE09D9.2060209@dell.com> Date: Tue, 21 Apr 2009 13:00:57 -0500 From: Mario Limonciello User-Agent: Thunderbird 2.0.0.21 (X11/20090409) MIME-Version: 1.0 To: mjg59@srcf.ucam.org CC: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/3] Add support for more dell-wmi hotkeys References: <49ECBAE2.2080308@dell.com> In-Reply-To: <49ECBAE2.2080308@dell.com> X-Enigmail-Version: 0.95.7 Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org 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 --- 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} };