Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e12e6d94 authored by Corentin Chary's avatar Corentin Chary Committed by Matthew Garrett
Browse files

eeepc-wmi: asus generic asus-wmi.ko module



New Asus notebooks are using a WMI device similar to
the one used in Eee PCs. Since we don't want to load
eeepc-wmi module on Asus notebooks, and we want to
keep the eeepc-wmi module for backward compatibility,
this patch introduce a new module, named asus-wmi, that
will be used by eeepc-wmi and the new Asus Notebook WMI
Driver.

eeepc-wmi's input device strings (device name and phys)
are kept, but rfkill and led names are changed (s/eeepc/asus/).
This should not break anything since rfkill are used by type or
index, not by name, and the eeepc::touchpad led wasn't working
correctly before 2.6.39 anyway.

Signed-off-by: default avatarCorentin Chary <corentincj@iksaif.net>
Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
parent 5b799d4f
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
What:		/sys/devices/platform/eeepc-wmi/cpufv
What:		/sys/devices/platform/<platform>/cpufv
Date:		Oct 2010
KernelVersion:	2.6.37
Contact:	"Corentin Chary" <corentincj@iksaif.net>
@@ -9,21 +9,21 @@ Description:
		    * 1 -> High Performance Mode
		    * 2 -> Power Saving Mode

What:		/sys/devices/platform/eeepc-wmi/camera
What:		/sys/devices/platform/<platform>/camera
Date:		Jan 2010
KernelVersion:	2.6.39
Contact:	"Corentin Chary" <corentincj@iksaif.net>
Description:
		Control the camera. 1 means on, 0 means off.

What:		/sys/devices/platform/eeepc-wmi/cardr
What:		/sys/devices/platform/<platform>/cardr
Date:		Jan 2010
KernelVersion:	2.6.39
Contact:	"Corentin Chary" <corentincj@iksaif.net>
Description:
		Control the card reader. 1 means on, 0 means off.

What:		/sys/devices/platform/eeepc-wmi/touchpad
What:		/sys/devices/platform/<platform>/touchpad
Date:		Jan 2010
KernelVersion:	2.6.39
Contact:	"Corentin Chary" <corentincj@iksaif.net>
+19 −5
Original line number Diff line number Diff line
@@ -451,10 +451,11 @@ config EEEPC_LAPTOP
	  Bluetooth, backlight and allows powering on/off some other
	  devices.

	  If you have an Eee PC laptop, say Y or M here.
	  If you have an Eee PC laptop, say Y or M here. If this driver
	  doesn't work on your Eee PC, try eeepc-wmi instead.

config EEEPC_WMI
	tristate "Eee PC WMI Hotkey Driver (EXPERIMENTAL)"
config ASUS_WMI
	tristate "ASUS WMI Driver (EXPERIMENTAL)"
	depends on ACPI_WMI
	depends on INPUT
	depends on EXPERIMENTAL
@@ -464,10 +465,23 @@ config EEEPC_WMI
	select LEDS_CLASS
	select NEW_LEDS
	---help---
	  Say Y here if you want to support WMI-based hotkeys on Eee PC laptops.
	  Say Y here if you have a WMI aware Asus laptop (like Eee PCs).

	  To compile this driver as a module, choose M here: the module will
	  be called eeepc-wmi.
	  be called asus-wmi.

config EEEPC_WMI
	tristate "Eee PC WMI Driver (EXPERIMENTAL)"
	depends on ASUS_WMI
	---help---
	  This is a driver for newer Eee PC laptops. It adds extra features
	  like wireless radio and bluetooth control, leds, hotkeys, backlight...

	  For more informations, see
	  <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>

	  If you have an ACPI-WMI compatible Eee PC laptop (>= 1000), say Y or M
	  here.

config ACPI_WMI
	tristate "WMI"
+2 −1
Original line number Diff line number Diff line
@@ -3,8 +3,9 @@
# x86 Platform-Specific Drivers
#
obj-$(CONFIG_ASUS_LAPTOP)	+= asus-laptop.o
obj-$(CONFIG_ASUS_WMI)		+= asus-wmi.o
obj-$(CONFIG_EEEPC_LAPTOP)	+= eeepc-laptop.o
obj-$(CONFIG_EEEPC_WMI)		+= asus-wmi.o eeepc-wmi.o
obj-$(CONFIG_EEEPC_WMI)		+= eeepc-wmi.o
obj-$(CONFIG_MSI_LAPTOP)	+= msi-laptop.o
obj-$(CONFIG_ACPI_CMPC)		+= classmate-laptop.o
obj-$(CONFIG_COMPAL_LAPTOP)	+= compal-laptop.o
+436 −488

File changed.

Preview size limit exceeded, changes collapsed.

+58 −0
Original line number Diff line number Diff line
/*
 * Asus PC WMI hotkey driver
 *
 * Copyright(C) 2010 Intel Corporation.
 * Copyright(C) 2010-2011 Corentin Chary <corentin.chary@gmail.com>
 *
 * Portions based on wistron_btns.c:
 * Copyright (C) 2005 Miloslav Trmac <mitr@volny.cz>
 * Copyright (C) 2005 Bernhard Rosenkraenzer <bero@arklinux.org>
 * Copyright (C) 2005 Dmitry Torokhov <dtor@mail.ru>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef _ASUS_WMI_H_
#define _ASUS_WMI_H_

#include <linux/platform_device.h>

struct module;
struct key_entry;
struct asus_wmi;

struct asus_wmi_driver {
	bool			hotplug_wireless;

	const char		*name;
	struct module		*owner;

	const char		*event_guid;

	const struct key_entry	*keymap;
	const char		*input_name;
	const char		*input_phys;

	int (*probe) (struct platform_device *device);
	void (*quirks) (struct asus_wmi_driver *driver);

	struct platform_driver	platform_driver;
	struct platform_device *platform_device;
};

int asus_wmi_register_driver(struct asus_wmi_driver *driver);
void asus_wmi_unregister_driver(struct asus_wmi_driver *driver);

#endif /* !_ASUS_WMI_H_ */
Loading