The AT keyboard controller now correctly rejects any bytes during reset delay.
This commit is contained in:
@@ -746,9 +746,9 @@ add_data(atkbd_t *dev, uint8_t val)
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
add_data_kbd_queue(uint8_t val)
|
add_data_kbd_queue(atkbd_t *dev, uint8_t val)
|
||||||
{
|
{
|
||||||
if (!keyboard_scan || (channel_queue_pos[1] >= 16))
|
if (!keyboard_scan || dev->reset_delay || (channel_queue_pos[1] >= 16))
|
||||||
return;
|
return;
|
||||||
kbd_log("channel_queue[1][channel_queue_pos[1]] = %02X;\n", (uint32_t) val);
|
kbd_log("channel_queue[1][channel_queue_pos[1]] = %02X;\n", (uint32_t) val);
|
||||||
channel_queue[1][channel_queue_pos[1]] = val;
|
channel_queue[1][channel_queue_pos[1]] = val;
|
||||||
@@ -787,7 +787,7 @@ add_data_vals(atkbd_t *dev, uint8_t *val, uint8_t len)
|
|||||||
kbd_log("%02X", send);
|
kbd_log("%02X", send);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
add_data_kbd_queue(send);
|
add_data_kbd_queue(dev, send);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ENABLE_KEYBOARD_AT_LOG
|
#ifdef ENABLE_KEYBOARD_AT_LOG
|
||||||
@@ -1033,7 +1033,7 @@ add_data_kbd(uint16_t val)
|
|||||||
kbd_log("%02X\n", val);
|
kbd_log("%02X\n", val);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
add_data_kbd_queue(translate ? (nont_to_t[val] | sc_or) : val);
|
add_data_kbd_queue(dev, translate ? (nont_to_t[val] | sc_or) : val);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2016,7 +2016,7 @@ do_command:
|
|||||||
#ifdef ENABLE_KEYBOARD_AT_LOG
|
#ifdef ENABLE_KEYBOARD_AT_LOG
|
||||||
kbd_log("ATkbd: reset last scan code\n");
|
kbd_log("ATkbd: reset last scan code\n");
|
||||||
#endif
|
#endif
|
||||||
add_data_kbd_queue(kbd_last_scan_code);
|
add_data_kbd_queue(dev, kbd_last_scan_code);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xff: /* reset */
|
case 0xff: /* reset */
|
||||||
@@ -2646,7 +2646,9 @@ keyboard_at_set_mouse(void (*func)(uint8_t val, void *priv), void *priv)
|
|||||||
void
|
void
|
||||||
keyboard_at_adddata_keyboard_raw(uint8_t val)
|
keyboard_at_adddata_keyboard_raw(uint8_t val)
|
||||||
{
|
{
|
||||||
add_data_kbd_queue(val);
|
atkbd_t *dev = SavedKbd;
|
||||||
|
|
||||||
|
add_data_kbd_queue(dev, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user