diff --git a/payloads/libpayload/drivers/keyboard.c b/payloads/libpayload/drivers/keyboard.c index cfb4d0bf49..e65f08534a 100644 --- a/payloads/libpayload/drivers/keyboard.c +++ b/payloads/libpayload/drivers/keyboard.c @@ -31,11 +31,6 @@ #include #include -#define I8042_CMD_READ_MODE 0x20 -#define I8042_CMD_WRITE_MODE 0x60 - -#define I8042_MODE_XLATE 0x40 - struct layout_maps { const char *country; const unsigned short map[4][0x57]; @@ -261,40 +256,6 @@ int keyboard_getchar(void) return ret; } -static int keyboard_wait_read(void) -{ - int retries = 10000; - - while(retries-- && !(inb(0x64) & 0x01)) - udelay(50); - - return (retries <= 0) ? -1 : 0; -} - -static int keyboard_wait_write(void) -{ - int retries = 10000; - - while(retries-- && (inb(0x64) & 0x02)) - udelay(50); - - return (retries <= 0) ? -1 : 0; -} - -static unsigned char keyboard_get_mode(void) -{ - outb(I8042_CMD_READ_MODE, 0x64); - keyboard_wait_read(); - return inb(0x60); -} - -static void keyboard_set_mode(unsigned char mode) -{ - outb(I8042_CMD_WRITE_MODE, 0x64); - keyboard_wait_write(); - outb(mode, 0x60); -} - /** * Set keyboard layout * @param country string describing the keyboard layout language. @@ -326,29 +287,16 @@ static struct console_input_driver cons = { void keyboard_init(void) { - u8 mode; map = &keyboard_layouts[0]; /* If 0x64 returns 0xff, then we have no keyboard * controller */ - if (inb(0x64) == 0xFF) return; /* Empty keyboard buffer */ while (keyboard_havechar()) keyboard_getchar(); - /* Read the current mode */ - mode = keyboard_get_mode(); - - /* Turn on scancode translate mode so that we can - use the scancode set 1 tables */ - - mode |= I8042_MODE_XLATE; - - /* Write the new mode */ - keyboard_set_mode(mode); - console_add_input_driver(&cons); }