summarylogtreecommitdiffstats
path: root/0507-bootsplash.patch
diff options
context:
space:
mode:
Diffstat (limited to '0507-bootsplash.patch')
-rw-r--r--0507-bootsplash.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/0507-bootsplash.patch b/0507-bootsplash.patch
new file mode 100644
index 00000000000..e8cd479312b
--- /dev/null
+++ b/0507-bootsplash.patch
@@ -0,0 +1,42 @@
+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
+@@ -47,6 +47,8 @@
+
+ #include <asm/irq_regs.h>
+
++#include <linux/bootsplash.h>
++
+ extern void ctrl_alt_del(void);
+
+ /*
+@@ -1353,6 +1355,28 @@ static void kbd_keycode(unsigned int keycode, int down, int hw_raw)
+ }
+ #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