RE: Linux-2.4.20 modem control

From: Ed Vance (EdV@macrolink.com)
Date: Thu Mar 20 2003 - 19:45:03 EST


On Thu, Mar 20, 2003 at 2:14 PM, Richard B. Johnson wrote:
>
> [SNIPPED...]
>
> This patch works (no other promises).
>
> --- linux-2.4.20/drivers/char/serial.c.orig 2003-03-20
> 16:21:55.000000000 -0500
> +++ linux-2.4.20/drivers/char/serial.c 2003-03-20
> 16:31:23.000000000 -0500
> @@ -1538,8 +1538,12 @@
> serial_out(info, UART_LCR, serial_inp(info, UART_LCR) &
> ~UART_LCR_SBC);
>
> if (!info->tty || (info->tty->termios->c_cflag & HUPCL))
> - info->MCR &= ~(UART_MCR_DTR|UART_MCR_RTS);
> - serial_outp(info, UART_MCR, info->MCR);
> + {
> + serial_outp(info, UART_MCR,info->MCR &
> ~(UART_MCR_DTR|UART_MCR_RTS));
> + set_current_state(TASK_INTERRUPTIBLE);
> + schedule_timeout(HZ/2); /*
> Disconnect modem */
> + }
> + serial_outp(info, UART_MCR, info->MCR); /* Don't keep it off */
>
> /* disable FIFO's */
> serial_outp(info, UART_FCR, (UART_FCR_ENABLE_FIFO |
>
Hi Richard,

I'm not sure it's a Good Thing(tm) to call schedule_timeout() with
the interrupts disabled. The shutdown function is framed by
save_flags();cli and restore_flags(). Don't know exactly what the
downside of that could be.

Is the re-enable of DTR actually necessary to get agetty to work?
DTR is supposed to stay off until the next open.

Still, if it works for you, it works.

Cheers,
Ed

----------------------------------------------------------------
Ed Vance edv (at) macrolink (dot) com
Macrolink, Inc. 1500 N. Kellogg Dr Anaheim, CA 92807
----------------------------------------------------------------
-
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/



This archive was generated by hypermail 2b29 : Sun Mar 23 2003 - 22:00:33 EST