io-char and LOSES_TX_INTR

What exactly is the meaning of this flag (LOSES_TX_INTR)?

Line 160 of init.c (devc-ser8250):
dev->tty.flags = EDIT_INSERT | LOSES_TX_INTR;


TIA
Brian

Brian Meinke <RoverFan_SE7@hotmail.com> wrote:

What exactly is the meaning of this flag (LOSES_TX_INTR)?

Line 160 of init.c (devc-ser8250):
dev->tty.flags = EDIT_INSERT | LOSES_TX_INTR;

It’s for a buggy chip (chips?) that would forget to raise a transmit
ready interrupt when it should. Setting that flag causes the io-char
library to start a timer that checks for the transmit ready bit every so
often. If the TX-ready interrupt is lost, the timer check will get
serial output flowing again. Also has the happy side effect of causing
serial output to work even if the user specifies the wrong interrupt number
on the command line - you’ll see the characters come out at what looks
like 300 baud.


Brian Stecher (bstecher@qnx.com) QNX Software Systems, Ltd.
phone: +1 (613) 591-0931 (voice) 175 Terence Matthews Cr.
+1 (613) 591-3579 (fax) Kanata, Ontario, Canada K2M 1W8

Thanks for the feedback Brian (great name BTW)That is essentially what I
gathered from the code. Is the 8250 family of chips known to “forget” to
raise a TDRE interrupt?

“Brian Stecher” <bstecher@qnx.com> wrote in message
news:b0479r$990$1@nntp.qnx.com

Brian Meinke <> RoverFan_SE7@hotmail.com> > wrote:
What exactly is the meaning of this flag (LOSES_TX_INTR)?

Line 160 of init.c (devc-ser8250):
dev->tty.flags = EDIT_INSERT | LOSES_TX_INTR;

It’s for a buggy chip (chips?) that would forget to raise a transmit
ready interrupt when it should. Setting that flag causes the io-char
library to start a timer that checks for the transmit ready bit every so
often. If the TX-ready interrupt is lost, the timer check will get
serial output flowing again. Also has the happy side effect of causing
serial output to work even if the user specifies the wrong interrupt
number
on the command line - you’ll see the characters come out at what looks
like 300 baud.


Brian Stecher (> bstecher@qnx.com> ) QNX Software Systems, Ltd.
phone: +1 (613) 591-0931 (voice) 175 Terence Matthews Cr.
+1 (613) 591-3579 (fax) Kanata, Ontario, Canada K2M
1W8

Brian Meinke <RoverFan_SE7@hotmail.com> wrote:

Thanks for the feedback Brian (great name BTW)That is essentially what I
gathered from the code. Is the 8250 family of chips known to “forget” to
raise a TDRE interrupt?

I don’t think it’s all the 8250 family, just some subset of parts.
What parts those are, I don’t know - similar code exists in the
QNX 4 version of the driver, so I suspect they’re old.


Brian Stecher (bstecher@qnx.com) QNX Software Systems, Ltd.
phone: +1 (613) 591-0931 (voice) 175 Terence Matthews Cr.
+1 (613) 591-3579 (fax) Kanata, Ontario, Canada K2M 1W8