diff options
Diffstat (limited to 'drivers/tty/vt/keyboard.c')
-rw-r--r-- | drivers/tty/vt/keyboard.c | 5 |
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); |