From 1eb9c1db51c58de0e80455e86557ac219e77864a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Fri, 15 Apr 2005 22:14:13 +0000 Subject: [PATCH] Allow interrupts indicating an empty buffer only if some bytes are pending This should correct the boot in Qemu svn path=/trunk/; revision=14631 --- reactos/drivers/dd/serial/misc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/reactos/drivers/dd/serial/misc.c b/reactos/drivers/dd/serial/misc.c index 7fda4c907db..8e730bc4904 100644 --- a/reactos/drivers/dd/serial/misc.c +++ b/reactos/drivers/dd/serial/misc.c @@ -130,11 +130,13 @@ SerialSendByte( 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