projects/linux·commit 2c01e7bc

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

2c01e7bc · Linus Torvalds <[email protected]> · 2012-05-24 10:34:29 -07:00

Pull input layer updates from Dmitry Torokhov:
 - a bunch of new drivers (DA9052/53 touchscreenn controller, Synaptics
   Navpoint, LM8333 keypads, Wacom I2C touhscreen);
 - updates to existing touchpad drivers (ALPS, Sntelic);
 - Wacom driver now supports Intuos5;
 - device-tree bindings in numerous drivers;
 - other cleanups and fixes.

Fix annoying conflict in drivers/input/tablet/wacom_wac.c that I think
implies that the input layer device naming is broken, but let's see.  I
brough it up with Dmitry.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (57 commits)
  Input: matrix-keymap - fix building keymaps
  Input: spear-keyboard - document DT bindings
  Input: spear-keyboard - add device tree bindings
  Input: matrix-keymap - wire up device tree support
  Input: matrix-keymap - uninline and prepare for device tree support
  Input: adp5588 - add support for gpio names
  Input: omap-keypad - dynamically handle register offsets
  Input: synaptics - fix compile warning
  MAINTAINERS: adjust input-related patterns
  Input: ALPS - switch to using input_mt_report_finger_count
  Input: ALPS - add semi-MT support for v4 protocol
  Input: Add Synaptics NavPoint (PXA27x SSP/SPI) driver
  Input: atmel_mxt_ts - dump each message on just 1 line
  Input: atmel_mxt_ts - do not read extra (checksum) byte
  Input: atmel_mxt_ts - verify object size in mxt_write_object
  Input: atmel_mxt_ts - only allow root to update firmware
  Input: atmel_mxt_ts - use CONFIG_PM_SLEEP
  Input: sentelic - report device's production serial number
  Input: tl6040-vibra - Device Tree support
  Input: evdev - properly handle read/write with count 0
  ...
Commit
2c01e7bc46f10e9190818437e564f7e0db875ae9
Parents
ab11ca34 · e644dae6

Merge commit. Changes below are compared with the first parent: ab11ca34.

Changes

106 files changed · +2845 −1305

