Messages in this thread Patch in this message | | | Date | Fri, 21 Dec 2001 10:16:46 +0100 | From | Heinz-Ado Arnolds <> | Subject | sx driver, DCD-HylaFAX problem solved |
| |
Rogier Wolff wrote: > ... > Please Email Marcello, Linus and linux-kernel with this patch, and > state that you are submitting this patch on my request for inclusion > in the standard kernel. > > Roger.
Hi Marcelo, hi Linus, hi Alan,
I'm sending you this patch to the specialix sx driver on the request of Roger E. Wolf. It fixes a long outstanding problem with hangup when a DCD change is detected by the driver. The CLOCAL in c_cflag was ignored. The problem shows up in connection with HylaFAX and gettys.
Please insert this patch into the next available kernel releases. The patch is to linux-2.4.16, but this section of the sx driver didn't change at least since 2.2.19.
Thanks a lot for your attention.
Ado
-------------------------------------------------------------------------
--- linux/drivers/char/sx.c.~1~ Fri Nov 9 23:01:21 2001 +++ linux/drivers/char/sx.c Thu Dec 20 17:22:53 2001 @@ -1160,7 +1160,8 @@ /* DCD went UP */ if( (~(port->gs.flags & ASYNC_NORMAL_ACTIVE) || ~(port->gs.flags & ASYNC_CALLOUT_ACTIVE)) && - (sx_read_channel_byte(port, hi_hstat) != HS_IDLE_CLOSED)) { + (sx_read_channel_byte(port, hi_hstat) != HS_IDLE_CLOSED) && + !(port->gs.tty->termios->c_cflag & CLOCAL) ) { /* Are we blocking in open?*/ sx_dprintk (SX_DEBUG_MODEMSIGNALS, "DCD active, unblocking open\n"); wake_up_interruptible(&port->gs.open_wait); @@ -1170,7 +1171,8 @@ } else { /* DCD went down! */ if (!((port->gs.flags & ASYNC_CALLOUT_ACTIVE) && - (port->gs.flags & ASYNC_CALLOUT_NOHUP))) { + (port->gs.flags & ASYNC_CALLOUT_NOHUP)) && + !(port->gs.tty->termios->c_cflag & CLOCAL) ) { sx_dprintk (SX_DEBUG_MODEMSIGNALS, "DCD dropped. hanging up....\n"); tty_hangup (port->gs.tty); } else { -- ------------------------------------------------------------------------ Heinz-Ado Arnolds Ado.Arnolds@web-systems.net Websystems GmbH +49 2234 1840-0 (voice) Max-Planck-Strasse 2, 50858 Koeln, Germany +49 2234 1840-40 (fax) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |