aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/vt/keyboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/tty/vt/keyboard.c')
-rw-r--r--drivers/tty/vt/keyboard.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
index e95d7876ca6b..6dd3c68c13ad 100644
--- a/drivers/tty/vt/keyboard.c
+++ b/drivers/tty/vt/keyboard.c
@@ -654,7 +654,8 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
654 if (value >= ARRAY_SIZE(fn_handler)) 654 if (value >= ARRAY_SIZE(fn_handler))
655 return; 655 return;
656 if ((kbd->kbdmode == VC_RAW || 656 if ((kbd->kbdmode == VC_RAW ||
657 kbd->kbdmode == VC_MEDIUMRAW) && 657 kbd->kbdmode == VC_MEDIUMRAW ||
658 kbd->kbdmode == VC_OFF) &&
658 value != KVAL(K_SAK)) 659 value != KVAL(K_SAK))
659 return; /* SAK is allowed even in raw mode */ 660 return; /* SAK is allowed even in raw mode */
660 fn_handler[value](vc); 661 fn_handler[value](vc);
@@ -1295,7 +1296,7 @@ static void kbd_keycode(unsigned int keycode, int down, int hw_raw)
1295 if (rc == NOTIFY_STOP) 1296 if (rc == NOTIFY_STOP)
1296 return; 1297 return;
1297 1298
1298 if (raw_mode && type != KT_SPEC && type != KT_SHIFT) 1299 if ((raw_mode || kbd->kbdmode == VC_OFF) && type != KT_SPEC && type != KT_SHIFT)
1299 return; 1300 return;
1300 1301
1301 (*k_handler[type])(vc, keysym & 0xff, !down); 1302 (*k_handler[type])(vc, keysym & 0xff, !down);