summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Roth <martin.roth@se-eng.com>2013-07-29 16:39:00 -0600
committerPatrick Georgi <patrick@georgi-clan.de>2013-12-21 08:30:07 +0100
commit08637d3c9e408161cfed33bec381a632e2283d79 (patch)
treef03324b43f36df67001fd225481b6c8e389070cc
parent3ee59f7b313e41b8379c54f00bba2526f0d0d43b (diff)
Remove PS/2 keyboard initialization on resume from S3
When we go through the resume path, there shouldn't ever be a need to initialize the PS/2 keyboard. The OS is going to reinitialize it anyway, and it just slows the resume. Verified Code flow in normal boot/S3 resume with print statements. Verified Keyboard was correctly disabled and flushed by booting to recovery mode screen while pressing keys on the integrated keyboard. Change-Id: I48bdca2fa2cc0c965401d10fef75cadb09d2e1e9 Signed-off-by: Martin Roth <martin.roth@se-eng.com> Reviewed-on: https://gerrit.chromium.org/gerrit/63648 Reviewed-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: Shawn Nematbakhsh <shawnn@chromium.org> Commit-Queue: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: http://review.coreboot.org/4396 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
-rw-r--r--src/drivers/pc80/keyboard.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/drivers/pc80/keyboard.c b/src/drivers/pc80/keyboard.c
index 2888bcf295..e389329710 100644
--- a/src/drivers/pc80/keyboard.c
+++ b/src/drivers/pc80/keyboard.c
@@ -25,6 +25,9 @@
#include <device/device.h>
#include <arch/io.h>
#include <delay.h>
+#if CONFIG_HAVE_ACPI_RESUME
+#include <arch/acpi.h>
+#endif
#define KBD_DATA 0x60
#define KBD_COMMAND 0x64
@@ -194,6 +197,12 @@ void pc_keyboard_init(struct pc_keyboard *keyboard)
u8 regval;
if (!CONFIG_DRIVERS_PS2_KEYBOARD)
return;
+
+#if CONFIG_HAVE_ACPI_RESUME
+ if (acpi_slp_type == 3)
+ return;
+#endif
+
printk(BIOS_DEBUG, "Keyboard init...\n");
/* Run a keyboard controller self-test */