FileStatusAddDelContent
Documentation/ABI/testing/sysfs-driver-wacommodified+8−7View file
Documentation/devicetree/bindings/input/spear-keyboard.txtadded+20−0View file
Documentation/devicetree/bindings/input/touchscreen/lpc32xx-tsc.txtadded+16−0View file
Documentation/devicetree/bindings/input/twl6040-vibra.txtadded+37−0View file
MAINTAINERSmodified+2−0View file
drivers/input/Kconfigmodified+13−4View file
drivers/input/Makefilemodified+1−1View file
drivers/input/evdev.cmodified+43−26View file
drivers/input/gameport/emu10k1-gp.cmodified+1−12View file
drivers/input/gameport/fm801-gp.cmodified+2−14View file
drivers/input/joystick/a3d.cmodified+1−12View file
drivers/input/joystick/adi.cmodified+1−16View file
drivers/input/joystick/cobra.cmodified+1−12View file
drivers/input/joystick/gf2k.cmodified+1−12View file
drivers/input/joystick/grip.cmodified+1−12View file
drivers/input/joystick/grip_mp.cmodified+1−12View file
drivers/input/joystick/guillemot.cmodified+1−12View file
drivers/input/joystick/interact.cmodified+1−12View file
drivers/input/joystick/joydump.cmodified+1−12View file
drivers/input/joystick/magellan.cmodified+1−16View file
drivers/input/joystick/sidewinder.cmodified+1−12View file
drivers/input/joystick/spaceball.cmodified+1−16View file
drivers/input/joystick/spaceorb.cmodified+1−16View file
drivers/input/joystick/stinger.cmodified+1−16View file
drivers/input/joystick/tmdc.cmodified+1−12View file
drivers/input/joystick/twidjoy.cmodified+1−16View file
drivers/input/joystick/warrior.cmodified+1−16View file
drivers/input/joystick/zhenhua.cmodified+1−16View file
drivers/input/keyboard/Kconfigmodified+29−3View file
drivers/input/keyboard/Makefilemodified+1−0View file
drivers/input/keyboard/adp5588-keys.cmodified+1−0View file
drivers/input/keyboard/atkbd.cmodified+1−1View file
drivers/input/keyboard/ep93xx_keypad.cmodified+18−26View file
drivers/input/keyboard/hil_kbd.cmodified+1−12View file
drivers/input/keyboard/imx_keypad.cmodified+10−7View file
drivers/input/keyboard/lkkbd.cmodified+1−16View file
drivers/input/keyboard/lm8333.cadded+235−0View file
drivers/input/keyboard/matrix_keypad.cmodified+50−49View file
drivers/input/keyboard/newtonkbd.cmodified+1−12View file
drivers/input/keyboard/nomadik-ske-keypad.cmodified+10−10View file
drivers/input/keyboard/omap-keypad.cmodified+10−10View file
drivers/input/keyboard/omap4-keypad.cmodified+99−34View file
drivers/input/keyboard/pmic8xxx-keypad.cmodified+10−10View file
drivers/input/keyboard/samsung-keypad.cmodified+10−10View file
drivers/input/keyboard/spear-keyboard.cmodified+67−25View file
drivers/input/keyboard/stmpe-keypad.cmodified+7−9View file
drivers/input/keyboard/stowaway.cmodified+1−12View file
drivers/input/keyboard/sunkbd.cmodified+1−16View file
drivers/input/keyboard/tc3589x-keypad.cmodified+18−23View file
drivers/input/keyboard/tca8418_keypad.cmodified+7−8View file
drivers/input/keyboard/tegra-kbc.cmodified+41−27View file
drivers/input/keyboard/tnetv107x-keypad.cmodified+11−10View file
drivers/input/keyboard/twl4030_keypad.cmodified+12−13View file
drivers/input/keyboard/w90p910_keypad.cmodified+14−13View file
drivers/input/keyboard/xtkbd.cmodified+1−12View file
drivers/input/matrix-keymap.cadded+163−0View file
drivers/input/misc/cma3000_d0x.cmodified+1−1View file
drivers/input/misc/mpu3050.cmodified+1−1View file
drivers/input/misc/twl6040-vibra.cmodified+35−11View file
drivers/input/mouse/Kconfigmodified+12−0View file
drivers/input/mouse/Makefilemodified+1−0View file
drivers/input/mouse/alps.cmodified+71−10View file
drivers/input/mouse/alps.hmodified+2−0View file
drivers/input/mouse/navpoint.cadded+369−0View file
drivers/input/mouse/sentelic.cmodified+30−4View file
drivers/input/mouse/sentelic.hmodified+8−0View file
drivers/input/mouse/sermouse.cmodified+1−12View file
drivers/input/mouse/synaptics.cmodified+10−10View file
drivers/input/mouse/vsxxxaa.cmodified+1−13View file
drivers/input/of_keymap.cdeleted+0−87View before deletion
drivers/input/serio/pcips2.cmodified+2−13View file
drivers/input/serio/ps2mult.cmodified+1−12View file
drivers/input/serio/serio_raw.cmodified+32−33View file
drivers/input/serio/xilinx_ps2.cmodified+18−17View file
drivers/input/tablet/aiptek.cmodified+1−1View file
drivers/input/tablet/wacom.hmodified+2−2View file
drivers/input/tablet/wacom_sys.cmodified+180−64View file
drivers/input/tablet/wacom_wac.cmodified+261−43View file
drivers/input/tablet/wacom_wac.hmodified+13−0View file
drivers/input/touchscreen/Kconfigmodified+32−2View file
drivers/input/touchscreen/Makefilemodified+2−0View file
drivers/input/touchscreen/atmel_mxt_ts.cmodified+11−22View file
drivers/input/touchscreen/da9052_tsi.cadded+370−0View file
drivers/input/touchscreen/dynapro.cmodified+1−16View file
drivers/input/touchscreen/elo.cmodified+1−16View file
drivers/input/touchscreen/fujitsu_ts.cmodified+1−12View file
drivers/input/touchscreen/gunze.cmodified+1−16View file
drivers/input/touchscreen/h3600_ts_input.cmodified+1−16View file
drivers/input/touchscreen/hampshire.cmodified+1−16View file
drivers/input/touchscreen/inexio.cmodified+1−16View file
drivers/input/touchscreen/lpc32xx_ts.cmodified+10−0View file
drivers/input/touchscreen/mtouch.cmodified+1−16View file
drivers/input/touchscreen/penmount.cmodified+1−16View file
drivers/input/touchscreen/st1232.cmodified+13−7View file
drivers/input/touchscreen/touchit213.cmodified+1−16View file
drivers/input/touchscreen/touchright.cmodified+1−16View file
drivers/input/touchscreen/touchwin.cmodified+1−16View file
drivers/input/touchscreen/tsc40.cmodified+1−11View file
drivers/input/touchscreen/wacom_i2c.cadded+282−0View file
drivers/input/touchscreen/wacom_w8001.cmodified+1−12View file
include/linux/gameport.hmodified+13−0View file
include/linux/i2c/adp5588.hmodified+1−0View file
include/linux/input/lm8333.hadded+24−0View file
include/linux/input/matrix_keypad.hmodified+5−49View file
include/linux/input/navpoint.hadded+12−0View file
include/linux/serio.hmodified+13−0View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/ABI/testing/sysfs-driver-wacom

