|
@@ -985,11 +985,12 @@ static void acm_tty_set_termios(struct tty_struct *tty,
|
|
|
/* FIXME: Needs to clear unsupported bits in the termios */
|
|
|
acm->clocal = ((termios->c_cflag & CLOCAL) != 0);
|
|
|
|
|
|
- if (!newline.dwDTERate) {
|
|
|
+ if (C_BAUD(tty) == B0) {
|
|
|
newline.dwDTERate = acm->line.dwDTERate;
|
|
|
newctrl &= ~ACM_CTRL_DTR;
|
|
|
- } else
|
|
|
+ } else if (termios_old && (termios_old->c_cflag & CBAUD) == B0) {
|
|
|
newctrl |= ACM_CTRL_DTR;
|
|
|
+ }
|
|
|
|
|
|
if (newctrl != acm->ctrlout)
|
|
|
acm_set_control(acm, acm->ctrlout = newctrl);
|