Skip to content

Commit

Permalink
Input: Mac button emulation - allow compiling as a module
Browse files Browse the repository at this point in the history
Not all systems require Mac-style button emulation, however distributions
enable it by default so it is readily available. Allow compiling it as a
module so it can be loaded only on systems that actually require it.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
  • Loading branch information
Dmitry Torokhov committed Jan 30, 2010
1 parent 99b089c commit 429722e
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
8 changes: 5 additions & 3 deletions drivers/macintosh/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,8 @@ config INPUT_ADBHID
If unsure, say Y.

config MAC_EMUMOUSEBTN
bool "Support for mouse button 2+3 emulation"
depends on SYSCTL
select INPUT
tristate "Support for mouse button 2+3 emulation"
depends on SYSCTL && INPUT
help
This provides generic support for emulating the 2nd and 3rd mouse
button with keypresses. If you say Y here, the emulation is still
Expand All @@ -185,6 +184,9 @@ config MAC_EMUMOUSEBTN

If you have an Apple machine with a 1-button mouse, say Y here.

To compile this driver as a module, choose M here: the
module will be called mac_hid.

config THERM_WINDTUNNEL
tristate "Support for thermal management on Windtunnel G4s"
depends on I2C && I2C_POWERMAC && PPC_PMAC && !PPC_PMAC64
Expand Down
13 changes: 11 additions & 2 deletions drivers/macintosh/mac_hid.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
#include <linux/input.h>
#include <linux/module.h>

MODULE_LICENSE("GPL");

static int mouse_emulate_buttons;
static int mouse_button2_keycode = KEY_RIGHTCTRL; /* right control key */
static int mouse_button3_keycode = KEY_RIGHTALT; /* right option key */
Expand Down Expand Up @@ -252,7 +254,6 @@ static ctl_table mac_hid_root_dir[] = {

static struct ctl_table_header *mac_hid_sysctl_header;


static int __init mac_hid_init(void)
{
mac_hid_sysctl_header = register_sysctl_table(mac_hid_root_dir);
Expand All @@ -261,5 +262,13 @@ static int __init mac_hid_init(void)

return 0;
}
module_init(mac_hid_init);

device_initcall(mac_hid_init);
static void __exit mac_hid_exit(void)
{
unregister_sysctl_table(mac_hid_sysctl_header);

if (mouse_emulate_buttons)
mac_hid_stop_emulation();
}
module_exit(mac_hid_exit);

0 comments on commit 429722e

Please sign in to comment.