View file
diff --git a/Documentation/ABI/testing/sysfs-driver-wacom b/Documentation/ABI/testing/sysfs-driver-wacom
index 56c5455..8d55a83 100644
--- a/Documentation/ABI/testing/sysfs-driver-wacom
+++ b/Documentation/ABI/testing/sysfs-driver-wacom
@@ -23,9 +23,10 @@ Contact: [email protected]
Description:
Attribute group for control of the status LEDs and the OLEDs.
This attribute group is only available for Intuos 4 M, L,
- and XL (with LEDs and OLEDs) and Cintiq 21UX2 and Cintiq 24HD
- (LEDs only). Therefore its presence implicitly signifies the
- presence of said LEDs and OLEDs on the tablet device.
+ and XL (with LEDs and OLEDs), Intuos 5 (LEDs only), and Cintiq
+ 21UX2 and Cintiq 24HD (LEDs only). Therefore its presence
+ implicitly signifies the presence of said LEDs and OLEDs on the
+ tablet device.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/status0_luminance
Date: August 2011
@@ -48,10 +49,10 @@ What: /sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/status_led0
Date: August 2011
Description:
- Writing to this file sets which one of the four (for Intuos 4)
- or of the right four (for Cintiq 21UX2 and Cintiq 24HD) status
- LEDs is active (0..3). The other three LEDs on the same side are
- always inactive.
+ Writing to this file sets which one of the four (for Intuos 4
+ and Intuos 5) or of the right four (for Cintiq 21UX2 and Cintiq
+ 24HD) status LEDs is active (0..3). The other three LEDs on the
+ same side are always inactive.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/status_led1_select
Date: September 2011

Documentation/devicetree/bindings/input/spear-keyboard.txt

View file
diff --git a/Documentation/devicetree/bindings/input/spear-keyboard.txt b/Documentation/devicetree/bindings/input/spear-keyboard.txt
new file mode 100644
index 0000000..4a846d2
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/spear-keyboard.txt
@@ -0,0 +1,20 @@
+* SPEAr keyboard controller
+
+Required properties:
+- compatible: "st,spear300-kbd"
+
+Optional properties, in addition to those specified by the shared
+matrix-keyboard bindings:
+- autorepeat: bool: enables key autorepeat
+- st,mode: keyboard mode: 0 - 9x9, 1 - 6x6, 2 - 2x2
+
+Example:
+
+kbd@fc400000 {
+ compatible = "st,spear300-kbd";
+ reg = <0xfc400000 0x100>;
+ linux,keymap = < 0x00030012
+ 0x0102003a >;
+ autorepeat;
+ st,mode = <0>;
+};

Documentation/devicetree/bindings/input/touchscreen/lpc32xx-tsc.txt

View file
diff --git a/Documentation/devicetree/bindings/input/touchscreen/lpc32xx-tsc.txt b/Documentation/devicetree/bindings/input/touchscreen/lpc32xx-tsc.txt
new file mode 100644
index 0000000..41cbf4b
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/touchscreen/lpc32xx-tsc.txt
@@ -0,0 +1,16 @@
+* NXP LPC32xx SoC Touchscreen Controller (TSC)
+
+Required properties:
+- compatible: must be "nxp,lpc3220-tsc"
+- reg: physical base address of the controller and length of memory mapped
+ region.
+- interrupts: The TSC/ADC interrupt
+
+Example:
+
+ tsc@40048000 {
+ compatible = "nxp,lpc3220-tsc";
+ reg = <0x40048000 0x1000>;
+ interrupt-parent = <&mic>;
+ interrupts = <39 0>;
+ };

