diff -u b/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
--- b/drivers/input/keyboard/atkbd.c	2004-10-21 14:32:30 -07:00
+++ b/drivers/input/keyboard/atkbd.c	2004-10-21 14:25:52 -07:00
@@ -207,7 +207,7 @@
 static ssize_t atkbd_attr_show_helper(struct device *dev, char *buf,
 				ssize_t (*handler)(struct atkbd *, char *));
 static ssize_t atkbd_attr_set_helper(struct device *dev, const char *buf, size_t count,
-				ssize_t (*handler)(struct atkbd *, const char *, size_t));
+				int (*handler)(struct atkbd *, const char *, size_t));
 #define ATKBD_DEFINE_ATTR(_name)						\
 static ssize_t atkbd_show_##_name(struct atkbd *, char *);			\
 static ssize_t atkbd_set_##_name(struct atkbd *, const char *, size_t);		\
@@ -526,11 +526,8 @@
 		return 0;
 	}
 
-	if (param[0] != 0xab && param[0] != 0xac &&	/* Regular and NCD Sun keyboards */
-	    param[0] != 0x2b && param[0] != 0x5d &&	/* Trust keyboard, raw and translated */
-	    param[0] != 0x60 && param[0] != 0x47)	/* NMB SGI keyboard, raw and translated */
+	if (param[0] != 0xab && param[0] != 0xac)
 		return -1;
-
 	atkbd->id = (param[0] << 8) | param[1];
 
 	if (atkbd->id == 0xaca1 && atkbd->translated) {
@@ -929,7 +926,7 @@
 }
 
 static ssize_t atkbd_attr_set_helper(struct device *dev, const char *buf, size_t count,
-				ssize_t (*handler)(struct atkbd *, const char *, size_t))
+				int (*handler)(struct atkbd *, const char *, size_t))
 {
 	struct serio *serio = to_serio_port(dev);
 	struct atkbd *atkbd;
diff -u b/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h
--- b/drivers/input/mouse/psmouse.h	2004-10-21 14:32:30 -07:00
+++ b/drivers/input/mouse/psmouse.h	2004-10-21 14:25:52 -07:00
@@ -86,7 +86,7 @@
 ssize_t psmouse_attr_show_helper(struct device *dev, char *buf,
 			ssize_t (*handler)(struct psmouse *, char *));
 ssize_t psmouse_attr_set_helper(struct device *dev, const char *buf, size_t count,
-			ssize_t (*handler)(struct psmouse *, const char *, size_t));
+			int (*handler)(struct psmouse *, const char *, size_t));
 
 #define PSMOUSE_DEFINE_ATTR(_name)						\
 static ssize_t psmouse_attr_show_##_name(struct psmouse *, char *);		\
