Input: Mac button emulation - implement as an input filter
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 30 Jan 2010 08:53:29 +0000 (00:53 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 30 Jan 2010 09:47:49 +0000 (01:47 -0800)
commit99b089c3c38a83ebaeb1cc4584ddcde841626467
tree484a9ac4871a055873b6427d2f7c3c37554fd0ce
parentef7995f4e46b1677f3eaaf547316e1a910b38dcb
Input: Mac button emulation - implement as an input filter

Current implementation of Mac mouse button emulation plugs into legacy
keyboard driver, converts certain keys into button events on a separate
device, and suppresses the real events from reaching tty. This worked
well enough until user space started using evdev which was completely
unaware of this arrangement and kept sending original key presses to
its users. Change the implementation to use newly added input filter
framework so that original key presses are not transmitted to any
handlers.

As a bonus remove SYSCTL dependencies from the code and use Kconfig
instead; also do not create the emulated mouse device until user
activates emulation.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/char/keyboard.c
drivers/macintosh/Kconfig
drivers/macintosh/mac_hid.c
include/linux/kbd_kern.h