From: Dmitry Torokhov <dtor_core@ameritech.net>

Do not generate events from atkbd until keyboard is completely initialized. 
It should suppress messages about suprious NAKs when controller's timeout is
longer than one in atkbd.


---

 25-akpm/drivers/input/keyboard/atkbd.c |    6 ++++++
 1 files changed, 6 insertions(+)

diff -puN drivers/input/keyboard/atkbd.c~new-set-of-input-patches-atkbd-timeout-complaints drivers/input/keyboard/atkbd.c
--- 25/drivers/input/keyboard/atkbd.c~new-set-of-input-patches-atkbd-timeout-complaints	2004-04-21 00:22:32.515092240 -0700
+++ 25-akpm/drivers/input/keyboard/atkbd.c	2004-04-21 00:22:32.519091632 -0700
@@ -188,6 +188,7 @@ struct atkbd {
 	unsigned int resend:1;
 	unsigned int release:1;
 	unsigned int bat_xl:1;
+	unsigned int enabled:1;
 
 	unsigned int last;
 	unsigned long time;
@@ -248,6 +249,9 @@ static irqreturn_t atkbd_interrupt(struc
 		goto out;
 	}
 
+	if (!atkbd->enabled)
+		goto out;
+
 	if (atkbd->translated) {
 
 		if (atkbd->emul ||
@@ -750,6 +754,8 @@ static void atkbd_connect(struct serio *
 		atkbd->id = 0xab00;
 	}
 
+	atkbd->enabled = 1;
+
 	if (atkbd->extra) {
 		atkbd->dev.ledbit[0] |= BIT(LED_COMPOSE) | BIT(LED_SUSPEND) | BIT(LED_SLEEP) | BIT(LED_MUTE) | BIT(LED_MISC);
 		sprintf(atkbd->name, "AT Set 2 Extra keyboard");

_