Documentation/devicetree/bindings/input/twl6040-vibra.txt

View file
diff --git a/Documentation/devicetree/bindings/input/twl6040-vibra.txt b/Documentation/devicetree/bindings/input/twl6040-vibra.txt
new file mode 100644
index 0000000..5b1918b
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/twl6040-vibra.txt
@@ -0,0 +1,37 @@
+Vibra driver for the twl6040 family
+
+The vibra driver is a child of the twl6040 MFD dirver.
+Documentation/devicetree/bindings/mfd/twl6040.txt
+
+Required properties:
+- compatible : Must be "ti,twl6040-vibra";
+- interrupts: 4, Vibra overcurrent interrupt
+- vddvibl-supply: Regulator supplying the left vibra motor
+- vddvibr-supply: Regulator supplying the right vibra motor
+- vibldrv_res: Board specific left driver resistance
+- vibrdrv_res: Board specific right driver resistance
+- viblmotor_res: Board specific left motor resistance
+- vibrmotor_res: Board specific right motor resistance
+
+Optional properties:
+- vddvibl_uV: If the vddvibl default voltage need to be changed
+- vddvibr_uV: If the vddvibr default voltage need to be changed
+
+Example:
+/*
+ * 8-channel high quality low-power audio codec
+ * http://www.ti.com/lit/ds/symlink/twl6040.pdf
+ */
+twl6040: twl6040@4b {
+ ...
+ twl6040_vibra: twl6040@1 {
+ compatible = "ti,twl6040-vibra";
+ interrupts = <4>;
+ vddvibl-supply = <&vbat>;
+ vddvibr-supply = <&vbat>;
+ vibldrv_res = <8>;
+ vibrdrv_res = <3>;
+ viblmotor_res = <10>;
+ vibrmotor_res = <10>;
+ };
+};

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index 54c984e..62b0cf4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3465,6 +3465,8 @@ Q: http://patchwork.kernel.org/project/linux-input/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git
S: Maintained
F: drivers/input/
+F: include/linux/input.h
+F: include/linux/input/
INPUT MULTITOUCH (MT) PROTOCOL
M: Henrik Rydberg <[email protected]>

drivers/input/Kconfig

View file
diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig
index 3325979..55f7e57 100644
--- a/drivers/input/Kconfig
+++ b/drivers/input/Kconfig
@@ -25,10 +25,6 @@ config INPUT
if INPUT
-config INPUT_OF_MATRIX_KEYMAP
- depends on USE_OF
- bool
-
config INPUT_FF_MEMLESS
tristate "Support for memoryless force-feedback devices"
help
@@ -68,6 +64,19 @@ config INPUT_SPARSEKMAP
To compile this driver as a module, choose M here: the
module will be called sparse-keymap.
+config INPUT_MATRIXKMAP
+ tristate "Matrix keymap support library"
+ help
+ Say Y here if you are using a driver for an input
+ device that uses matrix keymap. This option is only
+ useful for out-of-tree drivers since in-tree drivers
+ select it automatically.
+
+ If unsure, say N.
+
+ To compile this driver as a module, choose M here: the
+ module will be called matrix-keymap.
+
comment "Userland interfaces"
config INPUT_MOUSEDEV

drivers/input/Makefile

View file
diff --git a/drivers/input/Makefile b/drivers/input/Makefile
index b173a13..5ca3f63 100644
--- a/drivers/input/Makefile
+++ b/drivers/input/Makefile
@@ -10,6 +10,7 @@ input-core-y := input.o input-compat.o input-mt.o ff-core.o
obj-$(CONFIG_INPUT_FF_MEMLESS) += ff-memless.o
obj-$(CONFIG_INPUT_POLLDEV) += input-polldev.o
obj-$(CONFIG_INPUT_SPARSEKMAP) += sparse-keymap.o
+obj-$(CONFIG_INPUT_MATRIXKMAP) += matrix-keymap.o
obj-$(CONFIG_INPUT_MOUSEDEV) += mousedev.o
obj-$(CONFIG_INPUT_JOYDEV) += joydev.o
@@ -24,4 +25,3 @@ obj-$(CONFIG_INPUT_TOUCHSCREEN) += touchscreen/
obj-$(CONFIG_INPUT_MISC) += misc/
obj-$(CONFIG_INPUT_APMPOWER) += apm-power.o
-obj-$(CONFIG_INPUT_OF_MATRIX_KEYMAP) += of_keymap.o

