Always leave SP_DCEN on (monitor DCD). Otherwise the firmware *really*

does ignore DCD.  Even TIOCMGET cannot read DCD as the firmware doesn't
report it.  This has pretty interesting effects for ppp(8) which runs
in clocal mode and polls carrier (!).  (Specialix's linux driver does
this too)

Also update the firmware to 3.0.6 for the SX cards, as apparently there
was a problem with floating (disconnected) DCD pins causing stray carrier
transitions, especially at port open time.

It seems to work here, and carrier loss is detected nearly immediately
rather than having to wait for a LQR timeout (a few minutes) before ppp(8)
gives up.

DCD problem noted by: nsayer
This commit is contained in:
Peter Wemm 2000-01-25 16:45:54 +00:00
parent 0cac72f42c
commit 931e989797
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=56592
2 changed files with 2249 additions and 2234 deletions

View File

@ -1369,10 +1369,7 @@ siparam(struct tty *tp, struct termios *t)
ccbp->hi_mask = val;
/* ========== set hi_prtcl ========== */
val = 0;
/* Monitor DCD etc. if a modem */
if (!(cflag & CLOCAL))
val |= SP_DCEN;
val = SP_DCEN; /* Monitor DCD always, or TIOCMGET misses it */
if (iflag & IXANY)
val |= SP_TANY;
if (iflag & IXON)

File diff suppressed because it is too large Load Diff