mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
USB: ftdi_sio: fix DTR/RTS line modes
commit6a1a82df91upstream. Call set_mctrl() and clear_mctrl() according to the flow control mode selected. This makes serial communication for FT232 connected devices work when CRTSCTS is not set. This fixes a regression introduced by4175f3e31("tty_port: If we are opened non blocking we still need to raise the carrier"). This patch calls the low-level driver's dtr_rts() function which consequently sets TIOCM_DTR | TIOCM_RTS. A later call to set_termios() without CRTSCTS in cflags, however, does not reset these bits, and so data is not actually sent out on the serial wire. Signed-off-by: Daniel Mack <daniel@caiaq.de> Cc: Johan Hovold <jhovold@gmail.com> Cc: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
2e6aac9058
commit
7fcd12387f
@@ -2289,6 +2289,8 @@ static void ftdi_set_termios(struct tty_struct *tty,
|
||||
"urb failed to set to rts/cts flow control\n");
|
||||
}
|
||||
|
||||
/* raise DTR/RTS */
|
||||
set_mctrl(port, TIOCM_DTR | TIOCM_RTS);
|
||||
} else {
|
||||
/*
|
||||
* Xon/Xoff code
|
||||
@@ -2336,6 +2338,8 @@ static void ftdi_set_termios(struct tty_struct *tty,
|
||||
}
|
||||
}
|
||||
|
||||
/* lower DTR/RTS */
|
||||
clear_mctrl(port, TIOCM_DTR | TIOCM_RTS);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user