diff -u b/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
--- b/drivers/input/serio/i8042-x86ia64io.h	2004-10-21 14:32:30 -07:00
+++ b/drivers/input/serio/i8042-x86ia64io.h	2004-10-21 14:25:52 -07:00
@@ -216,7 +216,7 @@
 
 static struct acpi_driver i8042_acpi_kbd_driver = {
 	.name		= "i8042",
-	.ids		= "PNP0303,PNP030B",
+	.ids		= "PNP0303",
 	.ops		= {
 		.add		= i8042_acpi_kbd_add,
 	},
@@ -224,7 +224,7 @@
 
 static struct acpi_driver i8042_acpi_aux_driver = {
 	.name		= "i8042",
-	.ids		= "PNP0F13,SYN0801",
+	.ids		= "PNP0F13",
 	.ops		= {
 		.add		= i8042_acpi_aux_add,
 	},
diff -u b/drivers/input/serio/libps2.c b/drivers/input/serio/libps2.c
--- b/drivers/input/serio/libps2.c	2004-10-21 14:32:30 -07:00
+++ b/drivers/input/serio/libps2.c	2004-10-21 14:25:52 -07:00
@@ -52,7 +52,7 @@
  * ps2_sendbyte() can only be called from a process context
  */
 
-int ps2_sendbyte(struct ps2dev *ps2dev, unsigned char byte, int timeout)
+int ps2_sendbyte(struct ps2dev *ps2dev, unsigned char byte)
 {
 	serio_pause_rx(ps2dev->serio);
 	ps2dev->nak = 1;
@@ -62,7 +62,7 @@
 	if (serio_write(ps2dev->serio, byte) == 0)
 		wait_event_interruptible_timeout(ps2dev->wait,
 					!(ps2dev->flags & PS2_FLAG_ACK),
-					msecs_to_jiffies(timeout));
+					msecs_to_jiffies(200));
 
 	serio_pause_rx(ps2dev->serio);
 	ps2dev->flags &= ~PS2_FLAG_ACK;
@@ -88,6 +88,8 @@
 
 	down(&ps2dev->cmd_sem);
 
+	timeout = msecs_to_jiffies(command == PS2_CMD_RESET_BAT ? 4000 : 500);
+
 	serio_pause_rx(ps2dev->serio);
 	ps2dev->flags = command == PS2_CMD_GETID ? PS2_FLAG_WAITID : 0;
 	ps2dev->cmdcnt = receive;
@@ -96,47 +98,23 @@
 			ps2dev->cmdbuf[(receive - 1) - i] = param[i];
 	serio_continue_rx(ps2dev->serio);
 
-	/*
-	 * Some devices (Synaptics) peform the reset before
-	 * ACKing the reset command, and so it can take a long
-	 * time before the ACK arrrives.
-	 */
 	if (command & 0xff)
-		if (ps2_sendbyte(ps2dev, command & 0xff,
-			command == PS2_CMD_RESET_BAT ? 1000 : 200))
+		if (ps2_sendbyte(ps2dev, command & 0xff))
 			goto out;
 
 	for (i = 0; i < send; i++)
-		if (ps2_sendbyte(ps2dev, param[i], 200))
+		if (ps2_sendbyte(ps2dev, param[i]))
 			goto out;
 
-	/*
-	 * The reset command takes a long time to execute.
-	 */
-	timeout = msecs_to_jiffies(command == PS2_CMD_RESET_BAT ? 4000 : 500);
-
-	wait_event_interruptible_timeout(ps2dev->wait,
-		!(ps2dev->flags & PS2_FLAG_CMD1), timeout);
+	timeout = wait_event_interruptible_timeout(ps2dev->wait,
+				!(ps2dev->flags & PS2_FLAG_CMD1), timeout);
 
 	if (ps2dev->cmdcnt && timeout > 0) {
-
-		if (command == PS2_CMD_RESET_BAT && timeout > msecs_to_jiffies(100)) {
-			/*
-			 * Device has sent the first response byte
-			 * after a reset command, reset is thus done,
-			 * shorten the timeout. The next byte will come
-			 * soon (keyboard) or not at all (mouse).
-			 */
+		if (command == PS2_CMD_RESET_BAT && jiffies_to_msecs(timeout) > 100)
 			timeout = msecs_to_jiffies(100);
-		}
 
 		if (command == PS2_CMD_GETID &&
-		    ps2dev->cmdbuf[receive - 1] != 0xab && /* Regular keyboards */
-		    ps2dev->cmdbuf[receive - 1] != 0xac && /* NCD Sun keyboard */
-		    ps2dev->cmdbuf[receive - 1] != 0x2b && /* Trust keyboard, translated */
-		    ps2dev->cmdbuf[receive - 1] != 0x5d && /* Trust keyboard */
-		    ps2dev->cmdbuf[receive - 1] != 0x60 && /* NMB SGI keyboard, translated */
-		    ps2dev->cmdbuf[receive - 1] != 0x47) { /* NMB SGI keyboard */
+		    ps2dev->cmdbuf[receive - 1] != 0xab && ps2dev->cmdbuf[receive - 1] != 0xac) {
 			/*
 			 * Device behind the port is not a keyboard
 			 * so we don't need to wait for the 2nd byte
diff -u b/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c
--- b/drivers/usb/input/hid-core.c	2004-10-21 14:32:30 -07:00
+++ b/drivers/usb/input/hid-core.c	2004-10-21 14:25:52 -07:00
@@ -1466,12 +1466,11 @@
 #define USB_DEVICE_ID_1_PHIDGETSERVO_20	0x8101
 #define USB_DEVICE_ID_4_PHIDGETSERVO_20	0x8104
 
-#define USB_VENDOR_ID_CODEMERCS		0x07c0
-#define USB_DEVICE_ID_CODEMERCS_IOW40	0x1500
-#define USB_DEVICE_ID_CODEMERCS_IOW24	0x1501
-#define USB_DEVICE_ID_CODEMERCS_IOW48	0x1502
-#define USB_DEVICE_ID_CODEMERCS_IOW28	0x1503
-
+#define USB_VENDOR_ID_CODEMERCS        0x07c0
+#define USB_DEVICE_ID_CODEMERCS_IOW40  0x1500
+#define USB_DEVICE_ID_CODEMERCS_IOW24  0x1501
+#define USB_DEVICE_ID_CODEMERCS_IOW48  0x1502
+#define USB_DEVICE_ID_CODEMERCS_IOW28  0x1503
 
 static struct hid_blacklist {
 	__u16 idVendor;
diff -u b/include/linux/libps2.h b/include/linux/libps2.h
--- b/include/linux/libps2.h	2004-10-21 14:32:30 -07:00
+++ b/include/linux/libps2.h	2004-10-21 14:25:52 -07:00
@@ -40,7 +40,7 @@
 };
 
 void ps2_init(struct ps2dev *ps2dev, struct serio *serio);
-int ps2_sendbyte(struct ps2dev *ps2dev, unsigned char byte, int timeout);
+int ps2_sendbyte(struct ps2dev *ps2dev, unsigned char byte);
 int ps2_command(struct ps2dev *ps2dev, unsigned char *param, int command);
 int ps2_schedule_command(struct ps2dev *ps2dev, unsigned char *param, int command);
 int ps2_handle_ack(struct ps2dev *ps2dev, unsigned char data);
