aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS30
-rw-r--r--drivers/platform/x86/Kconfig16
-rw-r--r--drivers/platform/x86/Makefile1
-rw-r--r--drivers/platform/x86/asus-nb-wmi.c98
4 files changed, 117 insertions, 28 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 8aa1cacddbcc..6b4b9cdec370 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1157,14 +1157,14 @@ S: Maintained
1157F: Documentation/hwmon/asc7621 1157F: Documentation/hwmon/asc7621
1158F: drivers/hwmon/asc7621.c 1158F: drivers/hwmon/asc7621.c
1159 1159
1160ASUS ACPI EXTRAS DRIVER 1160ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS
1161M: Corentin Chary <corentincj@iksaif.net> 1161M: Corentin Chary <corentincj@iksaif.net>
1162M: Karol Kozimor <sziwan@users.sourceforge.net>
1163L: acpi4asus-user@lists.sourceforge.net 1162L: acpi4asus-user@lists.sourceforge.net
1164L: platform-driver-x86@vger.kernel.org 1163L: platform-driver-x86@vger.kernel.org
1165W: http://acpi4asus.sf.net 1164W: http://acpi4asus.sf.net
1166S: Maintained 1165S: Maintained
1167F: drivers/platform/x86/asus_acpi.c 1166F: drivers/platform/x86/asus*.c
1167F: drivers/platform/x86/eeepc*.c
1168 1168
1169ASUS ASB100 HARDWARE MONITOR DRIVER 1169ASUS ASB100 HARDWARE MONITOR DRIVER
1170M: "Mark M. Hoffman" <mhoffman@lightlink.com> 1170M: "Mark M. Hoffman" <mhoffman@lightlink.com>
@@ -1172,14 +1172,6 @@ L: lm-sensors@lm-sensors.org
1172S: Maintained 1172S: Maintained
1173F: drivers/hwmon/asb100.c 1173F: drivers/hwmon/asb100.c
1174 1174
1175ASUS LAPTOP EXTRAS DRIVER
1176M: Corentin Chary <corentincj@iksaif.net>
1177L: acpi4asus-user@lists.sourceforge.net
1178L: platform-driver-x86@vger.kernel.org
1179W: http://acpi4asus.sf.net
1180S: Maintained
1181F: drivers/platform/x86/asus-laptop.c
1182
1183ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API 1175ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API
1184M: Dan Williams <dan.j.williams@intel.com> 1176M: Dan Williams <dan.j.williams@intel.com>
1185W: http://sourceforge.net/projects/xscaleiop 1177W: http://sourceforge.net/projects/xscaleiop
@@ -2414,22 +2406,6 @@ T: git git://git.alsa-project.org/alsa-kernel.git
2414S: Maintained 2406S: Maintained
2415F: sound/usb/misc/ua101.c 2407F: sound/usb/misc/ua101.c
2416 2408
2417EEEPC LAPTOP EXTRAS DRIVER
2418M: Corentin Chary <corentincj@iksaif.net>
2419L: acpi4asus-user@lists.sourceforge.net
2420L: platform-driver-x86@vger.kernel.org
2421W: http://acpi4asus.sf.net
2422S: Maintained
2423F: drivers/platform/x86/eeepc-laptop.c
2424
2425EEEPC WMI EXTRAS DRIVER
2426M: Corentin Chary <corentincj@iksaif.net>
2427L: acpi4asus-user@lists.sourceforge.net
2428L: platform-driver-x86@vger.kernel.org
2429W: http://acpi4asus.sf.net
2430S: Maintained
2431F: drivers/platform/x86/eeepc-wmi.c
2432
2433EFIFB FRAMEBUFFER DRIVER 2409EFIFB FRAMEBUFFER DRIVER
2434L: linux-fbdev@vger.kernel.org 2410L: linux-fbdev@vger.kernel.org
2435M: Peter Jones <pjones@redhat.com> 2411M: Peter Jones <pjones@redhat.com>
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index 7fde7ba01ab0..45f4d63c7939 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -465,11 +465,25 @@ config ASUS_WMI
465 select LEDS_CLASS 465 select LEDS_CLASS
466 select NEW_LEDS 466 select NEW_LEDS
467 ---help--- 467 ---help---
468 Say Y here if you have a WMI aware Asus laptop (like Eee PCs). 468 Say Y here if you have a WMI aware Asus laptop (like Eee PCs or new
469 Asus Notebooks).
469 470
470 To compile this driver as a module, choose M here: the module will 471 To compile this driver as a module, choose M here: the module will
471 be called asus-wmi. 472 be called asus-wmi.
472 473
474config ASUS_NB_WMI
475 tristate "Asus Notebook WMI Driver (EXPERIMENTAL)"
476 depends on ASUS_WMI
477 ---help---
478 This is a driver for newer Asus notebooks. It adds extra features
479 like wireless radio and bluetooth control, leds, hotkeys, backlight...
480
481 For more informations, see
482 <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
483
484 If you have an ACPI-WMI compatible Asus Notebook, say Y or M
485 here.
486
473config EEEPC_WMI 487config EEEPC_WMI
474 tristate "Eee PC WMI Driver (EXPERIMENTAL)" 488 tristate "Eee PC WMI Driver (EXPERIMENTAL)"
475 depends on ASUS_WMI 489 depends on ASUS_WMI
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
index f9c83f48c922..0f7b23c0714b 100644
--- a/drivers/platform/x86/Makefile
+++ b/drivers/platform/x86/Makefile
@@ -4,6 +4,7 @@
4# 4#
5obj-$(CONFIG_ASUS_LAPTOP) += asus-laptop.o 5obj-$(CONFIG_ASUS_LAPTOP) += asus-laptop.o
6obj-$(CONFIG_ASUS_WMI) += asus-wmi.o 6obj-$(CONFIG_ASUS_WMI) += asus-wmi.o
7obj-$(CONFIG_ASUS_NB_WMI) += asus-nb-wmi.o
7obj-$(CONFIG_EEEPC_LAPTOP) += eeepc-laptop.o 8obj-$(CONFIG_EEEPC_LAPTOP) += eeepc-laptop.o
8obj-$(CONFIG_EEEPC_WMI) += eeepc-wmi.o 9obj-$(CONFIG_EEEPC_WMI) += eeepc-wmi.o
9obj-$(CONFIG_MSI_LAPTOP) += msi-laptop.o 10obj-$(CONFIG_MSI_LAPTOP) += msi-laptop.o
diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/x86/asus-nb-wmi.c
new file mode 100644
index 000000000000..0580d99b0798
--- /dev/null
+++ b/drivers/platform/x86/asus-nb-wmi.c
@@ -0,0 +1,98 @@
1/*
2 * Asus Notebooks WMI hotkey driver
3 *
4 * Copyright(C) 2010 Corentin Chary <corentin.chary@gmail.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
22
23#include <linux/kernel.h>
24#include <linux/module.h>
25#include <linux/init.h>
26#include <linux/input.h>
27#include <linux/input/sparse-keymap.h>
28
29#include "asus-wmi.h"
30
31#define ASUS_NB_WMI_FILE "asus-nb-wmi"
32
33MODULE_AUTHOR("Corentin Chary <corentincj@iksaif.net>");
34MODULE_DESCRIPTION("Asus Notebooks WMI Hotkey Driver");
35MODULE_LICENSE("GPL");
36
37#define ASUS_NB_WMI_EVENT_GUID "0B3CBB35-E3C2-45ED-91C2-4C5A6D195D1C"
38
39MODULE_ALIAS("wmi:"ASUS_NB_WMI_EVENT_GUID);
40
41static const struct key_entry asus_nb_wmi_keymap[] = {
42 { KE_KEY, 0x30, { KEY_VOLUMEUP } },
43 { KE_KEY, 0x31, { KEY_VOLUMEDOWN } },
44 { KE_KEY, 0x32, { KEY_MUTE } },
45 { KE_KEY, 0x33, { KEY_DISPLAYTOGGLE } }, /* LCD on */
46 { KE_KEY, 0x34, { KEY_DISPLAY_OFF } }, /* LCD off */
47 { KE_KEY, 0x40, { KEY_PREVIOUSSONG } },
48 { KE_KEY, 0x41, { KEY_NEXTSONG } },
49 { KE_KEY, 0x43, { KEY_STOPCD } },
50 { KE_KEY, 0x45, { KEY_PLAYPAUSE } },
51 { KE_KEY, 0x4c, { KEY_MEDIA } },
52 { KE_KEY, 0x50, { KEY_EMAIL } },
53 { KE_KEY, 0x51, { KEY_WWW } },
54 { KE_KEY, 0x55, { KEY_CALC } },
55 { KE_KEY, 0x5C, { KEY_F15 } }, /* Power Gear key */
56 { KE_KEY, 0x5D, { KEY_WLAN } },
57 { KE_KEY, 0x5E, { KEY_WLAN } },
58 { KE_KEY, 0x5F, { KEY_WLAN } },
59 { KE_KEY, 0x60, { KEY_SWITCHVIDEOMODE } },
60 { KE_KEY, 0x61, { KEY_SWITCHVIDEOMODE } },
61 { KE_KEY, 0x62, { KEY_SWITCHVIDEOMODE } },
62 { KE_KEY, 0x63, { KEY_SWITCHVIDEOMODE } },
63 { KE_KEY, 0x6B, { KEY_TOUCHPAD_TOGGLE } },
64 { KE_KEY, 0x7E, { KEY_BLUETOOTH } },
65 { KE_KEY, 0x7D, { KEY_BLUETOOTH } },
66 { KE_KEY, 0x82, { KEY_CAMERA } },
67 { KE_KEY, 0x88, { KEY_RFKILL } },
68 { KE_KEY, 0x8A, { KEY_PROG1 } },
69 { KE_KEY, 0x95, { KEY_MEDIA } },
70 { KE_KEY, 0x99, { KEY_PHONE } },
71 { KE_KEY, 0xb5, { KEY_CALC } },
72 { KE_KEY, 0xc4, { KEY_KBDILLUMUP } },
73 { KE_KEY, 0xc5, { KEY_KBDILLUMDOWN } },
74 { KE_END, 0},
75};
76
77static struct asus_wmi_driver asus_nb_wmi_driver = {
78 .name = ASUS_NB_WMI_FILE,
79 .owner = THIS_MODULE,
80 .event_guid = ASUS_NB_WMI_EVENT_GUID,
81 .keymap = asus_nb_wmi_keymap,
82 .input_name = "Asus WMI hotkeys",
83 .input_phys = ASUS_NB_WMI_FILE "/input0",
84};
85
86
87static int __init asus_nb_wmi_init(void)
88{
89 return asus_wmi_register_driver(&asus_nb_wmi_driver);
90}
91
92static void __exit asus_nb_wmi_exit(void)
93{
94 asus_wmi_unregister_driver(&asus_nb_wmi_driver);
95}
96
97module_init(asus_nb_wmi_init);
98module_exit(asus_nb_wmi_exit);