serial ports now asserting DTR and RTS during boot; breaks connectedhardware

From: Dave Jones
Date: Tue Jan 03 2012 - 10:37:35 EST


Jiri,
We got this report from a user who notes a change in behaviour for
his serial hardware over the last few kernel versions.

https://bugzilla.redhat.com/show_bug.cgi?id=771010

This sounds like it might be related to your DTR/RTS changes back in March 2011 maybe ?

> Description of problem:
>
> After upgrade from FC14 to FC16, it was discovered that during kernel boot, the
> DTR and RTS signals of serial devices (both real UART and FTDI USB devices) are
> being asserted from driver load to approx 20 seconds afterward. This causes
> some types of hardware connected to these ports to fail as they expect a
> different sequence or controlled activation of these signals. In particular,
> ham radio equipment that uses these signals to key transmitters is now going
> into uncontrolled transmit for nearly the duration of kernel boot.
>
>
> Steps to Reproduce:
> 1. connect RS232 breakout box to serial port
> 2. boot system
> 3. watch DTR and RTS LEDs light as kernel is booting
>
> Actual results:
>
> LEDs light and stay light for almost entire boot duration indicating that DTR
> and RTS are asserting as the kernel boots.
>
> Expected results:
>
> DTR and RTS should not activate while kernel is booting. They should only
> activate when the port is opened by an application and it has performed a
> termios function to enable these signals.
>
>
> Additional info:
>
> The following code in the ftdi_sio driver is one suspect but this behavior
> happens on 8250 UARTs also so it is systemic now,
>
> ftdi_sio.c, line 2161,
>
> /* Ensure RTS and DTR are raised when baudrate changed from 0
> */
> if (!old_termios || (old_termios->c_cflag & CBAUD) == B0)
> set_mctrl(port, TIOCM_DTR | TIOCM_RTS);
>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/