Merge git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
diff --git a/drivers/input/input.c b/drivers/input/input.c
index ef5824c..fe33ff3 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -477,8 +477,8 @@
 
 	entry->owner = THIS_MODULE;
 	input_fileops = *entry->proc_fops;
+	input_fileops.poll = input_devices_poll;
 	entry->proc_fops = &input_fileops;
-	entry->proc_fops->poll = input_devices_poll;
 
 	entry = create_proc_read_entry("handlers", 0, proc_bus_input_dir, input_handlers_read, NULL);
 	if (!entry)
diff --git a/drivers/input/joystick/grip_mp.c b/drivers/input/joystick/grip_mp.c
index 51a9122..6243894 100644
--- a/drivers/input/joystick/grip_mp.c
+++ b/drivers/input/joystick/grip_mp.c
@@ -53,17 +53,8 @@
 struct grip_mp {
 	struct gameport *gameport;
 	struct grip_port *port[GRIP_MAX_PORTS];
-//	struct input_dev *dev[4];
-//	int mode[4];
-//	int registered[4];
 	int reads;
 	int bads;
-
-	/* individual gamepad states */
-//	int buttons[4];
-//	int xaxes[4];
-//	int yaxes[4];
-//	int dirty[4];     /* has the state been updated? */
 };
 
 /*
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
index 4a91774..3b0ac3b 100644
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
@@ -143,16 +143,6 @@
 	  To compile this driver as a module, choose M here: the
 	  module will be called spitzkbd.
 
-config KEYBOARD_MAPLE
-	tristate "Maple bus keyboard"
-	depends on SH_DREAMCAST && MAPLE
-	help
-	  Say Y here if you have a DreamCast console running Linux and have
-	  a keyboard attached to its Maple bus.
-
-	  To compile this driver as a module, choose M here: the
-	  module will be called maple_keyb.
-
 config KEYBOARD_AMIGA
 	tristate "Amiga keyboard"
 	depends on AMIGA
diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile
index 9ce0b87..6e0afbb 100644
--- a/drivers/input/keyboard/Makefile
+++ b/drivers/input/keyboard/Makefile
@@ -5,7 +5,6 @@
 # Each configuration option enables a list of files.
 
 obj-$(CONFIG_KEYBOARD_ATKBD)		+= atkbd.o
-obj-$(CONFIG_KEYBOARD_MAPLE)		+= maple_keyb.o
 obj-$(CONFIG_KEYBOARD_SUNKBD)		+= sunkbd.o
 obj-$(CONFIG_KEYBOARD_LKKBD)		+= lkkbd.o
 obj-$(CONFIG_KEYBOARD_XTKBD)		+= xtkbd.o
diff --git a/drivers/input/misc/wistron_btns.c b/drivers/input/misc/wistron_btns.c
index a05b855..4b415d9 100644
--- a/drivers/input/misc/wistron_btns.c
+++ b/drivers/input/misc/wistron_btns.c
@@ -92,11 +92,11 @@
 	preempt_enable();
 }
 
-static size_t __init locate_wistron_bios(void __iomem *base)
+static ssize_t __init locate_wistron_bios(void __iomem *base)
 {
 	static const unsigned char __initdata signature[] =
 		{ 0x42, 0x21, 0x55, 0x30 };
-	size_t offset;
+	ssize_t offset;
 
 	for (offset = 0; offset < 0x10000; offset += 0x10) {
 		if (check_signature(base + offset, signature,
@@ -109,7 +109,7 @@
 static int __init map_bios(void)
 {
 	void __iomem *base;
-	size_t offset;
+	ssize_t offset;
 	u32 entry_point;
 
 	base = ioremap(0xF0000, 0x10000); /* Can't fail */
diff --git a/drivers/input/mouse/Kconfig b/drivers/input/mouse/Kconfig
index 574b18a..f15ccf7 100644
--- a/drivers/input/mouse/Kconfig
+++ b/drivers/input/mouse/Kconfig
@@ -86,16 +86,6 @@
 	  To compile this driver as a module, choose M here: the
 	  module will be called pc110pad.
 
-config MOUSE_MAPLE
-	tristate "Maple bus mouse"
-	depends on SH_DREAMCAST && MAPLE
-	help
-	  Say Y if you have a DreamCast console and a mouse attached to
-	  its Maple bus.
-
-	  To compile this driver as a module, choose M here: the
-	  module will be called maplemouse.
-
 config MOUSE_AMIGA
 	tristate "Amiga mouse"
 	depends on AMIGA
