From 04201cd18264dd61637c21868ecbf1de0db1e2a5 Mon Sep 17 00:00:00 2001 From: "Andrey A. Chernov" Date: Sat, 11 Dec 1993 00:36:14 +0000 Subject: [PATCH] Force HUPCL in bidirectional port open. This don't allow it hangs forever. --- sys/dev/sio/sio.c | 6 ++++-- sys/i386/isa/sio.c | 6 ++++-- sys/isa/sio.c | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c index 819d362c9ee..194ce00e8ea 100644 --- a/sys/dev/sio/sio.c +++ b/sys/dev/sio/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.16 1993/11/25 01:31:48 wollman Exp $ + * $Id: sio.c,v 1.17 1993/12/09 17:24:19 ache Exp $ */ #include "sio.h" @@ -668,11 +668,13 @@ bidir_open_top: tp->t_ispeed = tp->t_ospeed = comdefaultrate; } #ifdef COM_BIDIR - if (com->bidir) + if (com->bidir) { if (callout) tp->t_cflag |= CLOCAL; else tp->t_cflag &= ~CLOCAL; + tp->t_cflag |= HUPCL; + } #endif (void) commctl(com, MCR_DTR | MCR_RTS, DMSET); error = comparam(tp, &tp->t_termios); diff --git a/sys/i386/isa/sio.c b/sys/i386/isa/sio.c index 819d362c9ee..194ce00e8ea 100644 --- a/sys/i386/isa/sio.c +++ b/sys/i386/isa/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.16 1993/11/25 01:31:48 wollman Exp $ + * $Id: sio.c,v 1.17 1993/12/09 17:24:19 ache Exp $ */ #include "sio.h" @@ -668,11 +668,13 @@ bidir_open_top: tp->t_ispeed = tp->t_ospeed = comdefaultrate; } #ifdef COM_BIDIR - if (com->bidir) + if (com->bidir) { if (callout) tp->t_cflag |= CLOCAL; else tp->t_cflag &= ~CLOCAL; + tp->t_cflag |= HUPCL; + } #endif (void) commctl(com, MCR_DTR | MCR_RTS, DMSET); error = comparam(tp, &tp->t_termios); diff --git a/sys/isa/sio.c b/sys/isa/sio.c index 819d362c9ee..194ce00e8ea 100644 --- a/sys/isa/sio.c +++ b/sys/isa/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.16 1993/11/25 01:31:48 wollman Exp $ + * $Id: sio.c,v 1.17 1993/12/09 17:24:19 ache Exp $ */ #include "sio.h" @@ -668,11 +668,13 @@ bidir_open_top: tp->t_ispeed = tp->t_ospeed = comdefaultrate; } #ifdef COM_BIDIR - if (com->bidir) + if (com->bidir) { if (callout) tp->t_cflag |= CLOCAL; else tp->t_cflag &= ~CLOCAL; + tp->t_cflag |= HUPCL; + } #endif (void) commctl(com, MCR_DTR | MCR_RTS, DMSET); error = comparam(tp, &tp->t_termios);