Allow interrupts indicating an empty buffer only if some bytes are
pending
This should correct the boot in Qemu
Modified: trunk/reactos/drivers/dd/serial/misc.c
_____
Modified: trunk/reactos/drivers/dd/serial/misc.c
--- trunk/reactos/drivers/dd/serial/misc.c 2005-04-15 22:02:37 UTC
(rev 14630)
+++ trunk/reactos/drivers/dd/serial/misc.c 2005-04-15 22:14:13 UTC
(rev 14631)
@@ -130,11 +130,13 @@
DeviceExtension->ComPort, Byte);
DeviceExtension->SerialPerfStats.TransmittedCount++;
}
+ if (!IsCircularBufferEmpty(&DeviceExtension->OutputBuffer))
+ {
+ /* allow new interrupts */
+ IER = READ_PORT_UCHAR(SER_IER(ComPortBase));
+ WRITE_PORT_UCHAR(SER_IER(ComPortBase), IER |
SR_IER_THR_EMPTY);
+ }
KeReleaseSpinLock(&DeviceExtension->OutputBufferLock, Irql);
-
- /* allow new interrupts */
- IER = READ_PORT_UCHAR(SER_IER(ComPortBase));
- WRITE_PORT_UCHAR(SER_IER(ComPortBase), IER | SR_IER_THR_EMPTY);
}
BOOLEAN STDCALL
Show replies by date