(Cc:ing input) On Fri, Mar 19, 2010 at 09:39:24PM +0800, Yong Wang wrote: > Add a WMI driver for Eee PC laptops. Currently it only supports hotkeys. Looks good. > +#include <linux/kernel.h> > +#include <linux/module.h> > +#include <linux/init.h> > +#include <linux/types.h> > +#include <linux/input.h> > +#include <acpi/acpi_bus.h> > +#include <acpi/acpi_drivers.h> > + > +MODULE_AUTHOR("Yong Wang <yong.y.wang@xxxxxxxxx>"); > +MODULE_DESCRIPTION("Eee PC WMI Hotkey Driver"); > +MODULE_LICENSE("GPL"); > + > +#define EEEPC_WMI_EVENT_GUID "ABBC0F72-8EA1-11D1-00A0-C90629100000" > + > +#define NOTIFY_BRNUP_MIN 0x11 > +#define NOTIFY_BRNUP_MAX 0x1f > +#define NOTIFY_BRNDOWN_MIN 0x20 > +#define NOTIFY_BRNDOWN_MAX 0x2e > + > +struct key_entry { > + char type; > + u8 code; > + u16 keycode; > +}; > + > +enum { KE_KEY, KE_END }; > + > +static struct key_entry eeepc_wmi_keymap[] = { > + /* Sleep already handled via generic ACPI code */ > + {KE_KEY, 0x5d, KEY_WLAN }, > + {KE_KEY, 0x32, KEY_MUTE }, > + {KE_KEY, 0x31, KEY_VOLUMEDOWN }, > + {KE_KEY, 0x30, KEY_VOLUMEUP }, > + {KE_KEY, NOTIFY_BRNDOWN_MIN, KEY_BRIGHTNESSDOWN }, > + {KE_KEY, NOTIFY_BRNUP_MIN, KEY_BRIGHTNESSUP }, > + {KE_KEY, 0xcc, KEY_SWITCHVIDEOMODE }, > + {KE_END, 0}, > +}; This probably ought to use the new sparse keymap code. I know that there are drivers that are currently in the tree that don't, but it's probably preferable to avoid adding new ones. > + if (code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNUP_MAX) > + code = NOTIFY_BRNUP_MIN; > + else if (code >= NOTIFY_BRNDOWN_MIN && code <= NOTIFY_BRNDOWN_MAX) > + code = NOTIFY_BRNDOWN_MIN; Do the brightness keys just send notifications, or do they actually change the brightness? If they actually change the brightness, we shouldn't send input events. Other than that, looks good! -- Matthew Garrett | mjg59@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html