AT KBC: Check for T3100E 'Fn' key after translating the current scan code, should fix the keys with translated scan code set 2 as well.
This commit is contained in:
@@ -277,9 +277,26 @@ kbc_translate(atkbc_t *dev, uint8_t val)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kbc_at_log("ATkbc: translate is %s, ", translate ? "on" : "off");
|
||||||
|
#ifdef ENABLE_KEYBOARD_AT_LOG
|
||||||
|
kbc_at_log("scan code: ");
|
||||||
|
if (translate) {
|
||||||
|
kbc_at_log("%02X (original: ", (nont_to_t[val] | dev->sc_or));
|
||||||
|
if (dev->sc_or == 0x80)
|
||||||
|
kbc_at_log("F0 ");
|
||||||
|
kbc_at_log("%02X)\n", val);
|
||||||
|
} else
|
||||||
|
kbc_at_log("%02X\n", val);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret = translate ? (nont_to_t[val] | dev->sc_or) : val;
|
||||||
|
|
||||||
|
if (dev->sc_or == 0x80)
|
||||||
|
dev->sc_or = 0;
|
||||||
|
|
||||||
/* Test for T3100E 'Fn' key (Right Alt / Right Ctrl) */
|
/* Test for T3100E 'Fn' key (Right Alt / Right Ctrl) */
|
||||||
if ((dev != NULL) && (kbc_ven == KBC_VEN_TOSHIBA) &&
|
if ((dev != NULL) && (kbc_ven == KBC_VEN_TOSHIBA) &&
|
||||||
(keyboard_recv(0x138) || keyboard_recv(0x11d))) switch (val) {
|
(keyboard_recv(0x138) || keyboard_recv(0x11d))) switch (ret) {
|
||||||
case 0x4f:
|
case 0x4f:
|
||||||
t3100e_notify_set(0x01);
|
t3100e_notify_set(0x01);
|
||||||
break; /* End */
|
break; /* End */
|
||||||
@@ -329,23 +346,6 @@ kbc_translate(atkbc_t *dev, uint8_t val)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
kbc_at_log("ATkbc: translate is %s, ", translate ? "on" : "off");
|
|
||||||
#ifdef ENABLE_KEYBOARD_AT_LOG
|
|
||||||
kbc_at_log("scan code: ");
|
|
||||||
if (translate) {
|
|
||||||
kbc_at_log("%02X (original: ", (nont_to_t[val] | dev->sc_or));
|
|
||||||
if (dev->sc_or == 0x80)
|
|
||||||
kbc_at_log("F0 ");
|
|
||||||
kbc_at_log("%02X)\n", val);
|
|
||||||
} else
|
|
||||||
kbc_at_log("%02X\n", val);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ret = translate ? (nont_to_t[val] | dev->sc_or) : val;
|
|
||||||
|
|
||||||
if (dev->sc_or == 0x80)
|
|
||||||
dev->sc_or = 0;
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user