Some AT KBC fixes, fixes the QDI Excellent II.

This commit is contained in:
OBattler
2021-08-09 07:52:57 +02:00
parent 0473a59524
commit 7190a776ae

View File

@@ -1118,12 +1118,15 @@ write_cmd(atkbd_t *dev, uint8_t val)
if ((kbc_ven == KBC_VEN_AMI) ||
((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_NOREF)) {
keyboard_mode &= ~CCB_PCMODE;
/* Update the output port to mirror the KBD DIS and AUX DIS bits, if active. */
write_output(dev, dev->output_port);
kbd_log("ATkbc: mouse interrupt is now %s\n", (val & 0x02) ? "enabled" : "disabled");
}
if ((kbc_ven == KBC_VEN_AMI) || ((dev->flags & KBC_TYPE_MASK) < KBC_TYPE_PS2_NOREF)) {
/* Update the output port to mirror the KBD DIS and AUX DIS bits, if active. */
write_output(dev, dev->output_port);
}
kbd_log("Command byte now: %02X (%02X)\n", dev->mem[0], val);
dev->status = (dev->status & ~STAT_SYSFLAG) | (val & STAT_SYSFLAG);
@@ -1740,7 +1743,7 @@ kbd_write(uint16_t port, uint8_t val, void *priv)
case 0xd2: /* write to keyboard output buffer */
kbd_log("ATkbc: write to keyboard output buffer\n");
add_data_kbd_direct(dev, val);
add_to_kbc_queue_front(dev, val, 0, 0x00);
break;
case 0xd3: /* write to mouse output buffer */