From 901e2568fe382115e7aac711b5f52ba6501645b7 Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 29 Feb 2024 06:46:37 +0100 Subject: [PATCH] Mask out serial passthrough MSR bits when in loopback mode, fixes #4217. --- src/device/serial.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/device/serial.c b/src/device/serial.c index 37aadf8fe..dcdffb71c 100644 --- a/src/device/serial.c +++ b/src/device/serial.c @@ -686,7 +686,10 @@ serial_read(uint16_t addr, void *priv) serial_update_ints(dev); break; case 6: - ret = dev->msr | dev->msr_set; + if (dev->mctrl & 0x10) + ret = dev->msr; + else + ret = dev->msr | dev->msr_set; dev->msr &= ~0x0f; dev->int_status &= ~SERIAL_INT_MSR; serial_update_ints(dev);