43 lines
980 B
Diff
43 lines
980 B
Diff
diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
|
|
index f4166263bb3a..a248429194bb 100644
|
|
--- a/drivers/tty/vt/keyboard.c
|
|
+++ b/drivers/tty/vt/keyboard.c
|
|
@@ -49,6 +49,8 @@
|
|
|
|
#include <asm/irq_regs.h>
|
|
|
|
+#include <linux/bootsplash.h>
|
|
+
|
|
/*
|
|
* Exported functions/variables
|
|
*/
|
|
@@ -1413,6 +1415,28 @@ static void kbd_keycode(unsigned int key
|
|
}
|
|
#endif
|
|
|
|
+ /* Trap keys when bootsplash is shown */
|
|
+ if (bootsplash_would_render_now()) {
|
|
+ /* Deactivate bootsplash on ESC or Alt+Fxx VT switch */
|
|
+ if (keycode >= KEY_F1 && keycode <= KEY_F12) {
|
|
+ bootsplash_disable();
|
|
+
|
|
+ /*
|
|
+ * No return here since we want to actually
|
|
+ * perform the VT switch.
|
|
+ */
|
|
+ } else {
|
|
+ if (keycode == KEY_ESC)
|
|
+ bootsplash_disable();
|
|
+
|
|
+ /*
|
|
+ * Just drop any other keys.
|
|
+ * Their effect would be hidden by the splash.
|
|
+ */
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
+
|
|
if (kbd->kbdmode == VC_MEDIUMRAW) {
|
|
/*
|
|
* This is extended medium raw mode, with keys above 127
|