diff --git a/drivers/input/mouse/Makefile b/drivers/input/mouse/Makefile
index 82b330b..21a1de6 100644
--- a/drivers/input/mouse/Makefile
+++ b/drivers/input/mouse/Makefile
@@ -8,7 +8,6 @@
 obj-$(CONFIG_MOUSE_RISCPC)	+= rpcmouse.o
 obj-$(CONFIG_MOUSE_INPORT)	+= inport.o
 obj-$(CONFIG_MOUSE_LOGIBM)	+= logibm.o
-obj-$(CONFIG_MOUSE_MAPLE)	+= maplemouse.o
 obj-$(CONFIG_MOUSE_PC110PAD)	+= pc110pad.o
 obj-$(CONFIG_MOUSE_PS2)		+= psmouse.o
 obj-$(CONFIG_MOUSE_SERIAL)	+= sermouse.o
diff --git a/drivers/input/mouse/maplemouse.c b/drivers/input/mouse/maplemouse.c
deleted file mode 100644
index b5b34fe..0000000
--- a/drivers/input/mouse/maplemouse.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- *	$Id: maplemouse.c,v 1.2 2004/03/22 01:18:15 lethal Exp $
- *	SEGA Dreamcast mouse driver
- *	Based on drivers/usb/usbmouse.c
- */
-
-#include <linux/kernel.h>
-#include <linux/slab.h>
-#include <linux/input.h>
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/timer.h>
-#include <linux/maple.h>
-
-MODULE_AUTHOR("YAEGASHI Takeshi <t@keshi.org>");
-MODULE_DESCRIPTION("SEGA Dreamcast mouse driver");
-
-static void dc_mouse_callback(struct mapleq *mq)
-{
-	int buttons, relx, rely, relz;
-	struct maple_device *mapledev = mq->dev;
-	struct input_dev *dev = mapledev->private_data;
-	unsigned char *res = mq->recvbuf;
-
-	buttons = ~res[8];
-	relx = *(unsigned short *)(res + 12) - 512;
-	rely = *(unsigned short *)(res + 14) - 512;
-	relz = *(unsigned short *)(res + 16) - 512;
-
-	input_report_key(dev, BTN_LEFT,   buttons & 4);
-	input_report_key(dev, BTN_MIDDLE, buttons & 9);
-	input_report_key(dev, BTN_RIGHT,  buttons & 2);
-	input_report_rel(dev, REL_X,      relx);
-	input_report_rel(dev, REL_Y,      rely);
-	input_report_rel(dev, REL_WHEEL,  relz);
-	input_sync(dev);
-}
-
-static int dc_mouse_connect(struct maple_device *dev)
-{
-	unsigned long data = be32_to_cpu(dev->devinfo.function_data[0]);
-	struct input_dev *input_dev;
-
-	dev->private_data = input_dev = input_allocate_device();
-	if (!input_dev)
-		return -ENOMEM;
-
-	dev->private_data = input_dev;
-
-	input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REL);
-	input_dev->keybit[LONG(BTN_MOUSE)] = BIT(BTN_LEFT) | BIT(BTN_RIGHT) | BIT(BTN_MIDDLE);
-	input_dev->relbit[0] = BIT(REL_X) | BIT(REL_Y) | BIT(REL_WHEEL);
-
-	input_dev->name = dev->product_name;
-	input_dev->id.bustype = BUS_MAPLE;
-
-	input_register_device(input_dev);
-
-	maple_getcond_callback(dev, dc_mouse_callback, 1, MAPLE_FUNC_MOUSE);
-
-	return 0;
-}
-
-
-static void dc_mouse_disconnect(struct maple_device *dev)
-{
-	struct input_dev *input_dev = dev->private_data;
-
-	input_unregister_device(input_dev);
-}
-
-
-static struct maple_driver dc_mouse_driver = {
-	.function =	MAPLE_FUNC_MOUSE,
-	.name =		"Dreamcast mouse",
-	.connect =	dc_mouse_connect,
-	.disconnect =	dc_mouse_disconnect,
-};
-
-
-static int __init dc_mouse_init(void)
-{
-	maple_register_driver(&dc_mouse_driver);
-	return 0;
-}
-
-
-static void __exit dc_mouse_exit(void)
-{
-	maple_unregister_driver(&dc_mouse_driver);
-}
-
-
-module_init(dc_mouse_init);
-module_exit(dc_mouse_exit);
-
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- */
diff --git a/drivers/misc/ibmasm/remote.c b/drivers/misc/ibmasm/remote.c
index 1abd0c5..0f9e3aa 100644
--- a/drivers/misc/ibmasm/remote.c
+++ b/drivers/misc/ibmasm/remote.c
@@ -270,6 +270,7 @@
 
  err_unregister_mouse_dev:
 	input_unregister_device(mouse_dev);
+	mouse_dev = NULL; /* so we don't try to free it again below */
  err_free_devices:
 	input_free_device(mouse_dev);
 	input_free_device(keybd_dev);