|
@@ -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);
|