diff --git a/input/drivers/linux_common.c b/input/drivers/linux_common.c index b571440746..1b8863d334 100644 --- a/input/drivers/linux_common.c +++ b/input/drivers/linux_common.c @@ -63,6 +63,9 @@ bool linux_terminal_init(void) if (tcsetattr(0, TCSAFLUSH, &newTerm) < 0) return false; + if (ioctl(0, KDSKBMODE, K_MEDIUMRAW) < 0) + return false; + return true; } diff --git a/input/drivers/linuxraw_input.c b/input/drivers/linuxraw_input.c index 79d89b9af8..64198240c9 100644 --- a/input/drivers/linuxraw_input.c +++ b/input/drivers/linuxraw_input.c @@ -66,12 +66,6 @@ static void *linuxraw_input_init(void) if (!linux_terminal_init()) - { - free(linuxraw); - return NULL; - } - - if (ioctl(0, KDSKBMODE, K_MEDIUMRAW) != 0) { linux_terminal_restore_input(); free(linuxraw); diff --git a/input/drivers/udev_input.c b/input/drivers/udev_input.c index ceb7d74d78..93728c1dfe 100644 --- a/input/drivers/udev_input.c +++ b/input/drivers/udev_input.c @@ -712,9 +712,6 @@ static void disable_terminal_input(void) return; if (!linux_terminal_init()) - return; - - if (ioctl(0, KDSKBMODE, K_MEDIUMRAW) < 0) { linux_terminal_flush(); return;