Lines Matching refs:tty

96 static void change_speed(struct tty_struct *tty, struct serial_state *info,
98 static void rs_wait_until_sent(struct tty_struct *tty, int timeout);
133 static void rs_stop(struct tty_struct *tty) in rs_stop() argument
135 struct serial_state *info = tty->driver_data; in rs_stop()
150 static void rs_start(struct tty_struct *tty) in rs_start() argument
152 struct serial_state *info = tty->driver_data; in rs_start()
243 do_SAK(info->tport.tty); in receive_chars()
275 || info->tport.tty->flow.stopped in transmit_chars()
276 || info->tport.tty->hw_stopped) { in transmit_chars()
291 tty_wakeup(info->tport.tty); in transmit_chars()
338 if (port->tty) in check_modem_status()
339 tty_hangup(port->tty); in check_modem_status()
343 if (port->tty->hw_stopped) { in check_modem_status()
348 port->tty->hw_stopped = false; in check_modem_status()
355 tty_wakeup(port->tty); in check_modem_status()
363 port->tty->hw_stopped = true; in check_modem_status()
396 if (!info->tport.tty) in ser_rx_int()
415 if (!info->tport.tty) in ser_tx_int()
441 static int startup(struct tty_struct *tty, struct serial_state *info) in startup() argument
476 set_bit(TTY_IO_ERROR, &tty->flags); in startup()
491 if (C_BAUD(tty)) in startup()
495 clear_bit(TTY_IO_ERROR, &tty->flags); in startup()
501 change_speed(tty, info, NULL); in startup()
516 static void shutdown(struct tty_struct *tty, struct serial_state *info) in shutdown() argument
551 if (C_HUPCL(tty)) in shutdown()
555 set_bit(TTY_IO_ERROR, &tty->flags); in shutdown()
566 static void change_speed(struct tty_struct *tty, struct serial_state *info, in change_speed() argument
575 cflag = tty->termios.c_cflag; in change_speed()
594 baud = tty_get_baud_rate(tty); in change_speed()
610 tty->termios.c_cflag &= ~CBAUD; in change_speed()
611 tty->termios.c_cflag |= (old_termios->c_cflag & CBAUD); in change_speed()
612 baud = tty_get_baud_rate(tty); in change_speed()
652 if (I_INPCK(tty)) in change_speed()
654 if (I_BRKINT(tty) || I_PARMRK(tty)) in change_speed()
661 if (I_IGNPAR(tty)) in change_speed()
663 if (I_IGNBRK(tty)) { in change_speed()
669 if (I_IGNPAR(tty)) in change_speed()
697 static int rs_put_char(struct tty_struct *tty, u8 ch) in rs_put_char() argument
702 info = tty->driver_data; in rs_put_char()
721 static void rs_flush_chars(struct tty_struct *tty) in rs_flush_chars() argument
723 struct serial_state *info = tty->driver_data; in rs_flush_chars()
727 || tty->flow.stopped in rs_flush_chars()
728 || tty->hw_stopped in rs_flush_chars()
742 static ssize_t rs_write(struct tty_struct * tty, const u8 *buf, size_t count) in rs_write() argument
745 struct serial_state *info = tty->driver_data; in rs_write()
770 && !tty->flow.stopped in rs_write()
771 && !tty->hw_stopped in rs_write()
785 static unsigned int rs_write_room(struct tty_struct *tty) in rs_write_room() argument
787 struct serial_state *info = tty->driver_data; in rs_write_room()
792 static unsigned int rs_chars_in_buffer(struct tty_struct *tty) in rs_chars_in_buffer() argument
794 struct serial_state *info = tty->driver_data; in rs_chars_in_buffer()
799 static void rs_flush_buffer(struct tty_struct *tty) in rs_flush_buffer() argument
801 struct serial_state *info = tty->driver_data; in rs_flush_buffer()
807 tty_wakeup(tty); in rs_flush_buffer()
814 static void rs_send_xchar(struct tty_struct *tty, u8 ch) in rs_send_xchar() argument
816 struct serial_state *info = tty->driver_data; in rs_send_xchar()
846 static void rs_throttle(struct tty_struct * tty) in rs_throttle() argument
848 struct serial_state *info = tty->driver_data; in rs_throttle()
851 printk("throttle %s ....\n", tty_name(tty)); in rs_throttle()
854 if (I_IXOFF(tty)) in rs_throttle()
855 rs_send_xchar(tty, STOP_CHAR(tty)); in rs_throttle()
857 if (C_CRTSCTS(tty)) in rs_throttle()
865 static void rs_unthrottle(struct tty_struct * tty) in rs_unthrottle() argument
867 struct serial_state *info = tty->driver_data; in rs_unthrottle()
870 printk("unthrottle %s ....\n", tty_name(tty)); in rs_unthrottle()
873 if (I_IXOFF(tty)) { in rs_unthrottle()
877 rs_send_xchar(tty, START_CHAR(tty)); in rs_unthrottle()
879 if (C_CRTSCTS(tty)) in rs_unthrottle()
892 static int get_serial_info(struct tty_struct *tty, struct serial_struct *ss) in get_serial_info() argument
894 struct serial_state *state = tty->driver_data; in get_serial_info()
897 tty_lock(tty); in get_serial_info()
903 ss->line = tty->index; in get_serial_info()
911 tty_unlock(tty); in get_serial_info()
915 static int set_serial_info(struct tty_struct *tty, struct serial_struct *ss) in set_serial_info() argument
917 struct serial_state *state = tty->driver_data; in set_serial_info()
923 tty_lock(tty); in set_serial_info()
928 tty_unlock(tty); in set_serial_info()
943 tty_unlock(tty); in set_serial_info()
953 tty_unlock(tty); in set_serial_info()
974 dev_warn_ratelimited(tty->dev, "use of SPD flags is deprecated\n"); in set_serial_info()
975 change_speed(tty, state, NULL); in set_serial_info()
978 retval = startup(tty, state); in set_serial_info()
979 tty_unlock(tty); in set_serial_info()
1010 static int rs_tiocmget(struct tty_struct *tty) in rs_tiocmget() argument
1012 struct serial_state *info = tty->driver_data; in rs_tiocmget()
1016 if (tty_io_error(tty)) in rs_tiocmget()
1030 static int rs_tiocmset(struct tty_struct *tty, unsigned int set, in rs_tiocmset() argument
1033 struct serial_state *info = tty->driver_data; in rs_tiocmset()
1036 if (tty_io_error(tty)) in rs_tiocmset()
1056 static int rs_break(struct tty_struct *tty, int break_state) in rs_break() argument
1076 static int rs_get_icount(struct tty_struct *tty, in rs_get_icount() argument
1079 struct serial_state *info = tty->driver_data; in rs_get_icount()
1101 static int rs_ioctl(struct tty_struct *tty, in rs_ioctl() argument
1104 struct serial_state *info = tty->driver_data; in rs_ioctl()
1113 if (tty_io_error(tty)) in rs_ioctl()
1170 static void rs_set_termios(struct tty_struct *tty, const struct ktermios *old_termios) in rs_set_termios() argument
1172 struct serial_state *info = tty->driver_data; in rs_set_termios()
1174 unsigned int cflag = tty->termios.c_cflag; in rs_set_termios()
1176 change_speed(tty, info, old_termios); in rs_set_termios()
1189 if (!C_CRTSCTS(tty) || !tty_throttled(tty)) in rs_set_termios()
1197 if ((old_termios->c_cflag & CRTSCTS) && !C_CRTSCTS(tty)) { in rs_set_termios()
1198 tty->hw_stopped = false; in rs_set_termios()
1199 rs_start(tty); in rs_set_termios()
1209 if (!(old_termios->c_cflag & CLOCAL) && C_CLOCAL(tty)) in rs_set_termios()
1224 static void rs_close(struct tty_struct *tty, struct file * filp) in rs_close() argument
1226 struct serial_state *state = tty->driver_data; in rs_close()
1229 if (tty_port_close_start(port, tty, filp) == 0) in rs_close()
1252 rs_wait_until_sent(tty, state->timeout); in rs_close()
1254 shutdown(tty, state); in rs_close()
1255 rs_flush_buffer(tty); in rs_close()
1257 tty_ldisc_flush(tty); in rs_close()
1258 port->tty = NULL; in rs_close()
1260 tty_port_close_end(port, tty); in rs_close()
1266 static void rs_wait_until_sent(struct tty_struct *tty, int timeout) in rs_wait_until_sent() argument
1268 struct serial_state *info = tty->driver_data; in rs_wait_until_sent()
1323 static void rs_hangup(struct tty_struct *tty) in rs_hangup() argument
1325 struct serial_state *info = tty->driver_data; in rs_hangup()
1327 rs_flush_buffer(tty); in rs_hangup()
1328 shutdown(tty, info); in rs_hangup()
1331 info->tport.tty = NULL; in rs_hangup()
1341 static int rs_open(struct tty_struct *tty, struct file * filp) in rs_open() argument
1343 struct tty_port *port = tty->port; in rs_open()
1349 port->tty = tty; in rs_open()
1350 tty->driver_data = info; in rs_open()
1352 retval = startup(tty, info); in rs_open()
1357 return tty_port_block_til_ready(port, tty, filp); in rs_open()