Set rr0_dcd.

Don't set DCD_IE and CTS_IE here; let the MI code do it.
Handle MDMBUF.
This commit is contained in:
mycroft 1997-11-02 08:05:06 +00:00
parent b000ee5105
commit ec5fd4954e
4 changed files with 36 additions and 54 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: zs.c,v 1.15 1997/10/20 08:13:53 scottr Exp $ */
/* $NetBSD: zs.c,v 1.16 1997/11/02 08:05:06 mycroft Exp $ */
/*
* Copyright (c) 1996 Bill Studenmund
@ -721,9 +721,7 @@ zs_set_modes(cs, cflag)
if (cflag & MDMBUF)
return (EINVAL);
cflag |= CLOCAL;
cs->cs_rr0_dcd = 0; /* don't look at the dcd input! */
} else
cs->cs_rr0_dcd = ZSRR0_DCD; /* can look at pin */
}
if ((xcs->cs_hwflags & ZS_HWFLAG_NO_CTS) && (cflag & (CRTSCTS | CDTRCTS)))
return (EINVAL);
@ -735,15 +733,10 @@ zs_set_modes(cs, cflag)
* status interrupt to detect CTS changes.
*/
s = splzs();
#if 0
if (cflag & CLOCAL) {
/* cs->cs_rr0_dcd = 0; */
cs->cs_preg[15] &= ~ZSWR15_DCD_IE;
} else {
/* cs->cs_rr0_dcd = ZSRR0_DCD; */
cs->cs_preg[15] |= ZSWR15_DCD_IE;
}
#endif
if ((cflag & (CLOCAL | MDMBUF)) != 0)
cs->cs_rr0_dcd = 0;
else
cs->cs_rr0_dcd = ZSRR0_DCD;
/*
* The mac hardware only has one output, DTR (HSKo in Mac
* parlance). In HFC mode, we use it for the functions
@ -757,21 +750,22 @@ zs_set_modes(cs, cflag)
* In CDTRCTS, we use CTS to tell us to stop, but we use DTR to
* shut up the other side.
*/
if (cflag & CRTSCTS) {
if ((cflag & CRTSCTS) != 0) {
cs->cs_wr5_dtr = ZSWR5_DTR;
cs->cs_wr5_rts = 0;
cs->cs_rr0_cts = ZSRR0_CTS;
cs->cs_preg[15] |= ZSWR15_CTS_IE;
} else if (cflag & CDTRCTS) {
} else if ((cflag & CDTRCTS) != 0) {
cs->cs_wr5_dtr = 0;
cs->cs_wr5_rts = ZSWR5_DTR;
cs->cs_rr0_cts = ZSRR0_CTS;
cs->cs_preg[15] |= ZSWR15_CTS_IE;
} else if ((cflag & MDMBUF) != 0) {
cs->cs_wr5_dtr = 0;
cs->cs_wr5_rts = ZSWR5_DTR;
cs->cs_rr0_cts = ZSRR0_DCD;
} else {
cs->cs_wr5_dtr = ZSWR5_DTR;
cs->cs_wr5_rts = 0;
cs->cs_rr0_cts = 0;
cs->cs_preg[15] &= ~ZSWR15_CTS_IE;
}
splx(s);

View File

@ -1,4 +1,4 @@
/* $NetBSD: zs.c,v 1.12 1997/02/05 14:06:58 gwr Exp $ */
/* $NetBSD: zs.c,v 1.13 1997/11/02 08:05:09 mycroft Exp $ */
/*-
* Copyright (c) 1996 The NetBSD Foundation, Inc.
@ -353,26 +353,22 @@ zs_set_modes(cs, cflag)
* status interrupt to detect CTS changes.
*/
s = splzs();
#if 0 /* XXX - See below. */
if (cflag & CLOCAL) {
if ((cflag & (CLOCAL | MDMBUF)) != 0)
cs->cs_rr0_dcd = 0;
cs->cs_preg[15] &= ~ZSWR15_DCD_IE;
} else {
/* XXX - Need to notice DCD change here... */
else
cs->cs_rr0_dcd = ZSRR0_DCD;
cs->cs_preg[15] |= ZSWR15_DCD_IE;
}
#endif /* XXX */
if (cflag & CRTSCTS) {
if ((cflag & CRTSCTS) != 0) {
cs->cs_wr5_dtr = ZSWR5_DTR;
cs->cs_wr5_rts = ZSWR5_RTS;
cs->cs_rr0_cts = ZSRR0_CTS;
cs->cs_preg[15] |= ZSWR15_CTS_IE;
} else if ((cflag & MDMBUF) != 0) {
cs->cs_wr5_dtr = 0;
cs->cs_wr5_rts = ZSWR5_DTR;
cs->cs_rr0_cts = ZSRR0_DCD;
} else {
cs->cs_wr5_dtr = ZSWR5_DTR | ZSWR5_RTS;
cs->cs_wr5_rts = 0;
cs->cs_rr0_cts = 0;
cs->cs_preg[15] &= ~ZSWR15_CTS_IE;
}
splx(s);

View File

@ -1,4 +1,4 @@
/* $NetBSD: zs.c,v 1.51 1997/10/22 14:39:38 gwr Exp $ */
/* $NetBSD: zs.c,v 1.52 1997/11/02 08:05:11 mycroft Exp $ */
/*-
* Copyright (c) 1996 The NetBSD Foundation, Inc.
@ -519,26 +519,22 @@ zs_set_modes(cs, cflag)
* status interrupt to detect CTS changes.
*/
s = splzs();
#if 0 /* XXX - See below. */
if (cflag & CLOCAL) {
if ((cflag & (CLOCAL | MDMBUF)) != 0)
cs->cs_rr0_dcd = 0;
cs->cs_preg[15] &= ~ZSWR15_DCD_IE;
} else {
/* XXX - Need to notice DCD change here... */
else
cs->cs_rr0_dcd = ZSRR0_DCD;
cs->cs_preg[15] |= ZSWR15_DCD_IE;
}
#endif /* XXX */
if (cflag & CRTSCTS) {
if ((cflag & CRTSCTS) != 0) {
cs->cs_wr5_dtr = ZSWR5_DTR;
cs->cs_wr5_rts = ZSWR5_RTS;
cs->cs_rr0_cts = ZSRR0_CTS;
cs->cs_preg[15] |= ZSWR15_CTS_IE;
} else if ((cflag & MDMBUF) != 0) {
cs->cs_wr5_dtr = 0;
cs->cs_wr5_rts = ZSWR5_DTR;
cs->cs_rr0_cts = ZSRR0_DCD;
} else {
cs->cs_wr5_dtr = ZSWR5_DTR | ZSWR5_RTS;
cs->cs_wr5_rts = 0;
cs->cs_rr0_cts = 0;
cs->cs_preg[15] &= ~ZSWR15_CTS_IE;
}
splx(s);

View File

@ -1,4 +1,4 @@
/* $NetBSD: zs.c,v 1.50 1997/10/06 21:04:21 gwr Exp $ */
/* $NetBSD: zs.c,v 1.51 1997/11/02 08:05:16 mycroft Exp $ */
/*-
* Copyright (c) 1996 The NetBSD Foundation, Inc.
@ -515,26 +515,22 @@ zs_set_modes(cs, cflag)
* status interrupt to detect CTS changes.
*/
s = splzs();
#if 0 /* XXX - See below. */
if (cflag & CLOCAL) {
if ((cflag & (CLOCAL | MDMBUF)) != 0)
cs->cs_rr0_dcd = 0;
cs->cs_preg[15] &= ~ZSWR15_DCD_IE;
} else {
/* XXX - Need to notice DCD change here... */
else
cs->cs_rr0_dcd = ZSRR0_DCD;
cs->cs_preg[15] |= ZSWR15_DCD_IE;
}
#endif /* XXX */
if (cflag & CRTSCTS) {
if ((cflag & CRTSCTS) != 0) {
cs->cs_wr5_dtr = ZSWR5_DTR;
cs->cs_wr5_rts = ZSWR5_RTS;
cs->cs_rr0_cts = ZSRR0_CTS;
cs->cs_preg[15] |= ZSWR15_CTS_IE;
} else if ((cflag & MDMBUF) != 0) {
cs->cs_wr5_dtr = 0;
cs->cs_wr5_rts = ZSWR5_DTR;
cs->cs_rr0_cts = ZSRR0_DCD;
} else {
cs->cs_wr5_dtr = ZSWR5_DTR | ZSWR5_RTS;
cs->cs_wr5_rts = 0;
cs->cs_rr0_cts = 0;
cs->cs_preg[15] &= ~ZSWR15_CTS_IE;
}
splx(s);