Subject: Re: Serial console hangs
To: Andreas Gustafsson <gson@araneus.fi>
From: Matthias Drochner <drochner@zelux6.zel.kfa-juelich.de>
List: port-i386
Date: 09/03/1998 16:12:41
Excerpts from netbsd: 3-Sep-98 Re: Serial console hangs Martin
Husemann@rumolt.t (450*)

> I'll try Matthias' suggestion and see if that helps...

After thinking about it:
There are 2 different cases: lost transmit interrupts and lost receive
interrupts. What I said about calls from comcnpoll() would only help
for receive interrupts, as *cnpoll() is only called if the console is
read from. Most people seem to suffer from lost transmit interrupts.
(Why don't I???)
So comcnputc() must check if there is something left to transmit and
space in the FIFO. As a start, I'd copy the
if (ISSET(lsr, LSR_TXRDY)) {
[...]
}
from comintr() to the end of comcnputc(). One must get hold of a
"softc" pointer somehow before... (Perhaps save it into a global
in com_attach_subr().)

best regards
Matthias