vt: Add virtual console keyboard mode OFF
[firefly-linux-kernel-4.4.55.git] / drivers / tty / vt / keyboard.c
index e95d7876ca6bd573b110b778ffb52574dda62038..6dd3c68c13add15f4a0452f06694fbd7a2c06cf4 100644 (file)
@@ -654,7 +654,8 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
        if (value >= ARRAY_SIZE(fn_handler))
                return;
        if ((kbd->kbdmode == VC_RAW ||
-            kbd->kbdmode == VC_MEDIUMRAW) &&
+            kbd->kbdmode == VC_MEDIUMRAW ||
+            kbd->kbdmode == VC_OFF) &&
             value != KVAL(K_SAK))
                return;         /* SAK is allowed even in raw mode */
        fn_handler[value](vc);
@@ -1295,7 +1296,7 @@ static void kbd_keycode(unsigned int keycode, int down, int hw_raw)
        if (rc == NOTIFY_STOP)
                return;
 
-       if (raw_mode && type != KT_SPEC && type != KT_SHIFT)
+       if ((raw_mode || kbd->kbdmode == VC_OFF) && type != KT_SPEC && type != KT_SHIFT)
                return;
 
        (*k_handler[type])(vc, keysym & 0xff, !down);