Patchworkβ timeout during PS/2 keyboard init

login
register
about
Submitter Scott
Date 2010-09-08 19:11:51
Message ID <5AF9C3BD93314353AD324B9F879933C3@m3a78>
Download mbox | patch
Permalink /patch/1891/
State Superseded
Headers show

Comments

Scott - 2010-09-08 19:11:51
Thanks Marc. This patch avoids a timeout during PS/2 keyboard
initialization. It can reduce KBC init time by up to 400 ms on
real hardware, and by a minute or so on AMD simnow.


Signed-off-by: Scott Duplichan <scott@notabs.org>
Marc Jones - 2010-09-08 20:16:49
On Wed, Sep 8, 2010 at 1:11 PM, Scott Duplichan <scott@notabs.org> wrote:
> Thanks Marc. This patch avoids a timeout during PS/2 keyboard
> initialization. It can reduce KBC init time by up to 400 ms on
> real hardware, and by a minute or so on AMD simnow.
>
>
> Signed-off-by: Scott Duplichan <scott@notabs.org>
>
> Index: src/pc80/keyboard.c
> ===================================================================
> --- src/pc80/keyboard.c (revision 5788)
> +++ src/pc80/keyboard.c (working copy)
> @@ -242,7 +242,7 @@
>        outb(0x60, KBD_COMMAND);
>        if (!kbc_input_buffer_empty()) return;
>        outb(0x61, KBD_DATA);   /* send cmd: enable keyboard and IRQ 1 */
> -       if (kbc_output_buffer_full()) {
> +       if (kbc_input_buffer_empty()) {


I think you meant !kbc_input_buffer_empty()?


Marc

Patch

Index: src/pc80/keyboard.c
===================================================================
--- src/pc80/keyboard.c	(revision 5788)
+++ src/pc80/keyboard.c	(working copy)
@@ -242,7 +242,7 @@ 
 	outb(0x60, KBD_COMMAND);
 	if (!kbc_input_buffer_empty()) return;
 	outb(0x61, KBD_DATA);	/* send cmd: enable keyboard and IRQ 1 */
-	if (kbc_output_buffer_full()) {
+	if (kbc_input_buffer_empty()) {
 		printk(BIOS_ERR, "Timeout during final keyboard enable\n");
 		return;
 	}