[coreboot] [PATCH] timeout during PS/2 keyboard init
Marc Jones
marcj303 at gmail.com
Thu Sep 9 22:37:50 CEST 2010
On Wed, Sep 8, 2010 at 5:01 PM, Scott Duplichan <scott at notabs.org> wrote:
> ]-----Original Message-----
> ]From: coreboot-bounces at coreboot.org [mailto:coreboot-bounces at coreboot.org] On Behalf Of Marc Jones
> ]Sent: Wednesday, September 08, 2010 03:17 PM
> ]To: Scott Duplichan
> ]Cc: coreboot at coreboot.org
> ]Subject: Re: [coreboot] [PATCH] timeout during PS/2 keyboard init
> ]
> ]On Wed, Sep 8, 2010 at 1:11 PM, Scott Duplichan <scott at 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 at 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()?
>
> Good catch. You are correct. While the previous patch avoids the timeout,
> it does not correct the reversed check for when to log the error message.
> The revised patch below includes the logging fix, in addition to the
> timeout avoidance of the original patch.
>
> ]Marc
> ]
> ]--
> ]http://se-eng.com
>
>
> Signed-off-by: Scott Duplichan <scott at 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()) {
> printk(BIOS_ERR, "Timeout during final keyboard enable\n");
> return;
> }
>
>
Acked-by: Marc Jones <marcj303 at gmail.com>
r5798
--
http://se-eng.com
More information about the coreboot
mailing list