Serdev currently does not support hangups so make sure to set CLOCAL to
prevent loss of carrier from triggering one.

Note however that not all tty drivers honour CLOCAL.

Signed-off-by: Johan Hovold <[email protected]>
---
 drivers/tty/serdev/serdev-ttyport.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/tty/serdev/serdev-ttyport.c 
b/drivers/tty/serdev/serdev-ttyport.c
index a8ddcd2ac5ea..727664ef456c 100644
--- a/drivers/tty/serdev/serdev-ttyport.c
+++ b/drivers/tty/serdev/serdev-ttyport.c
@@ -141,6 +141,8 @@ static int ttyport_open(struct serdev_controller *ctrl)
        ktermios.c_cflag &= ~(CSIZE | PARENB);
        ktermios.c_cflag |= CS8;
        ktermios.c_cflag |= CRTSCTS;
+       /* Hangups are not supported so make sure to ignore carrier detect. */
+       ktermios.c_cflag |= CLOCAL;
        tty_set_termios(tty, &ktermios);
 
        set_bit(SERPORT_ACTIVE, &serport->flags);
-- 
2.15.0

Reply via email to