drivers/input/evdev.c

View file
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index 4b2e10d..6c58bff 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -180,7 +180,10 @@ static int evdev_grab(struct evdev *evdev, struct evdev_client *client)
static int evdev_ungrab(struct evdev *evdev, struct evdev_client *client)
{
- if (evdev->grab != client)
+ struct evdev_client *grab = rcu_dereference_protected(evdev->grab,
+ lockdep_is_held(&evdev->mutex));
+
+ if (grab != client)
return -EINVAL;
rcu_assign_pointer(evdev->grab, NULL);
@@ -259,8 +262,7 @@ static int evdev_release(struct inode *inode, struct file *file)
struct evdev *evdev = client->evdev;
mutex_lock(&evdev->mutex);
- if (evdev->grab == client)
- evdev_ungrab(evdev, client);
+ evdev_ungrab(evdev, client);
mutex_unlock(&evdev->mutex);
evdev_detach_client(evdev, client);
@@ -343,7 +345,7 @@ static ssize_t evdev_write(struct file *file, const char __user *buffer,
struct input_event event;
int retval = 0;
- if (count < input_event_size())
+ if (count != 0 && count < input_event_size())
return -EINVAL;
retval = mutex_lock_interruptible(&evdev->mutex);
@@ -355,7 +357,8 @@ static ssize_t evdev_write(struct file *file, const char __user *buffer,
goto out;
}
- do {
+ while (retval + input_event_size() <= count) {
+
if (input_event_from_user(buffer + retval, &event)) {
retval = -EFAULT;
goto out;
@@ -364,7 +367,7 @@ static ssize_t evdev_write(struct file *file, const char __user *buffer,
input_inject_event(&evdev->handle,
event.type, event.code, event.value);
- } while (retval + input_event_size() <= count);
+ }
out:
mutex_unlock(&evdev->mutex);
@@ -395,35 +398,49 @@ static ssize_t evdev_read(struct file *file, char __user *buffer,
struct evdev_client *client = file->private_data;
struct evdev *evdev = client->evdev;
struct input_event event;
- int retval = 0;
+ size_t read = 0;
+ int error;
- if (count < input_event_size())
+ if (count != 0 && count < input_event_size())
return -EINVAL;
- if (!(file->f_flags & O_NONBLOCK)) {
- retval = wait_event_interruptible(evdev->wait,
- client->packet_head != client->tail ||
- !evdev->exist);
- if (retval)
- return retval;
- }
+ for (;;) {
+ if (!evdev->exist)
+ return -ENODEV;
- if (!evdev->exist)
- return -ENODEV;
+ if (client->packet_head == client->tail &&
+ (file->f_flags & O_NONBLOCK))
+ return -EAGAIN;
- while (retval + input_event_size() <= count &&
- evdev_fetch_next_event(client, &event)) {
+ /*
+ * count == 0 is special - no IO is done but we check
+ * for error conditions (see above).
+ */
+ if (count == 0)
+ break;
- if (input_event_to_user(buffer + retval, &event))
- return -EFAULT;
+ while (read + input_event_size() <= count &&
+ evdev_fetch_next_event(client, &event)) {
- retval += input_event_size();
- }
+ if (input_event_to_user(buffer + read, &event))
+ return -EFAULT;
- if (retval == 0 && (file->f_flags & O_NONBLOCK))
- return -EAGAIN;
+ read += input_event_size();
+ }
- return retval;
+ if (read)
+ break;
+
+ if (!(file->f_flags & O_NONBLOCK)) {
+ error = wait_event_interruptible(evdev->wait,
+ client->packet_head != client->tail ||
+ !evdev->exist);
+ if (error)
+ return error;
+ }
+ }
+
+ return read;
}
/* No kernel lock - fine */

drivers/input/gameport/emu10k1-gp.c

View file
diff --git a/drivers/input/gameport/emu10k1-gp.c b/drivers/input/gameport/emu10k1-gp.c
index 422aa0a..daceafe 100644
--- a/drivers/input/gameport/emu10k1-gp.c
+++ b/drivers/input/gameport/emu10k1-gp.c
@@ -125,15 +125,4 @@ static struct pci_driver emu_driver = {
.remove = __devexit_p(emu_remove),
};
-static int __init emu_init(void)
-{
- return pci_register_driver(&emu_driver);
-}
-
-static void __exit emu_exit(void)
-{
- pci_unregister_driver(&emu_driver);
-}
-
-module_init(emu_init);
-module_exit(emu_exit);
+module_pci_driver(emu_driver);

drivers/input/gameport/fm801-gp.c

View file
diff --git a/drivers/input/gameport/fm801-gp.c b/drivers/input/gameport/fm801-gp.c
index a3b70ff..48ad382 100644
--- a/drivers/input/gameport/fm801-gp.c
+++ b/drivers/input/gameport/fm801-gp.c
@@ -144,6 +144,7 @@ static const struct pci_device_id fm801_gp_id_table[] = {
{ PCI_VENDOR_ID_FORTEMEDIA, PCI_DEVICE_ID_FM801_GP, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
{ 0 }
};
+MODULE_DEVICE_TABLE(pci, fm801_gp_id_table);
static struct pci_driver fm801_gp_driver = {
.name = "FM801_gameport",
@@ -152,20 +153,7 @@ static struct pci_driver fm801_gp_driver = {
.remove = __devexit_p(fm801_gp_remove),
};
-static int __init fm801_gp_init(void)
-{
- return pci_register_driver(&fm801_gp_driver);
-}
-
-static void __exit fm801_gp_exit(void)
-{
- pci_unregister_driver(&fm801_gp_driver);
-}
-
-module_init(fm801_gp_init);
-module_exit(fm801_gp_exit);
-
-MODULE_DEVICE_TABLE(pci, fm801_gp_id_table);
+module_pci_driver(fm801_gp_driver);
MODULE_DESCRIPTION("FM801 gameport driver");
MODULE_AUTHOR("Takashi Iwai <[email protected]>");

drivers/input/joystick/a3d.c

View file
diff --git a/drivers/input/joystick/a3d.c b/drivers/input/joystick/a3d.c
index 1639ab2..85bc8dc 100644
--- a/drivers/input/joystick/a3d.c
+++ b/drivers/input/joystick/a3d.c
@@ -413,15 +413,4 @@ static struct gameport_driver a3d_drv = {
.disconnect = a3d_disconnect,
};
-static int __init a3d_init(void)
-{
- return gameport_register_driver(&a3d_drv);
-}
-
-static void __exit a3d_exit(void)
-{
- gameport_unregister_driver(&a3d_drv);
-}
-
-module_init(a3d_init);
-module_exit(a3d_exit);
+module_gameport_driver(a3d_drv);

drivers/input/joystick/adi.c

View file
diff --git a/drivers/input/joystick/adi.c b/drivers/input/joystick/adi.c
index b992fbf..0cbfd2d 100644
--- a/drivers/input/joystick/adi.c
+++ b/drivers/input/joystick/adi.c
@@ -557,10 +557,6 @@ static void adi_disconnect(struct gameport *gameport)
kfree(port);
}
-/*
- * The gameport device structure.
- */
-
static struct gameport_driver adi_drv = {
.driver = {
.name = "adi",
@@ -570,15 +566,4 @@ static struct gameport_driver adi_drv = {
.disconnect = adi_disconnect,
};
-static int __init adi_init(void)
-{
- return gameport_register_driver(&adi_drv);
-}
-
-static void __exit adi_exit(void)
-{
- gameport_unregister_driver(&adi_drv);
-}
-
-module_init(adi_init);
-module_exit(adi_exit);
+module_gameport_driver(adi_drv);

drivers/input/joystick/cobra.c

View file
diff --git a/drivers/input/joystick/cobra.c b/drivers/input/joystick/cobra.c
index 3497b87..65367e4 100644
--- a/drivers/input/joystick/cobra.c
+++ b/drivers/input/joystick/cobra.c
@@ -261,15 +261,4 @@ static struct gameport_driver cobra_drv = {
.disconnect = cobra_disconnect,
};
-static int __init cobra_init(void)
-{
- return gameport_register_driver(&cobra_drv);
-}
-
-static void __exit cobra_exit(void)
-{
- gameport_unregister_driver(&cobra_drv);
-}
-
-module_init(cobra_init);
-module_exit(cobra_exit);
+module_gameport_driver(cobra_drv);

drivers/input/joystick/gf2k.c

View file
diff --git a/drivers/input/joystick/gf2k.c b/drivers/input/joystick/gf2k.c
index 0536b1b..ab1cf28 100644
--- a/drivers/input/joystick/gf2k.c
+++ b/drivers/input/joystick/gf2k.c
@@ -373,15 +373,4 @@ static struct gameport_driver gf2k_drv = {
.disconnect = gf2k_disconnect,
};
-static int __init gf2k_init(void)
-{
- return gameport_register_driver(&gf2k_drv);
-}
-
-static void __exit gf2k_exit(void)
-{
- gameport_unregister_driver(&gf2k_drv);
-}
-
-module_init(gf2k_init);
-module_exit(gf2k_exit);
+module_gameport_driver(gf2k_drv);

drivers/input/joystick/grip.c

View file
diff --git a/drivers/input/joystick/grip.c b/drivers/input/joystick/grip.c
index fc55899..9e1beff 100644
--- a/drivers/input/joystick/grip.c
+++ b/drivers/input/joystick/grip.c
@@ -424,15 +424,4 @@ static struct gameport_driver grip_drv = {
.disconnect = grip_disconnect,
};
-static int __init grip_init(void)
-{
- return gameport_register_driver(&grip_drv);
-}
-
-static void __exit grip_exit(void)
-{
- gameport_unregister_driver(&grip_drv);
-}
-
-module_init(grip_init);
-module_exit(grip_exit);
+module_gameport_driver(grip_drv);

drivers/input/joystick/grip_mp.c

View file
diff --git a/drivers/input/joystick/grip_mp.c b/drivers/input/joystick/grip_mp.c
index 2d47baf..c0f9c7b 100644
--- a/drivers/input/joystick/grip_mp.c
+++ b/drivers/input/joystick/grip_mp.c
@@ -687,15 +687,4 @@ static struct gameport_driver grip_drv = {
.disconnect = grip_disconnect,
};
-static int __init grip_init(void)
-{
- return gameport_register_driver(&grip_drv);
-}
-
-static void __exit grip_exit(void)
-{
- gameport_unregister_driver(&grip_drv);
-}
-
-module_init(grip_init);
-module_exit(grip_exit);
+module_gameport_driver(grip_drv);

drivers/input/joystick/guillemot.c

View file
diff --git a/drivers/input/joystick/guillemot.c b/drivers/input/joystick/guillemot.c
index 4058d4b..55196f7 100644
--- a/drivers/input/joystick/guillemot.c
+++ b/drivers/input/joystick/guillemot.c
@@ -281,15 +281,4 @@ static struct gameport_driver guillemot_drv = {
.disconnect = guillemot_disconnect,
};
-static int __init guillemot_init(void)
-{
- return gameport_register_driver(&guillemot_drv);
-}
-
-static void __exit guillemot_exit(void)
-{
- gameport_unregister_driver(&guillemot_drv);
-}
-
-module_init(guillemot_init);
-module_exit(guillemot_exit);
+module_gameport_driver(guillemot_drv);

drivers/input/joystick/interact.c

View file
diff --git a/drivers/input/joystick/interact.c b/drivers/input/joystick/interact.c
index 16fb19d..88c2262 100644
--- a/drivers/input/joystick/interact.c
+++ b/drivers/input/joystick/interact.c
@@ -311,15 +311,4 @@ static struct gameport_driver interact_drv = {
.disconnect = interact_disconnect,
};
-static int __init interact_init(void)
-{
- return gameport_register_driver(&interact_drv);
-}
-
-static void __exit interact_exit(void)
-{
- gameport_unregister_driver(&interact_drv);
-}
-
-module_init(interact_init);
-module_exit(interact_exit);
+module_gameport_driver(interact_drv);

drivers/input/joystick/joydump.c

View file
diff --git a/drivers/input/joystick/joydump.c b/drivers/input/joystick/joydump.c
index cd894a0..7eb878b 100644
--- a/drivers/input/joystick/joydump.c
+++ b/drivers/input/joystick/joydump.c
@@ -159,15 +159,4 @@ static struct gameport_driver joydump_drv = {
.disconnect = joydump_disconnect,
};
-static int __init joydump_init(void)
-{
- return gameport_register_driver(&joydump_drv);
-}
-
-static void __exit joydump_exit(void)
-{
- gameport_unregister_driver(&joydump_drv);
-}
-
-module_init(joydump_init);
-module_exit(joydump_exit);
+module_gameport_driver(joydump_drv);

drivers/input/joystick/magellan.c

View file
diff --git a/drivers/input/joystick/magellan.c b/drivers/input/joystick/magellan.c
index 40e4078..9fb153e 100644
--- a/drivers/input/joystick/magellan.c
+++ b/drivers/input/joystick/magellan.c
@@ -222,19 +222,4 @@ static struct serio_driver magellan_drv = {
.disconnect = magellan_disconnect,
};
-/*
- * The functions for inserting/removing us as a module.
- */
-
-static int __init magellan_init(void)
-{
- return serio_register_driver(&magellan_drv);
-}
-
-static void __exit magellan_exit(void)
-{
- serio_unregister_driver(&magellan_drv);
-}
-
-module_init(magellan_init);
-module_exit(magellan_exit);
+module_serio_driver(magellan_drv);

drivers/input/joystick/sidewinder.c

View file
diff --git a/drivers/input/joystick/sidewinder.c b/drivers/input/joystick/sidewinder.c
index b8d8611..04c69af 100644
--- a/drivers/input/joystick/sidewinder.c
+++ b/drivers/input/joystick/sidewinder.c
@@ -820,15 +820,4 @@ static struct gameport_driver sw_drv = {
.disconnect = sw_disconnect,
};

This diff is incomplete. Download the complete patch.

drivers/input/joystick/spaceball.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/joystick/spaceorb.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/joystick/stinger.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/joystick/tmdc.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/joystick/twidjoy.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/joystick/warrior.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/joystick/zhenhua.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/adp5588-keys.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/atkbd.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/ep93xx_keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/hil_kbd.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/imx_keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/lkkbd.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/lm8333.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/matrix_keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/newtonkbd.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/nomadik-ske-keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/omap-keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/omap4-keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/pmic8xxx-keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/samsung-keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/spear-keyboard.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/stmpe-keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/stowaway.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/sunkbd.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/tc3589x-keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/tca8418_keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/tegra-kbc.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/tnetv107x-keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/twl4030_keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/w90p910_keypad.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/keyboard/xtkbd.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/matrix-keymap.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/misc/cma3000_d0x.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/misc/mpu3050.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/misc/twl6040-vibra.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/mouse/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/input/mouse/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/input/mouse/alps.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/mouse/alps.h

View file

This diff is incomplete. Download the complete patch.

drivers/input/mouse/navpoint.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/mouse/sentelic.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/mouse/sentelic.h

View file

This diff is incomplete. Download the complete patch.

drivers/input/mouse/sermouse.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/mouse/synaptics.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/mouse/vsxxxaa.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/of_keymap.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/input/serio/pcips2.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/serio/ps2mult.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/serio/serio_raw.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/serio/xilinx_ps2.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/tablet/aiptek.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/tablet/wacom.h

View file

This diff is incomplete. Download the complete patch.

drivers/input/tablet/wacom_sys.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/tablet/wacom_wac.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/tablet/wacom_wac.h

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/atmel_mxt_ts.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/da9052_tsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/dynapro.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/elo.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/fujitsu_ts.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/gunze.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/h3600_ts_input.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/hampshire.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/inexio.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/lpc32xx_ts.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/mtouch.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/penmount.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/st1232.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/touchit213.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/touchright.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/touchwin.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/tsc40.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/wacom_i2c.c

View file

This diff is incomplete. Download the complete patch.

drivers/input/touchscreen/wacom_w8001.c

View file

This diff is incomplete. Download the complete patch.

include/linux/gameport.h

View file

This diff is incomplete. Download the complete patch.

include/linux/i2c/adp5588.h

View file

This diff is incomplete. Download the complete patch.

include/linux/input/lm8333.h

View file

This diff is incomplete. Download the complete patch.

include/linux/input/matrix_keypad.h

View file

This diff is incomplete. Download the complete patch.

include/linux/input/navpoint.h

View file

This diff is incomplete. Download the complete patch.

include/linux/serio.h

View file

This diff is incomplete. Download the complete patch.