diff --git a/sys/dev/ic/com.c b/sys/dev/ic/com.c index 48c971030e52..dc80a2fe7ec8 100644 --- a/sys/dev/ic/com.c +++ b/sys/dev/ic/com.c @@ -1,4 +1,4 @@ -/* $NetBSD: com.c,v 1.156 1999/03/29 10:01:39 ross Exp $ */ +/* $NetBSD: com.c,v 1.157 1999/03/29 13:21:15 mycroft Exp $ */ /*- * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc. @@ -2174,32 +2174,25 @@ com_common_putc(iot, ioh, c) int c; { int s = splserial(); - int clearirq; u_char stat; int timo; /* wait for any pending transmission to finish */ - timo = 500; + timo = 1500; while (!ISSET(stat = bus_space_read_1(iot, ioh, com_lsr), LSR_TXRDY) && --timo) delay(100); - clearirq = ISSET(bus_space_read_1(iot, ioh, com_iir), IIR_NOPEND); - COM_BARRIER(iot, ioh, BR | BW); bus_space_write_1(iot, ioh, com_data, c); COM_BARRIER(iot, ioh, BR | BW); + /* wait for this transmission to complete */ timo = 15000; while (!ISSET(stat = bus_space_read_1(iot, ioh, com_lsr), LSR_TXRDY) && --timo) delay(100); - if(clearirq != 0) { - /* clear any interrupts generated by this transmission */ - (void)bus_space_read_1(iot, ioh, com_iir); - COM_BARRIER(iot, ioh, BR | BW); - splx(s); - } + splx(s); } /*